1// Copyright 2019 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	htransport "google.golang.org/api/transport/http"
60)
61
62// Always reference these packages, just in case the auto-generated code
63// below doesn't.
64var _ = bytes.NewBuffer
65var _ = strconv.Itoa
66var _ = fmt.Sprintf
67var _ = json.NewDecoder
68var _ = io.Copy
69var _ = url.Parse
70var _ = gensupport.MarshalJSON
71var _ = googleapi.Version
72var _ = errors.New
73var _ = strings.Replace
74var _ = context.Canceled
75
76const apiId = "compute:alpha"
77const apiName = "compute"
78const apiVersion = "alpha"
79const basePath = "https://compute.googleapis.com/compute/alpha/projects/"
80
81// OAuth2 scopes used by this API.
82const (
83	// View and manage your data across Google Cloud Platform services
84	CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform"
85
86	// View and manage your Google Compute Engine resources
87	ComputeScope = "https://www.googleapis.com/auth/compute"
88
89	// View your Google Compute Engine resources
90	ComputeReadonlyScope = "https://www.googleapis.com/auth/compute.readonly"
91
92	// Manage your data and permissions in Google Cloud Storage
93	DevstorageFullControlScope = "https://www.googleapis.com/auth/devstorage.full_control"
94
95	// View your data in Google Cloud Storage
96	DevstorageReadOnlyScope = "https://www.googleapis.com/auth/devstorage.read_only"
97
98	// Manage your data in Google Cloud Storage
99	DevstorageReadWriteScope = "https://www.googleapis.com/auth/devstorage.read_write"
100)
101
102// NewService creates a new Service.
103func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
104	scopesOption := option.WithScopes(
105		"https://www.googleapis.com/auth/cloud-platform",
106		"https://www.googleapis.com/auth/compute",
107		"https://www.googleapis.com/auth/compute.readonly",
108		"https://www.googleapis.com/auth/devstorage.full_control",
109		"https://www.googleapis.com/auth/devstorage.read_only",
110		"https://www.googleapis.com/auth/devstorage.read_write",
111	)
112	// NOTE: prepend, so we don't override user-specified scopes.
113	opts = append([]option.ClientOption{scopesOption}, opts...)
114	client, endpoint, err := htransport.NewClient(ctx, opts...)
115	if err != nil {
116		return nil, err
117	}
118	s, err := New(client)
119	if err != nil {
120		return nil, err
121	}
122	if endpoint != "" {
123		s.BasePath = endpoint
124	}
125	return s, nil
126}
127
128// New creates a new Service. It uses the provided http.Client for requests.
129//
130// Deprecated: please use NewService instead.
131// To provide a custom HTTP client, use option.WithHTTPClient.
132// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
133func New(client *http.Client) (*Service, error) {
134	if client == nil {
135		return nil, errors.New("client is nil")
136	}
137	s := &Service{client: client, BasePath: basePath}
138	s.AcceleratorTypes = NewAcceleratorTypesService(s)
139	s.Addresses = NewAddressesService(s)
140	s.Autoscalers = NewAutoscalersService(s)
141	s.BackendBuckets = NewBackendBucketsService(s)
142	s.BackendServices = NewBackendServicesService(s)
143	s.DiskTypes = NewDiskTypesService(s)
144	s.Disks = NewDisksService(s)
145	s.ExternalVpnGateways = NewExternalVpnGatewaysService(s)
146	s.Firewalls = NewFirewallsService(s)
147	s.ForwardingRules = NewForwardingRulesService(s)
148	s.GlobalAddresses = NewGlobalAddressesService(s)
149	s.GlobalForwardingRules = NewGlobalForwardingRulesService(s)
150	s.GlobalNetworkEndpointGroups = NewGlobalNetworkEndpointGroupsService(s)
151	s.GlobalOperations = NewGlobalOperationsService(s)
152	s.GlobalOrganizationOperations = NewGlobalOrganizationOperationsService(s)
153	s.GlobalPublicDelegatedPrefixes = NewGlobalPublicDelegatedPrefixesService(s)
154	s.HealthChecks = NewHealthChecksService(s)
155	s.HttpHealthChecks = NewHttpHealthChecksService(s)
156	s.HttpsHealthChecks = NewHttpsHealthChecksService(s)
157	s.Images = NewImagesService(s)
158	s.InstanceGroupManagers = NewInstanceGroupManagersService(s)
159	s.InstanceGroups = NewInstanceGroupsService(s)
160	s.InstanceTemplates = NewInstanceTemplatesService(s)
161	s.Instances = NewInstancesService(s)
162	s.InterconnectAttachments = NewInterconnectAttachmentsService(s)
163	s.InterconnectLocations = NewInterconnectLocationsService(s)
164	s.Interconnects = NewInterconnectsService(s)
165	s.LicenseCodes = NewLicenseCodesService(s)
166	s.Licenses = NewLicensesService(s)
167	s.MachineImages = NewMachineImagesService(s)
168	s.MachineTypes = NewMachineTypesService(s)
169	s.NetworkEndpointGroups = NewNetworkEndpointGroupsService(s)
170	s.Networks = NewNetworksService(s)
171	s.NodeGroups = NewNodeGroupsService(s)
172	s.NodeTemplates = NewNodeTemplatesService(s)
173	s.NodeTypes = NewNodeTypesService(s)
174	s.OrganizationSecurityPolicies = NewOrganizationSecurityPoliciesService(s)
175	s.PacketMirrorings = NewPacketMirroringsService(s)
176	s.Projects = NewProjectsService(s)
177	s.PublicAdvertisedPrefixes = NewPublicAdvertisedPrefixesService(s)
178	s.PublicDelegatedPrefixes = NewPublicDelegatedPrefixesService(s)
179	s.RegionAutoscalers = NewRegionAutoscalersService(s)
180	s.RegionBackendServices = NewRegionBackendServicesService(s)
181	s.RegionCommitments = NewRegionCommitmentsService(s)
182	s.RegionDiskTypes = NewRegionDiskTypesService(s)
183	s.RegionDisks = NewRegionDisksService(s)
184	s.RegionHealthCheckServices = NewRegionHealthCheckServicesService(s)
185	s.RegionHealthChecks = NewRegionHealthChecksService(s)
186	s.RegionInstanceGroupManagers = NewRegionInstanceGroupManagersService(s)
187	s.RegionInstanceGroups = NewRegionInstanceGroupsService(s)
188	s.RegionNotificationEndpoints = NewRegionNotificationEndpointsService(s)
189	s.RegionOperations = NewRegionOperationsService(s)
190	s.RegionSslCertificates = NewRegionSslCertificatesService(s)
191	s.RegionTargetHttpProxies = NewRegionTargetHttpProxiesService(s)
192	s.RegionTargetHttpsProxies = NewRegionTargetHttpsProxiesService(s)
193	s.RegionUrlMaps = NewRegionUrlMapsService(s)
194	s.Regions = NewRegionsService(s)
195	s.Reservations = NewReservationsService(s)
196	s.ResourcePolicies = NewResourcePoliciesService(s)
197	s.Routers = NewRoutersService(s)
198	s.Routes = NewRoutesService(s)
199	s.SecurityPolicies = NewSecurityPoliciesService(s)
200	s.Snapshots = NewSnapshotsService(s)
201	s.SslCertificates = NewSslCertificatesService(s)
202	s.SslPolicies = NewSslPoliciesService(s)
203	s.Subnetworks = NewSubnetworksService(s)
204	s.TargetHttpProxies = NewTargetHttpProxiesService(s)
205	s.TargetHttpsProxies = NewTargetHttpsProxiesService(s)
206	s.TargetInstances = NewTargetInstancesService(s)
207	s.TargetPools = NewTargetPoolsService(s)
208	s.TargetSslProxies = NewTargetSslProxiesService(s)
209	s.TargetTcpProxies = NewTargetTcpProxiesService(s)
210	s.TargetVpnGateways = NewTargetVpnGatewaysService(s)
211	s.UrlMaps = NewUrlMapsService(s)
212	s.VpnGateways = NewVpnGatewaysService(s)
213	s.VpnTunnels = NewVpnTunnelsService(s)
214	s.ZoneOperations = NewZoneOperationsService(s)
215	s.Zones = NewZonesService(s)
216	return s, nil
217}
218
219type Service struct {
220	client    *http.Client
221	BasePath  string // API endpoint base URL
222	UserAgent string // optional additional User-Agent fragment
223
224	AcceleratorTypes *AcceleratorTypesService
225
226	Addresses *AddressesService
227
228	Autoscalers *AutoscalersService
229
230	BackendBuckets *BackendBucketsService
231
232	BackendServices *BackendServicesService
233
234	DiskTypes *DiskTypesService
235
236	Disks *DisksService
237
238	ExternalVpnGateways *ExternalVpnGatewaysService
239
240	Firewalls *FirewallsService
241
242	ForwardingRules *ForwardingRulesService
243
244	GlobalAddresses *GlobalAddressesService
245
246	GlobalForwardingRules *GlobalForwardingRulesService
247
248	GlobalNetworkEndpointGroups *GlobalNetworkEndpointGroupsService
249
250	GlobalOperations *GlobalOperationsService
251
252	GlobalOrganizationOperations *GlobalOrganizationOperationsService
253
254	GlobalPublicDelegatedPrefixes *GlobalPublicDelegatedPrefixesService
255
256	HealthChecks *HealthChecksService
257
258	HttpHealthChecks *HttpHealthChecksService
259
260	HttpsHealthChecks *HttpsHealthChecksService
261
262	Images *ImagesService
263
264	InstanceGroupManagers *InstanceGroupManagersService
265
266	InstanceGroups *InstanceGroupsService
267
268	InstanceTemplates *InstanceTemplatesService
269
270	Instances *InstancesService
271
272	InterconnectAttachments *InterconnectAttachmentsService
273
274	InterconnectLocations *InterconnectLocationsService
275
276	Interconnects *InterconnectsService
277
278	LicenseCodes *LicenseCodesService
279
280	Licenses *LicensesService
281
282	MachineImages *MachineImagesService
283
284	MachineTypes *MachineTypesService
285
286	NetworkEndpointGroups *NetworkEndpointGroupsService
287
288	Networks *NetworksService
289
290	NodeGroups *NodeGroupsService
291
292	NodeTemplates *NodeTemplatesService
293
294	NodeTypes *NodeTypesService
295
296	OrganizationSecurityPolicies *OrganizationSecurityPoliciesService
297
298	PacketMirrorings *PacketMirroringsService
299
300	Projects *ProjectsService
301
302	PublicAdvertisedPrefixes *PublicAdvertisedPrefixesService
303
304	PublicDelegatedPrefixes *PublicDelegatedPrefixesService
305
306	RegionAutoscalers *RegionAutoscalersService
307
308	RegionBackendServices *RegionBackendServicesService
309
310	RegionCommitments *RegionCommitmentsService
311
312	RegionDiskTypes *RegionDiskTypesService
313
314	RegionDisks *RegionDisksService
315
316	RegionHealthCheckServices *RegionHealthCheckServicesService
317
318	RegionHealthChecks *RegionHealthChecksService
319
320	RegionInstanceGroupManagers *RegionInstanceGroupManagersService
321
322	RegionInstanceGroups *RegionInstanceGroupsService
323
324	RegionNotificationEndpoints *RegionNotificationEndpointsService
325
326	RegionOperations *RegionOperationsService
327
328	RegionSslCertificates *RegionSslCertificatesService
329
330	RegionTargetHttpProxies *RegionTargetHttpProxiesService
331
332	RegionTargetHttpsProxies *RegionTargetHttpsProxiesService
333
334	RegionUrlMaps *RegionUrlMapsService
335
336	Regions *RegionsService
337
338	Reservations *ReservationsService
339
340	ResourcePolicies *ResourcePoliciesService
341
342	Routers *RoutersService
343
344	Routes *RoutesService
345
346	SecurityPolicies *SecurityPoliciesService
347
348	Snapshots *SnapshotsService
349
350	SslCertificates *SslCertificatesService
351
352	SslPolicies *SslPoliciesService
353
354	Subnetworks *SubnetworksService
355
356	TargetHttpProxies *TargetHttpProxiesService
357
358	TargetHttpsProxies *TargetHttpsProxiesService
359
360	TargetInstances *TargetInstancesService
361
362	TargetPools *TargetPoolsService
363
364	TargetSslProxies *TargetSslProxiesService
365
366	TargetTcpProxies *TargetTcpProxiesService
367
368	TargetVpnGateways *TargetVpnGatewaysService
369
370	UrlMaps *UrlMapsService
371
372	VpnGateways *VpnGatewaysService
373
374	VpnTunnels *VpnTunnelsService
375
376	ZoneOperations *ZoneOperationsService
377
378	Zones *ZonesService
379}
380
381func (s *Service) userAgent() string {
382	if s.UserAgent == "" {
383		return googleapi.UserAgent
384	}
385	return googleapi.UserAgent + " " + s.UserAgent
386}
387
388func NewAcceleratorTypesService(s *Service) *AcceleratorTypesService {
389	rs := &AcceleratorTypesService{s: s}
390	return rs
391}
392
393type AcceleratorTypesService struct {
394	s *Service
395}
396
397func NewAddressesService(s *Service) *AddressesService {
398	rs := &AddressesService{s: s}
399	return rs
400}
401
402type AddressesService struct {
403	s *Service
404}
405
406func NewAutoscalersService(s *Service) *AutoscalersService {
407	rs := &AutoscalersService{s: s}
408	return rs
409}
410
411type AutoscalersService struct {
412	s *Service
413}
414
415func NewBackendBucketsService(s *Service) *BackendBucketsService {
416	rs := &BackendBucketsService{s: s}
417	return rs
418}
419
420type BackendBucketsService struct {
421	s *Service
422}
423
424func NewBackendServicesService(s *Service) *BackendServicesService {
425	rs := &BackendServicesService{s: s}
426	return rs
427}
428
429type BackendServicesService struct {
430	s *Service
431}
432
433func NewDiskTypesService(s *Service) *DiskTypesService {
434	rs := &DiskTypesService{s: s}
435	return rs
436}
437
438type DiskTypesService struct {
439	s *Service
440}
441
442func NewDisksService(s *Service) *DisksService {
443	rs := &DisksService{s: s}
444	return rs
445}
446
447type DisksService struct {
448	s *Service
449}
450
451func NewExternalVpnGatewaysService(s *Service) *ExternalVpnGatewaysService {
452	rs := &ExternalVpnGatewaysService{s: s}
453	return rs
454}
455
456type ExternalVpnGatewaysService struct {
457	s *Service
458}
459
460func NewFirewallsService(s *Service) *FirewallsService {
461	rs := &FirewallsService{s: s}
462	return rs
463}
464
465type FirewallsService struct {
466	s *Service
467}
468
469func NewForwardingRulesService(s *Service) *ForwardingRulesService {
470	rs := &ForwardingRulesService{s: s}
471	return rs
472}
473
474type ForwardingRulesService struct {
475	s *Service
476}
477
478func NewGlobalAddressesService(s *Service) *GlobalAddressesService {
479	rs := &GlobalAddressesService{s: s}
480	return rs
481}
482
483type GlobalAddressesService struct {
484	s *Service
485}
486
487func NewGlobalForwardingRulesService(s *Service) *GlobalForwardingRulesService {
488	rs := &GlobalForwardingRulesService{s: s}
489	return rs
490}
491
492type GlobalForwardingRulesService struct {
493	s *Service
494}
495
496func NewGlobalNetworkEndpointGroupsService(s *Service) *GlobalNetworkEndpointGroupsService {
497	rs := &GlobalNetworkEndpointGroupsService{s: s}
498	return rs
499}
500
501type GlobalNetworkEndpointGroupsService struct {
502	s *Service
503}
504
505func NewGlobalOperationsService(s *Service) *GlobalOperationsService {
506	rs := &GlobalOperationsService{s: s}
507	return rs
508}
509
510type GlobalOperationsService struct {
511	s *Service
512}
513
514func NewGlobalOrganizationOperationsService(s *Service) *GlobalOrganizationOperationsService {
515	rs := &GlobalOrganizationOperationsService{s: s}
516	return rs
517}
518
519type GlobalOrganizationOperationsService struct {
520	s *Service
521}
522
523func NewGlobalPublicDelegatedPrefixesService(s *Service) *GlobalPublicDelegatedPrefixesService {
524	rs := &GlobalPublicDelegatedPrefixesService{s: s}
525	return rs
526}
527
528type GlobalPublicDelegatedPrefixesService struct {
529	s *Service
530}
531
532func NewHealthChecksService(s *Service) *HealthChecksService {
533	rs := &HealthChecksService{s: s}
534	return rs
535}
536
537type HealthChecksService struct {
538	s *Service
539}
540
541func NewHttpHealthChecksService(s *Service) *HttpHealthChecksService {
542	rs := &HttpHealthChecksService{s: s}
543	return rs
544}
545
546type HttpHealthChecksService struct {
547	s *Service
548}
549
550func NewHttpsHealthChecksService(s *Service) *HttpsHealthChecksService {
551	rs := &HttpsHealthChecksService{s: s}
552	return rs
553}
554
555type HttpsHealthChecksService struct {
556	s *Service
557}
558
559func NewImagesService(s *Service) *ImagesService {
560	rs := &ImagesService{s: s}
561	return rs
562}
563
564type ImagesService struct {
565	s *Service
566}
567
568func NewInstanceGroupManagersService(s *Service) *InstanceGroupManagersService {
569	rs := &InstanceGroupManagersService{s: s}
570	return rs
571}
572
573type InstanceGroupManagersService struct {
574	s *Service
575}
576
577func NewInstanceGroupsService(s *Service) *InstanceGroupsService {
578	rs := &InstanceGroupsService{s: s}
579	return rs
580}
581
582type InstanceGroupsService struct {
583	s *Service
584}
585
586func NewInstanceTemplatesService(s *Service) *InstanceTemplatesService {
587	rs := &InstanceTemplatesService{s: s}
588	return rs
589}
590
591type InstanceTemplatesService struct {
592	s *Service
593}
594
595func NewInstancesService(s *Service) *InstancesService {
596	rs := &InstancesService{s: s}
597	return rs
598}
599
600type InstancesService struct {
601	s *Service
602}
603
604func NewInterconnectAttachmentsService(s *Service) *InterconnectAttachmentsService {
605	rs := &InterconnectAttachmentsService{s: s}
606	return rs
607}
608
609type InterconnectAttachmentsService struct {
610	s *Service
611}
612
613func NewInterconnectLocationsService(s *Service) *InterconnectLocationsService {
614	rs := &InterconnectLocationsService{s: s}
615	return rs
616}
617
618type InterconnectLocationsService struct {
619	s *Service
620}
621
622func NewInterconnectsService(s *Service) *InterconnectsService {
623	rs := &InterconnectsService{s: s}
624	return rs
625}
626
627type InterconnectsService struct {
628	s *Service
629}
630
631func NewLicenseCodesService(s *Service) *LicenseCodesService {
632	rs := &LicenseCodesService{s: s}
633	return rs
634}
635
636type LicenseCodesService struct {
637	s *Service
638}
639
640func NewLicensesService(s *Service) *LicensesService {
641	rs := &LicensesService{s: s}
642	return rs
643}
644
645type LicensesService struct {
646	s *Service
647}
648
649func NewMachineImagesService(s *Service) *MachineImagesService {
650	rs := &MachineImagesService{s: s}
651	return rs
652}
653
654type MachineImagesService struct {
655	s *Service
656}
657
658func NewMachineTypesService(s *Service) *MachineTypesService {
659	rs := &MachineTypesService{s: s}
660	return rs
661}
662
663type MachineTypesService struct {
664	s *Service
665}
666
667func NewNetworkEndpointGroupsService(s *Service) *NetworkEndpointGroupsService {
668	rs := &NetworkEndpointGroupsService{s: s}
669	return rs
670}
671
672type NetworkEndpointGroupsService struct {
673	s *Service
674}
675
676func NewNetworksService(s *Service) *NetworksService {
677	rs := &NetworksService{s: s}
678	return rs
679}
680
681type NetworksService struct {
682	s *Service
683}
684
685func NewNodeGroupsService(s *Service) *NodeGroupsService {
686	rs := &NodeGroupsService{s: s}
687	return rs
688}
689
690type NodeGroupsService struct {
691	s *Service
692}
693
694func NewNodeTemplatesService(s *Service) *NodeTemplatesService {
695	rs := &NodeTemplatesService{s: s}
696	return rs
697}
698
699type NodeTemplatesService struct {
700	s *Service
701}
702
703func NewNodeTypesService(s *Service) *NodeTypesService {
704	rs := &NodeTypesService{s: s}
705	return rs
706}
707
708type NodeTypesService struct {
709	s *Service
710}
711
712func NewOrganizationSecurityPoliciesService(s *Service) *OrganizationSecurityPoliciesService {
713	rs := &OrganizationSecurityPoliciesService{s: s}
714	return rs
715}
716
717type OrganizationSecurityPoliciesService struct {
718	s *Service
719}
720
721func NewPacketMirroringsService(s *Service) *PacketMirroringsService {
722	rs := &PacketMirroringsService{s: s}
723	return rs
724}
725
726type PacketMirroringsService struct {
727	s *Service
728}
729
730func NewProjectsService(s *Service) *ProjectsService {
731	rs := &ProjectsService{s: s}
732	return rs
733}
734
735type ProjectsService struct {
736	s *Service
737}
738
739func NewPublicAdvertisedPrefixesService(s *Service) *PublicAdvertisedPrefixesService {
740	rs := &PublicAdvertisedPrefixesService{s: s}
741	return rs
742}
743
744type PublicAdvertisedPrefixesService struct {
745	s *Service
746}
747
748func NewPublicDelegatedPrefixesService(s *Service) *PublicDelegatedPrefixesService {
749	rs := &PublicDelegatedPrefixesService{s: s}
750	return rs
751}
752
753type PublicDelegatedPrefixesService struct {
754	s *Service
755}
756
757func NewRegionAutoscalersService(s *Service) *RegionAutoscalersService {
758	rs := &RegionAutoscalersService{s: s}
759	return rs
760}
761
762type RegionAutoscalersService struct {
763	s *Service
764}
765
766func NewRegionBackendServicesService(s *Service) *RegionBackendServicesService {
767	rs := &RegionBackendServicesService{s: s}
768	return rs
769}
770
771type RegionBackendServicesService struct {
772	s *Service
773}
774
775func NewRegionCommitmentsService(s *Service) *RegionCommitmentsService {
776	rs := &RegionCommitmentsService{s: s}
777	return rs
778}
779
780type RegionCommitmentsService struct {
781	s *Service
782}
783
784func NewRegionDiskTypesService(s *Service) *RegionDiskTypesService {
785	rs := &RegionDiskTypesService{s: s}
786	return rs
787}
788
789type RegionDiskTypesService struct {
790	s *Service
791}
792
793func NewRegionDisksService(s *Service) *RegionDisksService {
794	rs := &RegionDisksService{s: s}
795	return rs
796}
797
798type RegionDisksService struct {
799	s *Service
800}
801
802func NewRegionHealthCheckServicesService(s *Service) *RegionHealthCheckServicesService {
803	rs := &RegionHealthCheckServicesService{s: s}
804	return rs
805}
806
807type RegionHealthCheckServicesService struct {
808	s *Service
809}
810
811func NewRegionHealthChecksService(s *Service) *RegionHealthChecksService {
812	rs := &RegionHealthChecksService{s: s}
813	return rs
814}
815
816type RegionHealthChecksService struct {
817	s *Service
818}
819
820func NewRegionInstanceGroupManagersService(s *Service) *RegionInstanceGroupManagersService {
821	rs := &RegionInstanceGroupManagersService{s: s}
822	return rs
823}
824
825type RegionInstanceGroupManagersService struct {
826	s *Service
827}
828
829func NewRegionInstanceGroupsService(s *Service) *RegionInstanceGroupsService {
830	rs := &RegionInstanceGroupsService{s: s}
831	return rs
832}
833
834type RegionInstanceGroupsService struct {
835	s *Service
836}
837
838func NewRegionNotificationEndpointsService(s *Service) *RegionNotificationEndpointsService {
839	rs := &RegionNotificationEndpointsService{s: s}
840	return rs
841}
842
843type RegionNotificationEndpointsService struct {
844	s *Service
845}
846
847func NewRegionOperationsService(s *Service) *RegionOperationsService {
848	rs := &RegionOperationsService{s: s}
849	return rs
850}
851
852type RegionOperationsService struct {
853	s *Service
854}
855
856func NewRegionSslCertificatesService(s *Service) *RegionSslCertificatesService {
857	rs := &RegionSslCertificatesService{s: s}
858	return rs
859}
860
861type RegionSslCertificatesService struct {
862	s *Service
863}
864
865func NewRegionTargetHttpProxiesService(s *Service) *RegionTargetHttpProxiesService {
866	rs := &RegionTargetHttpProxiesService{s: s}
867	return rs
868}
869
870type RegionTargetHttpProxiesService struct {
871	s *Service
872}
873
874func NewRegionTargetHttpsProxiesService(s *Service) *RegionTargetHttpsProxiesService {
875	rs := &RegionTargetHttpsProxiesService{s: s}
876	return rs
877}
878
879type RegionTargetHttpsProxiesService struct {
880	s *Service
881}
882
883func NewRegionUrlMapsService(s *Service) *RegionUrlMapsService {
884	rs := &RegionUrlMapsService{s: s}
885	return rs
886}
887
888type RegionUrlMapsService struct {
889	s *Service
890}
891
892func NewRegionsService(s *Service) *RegionsService {
893	rs := &RegionsService{s: s}
894	return rs
895}
896
897type RegionsService struct {
898	s *Service
899}
900
901func NewReservationsService(s *Service) *ReservationsService {
902	rs := &ReservationsService{s: s}
903	return rs
904}
905
906type ReservationsService struct {
907	s *Service
908}
909
910func NewResourcePoliciesService(s *Service) *ResourcePoliciesService {
911	rs := &ResourcePoliciesService{s: s}
912	return rs
913}
914
915type ResourcePoliciesService struct {
916	s *Service
917}
918
919func NewRoutersService(s *Service) *RoutersService {
920	rs := &RoutersService{s: s}
921	return rs
922}
923
924type RoutersService struct {
925	s *Service
926}
927
928func NewRoutesService(s *Service) *RoutesService {
929	rs := &RoutesService{s: s}
930	return rs
931}
932
933type RoutesService struct {
934	s *Service
935}
936
937func NewSecurityPoliciesService(s *Service) *SecurityPoliciesService {
938	rs := &SecurityPoliciesService{s: s}
939	return rs
940}
941
942type SecurityPoliciesService struct {
943	s *Service
944}
945
946func NewSnapshotsService(s *Service) *SnapshotsService {
947	rs := &SnapshotsService{s: s}
948	return rs
949}
950
951type SnapshotsService struct {
952	s *Service
953}
954
955func NewSslCertificatesService(s *Service) *SslCertificatesService {
956	rs := &SslCertificatesService{s: s}
957	return rs
958}
959
960type SslCertificatesService struct {
961	s *Service
962}
963
964func NewSslPoliciesService(s *Service) *SslPoliciesService {
965	rs := &SslPoliciesService{s: s}
966	return rs
967}
968
969type SslPoliciesService struct {
970	s *Service
971}
972
973func NewSubnetworksService(s *Service) *SubnetworksService {
974	rs := &SubnetworksService{s: s}
975	return rs
976}
977
978type SubnetworksService struct {
979	s *Service
980}
981
982func NewTargetHttpProxiesService(s *Service) *TargetHttpProxiesService {
983	rs := &TargetHttpProxiesService{s: s}
984	return rs
985}
986
987type TargetHttpProxiesService struct {
988	s *Service
989}
990
991func NewTargetHttpsProxiesService(s *Service) *TargetHttpsProxiesService {
992	rs := &TargetHttpsProxiesService{s: s}
993	return rs
994}
995
996type TargetHttpsProxiesService struct {
997	s *Service
998}
999
1000func NewTargetInstancesService(s *Service) *TargetInstancesService {
1001	rs := &TargetInstancesService{s: s}
1002	return rs
1003}
1004
1005type TargetInstancesService struct {
1006	s *Service
1007}
1008
1009func NewTargetPoolsService(s *Service) *TargetPoolsService {
1010	rs := &TargetPoolsService{s: s}
1011	return rs
1012}
1013
1014type TargetPoolsService struct {
1015	s *Service
1016}
1017
1018func NewTargetSslProxiesService(s *Service) *TargetSslProxiesService {
1019	rs := &TargetSslProxiesService{s: s}
1020	return rs
1021}
1022
1023type TargetSslProxiesService struct {
1024	s *Service
1025}
1026
1027func NewTargetTcpProxiesService(s *Service) *TargetTcpProxiesService {
1028	rs := &TargetTcpProxiesService{s: s}
1029	return rs
1030}
1031
1032type TargetTcpProxiesService struct {
1033	s *Service
1034}
1035
1036func NewTargetVpnGatewaysService(s *Service) *TargetVpnGatewaysService {
1037	rs := &TargetVpnGatewaysService{s: s}
1038	return rs
1039}
1040
1041type TargetVpnGatewaysService struct {
1042	s *Service
1043}
1044
1045func NewUrlMapsService(s *Service) *UrlMapsService {
1046	rs := &UrlMapsService{s: s}
1047	return rs
1048}
1049
1050type UrlMapsService struct {
1051	s *Service
1052}
1053
1054func NewVpnGatewaysService(s *Service) *VpnGatewaysService {
1055	rs := &VpnGatewaysService{s: s}
1056	return rs
1057}
1058
1059type VpnGatewaysService struct {
1060	s *Service
1061}
1062
1063func NewVpnTunnelsService(s *Service) *VpnTunnelsService {
1064	rs := &VpnTunnelsService{s: s}
1065	return rs
1066}
1067
1068type VpnTunnelsService struct {
1069	s *Service
1070}
1071
1072func NewZoneOperationsService(s *Service) *ZoneOperationsService {
1073	rs := &ZoneOperationsService{s: s}
1074	return rs
1075}
1076
1077type ZoneOperationsService struct {
1078	s *Service
1079}
1080
1081func NewZonesService(s *Service) *ZonesService {
1082	rs := &ZonesService{s: s}
1083	return rs
1084}
1085
1086type ZonesService struct {
1087	s *Service
1088}
1089
1090// AcceleratorConfig: A specification of the type and number of
1091// accelerator cards attached to the instance.
1092type AcceleratorConfig struct {
1093	// AcceleratorCount: The number of the guest accelerator cards exposed
1094	// to this instance.
1095	AcceleratorCount int64 `json:"acceleratorCount,omitempty"`
1096
1097	// AcceleratorType: Full or partial URL of the accelerator type resource
1098	// to attach to this instance. For example:
1099	// projects/my-project/zones/us-central1-c/acceleratorTypes/nvidia-tesla-
1100	// p100 If you are creating an instance template, specify only the
1101	// accelerator name. See GPUs on Compute Engine for a full list of
1102	// accelerator types.
1103	AcceleratorType string `json:"acceleratorType,omitempty"`
1104
1105	// ForceSendFields is a list of field names (e.g. "AcceleratorCount") to
1106	// unconditionally include in API requests. By default, fields with
1107	// empty values are omitted from API requests. However, any non-pointer,
1108	// non-interface field appearing in ForceSendFields will be sent to the
1109	// server regardless of whether the field is empty or not. This may be
1110	// used to include empty fields in Patch requests.
1111	ForceSendFields []string `json:"-"`
1112
1113	// NullFields is a list of field names (e.g. "AcceleratorCount") to
1114	// include in API requests with the JSON null value. By default, fields
1115	// with empty values are omitted from API requests. However, any field
1116	// with an empty value appearing in NullFields will be sent to the
1117	// server as null. It is an error if a field in this list has a
1118	// non-empty value. This may be used to include null fields in Patch
1119	// requests.
1120	NullFields []string `json:"-"`
1121}
1122
1123func (s *AcceleratorConfig) MarshalJSON() ([]byte, error) {
1124	type NoMethod AcceleratorConfig
1125	raw := NoMethod(*s)
1126	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1127}
1128
1129// AcceleratorType: Represents an Accelerator Type resource.
1130//
1131// Google Cloud Platform provides graphics processing units
1132// (accelerators) that you can add to VM instances to improve or
1133// accelerate performance when working with intensive workloads. For
1134// more information, read GPUs on Compute Engine. (== resource_for
1135// beta.acceleratorTypes ==) (== resource_for v1.acceleratorTypes ==)
1136type AcceleratorType struct {
1137	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
1138	// format.
1139	CreationTimestamp string `json:"creationTimestamp,omitempty"`
1140
1141	// Deprecated: [Output Only] The deprecation status associated with this
1142	// accelerator type.
1143	Deprecated *DeprecationStatus `json:"deprecated,omitempty"`
1144
1145	// Description: [Output Only] An optional textual description of the
1146	// resource.
1147	Description string `json:"description,omitempty"`
1148
1149	// Id: [Output Only] The unique identifier for the resource. This
1150	// identifier is defined by the server.
1151	Id uint64 `json:"id,omitempty,string"`
1152
1153	// Kind: [Output Only] The type of the resource. Always
1154	// compute#acceleratorType for accelerator types.
1155	Kind string `json:"kind,omitempty"`
1156
1157	// MaximumCardsPerInstance: [Output Only] Maximum accelerator cards
1158	// allowed per instance.
1159	MaximumCardsPerInstance int64 `json:"maximumCardsPerInstance,omitempty"`
1160
1161	// Name: [Output Only] Name of the resource.
1162	Name string `json:"name,omitempty"`
1163
1164	// SelfLink: [Output Only] Server-defined fully-qualified URL for this
1165	// resource.
1166	SelfLink string `json:"selfLink,omitempty"`
1167
1168	// SelfLinkWithId: [Output Only] Server-defined URL for this resource's
1169	// resource id.
1170	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
1171
1172	// Zone: [Output Only] The name of the zone where the accelerator type
1173	// resides, such as us-central1-a. You must specify this field as part
1174	// of the HTTP request URL. It is not settable as a field in the request
1175	// body.
1176	Zone string `json:"zone,omitempty"`
1177
1178	// ServerResponse contains the HTTP response code and headers from the
1179	// server.
1180	googleapi.ServerResponse `json:"-"`
1181
1182	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
1183	// to unconditionally include in API requests. By default, fields with
1184	// empty values are omitted from API requests. However, any non-pointer,
1185	// non-interface field appearing in ForceSendFields will be sent to the
1186	// server regardless of whether the field is empty or not. This may be
1187	// used to include empty fields in Patch requests.
1188	ForceSendFields []string `json:"-"`
1189
1190	// NullFields is a list of field names (e.g. "CreationTimestamp") to
1191	// include in API requests with the JSON null value. By default, fields
1192	// with empty values are omitted from API requests. However, any field
1193	// with an empty value appearing in NullFields will be sent to the
1194	// server as null. It is an error if a field in this list has a
1195	// non-empty value. This may be used to include null fields in Patch
1196	// requests.
1197	NullFields []string `json:"-"`
1198}
1199
1200func (s *AcceleratorType) MarshalJSON() ([]byte, error) {
1201	type NoMethod AcceleratorType
1202	raw := NoMethod(*s)
1203	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1204}
1205
1206type AcceleratorTypeAggregatedList struct {
1207	// Id: [Output Only] Unique identifier for the resource; defined by the
1208	// server.
1209	Id string `json:"id,omitempty"`
1210
1211	// Items: A list of AcceleratorTypesScopedList resources.
1212	Items map[string]AcceleratorTypesScopedList `json:"items,omitempty"`
1213
1214	// Kind: [Output Only] Type of resource. Always
1215	// compute#acceleratorTypeAggregatedList for aggregated lists of
1216	// accelerator types.
1217	Kind string `json:"kind,omitempty"`
1218
1219	// NextPageToken: [Output Only] This token allows you to get the next
1220	// page of results for list requests. If the number of results is larger
1221	// than maxResults, use the nextPageToken as a value for the query
1222	// parameter pageToken in the next list request. Subsequent list
1223	// requests will have their own nextPageToken to continue paging through
1224	// the results.
1225	NextPageToken string `json:"nextPageToken,omitempty"`
1226
1227	// SelfLink: [Output Only] Server-defined URL for this resource.
1228	SelfLink string `json:"selfLink,omitempty"`
1229
1230	// Warning: [Output Only] Informational warning message.
1231	Warning *AcceleratorTypeAggregatedListWarning `json:"warning,omitempty"`
1232
1233	// ServerResponse contains the HTTP response code and headers from the
1234	// server.
1235	googleapi.ServerResponse `json:"-"`
1236
1237	// ForceSendFields is a list of field names (e.g. "Id") to
1238	// unconditionally include in API requests. By default, fields with
1239	// empty values are omitted from API requests. However, any non-pointer,
1240	// non-interface field appearing in ForceSendFields will be sent to the
1241	// server regardless of whether the field is empty or not. This may be
1242	// used to include empty fields in Patch requests.
1243	ForceSendFields []string `json:"-"`
1244
1245	// NullFields is a list of field names (e.g. "Id") to include in API
1246	// requests with the JSON null value. By default, fields with empty
1247	// values are omitted from API requests. However, any field with an
1248	// empty value appearing in NullFields will be sent to the server as
1249	// null. It is an error if a field in this list has a non-empty value.
1250	// This may be used to include null fields in Patch requests.
1251	NullFields []string `json:"-"`
1252}
1253
1254func (s *AcceleratorTypeAggregatedList) MarshalJSON() ([]byte, error) {
1255	type NoMethod AcceleratorTypeAggregatedList
1256	raw := NoMethod(*s)
1257	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1258}
1259
1260// AcceleratorTypeAggregatedListWarning: [Output Only] Informational
1261// warning message.
1262type AcceleratorTypeAggregatedListWarning struct {
1263	// Code: [Output Only] A warning code, if applicable. For example,
1264	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
1265	// the response.
1266	//
1267	// Possible values:
1268	//   "CLEANUP_FAILED"
1269	//   "DEPRECATED_RESOURCE_USED"
1270	//   "DEPRECATED_TYPE_USED"
1271	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
1272	//   "EXPERIMENTAL_TYPE_USED"
1273	//   "EXTERNAL_API_WARNING"
1274	//   "FIELD_VALUE_OVERRIDEN"
1275	//   "INJECTED_KERNELS_DEPRECATED"
1276	//   "MISSING_TYPE_DEPENDENCY"
1277	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
1278	//   "NEXT_HOP_CANNOT_IP_FORWARD"
1279	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
1280	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
1281	//   "NEXT_HOP_NOT_RUNNING"
1282	//   "NOT_CRITICAL_ERROR"
1283	//   "NO_RESULTS_ON_PAGE"
1284	//   "REQUIRED_TOS_AGREEMENT"
1285	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
1286	//   "RESOURCE_NOT_DELETED"
1287	//   "SCHEMA_VALIDATION_IGNORED"
1288	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
1289	//   "UNDECLARED_PROPERTIES"
1290	//   "UNREACHABLE"
1291	Code string `json:"code,omitempty"`
1292
1293	// Data: [Output Only] Metadata about this warning in key: value format.
1294	// For example:
1295	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
1296	Data []*AcceleratorTypeAggregatedListWarningData `json:"data,omitempty"`
1297
1298	// Message: [Output Only] A human-readable description of the warning
1299	// code.
1300	Message string `json:"message,omitempty"`
1301
1302	// ForceSendFields is a list of field names (e.g. "Code") to
1303	// unconditionally include in API requests. By default, fields with
1304	// empty values are omitted from API requests. However, any non-pointer,
1305	// non-interface field appearing in ForceSendFields will be sent to the
1306	// server regardless of whether the field is empty or not. This may be
1307	// used to include empty fields in Patch requests.
1308	ForceSendFields []string `json:"-"`
1309
1310	// NullFields is a list of field names (e.g. "Code") to include in API
1311	// requests with the JSON null value. By default, fields with empty
1312	// values are omitted from API requests. However, any field with an
1313	// empty value appearing in NullFields will be sent to the server as
1314	// null. It is an error if a field in this list has a non-empty value.
1315	// This may be used to include null fields in Patch requests.
1316	NullFields []string `json:"-"`
1317}
1318
1319func (s *AcceleratorTypeAggregatedListWarning) MarshalJSON() ([]byte, error) {
1320	type NoMethod AcceleratorTypeAggregatedListWarning
1321	raw := NoMethod(*s)
1322	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1323}
1324
1325type AcceleratorTypeAggregatedListWarningData struct {
1326	// Key: [Output Only] A key that provides more detail on the warning
1327	// being returned. For example, for warnings where there are no results
1328	// in a list request for a particular zone, this key might be scope and
1329	// the key value might be the zone name. Other examples might be a key
1330	// indicating a deprecated resource and a suggested replacement, or a
1331	// warning about invalid network settings (for example, if an instance
1332	// attempts to perform IP forwarding but is not enabled for IP
1333	// forwarding).
1334	Key string `json:"key,omitempty"`
1335
1336	// Value: [Output Only] A warning data value corresponding to the key.
1337	Value string `json:"value,omitempty"`
1338
1339	// ForceSendFields is a list of field names (e.g. "Key") to
1340	// unconditionally include in API requests. By default, fields with
1341	// empty values are omitted from API requests. However, any non-pointer,
1342	// non-interface field appearing in ForceSendFields will be sent to the
1343	// server regardless of whether the field is empty or not. This may be
1344	// used to include empty fields in Patch requests.
1345	ForceSendFields []string `json:"-"`
1346
1347	// NullFields is a list of field names (e.g. "Key") to include in API
1348	// requests with the JSON null value. By default, fields with empty
1349	// values are omitted from API requests. However, any field with an
1350	// empty value appearing in NullFields will be sent to the server as
1351	// null. It is an error if a field in this list has a non-empty value.
1352	// This may be used to include null fields in Patch requests.
1353	NullFields []string `json:"-"`
1354}
1355
1356func (s *AcceleratorTypeAggregatedListWarningData) MarshalJSON() ([]byte, error) {
1357	type NoMethod AcceleratorTypeAggregatedListWarningData
1358	raw := NoMethod(*s)
1359	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1360}
1361
1362// AcceleratorTypeList: Contains a list of accelerator types.
1363type AcceleratorTypeList struct {
1364	// Id: [Output Only] Unique identifier for the resource; defined by the
1365	// server.
1366	Id string `json:"id,omitempty"`
1367
1368	// Items: A list of AcceleratorType resources.
1369	Items []*AcceleratorType `json:"items,omitempty"`
1370
1371	// Kind: [Output Only] Type of resource. Always
1372	// compute#acceleratorTypeList for lists of accelerator types.
1373	Kind string `json:"kind,omitempty"`
1374
1375	// NextPageToken: [Output Only] This token allows you to get the next
1376	// page of results for list requests. If the number of results is larger
1377	// than maxResults, use the nextPageToken as a value for the query
1378	// parameter pageToken in the next list request. Subsequent list
1379	// requests will have their own nextPageToken to continue paging through
1380	// the results.
1381	NextPageToken string `json:"nextPageToken,omitempty"`
1382
1383	// SelfLink: [Output Only] Server-defined URL for this resource.
1384	SelfLink string `json:"selfLink,omitempty"`
1385
1386	// Warning: [Output Only] Informational warning message.
1387	Warning *AcceleratorTypeListWarning `json:"warning,omitempty"`
1388
1389	// ServerResponse contains the HTTP response code and headers from the
1390	// server.
1391	googleapi.ServerResponse `json:"-"`
1392
1393	// ForceSendFields is a list of field names (e.g. "Id") to
1394	// unconditionally include in API requests. By default, fields with
1395	// empty values are omitted from API requests. However, any non-pointer,
1396	// non-interface field appearing in ForceSendFields will be sent to the
1397	// server regardless of whether the field is empty or not. This may be
1398	// used to include empty fields in Patch requests.
1399	ForceSendFields []string `json:"-"`
1400
1401	// NullFields is a list of field names (e.g. "Id") to include in API
1402	// requests with the JSON null value. By default, fields with empty
1403	// values are omitted from API requests. However, any field with an
1404	// empty value appearing in NullFields will be sent to the server as
1405	// null. It is an error if a field in this list has a non-empty value.
1406	// This may be used to include null fields in Patch requests.
1407	NullFields []string `json:"-"`
1408}
1409
1410func (s *AcceleratorTypeList) MarshalJSON() ([]byte, error) {
1411	type NoMethod AcceleratorTypeList
1412	raw := NoMethod(*s)
1413	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1414}
1415
1416// AcceleratorTypeListWarning: [Output Only] Informational warning
1417// message.
1418type AcceleratorTypeListWarning struct {
1419	// Code: [Output Only] A warning code, if applicable. For example,
1420	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
1421	// the response.
1422	//
1423	// Possible values:
1424	//   "CLEANUP_FAILED"
1425	//   "DEPRECATED_RESOURCE_USED"
1426	//   "DEPRECATED_TYPE_USED"
1427	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
1428	//   "EXPERIMENTAL_TYPE_USED"
1429	//   "EXTERNAL_API_WARNING"
1430	//   "FIELD_VALUE_OVERRIDEN"
1431	//   "INJECTED_KERNELS_DEPRECATED"
1432	//   "MISSING_TYPE_DEPENDENCY"
1433	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
1434	//   "NEXT_HOP_CANNOT_IP_FORWARD"
1435	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
1436	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
1437	//   "NEXT_HOP_NOT_RUNNING"
1438	//   "NOT_CRITICAL_ERROR"
1439	//   "NO_RESULTS_ON_PAGE"
1440	//   "REQUIRED_TOS_AGREEMENT"
1441	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
1442	//   "RESOURCE_NOT_DELETED"
1443	//   "SCHEMA_VALIDATION_IGNORED"
1444	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
1445	//   "UNDECLARED_PROPERTIES"
1446	//   "UNREACHABLE"
1447	Code string `json:"code,omitempty"`
1448
1449	// Data: [Output Only] Metadata about this warning in key: value format.
1450	// For example:
1451	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
1452	Data []*AcceleratorTypeListWarningData `json:"data,omitempty"`
1453
1454	// Message: [Output Only] A human-readable description of the warning
1455	// code.
1456	Message string `json:"message,omitempty"`
1457
1458	// ForceSendFields is a list of field names (e.g. "Code") to
1459	// unconditionally include in API requests. By default, fields with
1460	// empty values are omitted from API requests. However, any non-pointer,
1461	// non-interface field appearing in ForceSendFields will be sent to the
1462	// server regardless of whether the field is empty or not. This may be
1463	// used to include empty fields in Patch requests.
1464	ForceSendFields []string `json:"-"`
1465
1466	// NullFields is a list of field names (e.g. "Code") to include in API
1467	// requests with the JSON null value. By default, fields with empty
1468	// values are omitted from API requests. However, any field with an
1469	// empty value appearing in NullFields will be sent to the server as
1470	// null. It is an error if a field in this list has a non-empty value.
1471	// This may be used to include null fields in Patch requests.
1472	NullFields []string `json:"-"`
1473}
1474
1475func (s *AcceleratorTypeListWarning) MarshalJSON() ([]byte, error) {
1476	type NoMethod AcceleratorTypeListWarning
1477	raw := NoMethod(*s)
1478	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1479}
1480
1481type AcceleratorTypeListWarningData struct {
1482	// Key: [Output Only] A key that provides more detail on the warning
1483	// being returned. For example, for warnings where there are no results
1484	// in a list request for a particular zone, this key might be scope and
1485	// the key value might be the zone name. Other examples might be a key
1486	// indicating a deprecated resource and a suggested replacement, or a
1487	// warning about invalid network settings (for example, if an instance
1488	// attempts to perform IP forwarding but is not enabled for IP
1489	// forwarding).
1490	Key string `json:"key,omitempty"`
1491
1492	// Value: [Output Only] A warning data value corresponding to the key.
1493	Value string `json:"value,omitempty"`
1494
1495	// ForceSendFields is a list of field names (e.g. "Key") to
1496	// unconditionally include in API requests. By default, fields with
1497	// empty values are omitted from API requests. However, any non-pointer,
1498	// non-interface field appearing in ForceSendFields will be sent to the
1499	// server regardless of whether the field is empty or not. This may be
1500	// used to include empty fields in Patch requests.
1501	ForceSendFields []string `json:"-"`
1502
1503	// NullFields is a list of field names (e.g. "Key") to include in API
1504	// requests with the JSON null value. By default, fields with empty
1505	// values are omitted from API requests. However, any field with an
1506	// empty value appearing in NullFields will be sent to the server as
1507	// null. It is an error if a field in this list has a non-empty value.
1508	// This may be used to include null fields in Patch requests.
1509	NullFields []string `json:"-"`
1510}
1511
1512func (s *AcceleratorTypeListWarningData) MarshalJSON() ([]byte, error) {
1513	type NoMethod AcceleratorTypeListWarningData
1514	raw := NoMethod(*s)
1515	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1516}
1517
1518type AcceleratorTypesScopedList struct {
1519	// AcceleratorTypes: [Output Only] A list of accelerator types contained
1520	// in this scope.
1521	AcceleratorTypes []*AcceleratorType `json:"acceleratorTypes,omitempty"`
1522
1523	// Warning: [Output Only] An informational warning that appears when the
1524	// accelerator types list is empty.
1525	Warning *AcceleratorTypesScopedListWarning `json:"warning,omitempty"`
1526
1527	// ForceSendFields is a list of field names (e.g. "AcceleratorTypes") to
1528	// unconditionally include in API requests. By default, fields with
1529	// empty values are omitted from API requests. However, any non-pointer,
1530	// non-interface field appearing in ForceSendFields will be sent to the
1531	// server regardless of whether the field is empty or not. This may be
1532	// used to include empty fields in Patch requests.
1533	ForceSendFields []string `json:"-"`
1534
1535	// NullFields is a list of field names (e.g. "AcceleratorTypes") to
1536	// include in API requests with the JSON null value. By default, fields
1537	// with empty values are omitted from API requests. However, any field
1538	// with an empty value appearing in NullFields will be sent to the
1539	// server as null. It is an error if a field in this list has a
1540	// non-empty value. This may be used to include null fields in Patch
1541	// requests.
1542	NullFields []string `json:"-"`
1543}
1544
1545func (s *AcceleratorTypesScopedList) MarshalJSON() ([]byte, error) {
1546	type NoMethod AcceleratorTypesScopedList
1547	raw := NoMethod(*s)
1548	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1549}
1550
1551// AcceleratorTypesScopedListWarning: [Output Only] An informational
1552// warning that appears when the accelerator types list is empty.
1553type AcceleratorTypesScopedListWarning struct {
1554	// Code: [Output Only] A warning code, if applicable. For example,
1555	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
1556	// the response.
1557	//
1558	// Possible values:
1559	//   "CLEANUP_FAILED"
1560	//   "DEPRECATED_RESOURCE_USED"
1561	//   "DEPRECATED_TYPE_USED"
1562	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
1563	//   "EXPERIMENTAL_TYPE_USED"
1564	//   "EXTERNAL_API_WARNING"
1565	//   "FIELD_VALUE_OVERRIDEN"
1566	//   "INJECTED_KERNELS_DEPRECATED"
1567	//   "MISSING_TYPE_DEPENDENCY"
1568	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
1569	//   "NEXT_HOP_CANNOT_IP_FORWARD"
1570	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
1571	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
1572	//   "NEXT_HOP_NOT_RUNNING"
1573	//   "NOT_CRITICAL_ERROR"
1574	//   "NO_RESULTS_ON_PAGE"
1575	//   "REQUIRED_TOS_AGREEMENT"
1576	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
1577	//   "RESOURCE_NOT_DELETED"
1578	//   "SCHEMA_VALIDATION_IGNORED"
1579	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
1580	//   "UNDECLARED_PROPERTIES"
1581	//   "UNREACHABLE"
1582	Code string `json:"code,omitempty"`
1583
1584	// Data: [Output Only] Metadata about this warning in key: value format.
1585	// For example:
1586	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
1587	Data []*AcceleratorTypesScopedListWarningData `json:"data,omitempty"`
1588
1589	// Message: [Output Only] A human-readable description of the warning
1590	// code.
1591	Message string `json:"message,omitempty"`
1592
1593	// ForceSendFields is a list of field names (e.g. "Code") to
1594	// unconditionally include in API requests. By default, fields with
1595	// empty values are omitted from API requests. However, any non-pointer,
1596	// non-interface field appearing in ForceSendFields will be sent to the
1597	// server regardless of whether the field is empty or not. This may be
1598	// used to include empty fields in Patch requests.
1599	ForceSendFields []string `json:"-"`
1600
1601	// NullFields is a list of field names (e.g. "Code") to include in API
1602	// requests with the JSON null value. By default, fields with empty
1603	// values are omitted from API requests. However, any field with an
1604	// empty value appearing in NullFields will be sent to the server as
1605	// null. It is an error if a field in this list has a non-empty value.
1606	// This may be used to include null fields in Patch requests.
1607	NullFields []string `json:"-"`
1608}
1609
1610func (s *AcceleratorTypesScopedListWarning) MarshalJSON() ([]byte, error) {
1611	type NoMethod AcceleratorTypesScopedListWarning
1612	raw := NoMethod(*s)
1613	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1614}
1615
1616type AcceleratorTypesScopedListWarningData struct {
1617	// Key: [Output Only] A key that provides more detail on the warning
1618	// being returned. For example, for warnings where there are no results
1619	// in a list request for a particular zone, this key might be scope and
1620	// the key value might be the zone name. Other examples might be a key
1621	// indicating a deprecated resource and a suggested replacement, or a
1622	// warning about invalid network settings (for example, if an instance
1623	// attempts to perform IP forwarding but is not enabled for IP
1624	// forwarding).
1625	Key string `json:"key,omitempty"`
1626
1627	// Value: [Output Only] A warning data value corresponding to the key.
1628	Value string `json:"value,omitempty"`
1629
1630	// ForceSendFields is a list of field names (e.g. "Key") to
1631	// unconditionally include in API requests. By default, fields with
1632	// empty values are omitted from API requests. However, any non-pointer,
1633	// non-interface field appearing in ForceSendFields will be sent to the
1634	// server regardless of whether the field is empty or not. This may be
1635	// used to include empty fields in Patch requests.
1636	ForceSendFields []string `json:"-"`
1637
1638	// NullFields is a list of field names (e.g. "Key") to include in API
1639	// requests with the JSON null value. By default, fields with empty
1640	// values are omitted from API requests. However, any field with an
1641	// empty value appearing in NullFields will be sent to the server as
1642	// null. It is an error if a field in this list has a non-empty value.
1643	// This may be used to include null fields in Patch requests.
1644	NullFields []string `json:"-"`
1645}
1646
1647func (s *AcceleratorTypesScopedListWarningData) MarshalJSON() ([]byte, error) {
1648	type NoMethod AcceleratorTypesScopedListWarningData
1649	raw := NoMethod(*s)
1650	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1651}
1652
1653// AccessConfig: An access configuration attached to an instance's
1654// network interface. Only one access config per instance is supported.
1655type AccessConfig struct {
1656	// Kind: [Output Only] Type of the resource. Always compute#accessConfig
1657	// for access configs.
1658	Kind string `json:"kind,omitempty"`
1659
1660	// Name: The name of this access configuration. The default and
1661	// recommended name is External NAT, but you can use any arbitrary
1662	// string, such as My external IP or Network Access.
1663	Name string `json:"name,omitempty"`
1664
1665	// NatIP: An external IP address associated with this instance. Specify
1666	// an unused static external IP address available to the project or
1667	// leave this field undefined to use an IP from a shared ephemeral IP
1668	// address pool. If you specify a static external IP address, it must
1669	// live in the same region as the zone of the instance.
1670	NatIP string `json:"natIP,omitempty"`
1671
1672	// NetworkTier: This signifies the networking tier used for configuring
1673	// this access configuration and can only take the following values:
1674	// PREMIUM, STANDARD.
1675	//
1676	// If an AccessConfig is specified without a valid external IP address,
1677	// an ephemeral IP will be created with this networkTier.
1678	//
1679	// If an AccessConfig with a valid external IP address is specified, it
1680	// must match that of the networkTier associated with the Address
1681	// resource owning that IP.
1682	//
1683	// Possible values:
1684	//   "PREMIUM"
1685	//   "SELECT"
1686	//   "STANDARD"
1687	NetworkTier string `json:"networkTier,omitempty"`
1688
1689	// PublicDnsName: [Output Only] The public DNS domain name for the
1690	// instance.
1691	PublicDnsName string `json:"publicDnsName,omitempty"`
1692
1693	// PublicPtrDomainName: The DNS domain name for the public PTR record.
1694	// You can set this field only if the `setPublicPtr` field is enabled.
1695	PublicPtrDomainName string `json:"publicPtrDomainName,omitempty"`
1696
1697	// SetPublicDns: Specifies whether a public DNS ?A? record should be
1698	// created for the external IP address of this access configuration.
1699	SetPublicDns bool `json:"setPublicDns,omitempty"`
1700
1701	// SetPublicPtr: Specifies whether a public DNS 'PTR' record should be
1702	// created to map the external IP address of the instance to a DNS
1703	// domain name.
1704	SetPublicPtr bool `json:"setPublicPtr,omitempty"`
1705
1706	// Type: The type of configuration. The default and only option is
1707	// ONE_TO_ONE_NAT.
1708	//
1709	// Possible values:
1710	//   "ONE_TO_ONE_NAT" (default)
1711	Type string `json:"type,omitempty"`
1712
1713	// ForceSendFields is a list of field names (e.g. "Kind") to
1714	// unconditionally include in API requests. By default, fields with
1715	// empty values are omitted from API requests. However, any non-pointer,
1716	// non-interface field appearing in ForceSendFields will be sent to the
1717	// server regardless of whether the field is empty or not. This may be
1718	// used to include empty fields in Patch requests.
1719	ForceSendFields []string `json:"-"`
1720
1721	// NullFields is a list of field names (e.g. "Kind") to include in API
1722	// requests with the JSON null value. By default, fields with empty
1723	// values are omitted from API requests. However, any field with an
1724	// empty value appearing in NullFields will be sent to the server as
1725	// null. It is an error if a field in this list has a non-empty value.
1726	// This may be used to include null fields in Patch requests.
1727	NullFields []string `json:"-"`
1728}
1729
1730func (s *AccessConfig) MarshalJSON() ([]byte, error) {
1731	type NoMethod AccessConfig
1732	raw := NoMethod(*s)
1733	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1734}
1735
1736// Address: Represents an IP Address resource.
1737//
1738// An address resource represents a regional internal IP address.
1739// Regional internal IP addresses are RFC 1918 addresses that come from
1740// either a primary or secondary IP range of a subnet in a VPC network.
1741// Regional external IP addresses can be assigned to GCP VM instances,
1742// Cloud VPN gateways, regional external forwarding rules for network
1743// load balancers (in either Standard or Premium Tier), and regional
1744// external forwarding rules for HTTP(S), SSL Proxy, and TCP Proxy load
1745// balancers in Standard Tier. For more information, read IP
1746// addresses.
1747//
1748// A globalAddresses resource represent a global external IP address.
1749// Global external IP addresses are IPv4 or IPv6 addresses. They can
1750// only be assigned to global forwarding rules for HTTP(S), SSL Proxy,
1751// or TCP Proxy load balancers in Premium Tier. For more information,
1752// read Global resources. (== resource_for beta.addresses ==) (==
1753// resource_for v1.addresses ==) (== resource_for beta.globalAddresses
1754// ==) (== resource_for v1.globalAddresses ==)
1755type Address struct {
1756	// Address: The static IP address represented by this resource.
1757	Address string `json:"address,omitempty"`
1758
1759	// AddressType: The type of address to reserve, either INTERNAL or
1760	// EXTERNAL. If unspecified, defaults to EXTERNAL.
1761	//
1762	// Possible values:
1763	//   "DNS_FORWARDING"
1764	//   "EXTERNAL"
1765	//   "INTERNAL"
1766	//   "UNSPECIFIED_TYPE"
1767	AddressType string `json:"addressType,omitempty"`
1768
1769	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
1770	// format.
1771	CreationTimestamp string `json:"creationTimestamp,omitempty"`
1772
1773	// Description: An optional description of this resource. Provide this
1774	// field when you create the resource.
1775	Description string `json:"description,omitempty"`
1776
1777	// Id: [Output Only] The unique identifier for the resource. This
1778	// identifier is defined by the server.
1779	Id uint64 `json:"id,omitempty,string"`
1780
1781	// IpVersion: The IP version that will be used by this address. Valid
1782	// options are IPV4 or IPV6. This can only be specified for a global
1783	// address.
1784	//
1785	// Possible values:
1786	//   "IPV4"
1787	//   "IPV6"
1788	//   "UNSPECIFIED_VERSION"
1789	IpVersion string `json:"ipVersion,omitempty"`
1790
1791	// Kind: [Output Only] Type of the resource. Always compute#address for
1792	// addresses.
1793	Kind string `json:"kind,omitempty"`
1794
1795	// LabelFingerprint: A fingerprint for the labels being applied to this
1796	// Address, which is essentially a hash of the labels set used for
1797	// optimistic locking. The fingerprint is initially generated by Compute
1798	// Engine and changes after every request to modify or update labels.
1799	// You must always provide an up-to-date fingerprint hash in order to
1800	// update or change labels, otherwise the request will fail with error
1801	// 412 conditionNotMet.
1802	//
1803	// To see the latest fingerprint, make a get() request to retrieve an
1804	// Address.
1805	LabelFingerprint string `json:"labelFingerprint,omitempty"`
1806
1807	// Labels: Labels to apply to this Address resource. These can be later
1808	// modified by the setLabels method. Each label key/value must comply
1809	// with RFC1035. Label values may be empty.
1810	Labels map[string]string `json:"labels,omitempty"`
1811
1812	// Name: Name of the resource. Provided by the client when the resource
1813	// is created. The name must be 1-63 characters long, and comply with
1814	// RFC1035. Specifically, the name must be 1-63 characters long and
1815	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?`. The first
1816	// character must be a lowercase letter, and all following characters
1817	// (except for the last character) must be a dash, lowercase letter, or
1818	// digit. The last character must be a lowercase letter or digit.
1819	Name string `json:"name,omitempty"`
1820
1821	// Network: The URL of the network in which to reserve the address. This
1822	// field can only be used with INTERNAL type with the VPC_PEERING
1823	// purpose.
1824	Network string `json:"network,omitempty"`
1825
1826	// NetworkTier: This signifies the networking tier used for configuring
1827	// this address and can only take the following values: PREMIUM or
1828	// STANDARD. Global forwarding rules can only be Premium Tier. Regional
1829	// forwarding rules can be either Premium or Standard Tier. Standard
1830	// Tier addresses applied to regional forwarding rules can be used with
1831	// any external load balancer. Regional forwarding rules in Premium Tier
1832	// can only be used with a network load balancer.
1833	//
1834	// If this field is not specified, it is assumed to be PREMIUM.
1835	//
1836	// Possible values:
1837	//   "PREMIUM"
1838	//   "SELECT"
1839	//   "STANDARD"
1840	NetworkTier string `json:"networkTier,omitempty"`
1841
1842	// PrefixLength: The prefix length if the resource reprensents an IP
1843	// range.
1844	PrefixLength int64 `json:"prefixLength,omitempty"`
1845
1846	// Purpose: The purpose of this resource, which can be one of the
1847	// following values:
1848	// - `GCE_ENDPOINT` for addresses that are used by VM instances, alias
1849	// IP ranges, internal load balancers, and similar resources.
1850	// - `DNS_RESOLVER` for a DNS resolver address in a subnetwork
1851	// - `VPC_PEERING` for addresses that are reserved for VPC peer
1852	// networks.
1853	// - `NAT_AUTO` for addresses that are external IP addresses
1854	// automatically reserved for Cloud NAT.
1855	//
1856	// Possible values:
1857	//   "DNS_RESOLVER"
1858	//   "GCE_ENDPOINT"
1859	//   "NAT_AUTO"
1860	//   "SHARED_LOADBALANCER_VIP"
1861	//   "VPC_PEERING"
1862	Purpose string `json:"purpose,omitempty"`
1863
1864	// Region: [Output Only] The URL of the region where the regional
1865	// address resides. This field is not applicable to global addresses.
1866	// You must specify this field as part of the HTTP request URL.
1867	Region string `json:"region,omitempty"`
1868
1869	// SelfLink: [Output Only] Server-defined URL for the resource.
1870	SelfLink string `json:"selfLink,omitempty"`
1871
1872	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
1873	// with the resource id.
1874	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
1875
1876	// Status: [Output Only] The status of the address, which can be one of
1877	// RESERVING, RESERVED, or IN_USE. An address that is RESERVING is
1878	// currently in the process of being reserved. A RESERVED address is
1879	// currently reserved and available to use. An IN_USE address is
1880	// currently being used by another resource and is not available.
1881	//
1882	// Possible values:
1883	//   "IN_USE"
1884	//   "RESERVED"
1885	//   "RESERVING"
1886	Status string `json:"status,omitempty"`
1887
1888	// Subnetwork: The URL of the subnetwork in which to reserve the
1889	// address. If an IP address is specified, it must be within the
1890	// subnetwork's IP range. This field can only be used with INTERNAL type
1891	// with a GCE_ENDPOINT or DNS_RESOLVER purpose.
1892	Subnetwork string `json:"subnetwork,omitempty"`
1893
1894	// Users: [Output Only] The URLs of the resources that are using this
1895	// address.
1896	Users []string `json:"users,omitempty"`
1897
1898	// ServerResponse contains the HTTP response code and headers from the
1899	// server.
1900	googleapi.ServerResponse `json:"-"`
1901
1902	// ForceSendFields is a list of field names (e.g. "Address") to
1903	// unconditionally include in API requests. By default, fields with
1904	// empty values are omitted from API requests. However, any non-pointer,
1905	// non-interface field appearing in ForceSendFields will be sent to the
1906	// server regardless of whether the field is empty or not. This may be
1907	// used to include empty fields in Patch requests.
1908	ForceSendFields []string `json:"-"`
1909
1910	// NullFields is a list of field names (e.g. "Address") to include in
1911	// API requests with the JSON null value. By default, fields with empty
1912	// values are omitted from API requests. However, any field with an
1913	// empty value appearing in NullFields will be sent to the server as
1914	// null. It is an error if a field in this list has a non-empty value.
1915	// This may be used to include null fields in Patch requests.
1916	NullFields []string `json:"-"`
1917}
1918
1919func (s *Address) MarshalJSON() ([]byte, error) {
1920	type NoMethod Address
1921	raw := NoMethod(*s)
1922	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1923}
1924
1925type AddressAggregatedList struct {
1926	// Id: [Output Only] Unique identifier for the resource; defined by the
1927	// server.
1928	Id string `json:"id,omitempty"`
1929
1930	// Items: A list of AddressesScopedList resources.
1931	Items map[string]AddressesScopedList `json:"items,omitempty"`
1932
1933	// Kind: [Output Only] Type of resource. Always
1934	// compute#addressAggregatedList for aggregated lists of addresses.
1935	Kind string `json:"kind,omitempty"`
1936
1937	// NextPageToken: [Output Only] This token allows you to get the next
1938	// page of results for list requests. If the number of results is larger
1939	// than maxResults, use the nextPageToken as a value for the query
1940	// parameter pageToken in the next list request. Subsequent list
1941	// requests will have their own nextPageToken to continue paging through
1942	// the results.
1943	NextPageToken string `json:"nextPageToken,omitempty"`
1944
1945	// SelfLink: [Output Only] Server-defined URL for this resource.
1946	SelfLink string `json:"selfLink,omitempty"`
1947
1948	// Warning: [Output Only] Informational warning message.
1949	Warning *AddressAggregatedListWarning `json:"warning,omitempty"`
1950
1951	// ServerResponse contains the HTTP response code and headers from the
1952	// server.
1953	googleapi.ServerResponse `json:"-"`
1954
1955	// ForceSendFields is a list of field names (e.g. "Id") to
1956	// unconditionally include in API requests. By default, fields with
1957	// empty values are omitted from API requests. However, any non-pointer,
1958	// non-interface field appearing in ForceSendFields will be sent to the
1959	// server regardless of whether the field is empty or not. This may be
1960	// used to include empty fields in Patch requests.
1961	ForceSendFields []string `json:"-"`
1962
1963	// NullFields is a list of field names (e.g. "Id") to include in API
1964	// requests with the JSON null value. By default, fields with empty
1965	// values are omitted from API requests. However, any field with an
1966	// empty value appearing in NullFields will be sent to the server as
1967	// null. It is an error if a field in this list has a non-empty value.
1968	// This may be used to include null fields in Patch requests.
1969	NullFields []string `json:"-"`
1970}
1971
1972func (s *AddressAggregatedList) MarshalJSON() ([]byte, error) {
1973	type NoMethod AddressAggregatedList
1974	raw := NoMethod(*s)
1975	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1976}
1977
1978// AddressAggregatedListWarning: [Output Only] Informational warning
1979// message.
1980type AddressAggregatedListWarning struct {
1981	// Code: [Output Only] A warning code, if applicable. For example,
1982	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
1983	// the response.
1984	//
1985	// Possible values:
1986	//   "CLEANUP_FAILED"
1987	//   "DEPRECATED_RESOURCE_USED"
1988	//   "DEPRECATED_TYPE_USED"
1989	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
1990	//   "EXPERIMENTAL_TYPE_USED"
1991	//   "EXTERNAL_API_WARNING"
1992	//   "FIELD_VALUE_OVERRIDEN"
1993	//   "INJECTED_KERNELS_DEPRECATED"
1994	//   "MISSING_TYPE_DEPENDENCY"
1995	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
1996	//   "NEXT_HOP_CANNOT_IP_FORWARD"
1997	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
1998	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
1999	//   "NEXT_HOP_NOT_RUNNING"
2000	//   "NOT_CRITICAL_ERROR"
2001	//   "NO_RESULTS_ON_PAGE"
2002	//   "REQUIRED_TOS_AGREEMENT"
2003	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
2004	//   "RESOURCE_NOT_DELETED"
2005	//   "SCHEMA_VALIDATION_IGNORED"
2006	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
2007	//   "UNDECLARED_PROPERTIES"
2008	//   "UNREACHABLE"
2009	Code string `json:"code,omitempty"`
2010
2011	// Data: [Output Only] Metadata about this warning in key: value format.
2012	// For example:
2013	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
2014	Data []*AddressAggregatedListWarningData `json:"data,omitempty"`
2015
2016	// Message: [Output Only] A human-readable description of the warning
2017	// code.
2018	Message string `json:"message,omitempty"`
2019
2020	// ForceSendFields is a list of field names (e.g. "Code") to
2021	// unconditionally include in API requests. By default, fields with
2022	// empty values are omitted from API requests. However, any non-pointer,
2023	// non-interface field appearing in ForceSendFields will be sent to the
2024	// server regardless of whether the field is empty or not. This may be
2025	// used to include empty fields in Patch requests.
2026	ForceSendFields []string `json:"-"`
2027
2028	// NullFields is a list of field names (e.g. "Code") to include in API
2029	// requests with the JSON null value. By default, fields with empty
2030	// values are omitted from API requests. However, any field with an
2031	// empty value appearing in NullFields will be sent to the server as
2032	// null. It is an error if a field in this list has a non-empty value.
2033	// This may be used to include null fields in Patch requests.
2034	NullFields []string `json:"-"`
2035}
2036
2037func (s *AddressAggregatedListWarning) MarshalJSON() ([]byte, error) {
2038	type NoMethod AddressAggregatedListWarning
2039	raw := NoMethod(*s)
2040	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2041}
2042
2043type AddressAggregatedListWarningData struct {
2044	// Key: [Output Only] A key that provides more detail on the warning
2045	// being returned. For example, for warnings where there are no results
2046	// in a list request for a particular zone, this key might be scope and
2047	// the key value might be the zone name. Other examples might be a key
2048	// indicating a deprecated resource and a suggested replacement, or a
2049	// warning about invalid network settings (for example, if an instance
2050	// attempts to perform IP forwarding but is not enabled for IP
2051	// forwarding).
2052	Key string `json:"key,omitempty"`
2053
2054	// Value: [Output Only] A warning data value corresponding to the key.
2055	Value string `json:"value,omitempty"`
2056
2057	// ForceSendFields is a list of field names (e.g. "Key") to
2058	// unconditionally include in API requests. By default, fields with
2059	// empty values are omitted from API requests. However, any non-pointer,
2060	// non-interface field appearing in ForceSendFields will be sent to the
2061	// server regardless of whether the field is empty or not. This may be
2062	// used to include empty fields in Patch requests.
2063	ForceSendFields []string `json:"-"`
2064
2065	// NullFields is a list of field names (e.g. "Key") to include in API
2066	// requests with the JSON null value. By default, fields with empty
2067	// values are omitted from API requests. However, any field with an
2068	// empty value appearing in NullFields will be sent to the server as
2069	// null. It is an error if a field in this list has a non-empty value.
2070	// This may be used to include null fields in Patch requests.
2071	NullFields []string `json:"-"`
2072}
2073
2074func (s *AddressAggregatedListWarningData) MarshalJSON() ([]byte, error) {
2075	type NoMethod AddressAggregatedListWarningData
2076	raw := NoMethod(*s)
2077	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2078}
2079
2080// AddressList: Contains a list of addresses.
2081type AddressList struct {
2082	// Id: [Output Only] Unique identifier for the resource; defined by the
2083	// server.
2084	Id string `json:"id,omitempty"`
2085
2086	// Items: A list of Address resources.
2087	Items []*Address `json:"items,omitempty"`
2088
2089	// Kind: [Output Only] Type of resource. Always compute#addressList for
2090	// lists of addresses.
2091	Kind string `json:"kind,omitempty"`
2092
2093	// NextPageToken: [Output Only] This token allows you to get the next
2094	// page of results for list requests. If the number of results is larger
2095	// than maxResults, use the nextPageToken as a value for the query
2096	// parameter pageToken in the next list request. Subsequent list
2097	// requests will have their own nextPageToken to continue paging through
2098	// the results.
2099	NextPageToken string `json:"nextPageToken,omitempty"`
2100
2101	// SelfLink: [Output Only] Server-defined URL for this resource.
2102	SelfLink string `json:"selfLink,omitempty"`
2103
2104	// Warning: [Output Only] Informational warning message.
2105	Warning *AddressListWarning `json:"warning,omitempty"`
2106
2107	// ServerResponse contains the HTTP response code and headers from the
2108	// server.
2109	googleapi.ServerResponse `json:"-"`
2110
2111	// ForceSendFields is a list of field names (e.g. "Id") to
2112	// unconditionally include in API requests. By default, fields with
2113	// empty values are omitted from API requests. However, any non-pointer,
2114	// non-interface field appearing in ForceSendFields will be sent to the
2115	// server regardless of whether the field is empty or not. This may be
2116	// used to include empty fields in Patch requests.
2117	ForceSendFields []string `json:"-"`
2118
2119	// NullFields is a list of field names (e.g. "Id") to include in API
2120	// requests with the JSON null value. By default, fields with empty
2121	// values are omitted from API requests. However, any field with an
2122	// empty value appearing in NullFields will be sent to the server as
2123	// null. It is an error if a field in this list has a non-empty value.
2124	// This may be used to include null fields in Patch requests.
2125	NullFields []string `json:"-"`
2126}
2127
2128func (s *AddressList) MarshalJSON() ([]byte, error) {
2129	type NoMethod AddressList
2130	raw := NoMethod(*s)
2131	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2132}
2133
2134// AddressListWarning: [Output Only] Informational warning message.
2135type AddressListWarning struct {
2136	// Code: [Output Only] A warning code, if applicable. For example,
2137	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
2138	// the response.
2139	//
2140	// Possible values:
2141	//   "CLEANUP_FAILED"
2142	//   "DEPRECATED_RESOURCE_USED"
2143	//   "DEPRECATED_TYPE_USED"
2144	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
2145	//   "EXPERIMENTAL_TYPE_USED"
2146	//   "EXTERNAL_API_WARNING"
2147	//   "FIELD_VALUE_OVERRIDEN"
2148	//   "INJECTED_KERNELS_DEPRECATED"
2149	//   "MISSING_TYPE_DEPENDENCY"
2150	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
2151	//   "NEXT_HOP_CANNOT_IP_FORWARD"
2152	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
2153	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
2154	//   "NEXT_HOP_NOT_RUNNING"
2155	//   "NOT_CRITICAL_ERROR"
2156	//   "NO_RESULTS_ON_PAGE"
2157	//   "REQUIRED_TOS_AGREEMENT"
2158	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
2159	//   "RESOURCE_NOT_DELETED"
2160	//   "SCHEMA_VALIDATION_IGNORED"
2161	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
2162	//   "UNDECLARED_PROPERTIES"
2163	//   "UNREACHABLE"
2164	Code string `json:"code,omitempty"`
2165
2166	// Data: [Output Only] Metadata about this warning in key: value format.
2167	// For example:
2168	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
2169	Data []*AddressListWarningData `json:"data,omitempty"`
2170
2171	// Message: [Output Only] A human-readable description of the warning
2172	// code.
2173	Message string `json:"message,omitempty"`
2174
2175	// ForceSendFields is a list of field names (e.g. "Code") to
2176	// unconditionally include in API requests. By default, fields with
2177	// empty values are omitted from API requests. However, any non-pointer,
2178	// non-interface field appearing in ForceSendFields will be sent to the
2179	// server regardless of whether the field is empty or not. This may be
2180	// used to include empty fields in Patch requests.
2181	ForceSendFields []string `json:"-"`
2182
2183	// NullFields is a list of field names (e.g. "Code") to include in API
2184	// requests with the JSON null value. By default, fields with empty
2185	// values are omitted from API requests. However, any field with an
2186	// empty value appearing in NullFields will be sent to the server as
2187	// null. It is an error if a field in this list has a non-empty value.
2188	// This may be used to include null fields in Patch requests.
2189	NullFields []string `json:"-"`
2190}
2191
2192func (s *AddressListWarning) MarshalJSON() ([]byte, error) {
2193	type NoMethod AddressListWarning
2194	raw := NoMethod(*s)
2195	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2196}
2197
2198type AddressListWarningData struct {
2199	// Key: [Output Only] A key that provides more detail on the warning
2200	// being returned. For example, for warnings where there are no results
2201	// in a list request for a particular zone, this key might be scope and
2202	// the key value might be the zone name. Other examples might be a key
2203	// indicating a deprecated resource and a suggested replacement, or a
2204	// warning about invalid network settings (for example, if an instance
2205	// attempts to perform IP forwarding but is not enabled for IP
2206	// forwarding).
2207	Key string `json:"key,omitempty"`
2208
2209	// Value: [Output Only] A warning data value corresponding to the key.
2210	Value string `json:"value,omitempty"`
2211
2212	// ForceSendFields is a list of field names (e.g. "Key") to
2213	// unconditionally include in API requests. By default, fields with
2214	// empty values are omitted from API requests. However, any non-pointer,
2215	// non-interface field appearing in ForceSendFields will be sent to the
2216	// server regardless of whether the field is empty or not. This may be
2217	// used to include empty fields in Patch requests.
2218	ForceSendFields []string `json:"-"`
2219
2220	// NullFields is a list of field names (e.g. "Key") to include in API
2221	// requests with the JSON null value. By default, fields with empty
2222	// values are omitted from API requests. However, any field with an
2223	// empty value appearing in NullFields will be sent to the server as
2224	// null. It is an error if a field in this list has a non-empty value.
2225	// This may be used to include null fields in Patch requests.
2226	NullFields []string `json:"-"`
2227}
2228
2229func (s *AddressListWarningData) MarshalJSON() ([]byte, error) {
2230	type NoMethod AddressListWarningData
2231	raw := NoMethod(*s)
2232	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2233}
2234
2235type AddressesScopedList struct {
2236	// Addresses: [Output Only] A list of addresses contained in this scope.
2237	Addresses []*Address `json:"addresses,omitempty"`
2238
2239	// Warning: [Output Only] Informational warning which replaces the list
2240	// of addresses when the list is empty.
2241	Warning *AddressesScopedListWarning `json:"warning,omitempty"`
2242
2243	// ForceSendFields is a list of field names (e.g. "Addresses") to
2244	// unconditionally include in API requests. By default, fields with
2245	// empty values are omitted from API requests. However, any non-pointer,
2246	// non-interface field appearing in ForceSendFields will be sent to the
2247	// server regardless of whether the field is empty or not. This may be
2248	// used to include empty fields in Patch requests.
2249	ForceSendFields []string `json:"-"`
2250
2251	// NullFields is a list of field names (e.g. "Addresses") to include in
2252	// API requests with the JSON null value. By default, fields with empty
2253	// values are omitted from API requests. However, any field with an
2254	// empty value appearing in NullFields will be sent to the server as
2255	// null. It is an error if a field in this list has a non-empty value.
2256	// This may be used to include null fields in Patch requests.
2257	NullFields []string `json:"-"`
2258}
2259
2260func (s *AddressesScopedList) MarshalJSON() ([]byte, error) {
2261	type NoMethod AddressesScopedList
2262	raw := NoMethod(*s)
2263	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2264}
2265
2266// AddressesScopedListWarning: [Output Only] Informational warning which
2267// replaces the list of addresses when the list is empty.
2268type AddressesScopedListWarning struct {
2269	// Code: [Output Only] A warning code, if applicable. For example,
2270	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
2271	// the response.
2272	//
2273	// Possible values:
2274	//   "CLEANUP_FAILED"
2275	//   "DEPRECATED_RESOURCE_USED"
2276	//   "DEPRECATED_TYPE_USED"
2277	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
2278	//   "EXPERIMENTAL_TYPE_USED"
2279	//   "EXTERNAL_API_WARNING"
2280	//   "FIELD_VALUE_OVERRIDEN"
2281	//   "INJECTED_KERNELS_DEPRECATED"
2282	//   "MISSING_TYPE_DEPENDENCY"
2283	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
2284	//   "NEXT_HOP_CANNOT_IP_FORWARD"
2285	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
2286	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
2287	//   "NEXT_HOP_NOT_RUNNING"
2288	//   "NOT_CRITICAL_ERROR"
2289	//   "NO_RESULTS_ON_PAGE"
2290	//   "REQUIRED_TOS_AGREEMENT"
2291	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
2292	//   "RESOURCE_NOT_DELETED"
2293	//   "SCHEMA_VALIDATION_IGNORED"
2294	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
2295	//   "UNDECLARED_PROPERTIES"
2296	//   "UNREACHABLE"
2297	Code string `json:"code,omitempty"`
2298
2299	// Data: [Output Only] Metadata about this warning in key: value format.
2300	// For example:
2301	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
2302	Data []*AddressesScopedListWarningData `json:"data,omitempty"`
2303
2304	// Message: [Output Only] A human-readable description of the warning
2305	// code.
2306	Message string `json:"message,omitempty"`
2307
2308	// ForceSendFields is a list of field names (e.g. "Code") to
2309	// unconditionally include in API requests. By default, fields with
2310	// empty values are omitted from API requests. However, any non-pointer,
2311	// non-interface field appearing in ForceSendFields will be sent to the
2312	// server regardless of whether the field is empty or not. This may be
2313	// used to include empty fields in Patch requests.
2314	ForceSendFields []string `json:"-"`
2315
2316	// NullFields is a list of field names (e.g. "Code") to include in API
2317	// requests with the JSON null value. By default, fields with empty
2318	// values are omitted from API requests. However, any field with an
2319	// empty value appearing in NullFields will be sent to the server as
2320	// null. It is an error if a field in this list has a non-empty value.
2321	// This may be used to include null fields in Patch requests.
2322	NullFields []string `json:"-"`
2323}
2324
2325func (s *AddressesScopedListWarning) MarshalJSON() ([]byte, error) {
2326	type NoMethod AddressesScopedListWarning
2327	raw := NoMethod(*s)
2328	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2329}
2330
2331type AddressesScopedListWarningData struct {
2332	// Key: [Output Only] A key that provides more detail on the warning
2333	// being returned. For example, for warnings where there are no results
2334	// in a list request for a particular zone, this key might be scope and
2335	// the key value might be the zone name. Other examples might be a key
2336	// indicating a deprecated resource and a suggested replacement, or a
2337	// warning about invalid network settings (for example, if an instance
2338	// attempts to perform IP forwarding but is not enabled for IP
2339	// forwarding).
2340	Key string `json:"key,omitempty"`
2341
2342	// Value: [Output Only] A warning data value corresponding to the key.
2343	Value string `json:"value,omitempty"`
2344
2345	// ForceSendFields is a list of field names (e.g. "Key") to
2346	// unconditionally include in API requests. By default, fields with
2347	// empty values are omitted from API requests. However, any non-pointer,
2348	// non-interface field appearing in ForceSendFields will be sent to the
2349	// server regardless of whether the field is empty or not. This may be
2350	// used to include empty fields in Patch requests.
2351	ForceSendFields []string `json:"-"`
2352
2353	// NullFields is a list of field names (e.g. "Key") to include in API
2354	// requests with the JSON null value. By default, fields with empty
2355	// values are omitted from API requests. However, any field with an
2356	// empty value appearing in NullFields will be sent to the server as
2357	// null. It is an error if a field in this list has a non-empty value.
2358	// This may be used to include null fields in Patch requests.
2359	NullFields []string `json:"-"`
2360}
2361
2362func (s *AddressesScopedListWarningData) MarshalJSON() ([]byte, error) {
2363	type NoMethod AddressesScopedListWarningData
2364	raw := NoMethod(*s)
2365	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2366}
2367
2368// AliasIpRange: An alias IP range attached to an instance's network
2369// interface.
2370type AliasIpRange struct {
2371	// IpCidrRange: The IP alias ranges to allocate for this interface. This
2372	// IP CIDR range must belong to the specified subnetwork and cannot
2373	// contain IP addresses reserved by system or used by other network
2374	// interfaces. This range may be a single IP address (such as 10.2.3.4),
2375	// a netmask (such as /24) or a CIDR-formatted string (such as
2376	// 10.1.2.0/24).
2377	IpCidrRange string `json:"ipCidrRange,omitempty"`
2378
2379	// SubnetworkRangeName: The name of a subnetwork secondary IP range from
2380	// which to allocate an IP alias range. If not specified, the primary
2381	// range of the subnetwork is used.
2382	SubnetworkRangeName string `json:"subnetworkRangeName,omitempty"`
2383
2384	// ForceSendFields is a list of field names (e.g. "IpCidrRange") to
2385	// unconditionally include in API requests. By default, fields with
2386	// empty values are omitted from API requests. However, any non-pointer,
2387	// non-interface field appearing in ForceSendFields will be sent to the
2388	// server regardless of whether the field is empty or not. This may be
2389	// used to include empty fields in Patch requests.
2390	ForceSendFields []string `json:"-"`
2391
2392	// NullFields is a list of field names (e.g. "IpCidrRange") to include
2393	// in API requests with the JSON null value. By default, fields with
2394	// empty values are omitted from API requests. However, any field with
2395	// an empty value appearing in NullFields will be sent to the server as
2396	// null. It is an error if a field in this list has a non-empty value.
2397	// This may be used to include null fields in Patch requests.
2398	NullFields []string `json:"-"`
2399}
2400
2401func (s *AliasIpRange) MarshalJSON() ([]byte, error) {
2402	type NoMethod AliasIpRange
2403	raw := NoMethod(*s)
2404	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2405}
2406
2407type AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk struct {
2408	// DiskSizeGb: Specifies the size of the disk in base-2 GB.
2409	DiskSizeGb int64 `json:"diskSizeGb,omitempty,string"`
2410
2411	// Interface: Specifies the disk interface to use for attaching this
2412	// disk, which is either SCSI or NVME. The default is SCSI. For
2413	// performance characteristics of SCSI over NVMe, see Local SSD
2414	// performance.
2415	//
2416	// Possible values:
2417	//   "NVDIMM"
2418	//   "NVME"
2419	//   "SCSI"
2420	Interface string `json:"interface,omitempty"`
2421
2422	// ForceSendFields is a list of field names (e.g. "DiskSizeGb") to
2423	// unconditionally include in API requests. By default, fields with
2424	// empty values are omitted from API requests. However, any non-pointer,
2425	// non-interface field appearing in ForceSendFields will be sent to the
2426	// server regardless of whether the field is empty or not. This may be
2427	// used to include empty fields in Patch requests.
2428	ForceSendFields []string `json:"-"`
2429
2430	// NullFields is a list of field names (e.g. "DiskSizeGb") to include in
2431	// API requests with the JSON null value. By default, fields with empty
2432	// values are omitted from API requests. However, any field with an
2433	// empty value appearing in NullFields will be sent to the server as
2434	// null. It is an error if a field in this list has a non-empty value.
2435	// This may be used to include null fields in Patch requests.
2436	NullFields []string `json:"-"`
2437}
2438
2439func (s *AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk) MarshalJSON() ([]byte, error) {
2440	type NoMethod AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk
2441	raw := NoMethod(*s)
2442	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2443}
2444
2445// AllocationSpecificSKUAllocationReservedInstanceProperties: Properties
2446// of the SKU instances being reserved.
2447type AllocationSpecificSKUAllocationReservedInstanceProperties struct {
2448	// GuestAccelerators: Specifies accelerator type and count.
2449	GuestAccelerators []*AcceleratorConfig `json:"guestAccelerators,omitempty"`
2450
2451	// LocalSsds: Specifies amount of local ssd to reserve with each
2452	// instance. The type of disk is local-ssd.
2453	LocalSsds []*AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk `json:"localSsds,omitempty"`
2454
2455	// MachineType: Specifies type of machine (name only) which has fixed
2456	// number of vCPUs and fixed amount of memory. This also includes
2457	// specifying custom machine type following
2458	// custom-NUMBER_OF_CPUS-AMOUNT_OF_MEMORY pattern.
2459	MachineType string `json:"machineType,omitempty"`
2460
2461	// MinCpuPlatform: Minimum cpu platform the reservation.
2462	MinCpuPlatform string `json:"minCpuPlatform,omitempty"`
2463
2464	// ForceSendFields is a list of field names (e.g. "GuestAccelerators")
2465	// to unconditionally include in API requests. By default, fields with
2466	// empty values are omitted from API requests. However, any non-pointer,
2467	// non-interface field appearing in ForceSendFields will be sent to the
2468	// server regardless of whether the field is empty or not. This may be
2469	// used to include empty fields in Patch requests.
2470	ForceSendFields []string `json:"-"`
2471
2472	// NullFields is a list of field names (e.g. "GuestAccelerators") to
2473	// include in API requests with the JSON null value. By default, fields
2474	// with empty values are omitted from API requests. However, any field
2475	// with an empty value appearing in NullFields will be sent to the
2476	// server as null. It is an error if a field in this list has a
2477	// non-empty value. This may be used to include null fields in Patch
2478	// requests.
2479	NullFields []string `json:"-"`
2480}
2481
2482func (s *AllocationSpecificSKUAllocationReservedInstanceProperties) MarshalJSON() ([]byte, error) {
2483	type NoMethod AllocationSpecificSKUAllocationReservedInstanceProperties
2484	raw := NoMethod(*s)
2485	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2486}
2487
2488// AllocationSpecificSKUReservation: This reservation type allows to pre
2489// allocate specific instance configuration.
2490type AllocationSpecificSKUReservation struct {
2491	// Count: Specifies the number of resources that are allocated.
2492	Count int64 `json:"count,omitempty,string"`
2493
2494	// InUseCount: [Output Only] Indicates how many instances are in use.
2495	InUseCount int64 `json:"inUseCount,omitempty,string"`
2496
2497	// InstanceProperties: The instance properties for the reservation.
2498	InstanceProperties *AllocationSpecificSKUAllocationReservedInstanceProperties `json:"instanceProperties,omitempty"`
2499
2500	// ForceSendFields is a list of field names (e.g. "Count") to
2501	// unconditionally include in API requests. By default, fields with
2502	// empty values are omitted from API requests. However, any non-pointer,
2503	// non-interface field appearing in ForceSendFields will be sent to the
2504	// server regardless of whether the field is empty or not. This may be
2505	// used to include empty fields in Patch requests.
2506	ForceSendFields []string `json:"-"`
2507
2508	// NullFields is a list of field names (e.g. "Count") to include in API
2509	// requests with the JSON null value. By default, fields with empty
2510	// values are omitted from API requests. However, any field with an
2511	// empty value appearing in NullFields will be sent to the server as
2512	// null. It is an error if a field in this list has a non-empty value.
2513	// This may be used to include null fields in Patch requests.
2514	NullFields []string `json:"-"`
2515}
2516
2517func (s *AllocationSpecificSKUReservation) MarshalJSON() ([]byte, error) {
2518	type NoMethod AllocationSpecificSKUReservation
2519	raw := NoMethod(*s)
2520	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2521}
2522
2523// AttachedDisk: An instance-attached disk resource.
2524type AttachedDisk struct {
2525	// AutoDelete: Specifies whether the disk will be auto-deleted when the
2526	// instance is deleted (but not when the disk is detached from the
2527	// instance).
2528	AutoDelete bool `json:"autoDelete,omitempty"`
2529
2530	// Boot: Indicates that this is a boot disk. The virtual machine will
2531	// use the first partition of the disk for its root filesystem.
2532	Boot bool `json:"boot,omitempty"`
2533
2534	// DeviceName: Specifies a unique device name of your choice that is
2535	// reflected into the /dev/disk/by-id/google-* tree of a Linux operating
2536	// system running within the instance. This name can be used to
2537	// reference the device for mounting, resizing, and so on, from within
2538	// the instance.
2539	//
2540	// If not specified, the server chooses a default device name to apply
2541	// to this disk, in the form persistent-disk-x, where x is a number
2542	// assigned by Google Compute Engine. This field is only applicable for
2543	// persistent disks.
2544	DeviceName string `json:"deviceName,omitempty"`
2545
2546	// DiskEncryptionKey: Encrypts or decrypts a disk using a
2547	// customer-supplied encryption key.
2548	//
2549	// If you are creating a new disk, this field encrypts the new disk
2550	// using an encryption key that you provide. If you are attaching an
2551	// existing disk that is already encrypted, this field decrypts the disk
2552	// using the customer-supplied encryption key.
2553	//
2554	// If you encrypt a disk using a customer-supplied key, you must provide
2555	// the same key again when you attempt to use this resource at a later
2556	// time. For example, you must provide the key when you create a
2557	// snapshot or an image from the disk or when you attach the disk to a
2558	// virtual machine instance.
2559	//
2560	// If you do not provide an encryption key, then the disk will be
2561	// encrypted using an automatically generated key and you do not need to
2562	// provide a key to use the disk later.
2563	//
2564	// Instance templates do not store customer-supplied encryption keys, so
2565	// you cannot use your own keys to encrypt disks in a managed instance
2566	// group.
2567	DiskEncryptionKey *CustomerEncryptionKey `json:"diskEncryptionKey,omitempty"`
2568
2569	// DiskSizeGb: The size of the disk in base-2 GB. This supersedes
2570	// disk_size_gb in InitializeParams.
2571	DiskSizeGb int64 `json:"diskSizeGb,omitempty,string"`
2572
2573	// GuestOsFeatures: A list of features to enable on the guest operating
2574	// system. Applicable only for bootable images. Read  Enabling guest
2575	// operating system features to see a list of available options.
2576	GuestOsFeatures []*GuestOsFeature `json:"guestOsFeatures,omitempty"`
2577
2578	// Index: [Output Only] A zero-based index to this disk, where 0 is
2579	// reserved for the boot disk. If you have many disks attached to an
2580	// instance, each disk would have a unique index number.
2581	Index int64 `json:"index,omitempty"`
2582
2583	// InitializeParams: [Input Only] Specifies the parameters for a new
2584	// disk that will be created alongside the new instance. Use
2585	// initialization parameters to create boot disks or local SSDs attached
2586	// to the new instance.
2587	//
2588	// This property is mutually exclusive with the source property; you can
2589	// only define one or the other, but not both.
2590	InitializeParams *AttachedDiskInitializeParams `json:"initializeParams,omitempty"`
2591
2592	// Interface: Specifies the disk interface to use for attaching this
2593	// disk, which is either SCSI or NVME. The default is SCSI. Persistent
2594	// disks must always use SCSI and the request will fail if you attempt
2595	// to attach a persistent disk in any other format than SCSI. Local SSDs
2596	// can use either NVME or SCSI. For performance characteristics of SCSI
2597	// over NVMe, see Local SSD performance. TODO(b/131765817): Update
2598	// documentation when NVME is supported.
2599	//
2600	// Possible values:
2601	//   "NVDIMM"
2602	//   "NVME"
2603	//   "SCSI"
2604	Interface string `json:"interface,omitempty"`
2605
2606	// Kind: [Output Only] Type of the resource. Always compute#attachedDisk
2607	// for attached disks.
2608	Kind string `json:"kind,omitempty"`
2609
2610	// Licenses: [Output Only] Any valid publicly visible licenses.
2611	Licenses []string `json:"licenses,omitempty"`
2612
2613	// Mode: The mode in which to attach this disk, either READ_WRITE or
2614	// READ_ONLY. If not specified, the default is to attach the disk in
2615	// READ_WRITE mode.
2616	//
2617	// Possible values:
2618	//   "READ_ONLY"
2619	//   "READ_WRITE"
2620	Mode string `json:"mode,omitempty"`
2621
2622	// SavedState: For LocalSSD disks on VM Instances in STOPPED or
2623	// SUSPENDED state, this field is set to PRESERVED if the LocalSSD data
2624	// has been saved to a persistent location by customer request. (see the
2625	// discard_local_ssd option on Stop/Suspend). Read-only in the api.
2626	//
2627	// Possible values:
2628	//   "DISK_SAVED_STATE_UNSPECIFIED"
2629	//   "PRESERVED"
2630	SavedState string `json:"savedState,omitempty"`
2631
2632	// ShieldedInstanceInitialState: [Output Only] shielded vm initial state
2633	// stored on disk
2634	ShieldedInstanceInitialState *InitialStateConfig `json:"shieldedInstanceInitialState,omitempty"`
2635
2636	// Source: Specifies a valid partial or full URL to an existing
2637	// Persistent Disk resource. When creating a new instance, one of
2638	// initializeParams.sourceImage or initializeParams.sourceSnapshot or
2639	// disks.source is required except for local SSD.
2640	//
2641	// If desired, you can also attach existing non-root persistent disks
2642	// using this property. This field is only applicable for persistent
2643	// disks.
2644	//
2645	// Note that for InstanceTemplate, specify the disk name, not the URL
2646	// for the disk.
2647	Source string `json:"source,omitempty"`
2648
2649	// Type: Specifies the type of the disk, either SCRATCH or PERSISTENT.
2650	// If not specified, the default is PERSISTENT.
2651	//
2652	// Possible values:
2653	//   "PERSISTENT"
2654	//   "SCRATCH"
2655	Type string `json:"type,omitempty"`
2656
2657	// ForceSendFields is a list of field names (e.g. "AutoDelete") to
2658	// unconditionally include in API requests. By default, fields with
2659	// empty values are omitted from API requests. However, any non-pointer,
2660	// non-interface field appearing in ForceSendFields will be sent to the
2661	// server regardless of whether the field is empty or not. This may be
2662	// used to include empty fields in Patch requests.
2663	ForceSendFields []string `json:"-"`
2664
2665	// NullFields is a list of field names (e.g. "AutoDelete") to include in
2666	// API requests with the JSON null value. By default, fields with empty
2667	// values are omitted from API requests. However, any field with an
2668	// empty value appearing in NullFields will be sent to the server as
2669	// null. It is an error if a field in this list has a non-empty value.
2670	// This may be used to include null fields in Patch requests.
2671	NullFields []string `json:"-"`
2672}
2673
2674func (s *AttachedDisk) MarshalJSON() ([]byte, error) {
2675	type NoMethod AttachedDisk
2676	raw := NoMethod(*s)
2677	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2678}
2679
2680// AttachedDiskInitializeParams: [Input Only] Specifies the parameters
2681// for a new disk that will be created alongside the new instance. Use
2682// initialization parameters to create boot disks or local SSDs attached
2683// to the new instance.
2684//
2685// This property is mutually exclusive with the source property; you can
2686// only define one or the other, but not both.
2687type AttachedDiskInitializeParams struct {
2688	// Description: An optional description. Provide this property when
2689	// creating the disk.
2690	Description string `json:"description,omitempty"`
2691
2692	// DiskName: Specifies the disk name. If not specified, the default is
2693	// to use the name of the instance. If the disk with the instance name
2694	// exists already in the given zone/region, a new name will be
2695	// automatically generated.
2696	DiskName string `json:"diskName,omitempty"`
2697
2698	// DiskSizeGb: Specifies the size of the disk in base-2 GB. If not
2699	// specified, the disk will be the same size as the image (usually
2700	// 10GB). If specified, the size must be equal to or larger than 10GB.
2701	DiskSizeGb int64 `json:"diskSizeGb,omitempty,string"`
2702
2703	// DiskType: Specifies the disk type to use to create the instance. If
2704	// not specified, the default is pd-standard, specified using the full
2705	// URL. For
2706	// example:
2707	// https://www.googleapis.com/compute/v1/projects/project/zones/
2708	// zone/diskTypes/pd-standard
2709	//
2710	//
2711	// Other values include pd-ssd and local-ssd. If you define this field,
2712	// you can provide either the full or partial URL. For example, the
2713	// following are valid values:
2714	// -
2715	// https://www.googleapis.com/compute/v1/projects/project/zones/zone/diskTypes/diskType
2716	// - projects/project/zones/zone/diskTypes/diskType
2717	// - zones/zone/diskTypes/diskType  Note that for InstanceTemplate, this
2718	// is the name of the disk type, not URL.
2719	DiskType string `json:"diskType,omitempty"`
2720
2721	// GuestOsFeatures: A list of features to enable on the guest operating
2722	// system. Applicable only for bootable images. Read  Enabling guest
2723	// operating system features to see a list of available options.
2724	//
2725	// Guest OS features are applied by merging
2726	// initializeParams.guestOsFeatures and disks.guestOsFeatures
2727	GuestOsFeatures []*GuestOsFeature `json:"guestOsFeatures,omitempty"`
2728
2729	// Labels: Labels to apply to this disk. These can be later modified by
2730	// the disks.setLabels method. This field is only applicable for
2731	// persistent disks.
2732	Labels map[string]string `json:"labels,omitempty"`
2733
2734	// OnUpdateAction: Specifies which action to take on instance update
2735	// with this disk. Default is to use the existing disk.
2736	//
2737	// Possible values:
2738	//   "RECREATE_DISK"
2739	//   "RECREATE_DISK_IF_SOURCE_CHANGED"
2740	//   "USE_EXISTING_DISK"
2741	OnUpdateAction string `json:"onUpdateAction,omitempty"`
2742
2743	// ReplicaZones: URLs of the zones where the disk should be replicated
2744	// to. Only applicable for regional resources.
2745	ReplicaZones []string `json:"replicaZones,omitempty"`
2746
2747	// ResourcePolicies: Resource policies applied to this disk for
2748	// automatic snapshot creations. Specified using the full or partial
2749	// URL. For instance template, specify only the resource policy name.
2750	ResourcePolicies []string `json:"resourcePolicies,omitempty"`
2751
2752	// SourceImage: The source image to create this disk. When creating a
2753	// new instance, one of initializeParams.sourceImage or
2754	// initializeParams.sourceSnapshot or disks.source is required except
2755	// for local SSD.
2756	//
2757	// To create a disk with one of the public operating system images,
2758	// specify the image by its family name. For example, specify
2759	// family/debian-9 to use the latest Debian 9
2760	// image:
2761	// projects/debian-cloud/global/images/family/debian-9
2762	//
2763	//
2764	// Alternati
2765	// vely, use a specific version of a public operating system
2766	// image:
2767	// projects/debian-cloud/global/images/debian-9-stretch-vYYYYMMDD
2768	//
2769	//
2770	//
2771	// To create a disk with a custom image that you created, specify the
2772	// image name in the following
2773	// format:
2774	// global/images/my-custom-image
2775	//
2776	//
2777	// You can also specify a custom image by its image family, which
2778	// returns the latest version of the image in that family. Replace the
2779	// image name with
2780	// family/family-name:
2781	// global/images/family/my-image-family
2782	//
2783	//
2784	// If the source image is deleted later, this field will not be set.
2785	SourceImage string `json:"sourceImage,omitempty"`
2786
2787	// SourceImageEncryptionKey: The customer-supplied encryption key of the
2788	// source image. Required if the source image is protected by a
2789	// customer-supplied encryption key.
2790	//
2791	// Instance templates do not store customer-supplied encryption keys, so
2792	// you cannot create disks for instances in a managed instance group if
2793	// the source images are encrypted with your own keys.
2794	SourceImageEncryptionKey *CustomerEncryptionKey `json:"sourceImageEncryptionKey,omitempty"`
2795
2796	// SourceSnapshot: The source snapshot to create this disk. When
2797	// creating a new instance, one of initializeParams.sourceSnapshot or
2798	// initializeParams.sourceImage or disks.source is required except for
2799	// local SSD.
2800	//
2801	// To create a disk with a snapshot that you created, specify the
2802	// snapshot name in the following
2803	// format:
2804	// global/snapshots/my-backup
2805	//
2806	//
2807	// If the source snapshot is deleted later, this field will not be set.
2808	SourceSnapshot string `json:"sourceSnapshot,omitempty"`
2809
2810	// SourceSnapshotEncryptionKey: The customer-supplied encryption key of
2811	// the source snapshot.
2812	SourceSnapshotEncryptionKey *CustomerEncryptionKey `json:"sourceSnapshotEncryptionKey,omitempty"`
2813
2814	// ForceSendFields is a list of field names (e.g. "Description") to
2815	// unconditionally include in API requests. By default, fields with
2816	// empty values are omitted from API requests. However, any non-pointer,
2817	// non-interface field appearing in ForceSendFields will be sent to the
2818	// server regardless of whether the field is empty or not. This may be
2819	// used to include empty fields in Patch requests.
2820	ForceSendFields []string `json:"-"`
2821
2822	// NullFields is a list of field names (e.g. "Description") to include
2823	// in API requests with the JSON null value. By default, fields with
2824	// empty values are omitted from API requests. However, any field with
2825	// an empty value appearing in NullFields will be sent to the server as
2826	// null. It is an error if a field in this list has a non-empty value.
2827	// This may be used to include null fields in Patch requests.
2828	NullFields []string `json:"-"`
2829}
2830
2831func (s *AttachedDiskInitializeParams) MarshalJSON() ([]byte, error) {
2832	type NoMethod AttachedDiskInitializeParams
2833	raw := NoMethod(*s)
2834	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2835}
2836
2837// AuditConfig: Specifies the audit configuration for a service. The
2838// configuration determines which permission types are logged, and what
2839// identities, if any, are exempted from logging. An AuditConfig must
2840// have one or more AuditLogConfigs.
2841//
2842// If there are AuditConfigs for both `allServices` and a specific
2843// service, the union of the two AuditConfigs is used for that service:
2844// the log_types specified in each AuditConfig are enabled, and the
2845// exempted_members in each AuditLogConfig are exempted.
2846//
2847// Example Policy with multiple AuditConfigs:
2848//
2849// { "audit_configs": [ { "service": "allServices" "audit_log_configs":
2850// [ { "log_type": "DATA_READ", "exempted_members": [
2851// "user:jose@example.com" ] }, { "log_type": "DATA_WRITE", }, {
2852// "log_type": "ADMIN_READ", } ] }, { "service":
2853// "sampleservice.googleapis.com" "audit_log_configs": [ { "log_type":
2854// "DATA_READ", }, { "log_type": "DATA_WRITE", "exempted_members": [
2855// "user:aliya@example.com" ] } ] } ] }
2856//
2857// For sampleservice, this policy enables DATA_READ, DATA_WRITE and
2858// ADMIN_READ logging. It also exempts jose@example.com from DATA_READ
2859// logging, and aliya@example.com from DATA_WRITE logging.
2860type AuditConfig struct {
2861	// AuditLogConfigs: The configuration for logging of each type of
2862	// permission.
2863	AuditLogConfigs []*AuditLogConfig `json:"auditLogConfigs,omitempty"`
2864
2865	ExemptedMembers []string `json:"exemptedMembers,omitempty"`
2866
2867	// Service: Specifies a service that will be enabled for audit logging.
2868	// For example, `storage.googleapis.com`, `cloudsql.googleapis.com`.
2869	// `allServices` is a special value that covers all services.
2870	Service string `json:"service,omitempty"`
2871
2872	// ForceSendFields is a list of field names (e.g. "AuditLogConfigs") to
2873	// unconditionally include in API requests. By default, fields with
2874	// empty values are omitted from API requests. However, any non-pointer,
2875	// non-interface field appearing in ForceSendFields will be sent to the
2876	// server regardless of whether the field is empty or not. This may be
2877	// used to include empty fields in Patch requests.
2878	ForceSendFields []string `json:"-"`
2879
2880	// NullFields is a list of field names (e.g. "AuditLogConfigs") to
2881	// include in API requests with the JSON null value. By default, fields
2882	// with empty values are omitted from API requests. However, any field
2883	// with an empty value appearing in NullFields will be sent to the
2884	// server as null. It is an error if a field in this list has a
2885	// non-empty value. This may be used to include null fields in Patch
2886	// requests.
2887	NullFields []string `json:"-"`
2888}
2889
2890func (s *AuditConfig) MarshalJSON() ([]byte, error) {
2891	type NoMethod AuditConfig
2892	raw := NoMethod(*s)
2893	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2894}
2895
2896// AuditLogConfig: Provides the configuration for logging a type of
2897// permissions. Example:
2898//
2899// { "audit_log_configs": [ { "log_type": "DATA_READ",
2900// "exempted_members": [ "user:jose@example.com" ] }, { "log_type":
2901// "DATA_WRITE", } ] }
2902//
2903// This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting
2904// jose@example.com from DATA_READ logging.
2905type AuditLogConfig struct {
2906	// ExemptedMembers: Specifies the identities that do not cause logging
2907	// for this type of permission. Follows the same format of
2908	// [Binding.members][].
2909	ExemptedMembers []string `json:"exemptedMembers,omitempty"`
2910
2911	IgnoreChildExemptions bool `json:"ignoreChildExemptions,omitempty"`
2912
2913	// LogType: The log type that this config enables.
2914	//
2915	// Possible values:
2916	//   "ADMIN_READ"
2917	//   "DATA_READ"
2918	//   "DATA_WRITE"
2919	//   "LOG_TYPE_UNSPECIFIED"
2920	LogType string `json:"logType,omitempty"`
2921
2922	// ForceSendFields is a list of field names (e.g. "ExemptedMembers") to
2923	// unconditionally include in API requests. By default, fields with
2924	// empty values are omitted from API requests. However, any non-pointer,
2925	// non-interface field appearing in ForceSendFields will be sent to the
2926	// server regardless of whether the field is empty or not. This may be
2927	// used to include empty fields in Patch requests.
2928	ForceSendFields []string `json:"-"`
2929
2930	// NullFields is a list of field names (e.g. "ExemptedMembers") to
2931	// include in API requests with the JSON null value. By default, fields
2932	// with empty values are omitted from API requests. However, any field
2933	// with an empty value appearing in NullFields will be sent to the
2934	// server as null. It is an error if a field in this list has a
2935	// non-empty value. This may be used to include null fields in Patch
2936	// requests.
2937	NullFields []string `json:"-"`
2938}
2939
2940func (s *AuditLogConfig) MarshalJSON() ([]byte, error) {
2941	type NoMethod AuditLogConfig
2942	raw := NoMethod(*s)
2943	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2944}
2945
2946// AuthenticationPolicy: The authentication settings for the backend
2947// service.
2948type AuthenticationPolicy struct {
2949	// Origins: List of authentication methods that can be used for origin
2950	// authentication. Similar to peers, these will be evaluated in order
2951	// the first valid one will be used to set origin identity. If none of
2952	// these methods pass, the request will be rejected with authentication
2953	// failed error (401). Leave the list empty if origin authentication is
2954	// not required.
2955	Origins []*OriginAuthenticationMethod `json:"origins,omitempty"`
2956
2957	// Peers: List of authentication methods that can be used for peer
2958	// authentication. They will be evaluated in order the first valid one
2959	// will be used to set peer identity. If none of these methods pass, the
2960	// request will be rejected with authentication failed error (401).
2961	// Leave the list empty if peer authentication is not required.
2962	Peers []*PeerAuthenticationMethod `json:"peers,omitempty"`
2963
2964	// PrincipalBinding: Define whether peer or origin identity should be
2965	// used for principal. Default value is USE_PEER. If peer (or origin)
2966	// identity is not available, either because peer/origin authentication
2967	// is not defined, or failed, principal will be left unset. In other
2968	// words, binding rule does not affect the decision to accept or reject
2969	// request. This field can be set to one of the following: USE_PEER:
2970	// Principal will be set to the identity from peer authentication.
2971	// USE_ORIGIN: Principal will be set to the identity from origin
2972	// authentication.
2973	//
2974	// Possible values:
2975	//   "INVALID"
2976	//   "USE_ORIGIN"
2977	//   "USE_PEER"
2978	PrincipalBinding string `json:"principalBinding,omitempty"`
2979
2980	// ServerTlsContext: Configures the mechanism to obtain server-side
2981	// security certificates and identity information.
2982	ServerTlsContext *TlsContext `json:"serverTlsContext,omitempty"`
2983
2984	// ForceSendFields is a list of field names (e.g. "Origins") to
2985	// unconditionally include in API requests. By default, fields with
2986	// empty values are omitted from API requests. However, any non-pointer,
2987	// non-interface field appearing in ForceSendFields will be sent to the
2988	// server regardless of whether the field is empty or not. This may be
2989	// used to include empty fields in Patch requests.
2990	ForceSendFields []string `json:"-"`
2991
2992	// NullFields is a list of field names (e.g. "Origins") to include in
2993	// API requests with the JSON null value. By default, fields with empty
2994	// values are omitted from API requests. However, any field with an
2995	// empty value appearing in NullFields will be sent to the server as
2996	// null. It is an error if a field in this list has a non-empty value.
2997	// This may be used to include null fields in Patch requests.
2998	NullFields []string `json:"-"`
2999}
3000
3001func (s *AuthenticationPolicy) MarshalJSON() ([]byte, error) {
3002	type NoMethod AuthenticationPolicy
3003	raw := NoMethod(*s)
3004	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3005}
3006
3007// AuthorizationConfig: Authorization configuration provides
3008// service-level and method-level access control for a service.
3009type AuthorizationConfig struct {
3010	// Policies: List of RbacPolicies.
3011	Policies []*RbacPolicy `json:"policies,omitempty"`
3012
3013	// ForceSendFields is a list of field names (e.g. "Policies") to
3014	// unconditionally include in API requests. By default, fields with
3015	// empty values are omitted from API requests. However, any non-pointer,
3016	// non-interface field appearing in ForceSendFields will be sent to the
3017	// server regardless of whether the field is empty or not. This may be
3018	// used to include empty fields in Patch requests.
3019	ForceSendFields []string `json:"-"`
3020
3021	// NullFields is a list of field names (e.g. "Policies") to include in
3022	// API requests with the JSON null value. By default, fields with empty
3023	// values are omitted from API requests. However, any field with an
3024	// empty value appearing in NullFields will be sent to the server as
3025	// null. It is an error if a field in this list has a non-empty value.
3026	// This may be used to include null fields in Patch requests.
3027	NullFields []string `json:"-"`
3028}
3029
3030func (s *AuthorizationConfig) MarshalJSON() ([]byte, error) {
3031	type NoMethod AuthorizationConfig
3032	raw := NoMethod(*s)
3033	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3034}
3035
3036// AuthorizationLoggingOptions: Authorization-related information used
3037// by Cloud Audit Logging.
3038type AuthorizationLoggingOptions struct {
3039	// PermissionType: The type of the permission that was checked.
3040	//
3041	// Possible values:
3042	//   "ADMIN_READ"
3043	//   "ADMIN_WRITE"
3044	//   "DATA_READ"
3045	//   "DATA_WRITE"
3046	//   "PERMISSION_TYPE_UNSPECIFIED"
3047	PermissionType string `json:"permissionType,omitempty"`
3048
3049	// ForceSendFields is a list of field names (e.g. "PermissionType") to
3050	// unconditionally include in API requests. By default, fields with
3051	// empty values are omitted from API requests. However, any non-pointer,
3052	// non-interface field appearing in ForceSendFields will be sent to the
3053	// server regardless of whether the field is empty or not. This may be
3054	// used to include empty fields in Patch requests.
3055	ForceSendFields []string `json:"-"`
3056
3057	// NullFields is a list of field names (e.g. "PermissionType") to
3058	// include in API requests with the JSON null value. By default, fields
3059	// with empty values are omitted from API requests. However, any field
3060	// with an empty value appearing in NullFields will be sent to the
3061	// server as null. It is an error if a field in this list has a
3062	// non-empty value. This may be used to include null fields in Patch
3063	// requests.
3064	NullFields []string `json:"-"`
3065}
3066
3067func (s *AuthorizationLoggingOptions) MarshalJSON() ([]byte, error) {
3068	type NoMethod AuthorizationLoggingOptions
3069	raw := NoMethod(*s)
3070	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3071}
3072
3073// Autoscaler: Represents an Autoscaler resource.
3074//
3075//
3076//
3077// Use autoscalers to automatically add or delete instances from a
3078// managed instance group according to your defined autoscaling policy.
3079// For more information, read Autoscaling Groups of Instances.
3080//
3081// For zonal managed instance groups resource, use the autoscaler
3082// resource.
3083//
3084// For regional managed instance groups, use the regionAutoscalers
3085// resource. (== resource_for beta.autoscalers ==) (== resource_for
3086// v1.autoscalers ==) (== resource_for beta.regionAutoscalers ==) (==
3087// resource_for v1.regionAutoscalers ==)
3088type Autoscaler struct {
3089	// AutoscalingPolicy: The configuration parameters for the autoscaling
3090	// algorithm. You can define one or more of the policies for an
3091	// autoscaler: cpuUtilization, customMetricUtilizations, and
3092	// loadBalancingUtilization.
3093	//
3094	// If none of these are specified, the default will be to autoscale
3095	// based on cpuUtilization to 0.6 or 60%.
3096	AutoscalingPolicy *AutoscalingPolicy `json:"autoscalingPolicy,omitempty"`
3097
3098	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
3099	// format.
3100	CreationTimestamp string `json:"creationTimestamp,omitempty"`
3101
3102	// Description: An optional description of this resource. Provide this
3103	// property when you create the resource.
3104	Description string `json:"description,omitempty"`
3105
3106	// Id: [Output Only] The unique identifier for the resource. This
3107	// identifier is defined by the server.
3108	Id uint64 `json:"id,omitempty,string"`
3109
3110	// Kind: [Output Only] Type of the resource. Always compute#autoscaler
3111	// for autoscalers.
3112	Kind string `json:"kind,omitempty"`
3113
3114	// Name: Name of the resource. Provided by the client when the resource
3115	// is created. The name must be 1-63 characters long, and comply with
3116	// RFC1035. Specifically, the name must be 1-63 characters long and
3117	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
3118	// the first character must be a lowercase letter, and all following
3119	// characters must be a dash, lowercase letter, or digit, except the
3120	// last character, which cannot be a dash.
3121	Name string `json:"name,omitempty"`
3122
3123	// RecommendedSize: [Output Only] Target recommended MIG size (number of
3124	// instances) computed by autoscaler. Autoscaler calculates recommended
3125	// MIG size even when autoscaling policy mode is different from ON. This
3126	// field is empty when autoscaler is not connected to the existing
3127	// managed instance group or autoscaler did not generate its prediction.
3128	RecommendedSize int64 `json:"recommendedSize,omitempty"`
3129
3130	// Region: [Output Only] URL of the region where the instance group
3131	// resides (for autoscalers living in regional scope).
3132	Region string `json:"region,omitempty"`
3133
3134	// SelfLink: [Output Only] Server-defined URL for the resource.
3135	SelfLink string `json:"selfLink,omitempty"`
3136
3137	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
3138	// with the resource id.
3139	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
3140
3141	// Status: [Output Only] The status of the autoscaler configuration.
3142	// Current set of possible values:
3143	// - PENDING: Autoscaler backend hasn't read new/updated configuration.
3144	//
3145	// - DELETING: Configuration is being deleted.
3146	// - ACTIVE: Configuration is acknowledged to be effective. Some
3147	// warnings might be present in the statusDetails field.
3148	// - ERROR: Configuration has errors. Actionable for users. Details are
3149	// present in the statusDetails field.  New values might be added in the
3150	// future.
3151	//
3152	// Possible values:
3153	//   "ACTIVE"
3154	//   "DELETING"
3155	//   "ERROR"
3156	//   "PENDING"
3157	Status string `json:"status,omitempty"`
3158
3159	// StatusDetails: [Output Only] Human-readable details about the current
3160	// state of the autoscaler. Read the documentation for Commonly returned
3161	// status messages for examples of status messages you might encounter.
3162	StatusDetails []*AutoscalerStatusDetails `json:"statusDetails,omitempty"`
3163
3164	// Target: URL of the managed instance group that this autoscaler will
3165	// scale.
3166	Target string `json:"target,omitempty"`
3167
3168	// Zone: [Output Only] URL of the zone where the instance group resides
3169	// (for autoscalers living in zonal scope).
3170	Zone string `json:"zone,omitempty"`
3171
3172	// ServerResponse contains the HTTP response code and headers from the
3173	// server.
3174	googleapi.ServerResponse `json:"-"`
3175
3176	// ForceSendFields is a list of field names (e.g. "AutoscalingPolicy")
3177	// to unconditionally include in API requests. By default, fields with
3178	// empty values are omitted from API requests. However, any non-pointer,
3179	// non-interface field appearing in ForceSendFields will be sent to the
3180	// server regardless of whether the field is empty or not. This may be
3181	// used to include empty fields in Patch requests.
3182	ForceSendFields []string `json:"-"`
3183
3184	// NullFields is a list of field names (e.g. "AutoscalingPolicy") to
3185	// include in API requests with the JSON null value. By default, fields
3186	// with empty values are omitted from API requests. However, any field
3187	// with an empty value appearing in NullFields will be sent to the
3188	// server as null. It is an error if a field in this list has a
3189	// non-empty value. This may be used to include null fields in Patch
3190	// requests.
3191	NullFields []string `json:"-"`
3192}
3193
3194func (s *Autoscaler) MarshalJSON() ([]byte, error) {
3195	type NoMethod Autoscaler
3196	raw := NoMethod(*s)
3197	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3198}
3199
3200type AutoscalerAggregatedList struct {
3201	// Id: [Output Only] Unique identifier for the resource; defined by the
3202	// server.
3203	Id string `json:"id,omitempty"`
3204
3205	// Items: A list of AutoscalersScopedList resources.
3206	Items map[string]AutoscalersScopedList `json:"items,omitempty"`
3207
3208	// Kind: [Output Only] Type of resource. Always
3209	// compute#autoscalerAggregatedList for aggregated lists of autoscalers.
3210	Kind string `json:"kind,omitempty"`
3211
3212	// NextPageToken: [Output Only] This token allows you to get the next
3213	// page of results for list requests. If the number of results is larger
3214	// than maxResults, use the nextPageToken as a value for the query
3215	// parameter pageToken in the next list request. Subsequent list
3216	// requests will have their own nextPageToken to continue paging through
3217	// the results.
3218	NextPageToken string `json:"nextPageToken,omitempty"`
3219
3220	// SelfLink: [Output Only] Server-defined URL for this resource.
3221	SelfLink string `json:"selfLink,omitempty"`
3222
3223	// Warning: [Output Only] Informational warning message.
3224	Warning *AutoscalerAggregatedListWarning `json:"warning,omitempty"`
3225
3226	// ServerResponse contains the HTTP response code and headers from the
3227	// server.
3228	googleapi.ServerResponse `json:"-"`
3229
3230	// ForceSendFields is a list of field names (e.g. "Id") to
3231	// unconditionally include in API requests. By default, fields with
3232	// empty values are omitted from API requests. However, any non-pointer,
3233	// non-interface field appearing in ForceSendFields will be sent to the
3234	// server regardless of whether the field is empty or not. This may be
3235	// used to include empty fields in Patch requests.
3236	ForceSendFields []string `json:"-"`
3237
3238	// NullFields is a list of field names (e.g. "Id") to include in API
3239	// requests with the JSON null value. By default, fields with empty
3240	// values are omitted from API requests. However, any field with an
3241	// empty value appearing in NullFields will be sent to the server as
3242	// null. It is an error if a field in this list has a non-empty value.
3243	// This may be used to include null fields in Patch requests.
3244	NullFields []string `json:"-"`
3245}
3246
3247func (s *AutoscalerAggregatedList) MarshalJSON() ([]byte, error) {
3248	type NoMethod AutoscalerAggregatedList
3249	raw := NoMethod(*s)
3250	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3251}
3252
3253// AutoscalerAggregatedListWarning: [Output Only] Informational warning
3254// message.
3255type AutoscalerAggregatedListWarning struct {
3256	// Code: [Output Only] A warning code, if applicable. For example,
3257	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
3258	// the response.
3259	//
3260	// Possible values:
3261	//   "CLEANUP_FAILED"
3262	//   "DEPRECATED_RESOURCE_USED"
3263	//   "DEPRECATED_TYPE_USED"
3264	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
3265	//   "EXPERIMENTAL_TYPE_USED"
3266	//   "EXTERNAL_API_WARNING"
3267	//   "FIELD_VALUE_OVERRIDEN"
3268	//   "INJECTED_KERNELS_DEPRECATED"
3269	//   "MISSING_TYPE_DEPENDENCY"
3270	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
3271	//   "NEXT_HOP_CANNOT_IP_FORWARD"
3272	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
3273	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
3274	//   "NEXT_HOP_NOT_RUNNING"
3275	//   "NOT_CRITICAL_ERROR"
3276	//   "NO_RESULTS_ON_PAGE"
3277	//   "REQUIRED_TOS_AGREEMENT"
3278	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
3279	//   "RESOURCE_NOT_DELETED"
3280	//   "SCHEMA_VALIDATION_IGNORED"
3281	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
3282	//   "UNDECLARED_PROPERTIES"
3283	//   "UNREACHABLE"
3284	Code string `json:"code,omitempty"`
3285
3286	// Data: [Output Only] Metadata about this warning in key: value format.
3287	// For example:
3288	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
3289	Data []*AutoscalerAggregatedListWarningData `json:"data,omitempty"`
3290
3291	// Message: [Output Only] A human-readable description of the warning
3292	// code.
3293	Message string `json:"message,omitempty"`
3294
3295	// ForceSendFields is a list of field names (e.g. "Code") to
3296	// unconditionally include in API requests. By default, fields with
3297	// empty values are omitted from API requests. However, any non-pointer,
3298	// non-interface field appearing in ForceSendFields will be sent to the
3299	// server regardless of whether the field is empty or not. This may be
3300	// used to include empty fields in Patch requests.
3301	ForceSendFields []string `json:"-"`
3302
3303	// NullFields is a list of field names (e.g. "Code") to include in API
3304	// requests with the JSON null value. By default, fields with empty
3305	// values are omitted from API requests. However, any field with an
3306	// empty value appearing in NullFields will be sent to the server as
3307	// null. It is an error if a field in this list has a non-empty value.
3308	// This may be used to include null fields in Patch requests.
3309	NullFields []string `json:"-"`
3310}
3311
3312func (s *AutoscalerAggregatedListWarning) MarshalJSON() ([]byte, error) {
3313	type NoMethod AutoscalerAggregatedListWarning
3314	raw := NoMethod(*s)
3315	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3316}
3317
3318type AutoscalerAggregatedListWarningData struct {
3319	// Key: [Output Only] A key that provides more detail on the warning
3320	// being returned. For example, for warnings where there are no results
3321	// in a list request for a particular zone, this key might be scope and
3322	// the key value might be the zone name. Other examples might be a key
3323	// indicating a deprecated resource and a suggested replacement, or a
3324	// warning about invalid network settings (for example, if an instance
3325	// attempts to perform IP forwarding but is not enabled for IP
3326	// forwarding).
3327	Key string `json:"key,omitempty"`
3328
3329	// Value: [Output Only] A warning data value corresponding to the key.
3330	Value string `json:"value,omitempty"`
3331
3332	// ForceSendFields is a list of field names (e.g. "Key") to
3333	// unconditionally include in API requests. By default, fields with
3334	// empty values are omitted from API requests. However, any non-pointer,
3335	// non-interface field appearing in ForceSendFields will be sent to the
3336	// server regardless of whether the field is empty or not. This may be
3337	// used to include empty fields in Patch requests.
3338	ForceSendFields []string `json:"-"`
3339
3340	// NullFields is a list of field names (e.g. "Key") to include in API
3341	// requests with the JSON null value. By default, fields with empty
3342	// values are omitted from API requests. However, any field with an
3343	// empty value appearing in NullFields will be sent to the server as
3344	// null. It is an error if a field in this list has a non-empty value.
3345	// This may be used to include null fields in Patch requests.
3346	NullFields []string `json:"-"`
3347}
3348
3349func (s *AutoscalerAggregatedListWarningData) MarshalJSON() ([]byte, error) {
3350	type NoMethod AutoscalerAggregatedListWarningData
3351	raw := NoMethod(*s)
3352	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3353}
3354
3355// AutoscalerList: Contains a list of Autoscaler resources.
3356type AutoscalerList struct {
3357	// Id: [Output Only] Unique identifier for the resource; defined by the
3358	// server.
3359	Id string `json:"id,omitempty"`
3360
3361	// Items: A list of Autoscaler resources.
3362	Items []*Autoscaler `json:"items,omitempty"`
3363
3364	// Kind: [Output Only] Type of resource. Always compute#autoscalerList
3365	// for lists of autoscalers.
3366	Kind string `json:"kind,omitempty"`
3367
3368	// NextPageToken: [Output Only] This token allows you to get the next
3369	// page of results for list requests. If the number of results is larger
3370	// than maxResults, use the nextPageToken as a value for the query
3371	// parameter pageToken in the next list request. Subsequent list
3372	// requests will have their own nextPageToken to continue paging through
3373	// the results.
3374	NextPageToken string `json:"nextPageToken,omitempty"`
3375
3376	// SelfLink: [Output Only] Server-defined URL for this resource.
3377	SelfLink string `json:"selfLink,omitempty"`
3378
3379	// Warning: [Output Only] Informational warning message.
3380	Warning *AutoscalerListWarning `json:"warning,omitempty"`
3381
3382	// ServerResponse contains the HTTP response code and headers from the
3383	// server.
3384	googleapi.ServerResponse `json:"-"`
3385
3386	// ForceSendFields is a list of field names (e.g. "Id") to
3387	// unconditionally include in API requests. By default, fields with
3388	// empty values are omitted from API requests. However, any non-pointer,
3389	// non-interface field appearing in ForceSendFields will be sent to the
3390	// server regardless of whether the field is empty or not. This may be
3391	// used to include empty fields in Patch requests.
3392	ForceSendFields []string `json:"-"`
3393
3394	// NullFields is a list of field names (e.g. "Id") to include in API
3395	// requests with the JSON null value. By default, fields with empty
3396	// values are omitted from API requests. However, any field with an
3397	// empty value appearing in NullFields will be sent to the server as
3398	// null. It is an error if a field in this list has a non-empty value.
3399	// This may be used to include null fields in Patch requests.
3400	NullFields []string `json:"-"`
3401}
3402
3403func (s *AutoscalerList) MarshalJSON() ([]byte, error) {
3404	type NoMethod AutoscalerList
3405	raw := NoMethod(*s)
3406	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3407}
3408
3409// AutoscalerListWarning: [Output Only] Informational warning message.
3410type AutoscalerListWarning struct {
3411	// Code: [Output Only] A warning code, if applicable. For example,
3412	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
3413	// the response.
3414	//
3415	// Possible values:
3416	//   "CLEANUP_FAILED"
3417	//   "DEPRECATED_RESOURCE_USED"
3418	//   "DEPRECATED_TYPE_USED"
3419	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
3420	//   "EXPERIMENTAL_TYPE_USED"
3421	//   "EXTERNAL_API_WARNING"
3422	//   "FIELD_VALUE_OVERRIDEN"
3423	//   "INJECTED_KERNELS_DEPRECATED"
3424	//   "MISSING_TYPE_DEPENDENCY"
3425	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
3426	//   "NEXT_HOP_CANNOT_IP_FORWARD"
3427	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
3428	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
3429	//   "NEXT_HOP_NOT_RUNNING"
3430	//   "NOT_CRITICAL_ERROR"
3431	//   "NO_RESULTS_ON_PAGE"
3432	//   "REQUIRED_TOS_AGREEMENT"
3433	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
3434	//   "RESOURCE_NOT_DELETED"
3435	//   "SCHEMA_VALIDATION_IGNORED"
3436	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
3437	//   "UNDECLARED_PROPERTIES"
3438	//   "UNREACHABLE"
3439	Code string `json:"code,omitempty"`
3440
3441	// Data: [Output Only] Metadata about this warning in key: value format.
3442	// For example:
3443	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
3444	Data []*AutoscalerListWarningData `json:"data,omitempty"`
3445
3446	// Message: [Output Only] A human-readable description of the warning
3447	// code.
3448	Message string `json:"message,omitempty"`
3449
3450	// ForceSendFields is a list of field names (e.g. "Code") to
3451	// unconditionally include in API requests. By default, fields with
3452	// empty values are omitted from API requests. However, any non-pointer,
3453	// non-interface field appearing in ForceSendFields will be sent to the
3454	// server regardless of whether the field is empty or not. This may be
3455	// used to include empty fields in Patch requests.
3456	ForceSendFields []string `json:"-"`
3457
3458	// NullFields is a list of field names (e.g. "Code") to include in API
3459	// requests with the JSON null value. By default, fields with empty
3460	// values are omitted from API requests. However, any field with an
3461	// empty value appearing in NullFields will be sent to the server as
3462	// null. It is an error if a field in this list has a non-empty value.
3463	// This may be used to include null fields in Patch requests.
3464	NullFields []string `json:"-"`
3465}
3466
3467func (s *AutoscalerListWarning) MarshalJSON() ([]byte, error) {
3468	type NoMethod AutoscalerListWarning
3469	raw := NoMethod(*s)
3470	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3471}
3472
3473type AutoscalerListWarningData struct {
3474	// Key: [Output Only] A key that provides more detail on the warning
3475	// being returned. For example, for warnings where there are no results
3476	// in a list request for a particular zone, this key might be scope and
3477	// the key value might be the zone name. Other examples might be a key
3478	// indicating a deprecated resource and a suggested replacement, or a
3479	// warning about invalid network settings (for example, if an instance
3480	// attempts to perform IP forwarding but is not enabled for IP
3481	// forwarding).
3482	Key string `json:"key,omitempty"`
3483
3484	// Value: [Output Only] A warning data value corresponding to the key.
3485	Value string `json:"value,omitempty"`
3486
3487	// ForceSendFields is a list of field names (e.g. "Key") to
3488	// unconditionally include in API requests. By default, fields with
3489	// empty values are omitted from API requests. However, any non-pointer,
3490	// non-interface field appearing in ForceSendFields will be sent to the
3491	// server regardless of whether the field is empty or not. This may be
3492	// used to include empty fields in Patch requests.
3493	ForceSendFields []string `json:"-"`
3494
3495	// NullFields is a list of field names (e.g. "Key") to include in API
3496	// requests with the JSON null value. By default, fields with empty
3497	// values are omitted from API requests. However, any field with an
3498	// empty value appearing in NullFields will be sent to the server as
3499	// null. It is an error if a field in this list has a non-empty value.
3500	// This may be used to include null fields in Patch requests.
3501	NullFields []string `json:"-"`
3502}
3503
3504func (s *AutoscalerListWarningData) MarshalJSON() ([]byte, error) {
3505	type NoMethod AutoscalerListWarningData
3506	raw := NoMethod(*s)
3507	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3508}
3509
3510type AutoscalerStatusDetails struct {
3511	// Message: The status message.
3512	Message string `json:"message,omitempty"`
3513
3514	// Type: The type of error, warning, or notice returned. Current set of
3515	// possible values:
3516	// - ALL_INSTANCES_UNHEALTHY (WARNING): All instances in the instance
3517	// group are unhealthy (not in RUNNING state).
3518	// - BACKEND_SERVICE_DOES_NOT_EXIST (ERROR): There is no backend service
3519	// attached to the instance group.
3520	// - CAPPED_AT_MAX_NUM_REPLICAS (WARNING): Autoscaler recommends a size
3521	// greater than maxNumReplicas.
3522	// - CUSTOM_METRIC_DATA_POINTS_TOO_SPARSE (WARNING): The custom metric
3523	// samples are not exported often enough to be a credible base for
3524	// autoscaling.
3525	// - CUSTOM_METRIC_INVALID (ERROR): The custom metric that was specified
3526	// does not exist or does not have the necessary labels.
3527	// - MIN_EQUALS_MAX (WARNING): The minNumReplicas is equal to
3528	// maxNumReplicas. This means the autoscaler cannot add or remove
3529	// instances from the instance group.
3530	// - MISSING_CUSTOM_METRIC_DATA_POINTS (WARNING): The autoscaler did not
3531	// receive any data from the custom metric configured for autoscaling.
3532	//
3533	// - MISSING_LOAD_BALANCING_DATA_POINTS (WARNING): The autoscaler is
3534	// configured to scale based on a load balancing signal but the instance
3535	// group has not received any requests from the load balancer.
3536	// - MODE_OFF (WARNING): Autoscaling is turned off. The number of
3537	// instances in the group won't change automatically. The autoscaling
3538	// configuration is preserved.
3539	// - MODE_ONLY_UP (WARNING): Autoscaling is in the "Autoscale only up"
3540	// mode. The autoscaler can add instances but not remove any.
3541	// - MORE_THAN_ONE_BACKEND_SERVICE (ERROR): The instance group cannot be
3542	// autoscaled because it has more than one backend service attached to
3543	// it.
3544	// - NOT_ENOUGH_QUOTA_AVAILABLE (ERROR): There is insufficient quota for
3545	// the necessary resources, such as CPU or number of instances.
3546	// - REGION_RESOURCE_STOCKOUT (ERROR): Shown only for regional
3547	// autoscalers: there is a resource stockout in the chosen region.
3548	// - SCALING_TARGET_DOES_NOT_EXIST (ERROR): The target to be scaled does
3549	// not exist.
3550	// - UNSUPPORTED_MAX_RATE_LOAD_BALANCING_CONFIGURATION (ERROR):
3551	// Autoscaling does not work with an HTTP/S load balancer that has been
3552	// configured for maxRate.
3553	// - ZONE_RESOURCE_STOCKOUT (ERROR): For zonal autoscalers: there is a
3554	// resource stockout in the chosen zone. For regional autoscalers: in at
3555	// least one of the zones you're using there is a resource stockout.
3556	// New values might be added in the future. Some of the values might not
3557	// be available in all API versions.
3558	//
3559	// Possible values:
3560	//   "ALL_INSTANCES_UNHEALTHY"
3561	//   "BACKEND_SERVICE_DOES_NOT_EXIST"
3562	//   "CAPPED_AT_MAX_NUM_REPLICAS"
3563	//   "CUSTOM_METRIC_DATA_POINTS_TOO_SPARSE"
3564	//   "CUSTOM_METRIC_INVALID"
3565	//   "MIN_EQUALS_MAX"
3566	//   "MISSING_CUSTOM_METRIC_DATA_POINTS"
3567	//   "MISSING_LOAD_BALANCING_DATA_POINTS"
3568	//   "MODE_OFF"
3569	//   "MODE_ONLY_UP"
3570	//   "MORE_THAN_ONE_BACKEND_SERVICE"
3571	//   "NOT_ENOUGH_QUOTA_AVAILABLE"
3572	//   "REGION_RESOURCE_STOCKOUT"
3573	//   "SCALING_TARGET_DOES_NOT_EXIST"
3574	//   "UNKNOWN"
3575	//   "UNSUPPORTED_MAX_RATE_LOAD_BALANCING_CONFIGURATION"
3576	//   "ZONE_RESOURCE_STOCKOUT"
3577	Type string `json:"type,omitempty"`
3578
3579	// ForceSendFields is a list of field names (e.g. "Message") to
3580	// unconditionally include in API requests. By default, fields with
3581	// empty values are omitted from API requests. However, any non-pointer,
3582	// non-interface field appearing in ForceSendFields will be sent to the
3583	// server regardless of whether the field is empty or not. This may be
3584	// used to include empty fields in Patch requests.
3585	ForceSendFields []string `json:"-"`
3586
3587	// NullFields is a list of field names (e.g. "Message") to include in
3588	// API requests with the JSON null value. By default, fields with empty
3589	// values are omitted from API requests. However, any field with an
3590	// empty value appearing in NullFields will be sent to the server as
3591	// null. It is an error if a field in this list has a non-empty value.
3592	// This may be used to include null fields in Patch requests.
3593	NullFields []string `json:"-"`
3594}
3595
3596func (s *AutoscalerStatusDetails) MarshalJSON() ([]byte, error) {
3597	type NoMethod AutoscalerStatusDetails
3598	raw := NoMethod(*s)
3599	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3600}
3601
3602type AutoscalersScopedList struct {
3603	// Autoscalers: [Output Only] A list of autoscalers contained in this
3604	// scope.
3605	Autoscalers []*Autoscaler `json:"autoscalers,omitempty"`
3606
3607	// Warning: [Output Only] Informational warning which replaces the list
3608	// of autoscalers when the list is empty.
3609	Warning *AutoscalersScopedListWarning `json:"warning,omitempty"`
3610
3611	// ForceSendFields is a list of field names (e.g. "Autoscalers") to
3612	// unconditionally include in API requests. By default, fields with
3613	// empty values are omitted from API requests. However, any non-pointer,
3614	// non-interface field appearing in ForceSendFields will be sent to the
3615	// server regardless of whether the field is empty or not. This may be
3616	// used to include empty fields in Patch requests.
3617	ForceSendFields []string `json:"-"`
3618
3619	// NullFields is a list of field names (e.g. "Autoscalers") to include
3620	// in API requests with the JSON null value. By default, fields with
3621	// empty values are omitted from API requests. However, any field with
3622	// an empty value appearing in NullFields will be sent to the server as
3623	// null. It is an error if a field in this list has a non-empty value.
3624	// This may be used to include null fields in Patch requests.
3625	NullFields []string `json:"-"`
3626}
3627
3628func (s *AutoscalersScopedList) MarshalJSON() ([]byte, error) {
3629	type NoMethod AutoscalersScopedList
3630	raw := NoMethod(*s)
3631	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3632}
3633
3634// AutoscalersScopedListWarning: [Output Only] Informational warning
3635// which replaces the list of autoscalers when the list is empty.
3636type AutoscalersScopedListWarning struct {
3637	// Code: [Output Only] A warning code, if applicable. For example,
3638	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
3639	// the response.
3640	//
3641	// Possible values:
3642	//   "CLEANUP_FAILED"
3643	//   "DEPRECATED_RESOURCE_USED"
3644	//   "DEPRECATED_TYPE_USED"
3645	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
3646	//   "EXPERIMENTAL_TYPE_USED"
3647	//   "EXTERNAL_API_WARNING"
3648	//   "FIELD_VALUE_OVERRIDEN"
3649	//   "INJECTED_KERNELS_DEPRECATED"
3650	//   "MISSING_TYPE_DEPENDENCY"
3651	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
3652	//   "NEXT_HOP_CANNOT_IP_FORWARD"
3653	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
3654	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
3655	//   "NEXT_HOP_NOT_RUNNING"
3656	//   "NOT_CRITICAL_ERROR"
3657	//   "NO_RESULTS_ON_PAGE"
3658	//   "REQUIRED_TOS_AGREEMENT"
3659	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
3660	//   "RESOURCE_NOT_DELETED"
3661	//   "SCHEMA_VALIDATION_IGNORED"
3662	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
3663	//   "UNDECLARED_PROPERTIES"
3664	//   "UNREACHABLE"
3665	Code string `json:"code,omitempty"`
3666
3667	// Data: [Output Only] Metadata about this warning in key: value format.
3668	// For example:
3669	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
3670	Data []*AutoscalersScopedListWarningData `json:"data,omitempty"`
3671
3672	// Message: [Output Only] A human-readable description of the warning
3673	// code.
3674	Message string `json:"message,omitempty"`
3675
3676	// ForceSendFields is a list of field names (e.g. "Code") to
3677	// unconditionally include in API requests. By default, fields with
3678	// empty values are omitted from API requests. However, any non-pointer,
3679	// non-interface field appearing in ForceSendFields will be sent to the
3680	// server regardless of whether the field is empty or not. This may be
3681	// used to include empty fields in Patch requests.
3682	ForceSendFields []string `json:"-"`
3683
3684	// NullFields is a list of field names (e.g. "Code") to include in API
3685	// requests with the JSON null value. By default, fields with empty
3686	// values are omitted from API requests. However, any field with an
3687	// empty value appearing in NullFields will be sent to the server as
3688	// null. It is an error if a field in this list has a non-empty value.
3689	// This may be used to include null fields in Patch requests.
3690	NullFields []string `json:"-"`
3691}
3692
3693func (s *AutoscalersScopedListWarning) MarshalJSON() ([]byte, error) {
3694	type NoMethod AutoscalersScopedListWarning
3695	raw := NoMethod(*s)
3696	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3697}
3698
3699type AutoscalersScopedListWarningData struct {
3700	// Key: [Output Only] A key that provides more detail on the warning
3701	// being returned. For example, for warnings where there are no results
3702	// in a list request for a particular zone, this key might be scope and
3703	// the key value might be the zone name. Other examples might be a key
3704	// indicating a deprecated resource and a suggested replacement, or a
3705	// warning about invalid network settings (for example, if an instance
3706	// attempts to perform IP forwarding but is not enabled for IP
3707	// forwarding).
3708	Key string `json:"key,omitempty"`
3709
3710	// Value: [Output Only] A warning data value corresponding to the key.
3711	Value string `json:"value,omitempty"`
3712
3713	// ForceSendFields is a list of field names (e.g. "Key") to
3714	// unconditionally include in API requests. By default, fields with
3715	// empty values are omitted from API requests. However, any non-pointer,
3716	// non-interface field appearing in ForceSendFields will be sent to the
3717	// server regardless of whether the field is empty or not. This may be
3718	// used to include empty fields in Patch requests.
3719	ForceSendFields []string `json:"-"`
3720
3721	// NullFields is a list of field names (e.g. "Key") to include in API
3722	// requests with the JSON null value. By default, fields with empty
3723	// values are omitted from API requests. However, any field with an
3724	// empty value appearing in NullFields will be sent to the server as
3725	// null. It is an error if a field in this list has a non-empty value.
3726	// This may be used to include null fields in Patch requests.
3727	NullFields []string `json:"-"`
3728}
3729
3730func (s *AutoscalersScopedListWarningData) MarshalJSON() ([]byte, error) {
3731	type NoMethod AutoscalersScopedListWarningData
3732	raw := NoMethod(*s)
3733	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3734}
3735
3736// AutoscalingPolicy: Cloud Autoscaler policy.
3737type AutoscalingPolicy struct {
3738	// CoolDownPeriodSec: The number of seconds that the autoscaler should
3739	// wait before it starts collecting information from a new instance.
3740	// This prevents the autoscaler from collecting information when the
3741	// instance is initializing, during which the collected usage would not
3742	// be reliable. The default time autoscaler waits is 60
3743	// seconds.
3744	//
3745	// Virtual machine initialization times might vary because of numerous
3746	// factors. We recommend that you test how long an instance may take to
3747	// initialize. To do this, create an instance and time the startup
3748	// process.
3749	CoolDownPeriodSec int64 `json:"coolDownPeriodSec,omitempty"`
3750
3751	// CpuUtilization: Defines the CPU utilization policy that allows the
3752	// autoscaler to scale based on the average CPU utilization of a managed
3753	// instance group.
3754	CpuUtilization *AutoscalingPolicyCpuUtilization `json:"cpuUtilization,omitempty"`
3755
3756	// CustomMetricUtilizations: Configuration parameters of autoscaling
3757	// based on a custom metric.
3758	CustomMetricUtilizations []*AutoscalingPolicyCustomMetricUtilization `json:"customMetricUtilizations,omitempty"`
3759
3760	// LoadBalancingUtilization: Configuration parameters of autoscaling
3761	// based on load balancer.
3762	LoadBalancingUtilization *AutoscalingPolicyLoadBalancingUtilization `json:"loadBalancingUtilization,omitempty"`
3763
3764	// MaxNumReplicas: The maximum number of instances that the autoscaler
3765	// can scale up to. This is required when creating or updating an
3766	// autoscaler. The maximum number of replicas should not be lower than
3767	// minimal number of replicas.
3768	MaxNumReplicas int64 `json:"maxNumReplicas,omitempty"`
3769
3770	// MinNumReplicas: The minimum number of replicas that the autoscaler
3771	// can scale down to. This cannot be less than 0. If not provided,
3772	// autoscaler will choose a default value depending on maximum number of
3773	// instances allowed.
3774	MinNumReplicas int64 `json:"minNumReplicas,omitempty"`
3775
3776	// Mode: Defines operating mode for this policy.
3777	//
3778	// Possible values:
3779	//   "OFF"
3780	//   "ON"
3781	//   "ONLY_UP"
3782	Mode string `json:"mode,omitempty"`
3783
3784	// QueueBasedScaling: Configuration parameters of autoscaling based on
3785	// queuing system.
3786	QueueBasedScaling *AutoscalingPolicyQueueBasedScaling `json:"queueBasedScaling,omitempty"`
3787
3788	ScaleDownControl *AutoscalingPolicyScaleDownControl `json:"scaleDownControl,omitempty"`
3789
3790	// ForceSendFields is a list of field names (e.g. "CoolDownPeriodSec")
3791	// to unconditionally include in API requests. By default, fields with
3792	// empty values are omitted from API requests. However, any non-pointer,
3793	// non-interface field appearing in ForceSendFields will be sent to the
3794	// server regardless of whether the field is empty or not. This may be
3795	// used to include empty fields in Patch requests.
3796	ForceSendFields []string `json:"-"`
3797
3798	// NullFields is a list of field names (e.g. "CoolDownPeriodSec") to
3799	// include in API requests with the JSON null value. By default, fields
3800	// with empty values are omitted from API requests. However, any field
3801	// with an empty value appearing in NullFields will be sent to the
3802	// server as null. It is an error if a field in this list has a
3803	// non-empty value. This may be used to include null fields in Patch
3804	// requests.
3805	NullFields []string `json:"-"`
3806}
3807
3808func (s *AutoscalingPolicy) MarshalJSON() ([]byte, error) {
3809	type NoMethod AutoscalingPolicy
3810	raw := NoMethod(*s)
3811	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3812}
3813
3814// AutoscalingPolicyCpuUtilization: CPU utilization policy.
3815type AutoscalingPolicyCpuUtilization struct {
3816	// UtilizationTarget: The target CPU utilization that the autoscaler
3817	// should maintain. Must be a float value in the range (0, 1]. If not
3818	// specified, the default is 0.6.
3819	//
3820	// If the CPU level is below the target utilization, the autoscaler
3821	// scales down the number of instances until it reaches the minimum
3822	// number of instances you specified or until the average CPU of your
3823	// instances reaches the target utilization.
3824	//
3825	// If the average CPU is above the target utilization, the autoscaler
3826	// scales up until it reaches the maximum number of instances you
3827	// specified or until the average utilization reaches the target
3828	// utilization.
3829	UtilizationTarget float64 `json:"utilizationTarget,omitempty"`
3830
3831	// ForceSendFields is a list of field names (e.g. "UtilizationTarget")
3832	// to unconditionally include in API requests. By default, fields with
3833	// empty values are omitted from API requests. However, any non-pointer,
3834	// non-interface field appearing in ForceSendFields will be sent to the
3835	// server regardless of whether the field is empty or not. This may be
3836	// used to include empty fields in Patch requests.
3837	ForceSendFields []string `json:"-"`
3838
3839	// NullFields is a list of field names (e.g. "UtilizationTarget") to
3840	// include in API requests with the JSON null value. By default, fields
3841	// with empty values are omitted from API requests. However, any field
3842	// with an empty value appearing in NullFields will be sent to the
3843	// server as null. It is an error if a field in this list has a
3844	// non-empty value. This may be used to include null fields in Patch
3845	// requests.
3846	NullFields []string `json:"-"`
3847}
3848
3849func (s *AutoscalingPolicyCpuUtilization) MarshalJSON() ([]byte, error) {
3850	type NoMethod AutoscalingPolicyCpuUtilization
3851	raw := NoMethod(*s)
3852	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3853}
3854
3855func (s *AutoscalingPolicyCpuUtilization) UnmarshalJSON(data []byte) error {
3856	type NoMethod AutoscalingPolicyCpuUtilization
3857	var s1 struct {
3858		UtilizationTarget gensupport.JSONFloat64 `json:"utilizationTarget"`
3859		*NoMethod
3860	}
3861	s1.NoMethod = (*NoMethod)(s)
3862	if err := json.Unmarshal(data, &s1); err != nil {
3863		return err
3864	}
3865	s.UtilizationTarget = float64(s1.UtilizationTarget)
3866	return nil
3867}
3868
3869// AutoscalingPolicyCustomMetricUtilization: Custom utilization metric
3870// policy.
3871type AutoscalingPolicyCustomMetricUtilization struct {
3872	// Filter: A filter string, compatible with a Stackdriver Monitoring
3873	// filter string for TimeSeries.list API call. This filter is used to
3874	// select a specific TimeSeries for the purpose of autoscaling and to
3875	// determine whether the metric is exporting per-instance or per-group
3876	// data.
3877	//
3878	// For the filter to be valid for autoscaling purposes, the following
3879	// rules apply:
3880	// - You can only use the AND operator for joining selectors.
3881	// - You can only use direct equality comparison operator (=) without
3882	// any functions for each selector.
3883	// - You can specify the metric in both the filter string and in the
3884	// metric field. However, if specified in both places, the metric must
3885	// be identical.
3886	// - The monitored resource type determines what kind of values are
3887	// expected for the metric. If it is a gce_instance, the autoscaler
3888	// expects the metric to include a separate TimeSeries for each instance
3889	// in a group. In such a case, you cannot filter on resource labels.
3890	// If the resource type is any other value, the autoscaler expects this
3891	// metric to contain values that apply to the entire autoscaled instance
3892	// group and resource label filtering can be performed to point
3893	// autoscaler at the correct TimeSeries to scale upon. This is called a
3894	// per-group metric for the purpose of autoscaling.
3895	//
3896	// If not specified, the type defaults to gce_instance.
3897	//
3898	// You should provide a filter that is selective enough to pick just one
3899	// TimeSeries for the autoscaled group or for each of the instances (if
3900	// you are using gce_instance resource type). If multiple TimeSeries are
3901	// returned upon the query execution, the autoscaler will sum their
3902	// respective values to obtain its scaling value.
3903	Filter string `json:"filter,omitempty"`
3904
3905	// Metric: The identifier (type) of the Stackdriver Monitoring metric.
3906	// The metric cannot have negative values.
3907	//
3908	// The metric must have a value type of INT64 or DOUBLE.
3909	Metric string `json:"metric,omitempty"`
3910
3911	// SingleInstanceAssignment: If scaling is based on a per-group metric
3912	// value that represents the total amount of work to be done or resource
3913	// usage, set this value to an amount assigned for a single instance of
3914	// the scaled group. Autoscaler will keep the number of instances
3915	// proportional to the value of this metric, the metric itself should
3916	// not change value due to group resizing.
3917	//
3918	// A good metric to use with the target is for example
3919	// pubsub.googleapis.com/subscription/num_undelivered_messages or a
3920	// custom metric exporting the total number of requests coming to your
3921	// instances.
3922	//
3923	// A bad example would be a metric exporting an average or median
3924	// latency, since this value can't include a chunk assignable to a
3925	// single instance, it could be better used with utilization_target
3926	// instead.
3927	SingleInstanceAssignment float64 `json:"singleInstanceAssignment,omitempty"`
3928
3929	// UtilizationTarget: The target value of the metric that autoscaler
3930	// should maintain. This must be a positive value. A utilization metric
3931	// scales number of virtual machines handling requests to increase or
3932	// decrease proportionally to the metric.
3933	//
3934	// For example, a good metric to use as a utilization_target is
3935	// compute.googleapis.com/instance/network/received_bytes_count. The
3936	// autoscaler will work to keep this value constant for each of the
3937	// instances.
3938	UtilizationTarget float64 `json:"utilizationTarget,omitempty"`
3939
3940	// UtilizationTargetType: Defines how target utilization value is
3941	// expressed for a Stackdriver Monitoring metric. Either GAUGE,
3942	// DELTA_PER_SECOND, or DELTA_PER_MINUTE.
3943	//
3944	// Possible values:
3945	//   "DELTA_PER_MINUTE"
3946	//   "DELTA_PER_SECOND"
3947	//   "GAUGE"
3948	UtilizationTargetType string `json:"utilizationTargetType,omitempty"`
3949
3950	// ForceSendFields is a list of field names (e.g. "Filter") to
3951	// unconditionally include in API requests. By default, fields with
3952	// empty values are omitted from API requests. However, any non-pointer,
3953	// non-interface field appearing in ForceSendFields will be sent to the
3954	// server regardless of whether the field is empty or not. This may be
3955	// used to include empty fields in Patch requests.
3956	ForceSendFields []string `json:"-"`
3957
3958	// NullFields is a list of field names (e.g. "Filter") to include in API
3959	// requests with the JSON null value. By default, fields with empty
3960	// values are omitted from API requests. However, any field with an
3961	// empty value appearing in NullFields will be sent to the server as
3962	// null. It is an error if a field in this list has a non-empty value.
3963	// This may be used to include null fields in Patch requests.
3964	NullFields []string `json:"-"`
3965}
3966
3967func (s *AutoscalingPolicyCustomMetricUtilization) MarshalJSON() ([]byte, error) {
3968	type NoMethod AutoscalingPolicyCustomMetricUtilization
3969	raw := NoMethod(*s)
3970	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3971}
3972
3973func (s *AutoscalingPolicyCustomMetricUtilization) UnmarshalJSON(data []byte) error {
3974	type NoMethod AutoscalingPolicyCustomMetricUtilization
3975	var s1 struct {
3976		SingleInstanceAssignment gensupport.JSONFloat64 `json:"singleInstanceAssignment"`
3977		UtilizationTarget        gensupport.JSONFloat64 `json:"utilizationTarget"`
3978		*NoMethod
3979	}
3980	s1.NoMethod = (*NoMethod)(s)
3981	if err := json.Unmarshal(data, &s1); err != nil {
3982		return err
3983	}
3984	s.SingleInstanceAssignment = float64(s1.SingleInstanceAssignment)
3985	s.UtilizationTarget = float64(s1.UtilizationTarget)
3986	return nil
3987}
3988
3989// AutoscalingPolicyLoadBalancingUtilization: Configuration parameters
3990// of autoscaling based on load balancing.
3991type AutoscalingPolicyLoadBalancingUtilization struct {
3992	// UtilizationTarget: Fraction of backend capacity utilization (set in
3993	// HTTP(S) load balancing configuration) that autoscaler should
3994	// maintain. Must be a positive float value. If not defined, the default
3995	// is 0.8.
3996	UtilizationTarget float64 `json:"utilizationTarget,omitempty"`
3997
3998	// ForceSendFields is a list of field names (e.g. "UtilizationTarget")
3999	// to unconditionally include in API requests. By default, fields with
4000	// empty values are omitted from API requests. However, any non-pointer,
4001	// non-interface field appearing in ForceSendFields will be sent to the
4002	// server regardless of whether the field is empty or not. This may be
4003	// used to include empty fields in Patch requests.
4004	ForceSendFields []string `json:"-"`
4005
4006	// NullFields is a list of field names (e.g. "UtilizationTarget") to
4007	// include in API requests with the JSON null value. By default, fields
4008	// with empty values are omitted from API requests. However, any field
4009	// with an empty value appearing in NullFields will be sent to the
4010	// server as null. It is an error if a field in this list has a
4011	// non-empty value. This may be used to include null fields in Patch
4012	// requests.
4013	NullFields []string `json:"-"`
4014}
4015
4016func (s *AutoscalingPolicyLoadBalancingUtilization) MarshalJSON() ([]byte, error) {
4017	type NoMethod AutoscalingPolicyLoadBalancingUtilization
4018	raw := NoMethod(*s)
4019	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4020}
4021
4022func (s *AutoscalingPolicyLoadBalancingUtilization) UnmarshalJSON(data []byte) error {
4023	type NoMethod AutoscalingPolicyLoadBalancingUtilization
4024	var s1 struct {
4025		UtilizationTarget gensupport.JSONFloat64 `json:"utilizationTarget"`
4026		*NoMethod
4027	}
4028	s1.NoMethod = (*NoMethod)(s)
4029	if err := json.Unmarshal(data, &s1); err != nil {
4030		return err
4031	}
4032	s.UtilizationTarget = float64(s1.UtilizationTarget)
4033	return nil
4034}
4035
4036// AutoscalingPolicyQueueBasedScaling: Configuration parameters of
4037// autoscaling based on queuing system.
4038type AutoscalingPolicyQueueBasedScaling struct {
4039	// AcceptableBacklogPerInstance: Scaling based on the average number of
4040	// tasks in the queue per each active instance. The autoscaler keeps the
4041	// average number of tasks per instance below this number, based on data
4042	// collected in the last couple of minutes. The autoscaler will also
4043	// take into account incoming tasks when calculating when to scale.
4044	AcceptableBacklogPerInstance float64 `json:"acceptableBacklogPerInstance,omitempty"`
4045
4046	// CloudPubSub: Configuration for Cloud Pub/Sub subscription queue.
4047	CloudPubSub *AutoscalingPolicyQueueBasedScalingCloudPubSub `json:"cloudPubSub,omitempty"`
4048
4049	// SingleWorkerThroughputPerSec: The scaling algorithm will also
4050	// calculate throughput estimates on its own; if you explicitly provide
4051	// this value, the autoscaler will take into account your value as well
4052	// as automatic estimates when deciding how to scale.
4053	SingleWorkerThroughputPerSec float64 `json:"singleWorkerThroughputPerSec,omitempty"`
4054
4055	// ForceSendFields is a list of field names (e.g.
4056	// "AcceptableBacklogPerInstance") to unconditionally include in API
4057	// requests. By default, fields with empty values are omitted from API
4058	// requests. However, any non-pointer, non-interface field appearing in
4059	// ForceSendFields will be sent to the server regardless of whether the
4060	// field is empty or not. This may be used to include empty fields in
4061	// Patch requests.
4062	ForceSendFields []string `json:"-"`
4063
4064	// NullFields is a list of field names (e.g.
4065	// "AcceptableBacklogPerInstance") to include in API requests with the
4066	// JSON null value. By default, fields with empty values are omitted
4067	// from API requests. However, any field with an empty value appearing
4068	// in NullFields will be sent to the server as null. It is an error if a
4069	// field in this list has a non-empty value. This may be used to include
4070	// null fields in Patch requests.
4071	NullFields []string `json:"-"`
4072}
4073
4074func (s *AutoscalingPolicyQueueBasedScaling) MarshalJSON() ([]byte, error) {
4075	type NoMethod AutoscalingPolicyQueueBasedScaling
4076	raw := NoMethod(*s)
4077	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4078}
4079
4080func (s *AutoscalingPolicyQueueBasedScaling) UnmarshalJSON(data []byte) error {
4081	type NoMethod AutoscalingPolicyQueueBasedScaling
4082	var s1 struct {
4083		AcceptableBacklogPerInstance gensupport.JSONFloat64 `json:"acceptableBacklogPerInstance"`
4084		SingleWorkerThroughputPerSec gensupport.JSONFloat64 `json:"singleWorkerThroughputPerSec"`
4085		*NoMethod
4086	}
4087	s1.NoMethod = (*NoMethod)(s)
4088	if err := json.Unmarshal(data, &s1); err != nil {
4089		return err
4090	}
4091	s.AcceptableBacklogPerInstance = float64(s1.AcceptableBacklogPerInstance)
4092	s.SingleWorkerThroughputPerSec = float64(s1.SingleWorkerThroughputPerSec)
4093	return nil
4094}
4095
4096// AutoscalingPolicyQueueBasedScalingCloudPubSub: Configuration
4097// parameters for scaling based on Cloud Pub/Sub subscription queue.
4098type AutoscalingPolicyQueueBasedScalingCloudPubSub struct {
4099	// Subscription: Cloud Pub/Sub subscription used for scaling. Provide
4100	// the partial URL (starting with projects/) or just the subscription
4101	// name. The subscription must be assigned to the topic specified in
4102	// topicName and must be in a pull configuration. The subscription must
4103	// belong to the same project as the Autoscaler.
4104	Subscription string `json:"subscription,omitempty"`
4105
4106	// Topic: Cloud Pub/Sub topic used for scaling. Provide the partial URL
4107	// or partial URL (starting with projects/) or just the topic name. The
4108	// topic must belong to the same project as the Autoscaler resource.
4109	Topic string `json:"topic,omitempty"`
4110
4111	// ForceSendFields is a list of field names (e.g. "Subscription") to
4112	// unconditionally include in API requests. By default, fields with
4113	// empty values are omitted from API requests. However, any non-pointer,
4114	// non-interface field appearing in ForceSendFields will be sent to the
4115	// server regardless of whether the field is empty or not. This may be
4116	// used to include empty fields in Patch requests.
4117	ForceSendFields []string `json:"-"`
4118
4119	// NullFields is a list of field names (e.g. "Subscription") to include
4120	// in API requests with the JSON null value. By default, fields with
4121	// empty values are omitted from API requests. However, any field with
4122	// an empty value appearing in NullFields will be sent to the server as
4123	// null. It is an error if a field in this list has a non-empty value.
4124	// This may be used to include null fields in Patch requests.
4125	NullFields []string `json:"-"`
4126}
4127
4128func (s *AutoscalingPolicyQueueBasedScalingCloudPubSub) MarshalJSON() ([]byte, error) {
4129	type NoMethod AutoscalingPolicyQueueBasedScalingCloudPubSub
4130	raw := NoMethod(*s)
4131	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4132}
4133
4134// AutoscalingPolicyScaleDownControl: Configuration that allows for
4135// slower scale down so that even if Autoscaler recommends an abrupt
4136// scale down of a MIG, it will be throttled as specified by the
4137// parameters below.
4138type AutoscalingPolicyScaleDownControl struct {
4139	// MaxScaledDownReplicas: Maximum allowed number (or %) of VMs that can
4140	// be deducted from the peak recommendation during the window autoscaler
4141	// looks at when computing recommendations. Possibly all these VMs can
4142	// be deleted at once so user service needs to be prepared to lose that
4143	// many VMs in one step.
4144	MaxScaledDownReplicas *FixedOrPercent `json:"maxScaledDownReplicas,omitempty"`
4145
4146	// TimeWindowSec: How long back autoscaling should look when computing
4147	// recommendations to include directives regarding slower scale down, as
4148	// described above.
4149	TimeWindowSec int64 `json:"timeWindowSec,omitempty"`
4150
4151	// ForceSendFields is a list of field names (e.g.
4152	// "MaxScaledDownReplicas") to unconditionally include in API requests.
4153	// By default, fields with empty values are omitted from API requests.
4154	// However, any non-pointer, non-interface field appearing in
4155	// ForceSendFields will be sent to the server regardless of whether the
4156	// field is empty or not. This may be used to include empty fields in
4157	// Patch requests.
4158	ForceSendFields []string `json:"-"`
4159
4160	// NullFields is a list of field names (e.g. "MaxScaledDownReplicas") to
4161	// include in API requests with the JSON null value. By default, fields
4162	// with empty values are omitted from API requests. However, any field
4163	// with an empty value appearing in NullFields will be sent to the
4164	// server as null. It is an error if a field in this list has a
4165	// non-empty value. This may be used to include null fields in Patch
4166	// requests.
4167	NullFields []string `json:"-"`
4168}
4169
4170func (s *AutoscalingPolicyScaleDownControl) MarshalJSON() ([]byte, error) {
4171	type NoMethod AutoscalingPolicyScaleDownControl
4172	raw := NoMethod(*s)
4173	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4174}
4175
4176// Backend: Message containing information of one individual backend.
4177type Backend struct {
4178	// BalancingMode: Specifies the balancing mode for the backend.
4179	//
4180	// When choosing a balancing mode, you need to consider the
4181	// loadBalancingScheme, and protocol for the backend service, as well as
4182	// the type of backend (instance group or NEG).
4183	//
4184	//
4185	// - If the load balancing mode is CONNECTION, then the load is spread
4186	// based on how many concurrent connections the backend can handle.
4187	// You can use the CONNECTION balancing mode if the protocol for the
4188	// backend service is SSL, TCP, or UDP.
4189	//
4190	// If the loadBalancingScheme for the backend service is EXTERNAL (SSL
4191	// Proxy and TCP Proxy load balancers), you must also specify exactly
4192	// one of the following parameters: maxConnections,
4193	// maxConnectionsPerInstance, or maxConnectionsPerEndpoint.
4194	//
4195	// If the loadBalancingScheme for the backend service is INTERNAL
4196	// (internal TCP/UDP load balancers), you cannot specify any additional
4197	// parameters.
4198	//
4199	// - If the load balancing mode is RATE, the load is spread based on the
4200	// rate of HTTP requests per second (RPS).
4201	// You can use the RATE balancing mode if the protocol for the backend
4202	// service is HTTP or HTTPS. You must specify exactly one of the
4203	// following parameters: maxRate, maxRatePerInstance, or
4204	// maxRatePerEndpoint.
4205	//
4206	// - If the load balancing mode is UTILIZATION, the load is spread based
4207	// on the CPU utilization of instances in an instance group.
4208	// You can use the UTILIZATION balancing mode if the loadBalancingScheme
4209	// of the backend service is EXTERNAL, INTERNAL_SELF_MANAGED, or
4210	// INTERNAL_MANAGED and the backends are instance groups. There are no
4211	// restrictions on the backend service protocol.
4212	//
4213	// Possible values:
4214	//   "CONNECTION"
4215	//   "RATE"
4216	//   "UTILIZATION"
4217	BalancingMode string `json:"balancingMode,omitempty"`
4218
4219	// CapacityScaler: A multiplier applied to the group's maximum servicing
4220	// capacity (based on UTILIZATION, RATE or CONNECTION). Default value is
4221	// 1, which means the group will serve up to 100% of its configured
4222	// capacity (depending on balancingMode). A setting of 0 means the group
4223	// is completely drained, offering 0% of its available Capacity. Valid
4224	// range is [0.0,1.0].
4225	//
4226	// This cannot be used for internal load balancing.
4227	CapacityScaler float64 `json:"capacityScaler,omitempty"`
4228
4229	// Description: An optional description of this resource. Provide this
4230	// property when you create the resource.
4231	Description string `json:"description,omitempty"`
4232
4233	// Failover: This field designates whether this is a failover backend.
4234	// More than one failover backend can be configured for a given
4235	// BackendService.
4236	Failover bool `json:"failover,omitempty"`
4237
4238	// Group: The fully-qualified URL of an instance group or network
4239	// endpoint group (NEG) resource. The type of backend that a backend
4240	// service supports depends on the backend service's
4241	// loadBalancingScheme.
4242	//
4243	//
4244	// - When the loadBalancingScheme for the backend service is EXTERNAL,
4245	// INTERNAL_SELF_MANAGED, or INTERNAL_MANAGED, the backend can be either
4246	// an instance group or a NEG. The backends on the backend service must
4247	// be either all instance groups or all NEGs. You cannot mix instance
4248	// group and NEG backends on the same backend service.
4249	//
4250	//
4251	// - When the loadBalancingScheme for the backend service is INTERNAL,
4252	// the backend must be an instance group in the same region as the
4253	// backend service. NEGs are not supported.
4254	//
4255	// You must use the fully-qualified URL (starting with
4256	// https://www.googleapis.com/) to specify the instance group or NEG.
4257	// Partial URLs are not supported.
4258	Group string `json:"group,omitempty"`
4259
4260	// MaxConnections: Defines a maximum target for simultaneous connections
4261	// for the entire backend (instance group or NEG). If the backend's
4262	// balancingMode is UTILIZATION, this is an optional parameter. If the
4263	// backend's balancingMode is CONNECTION, and backend is attached to a
4264	// backend service whose loadBalancingScheme is EXTERNAL, you must
4265	// specify either this parameter, maxConnectionsPerInstance, or
4266	// maxConnectionsPerEndpoint.
4267	//
4268	// Not available if the backend's balancingMode is RATE. If the
4269	// loadBalancingScheme is INTERNAL, then maxConnections is not
4270	// supported, even though the backend requires a balancing mode of
4271	// CONNECTION.
4272	MaxConnections int64 `json:"maxConnections,omitempty"`
4273
4274	// MaxConnectionsPerEndpoint: Defines a maximum target for simultaneous
4275	// connections for an endpoint of a NEG. This is multiplied by the
4276	// number of endpoints in the NEG to implicitly calculate a maximum
4277	// number of target maximum simultaneous connections for the NEG. If the
4278	// backend's balancingMode is CONNECTION, and the backend is attached to
4279	// a backend service whose loadBalancingScheme is EXTERNAL, you must
4280	// specify either this parameter, maxConnections, or
4281	// maxConnectionsPerInstance.
4282	//
4283	// Not available if the backend's balancingMode is RATE. Internal
4284	// TCP/UDP load balancing does not support setting
4285	// maxConnectionsPerEndpoint even though its backends require a
4286	// balancing mode of CONNECTION.
4287	MaxConnectionsPerEndpoint int64 `json:"maxConnectionsPerEndpoint,omitempty"`
4288
4289	// MaxConnectionsPerInstance: Defines a maximum target for simultaneous
4290	// connections for a single VM in a backend instance group. This is
4291	// multiplied by the number of instances in the instance group to
4292	// implicitly calculate a target maximum number of simultaneous
4293	// connections for the whole instance group. If the backend's
4294	// balancingMode is UTILIZATION, this is an optional parameter. If the
4295	// backend's balancingMode is CONNECTION, and backend is attached to a
4296	// backend service whose loadBalancingScheme is EXTERNAL, you must
4297	// specify either this parameter, maxConnections, or
4298	// maxConnectionsPerEndpoint.
4299	//
4300	// Not available if the backend's balancingMode is RATE. Internal
4301	// TCP/UDP load balancing does not support setting
4302	// maxConnectionsPerInstance even though its backends require a
4303	// balancing mode of CONNECTION.
4304	MaxConnectionsPerInstance int64 `json:"maxConnectionsPerInstance,omitempty"`
4305
4306	// MaxRate: The max requests per second (RPS) of the group. Can be used
4307	// with either RATE or UTILIZATION balancing modes, but required if RATE
4308	// mode. For RATE mode, either maxRate or maxRatePerInstance must be
4309	// set.
4310	//
4311	// This cannot be used for internal load balancing.
4312	MaxRate int64 `json:"maxRate,omitempty"`
4313
4314	// MaxRatePerEndpoint: Defines a maximum target for requests per second
4315	// (RPS) for an endpoint of a NEG. This is multiplied by the number of
4316	// endpoints in the NEG to implicitly calculate a target maximum rate
4317	// for the NEG.
4318	//
4319	// If the backend's balancingMode is RATE, you must specify either this
4320	// parameter, maxRate, or maxRatePerInstance.
4321	//
4322	// Not available if the backend's balancingMode is CONNECTION.
4323	MaxRatePerEndpoint float64 `json:"maxRatePerEndpoint,omitempty"`
4324
4325	// MaxRatePerInstance: Defines a maximum target for requests per second
4326	// (RPS) for a single VM in a backend instance group. This is multiplied
4327	// by the number of instances in the instance group to implicitly
4328	// calculate a target maximum rate for the whole instance group.
4329	//
4330	// If the backend's balancingMode is UTILIZATION, this is an optional
4331	// parameter. If the backend's balancingMode is RATE, you must specify
4332	// either this parameter, maxRate, or maxRatePerEndpoint.
4333	//
4334	// Not available if the backend's balancingMode is CONNECTION.
4335	MaxRatePerInstance float64 `json:"maxRatePerInstance,omitempty"`
4336
4337	// MaxUtilization: Defines the maximum average CPU utilization of a
4338	// backend VM in an instance group. The valid range is [0.0, 1.0]. This
4339	// is an optional parameter if the backend's balancingMode is
4340	// UTILIZATION.
4341	//
4342	// This parameter can be used in conjunction with maxRate,
4343	// maxRatePerInstance, maxConnections, or maxConnectionsPerInstance.
4344	MaxUtilization float64 `json:"maxUtilization,omitempty"`
4345
4346	// ForceSendFields is a list of field names (e.g. "BalancingMode") to
4347	// unconditionally include in API requests. By default, fields with
4348	// empty values are omitted from API requests. However, any non-pointer,
4349	// non-interface field appearing in ForceSendFields will be sent to the
4350	// server regardless of whether the field is empty or not. This may be
4351	// used to include empty fields in Patch requests.
4352	ForceSendFields []string `json:"-"`
4353
4354	// NullFields is a list of field names (e.g. "BalancingMode") to include
4355	// in API requests with the JSON null value. By default, fields with
4356	// empty values are omitted from API requests. However, any field with
4357	// an empty value appearing in NullFields will be sent to the server as
4358	// null. It is an error if a field in this list has a non-empty value.
4359	// This may be used to include null fields in Patch requests.
4360	NullFields []string `json:"-"`
4361}
4362
4363func (s *Backend) MarshalJSON() ([]byte, error) {
4364	type NoMethod Backend
4365	raw := NoMethod(*s)
4366	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4367}
4368
4369func (s *Backend) UnmarshalJSON(data []byte) error {
4370	type NoMethod Backend
4371	var s1 struct {
4372		CapacityScaler     gensupport.JSONFloat64 `json:"capacityScaler"`
4373		MaxRatePerEndpoint gensupport.JSONFloat64 `json:"maxRatePerEndpoint"`
4374		MaxRatePerInstance gensupport.JSONFloat64 `json:"maxRatePerInstance"`
4375		MaxUtilization     gensupport.JSONFloat64 `json:"maxUtilization"`
4376		*NoMethod
4377	}
4378	s1.NoMethod = (*NoMethod)(s)
4379	if err := json.Unmarshal(data, &s1); err != nil {
4380		return err
4381	}
4382	s.CapacityScaler = float64(s1.CapacityScaler)
4383	s.MaxRatePerEndpoint = float64(s1.MaxRatePerEndpoint)
4384	s.MaxRatePerInstance = float64(s1.MaxRatePerInstance)
4385	s.MaxUtilization = float64(s1.MaxUtilization)
4386	return nil
4387}
4388
4389// BackendBucket: Represents a Cloud Storage Bucket resource.
4390//
4391// This Cloud Storage bucket resource is referenced by a URL map of a
4392// load balancer. For more information, read Backend Buckets.
4393type BackendBucket struct {
4394	// BucketName: Cloud Storage bucket name.
4395	BucketName string `json:"bucketName,omitempty"`
4396
4397	// CdnPolicy: Cloud CDN configuration for this BackendBucket.
4398	CdnPolicy *BackendBucketCdnPolicy `json:"cdnPolicy,omitempty"`
4399
4400	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
4401	// format.
4402	CreationTimestamp string `json:"creationTimestamp,omitempty"`
4403
4404	// Description: An optional textual description of the resource;
4405	// provided by the client when the resource is created.
4406	Description string `json:"description,omitempty"`
4407
4408	// EnableCdn: If true, enable Cloud CDN for this BackendBucket.
4409	EnableCdn bool `json:"enableCdn,omitempty"`
4410
4411	// Id: [Output Only] Unique identifier for the resource; defined by the
4412	// server.
4413	Id uint64 `json:"id,omitempty,string"`
4414
4415	// Kind: Type of the resource.
4416	Kind string `json:"kind,omitempty"`
4417
4418	// Name: Name of the resource. Provided by the client when the resource
4419	// is created. The name must be 1-63 characters long, and comply with
4420	// RFC1035. Specifically, the name must be 1-63 characters long and
4421	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
4422	// the first character must be a lowercase letter, and all following
4423	// characters must be a dash, lowercase letter, or digit, except the
4424	// last character, which cannot be a dash.
4425	Name string `json:"name,omitempty"`
4426
4427	// SelfLink: [Output Only] Server-defined URL for the resource.
4428	SelfLink string `json:"selfLink,omitempty"`
4429
4430	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
4431	// with the resource id.
4432	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
4433
4434	// ServerResponse contains the HTTP response code and headers from the
4435	// server.
4436	googleapi.ServerResponse `json:"-"`
4437
4438	// ForceSendFields is a list of field names (e.g. "BucketName") to
4439	// unconditionally include in API requests. By default, fields with
4440	// empty values are omitted from API requests. However, any non-pointer,
4441	// non-interface field appearing in ForceSendFields will be sent to the
4442	// server regardless of whether the field is empty or not. This may be
4443	// used to include empty fields in Patch requests.
4444	ForceSendFields []string `json:"-"`
4445
4446	// NullFields is a list of field names (e.g. "BucketName") to include in
4447	// API requests with the JSON null value. By default, fields with empty
4448	// values are omitted from API requests. However, any field with an
4449	// empty value appearing in NullFields will be sent to the server as
4450	// null. It is an error if a field in this list has a non-empty value.
4451	// This may be used to include null fields in Patch requests.
4452	NullFields []string `json:"-"`
4453}
4454
4455func (s *BackendBucket) MarshalJSON() ([]byte, error) {
4456	type NoMethod BackendBucket
4457	raw := NoMethod(*s)
4458	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4459}
4460
4461// BackendBucketCdnPolicy: Message containing Cloud CDN configuration
4462// for a backend bucket.
4463type BackendBucketCdnPolicy struct {
4464	// SignedUrlCacheMaxAgeSec: Maximum number of seconds the response to a
4465	// signed URL request will be considered fresh. After this time period,
4466	// the response will be revalidated before being served. Defaults to 1hr
4467	// (3600s). When serving responses to signed URL requests, Cloud CDN
4468	// will internally behave as though all responses from this backend had
4469	// a "Cache-Control: public, max-age=[TTL]" header, regardless of any
4470	// existing Cache-Control header. The actual headers served in responses
4471	// will not be altered.
4472	SignedUrlCacheMaxAgeSec int64 `json:"signedUrlCacheMaxAgeSec,omitempty,string"`
4473
4474	// SignedUrlKeyNames: [Output Only] Names of the keys for signing
4475	// request URLs.
4476	SignedUrlKeyNames []string `json:"signedUrlKeyNames,omitempty"`
4477
4478	// ForceSendFields is a list of field names (e.g.
4479	// "SignedUrlCacheMaxAgeSec") to unconditionally include in API
4480	// requests. By default, fields with empty values are omitted from API
4481	// requests. However, any non-pointer, non-interface field appearing in
4482	// ForceSendFields will be sent to the server regardless of whether the
4483	// field is empty or not. This may be used to include empty fields in
4484	// Patch requests.
4485	ForceSendFields []string `json:"-"`
4486
4487	// NullFields is a list of field names (e.g. "SignedUrlCacheMaxAgeSec")
4488	// to include in API requests with the JSON null value. By default,
4489	// fields with empty values are omitted from API requests. However, any
4490	// field with an empty value appearing in NullFields will be sent to the
4491	// server as null. It is an error if a field in this list has a
4492	// non-empty value. This may be used to include null fields in Patch
4493	// requests.
4494	NullFields []string `json:"-"`
4495}
4496
4497func (s *BackendBucketCdnPolicy) MarshalJSON() ([]byte, error) {
4498	type NoMethod BackendBucketCdnPolicy
4499	raw := NoMethod(*s)
4500	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4501}
4502
4503// BackendBucketList: Contains a list of BackendBucket resources.
4504type BackendBucketList struct {
4505	// Id: [Output Only] Unique identifier for the resource; defined by the
4506	// server.
4507	Id string `json:"id,omitempty"`
4508
4509	// Items: A list of BackendBucket resources.
4510	Items []*BackendBucket `json:"items,omitempty"`
4511
4512	// Kind: Type of resource.
4513	Kind string `json:"kind,omitempty"`
4514
4515	// NextPageToken: [Output Only] This token allows you to get the next
4516	// page of results for list requests. If the number of results is larger
4517	// than maxResults, use the nextPageToken as a value for the query
4518	// parameter pageToken in the next list request. Subsequent list
4519	// requests will have their own nextPageToken to continue paging through
4520	// the results.
4521	NextPageToken string `json:"nextPageToken,omitempty"`
4522
4523	// SelfLink: [Output Only] Server-defined URL for this resource.
4524	SelfLink string `json:"selfLink,omitempty"`
4525
4526	// Warning: [Output Only] Informational warning message.
4527	Warning *BackendBucketListWarning `json:"warning,omitempty"`
4528
4529	// ServerResponse contains the HTTP response code and headers from the
4530	// server.
4531	googleapi.ServerResponse `json:"-"`
4532
4533	// ForceSendFields is a list of field names (e.g. "Id") to
4534	// unconditionally include in API requests. By default, fields with
4535	// empty values are omitted from API requests. However, any non-pointer,
4536	// non-interface field appearing in ForceSendFields will be sent to the
4537	// server regardless of whether the field is empty or not. This may be
4538	// used to include empty fields in Patch requests.
4539	ForceSendFields []string `json:"-"`
4540
4541	// NullFields is a list of field names (e.g. "Id") to include in API
4542	// requests with the JSON null value. By default, fields with empty
4543	// values are omitted from API requests. However, any field with an
4544	// empty value appearing in NullFields will be sent to the server as
4545	// null. It is an error if a field in this list has a non-empty value.
4546	// This may be used to include null fields in Patch requests.
4547	NullFields []string `json:"-"`
4548}
4549
4550func (s *BackendBucketList) MarshalJSON() ([]byte, error) {
4551	type NoMethod BackendBucketList
4552	raw := NoMethod(*s)
4553	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4554}
4555
4556// BackendBucketListWarning: [Output Only] Informational warning
4557// message.
4558type BackendBucketListWarning struct {
4559	// Code: [Output Only] A warning code, if applicable. For example,
4560	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
4561	// the response.
4562	//
4563	// Possible values:
4564	//   "CLEANUP_FAILED"
4565	//   "DEPRECATED_RESOURCE_USED"
4566	//   "DEPRECATED_TYPE_USED"
4567	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
4568	//   "EXPERIMENTAL_TYPE_USED"
4569	//   "EXTERNAL_API_WARNING"
4570	//   "FIELD_VALUE_OVERRIDEN"
4571	//   "INJECTED_KERNELS_DEPRECATED"
4572	//   "MISSING_TYPE_DEPENDENCY"
4573	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
4574	//   "NEXT_HOP_CANNOT_IP_FORWARD"
4575	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
4576	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
4577	//   "NEXT_HOP_NOT_RUNNING"
4578	//   "NOT_CRITICAL_ERROR"
4579	//   "NO_RESULTS_ON_PAGE"
4580	//   "REQUIRED_TOS_AGREEMENT"
4581	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
4582	//   "RESOURCE_NOT_DELETED"
4583	//   "SCHEMA_VALIDATION_IGNORED"
4584	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
4585	//   "UNDECLARED_PROPERTIES"
4586	//   "UNREACHABLE"
4587	Code string `json:"code,omitempty"`
4588
4589	// Data: [Output Only] Metadata about this warning in key: value format.
4590	// For example:
4591	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
4592	Data []*BackendBucketListWarningData `json:"data,omitempty"`
4593
4594	// Message: [Output Only] A human-readable description of the warning
4595	// code.
4596	Message string `json:"message,omitempty"`
4597
4598	// ForceSendFields is a list of field names (e.g. "Code") to
4599	// unconditionally include in API requests. By default, fields with
4600	// empty values are omitted from API requests. However, any non-pointer,
4601	// non-interface field appearing in ForceSendFields will be sent to the
4602	// server regardless of whether the field is empty or not. This may be
4603	// used to include empty fields in Patch requests.
4604	ForceSendFields []string `json:"-"`
4605
4606	// NullFields is a list of field names (e.g. "Code") to include in API
4607	// requests with the JSON null value. By default, fields with empty
4608	// values are omitted from API requests. However, any field with an
4609	// empty value appearing in NullFields will be sent to the server as
4610	// null. It is an error if a field in this list has a non-empty value.
4611	// This may be used to include null fields in Patch requests.
4612	NullFields []string `json:"-"`
4613}
4614
4615func (s *BackendBucketListWarning) MarshalJSON() ([]byte, error) {
4616	type NoMethod BackendBucketListWarning
4617	raw := NoMethod(*s)
4618	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4619}
4620
4621type BackendBucketListWarningData struct {
4622	// Key: [Output Only] A key that provides more detail on the warning
4623	// being returned. For example, for warnings where there are no results
4624	// in a list request for a particular zone, this key might be scope and
4625	// the key value might be the zone name. Other examples might be a key
4626	// indicating a deprecated resource and a suggested replacement, or a
4627	// warning about invalid network settings (for example, if an instance
4628	// attempts to perform IP forwarding but is not enabled for IP
4629	// forwarding).
4630	Key string `json:"key,omitempty"`
4631
4632	// Value: [Output Only] A warning data value corresponding to the key.
4633	Value string `json:"value,omitempty"`
4634
4635	// ForceSendFields is a list of field names (e.g. "Key") to
4636	// unconditionally include in API requests. By default, fields with
4637	// empty values are omitted from API requests. However, any non-pointer,
4638	// non-interface field appearing in ForceSendFields will be sent to the
4639	// server regardless of whether the field is empty or not. This may be
4640	// used to include empty fields in Patch requests.
4641	ForceSendFields []string `json:"-"`
4642
4643	// NullFields is a list of field names (e.g. "Key") to include in API
4644	// requests with the JSON null value. By default, fields with empty
4645	// values are omitted from API requests. However, any field with an
4646	// empty value appearing in NullFields will be sent to the server as
4647	// null. It is an error if a field in this list has a non-empty value.
4648	// This may be used to include null fields in Patch requests.
4649	NullFields []string `json:"-"`
4650}
4651
4652func (s *BackendBucketListWarningData) MarshalJSON() ([]byte, error) {
4653	type NoMethod BackendBucketListWarningData
4654	raw := NoMethod(*s)
4655	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4656}
4657
4658// BackendService: Represents a Backend Service resource.
4659//
4660// A backend service contains configuration values for Google Cloud
4661// Platform load balancing services.
4662//
4663// For more information, read Backend Services.
4664//
4665// (== resource_for v1.backendService ==) (== resource_for
4666// beta.backendService ==)
4667type BackendService struct {
4668	// AffinityCookieTtlSec: If set to 0, the cookie is non-persistent and
4669	// lasts only until the end of the browser session (or equivalent). The
4670	// maximum allowed value is one day (86,400).
4671	AffinityCookieTtlSec int64 `json:"affinityCookieTtlSec,omitempty"`
4672
4673	// Backends: The list of backends that serve this BackendService.
4674	Backends []*Backend `json:"backends,omitempty"`
4675
4676	// CdnPolicy: Cloud CDN configuration for this BackendService.
4677	CdnPolicy *BackendServiceCdnPolicy `json:"cdnPolicy,omitempty"`
4678
4679	// CircuitBreakers: Settings controlling the volume of connections to a
4680	// backend service. If not set, this feature is considered
4681	// disabled.
4682	//
4683	// This field is applicable to either:
4684	// - A regional backend service with the service_protocol set to HTTP,
4685	// HTTPS, or HTTP2, and load_balancing_scheme set to INTERNAL_MANAGED.
4686	//
4687	// - A global backend service with the load_balancing_scheme set to
4688	// INTERNAL_SELF_MANAGED.
4689	CircuitBreakers *CircuitBreakers `json:"circuitBreakers,omitempty"`
4690
4691	ConnectionDraining *ConnectionDraining `json:"connectionDraining,omitempty"`
4692
4693	// ConsistentHash: Consistent Hash-based load balancing can be used to
4694	// provide soft session affinity based on HTTP headers, cookies or other
4695	// properties. This load balancing policy is applicable only for HTTP
4696	// connections. The affinity to a particular destination host will be
4697	// lost when one or more hosts are added/removed from the destination
4698	// service. This field specifies parameters that control consistent
4699	// hashing. This field is only applicable when localityLbPolicy is set
4700	// to MAGLEV or RING_HASH.
4701	//
4702	// This field is applicable to either:
4703	// - A regional backend service with the service_protocol set to HTTP,
4704	// HTTPS, or HTTP2, and load_balancing_scheme set to INTERNAL_MANAGED.
4705	//
4706	// - A global backend service with the load_balancing_scheme set to
4707	// INTERNAL_SELF_MANAGED.
4708	ConsistentHash *ConsistentHashLoadBalancerSettings `json:"consistentHash,omitempty"`
4709
4710	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
4711	// format.
4712	CreationTimestamp string `json:"creationTimestamp,omitempty"`
4713
4714	// CustomRequestHeaders: Headers that the HTTP/S load balancer should
4715	// add to proxied requests.
4716	CustomRequestHeaders []string `json:"customRequestHeaders,omitempty"`
4717
4718	// Description: An optional description of this resource. Provide this
4719	// property when you create the resource.
4720	Description string `json:"description,omitempty"`
4721
4722	// EnableCDN: If true, enables Cloud CDN for the backend service. Only
4723	// applicable if the loadBalancingScheme is EXTERNAL and the protocol is
4724	// HTTP or HTTPS.
4725	EnableCDN bool `json:"enableCDN,omitempty"`
4726
4727	// FailoverPolicy: Applicable only to Failover for Internal TCP/UDP Load
4728	// Balancing. Requires at least one backend instance group to be defined
4729	// as a backup (failover) backend.
4730	FailoverPolicy *BackendServiceFailoverPolicy `json:"failoverPolicy,omitempty"`
4731
4732	// Fingerprint: Fingerprint of this resource. A hash of the contents
4733	// stored in this object. This field is used in optimistic locking. This
4734	// field will be ignored when inserting a BackendService. An up-to-date
4735	// fingerprint must be provided in order to update the BackendService,
4736	// otherwise the request will fail with error 412 conditionNotMet.
4737	//
4738	// To see the latest fingerprint, make a get() request to retrieve a
4739	// BackendService.
4740	Fingerprint string `json:"fingerprint,omitempty"`
4741
4742	// HealthChecks: The list of URLs to the HttpHealthCheck or
4743	// HttpsHealthCheck resource for health checking this BackendService.
4744	// Currently at most one health check can be specified, and a health
4745	// check is required for Compute Engine backend services. A health check
4746	// must not be specified for App Engine backend and Cloud Function
4747	// backend.
4748	//
4749	// For internal load balancing, a URL to a HealthCheck resource must be
4750	// specified instead.
4751	HealthChecks []string `json:"healthChecks,omitempty"`
4752
4753	Iap *BackendServiceIAP `json:"iap,omitempty"`
4754
4755	// Id: [Output Only] The unique identifier for the resource. This
4756	// identifier is defined by the server.
4757	Id uint64 `json:"id,omitempty,string"`
4758
4759	// Kind: [Output Only] Type of resource. Always compute#backendService
4760	// for backend services.
4761	Kind string `json:"kind,omitempty"`
4762
4763	// LoadBalancingScheme: Specifies the load balancer type. Choose
4764	// EXTERNAL for load balancers that receive traffic from external
4765	// clients. Choose INTERNAL for Internal TCP/UDP Load Balancing. Choose
4766	// INTERNAL_MANAGED for Internal HTTP(S) Load Balancing. Choose
4767	// INTERNAL_SELF_MANAGED for Traffic Director. A backend service created
4768	// for one type of load balancing cannot be used with another. For more
4769	// information, refer to Choosing a load balancer.
4770	//
4771	// Possible values:
4772	//   "EXTERNAL"
4773	//   "INTERNAL"
4774	//   "INTERNAL_MANAGED"
4775	//   "INTERNAL_SELF_MANAGED"
4776	//   "INVALID_LOAD_BALANCING_SCHEME"
4777	LoadBalancingScheme string `json:"loadBalancingScheme,omitempty"`
4778
4779	// LocalityLbPolicy: The load balancing algorithm used within the scope
4780	// of the locality. The possible values are:
4781	// - ROUND_ROBIN: This is a simple policy in which each healthy backend
4782	// is selected in round robin order. This is the default.
4783	// - LEAST_REQUEST: An O(1) algorithm which selects two random healthy
4784	// hosts and picks the host which has fewer active requests.
4785	// - RING_HASH: The ring/modulo hash load balancer implements consistent
4786	// hashing to backends. The algorithm has the property that the
4787	// addition/removal of a host from a set of N hosts only affects 1/N of
4788	// the requests.
4789	// - RANDOM: The load balancer selects a random healthy host.
4790	// - ORIGINAL_DESTINATION: Backend host is selected based on the client
4791	// connection metadata, i.e., connections are opened to the same address
4792	// as the destination address of the incoming connection before the
4793	// connection was redirected to the load balancer.
4794	// - MAGLEV: used as a drop in replacement for the ring hash load
4795	// balancer. Maglev is not as stable as ring hash but has faster table
4796	// lookup build times and host selection times. For more information
4797	// about Maglev, refer to https://ai.google/research/pubs/pub44824
4798	//
4799	//
4800	// This field is applicable to either:
4801	// - A regional backend service with the service_protocol set to HTTP,
4802	// HTTPS, or HTTP2, and load_balancing_scheme set to INTERNAL_MANAGED.
4803	//
4804	// - A global backend service with the load_balancing_scheme set to
4805	// INTERNAL_SELF_MANAGED.
4806	//
4807	// Possible values:
4808	//   "INVALID_LB_POLICY"
4809	//   "LEAST_REQUEST"
4810	//   "MAGLEV"
4811	//   "ORIGINAL_DESTINATION"
4812	//   "RANDOM"
4813	//   "RING_HASH"
4814	//   "ROUND_ROBIN"
4815	LocalityLbPolicy string `json:"localityLbPolicy,omitempty"`
4816
4817	// LogConfig: This field denotes the logging options for the load
4818	// balancer traffic served by this backend service. If logging is
4819	// enabled, logs will be exported to Stackdriver.
4820	LogConfig *BackendServiceLogConfig `json:"logConfig,omitempty"`
4821
4822	// Name: Name of the resource. Provided by the client when the resource
4823	// is created. The name must be 1-63 characters long, and comply with
4824	// RFC1035. Specifically, the name must be 1-63 characters long and
4825	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
4826	// the first character must be a lowercase letter, and all following
4827	// characters must be a dash, lowercase letter, or digit, except the
4828	// last character, which cannot be a dash.
4829	Name string `json:"name,omitempty"`
4830
4831	// Network: The URL of the network to which this backend service
4832	// belongs. This field can only be spcified when the load balancing
4833	// scheme is set to INTERNAL.
4834	Network string `json:"network,omitempty"`
4835
4836	// OutlierDetection: Settings controlling the eviction of unhealthy
4837	// hosts from the load balancing pool for the backend service. If not
4838	// set, this feature is considered disabled.
4839	//
4840	// This field is applicable to either:
4841	// - A regional backend service with the service_protocol set to HTTP,
4842	// HTTPS, or HTTP2, and load_balancing_scheme set to INTERNAL_MANAGED.
4843	//
4844	// - A global backend service with the load_balancing_scheme set to
4845	// INTERNAL_SELF_MANAGED.
4846	OutlierDetection *OutlierDetection `json:"outlierDetection,omitempty"`
4847
4848	// Port: Deprecated in favor of portName. The TCP port to connect on the
4849	// backend. The default value is 80.
4850	//
4851	// This cannot be used if the loadBalancingScheme is INTERNAL (Internal
4852	// TCP/UDP Load Balancing).
4853	Port int64 `json:"port,omitempty"`
4854
4855	// PortName: A named port on a backend instance group representing the
4856	// port for communication to the backend VMs in that group. Required
4857	// when the loadBalancingScheme is EXTERNAL and the backends are
4858	// instance groups. The named port must be defined on each backend
4859	// instance group. This parameter has no meaning if the backends are
4860	// NEGs.
4861	//
4862	//
4863	//
4864	// Must be omitted when the loadBalancingScheme is INTERNAL (Internal
4865	// TCP/UDP Load Blaancing).
4866	PortName string `json:"portName,omitempty"`
4867
4868	// Protocol: The protocol this BackendService uses to communicate with
4869	// backends.
4870	//
4871	// Possible values are HTTP, HTTPS, HTTP2, TCP, SSL, or UDP, depending
4872	// on the chosen load balancer or Traffic Director configuration. Refer
4873	// to the documentation for the load balancer or for Traffic Director
4874	// for more information.
4875	//
4876	// Possible values:
4877	//   "HTTP"
4878	//   "HTTP2"
4879	//   "HTTPS"
4880	//   "SSL"
4881	//   "TCP"
4882	//   "UDP"
4883	Protocol string `json:"protocol,omitempty"`
4884
4885	// Region: [Output Only] URL of the region where the regional backend
4886	// service resides. This field is not applicable to global backend
4887	// services. You must specify this field as part of the HTTP request
4888	// URL. It is not settable as a field in the request body.
4889	Region string `json:"region,omitempty"`
4890
4891	// SecurityPolicy: [Output Only] The resource URL for the security
4892	// policy associated with this backend service.
4893	SecurityPolicy string `json:"securityPolicy,omitempty"`
4894
4895	// SecuritySettings: This field specifies the security policy that
4896	// applies to this backend service. This field is applicable to either:
4897	//
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	SecuritySettings *SecuritySettings `json:"securitySettings,omitempty"`
4904
4905	// SelfLink: [Output Only] Server-defined URL for the resource.
4906	SelfLink string `json:"selfLink,omitempty"`
4907
4908	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
4909	// with the resource id.
4910	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
4911
4912	// SessionAffinity: Type of session affinity to use. The default is
4913	// NONE. Session affinity is not applicable if the --protocol is
4914	// UDP.
4915	//
4916	// When the loadBalancingScheme is EXTERNAL, possible values are NONE,
4917	// CLIENT_IP, or GENERATED_COOKIE. You can use GENERATED_COOKIE if the
4918	// protocol is HTTP or HTTPS.
4919	//
4920	// When the loadBalancingScheme is INTERNAL, possible values are NONE,
4921	// CLIENT_IP, CLIENT_IP_PROTO, or CLIENT_IP_PORT_PROTO.
4922	//
4923	// When the loadBalancingScheme is INTERNAL_SELF_MANAGED, possible
4924	// values are NONE, CLIENT_IP, GENERATED_COOKIE, HEADER_FIELD, or
4925	// HTTP_COOKIE.
4926	//
4927	// Possible values:
4928	//   "CLIENT_IP"
4929	//   "CLIENT_IP_PORT_PROTO"
4930	//   "CLIENT_IP_PROTO"
4931	//   "GENERATED_COOKIE"
4932	//   "HEADER_FIELD"
4933	//   "HTTP_COOKIE"
4934	//   "NONE"
4935	SessionAffinity string `json:"sessionAffinity,omitempty"`
4936
4937	// TimeoutSec: The backend service timeout has a different meaning
4938	// depending on the type of load balancer. For more information read,
4939	// Backend service settings The default is 30 seconds.
4940	TimeoutSec int64 `json:"timeoutSec,omitempty"`
4941
4942	// ServerResponse contains the HTTP response code and headers from the
4943	// server.
4944	googleapi.ServerResponse `json:"-"`
4945
4946	// ForceSendFields is a list of field names (e.g.
4947	// "AffinityCookieTtlSec") to unconditionally include in API requests.
4948	// By default, fields with empty values are omitted from API requests.
4949	// However, any non-pointer, non-interface field appearing in
4950	// ForceSendFields will be sent to the server regardless of whether the
4951	// field is empty or not. This may be used to include empty fields in
4952	// Patch requests.
4953	ForceSendFields []string `json:"-"`
4954
4955	// NullFields is a list of field names (e.g. "AffinityCookieTtlSec") to
4956	// include in API requests with the JSON null value. By default, fields
4957	// with empty values are omitted from API requests. However, any field
4958	// with an empty value appearing in NullFields will be sent to the
4959	// server as null. It is an error if a field in this list has a
4960	// non-empty value. This may be used to include null fields in Patch
4961	// requests.
4962	NullFields []string `json:"-"`
4963}
4964
4965func (s *BackendService) MarshalJSON() ([]byte, error) {
4966	type NoMethod BackendService
4967	raw := NoMethod(*s)
4968	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4969}
4970
4971// BackendServiceAggregatedList: Contains a list of
4972// BackendServicesScopedList.
4973type BackendServiceAggregatedList struct {
4974	// Id: [Output Only] Unique identifier for the resource; defined by the
4975	// server.
4976	Id string `json:"id,omitempty"`
4977
4978	// Items: A list of BackendServicesScopedList resources.
4979	Items map[string]BackendServicesScopedList `json:"items,omitempty"`
4980
4981	// Kind: Type of resource.
4982	Kind string `json:"kind,omitempty"`
4983
4984	// NextPageToken: [Output Only] This token allows you to get the next
4985	// page of results for list requests. If the number of results is larger
4986	// than maxResults, use the nextPageToken as a value for the query
4987	// parameter pageToken in the next list request. Subsequent list
4988	// requests will have their own nextPageToken to continue paging through
4989	// the results.
4990	NextPageToken string `json:"nextPageToken,omitempty"`
4991
4992	// SelfLink: [Output Only] Server-defined URL for this resource.
4993	SelfLink string `json:"selfLink,omitempty"`
4994
4995	// Warning: [Output Only] Informational warning message.
4996	Warning *BackendServiceAggregatedListWarning `json:"warning,omitempty"`
4997
4998	// ServerResponse contains the HTTP response code and headers from the
4999	// server.
5000	googleapi.ServerResponse `json:"-"`
5001
5002	// ForceSendFields is a list of field names (e.g. "Id") to
5003	// unconditionally include in API requests. By default, fields with
5004	// empty values are omitted from API requests. However, any non-pointer,
5005	// non-interface field appearing in ForceSendFields will be sent to the
5006	// server regardless of whether the field is empty or not. This may be
5007	// used to include empty fields in Patch requests.
5008	ForceSendFields []string `json:"-"`
5009
5010	// NullFields is a list of field names (e.g. "Id") to include in API
5011	// requests with the JSON null value. By default, fields with empty
5012	// values are omitted from API requests. However, any field with an
5013	// empty value appearing in NullFields will be sent to the server as
5014	// null. It is an error if a field in this list has a non-empty value.
5015	// This may be used to include null fields in Patch requests.
5016	NullFields []string `json:"-"`
5017}
5018
5019func (s *BackendServiceAggregatedList) MarshalJSON() ([]byte, error) {
5020	type NoMethod BackendServiceAggregatedList
5021	raw := NoMethod(*s)
5022	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5023}
5024
5025// BackendServiceAggregatedListWarning: [Output Only] Informational
5026// warning message.
5027type BackendServiceAggregatedListWarning struct {
5028	// Code: [Output Only] A warning code, if applicable. For example,
5029	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
5030	// the response.
5031	//
5032	// Possible values:
5033	//   "CLEANUP_FAILED"
5034	//   "DEPRECATED_RESOURCE_USED"
5035	//   "DEPRECATED_TYPE_USED"
5036	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
5037	//   "EXPERIMENTAL_TYPE_USED"
5038	//   "EXTERNAL_API_WARNING"
5039	//   "FIELD_VALUE_OVERRIDEN"
5040	//   "INJECTED_KERNELS_DEPRECATED"
5041	//   "MISSING_TYPE_DEPENDENCY"
5042	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
5043	//   "NEXT_HOP_CANNOT_IP_FORWARD"
5044	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
5045	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
5046	//   "NEXT_HOP_NOT_RUNNING"
5047	//   "NOT_CRITICAL_ERROR"
5048	//   "NO_RESULTS_ON_PAGE"
5049	//   "REQUIRED_TOS_AGREEMENT"
5050	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
5051	//   "RESOURCE_NOT_DELETED"
5052	//   "SCHEMA_VALIDATION_IGNORED"
5053	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
5054	//   "UNDECLARED_PROPERTIES"
5055	//   "UNREACHABLE"
5056	Code string `json:"code,omitempty"`
5057
5058	// Data: [Output Only] Metadata about this warning in key: value format.
5059	// For example:
5060	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
5061	Data []*BackendServiceAggregatedListWarningData `json:"data,omitempty"`
5062
5063	// Message: [Output Only] A human-readable description of the warning
5064	// code.
5065	Message string `json:"message,omitempty"`
5066
5067	// ForceSendFields is a list of field names (e.g. "Code") to
5068	// unconditionally include in API requests. By default, fields with
5069	// empty values are omitted from API requests. However, any non-pointer,
5070	// non-interface field appearing in ForceSendFields will be sent to the
5071	// server regardless of whether the field is empty or not. This may be
5072	// used to include empty fields in Patch requests.
5073	ForceSendFields []string `json:"-"`
5074
5075	// NullFields is a list of field names (e.g. "Code") to include in API
5076	// requests with the JSON null value. By default, fields with empty
5077	// values are omitted from API requests. However, any field with an
5078	// empty value appearing in NullFields will be sent to the server as
5079	// null. It is an error if a field in this list has a non-empty value.
5080	// This may be used to include null fields in Patch requests.
5081	NullFields []string `json:"-"`
5082}
5083
5084func (s *BackendServiceAggregatedListWarning) MarshalJSON() ([]byte, error) {
5085	type NoMethod BackendServiceAggregatedListWarning
5086	raw := NoMethod(*s)
5087	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5088}
5089
5090type BackendServiceAggregatedListWarningData struct {
5091	// Key: [Output Only] A key that provides more detail on the warning
5092	// being returned. For example, for warnings where there are no results
5093	// in a list request for a particular zone, this key might be scope and
5094	// the key value might be the zone name. Other examples might be a key
5095	// indicating a deprecated resource and a suggested replacement, or a
5096	// warning about invalid network settings (for example, if an instance
5097	// attempts to perform IP forwarding but is not enabled for IP
5098	// forwarding).
5099	Key string `json:"key,omitempty"`
5100
5101	// Value: [Output Only] A warning data value corresponding to the key.
5102	Value string `json:"value,omitempty"`
5103
5104	// ForceSendFields is a list of field names (e.g. "Key") to
5105	// unconditionally include in API requests. By default, fields with
5106	// empty values are omitted from API requests. However, any non-pointer,
5107	// non-interface field appearing in ForceSendFields will be sent to the
5108	// server regardless of whether the field is empty or not. This may be
5109	// used to include empty fields in Patch requests.
5110	ForceSendFields []string `json:"-"`
5111
5112	// NullFields is a list of field names (e.g. "Key") to include in API
5113	// requests with the JSON null value. By default, fields with empty
5114	// values are omitted from API requests. However, any field with an
5115	// empty value appearing in NullFields will be sent to the server as
5116	// null. It is an error if a field in this list has a non-empty value.
5117	// This may be used to include null fields in Patch requests.
5118	NullFields []string `json:"-"`
5119}
5120
5121func (s *BackendServiceAggregatedListWarningData) MarshalJSON() ([]byte, error) {
5122	type NoMethod BackendServiceAggregatedListWarningData
5123	raw := NoMethod(*s)
5124	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5125}
5126
5127// BackendServiceCdnPolicy: Message containing Cloud CDN configuration
5128// for a backend service.
5129type BackendServiceCdnPolicy struct {
5130	// CacheKeyPolicy: The CacheKeyPolicy for this CdnPolicy.
5131	CacheKeyPolicy *CacheKeyPolicy `json:"cacheKeyPolicy,omitempty"`
5132
5133	// SignedUrlCacheMaxAgeSec: Maximum number of seconds the response to a
5134	// signed URL request will be considered fresh. After this time period,
5135	// the response will be revalidated before being served. Defaults to 1hr
5136	// (3600s). When serving responses to signed URL requests, Cloud CDN
5137	// will internally behave as though all responses from this backend had
5138	// a "Cache-Control: public, max-age=[TTL]" header, regardless of any
5139	// existing Cache-Control header. The actual headers served in responses
5140	// will not be altered.
5141	SignedUrlCacheMaxAgeSec int64 `json:"signedUrlCacheMaxAgeSec,omitempty,string"`
5142
5143	// SignedUrlKeyNames: [Output Only] Names of the keys for signing
5144	// request URLs.
5145	SignedUrlKeyNames []string `json:"signedUrlKeyNames,omitempty"`
5146
5147	// ForceSendFields is a list of field names (e.g. "CacheKeyPolicy") to
5148	// unconditionally include in API requests. By default, fields with
5149	// empty values are omitted from API requests. However, any non-pointer,
5150	// non-interface field appearing in ForceSendFields will be sent to the
5151	// server regardless of whether the field is empty or not. This may be
5152	// used to include empty fields in Patch requests.
5153	ForceSendFields []string `json:"-"`
5154
5155	// NullFields is a list of field names (e.g. "CacheKeyPolicy") to
5156	// include in API requests with the JSON null value. By default, fields
5157	// with empty values are omitted from API requests. However, any field
5158	// with an empty value appearing in NullFields will be sent to the
5159	// server as null. It is an error if a field in this list has a
5160	// non-empty value. This may be used to include null fields in Patch
5161	// requests.
5162	NullFields []string `json:"-"`
5163}
5164
5165func (s *BackendServiceCdnPolicy) MarshalJSON() ([]byte, error) {
5166	type NoMethod BackendServiceCdnPolicy
5167	raw := NoMethod(*s)
5168	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5169}
5170
5171type BackendServiceFailoverPolicy struct {
5172	// DisableConnectionDrainOnFailover: This can be set to true only if the
5173	// protocol is TCP.
5174	//
5175	// The default is false.
5176	DisableConnectionDrainOnFailover bool `json:"disableConnectionDrainOnFailover,omitempty"`
5177
5178	// DropTrafficIfUnhealthy: Applicable only to Failover for Internal
5179	// TCP/UDP Load Balancing. If set to true, connections to the load
5180	// balancer are dropped when all primary and all backup backend VMs are
5181	// unhealthy. If set to false, connections are distributed among all
5182	// primary VMs when all primary and all backup backend VMs are
5183	// unhealthy.
5184	//
5185	// The default is false.
5186	DropTrafficIfUnhealthy bool `json:"dropTrafficIfUnhealthy,omitempty"`
5187
5188	// FailoverRatio: Applicable only to Failover for Internal TCP/UDP Load
5189	// Balancing. The value of the field must be in the range [0, 1]. If the
5190	// value is 0, the load balancer performs a failover when the number of
5191	// healthy primary VMs equals zero. For all other values, the load
5192	// balancer performs a failover when the total number of healthy primary
5193	// VMs is less than this ratio.
5194	FailoverRatio float64 `json:"failoverRatio,omitempty"`
5195
5196	// ForceSendFields is a list of field names (e.g.
5197	// "DisableConnectionDrainOnFailover") to unconditionally include in API
5198	// requests. By default, fields with empty values are omitted from API
5199	// requests. However, any non-pointer, non-interface field appearing in
5200	// ForceSendFields will be sent to the server regardless of whether the
5201	// field is empty or not. This may be used to include empty fields in
5202	// Patch requests.
5203	ForceSendFields []string `json:"-"`
5204
5205	// NullFields is a list of field names (e.g.
5206	// "DisableConnectionDrainOnFailover") to include in API requests with
5207	// the JSON null value. By default, fields with empty values are omitted
5208	// from API requests. However, any field with an empty value appearing
5209	// in NullFields will be sent to the server as null. It is an error if a
5210	// field in this list has a non-empty value. This may be used to include
5211	// null fields in Patch requests.
5212	NullFields []string `json:"-"`
5213}
5214
5215func (s *BackendServiceFailoverPolicy) MarshalJSON() ([]byte, error) {
5216	type NoMethod BackendServiceFailoverPolicy
5217	raw := NoMethod(*s)
5218	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5219}
5220
5221func (s *BackendServiceFailoverPolicy) UnmarshalJSON(data []byte) error {
5222	type NoMethod BackendServiceFailoverPolicy
5223	var s1 struct {
5224		FailoverRatio gensupport.JSONFloat64 `json:"failoverRatio"`
5225		*NoMethod
5226	}
5227	s1.NoMethod = (*NoMethod)(s)
5228	if err := json.Unmarshal(data, &s1); err != nil {
5229		return err
5230	}
5231	s.FailoverRatio = float64(s1.FailoverRatio)
5232	return nil
5233}
5234
5235type BackendServiceGroupHealth struct {
5236	// Annotations: Metadata defined as annotations on the network endpoint
5237	// group.
5238	Annotations map[string]string `json:"annotations,omitempty"`
5239
5240	// HealthStatus: Health state of the backend instances or endpoints in
5241	// requested instance or network endpoint group, determined based on
5242	// configured health checks.
5243	HealthStatus []*HealthStatus `json:"healthStatus,omitempty"`
5244
5245	// Kind: [Output Only] Type of resource. Always
5246	// compute#backendServiceGroupHealth for the health of backend services.
5247	Kind string `json:"kind,omitempty"`
5248
5249	// ServerResponse contains the HTTP response code and headers from the
5250	// server.
5251	googleapi.ServerResponse `json:"-"`
5252
5253	// ForceSendFields is a list of field names (e.g. "Annotations") to
5254	// unconditionally include in API requests. By default, fields with
5255	// empty values are omitted from API requests. However, any non-pointer,
5256	// non-interface field appearing in ForceSendFields will be sent to the
5257	// server regardless of whether the field is empty or not. This may be
5258	// used to include empty fields in Patch requests.
5259	ForceSendFields []string `json:"-"`
5260
5261	// NullFields is a list of field names (e.g. "Annotations") to include
5262	// in API requests with the JSON null value. By default, fields with
5263	// empty values are omitted from API requests. However, any field with
5264	// an empty value appearing in NullFields will be sent to the server as
5265	// null. It is an error if a field in this list has a non-empty value.
5266	// This may be used to include null fields in Patch requests.
5267	NullFields []string `json:"-"`
5268}
5269
5270func (s *BackendServiceGroupHealth) MarshalJSON() ([]byte, error) {
5271	type NoMethod BackendServiceGroupHealth
5272	raw := NoMethod(*s)
5273	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5274}
5275
5276// BackendServiceIAP: Identity-Aware Proxy
5277type BackendServiceIAP struct {
5278	Enabled bool `json:"enabled,omitempty"`
5279
5280	Oauth2ClientId string `json:"oauth2ClientId,omitempty"`
5281
5282	// Oauth2ClientInfo: [Input Only] OAuth client info required to generate
5283	// client id to be used for IAP.
5284	Oauth2ClientInfo *BackendServiceIAPOAuth2ClientInfo `json:"oauth2ClientInfo,omitempty"`
5285
5286	Oauth2ClientSecret string `json:"oauth2ClientSecret,omitempty"`
5287
5288	// Oauth2ClientSecretSha256: [Output Only] SHA256 hash value for the
5289	// field oauth2_client_secret above.
5290	Oauth2ClientSecretSha256 string `json:"oauth2ClientSecretSha256,omitempty"`
5291
5292	// ForceSendFields is a list of field names (e.g. "Enabled") to
5293	// unconditionally include in API requests. By default, fields with
5294	// empty values are omitted from API requests. However, any non-pointer,
5295	// non-interface field appearing in ForceSendFields will be sent to the
5296	// server regardless of whether the field is empty or not. This may be
5297	// used to include empty fields in Patch requests.
5298	ForceSendFields []string `json:"-"`
5299
5300	// NullFields is a list of field names (e.g. "Enabled") to include in
5301	// API requests with the JSON null value. By default, fields with empty
5302	// values are omitted from API requests. However, any field with an
5303	// empty value appearing in NullFields will be sent to the server as
5304	// null. It is an error if a field in this list has a non-empty value.
5305	// This may be used to include null fields in Patch requests.
5306	NullFields []string `json:"-"`
5307}
5308
5309func (s *BackendServiceIAP) MarshalJSON() ([]byte, error) {
5310	type NoMethod BackendServiceIAP
5311	raw := NoMethod(*s)
5312	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5313}
5314
5315type BackendServiceIAPOAuth2ClientInfo struct {
5316	// ApplicationName: Application name to be used in OAuth consent screen.
5317	ApplicationName string `json:"applicationName,omitempty"`
5318
5319	// ClientName: Name of the client to be generated. Optional - If not
5320	// provided, the name will be autogenerated by the backend.
5321	ClientName string `json:"clientName,omitempty"`
5322
5323	// DeveloperEmailAddress: Developer's information to be used in OAuth
5324	// consent screen.
5325	DeveloperEmailAddress string `json:"developerEmailAddress,omitempty"`
5326
5327	// ForceSendFields is a list of field names (e.g. "ApplicationName") to
5328	// unconditionally include in API requests. By default, fields with
5329	// empty values are omitted from API requests. However, any non-pointer,
5330	// non-interface field appearing in ForceSendFields will be sent to the
5331	// server regardless of whether the field is empty or not. This may be
5332	// used to include empty fields in Patch requests.
5333	ForceSendFields []string `json:"-"`
5334
5335	// NullFields is a list of field names (e.g. "ApplicationName") to
5336	// include in API requests with the JSON null value. By default, fields
5337	// with empty values are omitted from API requests. However, any field
5338	// with an empty value appearing in NullFields will be sent to the
5339	// server as null. It is an error if a field in this list has a
5340	// non-empty value. This may be used to include null fields in Patch
5341	// requests.
5342	NullFields []string `json:"-"`
5343}
5344
5345func (s *BackendServiceIAPOAuth2ClientInfo) MarshalJSON() ([]byte, error) {
5346	type NoMethod BackendServiceIAPOAuth2ClientInfo
5347	raw := NoMethod(*s)
5348	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5349}
5350
5351// BackendServiceList: Contains a list of BackendService resources.
5352type BackendServiceList struct {
5353	// Id: [Output Only] Unique identifier for the resource; defined by the
5354	// server.
5355	Id string `json:"id,omitempty"`
5356
5357	// Items: A list of BackendService resources.
5358	Items []*BackendService `json:"items,omitempty"`
5359
5360	// Kind: [Output Only] Type of resource. Always
5361	// compute#backendServiceList for lists of backend services.
5362	Kind string `json:"kind,omitempty"`
5363
5364	// NextPageToken: [Output Only] This token allows you to get the next
5365	// page of results for list requests. If the number of results is larger
5366	// than maxResults, use the nextPageToken as a value for the query
5367	// parameter pageToken in the next list request. Subsequent list
5368	// requests will have their own nextPageToken to continue paging through
5369	// the results.
5370	NextPageToken string `json:"nextPageToken,omitempty"`
5371
5372	// SelfLink: [Output Only] Server-defined URL for this resource.
5373	SelfLink string `json:"selfLink,omitempty"`
5374
5375	// Warning: [Output Only] Informational warning message.
5376	Warning *BackendServiceListWarning `json:"warning,omitempty"`
5377
5378	// ServerResponse contains the HTTP response code and headers from the
5379	// server.
5380	googleapi.ServerResponse `json:"-"`
5381
5382	// ForceSendFields is a list of field names (e.g. "Id") to
5383	// unconditionally include in API requests. By default, fields with
5384	// empty values are omitted from API requests. However, any non-pointer,
5385	// non-interface field appearing in ForceSendFields will be sent to the
5386	// server regardless of whether the field is empty or not. This may be
5387	// used to include empty fields in Patch requests.
5388	ForceSendFields []string `json:"-"`
5389
5390	// NullFields is a list of field names (e.g. "Id") to include in API
5391	// requests with the JSON null value. By default, fields with empty
5392	// values are omitted from API requests. However, any field with an
5393	// empty value appearing in NullFields will be sent to the server as
5394	// null. It is an error if a field in this list has a non-empty value.
5395	// This may be used to include null fields in Patch requests.
5396	NullFields []string `json:"-"`
5397}
5398
5399func (s *BackendServiceList) MarshalJSON() ([]byte, error) {
5400	type NoMethod BackendServiceList
5401	raw := NoMethod(*s)
5402	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5403}
5404
5405// BackendServiceListWarning: [Output Only] Informational warning
5406// message.
5407type BackendServiceListWarning struct {
5408	// Code: [Output Only] A warning code, if applicable. For example,
5409	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
5410	// the response.
5411	//
5412	// Possible values:
5413	//   "CLEANUP_FAILED"
5414	//   "DEPRECATED_RESOURCE_USED"
5415	//   "DEPRECATED_TYPE_USED"
5416	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
5417	//   "EXPERIMENTAL_TYPE_USED"
5418	//   "EXTERNAL_API_WARNING"
5419	//   "FIELD_VALUE_OVERRIDEN"
5420	//   "INJECTED_KERNELS_DEPRECATED"
5421	//   "MISSING_TYPE_DEPENDENCY"
5422	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
5423	//   "NEXT_HOP_CANNOT_IP_FORWARD"
5424	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
5425	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
5426	//   "NEXT_HOP_NOT_RUNNING"
5427	//   "NOT_CRITICAL_ERROR"
5428	//   "NO_RESULTS_ON_PAGE"
5429	//   "REQUIRED_TOS_AGREEMENT"
5430	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
5431	//   "RESOURCE_NOT_DELETED"
5432	//   "SCHEMA_VALIDATION_IGNORED"
5433	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
5434	//   "UNDECLARED_PROPERTIES"
5435	//   "UNREACHABLE"
5436	Code string `json:"code,omitempty"`
5437
5438	// Data: [Output Only] Metadata about this warning in key: value format.
5439	// For example:
5440	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
5441	Data []*BackendServiceListWarningData `json:"data,omitempty"`
5442
5443	// Message: [Output Only] A human-readable description of the warning
5444	// code.
5445	Message string `json:"message,omitempty"`
5446
5447	// ForceSendFields is a list of field names (e.g. "Code") to
5448	// unconditionally include in API requests. By default, fields with
5449	// empty values are omitted from API requests. However, any non-pointer,
5450	// non-interface field appearing in ForceSendFields will be sent to the
5451	// server regardless of whether the field is empty or not. This may be
5452	// used to include empty fields in Patch requests.
5453	ForceSendFields []string `json:"-"`
5454
5455	// NullFields is a list of field names (e.g. "Code") to include in API
5456	// requests with the JSON null value. By default, fields with empty
5457	// values are omitted from API requests. However, any field with an
5458	// empty value appearing in NullFields will be sent to the server as
5459	// null. It is an error if a field in this list has a non-empty value.
5460	// This may be used to include null fields in Patch requests.
5461	NullFields []string `json:"-"`
5462}
5463
5464func (s *BackendServiceListWarning) MarshalJSON() ([]byte, error) {
5465	type NoMethod BackendServiceListWarning
5466	raw := NoMethod(*s)
5467	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5468}
5469
5470type BackendServiceListWarningData struct {
5471	// Key: [Output Only] A key that provides more detail on the warning
5472	// being returned. For example, for warnings where there are no results
5473	// in a list request for a particular zone, this key might be scope and
5474	// the key value might be the zone name. Other examples might be a key
5475	// indicating a deprecated resource and a suggested replacement, or a
5476	// warning about invalid network settings (for example, if an instance
5477	// attempts to perform IP forwarding but is not enabled for IP
5478	// forwarding).
5479	Key string `json:"key,omitempty"`
5480
5481	// Value: [Output Only] A warning data value corresponding to the key.
5482	Value string `json:"value,omitempty"`
5483
5484	// ForceSendFields is a list of field names (e.g. "Key") to
5485	// unconditionally include in API requests. By default, fields with
5486	// empty values are omitted from API requests. However, any non-pointer,
5487	// non-interface field appearing in ForceSendFields will be sent to the
5488	// server regardless of whether the field is empty or not. This may be
5489	// used to include empty fields in Patch requests.
5490	ForceSendFields []string `json:"-"`
5491
5492	// NullFields is a list of field names (e.g. "Key") to include in API
5493	// requests with the JSON null value. By default, fields with empty
5494	// values are omitted from API requests. However, any field with an
5495	// empty value appearing in NullFields will be sent to the server as
5496	// null. It is an error if a field in this list has a non-empty value.
5497	// This may be used to include null fields in Patch requests.
5498	NullFields []string `json:"-"`
5499}
5500
5501func (s *BackendServiceListWarningData) MarshalJSON() ([]byte, error) {
5502	type NoMethod BackendServiceListWarningData
5503	raw := NoMethod(*s)
5504	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5505}
5506
5507// BackendServiceLogConfig: The available logging options for the load
5508// balancer traffic served by this backend service.
5509type BackendServiceLogConfig struct {
5510	// Enable: This field denotes whether to enable logging for the load
5511	// balancer traffic served by this backend service.
5512	Enable bool `json:"enable,omitempty"`
5513
5514	// SampleRate: This field can only be specified if logging is enabled
5515	// for this backend service. The value of the field must be in [0, 1].
5516	// This configures the sampling rate of requests to the load balancer
5517	// where 1.0 means all logged requests are reported and 0.0 means no
5518	// logged requests are reported. The default value is 1.0.
5519	SampleRate float64 `json:"sampleRate,omitempty"`
5520
5521	// ForceSendFields is a list of field names (e.g. "Enable") to
5522	// unconditionally include in API requests. By default, fields with
5523	// empty values are omitted from API requests. However, any non-pointer,
5524	// non-interface field appearing in ForceSendFields will be sent to the
5525	// server regardless of whether the field is empty or not. This may be
5526	// used to include empty fields in Patch requests.
5527	ForceSendFields []string `json:"-"`
5528
5529	// NullFields is a list of field names (e.g. "Enable") to include in API
5530	// requests with the JSON null value. By default, fields with empty
5531	// values are omitted from API requests. However, any field with an
5532	// empty value appearing in NullFields will be sent to the server as
5533	// null. It is an error if a field in this list has a non-empty value.
5534	// This may be used to include null fields in Patch requests.
5535	NullFields []string `json:"-"`
5536}
5537
5538func (s *BackendServiceLogConfig) MarshalJSON() ([]byte, error) {
5539	type NoMethod BackendServiceLogConfig
5540	raw := NoMethod(*s)
5541	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5542}
5543
5544func (s *BackendServiceLogConfig) UnmarshalJSON(data []byte) error {
5545	type NoMethod BackendServiceLogConfig
5546	var s1 struct {
5547		SampleRate gensupport.JSONFloat64 `json:"sampleRate"`
5548		*NoMethod
5549	}
5550	s1.NoMethod = (*NoMethod)(s)
5551	if err := json.Unmarshal(data, &s1); err != nil {
5552		return err
5553	}
5554	s.SampleRate = float64(s1.SampleRate)
5555	return nil
5556}
5557
5558type BackendServiceReference struct {
5559	BackendService string `json:"backendService,omitempty"`
5560
5561	// ForceSendFields is a list of field names (e.g. "BackendService") to
5562	// unconditionally include in API requests. By default, fields with
5563	// empty values are omitted from API requests. However, any non-pointer,
5564	// non-interface field appearing in ForceSendFields will be sent to the
5565	// server regardless of whether the field is empty or not. This may be
5566	// used to include empty fields in Patch requests.
5567	ForceSendFields []string `json:"-"`
5568
5569	// NullFields is a list of field names (e.g. "BackendService") to
5570	// include in API requests with the JSON null value. By default, fields
5571	// with empty values are omitted from API requests. However, any field
5572	// with an empty value appearing in NullFields will be sent to the
5573	// server as null. It is an error if a field in this list has a
5574	// non-empty value. This may be used to include null fields in Patch
5575	// requests.
5576	NullFields []string `json:"-"`
5577}
5578
5579func (s *BackendServiceReference) MarshalJSON() ([]byte, error) {
5580	type NoMethod BackendServiceReference
5581	raw := NoMethod(*s)
5582	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5583}
5584
5585type BackendServicesScopedList struct {
5586	// BackendServices: A list of BackendServices contained in this scope.
5587	BackendServices []*BackendService `json:"backendServices,omitempty"`
5588
5589	// Warning: Informational warning which replaces the list of backend
5590	// services when the list is empty.
5591	Warning *BackendServicesScopedListWarning `json:"warning,omitempty"`
5592
5593	// ForceSendFields is a list of field names (e.g. "BackendServices") to
5594	// unconditionally include in API requests. By default, fields with
5595	// empty values are omitted from API requests. However, any non-pointer,
5596	// non-interface field appearing in ForceSendFields will be sent to the
5597	// server regardless of whether the field is empty or not. This may be
5598	// used to include empty fields in Patch requests.
5599	ForceSendFields []string `json:"-"`
5600
5601	// NullFields is a list of field names (e.g. "BackendServices") to
5602	// include in API requests with the JSON null value. By default, fields
5603	// with empty values are omitted from API requests. However, any field
5604	// with an empty value appearing in NullFields will be sent to the
5605	// server as null. It is an error if a field in this list has a
5606	// non-empty value. This may be used to include null fields in Patch
5607	// requests.
5608	NullFields []string `json:"-"`
5609}
5610
5611func (s *BackendServicesScopedList) MarshalJSON() ([]byte, error) {
5612	type NoMethod BackendServicesScopedList
5613	raw := NoMethod(*s)
5614	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5615}
5616
5617// BackendServicesScopedListWarning: Informational warning which
5618// replaces the list of backend services when the list is empty.
5619type BackendServicesScopedListWarning struct {
5620	// Code: [Output Only] A warning code, if applicable. For example,
5621	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
5622	// the response.
5623	//
5624	// Possible values:
5625	//   "CLEANUP_FAILED"
5626	//   "DEPRECATED_RESOURCE_USED"
5627	//   "DEPRECATED_TYPE_USED"
5628	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
5629	//   "EXPERIMENTAL_TYPE_USED"
5630	//   "EXTERNAL_API_WARNING"
5631	//   "FIELD_VALUE_OVERRIDEN"
5632	//   "INJECTED_KERNELS_DEPRECATED"
5633	//   "MISSING_TYPE_DEPENDENCY"
5634	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
5635	//   "NEXT_HOP_CANNOT_IP_FORWARD"
5636	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
5637	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
5638	//   "NEXT_HOP_NOT_RUNNING"
5639	//   "NOT_CRITICAL_ERROR"
5640	//   "NO_RESULTS_ON_PAGE"
5641	//   "REQUIRED_TOS_AGREEMENT"
5642	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
5643	//   "RESOURCE_NOT_DELETED"
5644	//   "SCHEMA_VALIDATION_IGNORED"
5645	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
5646	//   "UNDECLARED_PROPERTIES"
5647	//   "UNREACHABLE"
5648	Code string `json:"code,omitempty"`
5649
5650	// Data: [Output Only] Metadata about this warning in key: value format.
5651	// For example:
5652	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
5653	Data []*BackendServicesScopedListWarningData `json:"data,omitempty"`
5654
5655	// Message: [Output Only] A human-readable description of the warning
5656	// code.
5657	Message string `json:"message,omitempty"`
5658
5659	// ForceSendFields is a list of field names (e.g. "Code") to
5660	// unconditionally include in API requests. By default, fields with
5661	// empty values are omitted from API requests. However, any non-pointer,
5662	// non-interface field appearing in ForceSendFields will be sent to the
5663	// server regardless of whether the field is empty or not. This may be
5664	// used to include empty fields in Patch requests.
5665	ForceSendFields []string `json:"-"`
5666
5667	// NullFields is a list of field names (e.g. "Code") to include in API
5668	// requests with the JSON null value. By default, fields with empty
5669	// values are omitted from API requests. However, any field with an
5670	// empty value appearing in NullFields will be sent to the server as
5671	// null. It is an error if a field in this list has a non-empty value.
5672	// This may be used to include null fields in Patch requests.
5673	NullFields []string `json:"-"`
5674}
5675
5676func (s *BackendServicesScopedListWarning) MarshalJSON() ([]byte, error) {
5677	type NoMethod BackendServicesScopedListWarning
5678	raw := NoMethod(*s)
5679	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5680}
5681
5682type BackendServicesScopedListWarningData struct {
5683	// Key: [Output Only] A key that provides more detail on the warning
5684	// being returned. For example, for warnings where there are no results
5685	// in a list request for a particular zone, this key might be scope and
5686	// the key value might be the zone name. Other examples might be a key
5687	// indicating a deprecated resource and a suggested replacement, or a
5688	// warning about invalid network settings (for example, if an instance
5689	// attempts to perform IP forwarding but is not enabled for IP
5690	// forwarding).
5691	Key string `json:"key,omitempty"`
5692
5693	// Value: [Output Only] A warning data value corresponding to the key.
5694	Value string `json:"value,omitempty"`
5695
5696	// ForceSendFields is a list of field names (e.g. "Key") to
5697	// unconditionally include in API requests. By default, fields with
5698	// empty values are omitted from API requests. However, any non-pointer,
5699	// non-interface field appearing in ForceSendFields will be sent to the
5700	// server regardless of whether the field is empty or not. This may be
5701	// used to include empty fields in Patch requests.
5702	ForceSendFields []string `json:"-"`
5703
5704	// NullFields is a list of field names (e.g. "Key") to include in API
5705	// requests with the JSON null value. By default, fields with empty
5706	// values are omitted from API requests. However, any field with an
5707	// empty value appearing in NullFields will be sent to the server as
5708	// null. It is an error if a field in this list has a non-empty value.
5709	// This may be used to include null fields in Patch requests.
5710	NullFields []string `json:"-"`
5711}
5712
5713func (s *BackendServicesScopedListWarningData) MarshalJSON() ([]byte, error) {
5714	type NoMethod BackendServicesScopedListWarningData
5715	raw := NoMethod(*s)
5716	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5717}
5718
5719type BfdPacket struct {
5720	// AuthenticationPresent: The Authentication Present bit of the BFD
5721	// packet. This is specified in section 4.1 of RFC5880
5722	AuthenticationPresent bool `json:"authenticationPresent,omitempty"`
5723
5724	// ControlPlaneIndependent: The Control Plane Independent bit of the BFD
5725	// packet. This is specified in section 4.1 of RFC5880
5726	ControlPlaneIndependent bool `json:"controlPlaneIndependent,omitempty"`
5727
5728	// Demand: The demand bit of the BFD packet. This is specified in
5729	// section 4.1 of RFC5880
5730	Demand bool `json:"demand,omitempty"`
5731
5732	// Diagnostic: The diagnostic code specifies the local system's reason
5733	// for the last change in session state. This allows remote systems to
5734	// determine the reason that the previous session failed, for example.
5735	// These diagnostic codes are specified in section 4.1 of RFC5880
5736	//
5737	// Possible values:
5738	//   "ADMINISTRATIVELY_DOWN"
5739	//   "CONCATENATED_PATH_DOWN"
5740	//   "CONTROL_DETECTION_TIME_EXPIRED"
5741	//   "DIAGNOSTIC_UNSPECIFIED"
5742	//   "ECHO_FUNCTION_FAILED"
5743	//   "FORWARDING_PLANE_RESET"
5744	//   "NEIGHBOR_SIGNALED_SESSION_DOWN"
5745	//   "NO_DIAGNOSTIC"
5746	//   "PATH_DOWN"
5747	//   "REVERSE_CONCATENATED_PATH_DOWN"
5748	Diagnostic string `json:"diagnostic,omitempty"`
5749
5750	// Final: The Final bit of the BFD packet. This is specified in section
5751	// 4.1 of RFC5880
5752	Final bool `json:"final,omitempty"`
5753
5754	// Length: The length of the BFD Control packet in bytes. This is
5755	// specified in section 4.1 of RFC5880
5756	Length int64 `json:"length,omitempty"`
5757
5758	// MinEchoRxIntervalMs: The Required Min Echo RX Interval value in the
5759	// BFD packet. This is specified in section 4.1 of RFC5880
5760	MinEchoRxIntervalMs int64 `json:"minEchoRxIntervalMs,omitempty"`
5761
5762	// MinRxIntervalMs: The Required Min RX Interval value in the BFD
5763	// packet. This is specified in section 4.1 of RFC5880
5764	MinRxIntervalMs int64 `json:"minRxIntervalMs,omitempty"`
5765
5766	// MinTxIntervalMs: The Desired Min TX Interval value in the BFD packet.
5767	// This is specified in section 4.1 of RFC5880
5768	MinTxIntervalMs int64 `json:"minTxIntervalMs,omitempty"`
5769
5770	// Multiplier: The detection time multiplier of the BFD packet. This is
5771	// specified in section 4.1 of RFC5880
5772	Multiplier int64 `json:"multiplier,omitempty"`
5773
5774	// Multipoint: The multipoint bit of the BFD packet. This is specified
5775	// in section 4.1 of RFC5880
5776	Multipoint bool `json:"multipoint,omitempty"`
5777
5778	// MyDiscriminator: The My Discriminator value in the BFD packet. This
5779	// is specified in section 4.1 of RFC5880
5780	MyDiscriminator int64 `json:"myDiscriminator,omitempty"`
5781
5782	// Poll: The Poll bit of the BFD packet. This is specified in section
5783	// 4.1 of RFC5880
5784	Poll bool `json:"poll,omitempty"`
5785
5786	// State: The current BFD session state as seen by the transmitting
5787	// system. These states are specified in section 4.1 of RFC5880
5788	//
5789	// Possible values:
5790	//   "ADMIN_DOWN"
5791	//   "DOWN"
5792	//   "INIT"
5793	//   "STATE_UNSPECIFIED"
5794	//   "UP"
5795	State string `json:"state,omitempty"`
5796
5797	// Version: The version number of the BFD protocol, as specified in
5798	// section 4.1 of RFC5880.
5799	Version int64 `json:"version,omitempty"`
5800
5801	// YourDiscriminator: The Your Discriminator value in the BFD packet.
5802	// This is specified in section 4.1 of RFC5880
5803	YourDiscriminator int64 `json:"yourDiscriminator,omitempty"`
5804
5805	// ForceSendFields is a list of field names (e.g.
5806	// "AuthenticationPresent") to unconditionally include in API requests.
5807	// By default, fields with empty values are omitted from API requests.
5808	// However, any non-pointer, non-interface field appearing in
5809	// ForceSendFields will be sent to the server regardless of whether the
5810	// field is empty or not. This may be used to include empty fields in
5811	// Patch requests.
5812	ForceSendFields []string `json:"-"`
5813
5814	// NullFields is a list of field names (e.g. "AuthenticationPresent") to
5815	// include in API requests with the JSON null value. By default, fields
5816	// with empty values are omitted from API requests. However, any field
5817	// with an empty value appearing in NullFields will be sent to the
5818	// server as null. It is an error if a field in this list has a
5819	// non-empty value. This may be used to include null fields in Patch
5820	// requests.
5821	NullFields []string `json:"-"`
5822}
5823
5824func (s *BfdPacket) MarshalJSON() ([]byte, error) {
5825	type NoMethod BfdPacket
5826	raw := NoMethod(*s)
5827	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5828}
5829
5830// BfdStatus: Next free: 15
5831type BfdStatus struct {
5832	// BfdSessionInitializationMode: The BFD session initialization mode for
5833	// this BGP peer. If set to ACTIVE, the Cloud Router will initiate the
5834	// BFD session for this BGP peer. If set to PASSIVE, the Cloud Router
5835	// will wait for the peer router to initiate the BFD session for this
5836	// BGP peer. If set to DISABLED, BFD is disabled for this BGP peer.
5837	//
5838	// Possible values:
5839	//   "ACTIVE"
5840	//   "DISABLED"
5841	//   "PASSIVE"
5842	BfdSessionInitializationMode string `json:"bfdSessionInitializationMode,omitempty"`
5843
5844	// ConfigUpdateTimestampMicros: Unix timestamp of the most recent config
5845	// update.
5846	ConfigUpdateTimestampMicros int64 `json:"configUpdateTimestampMicros,omitempty,string"`
5847
5848	// ControlPacketCounts: Control packet counts for the current BFD
5849	// session.
5850	ControlPacketCounts *BfdStatusPacketCounts `json:"controlPacketCounts,omitempty"`
5851
5852	// ControlPacketIntervals: Inter-packet time interval statistics for
5853	// control packets.
5854	ControlPacketIntervals []*PacketIntervals `json:"controlPacketIntervals,omitempty"`
5855
5856	// EchoPacketCounts: Echo packet counts for the current BFD session.
5857	EchoPacketCounts *BfdStatusPacketCounts `json:"echoPacketCounts,omitempty"`
5858
5859	// EchoPacketIntervals: Inter-packet time interval statistics for echo
5860	// packets.
5861	EchoPacketIntervals []*PacketIntervals `json:"echoPacketIntervals,omitempty"`
5862
5863	// LocalDiagnostic: The diagnostic code specifies the local system's
5864	// reason for the last change in session state. This allows remote
5865	// systems to determine the reason that the previous session failed, for
5866	// example. These diagnostic codes are specified in section 4.1 of
5867	// RFC5880
5868	//
5869	// Possible values:
5870	//   "ADMINISTRATIVELY_DOWN"
5871	//   "CONCATENATED_PATH_DOWN"
5872	//   "CONTROL_DETECTION_TIME_EXPIRED"
5873	//   "DIAGNOSTIC_UNSPECIFIED"
5874	//   "ECHO_FUNCTION_FAILED"
5875	//   "FORWARDING_PLANE_RESET"
5876	//   "NEIGHBOR_SIGNALED_SESSION_DOWN"
5877	//   "NO_DIAGNOSTIC"
5878	//   "PATH_DOWN"
5879	//   "REVERSE_CONCATENATED_PATH_DOWN"
5880	LocalDiagnostic string `json:"localDiagnostic,omitempty"`
5881
5882	// LocalState: The current BFD session state as seen by the transmitting
5883	// system. These states are specified in section 4.1 of RFC5880
5884	//
5885	// Possible values:
5886	//   "ADMIN_DOWN"
5887	//   "DOWN"
5888	//   "INIT"
5889	//   "STATE_UNSPECIFIED"
5890	//   "UP"
5891	LocalState string `json:"localState,omitempty"`
5892
5893	// NegotiatedLocalControlTxIntervalMs: Negotiated transmit interval for
5894	// control packets.
5895	NegotiatedLocalControlTxIntervalMs int64 `json:"negotiatedLocalControlTxIntervalMs,omitempty"`
5896
5897	// NegotiatedLocalEchoTxIntervalMs: Negotiated transmit interval for
5898	// echo packets.
5899	NegotiatedLocalEchoTxIntervalMs int64 `json:"negotiatedLocalEchoTxIntervalMs,omitempty"`
5900
5901	// RxPacket: The most recent Rx control packet for this BFD session.
5902	RxPacket *BfdPacket `json:"rxPacket,omitempty"`
5903
5904	// TxPacket: The most recent Tx control packet for this BFD session.
5905	TxPacket *BfdPacket `json:"txPacket,omitempty"`
5906
5907	// UptimeMs: Session uptime in milliseconds. Value will be 0 if session
5908	// is not up.
5909	UptimeMs int64 `json:"uptimeMs,omitempty,string"`
5910
5911	// UsingEchoMode: Indicates if echo mode is currently being used.
5912	UsingEchoMode bool `json:"usingEchoMode,omitempty"`
5913
5914	// ForceSendFields is a list of field names (e.g.
5915	// "BfdSessionInitializationMode") to unconditionally include in API
5916	// requests. By default, fields with empty values are omitted from API
5917	// requests. However, any non-pointer, non-interface field appearing in
5918	// ForceSendFields will be sent to the server regardless of whether the
5919	// field is empty or not. This may be used to include empty fields in
5920	// Patch requests.
5921	ForceSendFields []string `json:"-"`
5922
5923	// NullFields is a list of field names (e.g.
5924	// "BfdSessionInitializationMode") to include in API requests with the
5925	// JSON null value. By default, fields with empty values are omitted
5926	// from API requests. However, any field with an empty value appearing
5927	// in NullFields will be sent to the server as null. It is an error if a
5928	// field in this list has a non-empty value. This may be used to include
5929	// null fields in Patch requests.
5930	NullFields []string `json:"-"`
5931}
5932
5933func (s *BfdStatus) MarshalJSON() ([]byte, error) {
5934	type NoMethod BfdStatus
5935	raw := NoMethod(*s)
5936	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5937}
5938
5939type BfdStatusPacketCounts struct {
5940	// NumRx: Number of packets received since the beginning of the current
5941	// BFD session.
5942	NumRx int64 `json:"numRx,omitempty"`
5943
5944	// NumRxRejected: Number of packets received that were rejected because
5945	// of errors since the beginning of the current BFD session.
5946	NumRxRejected int64 `json:"numRxRejected,omitempty"`
5947
5948	// NumRxSuccessful: Number of packets received that were successfully
5949	// processed since the beginning of the current BFD session.
5950	NumRxSuccessful int64 `json:"numRxSuccessful,omitempty"`
5951
5952	// NumTx: Number of packets transmitted since the beginning of the
5953	// current BFD session.
5954	NumTx int64 `json:"numTx,omitempty"`
5955
5956	// ForceSendFields is a list of field names (e.g. "NumRx") to
5957	// unconditionally include in API requests. By default, fields with
5958	// empty values are omitted from API requests. However, any non-pointer,
5959	// non-interface field appearing in ForceSendFields will be sent to the
5960	// server regardless of whether the field is empty or not. This may be
5961	// used to include empty fields in Patch requests.
5962	ForceSendFields []string `json:"-"`
5963
5964	// NullFields is a list of field names (e.g. "NumRx") to include in API
5965	// requests with the JSON null value. By default, fields with empty
5966	// values are omitted from API requests. However, any field with an
5967	// empty value appearing in NullFields will be sent to the server as
5968	// null. It is an error if a field in this list has a non-empty value.
5969	// This may be used to include null fields in Patch requests.
5970	NullFields []string `json:"-"`
5971}
5972
5973func (s *BfdStatusPacketCounts) MarshalJSON() ([]byte, error) {
5974	type NoMethod BfdStatusPacketCounts
5975	raw := NoMethod(*s)
5976	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5977}
5978
5979// Binding: Associates `members` with a `role`.
5980type Binding struct {
5981	// Condition: The condition that is associated with this binding. NOTE:
5982	// An unsatisfied condition will not allow user access via current
5983	// binding. Different bindings, including their conditions, are examined
5984	// independently.
5985	Condition *Expr `json:"condition,omitempty"`
5986
5987	// Members: Specifies the identities requesting access for a Cloud
5988	// Platform resource. `members` can have the following values:
5989	//
5990	// * `allUsers`: A special identifier that represents anyone who is on
5991	// the internet; with or without a Google account.
5992	//
5993	// * `allAuthenticatedUsers`: A special identifier that represents
5994	// anyone who is authenticated with a Google account or a service
5995	// account.
5996	//
5997	// * `user:{emailid}`: An email address that represents a specific
5998	// Google account. For example, `alice@example.com` .
5999	//
6000	//
6001	//
6002	// * `serviceAccount:{emailid}`: An email address that represents a
6003	// service account. For example,
6004	// `my-other-app@appspot.gserviceaccount.com`.
6005	//
6006	// * `group:{emailid}`: An email address that represents a Google group.
6007	// For example, `admins@example.com`.
6008	//
6009	//
6010	//
6011	// * `domain:{domain}`: The G Suite domain (primary) that represents all
6012	// the users of that domain. For example, `google.com` or `example.com`.
6013	Members []string `json:"members,omitempty"`
6014
6015	// Role: Role that is assigned to `members`. For example,
6016	// `roles/viewer`, `roles/editor`, or `roles/owner`.
6017	Role string `json:"role,omitempty"`
6018
6019	// ForceSendFields is a list of field names (e.g. "Condition") to
6020	// unconditionally include in API requests. By default, fields with
6021	// empty values are omitted from API requests. However, any non-pointer,
6022	// non-interface field appearing in ForceSendFields will be sent to the
6023	// server regardless of whether the field is empty or not. This may be
6024	// used to include empty fields in Patch requests.
6025	ForceSendFields []string `json:"-"`
6026
6027	// NullFields is a list of field names (e.g. "Condition") to include in
6028	// API requests with the JSON null value. By default, fields with empty
6029	// values are omitted from API requests. However, any field with an
6030	// empty value appearing in NullFields will be sent to the server as
6031	// null. It is an error if a field in this list has a non-empty value.
6032	// This may be used to include null fields in Patch requests.
6033	NullFields []string `json:"-"`
6034}
6035
6036func (s *Binding) MarshalJSON() ([]byte, error) {
6037	type NoMethod Binding
6038	raw := NoMethod(*s)
6039	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6040}
6041
6042type CacheInvalidationRule struct {
6043	// Host: If set, this invalidation rule will only apply to requests with
6044	// a Host header matching host.
6045	Host string `json:"host,omitempty"`
6046
6047	Path string `json:"path,omitempty"`
6048
6049	// ForceSendFields is a list of field names (e.g. "Host") to
6050	// unconditionally include in API requests. By default, fields with
6051	// empty values are omitted from API requests. However, any non-pointer,
6052	// non-interface field appearing in ForceSendFields will be sent to the
6053	// server regardless of whether the field is empty or not. This may be
6054	// used to include empty fields in Patch requests.
6055	ForceSendFields []string `json:"-"`
6056
6057	// NullFields is a list of field names (e.g. "Host") to include in API
6058	// requests with the JSON null value. By default, fields with empty
6059	// values are omitted from API requests. However, any field with an
6060	// empty value appearing in NullFields will be sent to the server as
6061	// null. It is an error if a field in this list has a non-empty value.
6062	// This may be used to include null fields in Patch requests.
6063	NullFields []string `json:"-"`
6064}
6065
6066func (s *CacheInvalidationRule) MarshalJSON() ([]byte, error) {
6067	type NoMethod CacheInvalidationRule
6068	raw := NoMethod(*s)
6069	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6070}
6071
6072// CacheKeyPolicy: Message containing what to include in the cache key
6073// for a request for Cloud CDN.
6074type CacheKeyPolicy struct {
6075	// IncludeHost: If true, requests to different hosts will be cached
6076	// separately.
6077	IncludeHost bool `json:"includeHost,omitempty"`
6078
6079	// IncludeProtocol: If true, http and https requests will be cached
6080	// separately.
6081	IncludeProtocol bool `json:"includeProtocol,omitempty"`
6082
6083	// IncludeQueryString: If true, include query string parameters in the
6084	// cache key according to query_string_whitelist and
6085	// query_string_blacklist. If neither is set, the entire query string
6086	// will be included. If false, the query string will be excluded from
6087	// the cache key entirely.
6088	IncludeQueryString bool `json:"includeQueryString,omitempty"`
6089
6090	// QueryStringBlacklist: Names of query string parameters to exclude in
6091	// cache keys. All other parameters will be included. Either specify
6092	// query_string_whitelist or query_string_blacklist, not both. '&' and
6093	// '=' will be percent encoded and not treated as delimiters.
6094	QueryStringBlacklist []string `json:"queryStringBlacklist,omitempty"`
6095
6096	// QueryStringWhitelist: Names of query string parameters to include in
6097	// cache keys. All other parameters will be excluded. Either specify
6098	// query_string_whitelist or query_string_blacklist, not both. '&' and
6099	// '=' will be percent encoded and not treated as delimiters.
6100	QueryStringWhitelist []string `json:"queryStringWhitelist,omitempty"`
6101
6102	// ForceSendFields is a list of field names (e.g. "IncludeHost") to
6103	// unconditionally include in API requests. By default, fields with
6104	// empty values are omitted from API requests. However, any non-pointer,
6105	// non-interface field appearing in ForceSendFields will be sent to the
6106	// server regardless of whether the field is empty or not. This may be
6107	// used to include empty fields in Patch requests.
6108	ForceSendFields []string `json:"-"`
6109
6110	// NullFields is a list of field names (e.g. "IncludeHost") to include
6111	// in API requests with the JSON null value. By default, fields with
6112	// empty values are omitted from API requests. However, any field with
6113	// an empty value appearing in NullFields will be sent to the server as
6114	// null. It is an error if a field in this list has a non-empty value.
6115	// This may be used to include null fields in Patch requests.
6116	NullFields []string `json:"-"`
6117}
6118
6119func (s *CacheKeyPolicy) MarshalJSON() ([]byte, error) {
6120	type NoMethod CacheKeyPolicy
6121	raw := NoMethod(*s)
6122	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6123}
6124
6125// CallCredentials: gRPC call credentials to access the SDS server.
6126type CallCredentials struct {
6127	// CallCredentialType: The type of call credentials to use for GRPC
6128	// requests to the SDS server. This field can be set to one of the
6129	// following:
6130	// - GCE_VM: The local GCE VM service account credentials are used to
6131	// access the SDS server.
6132	// - FROM_PLUGIN: Custom authenticator credentials are used to access
6133	// the SDS server.
6134	//
6135	// Possible values:
6136	//   "FROM_PLUGIN"
6137	//   "GCE_VM"
6138	//   "INVALID"
6139	CallCredentialType string `json:"callCredentialType,omitempty"`
6140
6141	// FromPlugin: Custom authenticator credentials. Valid if
6142	// callCredentialType is FROM_PLUGIN.
6143	FromPlugin *MetadataCredentialsFromPlugin `json:"fromPlugin,omitempty"`
6144
6145	// ForceSendFields is a list of field names (e.g. "CallCredentialType")
6146	// to unconditionally include in API requests. By default, fields with
6147	// empty values are omitted from API requests. However, any non-pointer,
6148	// non-interface field appearing in ForceSendFields will be sent to the
6149	// server regardless of whether the field is empty or not. This may be
6150	// used to include empty fields in Patch requests.
6151	ForceSendFields []string `json:"-"`
6152
6153	// NullFields is a list of field names (e.g. "CallCredentialType") to
6154	// include in API requests with the JSON null value. By default, fields
6155	// with empty values are omitted from API requests. However, any field
6156	// with an empty value appearing in NullFields will be sent to the
6157	// server as null. It is an error if a field in this list has a
6158	// non-empty value. This may be used to include null fields in Patch
6159	// requests.
6160	NullFields []string `json:"-"`
6161}
6162
6163func (s *CallCredentials) MarshalJSON() ([]byte, error) {
6164	type NoMethod CallCredentials
6165	raw := NoMethod(*s)
6166	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6167}
6168
6169// ChannelCredentials: gRPC channel credentials to access the SDS
6170// server.
6171type ChannelCredentials struct {
6172	// Certificates: The call credentials to access the SDS server.
6173	Certificates *TlsCertificatePaths `json:"certificates,omitempty"`
6174
6175	// ChannelCredentialType: The channel credentials to access the SDS
6176	// server. This field can be set to one of the following: CERTIFICATES:
6177	// Use TLS certificates to access the SDS server. GCE_VM: Use local GCE
6178	// VM credentials to access the SDS server.
6179	//
6180	// Possible values:
6181	//   "CERTIFICATES"
6182	//   "GCE_VM"
6183	//   "INVALID"
6184	ChannelCredentialType string `json:"channelCredentialType,omitempty"`
6185
6186	// ForceSendFields is a list of field names (e.g. "Certificates") to
6187	// unconditionally include in API requests. By default, fields with
6188	// empty values are omitted from API requests. However, any non-pointer,
6189	// non-interface field appearing in ForceSendFields will be sent to the
6190	// server regardless of whether the field is empty or not. This may be
6191	// used to include empty fields in Patch requests.
6192	ForceSendFields []string `json:"-"`
6193
6194	// NullFields is a list of field names (e.g. "Certificates") to include
6195	// in API requests with the JSON null value. By default, fields with
6196	// empty values are omitted from API requests. However, any field with
6197	// an empty value appearing in NullFields will be sent to the server as
6198	// null. It is an error if a field in this list has a non-empty value.
6199	// This may be used to include null fields in Patch requests.
6200	NullFields []string `json:"-"`
6201}
6202
6203func (s *ChannelCredentials) MarshalJSON() ([]byte, error) {
6204	type NoMethod ChannelCredentials
6205	raw := NoMethod(*s)
6206	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6207}
6208
6209// CircuitBreakers: Settings controlling the volume of connections to a
6210// backend service.
6211type CircuitBreakers struct {
6212	// ConnectTimeout: The timeout for new network connections to hosts.
6213	ConnectTimeout *Duration `json:"connectTimeout,omitempty"`
6214
6215	// MaxConnections: The maximum number of connections to the backend
6216	// service. If not specified, there is no limit.
6217	MaxConnections int64 `json:"maxConnections,omitempty"`
6218
6219	// MaxPendingRequests: The maximum number of pending requests allowed to
6220	// the backend service. If not specified, there is no limit.
6221	MaxPendingRequests int64 `json:"maxPendingRequests,omitempty"`
6222
6223	// MaxRequests: The maximum number of parallel requests that allowed to
6224	// the backend service. If not specified, there is no limit.
6225	MaxRequests int64 `json:"maxRequests,omitempty"`
6226
6227	// MaxRequestsPerConnection: Maximum requests for a single connection to
6228	// the backend service. This parameter is respected by both the HTTP/1.1
6229	// and HTTP/2 implementations. If not specified, there is no limit.
6230	// Setting this parameter to 1 will effectively disable keep alive.
6231	MaxRequestsPerConnection int64 `json:"maxRequestsPerConnection,omitempty"`
6232
6233	// MaxRetries: The maximum number of parallel retries allowed to the
6234	// backend cluster. If not specified, the default is 1.
6235	MaxRetries int64 `json:"maxRetries,omitempty"`
6236
6237	// ForceSendFields is a list of field names (e.g. "ConnectTimeout") to
6238	// unconditionally include in API requests. By default, fields with
6239	// empty values are omitted from API requests. However, any non-pointer,
6240	// non-interface field appearing in ForceSendFields will be sent to the
6241	// server regardless of whether the field is empty or not. This may be
6242	// used to include empty fields in Patch requests.
6243	ForceSendFields []string `json:"-"`
6244
6245	// NullFields is a list of field names (e.g. "ConnectTimeout") to
6246	// include in API requests with the JSON null value. By default, fields
6247	// with empty values are omitted from API requests. However, any field
6248	// with an empty value appearing in NullFields will be sent to the
6249	// server as null. It is an error if a field in this list has a
6250	// non-empty value. This may be used to include null fields in Patch
6251	// requests.
6252	NullFields []string `json:"-"`
6253}
6254
6255func (s *CircuitBreakers) MarshalJSON() ([]byte, error) {
6256	type NoMethod CircuitBreakers
6257	raw := NoMethod(*s)
6258	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6259}
6260
6261// ClientTlsSettings: The client side authentication settings for
6262// connection originating from the backend service.
6263type ClientTlsSettings struct {
6264	// ClientTlsContext: Configures the mechanism to obtain client-side
6265	// security certificates and identity information. This field is only
6266	// applicable when mode is set to MUTUAL.
6267	ClientTlsContext *TlsContext `json:"clientTlsContext,omitempty"`
6268
6269	// Mode: Indicates whether connections to this port should be secured
6270	// using TLS. The value of this field determines how TLS is enforced.
6271	// This can be set to one of the following values: DISABLE: Do not setup
6272	// a TLS connection to the backends. SIMPLE: Originate a TLS connection
6273	// to the backends. MUTUAL: Secure connections to the backends using
6274	// mutual TLS by presenting client certificates for authentication.
6275	//
6276	// Possible values:
6277	//   "DISABLE"
6278	//   "INVALID"
6279	//   "MUTUAL"
6280	//   "SIMPLE"
6281	Mode string `json:"mode,omitempty"`
6282
6283	// Sni: SNI string to present to the server during TLS handshake. This
6284	// field is applicable only when mode is SIMPLE or MUTUAL.
6285	Sni string `json:"sni,omitempty"`
6286
6287	// SubjectAltNames: A list of alternate names to verify the subject
6288	// identity in the certificate.If specified, the proxy will verify that
6289	// the server certificate's subject alt name matches one of the
6290	// specified values. This field is applicable only when mode is SIMPLE
6291	// or MUTUAL.
6292	SubjectAltNames []string `json:"subjectAltNames,omitempty"`
6293
6294	// ForceSendFields is a list of field names (e.g. "ClientTlsContext") to
6295	// unconditionally include in API requests. By default, fields with
6296	// empty values are omitted from API requests. However, any non-pointer,
6297	// non-interface field appearing in ForceSendFields will be sent to the
6298	// server regardless of whether the field is empty or not. This may be
6299	// used to include empty fields in Patch requests.
6300	ForceSendFields []string `json:"-"`
6301
6302	// NullFields is a list of field names (e.g. "ClientTlsContext") to
6303	// include in API requests with the JSON null value. By default, fields
6304	// with empty values are omitted from API requests. However, any field
6305	// with an empty value appearing in NullFields will be sent to the
6306	// server as null. It is an error if a field in this list has a
6307	// non-empty value. This may be used to include null fields in Patch
6308	// requests.
6309	NullFields []string `json:"-"`
6310}
6311
6312func (s *ClientTlsSettings) MarshalJSON() ([]byte, error) {
6313	type NoMethod ClientTlsSettings
6314	raw := NoMethod(*s)
6315	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6316}
6317
6318// Commitment: Represents a regional Commitment resource.
6319//
6320// Creating a commitment resource means that you are purchasing a
6321// committed use contract with an explicit start and end time. You can
6322// create commitments based on vCPUs and memory usage and receive
6323// discounted rates. For full details, read Signing Up for Committed Use
6324// Discounts. (== resource_for beta.regionCommitments ==) (==
6325// resource_for v1.regionCommitments ==)
6326type Commitment struct {
6327	// Category: The category of the commitment. Category MACHINE specifies
6328	// commitments composed of machine resources such as VCPU or MEMORY,
6329	// listed in resources. Category LICENSE specifies commitments composed
6330	// of software licenses, listed in licenseResources. Note that only
6331	// MACHINE commitments should have a Type specified.
6332	//
6333	// Possible values:
6334	//   "CATEGORY_UNSPECIFIED"
6335	//   "LICENSE"
6336	//   "MACHINE"
6337	Category string `json:"category,omitempty"`
6338
6339	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
6340	// format.
6341	CreationTimestamp string `json:"creationTimestamp,omitempty"`
6342
6343	// Description: An optional description of this resource. Provide this
6344	// property when you create the resource.
6345	Description string `json:"description,omitempty"`
6346
6347	// EndTimestamp: [Output Only] Commitment end time in RFC3339 text
6348	// format.
6349	EndTimestamp string `json:"endTimestamp,omitempty"`
6350
6351	// Id: [Output Only] The unique identifier for the resource. This
6352	// identifier is defined by the server.
6353	Id uint64 `json:"id,omitempty,string"`
6354
6355	// Kind: [Output Only] Type of the resource. Always compute#commitment
6356	// for commitments.
6357	Kind string `json:"kind,omitempty"`
6358
6359	// LicenseResources: A list of commitment amounts for particular
6360	// licenses.
6361	LicenseResources []*LicenseResourceCommitment `json:"licenseResources,omitempty"`
6362
6363	// Name: Name of the resource. Provided by the client when the resource
6364	// is created. The name must be 1-63 characters long, and comply with
6365	// RFC1035. Specifically, the name must be 1-63 characters long and
6366	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
6367	// the first character must be a lowercase letter, and all following
6368	// characters must be a dash, lowercase letter, or digit, except the
6369	// last character, which cannot be a dash.
6370	Name string `json:"name,omitempty"`
6371
6372	// Plan: The plan for this commitment, which determines duration and
6373	// discount rate. The currently supported plans are TWELVE_MONTH (1
6374	// year), and THIRTY_SIX_MONTH (3 years).
6375	//
6376	// Possible values:
6377	//   "INVALID"
6378	//   "THIRTY_SIX_MONTH"
6379	//   "TWELVE_MONTH"
6380	Plan string `json:"plan,omitempty"`
6381
6382	// Region: [Output Only] URL of the region where this commitment may be
6383	// used.
6384	Region string `json:"region,omitempty"`
6385
6386	// Reservations: List of reservations in this commitment.
6387	Reservations []*Reservation `json:"reservations,omitempty"`
6388
6389	// Resources: A list of commitment amounts for particular resources.
6390	// Note that VCPU and MEMORY resource commitments must occur together.
6391	Resources []*ResourceCommitment `json:"resources,omitempty"`
6392
6393	// SelfLink: [Output Only] Server-defined URL for the resource.
6394	SelfLink string `json:"selfLink,omitempty"`
6395
6396	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
6397	// with the resource id.
6398	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
6399
6400	// StartTimestamp: [Output Only] Commitment start time in RFC3339 text
6401	// format.
6402	StartTimestamp string `json:"startTimestamp,omitempty"`
6403
6404	// Status: [Output Only] Status of the commitment with regards to
6405	// eventual expiration (each commitment has an end date defined). One of
6406	// the following values: NOT_YET_ACTIVE, ACTIVE, EXPIRED.
6407	//
6408	// Possible values:
6409	//   "ACTIVE"
6410	//   "CREATING"
6411	//   "EXPIRED"
6412	//   "NOT_YET_ACTIVE"
6413	Status string `json:"status,omitempty"`
6414
6415	// StatusMessage: [Output Only] An optional, human-readable explanation
6416	// of the status.
6417	StatusMessage string `json:"statusMessage,omitempty"`
6418
6419	// Type: The type of commitment, which affects the discount rate and the
6420	// eligible resources. Type MEMORY_OPTIMIZED specifies a commitment that
6421	// will only apply to memory optimized machines.
6422	//
6423	// Possible values:
6424	//   "COMPUTE_OPTIMIZED"
6425	//   "GENERAL_PURPOSE"
6426	//   "GENERAL_PURPOSE_E2"
6427	//   "GENERAL_PURPOSE_N2"
6428	//   "GENERAL_PURPOSE_N2D"
6429	//   "MEMORY_OPTIMIZED"
6430	//   "TYPE_UNSPECIFIED"
6431	Type string `json:"type,omitempty"`
6432
6433	// ServerResponse contains the HTTP response code and headers from the
6434	// server.
6435	googleapi.ServerResponse `json:"-"`
6436
6437	// ForceSendFields is a list of field names (e.g. "Category") to
6438	// unconditionally include in API requests. By default, fields with
6439	// empty values are omitted from API requests. However, any non-pointer,
6440	// non-interface field appearing in ForceSendFields will be sent to the
6441	// server regardless of whether the field is empty or not. This may be
6442	// used to include empty fields in Patch requests.
6443	ForceSendFields []string `json:"-"`
6444
6445	// NullFields is a list of field names (e.g. "Category") to include in
6446	// API requests with the JSON null value. By default, fields with empty
6447	// values are omitted from API requests. However, any field with an
6448	// empty value appearing in NullFields will be sent to the server as
6449	// null. It is an error if a field in this list has a non-empty value.
6450	// This may be used to include null fields in Patch requests.
6451	NullFields []string `json:"-"`
6452}
6453
6454func (s *Commitment) MarshalJSON() ([]byte, error) {
6455	type NoMethod Commitment
6456	raw := NoMethod(*s)
6457	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6458}
6459
6460type CommitmentAggregatedList struct {
6461	// Id: [Output Only] Unique identifier for the resource; defined by the
6462	// server.
6463	Id string `json:"id,omitempty"`
6464
6465	// Items: A list of CommitmentsScopedList resources.
6466	Items map[string]CommitmentsScopedList `json:"items,omitempty"`
6467
6468	// Kind: [Output Only] Type of resource. Always
6469	// compute#commitmentAggregatedList for aggregated lists of commitments.
6470	Kind string `json:"kind,omitempty"`
6471
6472	// NextPageToken: [Output Only] This token allows you to get the next
6473	// page of results for list requests. If the number of results is larger
6474	// than maxResults, use the nextPageToken as a value for the query
6475	// parameter pageToken in the next list request. Subsequent list
6476	// requests will have their own nextPageToken to continue paging through
6477	// the results.
6478	NextPageToken string `json:"nextPageToken,omitempty"`
6479
6480	// SelfLink: [Output Only] Server-defined URL for this resource.
6481	SelfLink string `json:"selfLink,omitempty"`
6482
6483	// Warning: [Output Only] Informational warning message.
6484	Warning *CommitmentAggregatedListWarning `json:"warning,omitempty"`
6485
6486	// ServerResponse contains the HTTP response code and headers from the
6487	// server.
6488	googleapi.ServerResponse `json:"-"`
6489
6490	// ForceSendFields is a list of field names (e.g. "Id") to
6491	// unconditionally include in API requests. By default, fields with
6492	// empty values are omitted from API requests. However, any non-pointer,
6493	// non-interface field appearing in ForceSendFields will be sent to the
6494	// server regardless of whether the field is empty or not. This may be
6495	// used to include empty fields in Patch requests.
6496	ForceSendFields []string `json:"-"`
6497
6498	// NullFields is a list of field names (e.g. "Id") to include in API
6499	// requests with the JSON null value. By default, fields with empty
6500	// values are omitted from API requests. However, any field with an
6501	// empty value appearing in NullFields will be sent to the server as
6502	// null. It is an error if a field in this list has a non-empty value.
6503	// This may be used to include null fields in Patch requests.
6504	NullFields []string `json:"-"`
6505}
6506
6507func (s *CommitmentAggregatedList) MarshalJSON() ([]byte, error) {
6508	type NoMethod CommitmentAggregatedList
6509	raw := NoMethod(*s)
6510	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6511}
6512
6513// CommitmentAggregatedListWarning: [Output Only] Informational warning
6514// message.
6515type CommitmentAggregatedListWarning struct {
6516	// Code: [Output Only] A warning code, if applicable. For example,
6517	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
6518	// the response.
6519	//
6520	// Possible values:
6521	//   "CLEANUP_FAILED"
6522	//   "DEPRECATED_RESOURCE_USED"
6523	//   "DEPRECATED_TYPE_USED"
6524	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
6525	//   "EXPERIMENTAL_TYPE_USED"
6526	//   "EXTERNAL_API_WARNING"
6527	//   "FIELD_VALUE_OVERRIDEN"
6528	//   "INJECTED_KERNELS_DEPRECATED"
6529	//   "MISSING_TYPE_DEPENDENCY"
6530	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
6531	//   "NEXT_HOP_CANNOT_IP_FORWARD"
6532	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
6533	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
6534	//   "NEXT_HOP_NOT_RUNNING"
6535	//   "NOT_CRITICAL_ERROR"
6536	//   "NO_RESULTS_ON_PAGE"
6537	//   "REQUIRED_TOS_AGREEMENT"
6538	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
6539	//   "RESOURCE_NOT_DELETED"
6540	//   "SCHEMA_VALIDATION_IGNORED"
6541	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
6542	//   "UNDECLARED_PROPERTIES"
6543	//   "UNREACHABLE"
6544	Code string `json:"code,omitempty"`
6545
6546	// Data: [Output Only] Metadata about this warning in key: value format.
6547	// For example:
6548	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
6549	Data []*CommitmentAggregatedListWarningData `json:"data,omitempty"`
6550
6551	// Message: [Output Only] A human-readable description of the warning
6552	// code.
6553	Message string `json:"message,omitempty"`
6554
6555	// ForceSendFields is a list of field names (e.g. "Code") to
6556	// unconditionally include in API requests. By default, fields with
6557	// empty values are omitted from API requests. However, any non-pointer,
6558	// non-interface field appearing in ForceSendFields will be sent to the
6559	// server regardless of whether the field is empty or not. This may be
6560	// used to include empty fields in Patch requests.
6561	ForceSendFields []string `json:"-"`
6562
6563	// NullFields is a list of field names (e.g. "Code") to include in API
6564	// requests with the JSON null value. By default, fields with empty
6565	// values are omitted from API requests. However, any field with an
6566	// empty value appearing in NullFields will be sent to the server as
6567	// null. It is an error if a field in this list has a non-empty value.
6568	// This may be used to include null fields in Patch requests.
6569	NullFields []string `json:"-"`
6570}
6571
6572func (s *CommitmentAggregatedListWarning) MarshalJSON() ([]byte, error) {
6573	type NoMethod CommitmentAggregatedListWarning
6574	raw := NoMethod(*s)
6575	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6576}
6577
6578type CommitmentAggregatedListWarningData struct {
6579	// Key: [Output Only] A key that provides more detail on the warning
6580	// being returned. For example, for warnings where there are no results
6581	// in a list request for a particular zone, this key might be scope and
6582	// the key value might be the zone name. Other examples might be a key
6583	// indicating a deprecated resource and a suggested replacement, or a
6584	// warning about invalid network settings (for example, if an instance
6585	// attempts to perform IP forwarding but is not enabled for IP
6586	// forwarding).
6587	Key string `json:"key,omitempty"`
6588
6589	// Value: [Output Only] A warning data value corresponding to the key.
6590	Value string `json:"value,omitempty"`
6591
6592	// ForceSendFields is a list of field names (e.g. "Key") to
6593	// unconditionally include in API requests. By default, fields with
6594	// empty values are omitted from API requests. However, any non-pointer,
6595	// non-interface field appearing in ForceSendFields will be sent to the
6596	// server regardless of whether the field is empty or not. This may be
6597	// used to include empty fields in Patch requests.
6598	ForceSendFields []string `json:"-"`
6599
6600	// NullFields is a list of field names (e.g. "Key") to include in API
6601	// requests with the JSON null value. By default, fields with empty
6602	// values are omitted from API requests. However, any field with an
6603	// empty value appearing in NullFields will be sent to the server as
6604	// null. It is an error if a field in this list has a non-empty value.
6605	// This may be used to include null fields in Patch requests.
6606	NullFields []string `json:"-"`
6607}
6608
6609func (s *CommitmentAggregatedListWarningData) MarshalJSON() ([]byte, error) {
6610	type NoMethod CommitmentAggregatedListWarningData
6611	raw := NoMethod(*s)
6612	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6613}
6614
6615// CommitmentList: Contains a list of Commitment resources.
6616type CommitmentList struct {
6617	// Id: [Output Only] Unique identifier for the resource; defined by the
6618	// server.
6619	Id string `json:"id,omitempty"`
6620
6621	// Items: A list of Commitment resources.
6622	Items []*Commitment `json:"items,omitempty"`
6623
6624	// Kind: [Output Only] Type of resource. Always compute#commitmentList
6625	// for lists of commitments.
6626	Kind string `json:"kind,omitempty"`
6627
6628	// NextPageToken: [Output Only] This token allows you to get the next
6629	// page of results for list requests. If the number of results is larger
6630	// than maxResults, use the nextPageToken as a value for the query
6631	// parameter pageToken in the next list request. Subsequent list
6632	// requests will have their own nextPageToken to continue paging through
6633	// the results.
6634	NextPageToken string `json:"nextPageToken,omitempty"`
6635
6636	// SelfLink: [Output Only] Server-defined URL for this resource.
6637	SelfLink string `json:"selfLink,omitempty"`
6638
6639	// Warning: [Output Only] Informational warning message.
6640	Warning *CommitmentListWarning `json:"warning,omitempty"`
6641
6642	// ServerResponse contains the HTTP response code and headers from the
6643	// server.
6644	googleapi.ServerResponse `json:"-"`
6645
6646	// ForceSendFields is a list of field names (e.g. "Id") to
6647	// unconditionally include in API requests. By default, fields with
6648	// empty values are omitted from API requests. However, any non-pointer,
6649	// non-interface field appearing in ForceSendFields will be sent to the
6650	// server regardless of whether the field is empty or not. This may be
6651	// used to include empty fields in Patch requests.
6652	ForceSendFields []string `json:"-"`
6653
6654	// NullFields is a list of field names (e.g. "Id") to include in API
6655	// requests with the JSON null value. By default, fields with empty
6656	// values are omitted from API requests. However, any field with an
6657	// empty value appearing in NullFields will be sent to the server as
6658	// null. It is an error if a field in this list has a non-empty value.
6659	// This may be used to include null fields in Patch requests.
6660	NullFields []string `json:"-"`
6661}
6662
6663func (s *CommitmentList) MarshalJSON() ([]byte, error) {
6664	type NoMethod CommitmentList
6665	raw := NoMethod(*s)
6666	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6667}
6668
6669// CommitmentListWarning: [Output Only] Informational warning message.
6670type CommitmentListWarning struct {
6671	// Code: [Output Only] A warning code, if applicable. For example,
6672	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
6673	// the response.
6674	//
6675	// Possible values:
6676	//   "CLEANUP_FAILED"
6677	//   "DEPRECATED_RESOURCE_USED"
6678	//   "DEPRECATED_TYPE_USED"
6679	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
6680	//   "EXPERIMENTAL_TYPE_USED"
6681	//   "EXTERNAL_API_WARNING"
6682	//   "FIELD_VALUE_OVERRIDEN"
6683	//   "INJECTED_KERNELS_DEPRECATED"
6684	//   "MISSING_TYPE_DEPENDENCY"
6685	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
6686	//   "NEXT_HOP_CANNOT_IP_FORWARD"
6687	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
6688	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
6689	//   "NEXT_HOP_NOT_RUNNING"
6690	//   "NOT_CRITICAL_ERROR"
6691	//   "NO_RESULTS_ON_PAGE"
6692	//   "REQUIRED_TOS_AGREEMENT"
6693	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
6694	//   "RESOURCE_NOT_DELETED"
6695	//   "SCHEMA_VALIDATION_IGNORED"
6696	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
6697	//   "UNDECLARED_PROPERTIES"
6698	//   "UNREACHABLE"
6699	Code string `json:"code,omitempty"`
6700
6701	// Data: [Output Only] Metadata about this warning in key: value format.
6702	// For example:
6703	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
6704	Data []*CommitmentListWarningData `json:"data,omitempty"`
6705
6706	// Message: [Output Only] A human-readable description of the warning
6707	// code.
6708	Message string `json:"message,omitempty"`
6709
6710	// ForceSendFields is a list of field names (e.g. "Code") to
6711	// unconditionally include in API requests. By default, fields with
6712	// empty values are omitted from API requests. However, any non-pointer,
6713	// non-interface field appearing in ForceSendFields will be sent to the
6714	// server regardless of whether the field is empty or not. This may be
6715	// used to include empty fields in Patch requests.
6716	ForceSendFields []string `json:"-"`
6717
6718	// NullFields is a list of field names (e.g. "Code") to include in API
6719	// requests with the JSON null value. By default, fields with empty
6720	// values are omitted from API requests. However, any field with an
6721	// empty value appearing in NullFields will be sent to the server as
6722	// null. It is an error if a field in this list has a non-empty value.
6723	// This may be used to include null fields in Patch requests.
6724	NullFields []string `json:"-"`
6725}
6726
6727func (s *CommitmentListWarning) MarshalJSON() ([]byte, error) {
6728	type NoMethod CommitmentListWarning
6729	raw := NoMethod(*s)
6730	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6731}
6732
6733type CommitmentListWarningData struct {
6734	// Key: [Output Only] A key that provides more detail on the warning
6735	// being returned. For example, for warnings where there are no results
6736	// in a list request for a particular zone, this key might be scope and
6737	// the key value might be the zone name. Other examples might be a key
6738	// indicating a deprecated resource and a suggested replacement, or a
6739	// warning about invalid network settings (for example, if an instance
6740	// attempts to perform IP forwarding but is not enabled for IP
6741	// forwarding).
6742	Key string `json:"key,omitempty"`
6743
6744	// Value: [Output Only] A warning data value corresponding to the key.
6745	Value string `json:"value,omitempty"`
6746
6747	// ForceSendFields is a list of field names (e.g. "Key") to
6748	// unconditionally include in API requests. By default, fields with
6749	// empty values are omitted from API requests. However, any non-pointer,
6750	// non-interface field appearing in ForceSendFields will be sent to the
6751	// server regardless of whether the field is empty or not. This may be
6752	// used to include empty fields in Patch requests.
6753	ForceSendFields []string `json:"-"`
6754
6755	// NullFields is a list of field names (e.g. "Key") to include in API
6756	// requests with the JSON null value. By default, fields with empty
6757	// values are omitted from API requests. However, any field with an
6758	// empty value appearing in NullFields will be sent to the server as
6759	// null. It is an error if a field in this list has a non-empty value.
6760	// This may be used to include null fields in Patch requests.
6761	NullFields []string `json:"-"`
6762}
6763
6764func (s *CommitmentListWarningData) MarshalJSON() ([]byte, error) {
6765	type NoMethod CommitmentListWarningData
6766	raw := NoMethod(*s)
6767	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6768}
6769
6770type CommitmentsScopedList struct {
6771	// Commitments: [Output Only] A list of commitments contained in this
6772	// scope.
6773	Commitments []*Commitment `json:"commitments,omitempty"`
6774
6775	// Warning: [Output Only] Informational warning which replaces the list
6776	// of commitments when the list is empty.
6777	Warning *CommitmentsScopedListWarning `json:"warning,omitempty"`
6778
6779	// ForceSendFields is a list of field names (e.g. "Commitments") to
6780	// unconditionally include in API requests. By default, fields with
6781	// empty values are omitted from API requests. However, any non-pointer,
6782	// non-interface field appearing in ForceSendFields will be sent to the
6783	// server regardless of whether the field is empty or not. This may be
6784	// used to include empty fields in Patch requests.
6785	ForceSendFields []string `json:"-"`
6786
6787	// NullFields is a list of field names (e.g. "Commitments") to include
6788	// in API requests with the JSON null value. By default, fields with
6789	// empty values are omitted from API requests. However, any field with
6790	// an empty value appearing in NullFields will be sent to the server as
6791	// null. It is an error if a field in this list has a non-empty value.
6792	// This may be used to include null fields in Patch requests.
6793	NullFields []string `json:"-"`
6794}
6795
6796func (s *CommitmentsScopedList) MarshalJSON() ([]byte, error) {
6797	type NoMethod CommitmentsScopedList
6798	raw := NoMethod(*s)
6799	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6800}
6801
6802// CommitmentsScopedListWarning: [Output Only] Informational warning
6803// which replaces the list of commitments when the list is empty.
6804type CommitmentsScopedListWarning struct {
6805	// Code: [Output Only] A warning code, if applicable. For example,
6806	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
6807	// the response.
6808	//
6809	// Possible values:
6810	//   "CLEANUP_FAILED"
6811	//   "DEPRECATED_RESOURCE_USED"
6812	//   "DEPRECATED_TYPE_USED"
6813	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
6814	//   "EXPERIMENTAL_TYPE_USED"
6815	//   "EXTERNAL_API_WARNING"
6816	//   "FIELD_VALUE_OVERRIDEN"
6817	//   "INJECTED_KERNELS_DEPRECATED"
6818	//   "MISSING_TYPE_DEPENDENCY"
6819	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
6820	//   "NEXT_HOP_CANNOT_IP_FORWARD"
6821	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
6822	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
6823	//   "NEXT_HOP_NOT_RUNNING"
6824	//   "NOT_CRITICAL_ERROR"
6825	//   "NO_RESULTS_ON_PAGE"
6826	//   "REQUIRED_TOS_AGREEMENT"
6827	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
6828	//   "RESOURCE_NOT_DELETED"
6829	//   "SCHEMA_VALIDATION_IGNORED"
6830	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
6831	//   "UNDECLARED_PROPERTIES"
6832	//   "UNREACHABLE"
6833	Code string `json:"code,omitempty"`
6834
6835	// Data: [Output Only] Metadata about this warning in key: value format.
6836	// For example:
6837	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
6838	Data []*CommitmentsScopedListWarningData `json:"data,omitempty"`
6839
6840	// Message: [Output Only] A human-readable description of the warning
6841	// code.
6842	Message string `json:"message,omitempty"`
6843
6844	// ForceSendFields is a list of field names (e.g. "Code") to
6845	// unconditionally include in API requests. By default, fields with
6846	// empty values are omitted from API requests. However, any non-pointer,
6847	// non-interface field appearing in ForceSendFields will be sent to the
6848	// server regardless of whether the field is empty or not. This may be
6849	// used to include empty fields in Patch requests.
6850	ForceSendFields []string `json:"-"`
6851
6852	// NullFields is a list of field names (e.g. "Code") to include in API
6853	// requests with the JSON null value. By default, fields with empty
6854	// values are omitted from API requests. However, any field with an
6855	// empty value appearing in NullFields will be sent to the server as
6856	// null. It is an error if a field in this list has a non-empty value.
6857	// This may be used to include null fields in Patch requests.
6858	NullFields []string `json:"-"`
6859}
6860
6861func (s *CommitmentsScopedListWarning) MarshalJSON() ([]byte, error) {
6862	type NoMethod CommitmentsScopedListWarning
6863	raw := NoMethod(*s)
6864	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6865}
6866
6867type CommitmentsScopedListWarningData struct {
6868	// Key: [Output Only] A key that provides more detail on the warning
6869	// being returned. For example, for warnings where there are no results
6870	// in a list request for a particular zone, this key might be scope and
6871	// the key value might be the zone name. Other examples might be a key
6872	// indicating a deprecated resource and a suggested replacement, or a
6873	// warning about invalid network settings (for example, if an instance
6874	// attempts to perform IP forwarding but is not enabled for IP
6875	// forwarding).
6876	Key string `json:"key,omitempty"`
6877
6878	// Value: [Output Only] A warning data value corresponding to the key.
6879	Value string `json:"value,omitempty"`
6880
6881	// ForceSendFields is a list of field names (e.g. "Key") to
6882	// unconditionally include in API requests. By default, fields with
6883	// empty values are omitted from API requests. However, any non-pointer,
6884	// non-interface field appearing in ForceSendFields will be sent to the
6885	// server regardless of whether the field is empty or not. This may be
6886	// used to include empty fields in Patch requests.
6887	ForceSendFields []string `json:"-"`
6888
6889	// NullFields is a list of field names (e.g. "Key") to include in API
6890	// requests with the JSON null value. By default, fields with empty
6891	// values are omitted from API requests. However, any field with an
6892	// empty value appearing in NullFields will be sent to the server as
6893	// null. It is an error if a field in this list has a non-empty value.
6894	// This may be used to include null fields in Patch requests.
6895	NullFields []string `json:"-"`
6896}
6897
6898func (s *CommitmentsScopedListWarningData) MarshalJSON() ([]byte, error) {
6899	type NoMethod CommitmentsScopedListWarningData
6900	raw := NoMethod(*s)
6901	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6902}
6903
6904// Condition: A condition to be met.
6905type Condition struct {
6906	// Iam: Trusted attributes supplied by the IAM system.
6907	//
6908	// Possible values:
6909	//   "APPROVER"
6910	//   "ATTRIBUTION"
6911	//   "AUTHORITY"
6912	//   "CREDENTIALS_TYPE"
6913	//   "JUSTIFICATION_TYPE"
6914	//   "NO_ATTR"
6915	//   "SECURITY_REALM"
6916	Iam string `json:"iam,omitempty"`
6917
6918	// Op: An operator to apply the subject with.
6919	//
6920	// Possible values:
6921	//   "DISCHARGED"
6922	//   "EQUALS"
6923	//   "IN"
6924	//   "NOT_EQUALS"
6925	//   "NOT_IN"
6926	//   "NO_OP"
6927	Op string `json:"op,omitempty"`
6928
6929	// Svc: Trusted attributes discharged by the service.
6930	Svc string `json:"svc,omitempty"`
6931
6932	// Sys: Trusted attributes supplied by any service that owns resources
6933	// and uses the IAM system for access control.
6934	//
6935	// Possible values:
6936	//   "IP"
6937	//   "NAME"
6938	//   "NO_ATTR"
6939	//   "REGION"
6940	//   "SERVICE"
6941	Sys string `json:"sys,omitempty"`
6942
6943	// Values: The objects of the condition.
6944	Values []string `json:"values,omitempty"`
6945
6946	// ForceSendFields is a list of field names (e.g. "Iam") to
6947	// unconditionally include in API requests. By default, fields with
6948	// empty values are omitted from API requests. However, any non-pointer,
6949	// non-interface field appearing in ForceSendFields will be sent to the
6950	// server regardless of whether the field is empty or not. This may be
6951	// used to include empty fields in Patch requests.
6952	ForceSendFields []string `json:"-"`
6953
6954	// NullFields is a list of field names (e.g. "Iam") to include in API
6955	// requests with the JSON null value. By default, fields with empty
6956	// values are omitted from API requests. However, any field with an
6957	// empty value appearing in NullFields will be sent to the server as
6958	// null. It is an error if a field in this list has a non-empty value.
6959	// This may be used to include null fields in Patch requests.
6960	NullFields []string `json:"-"`
6961}
6962
6963func (s *Condition) MarshalJSON() ([]byte, error) {
6964	type NoMethod Condition
6965	raw := NoMethod(*s)
6966	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6967}
6968
6969// ConfidentialInstanceConfig: A set of Confidential Instance options.
6970type ConfidentialInstanceConfig struct {
6971	// EnableConfidentialCompute: Defines whether the instance should have
6972	// confidential compute enabled.
6973	EnableConfidentialCompute bool `json:"enableConfidentialCompute,omitempty"`
6974
6975	// ForceSendFields is a list of field names (e.g.
6976	// "EnableConfidentialCompute") to unconditionally include in API
6977	// requests. By default, fields with empty values are omitted from API
6978	// requests. However, any non-pointer, non-interface field appearing in
6979	// ForceSendFields will be sent to the server regardless of whether the
6980	// field is empty or not. This may be used to include empty fields in
6981	// Patch requests.
6982	ForceSendFields []string `json:"-"`
6983
6984	// NullFields is a list of field names (e.g.
6985	// "EnableConfidentialCompute") to include in API requests with the JSON
6986	// null value. By default, fields with empty values are omitted from API
6987	// requests. However, any field with an empty value appearing in
6988	// NullFields will be sent to the server as null. It is an error if a
6989	// field in this list has a non-empty value. This may be used to include
6990	// null fields in Patch requests.
6991	NullFields []string `json:"-"`
6992}
6993
6994func (s *ConfidentialInstanceConfig) MarshalJSON() ([]byte, error) {
6995	type NoMethod ConfidentialInstanceConfig
6996	raw := NoMethod(*s)
6997	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6998}
6999
7000// ConnectionDraining: Message containing connection draining
7001// configuration.
7002type ConnectionDraining struct {
7003	// DrainingTimeoutSec: The amount of time in seconds to allow existing
7004	// connections to persist while on unhealthy backend VMs. Only
7005	// applicable if the protocol is not UDP. The valid range is [0, 3600].
7006	DrainingTimeoutSec int64 `json:"drainingTimeoutSec,omitempty"`
7007
7008	// ForceSendFields is a list of field names (e.g. "DrainingTimeoutSec")
7009	// to unconditionally include in API requests. By default, fields with
7010	// empty values are omitted from API requests. However, any non-pointer,
7011	// non-interface field appearing in ForceSendFields will be sent to the
7012	// server regardless of whether the field is empty or not. This may be
7013	// used to include empty fields in Patch requests.
7014	ForceSendFields []string `json:"-"`
7015
7016	// NullFields is a list of field names (e.g. "DrainingTimeoutSec") to
7017	// include in API requests with the JSON null value. By default, fields
7018	// with empty values are omitted from API requests. However, any field
7019	// with an empty value appearing in NullFields will be sent to the
7020	// server as null. It is an error if a field in this list has a
7021	// non-empty value. This may be used to include null fields in Patch
7022	// requests.
7023	NullFields []string `json:"-"`
7024}
7025
7026func (s *ConnectionDraining) MarshalJSON() ([]byte, error) {
7027	type NoMethod ConnectionDraining
7028	raw := NoMethod(*s)
7029	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7030}
7031
7032// ConsistentHashLoadBalancerSettings: This message defines settings for
7033// a consistent hash style load balancer.
7034type ConsistentHashLoadBalancerSettings struct {
7035	// HttpCookie: Hash is based on HTTP Cookie. This field describes a HTTP
7036	// cookie that will be used as the hash key for the consistent hash load
7037	// balancer. If the cookie is not present, it will be generated. This
7038	// field is applicable if the sessionAffinity is set to HTTP_COOKIE.
7039	HttpCookie *ConsistentHashLoadBalancerSettingsHttpCookie `json:"httpCookie,omitempty"`
7040
7041	// HttpHeaderName: The hash based on the value of the specified header
7042	// field. This field is applicable if the sessionAffinity is set to
7043	// HEADER_FIELD.
7044	HttpHeaderName string `json:"httpHeaderName,omitempty"`
7045
7046	// MinimumRingSize: The minimum number of virtual nodes to use for the
7047	// hash ring. Defaults to 1024. Larger ring sizes result in more
7048	// granular load distributions. If the number of hosts in the load
7049	// balancing pool is larger than the ring size, each host will be
7050	// assigned a single virtual node.
7051	MinimumRingSize int64 `json:"minimumRingSize,omitempty,string"`
7052
7053	// ForceSendFields is a list of field names (e.g. "HttpCookie") to
7054	// unconditionally include in API requests. By default, fields with
7055	// empty values are omitted from API requests. However, any non-pointer,
7056	// non-interface field appearing in ForceSendFields will be sent to the
7057	// server regardless of whether the field is empty or not. This may be
7058	// used to include empty fields in Patch requests.
7059	ForceSendFields []string `json:"-"`
7060
7061	// NullFields is a list of field names (e.g. "HttpCookie") to include in
7062	// API requests with the JSON null value. By default, fields with empty
7063	// values are omitted from API requests. However, any field with an
7064	// empty value appearing in NullFields will be sent to the server as
7065	// null. It is an error if a field in this list has a non-empty value.
7066	// This may be used to include null fields in Patch requests.
7067	NullFields []string `json:"-"`
7068}
7069
7070func (s *ConsistentHashLoadBalancerSettings) MarshalJSON() ([]byte, error) {
7071	type NoMethod ConsistentHashLoadBalancerSettings
7072	raw := NoMethod(*s)
7073	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7074}
7075
7076// ConsistentHashLoadBalancerSettingsHttpCookie: The information about
7077// the HTTP Cookie on which the hash function is based for load
7078// balancing policies that use a consistent hash.
7079type ConsistentHashLoadBalancerSettingsHttpCookie struct {
7080	// Name: Name of the cookie.
7081	Name string `json:"name,omitempty"`
7082
7083	// Path: Path to set for the cookie.
7084	Path string `json:"path,omitempty"`
7085
7086	// Ttl: Lifetime of the cookie.
7087	Ttl *Duration `json:"ttl,omitempty"`
7088
7089	// ForceSendFields is a list of field names (e.g. "Name") to
7090	// unconditionally include in API requests. By default, fields with
7091	// empty values are omitted from API requests. However, any non-pointer,
7092	// non-interface field appearing in ForceSendFields will be sent to the
7093	// server regardless of whether the field is empty or not. This may be
7094	// used to include empty fields in Patch requests.
7095	ForceSendFields []string `json:"-"`
7096
7097	// NullFields is a list of field names (e.g. "Name") to include in API
7098	// requests with the JSON null value. By default, fields with empty
7099	// values are omitted from API requests. However, any field with an
7100	// empty value appearing in NullFields will be sent to the server as
7101	// null. It is an error if a field in this list has a non-empty value.
7102	// This may be used to include null fields in Patch requests.
7103	NullFields []string `json:"-"`
7104}
7105
7106func (s *ConsistentHashLoadBalancerSettingsHttpCookie) MarshalJSON() ([]byte, error) {
7107	type NoMethod ConsistentHashLoadBalancerSettingsHttpCookie
7108	raw := NoMethod(*s)
7109	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7110}
7111
7112// CorsPolicy: The specification for allowing client side cross-origin
7113// requests. Please see W3C Recommendation for Cross Origin Resource
7114// Sharing
7115type CorsPolicy struct {
7116	// AllowCredentials: In response to a preflight request, setting this to
7117	// true indicates that the actual request can include user credentials.
7118	// This translates to the Access-Control-Allow-Credentials
7119	// header.
7120	// Default is false.
7121	AllowCredentials bool `json:"allowCredentials,omitempty"`
7122
7123	// AllowHeaders: Specifies the content for the
7124	// Access-Control-Allow-Headers header.
7125	AllowHeaders []string `json:"allowHeaders,omitempty"`
7126
7127	// AllowMethods: Specifies the content for the
7128	// Access-Control-Allow-Methods header.
7129	AllowMethods []string `json:"allowMethods,omitempty"`
7130
7131	// AllowOriginRegexes: Specifies the regualar expression patterns that
7132	// match allowed origins. For regular expression grammar please see
7133	// en.cppreference.com/w/cpp/regex/ecmascript
7134	// An origin is allowed if it matches either allow_origins or
7135	// allow_origin_regex.
7136	AllowOriginRegexes []string `json:"allowOriginRegexes,omitempty"`
7137
7138	// AllowOrigins: Specifies the list of origins that will be allowed to
7139	// do CORS requests.
7140	// An origin is allowed if it matches either allow_origins or
7141	// allow_origin_regex.
7142	AllowOrigins []string `json:"allowOrigins,omitempty"`
7143
7144	// Disabled: If true, specifies the CORS policy is disabled. The default
7145	// value of false, which indicates that the CORS policy is in effect.
7146	Disabled bool `json:"disabled,omitempty"`
7147
7148	// ExposeHeaders: Specifies the content for the
7149	// Access-Control-Expose-Headers header.
7150	ExposeHeaders []string `json:"exposeHeaders,omitempty"`
7151
7152	// MaxAge: Specifies how long the results of a preflight request can be
7153	// cached. This translates to the content for the Access-Control-Max-Age
7154	// header.
7155	MaxAge int64 `json:"maxAge,omitempty"`
7156
7157	// ForceSendFields is a list of field names (e.g. "AllowCredentials") to
7158	// unconditionally include in API requests. By default, fields with
7159	// empty values are omitted from API requests. However, any non-pointer,
7160	// non-interface field appearing in ForceSendFields will be sent to the
7161	// server regardless of whether the field is empty or not. This may be
7162	// used to include empty fields in Patch requests.
7163	ForceSendFields []string `json:"-"`
7164
7165	// NullFields is a list of field names (e.g. "AllowCredentials") to
7166	// include in API requests with the JSON null value. By default, fields
7167	// with empty values are omitted from API requests. However, any field
7168	// with an empty value appearing in NullFields will be sent to the
7169	// server as null. It is an error if a field in this list has a
7170	// non-empty value. This may be used to include null fields in Patch
7171	// requests.
7172	NullFields []string `json:"-"`
7173}
7174
7175func (s *CorsPolicy) MarshalJSON() ([]byte, error) {
7176	type NoMethod CorsPolicy
7177	raw := NoMethod(*s)
7178	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7179}
7180
7181// CustomerEncryptionKey: Represents a customer-supplied encryption key
7182type CustomerEncryptionKey struct {
7183	// KmsKeyName: The name of the encryption key that is stored in Google
7184	// Cloud KMS.
7185	KmsKeyName string `json:"kmsKeyName,omitempty"`
7186
7187	// KmsKeyServiceAccount: The service account being used for the
7188	// encryption request for the given KMS key. If absent, the Compute
7189	// Engine default service account is used.
7190	KmsKeyServiceAccount string `json:"kmsKeyServiceAccount,omitempty"`
7191
7192	// RawKey: Specifies a 256-bit customer-supplied encryption key, encoded
7193	// in RFC 4648 base64 to either encrypt or decrypt this resource.
7194	RawKey string `json:"rawKey,omitempty"`
7195
7196	// RsaEncryptedKey: Specifies an RFC 4648 base64 encoded, RSA-wrapped
7197	// 2048-bit customer-supplied encryption key to either encrypt or
7198	// decrypt this resource.
7199	//
7200	// The key must meet the following requirements before you can provide
7201	// it to Compute Engine:
7202	// - The key is wrapped using a RSA public key certificate provided by
7203	// Google.
7204	// - After being wrapped, the key must be encoded in RFC 4648 base64
7205	// encoding.  Gets the RSA public key certificate provided by Google
7206	// at:
7207	// https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingre
7208	// ss.pem
7209	RsaEncryptedKey string `json:"rsaEncryptedKey,omitempty"`
7210
7211	// Sha256: [Output only] The RFC 4648 base64 encoded SHA-256 hash of the
7212	// customer-supplied encryption key that protects this resource.
7213	Sha256 string `json:"sha256,omitempty"`
7214
7215	// ForceSendFields is a list of field names (e.g. "KmsKeyName") to
7216	// unconditionally include in API requests. By default, fields with
7217	// empty values are omitted from API requests. However, any non-pointer,
7218	// non-interface field appearing in ForceSendFields will be sent to the
7219	// server regardless of whether the field is empty or not. This may be
7220	// used to include empty fields in Patch requests.
7221	ForceSendFields []string `json:"-"`
7222
7223	// NullFields is a list of field names (e.g. "KmsKeyName") to include in
7224	// API requests with the JSON null value. By default, fields with empty
7225	// values are omitted from API requests. However, any field with an
7226	// empty value appearing in NullFields will be sent to the server as
7227	// null. It is an error if a field in this list has a non-empty value.
7228	// This may be used to include null fields in Patch requests.
7229	NullFields []string `json:"-"`
7230}
7231
7232func (s *CustomerEncryptionKey) MarshalJSON() ([]byte, error) {
7233	type NoMethod CustomerEncryptionKey
7234	raw := NoMethod(*s)
7235	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7236}
7237
7238type CustomerEncryptionKeyProtectedDisk struct {
7239	// DiskEncryptionKey: Decrypts data associated with the disk with a
7240	// customer-supplied encryption key.
7241	DiskEncryptionKey *CustomerEncryptionKey `json:"diskEncryptionKey,omitempty"`
7242
7243	// Source: Specifies a valid partial or full URL to an existing
7244	// Persistent Disk resource. This field is only applicable for
7245	// persistent disks.
7246	Source string `json:"source,omitempty"`
7247
7248	// ForceSendFields is a list of field names (e.g. "DiskEncryptionKey")
7249	// to unconditionally include in API requests. By default, fields with
7250	// empty values are omitted from API requests. However, any non-pointer,
7251	// non-interface field appearing in ForceSendFields will be sent to the
7252	// server regardless of whether the field is empty or not. This may be
7253	// used to include empty fields in Patch requests.
7254	ForceSendFields []string `json:"-"`
7255
7256	// NullFields is a list of field names (e.g. "DiskEncryptionKey") to
7257	// include in API requests with the JSON null value. By default, fields
7258	// with empty values are omitted from API requests. However, any field
7259	// with an empty value appearing in NullFields will be sent to the
7260	// server as null. It is an error if a field in this list has a
7261	// non-empty value. This may be used to include null fields in Patch
7262	// requests.
7263	NullFields []string `json:"-"`
7264}
7265
7266func (s *CustomerEncryptionKeyProtectedDisk) MarshalJSON() ([]byte, error) {
7267	type NoMethod CustomerEncryptionKeyProtectedDisk
7268	raw := NoMethod(*s)
7269	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7270}
7271
7272// DeprecationStatus: Deprecation status for a public resource.
7273type DeprecationStatus struct {
7274	// Deleted: An optional RFC3339 timestamp on or after which the state of
7275	// this resource is intended to change to DELETED. This is only
7276	// informational and the status will not change unless the client
7277	// explicitly changes it.
7278	Deleted string `json:"deleted,omitempty"`
7279
7280	// Deprecated: An optional RFC3339 timestamp on or after which the state
7281	// of this resource is intended to change to DEPRECATED. This is only
7282	// informational and the status will not change unless the client
7283	// explicitly changes it.
7284	Deprecated string `json:"deprecated,omitempty"`
7285
7286	// Obsolete: An optional RFC3339 timestamp on or after which the state
7287	// of this resource is intended to change to OBSOLETE. This is only
7288	// informational and the status will not change unless the client
7289	// explicitly changes it.
7290	Obsolete string `json:"obsolete,omitempty"`
7291
7292	// Replacement: The URL of the suggested replacement for a deprecated
7293	// resource. The suggested replacement resource must be the same kind of
7294	// resource as the deprecated resource.
7295	Replacement string `json:"replacement,omitempty"`
7296
7297	// State: The deprecation state of this resource. This can be ACTIVE,
7298	// DEPRECATED, OBSOLETE, or DELETED. Operations which communicate the
7299	// end of life date for an image, can use ACTIVE. Operations which
7300	// create a new resource using a DEPRECATED resource will return
7301	// successfully, but with a warning indicating the deprecated resource
7302	// and recommending its replacement. Operations which use OBSOLETE or
7303	// DELETED resources will be rejected and result in an error.
7304	//
7305	// Possible values:
7306	//   "ACTIVE"
7307	//   "DELETED"
7308	//   "DEPRECATED"
7309	//   "OBSOLETE"
7310	State string `json:"state,omitempty"`
7311
7312	// ForceSendFields is a list of field names (e.g. "Deleted") to
7313	// unconditionally include in API requests. By default, fields with
7314	// empty values are omitted from API requests. However, any non-pointer,
7315	// non-interface field appearing in ForceSendFields will be sent to the
7316	// server regardless of whether the field is empty or not. This may be
7317	// used to include empty fields in Patch requests.
7318	ForceSendFields []string `json:"-"`
7319
7320	// NullFields is a list of field names (e.g. "Deleted") to include in
7321	// API requests with the JSON null value. By default, fields with empty
7322	// values are omitted from API requests. However, any field with an
7323	// empty value appearing in NullFields will be sent to the server as
7324	// null. It is an error if a field in this list has a non-empty value.
7325	// This may be used to include null fields in Patch requests.
7326	NullFields []string `json:"-"`
7327}
7328
7329func (s *DeprecationStatus) MarshalJSON() ([]byte, error) {
7330	type NoMethod DeprecationStatus
7331	raw := NoMethod(*s)
7332	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7333}
7334
7335// Disk: Represents a Persistent Disk resource.
7336//
7337// Persistent disks are required for running your VM instances. Create
7338// both boot and non-boot (data) persistent disks. For more information,
7339// read Persistent Disks. For more storage options, read Storage
7340// options.
7341//
7342// The disks resource represents a zonal persistent disk. For more
7343// information, read Zonal persistent disks.
7344//
7345// The regionDisks resource represents a regional persistent disk. For
7346// more information, read  Regional resources. (== resource_for
7347// beta.disks ==) (== resource_for v1.disks ==) (== resource_for
7348// v1.regionDisks ==) (== resource_for beta.regionDisks ==)
7349type Disk struct {
7350	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
7351	// format.
7352	CreationTimestamp string `json:"creationTimestamp,omitempty"`
7353
7354	// Description: An optional description of this resource. Provide this
7355	// property when you create the resource.
7356	Description string `json:"description,omitempty"`
7357
7358	// DiskEncryptionKey: Encrypts the disk using a customer-supplied
7359	// encryption key.
7360	//
7361	// After you encrypt a disk with a customer-supplied key, you must
7362	// provide the same key if you use the disk later (e.g. to create a disk
7363	// snapshot, to create a disk image, to create a machine image, or to
7364	// attach the disk to a virtual machine).
7365	//
7366	// Customer-supplied encryption keys do not protect access to metadata
7367	// of the disk.
7368	//
7369	// If you do not provide an encryption key when creating the disk, then
7370	// the disk will be encrypted using an automatically generated key and
7371	// you do not need to provide a key to use the disk later.
7372	DiskEncryptionKey *CustomerEncryptionKey `json:"diskEncryptionKey,omitempty"`
7373
7374	// EraseWindowsVssSignature: Specifies whether the disk restored from a
7375	// source snapshot should erase Windows specific VSS signature.
7376	EraseWindowsVssSignature bool `json:"eraseWindowsVssSignature,omitempty"`
7377
7378	// GuestOsFeatures: A list of features to enable on the guest operating
7379	// system. Applicable only for bootable images. Read  Enabling guest
7380	// operating system features to see a list of available options.
7381	GuestOsFeatures []*GuestOsFeature `json:"guestOsFeatures,omitempty"`
7382
7383	// Id: [Output Only] The unique identifier for the resource. This
7384	// identifier is defined by the server.
7385	Id uint64 `json:"id,omitempty,string"`
7386
7387	// Kind: [Output Only] Type of the resource. Always compute#disk for
7388	// disks.
7389	Kind string `json:"kind,omitempty"`
7390
7391	// LabelFingerprint: A fingerprint for the labels being applied to this
7392	// disk, which is essentially a hash of the labels set used for
7393	// optimistic locking. The fingerprint is initially generated by Compute
7394	// Engine and changes after every request to modify or update labels.
7395	// You must always provide an up-to-date fingerprint hash in order to
7396	// update or change labels, otherwise the request will fail with error
7397	// 412 conditionNotMet.
7398	//
7399	// To see the latest fingerprint, make a get() request to retrieve a
7400	// disk.
7401	LabelFingerprint string `json:"labelFingerprint,omitempty"`
7402
7403	// Labels: Labels to apply to this disk. These can be later modified by
7404	// the setLabels method.
7405	Labels map[string]string `json:"labels,omitempty"`
7406
7407	// LastAttachTimestamp: [Output Only] Last attach timestamp in RFC3339
7408	// text format.
7409	LastAttachTimestamp string `json:"lastAttachTimestamp,omitempty"`
7410
7411	// LastDetachTimestamp: [Output Only] Last detach timestamp in RFC3339
7412	// text format.
7413	LastDetachTimestamp string `json:"lastDetachTimestamp,omitempty"`
7414
7415	// LicenseCodes: Integer license codes indicating which licenses are
7416	// attached to this disk.
7417	LicenseCodes googleapi.Int64s `json:"licenseCodes,omitempty"`
7418
7419	// Licenses: A list of publicly visible licenses. Reserved for Google's
7420	// use.
7421	Licenses []string `json:"licenses,omitempty"`
7422
7423	// MultiWriter: Indicates whether or not the disk can be read/write
7424	// attached to more than one instance.
7425	MultiWriter bool `json:"multiWriter,omitempty"`
7426
7427	// Name: Name of the resource. Provided by the client when the resource
7428	// is created. The name must be 1-63 characters long, and comply with
7429	// RFC1035. Specifically, the name must be 1-63 characters long and
7430	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
7431	// the first character must be a lowercase letter, and all following
7432	// characters must be a dash, lowercase letter, or digit, except the
7433	// last character, which cannot be a dash.
7434	Name string `json:"name,omitempty"`
7435
7436	// Options: Internal use only.
7437	Options string `json:"options,omitempty"`
7438
7439	// PhysicalBlockSizeBytes: Physical block size of the persistent disk,
7440	// in bytes. If not present in a request, a default value is used.
7441	// Currently supported sizes are 4096 and 16384, other sizes may be
7442	// added in the future. If an unsupported value is requested, the error
7443	// message will list the supported values for the caller's project.
7444	PhysicalBlockSizeBytes int64 `json:"physicalBlockSizeBytes,omitempty,string"`
7445
7446	// Region: [Output Only] URL of the region where the disk resides. Only
7447	// applicable for regional resources. You must specify this field as
7448	// part of the HTTP request URL. It is not settable as a field in the
7449	// request body.
7450	Region string `json:"region,omitempty"`
7451
7452	// ReplicaZones: URLs of the zones where the disk should be replicated
7453	// to. Only applicable for regional resources.
7454	ReplicaZones []string `json:"replicaZones,omitempty"`
7455
7456	// ResourcePolicies: Resource policies applied to this disk for
7457	// automatic snapshot creations.
7458	ResourcePolicies []string `json:"resourcePolicies,omitempty"`
7459
7460	// SelfLink: [Output Only] Server-defined fully-qualified URL for this
7461	// resource.
7462	SelfLink string `json:"selfLink,omitempty"`
7463
7464	// SelfLinkWithId: [Output Only] Server-defined URL for this resource's
7465	// resource id.
7466	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
7467
7468	// SizeGb: Size of the persistent disk, specified in GB. You can specify
7469	// this field when creating a persistent disk using the sourceImage or
7470	// sourceSnapshot parameter, or specify it alone to create an empty
7471	// persistent disk.
7472	//
7473	// If you specify this field along with sourceImage or sourceSnapshot,
7474	// the value of sizeGb must not be less than the size of the sourceImage
7475	// or the size of the snapshot. Acceptable values are 1 to 65536,
7476	// inclusive.
7477	SizeGb int64 `json:"sizeGb,omitempty,string"`
7478
7479	// SourceDisk: The source disk used to create this disk. You can provide
7480	// this as a partial or full URL to the resource. For example, the
7481	// following are valid values:
7482	// -
7483	// https://www.googleapis.com/compute/v1/projects/project/zones/zone/disks/disk
7484	// - projects/project/zones/zone/disks/disk
7485	// - zones/zone/disks/disk
7486	SourceDisk string `json:"sourceDisk,omitempty"`
7487
7488	// SourceDiskId: [Output Only] The unique ID of the disk used to create
7489	// this disk. This value identifies the exact disk that was used to
7490	// create this persistent disk. For example, if you created the
7491	// persistent disk from a disk that was later deleted and recreated
7492	// under the same name, the source disk ID would identify the exact
7493	// version of the disk that was used.
7494	SourceDiskId string `json:"sourceDiskId,omitempty"`
7495
7496	// SourceImage: The source image used to create this disk. If the source
7497	// image is deleted, this field will not be set.
7498	//
7499	// To create a disk with one of the public operating system images,
7500	// specify the image by its family name. For example, specify
7501	// family/debian-9 to use the latest Debian 9
7502	// image:
7503	// projects/debian-cloud/global/images/family/debian-9
7504	//
7505	//
7506	// Alternati
7507	// vely, use a specific version of a public operating system
7508	// image:
7509	// projects/debian-cloud/global/images/debian-9-stretch-vYYYYMMDD
7510	//
7511	//
7512	//
7513	// To create a disk with a custom image that you created, specify the
7514	// image name in the following
7515	// format:
7516	// global/images/my-custom-image
7517	//
7518	//
7519	// You can also specify a custom image by its image family, which
7520	// returns the latest version of the image in that family. Replace the
7521	// image name with
7522	// family/family-name:
7523	// global/images/family/my-image-family
7524	SourceImage string `json:"sourceImage,omitempty"`
7525
7526	// SourceImageEncryptionKey: The customer-supplied encryption key of the
7527	// source image. Required if the source image is protected by a
7528	// customer-supplied encryption key.
7529	SourceImageEncryptionKey *CustomerEncryptionKey `json:"sourceImageEncryptionKey,omitempty"`
7530
7531	// SourceImageId: [Output Only] The ID value of the image used to create
7532	// this disk. This value identifies the exact image that was used to
7533	// create this persistent disk. For example, if you created the
7534	// persistent disk from an image that was later deleted and recreated
7535	// under the same name, the source image ID would identify the exact
7536	// version of the image that was used.
7537	SourceImageId string `json:"sourceImageId,omitempty"`
7538
7539	// SourceSnapshot: The source snapshot used to create this disk. You can
7540	// provide this as a partial or full URL to the resource. For example,
7541	// the following are valid values:
7542	// -
7543	// https://www.googleapis.com/compute/v1/projects/project/global/snapshots/snapshot
7544	// - projects/project/global/snapshots/snapshot
7545	// - global/snapshots/snapshot
7546	SourceSnapshot string `json:"sourceSnapshot,omitempty"`
7547
7548	// SourceSnapshotEncryptionKey: The customer-supplied encryption key of
7549	// the source snapshot. Required if the source snapshot is protected by
7550	// a customer-supplied encryption key.
7551	SourceSnapshotEncryptionKey *CustomerEncryptionKey `json:"sourceSnapshotEncryptionKey,omitempty"`
7552
7553	// SourceSnapshotId: [Output Only] The unique ID of the snapshot used to
7554	// create this disk. This value identifies the exact snapshot that was
7555	// used to create this persistent disk. For example, if you created the
7556	// persistent disk from a snapshot that was later deleted and recreated
7557	// under the same name, the source snapshot ID would identify the exact
7558	// version of the snapshot that was used.
7559	SourceSnapshotId string `json:"sourceSnapshotId,omitempty"`
7560
7561	// Status: [Output Only] The status of disk creation. CREATING: Disk is
7562	// provisioning. RESTORING: Source data is being copied into the disk.
7563	// FAILED: Disk creation failed. READY: Disk is ready for use. DELETING:
7564	// Disk is deleting.
7565	//
7566	// Possible values:
7567	//   "CREATING"
7568	//   "DELETING"
7569	//   "FAILED"
7570	//   "READY"
7571	//   "RESTORING"
7572	Status string `json:"status,omitempty"`
7573
7574	// StorageType: [Deprecated] Storage type of the persistent disk.
7575	//
7576	// Possible values:
7577	//   "HDD"
7578	//   "SSD"
7579	StorageType string `json:"storageType,omitempty"`
7580
7581	// Type: URL of the disk type resource describing which disk type to use
7582	// to create the disk. Provide this when creating the disk. For example:
7583	// projects/project/zones/zone/diskTypes/pd-standard or pd-ssd
7584	Type string `json:"type,omitempty"`
7585
7586	// Users: [Output Only] Links to the users of the disk (attached
7587	// instances) in form: projects/project/zones/zone/instances/instance
7588	Users []string `json:"users,omitempty"`
7589
7590	// Zone: [Output Only] URL of the zone where the disk resides. You must
7591	// specify this field as part of the HTTP request URL. It is not
7592	// settable as a field in the request body.
7593	Zone string `json:"zone,omitempty"`
7594
7595	// ServerResponse contains the HTTP response code and headers from the
7596	// server.
7597	googleapi.ServerResponse `json:"-"`
7598
7599	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
7600	// to unconditionally include in API requests. By default, fields with
7601	// empty values are omitted from API requests. However, any non-pointer,
7602	// non-interface field appearing in ForceSendFields will be sent to the
7603	// server regardless of whether the field is empty or not. This may be
7604	// used to include empty fields in Patch requests.
7605	ForceSendFields []string `json:"-"`
7606
7607	// NullFields is a list of field names (e.g. "CreationTimestamp") to
7608	// include in API requests with the JSON null value. By default, fields
7609	// with empty values are omitted from API requests. However, any field
7610	// with an empty value appearing in NullFields will be sent to the
7611	// server as null. It is an error if a field in this list has a
7612	// non-empty value. This may be used to include null fields in Patch
7613	// requests.
7614	NullFields []string `json:"-"`
7615}
7616
7617func (s *Disk) MarshalJSON() ([]byte, error) {
7618	type NoMethod Disk
7619	raw := NoMethod(*s)
7620	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7621}
7622
7623type DiskAggregatedList struct {
7624	// Id: [Output Only] Unique identifier for the resource; defined by the
7625	// server.
7626	Id string `json:"id,omitempty"`
7627
7628	// Items: A list of DisksScopedList resources.
7629	Items map[string]DisksScopedList `json:"items,omitempty"`
7630
7631	// Kind: [Output Only] Type of resource. Always
7632	// compute#diskAggregatedList for aggregated lists of persistent disks.
7633	Kind string `json:"kind,omitempty"`
7634
7635	// NextPageToken: [Output Only] This token allows you to get the next
7636	// page of results for list requests. If the number of results is larger
7637	// than maxResults, use the nextPageToken as a value for the query
7638	// parameter pageToken in the next list request. Subsequent list
7639	// requests will have their own nextPageToken to continue paging through
7640	// the results.
7641	NextPageToken string `json:"nextPageToken,omitempty"`
7642
7643	// SelfLink: [Output Only] Server-defined URL for this resource.
7644	SelfLink string `json:"selfLink,omitempty"`
7645
7646	// Warning: [Output Only] Informational warning message.
7647	Warning *DiskAggregatedListWarning `json:"warning,omitempty"`
7648
7649	// ServerResponse contains the HTTP response code and headers from the
7650	// server.
7651	googleapi.ServerResponse `json:"-"`
7652
7653	// ForceSendFields is a list of field names (e.g. "Id") to
7654	// unconditionally include in API requests. By default, fields with
7655	// empty values are omitted from API requests. However, any non-pointer,
7656	// non-interface field appearing in ForceSendFields will be sent to the
7657	// server regardless of whether the field is empty or not. This may be
7658	// used to include empty fields in Patch requests.
7659	ForceSendFields []string `json:"-"`
7660
7661	// NullFields is a list of field names (e.g. "Id") to include in API
7662	// requests with the JSON null value. By default, fields with empty
7663	// values are omitted from API requests. However, any field with an
7664	// empty value appearing in NullFields will be sent to the server as
7665	// null. It is an error if a field in this list has a non-empty value.
7666	// This may be used to include null fields in Patch requests.
7667	NullFields []string `json:"-"`
7668}
7669
7670func (s *DiskAggregatedList) MarshalJSON() ([]byte, error) {
7671	type NoMethod DiskAggregatedList
7672	raw := NoMethod(*s)
7673	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7674}
7675
7676// DiskAggregatedListWarning: [Output Only] Informational warning
7677// message.
7678type DiskAggregatedListWarning struct {
7679	// Code: [Output Only] A warning code, if applicable. For example,
7680	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
7681	// the response.
7682	//
7683	// Possible values:
7684	//   "CLEANUP_FAILED"
7685	//   "DEPRECATED_RESOURCE_USED"
7686	//   "DEPRECATED_TYPE_USED"
7687	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
7688	//   "EXPERIMENTAL_TYPE_USED"
7689	//   "EXTERNAL_API_WARNING"
7690	//   "FIELD_VALUE_OVERRIDEN"
7691	//   "INJECTED_KERNELS_DEPRECATED"
7692	//   "MISSING_TYPE_DEPENDENCY"
7693	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
7694	//   "NEXT_HOP_CANNOT_IP_FORWARD"
7695	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
7696	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
7697	//   "NEXT_HOP_NOT_RUNNING"
7698	//   "NOT_CRITICAL_ERROR"
7699	//   "NO_RESULTS_ON_PAGE"
7700	//   "REQUIRED_TOS_AGREEMENT"
7701	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
7702	//   "RESOURCE_NOT_DELETED"
7703	//   "SCHEMA_VALIDATION_IGNORED"
7704	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
7705	//   "UNDECLARED_PROPERTIES"
7706	//   "UNREACHABLE"
7707	Code string `json:"code,omitempty"`
7708
7709	// Data: [Output Only] Metadata about this warning in key: value format.
7710	// For example:
7711	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
7712	Data []*DiskAggregatedListWarningData `json:"data,omitempty"`
7713
7714	// Message: [Output Only] A human-readable description of the warning
7715	// code.
7716	Message string `json:"message,omitempty"`
7717
7718	// ForceSendFields is a list of field names (e.g. "Code") to
7719	// unconditionally include in API requests. By default, fields with
7720	// empty values are omitted from API requests. However, any non-pointer,
7721	// non-interface field appearing in ForceSendFields will be sent to the
7722	// server regardless of whether the field is empty or not. This may be
7723	// used to include empty fields in Patch requests.
7724	ForceSendFields []string `json:"-"`
7725
7726	// NullFields is a list of field names (e.g. "Code") to include in API
7727	// requests with the JSON null value. By default, fields with empty
7728	// values are omitted from API requests. However, any field with an
7729	// empty value appearing in NullFields will be sent to the server as
7730	// null. It is an error if a field in this list has a non-empty value.
7731	// This may be used to include null fields in Patch requests.
7732	NullFields []string `json:"-"`
7733}
7734
7735func (s *DiskAggregatedListWarning) MarshalJSON() ([]byte, error) {
7736	type NoMethod DiskAggregatedListWarning
7737	raw := NoMethod(*s)
7738	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7739}
7740
7741type DiskAggregatedListWarningData struct {
7742	// Key: [Output Only] A key that provides more detail on the warning
7743	// being returned. For example, for warnings where there are no results
7744	// in a list request for a particular zone, this key might be scope and
7745	// the key value might be the zone name. Other examples might be a key
7746	// indicating a deprecated resource and a suggested replacement, or a
7747	// warning about invalid network settings (for example, if an instance
7748	// attempts to perform IP forwarding but is not enabled for IP
7749	// forwarding).
7750	Key string `json:"key,omitempty"`
7751
7752	// Value: [Output Only] A warning data value corresponding to the key.
7753	Value string `json:"value,omitempty"`
7754
7755	// ForceSendFields is a list of field names (e.g. "Key") to
7756	// unconditionally include in API requests. By default, fields with
7757	// empty values are omitted from API requests. However, any non-pointer,
7758	// non-interface field appearing in ForceSendFields will be sent to the
7759	// server regardless of whether the field is empty or not. This may be
7760	// used to include empty fields in Patch requests.
7761	ForceSendFields []string `json:"-"`
7762
7763	// NullFields is a list of field names (e.g. "Key") to include in API
7764	// requests with the JSON null value. By default, fields with empty
7765	// values are omitted from API requests. However, any field with an
7766	// empty value appearing in NullFields will be sent to the server as
7767	// null. It is an error if a field in this list has a non-empty value.
7768	// This may be used to include null fields in Patch requests.
7769	NullFields []string `json:"-"`
7770}
7771
7772func (s *DiskAggregatedListWarningData) MarshalJSON() ([]byte, error) {
7773	type NoMethod DiskAggregatedListWarningData
7774	raw := NoMethod(*s)
7775	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7776}
7777
7778// DiskInstantiationConfig: A specification of the desired way to
7779// instantiate a disk in the instance template when its created from a
7780// source instance.
7781type DiskInstantiationConfig struct {
7782	// AutoDelete: Specifies whether the disk will be auto-deleted when the
7783	// instance is deleted (but not when the disk is detached from the
7784	// instance).
7785	AutoDelete bool `json:"autoDelete,omitempty"`
7786
7787	// CustomImage: The custom source image to be used to restore this disk
7788	// when instantiating this instance template.
7789	CustomImage string `json:"customImage,omitempty"`
7790
7791	// DeviceName: Specifies the device name of the disk to which the
7792	// configurations apply to.
7793	DeviceName string `json:"deviceName,omitempty"`
7794
7795	// InstantiateFrom: Specifies whether to include the disk and what image
7796	// to use. Possible values are:
7797	// - source-image: to use the same image that was used to create the
7798	// source instance's corresponding disk. Applicable to the boot disk and
7799	// additional read-write disks.
7800	// - source-image-family: to use the same image family that was used to
7801	// create the source instance's corresponding disk. Applicable to the
7802	// boot disk and additional read-write disks.
7803	// - custom-image: to use a user-provided image url for disk creation.
7804	// Applicable to the boot disk and additional read-write disks.
7805	// - attach-read-only: to attach a read-only disk. Applicable to
7806	// read-only disks.
7807	// - do-not-include: to exclude a disk from the template. Applicable to
7808	// additional read-write disks, local SSDs, and read-only disks.
7809	//
7810	// Possible values:
7811	//   "ATTACH_READ_ONLY"
7812	//   "BLANK"
7813	//   "CUSTOM_IMAGE"
7814	//   "DEFAULT"
7815	//   "DO_NOT_INCLUDE"
7816	//   "SOURCE_IMAGE"
7817	//   "SOURCE_IMAGE_FAMILY"
7818	InstantiateFrom string `json:"instantiateFrom,omitempty"`
7819
7820	// ForceSendFields is a list of field names (e.g. "AutoDelete") to
7821	// unconditionally include in API requests. By default, fields with
7822	// empty values are omitted from API requests. However, any non-pointer,
7823	// non-interface field appearing in ForceSendFields will be sent to the
7824	// server regardless of whether the field is empty or not. This may be
7825	// used to include empty fields in Patch requests.
7826	ForceSendFields []string `json:"-"`
7827
7828	// NullFields is a list of field names (e.g. "AutoDelete") to include in
7829	// API requests with the JSON null value. By default, fields with empty
7830	// values are omitted from API requests. However, any field with an
7831	// empty value appearing in NullFields will be sent to the server as
7832	// null. It is an error if a field in this list has a non-empty value.
7833	// This may be used to include null fields in Patch requests.
7834	NullFields []string `json:"-"`
7835}
7836
7837func (s *DiskInstantiationConfig) MarshalJSON() ([]byte, error) {
7838	type NoMethod DiskInstantiationConfig
7839	raw := NoMethod(*s)
7840	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7841}
7842
7843// DiskList: A list of Disk resources.
7844type DiskList struct {
7845	// Id: [Output Only] Unique identifier for the resource; defined by the
7846	// server.
7847	Id string `json:"id,omitempty"`
7848
7849	// Items: A list of Disk resources.
7850	Items []*Disk `json:"items,omitempty"`
7851
7852	// Kind: [Output Only] Type of resource. Always compute#diskList for
7853	// lists of disks.
7854	Kind string `json:"kind,omitempty"`
7855
7856	// NextPageToken: [Output Only] This token allows you to get the next
7857	// page of results for list requests. If the number of results is larger
7858	// than maxResults, use the nextPageToken as a value for the query
7859	// parameter pageToken in the next list request. Subsequent list
7860	// requests will have their own nextPageToken to continue paging through
7861	// the results.
7862	NextPageToken string `json:"nextPageToken,omitempty"`
7863
7864	// SelfLink: [Output Only] Server-defined URL for this resource.
7865	SelfLink string `json:"selfLink,omitempty"`
7866
7867	// Warning: [Output Only] Informational warning message.
7868	Warning *DiskListWarning `json:"warning,omitempty"`
7869
7870	// ServerResponse contains the HTTP response code and headers from the
7871	// server.
7872	googleapi.ServerResponse `json:"-"`
7873
7874	// ForceSendFields is a list of field names (e.g. "Id") to
7875	// unconditionally include in API requests. By default, fields with
7876	// empty values are omitted from API requests. However, any non-pointer,
7877	// non-interface field appearing in ForceSendFields will be sent to the
7878	// server regardless of whether the field is empty or not. This may be
7879	// used to include empty fields in Patch requests.
7880	ForceSendFields []string `json:"-"`
7881
7882	// NullFields is a list of field names (e.g. "Id") to include in API
7883	// requests with the JSON null value. By default, fields with empty
7884	// values are omitted from API requests. However, any field with an
7885	// empty value appearing in NullFields will be sent to the server as
7886	// null. It is an error if a field in this list has a non-empty value.
7887	// This may be used to include null fields in Patch requests.
7888	NullFields []string `json:"-"`
7889}
7890
7891func (s *DiskList) MarshalJSON() ([]byte, error) {
7892	type NoMethod DiskList
7893	raw := NoMethod(*s)
7894	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7895}
7896
7897// DiskListWarning: [Output Only] Informational warning message.
7898type DiskListWarning struct {
7899	// Code: [Output Only] A warning code, if applicable. For example,
7900	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
7901	// the response.
7902	//
7903	// Possible values:
7904	//   "CLEANUP_FAILED"
7905	//   "DEPRECATED_RESOURCE_USED"
7906	//   "DEPRECATED_TYPE_USED"
7907	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
7908	//   "EXPERIMENTAL_TYPE_USED"
7909	//   "EXTERNAL_API_WARNING"
7910	//   "FIELD_VALUE_OVERRIDEN"
7911	//   "INJECTED_KERNELS_DEPRECATED"
7912	//   "MISSING_TYPE_DEPENDENCY"
7913	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
7914	//   "NEXT_HOP_CANNOT_IP_FORWARD"
7915	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
7916	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
7917	//   "NEXT_HOP_NOT_RUNNING"
7918	//   "NOT_CRITICAL_ERROR"
7919	//   "NO_RESULTS_ON_PAGE"
7920	//   "REQUIRED_TOS_AGREEMENT"
7921	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
7922	//   "RESOURCE_NOT_DELETED"
7923	//   "SCHEMA_VALIDATION_IGNORED"
7924	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
7925	//   "UNDECLARED_PROPERTIES"
7926	//   "UNREACHABLE"
7927	Code string `json:"code,omitempty"`
7928
7929	// Data: [Output Only] Metadata about this warning in key: value format.
7930	// For example:
7931	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
7932	Data []*DiskListWarningData `json:"data,omitempty"`
7933
7934	// Message: [Output Only] A human-readable description of the warning
7935	// code.
7936	Message string `json:"message,omitempty"`
7937
7938	// ForceSendFields is a list of field names (e.g. "Code") to
7939	// unconditionally include in API requests. By default, fields with
7940	// empty values are omitted from API requests. However, any non-pointer,
7941	// non-interface field appearing in ForceSendFields will be sent to the
7942	// server regardless of whether the field is empty or not. This may be
7943	// used to include empty fields in Patch requests.
7944	ForceSendFields []string `json:"-"`
7945
7946	// NullFields is a list of field names (e.g. "Code") to include in API
7947	// requests with the JSON null value. By default, fields with empty
7948	// values are omitted from API requests. However, any field with an
7949	// empty value appearing in NullFields will be sent to the server as
7950	// null. It is an error if a field in this list has a non-empty value.
7951	// This may be used to include null fields in Patch requests.
7952	NullFields []string `json:"-"`
7953}
7954
7955func (s *DiskListWarning) MarshalJSON() ([]byte, error) {
7956	type NoMethod DiskListWarning
7957	raw := NoMethod(*s)
7958	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7959}
7960
7961type DiskListWarningData struct {
7962	// Key: [Output Only] A key that provides more detail on the warning
7963	// being returned. For example, for warnings where there are no results
7964	// in a list request for a particular zone, this key might be scope and
7965	// the key value might be the zone name. Other examples might be a key
7966	// indicating a deprecated resource and a suggested replacement, or a
7967	// warning about invalid network settings (for example, if an instance
7968	// attempts to perform IP forwarding but is not enabled for IP
7969	// forwarding).
7970	Key string `json:"key,omitempty"`
7971
7972	// Value: [Output Only] A warning data value corresponding to the key.
7973	Value string `json:"value,omitempty"`
7974
7975	// ForceSendFields is a list of field names (e.g. "Key") to
7976	// unconditionally include in API requests. By default, fields with
7977	// empty values are omitted from API requests. However, any non-pointer,
7978	// non-interface field appearing in ForceSendFields will be sent to the
7979	// server regardless of whether the field is empty or not. This may be
7980	// used to include empty fields in Patch requests.
7981	ForceSendFields []string `json:"-"`
7982
7983	// NullFields is a list of field names (e.g. "Key") to include in API
7984	// requests with the JSON null value. By default, fields with empty
7985	// values are omitted from API requests. However, any field with an
7986	// empty value appearing in NullFields will be sent to the server as
7987	// null. It is an error if a field in this list has a non-empty value.
7988	// This may be used to include null fields in Patch requests.
7989	NullFields []string `json:"-"`
7990}
7991
7992func (s *DiskListWarningData) MarshalJSON() ([]byte, error) {
7993	type NoMethod DiskListWarningData
7994	raw := NoMethod(*s)
7995	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7996}
7997
7998type DiskMoveRequest struct {
7999	// DestinationZone: The URL of the destination zone to move the disk.
8000	// This can be a full or partial URL. For example, the following are all
8001	// valid URLs to a zone:
8002	// - https://www.googleapis.com/compute/v1/projects/project/zones/zone
8003	//
8004	// - projects/project/zones/zone
8005	// - zones/zone
8006	DestinationZone string `json:"destinationZone,omitempty"`
8007
8008	// TargetDisk: The URL of the target disk to move. This can be a full or
8009	// partial URL. For example, the following are all valid URLs to a disk:
8010	//
8011	// -
8012	// https://www.googleapis.com/compute/v1/projects/project/zones/zone/disks/disk
8013	// - projects/project/zones/zone/disks/disk
8014	// - zones/zone/disks/disk
8015	TargetDisk string `json:"targetDisk,omitempty"`
8016
8017	// ForceSendFields is a list of field names (e.g. "DestinationZone") to
8018	// unconditionally include in API requests. By default, fields with
8019	// empty values are omitted from API requests. However, any non-pointer,
8020	// non-interface field appearing in ForceSendFields will be sent to the
8021	// server regardless of whether the field is empty or not. This may be
8022	// used to include empty fields in Patch requests.
8023	ForceSendFields []string `json:"-"`
8024
8025	// NullFields is a list of field names (e.g. "DestinationZone") to
8026	// include in API requests with the JSON null value. By default, fields
8027	// with empty values are omitted from API requests. However, any field
8028	// with an empty value appearing in NullFields will be sent to the
8029	// server as null. It is an error if a field in this list has a
8030	// non-empty value. This may be used to include null fields in Patch
8031	// requests.
8032	NullFields []string `json:"-"`
8033}
8034
8035func (s *DiskMoveRequest) MarshalJSON() ([]byte, error) {
8036	type NoMethod DiskMoveRequest
8037	raw := NoMethod(*s)
8038	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8039}
8040
8041// DiskType: Represents a Disk Type resource.
8042//
8043// You can choose from a variety of disk types based on your needs. For
8044// more information, read Storage options.
8045//
8046// The diskTypes resource represents disk types for a zonal persistent
8047// disk. For more information, read Zonal persistent disks.
8048//
8049// The regionDiskTypes resource represents disk types for a regional
8050// persistent disk. For more information, read Regional persistent
8051// disks. (== resource_for beta.diskTypes ==) (== resource_for
8052// v1.diskTypes ==) (== resource_for v1.regionDiskTypes ==) (==
8053// resource_for beta.regionDiskTypes ==)
8054type DiskType struct {
8055	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
8056	// format.
8057	CreationTimestamp string `json:"creationTimestamp,omitempty"`
8058
8059	// DefaultDiskSizeGb: [Output Only] Server-defined default disk size in
8060	// GB.
8061	DefaultDiskSizeGb int64 `json:"defaultDiskSizeGb,omitempty,string"`
8062
8063	// Deprecated: [Output Only] The deprecation status associated with this
8064	// disk type.
8065	Deprecated *DeprecationStatus `json:"deprecated,omitempty"`
8066
8067	// Description: [Output Only] An optional description of this resource.
8068	Description string `json:"description,omitempty"`
8069
8070	// Id: [Output Only] The unique identifier for the resource. This
8071	// identifier is defined by the server.
8072	Id uint64 `json:"id,omitempty,string"`
8073
8074	// Kind: [Output Only] Type of the resource. Always compute#diskType for
8075	// disk types.
8076	Kind string `json:"kind,omitempty"`
8077
8078	// Name: [Output Only] Name of the resource.
8079	Name string `json:"name,omitempty"`
8080
8081	// Region: [Output Only] URL of the region where the disk type resides.
8082	// Only applicable for regional resources. You must specify this field
8083	// as part of the HTTP request URL. It is not settable as a field in the
8084	// request body.
8085	Region string `json:"region,omitempty"`
8086
8087	// SelfLink: [Output Only] Server-defined URL for the resource.
8088	SelfLink string `json:"selfLink,omitempty"`
8089
8090	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
8091	// with the resource id.
8092	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
8093
8094	// ValidDiskSize: [Output Only] An optional textual description of the
8095	// valid disk size, such as "10GB-10TB".
8096	ValidDiskSize string `json:"validDiskSize,omitempty"`
8097
8098	// Zone: [Output Only] URL of the zone where the disk type resides. You
8099	// must specify this field as part of the HTTP request URL. It is not
8100	// settable as a field in the request body.
8101	Zone string `json:"zone,omitempty"`
8102
8103	// ServerResponse contains the HTTP response code and headers from the
8104	// server.
8105	googleapi.ServerResponse `json:"-"`
8106
8107	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
8108	// to unconditionally include in API requests. By default, fields with
8109	// empty values are omitted from API requests. However, any non-pointer,
8110	// non-interface field appearing in ForceSendFields will be sent to the
8111	// server regardless of whether the field is empty or not. This may be
8112	// used to include empty fields in Patch requests.
8113	ForceSendFields []string `json:"-"`
8114
8115	// NullFields is a list of field names (e.g. "CreationTimestamp") to
8116	// include in API requests with the JSON null value. By default, fields
8117	// with empty values are omitted from API requests. However, any field
8118	// with an empty value appearing in NullFields will be sent to the
8119	// server as null. It is an error if a field in this list has a
8120	// non-empty value. This may be used to include null fields in Patch
8121	// requests.
8122	NullFields []string `json:"-"`
8123}
8124
8125func (s *DiskType) MarshalJSON() ([]byte, error) {
8126	type NoMethod DiskType
8127	raw := NoMethod(*s)
8128	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8129}
8130
8131type DiskTypeAggregatedList struct {
8132	// Id: [Output Only] Unique identifier for the resource; defined by the
8133	// server.
8134	Id string `json:"id,omitempty"`
8135
8136	// Items: A list of DiskTypesScopedList resources.
8137	Items map[string]DiskTypesScopedList `json:"items,omitempty"`
8138
8139	// Kind: [Output Only] Type of resource. Always
8140	// compute#diskTypeAggregatedList.
8141	Kind string `json:"kind,omitempty"`
8142
8143	// NextPageToken: [Output Only] This token allows you to get the next
8144	// page of results for list requests. If the number of results is larger
8145	// than maxResults, use the nextPageToken as a value for the query
8146	// parameter pageToken in the next list request. Subsequent list
8147	// requests will have their own nextPageToken to continue paging through
8148	// the results.
8149	NextPageToken string `json:"nextPageToken,omitempty"`
8150
8151	// SelfLink: [Output Only] Server-defined URL for this resource.
8152	SelfLink string `json:"selfLink,omitempty"`
8153
8154	// Warning: [Output Only] Informational warning message.
8155	Warning *DiskTypeAggregatedListWarning `json:"warning,omitempty"`
8156
8157	// ServerResponse contains the HTTP response code and headers from the
8158	// server.
8159	googleapi.ServerResponse `json:"-"`
8160
8161	// ForceSendFields is a list of field names (e.g. "Id") to
8162	// unconditionally include in API requests. By default, fields with
8163	// empty values are omitted from API requests. However, any non-pointer,
8164	// non-interface field appearing in ForceSendFields will be sent to the
8165	// server regardless of whether the field is empty or not. This may be
8166	// used to include empty fields in Patch requests.
8167	ForceSendFields []string `json:"-"`
8168
8169	// NullFields is a list of field names (e.g. "Id") to include in API
8170	// requests with the JSON null value. By default, fields with empty
8171	// values are omitted from API requests. However, any field with an
8172	// empty value appearing in NullFields will be sent to the server as
8173	// null. It is an error if a field in this list has a non-empty value.
8174	// This may be used to include null fields in Patch requests.
8175	NullFields []string `json:"-"`
8176}
8177
8178func (s *DiskTypeAggregatedList) MarshalJSON() ([]byte, error) {
8179	type NoMethod DiskTypeAggregatedList
8180	raw := NoMethod(*s)
8181	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8182}
8183
8184// DiskTypeAggregatedListWarning: [Output Only] Informational warning
8185// message.
8186type DiskTypeAggregatedListWarning struct {
8187	// Code: [Output Only] A warning code, if applicable. For example,
8188	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
8189	// the response.
8190	//
8191	// Possible values:
8192	//   "CLEANUP_FAILED"
8193	//   "DEPRECATED_RESOURCE_USED"
8194	//   "DEPRECATED_TYPE_USED"
8195	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
8196	//   "EXPERIMENTAL_TYPE_USED"
8197	//   "EXTERNAL_API_WARNING"
8198	//   "FIELD_VALUE_OVERRIDEN"
8199	//   "INJECTED_KERNELS_DEPRECATED"
8200	//   "MISSING_TYPE_DEPENDENCY"
8201	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
8202	//   "NEXT_HOP_CANNOT_IP_FORWARD"
8203	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
8204	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
8205	//   "NEXT_HOP_NOT_RUNNING"
8206	//   "NOT_CRITICAL_ERROR"
8207	//   "NO_RESULTS_ON_PAGE"
8208	//   "REQUIRED_TOS_AGREEMENT"
8209	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
8210	//   "RESOURCE_NOT_DELETED"
8211	//   "SCHEMA_VALIDATION_IGNORED"
8212	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
8213	//   "UNDECLARED_PROPERTIES"
8214	//   "UNREACHABLE"
8215	Code string `json:"code,omitempty"`
8216
8217	// Data: [Output Only] Metadata about this warning in key: value format.
8218	// For example:
8219	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
8220	Data []*DiskTypeAggregatedListWarningData `json:"data,omitempty"`
8221
8222	// Message: [Output Only] A human-readable description of the warning
8223	// code.
8224	Message string `json:"message,omitempty"`
8225
8226	// ForceSendFields is a list of field names (e.g. "Code") to
8227	// unconditionally include in API requests. By default, fields with
8228	// empty values are omitted from API requests. However, any non-pointer,
8229	// non-interface field appearing in ForceSendFields will be sent to the
8230	// server regardless of whether the field is empty or not. This may be
8231	// used to include empty fields in Patch requests.
8232	ForceSendFields []string `json:"-"`
8233
8234	// NullFields is a list of field names (e.g. "Code") to include in API
8235	// requests with the JSON null value. By default, fields with empty
8236	// values are omitted from API requests. However, any field with an
8237	// empty value appearing in NullFields will be sent to the server as
8238	// null. It is an error if a field in this list has a non-empty value.
8239	// This may be used to include null fields in Patch requests.
8240	NullFields []string `json:"-"`
8241}
8242
8243func (s *DiskTypeAggregatedListWarning) MarshalJSON() ([]byte, error) {
8244	type NoMethod DiskTypeAggregatedListWarning
8245	raw := NoMethod(*s)
8246	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8247}
8248
8249type DiskTypeAggregatedListWarningData struct {
8250	// Key: [Output Only] A key that provides more detail on the warning
8251	// being returned. For example, for warnings where there are no results
8252	// in a list request for a particular zone, this key might be scope and
8253	// the key value might be the zone name. Other examples might be a key
8254	// indicating a deprecated resource and a suggested replacement, or a
8255	// warning about invalid network settings (for example, if an instance
8256	// attempts to perform IP forwarding but is not enabled for IP
8257	// forwarding).
8258	Key string `json:"key,omitempty"`
8259
8260	// Value: [Output Only] A warning data value corresponding to the key.
8261	Value string `json:"value,omitempty"`
8262
8263	// ForceSendFields is a list of field names (e.g. "Key") to
8264	// unconditionally include in API requests. By default, fields with
8265	// empty values are omitted from API requests. However, any non-pointer,
8266	// non-interface field appearing in ForceSendFields will be sent to the
8267	// server regardless of whether the field is empty or not. This may be
8268	// used to include empty fields in Patch requests.
8269	ForceSendFields []string `json:"-"`
8270
8271	// NullFields is a list of field names (e.g. "Key") to include in API
8272	// requests with the JSON null value. By default, fields with empty
8273	// values are omitted from API requests. However, any field with an
8274	// empty value appearing in NullFields will be sent to the server as
8275	// null. It is an error if a field in this list has a non-empty value.
8276	// This may be used to include null fields in Patch requests.
8277	NullFields []string `json:"-"`
8278}
8279
8280func (s *DiskTypeAggregatedListWarningData) MarshalJSON() ([]byte, error) {
8281	type NoMethod DiskTypeAggregatedListWarningData
8282	raw := NoMethod(*s)
8283	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8284}
8285
8286// DiskTypeList: Contains a list of disk types.
8287type DiskTypeList struct {
8288	// Id: [Output Only] Unique identifier for the resource; defined by the
8289	// server.
8290	Id string `json:"id,omitempty"`
8291
8292	// Items: A list of DiskType resources.
8293	Items []*DiskType `json:"items,omitempty"`
8294
8295	// Kind: [Output Only] Type of resource. Always compute#diskTypeList for
8296	// disk types.
8297	Kind string `json:"kind,omitempty"`
8298
8299	// NextPageToken: [Output Only] This token allows you to get the next
8300	// page of results for list requests. If the number of results is larger
8301	// than maxResults, use the nextPageToken as a value for the query
8302	// parameter pageToken in the next list request. Subsequent list
8303	// requests will have their own nextPageToken to continue paging through
8304	// the results.
8305	NextPageToken string `json:"nextPageToken,omitempty"`
8306
8307	// SelfLink: [Output Only] Server-defined URL for this resource.
8308	SelfLink string `json:"selfLink,omitempty"`
8309
8310	// Warning: [Output Only] Informational warning message.
8311	Warning *DiskTypeListWarning `json:"warning,omitempty"`
8312
8313	// ServerResponse contains the HTTP response code and headers from the
8314	// server.
8315	googleapi.ServerResponse `json:"-"`
8316
8317	// ForceSendFields is a list of field names (e.g. "Id") to
8318	// unconditionally include in API requests. By default, fields with
8319	// empty values are omitted from API requests. However, any non-pointer,
8320	// non-interface field appearing in ForceSendFields will be sent to the
8321	// server regardless of whether the field is empty or not. This may be
8322	// used to include empty fields in Patch requests.
8323	ForceSendFields []string `json:"-"`
8324
8325	// NullFields is a list of field names (e.g. "Id") to include in API
8326	// requests with the JSON null value. By default, fields with empty
8327	// values are omitted from API requests. However, any field with an
8328	// empty value appearing in NullFields will be sent to the server as
8329	// null. It is an error if a field in this list has a non-empty value.
8330	// This may be used to include null fields in Patch requests.
8331	NullFields []string `json:"-"`
8332}
8333
8334func (s *DiskTypeList) MarshalJSON() ([]byte, error) {
8335	type NoMethod DiskTypeList
8336	raw := NoMethod(*s)
8337	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8338}
8339
8340// DiskTypeListWarning: [Output Only] Informational warning message.
8341type DiskTypeListWarning struct {
8342	// Code: [Output Only] A warning code, if applicable. For example,
8343	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
8344	// the response.
8345	//
8346	// Possible values:
8347	//   "CLEANUP_FAILED"
8348	//   "DEPRECATED_RESOURCE_USED"
8349	//   "DEPRECATED_TYPE_USED"
8350	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
8351	//   "EXPERIMENTAL_TYPE_USED"
8352	//   "EXTERNAL_API_WARNING"
8353	//   "FIELD_VALUE_OVERRIDEN"
8354	//   "INJECTED_KERNELS_DEPRECATED"
8355	//   "MISSING_TYPE_DEPENDENCY"
8356	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
8357	//   "NEXT_HOP_CANNOT_IP_FORWARD"
8358	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
8359	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
8360	//   "NEXT_HOP_NOT_RUNNING"
8361	//   "NOT_CRITICAL_ERROR"
8362	//   "NO_RESULTS_ON_PAGE"
8363	//   "REQUIRED_TOS_AGREEMENT"
8364	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
8365	//   "RESOURCE_NOT_DELETED"
8366	//   "SCHEMA_VALIDATION_IGNORED"
8367	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
8368	//   "UNDECLARED_PROPERTIES"
8369	//   "UNREACHABLE"
8370	Code string `json:"code,omitempty"`
8371
8372	// Data: [Output Only] Metadata about this warning in key: value format.
8373	// For example:
8374	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
8375	Data []*DiskTypeListWarningData `json:"data,omitempty"`
8376
8377	// Message: [Output Only] A human-readable description of the warning
8378	// code.
8379	Message string `json:"message,omitempty"`
8380
8381	// ForceSendFields is a list of field names (e.g. "Code") to
8382	// unconditionally include in API requests. By default, fields with
8383	// empty values are omitted from API requests. However, any non-pointer,
8384	// non-interface field appearing in ForceSendFields will be sent to the
8385	// server regardless of whether the field is empty or not. This may be
8386	// used to include empty fields in Patch requests.
8387	ForceSendFields []string `json:"-"`
8388
8389	// NullFields is a list of field names (e.g. "Code") to include in API
8390	// requests with the JSON null value. By default, fields with empty
8391	// values are omitted from API requests. However, any field with an
8392	// empty value appearing in NullFields will be sent to the server as
8393	// null. It is an error if a field in this list has a non-empty value.
8394	// This may be used to include null fields in Patch requests.
8395	NullFields []string `json:"-"`
8396}
8397
8398func (s *DiskTypeListWarning) MarshalJSON() ([]byte, error) {
8399	type NoMethod DiskTypeListWarning
8400	raw := NoMethod(*s)
8401	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8402}
8403
8404type DiskTypeListWarningData struct {
8405	// Key: [Output Only] A key that provides more detail on the warning
8406	// being returned. For example, for warnings where there are no results
8407	// in a list request for a particular zone, this key might be scope and
8408	// the key value might be the zone name. Other examples might be a key
8409	// indicating a deprecated resource and a suggested replacement, or a
8410	// warning about invalid network settings (for example, if an instance
8411	// attempts to perform IP forwarding but is not enabled for IP
8412	// forwarding).
8413	Key string `json:"key,omitempty"`
8414
8415	// Value: [Output Only] A warning data value corresponding to the key.
8416	Value string `json:"value,omitempty"`
8417
8418	// ForceSendFields is a list of field names (e.g. "Key") to
8419	// unconditionally include in API requests. By default, fields with
8420	// empty values are omitted from API requests. However, any non-pointer,
8421	// non-interface field appearing in ForceSendFields will be sent to the
8422	// server regardless of whether the field is empty or not. This may be
8423	// used to include empty fields in Patch requests.
8424	ForceSendFields []string `json:"-"`
8425
8426	// NullFields is a list of field names (e.g. "Key") to include in API
8427	// requests with the JSON null value. By default, fields with empty
8428	// values are omitted from API requests. However, any field with an
8429	// empty value appearing in NullFields will be sent to the server as
8430	// null. It is an error if a field in this list has a non-empty value.
8431	// This may be used to include null fields in Patch requests.
8432	NullFields []string `json:"-"`
8433}
8434
8435func (s *DiskTypeListWarningData) MarshalJSON() ([]byte, error) {
8436	type NoMethod DiskTypeListWarningData
8437	raw := NoMethod(*s)
8438	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8439}
8440
8441type DiskTypesScopedList struct {
8442	// DiskTypes: [Output Only] A list of disk types contained in this
8443	// scope.
8444	DiskTypes []*DiskType `json:"diskTypes,omitempty"`
8445
8446	// Warning: [Output Only] Informational warning which replaces the list
8447	// of disk types when the list is empty.
8448	Warning *DiskTypesScopedListWarning `json:"warning,omitempty"`
8449
8450	// ForceSendFields is a list of field names (e.g. "DiskTypes") to
8451	// unconditionally include in API requests. By default, fields with
8452	// empty values are omitted from API requests. However, any non-pointer,
8453	// non-interface field appearing in ForceSendFields will be sent to the
8454	// server regardless of whether the field is empty or not. This may be
8455	// used to include empty fields in Patch requests.
8456	ForceSendFields []string `json:"-"`
8457
8458	// NullFields is a list of field names (e.g. "DiskTypes") to include in
8459	// API requests with the JSON null value. By default, fields with empty
8460	// values are omitted from API requests. However, any field with an
8461	// empty value appearing in NullFields will be sent to the server as
8462	// null. It is an error if a field in this list has a non-empty value.
8463	// This may be used to include null fields in Patch requests.
8464	NullFields []string `json:"-"`
8465}
8466
8467func (s *DiskTypesScopedList) MarshalJSON() ([]byte, error) {
8468	type NoMethod DiskTypesScopedList
8469	raw := NoMethod(*s)
8470	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8471}
8472
8473// DiskTypesScopedListWarning: [Output Only] Informational warning which
8474// replaces the list of disk types when the list is empty.
8475type DiskTypesScopedListWarning struct {
8476	// Code: [Output Only] A warning code, if applicable. For example,
8477	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
8478	// the response.
8479	//
8480	// Possible values:
8481	//   "CLEANUP_FAILED"
8482	//   "DEPRECATED_RESOURCE_USED"
8483	//   "DEPRECATED_TYPE_USED"
8484	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
8485	//   "EXPERIMENTAL_TYPE_USED"
8486	//   "EXTERNAL_API_WARNING"
8487	//   "FIELD_VALUE_OVERRIDEN"
8488	//   "INJECTED_KERNELS_DEPRECATED"
8489	//   "MISSING_TYPE_DEPENDENCY"
8490	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
8491	//   "NEXT_HOP_CANNOT_IP_FORWARD"
8492	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
8493	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
8494	//   "NEXT_HOP_NOT_RUNNING"
8495	//   "NOT_CRITICAL_ERROR"
8496	//   "NO_RESULTS_ON_PAGE"
8497	//   "REQUIRED_TOS_AGREEMENT"
8498	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
8499	//   "RESOURCE_NOT_DELETED"
8500	//   "SCHEMA_VALIDATION_IGNORED"
8501	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
8502	//   "UNDECLARED_PROPERTIES"
8503	//   "UNREACHABLE"
8504	Code string `json:"code,omitempty"`
8505
8506	// Data: [Output Only] Metadata about this warning in key: value format.
8507	// For example:
8508	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
8509	Data []*DiskTypesScopedListWarningData `json:"data,omitempty"`
8510
8511	// Message: [Output Only] A human-readable description of the warning
8512	// code.
8513	Message string `json:"message,omitempty"`
8514
8515	// ForceSendFields is a list of field names (e.g. "Code") to
8516	// unconditionally include in API requests. By default, fields with
8517	// empty values are omitted from API requests. However, any non-pointer,
8518	// non-interface field appearing in ForceSendFields will be sent to the
8519	// server regardless of whether the field is empty or not. This may be
8520	// used to include empty fields in Patch requests.
8521	ForceSendFields []string `json:"-"`
8522
8523	// NullFields is a list of field names (e.g. "Code") to include in API
8524	// requests with the JSON null value. By default, fields with empty
8525	// values are omitted from API requests. However, any field with an
8526	// empty value appearing in NullFields will be sent to the server as
8527	// null. It is an error if a field in this list has a non-empty value.
8528	// This may be used to include null fields in Patch requests.
8529	NullFields []string `json:"-"`
8530}
8531
8532func (s *DiskTypesScopedListWarning) MarshalJSON() ([]byte, error) {
8533	type NoMethod DiskTypesScopedListWarning
8534	raw := NoMethod(*s)
8535	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8536}
8537
8538type DiskTypesScopedListWarningData struct {
8539	// Key: [Output Only] A key that provides more detail on the warning
8540	// being returned. For example, for warnings where there are no results
8541	// in a list request for a particular zone, this key might be scope and
8542	// the key value might be the zone name. Other examples might be a key
8543	// indicating a deprecated resource and a suggested replacement, or a
8544	// warning about invalid network settings (for example, if an instance
8545	// attempts to perform IP forwarding but is not enabled for IP
8546	// forwarding).
8547	Key string `json:"key,omitempty"`
8548
8549	// Value: [Output Only] A warning data value corresponding to the key.
8550	Value string `json:"value,omitempty"`
8551
8552	// ForceSendFields is a list of field names (e.g. "Key") to
8553	// unconditionally include in API requests. By default, fields with
8554	// empty values are omitted from API requests. However, any non-pointer,
8555	// non-interface field appearing in ForceSendFields will be sent to the
8556	// server regardless of whether the field is empty or not. This may be
8557	// used to include empty fields in Patch requests.
8558	ForceSendFields []string `json:"-"`
8559
8560	// NullFields is a list of field names (e.g. "Key") to include in API
8561	// requests with the JSON null value. By default, fields with empty
8562	// values are omitted from API requests. However, any field with an
8563	// empty value appearing in NullFields will be sent to the server as
8564	// null. It is an error if a field in this list has a non-empty value.
8565	// This may be used to include null fields in Patch requests.
8566	NullFields []string `json:"-"`
8567}
8568
8569func (s *DiskTypesScopedListWarningData) MarshalJSON() ([]byte, error) {
8570	type NoMethod DiskTypesScopedListWarningData
8571	raw := NoMethod(*s)
8572	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8573}
8574
8575type DisksAddResourcePoliciesRequest struct {
8576	// ResourcePolicies: Resource policies to be added to this disk.
8577	// Currently you can only specify one policy here.
8578	ResourcePolicies []string `json:"resourcePolicies,omitempty"`
8579
8580	// ForceSendFields is a list of field names (e.g. "ResourcePolicies") to
8581	// unconditionally include in API requests. By default, fields with
8582	// empty values are omitted from API requests. However, any non-pointer,
8583	// non-interface field appearing in ForceSendFields will be sent to the
8584	// server regardless of whether the field is empty or not. This may be
8585	// used to include empty fields in Patch requests.
8586	ForceSendFields []string `json:"-"`
8587
8588	// NullFields is a list of field names (e.g. "ResourcePolicies") to
8589	// include in API requests with the JSON null value. By default, fields
8590	// with empty values are omitted from API requests. However, any field
8591	// with an empty value appearing in NullFields will be sent to the
8592	// server as null. It is an error if a field in this list has a
8593	// non-empty value. This may be used to include null fields in Patch
8594	// requests.
8595	NullFields []string `json:"-"`
8596}
8597
8598func (s *DisksAddResourcePoliciesRequest) MarshalJSON() ([]byte, error) {
8599	type NoMethod DisksAddResourcePoliciesRequest
8600	raw := NoMethod(*s)
8601	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8602}
8603
8604type DisksRemoveResourcePoliciesRequest struct {
8605	// ResourcePolicies: Resource policies to be removed from this disk.
8606	ResourcePolicies []string `json:"resourcePolicies,omitempty"`
8607
8608	// ForceSendFields is a list of field names (e.g. "ResourcePolicies") 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. "ResourcePolicies") to
8617	// include in API requests with the JSON null value. By default, fields
8618	// with empty values are omitted from API requests. However, any field
8619	// with an empty value appearing in NullFields will be sent to the
8620	// server as null. It is an error if a field in this list has a
8621	// non-empty value. This may be used to include null fields in Patch
8622	// requests.
8623	NullFields []string `json:"-"`
8624}
8625
8626func (s *DisksRemoveResourcePoliciesRequest) MarshalJSON() ([]byte, error) {
8627	type NoMethod DisksRemoveResourcePoliciesRequest
8628	raw := NoMethod(*s)
8629	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8630}
8631
8632type DisksResizeRequest struct {
8633	// SizeGb: The new size of the persistent disk, which is specified in
8634	// GB.
8635	SizeGb int64 `json:"sizeGb,omitempty,string"`
8636
8637	// ForceSendFields is a list of field names (e.g. "SizeGb") to
8638	// unconditionally include in API requests. By default, fields with
8639	// empty values are omitted from API requests. However, any non-pointer,
8640	// non-interface field appearing in ForceSendFields will be sent to the
8641	// server regardless of whether the field is empty or not. This may be
8642	// used to include empty fields in Patch requests.
8643	ForceSendFields []string `json:"-"`
8644
8645	// NullFields is a list of field names (e.g. "SizeGb") to include in API
8646	// requests with the JSON null value. By default, fields with empty
8647	// values are omitted from API requests. However, any field with an
8648	// empty value appearing in NullFields will be sent to the server as
8649	// null. It is an error if a field in this list has a non-empty value.
8650	// This may be used to include null fields in Patch requests.
8651	NullFields []string `json:"-"`
8652}
8653
8654func (s *DisksResizeRequest) MarshalJSON() ([]byte, error) {
8655	type NoMethod DisksResizeRequest
8656	raw := NoMethod(*s)
8657	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8658}
8659
8660type DisksScopedList struct {
8661	// Disks: [Output Only] A list of disks contained in this scope.
8662	Disks []*Disk `json:"disks,omitempty"`
8663
8664	// Warning: [Output Only] Informational warning which replaces the list
8665	// of disks when the list is empty.
8666	Warning *DisksScopedListWarning `json:"warning,omitempty"`
8667
8668	// ForceSendFields is a list of field names (e.g. "Disks") to
8669	// unconditionally include in API requests. By default, fields with
8670	// empty values are omitted from API requests. However, any non-pointer,
8671	// non-interface field appearing in ForceSendFields will be sent to the
8672	// server regardless of whether the field is empty or not. This may be
8673	// used to include empty fields in Patch requests.
8674	ForceSendFields []string `json:"-"`
8675
8676	// NullFields is a list of field names (e.g. "Disks") to include in API
8677	// requests with the JSON null value. By default, fields with empty
8678	// values are omitted from API requests. However, any field with an
8679	// empty value appearing in NullFields will be sent to the server as
8680	// null. It is an error if a field in this list has a non-empty value.
8681	// This may be used to include null fields in Patch requests.
8682	NullFields []string `json:"-"`
8683}
8684
8685func (s *DisksScopedList) MarshalJSON() ([]byte, error) {
8686	type NoMethod DisksScopedList
8687	raw := NoMethod(*s)
8688	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8689}
8690
8691// DisksScopedListWarning: [Output Only] Informational warning which
8692// replaces the list of disks when the list is empty.
8693type DisksScopedListWarning struct {
8694	// Code: [Output Only] A warning code, if applicable. For example,
8695	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
8696	// the response.
8697	//
8698	// Possible values:
8699	//   "CLEANUP_FAILED"
8700	//   "DEPRECATED_RESOURCE_USED"
8701	//   "DEPRECATED_TYPE_USED"
8702	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
8703	//   "EXPERIMENTAL_TYPE_USED"
8704	//   "EXTERNAL_API_WARNING"
8705	//   "FIELD_VALUE_OVERRIDEN"
8706	//   "INJECTED_KERNELS_DEPRECATED"
8707	//   "MISSING_TYPE_DEPENDENCY"
8708	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
8709	//   "NEXT_HOP_CANNOT_IP_FORWARD"
8710	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
8711	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
8712	//   "NEXT_HOP_NOT_RUNNING"
8713	//   "NOT_CRITICAL_ERROR"
8714	//   "NO_RESULTS_ON_PAGE"
8715	//   "REQUIRED_TOS_AGREEMENT"
8716	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
8717	//   "RESOURCE_NOT_DELETED"
8718	//   "SCHEMA_VALIDATION_IGNORED"
8719	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
8720	//   "UNDECLARED_PROPERTIES"
8721	//   "UNREACHABLE"
8722	Code string `json:"code,omitempty"`
8723
8724	// Data: [Output Only] Metadata about this warning in key: value format.
8725	// For example:
8726	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
8727	Data []*DisksScopedListWarningData `json:"data,omitempty"`
8728
8729	// Message: [Output Only] A human-readable description of the warning
8730	// code.
8731	Message string `json:"message,omitempty"`
8732
8733	// ForceSendFields is a list of field names (e.g. "Code") to
8734	// unconditionally include in API requests. By default, fields with
8735	// empty values are omitted from API requests. However, any non-pointer,
8736	// non-interface field appearing in ForceSendFields will be sent to the
8737	// server regardless of whether the field is empty or not. This may be
8738	// used to include empty fields in Patch requests.
8739	ForceSendFields []string `json:"-"`
8740
8741	// NullFields is a list of field names (e.g. "Code") to include in API
8742	// requests with the JSON null value. By default, fields with empty
8743	// values are omitted from API requests. However, any field with an
8744	// empty value appearing in NullFields will be sent to the server as
8745	// null. It is an error if a field in this list has a non-empty value.
8746	// This may be used to include null fields in Patch requests.
8747	NullFields []string `json:"-"`
8748}
8749
8750func (s *DisksScopedListWarning) MarshalJSON() ([]byte, error) {
8751	type NoMethod DisksScopedListWarning
8752	raw := NoMethod(*s)
8753	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8754}
8755
8756type DisksScopedListWarningData struct {
8757	// Key: [Output Only] A key that provides more detail on the warning
8758	// being returned. For example, for warnings where there are no results
8759	// in a list request for a particular zone, this key might be scope and
8760	// the key value might be the zone name. Other examples might be a key
8761	// indicating a deprecated resource and a suggested replacement, or a
8762	// warning about invalid network settings (for example, if an instance
8763	// attempts to perform IP forwarding but is not enabled for IP
8764	// forwarding).
8765	Key string `json:"key,omitempty"`
8766
8767	// Value: [Output Only] A warning data value corresponding to the key.
8768	Value string `json:"value,omitempty"`
8769
8770	// ForceSendFields is a list of field names (e.g. "Key") to
8771	// unconditionally include in API requests. By default, fields with
8772	// empty values are omitted from API requests. However, any non-pointer,
8773	// non-interface field appearing in ForceSendFields will be sent to the
8774	// server regardless of whether the field is empty or not. This may be
8775	// used to include empty fields in Patch requests.
8776	ForceSendFields []string `json:"-"`
8777
8778	// NullFields is a list of field names (e.g. "Key") to include in API
8779	// requests with the JSON null value. By default, fields with empty
8780	// values are omitted from API requests. However, any field with an
8781	// empty value appearing in NullFields will be sent to the server as
8782	// null. It is an error if a field in this list has a non-empty value.
8783	// This may be used to include null fields in Patch requests.
8784	NullFields []string `json:"-"`
8785}
8786
8787func (s *DisksScopedListWarningData) MarshalJSON() ([]byte, error) {
8788	type NoMethod DisksScopedListWarningData
8789	raw := NoMethod(*s)
8790	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8791}
8792
8793// DisplayDevice: A set of Display Device options
8794type DisplayDevice struct {
8795	// EnableDisplay: Defines whether the instance has Display enabled.
8796	EnableDisplay bool `json:"enableDisplay,omitempty"`
8797
8798	// ForceSendFields is a list of field names (e.g. "EnableDisplay") to
8799	// unconditionally include in API requests. By default, fields with
8800	// empty values are omitted from API requests. However, any non-pointer,
8801	// non-interface field appearing in ForceSendFields will be sent to the
8802	// server regardless of whether the field is empty or not. This may be
8803	// used to include empty fields in Patch requests.
8804	ForceSendFields []string `json:"-"`
8805
8806	// NullFields is a list of field names (e.g. "EnableDisplay") to include
8807	// in API requests with the JSON null value. By default, fields with
8808	// empty values are omitted from API requests. However, any field with
8809	// an empty value appearing in NullFields will be sent to the server as
8810	// null. It is an error if a field in this list has a non-empty value.
8811	// This may be used to include null fields in Patch requests.
8812	NullFields []string `json:"-"`
8813}
8814
8815func (s *DisplayDevice) MarshalJSON() ([]byte, error) {
8816	type NoMethod DisplayDevice
8817	raw := NoMethod(*s)
8818	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8819}
8820
8821type DistributionPolicy struct {
8822	// TargetShape: The shape to which the group converges either
8823	// proactively or on resize events (depending on the value set in
8824	// updatePolicy.instanceRedistributionType). The possible values are
8825	// EVEN and ANY. For EVEN the group attempts to preserve a balanced
8826	// number of instances across zones. For ANY the group creates new
8827	// instances where resources are available to fulfill the request; as a
8828	// result, instances may be distributed unevenly across zones in this
8829	// mode. The default value is EVEN.
8830	//
8831	// Possible values:
8832	//   "ANY"
8833	//   "EVEN"
8834	TargetShape string `json:"targetShape,omitempty"`
8835
8836	// Zones: Zones where the regional managed instance group will create
8837	// and manage instances.
8838	Zones []*DistributionPolicyZoneConfiguration `json:"zones,omitempty"`
8839
8840	// ForceSendFields is a list of field names (e.g. "TargetShape") to
8841	// unconditionally include in API requests. By default, fields with
8842	// empty values are omitted from API requests. However, any non-pointer,
8843	// non-interface field appearing in ForceSendFields will be sent to the
8844	// server regardless of whether the field is empty or not. This may be
8845	// used to include empty fields in Patch requests.
8846	ForceSendFields []string `json:"-"`
8847
8848	// NullFields is a list of field names (e.g. "TargetShape") to include
8849	// in API requests with the JSON null value. By default, fields with
8850	// empty values are omitted from API requests. However, any field with
8851	// an empty value appearing in NullFields will be sent to the server as
8852	// null. It is an error if a field in this list has a non-empty value.
8853	// This may be used to include null fields in Patch requests.
8854	NullFields []string `json:"-"`
8855}
8856
8857func (s *DistributionPolicy) MarshalJSON() ([]byte, error) {
8858	type NoMethod DistributionPolicy
8859	raw := NoMethod(*s)
8860	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8861}
8862
8863type DistributionPolicyZoneConfiguration struct {
8864	// Zone: The URL of the zone. The zone must exist in the region where
8865	// the managed instance group is located.
8866	Zone string `json:"zone,omitempty"`
8867
8868	// ForceSendFields is a list of field names (e.g. "Zone") to
8869	// unconditionally include in API requests. By default, fields with
8870	// empty values are omitted from API requests. However, any non-pointer,
8871	// non-interface field appearing in ForceSendFields will be sent to the
8872	// server regardless of whether the field is empty or not. This may be
8873	// used to include empty fields in Patch requests.
8874	ForceSendFields []string `json:"-"`
8875
8876	// NullFields is a list of field names (e.g. "Zone") to include in API
8877	// requests with the JSON null value. By default, fields with empty
8878	// values are omitted from API requests. However, any field with an
8879	// empty value appearing in NullFields will be sent to the server as
8880	// null. It is an error if a field in this list has a non-empty value.
8881	// This may be used to include null fields in Patch requests.
8882	NullFields []string `json:"-"`
8883}
8884
8885func (s *DistributionPolicyZoneConfiguration) MarshalJSON() ([]byte, error) {
8886	type NoMethod DistributionPolicyZoneConfiguration
8887	raw := NoMethod(*s)
8888	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8889}
8890
8891// Duration: A Duration represents a fixed-length span of time
8892// represented as a count of seconds and fractions of seconds at
8893// nanosecond resolution. It is independent of any calendar and concepts
8894// like "day" or "month". Range is approximately 10,000 years.
8895type Duration struct {
8896	// Nanos: Span of time that's a fraction of a second at nanosecond
8897	// resolution. Durations less than one second are represented with a 0
8898	// `seconds` field and a positive `nanos` field. Must be from 0 to
8899	// 999,999,999 inclusive.
8900	Nanos int64 `json:"nanos,omitempty"`
8901
8902	// Seconds: Span of time at a resolution of a second. Must be from 0 to
8903	// 315,576,000,000 inclusive. Note: these bounds are computed from: 60
8904	// sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years
8905	Seconds int64 `json:"seconds,omitempty,string"`
8906
8907	// ForceSendFields is a list of field names (e.g. "Nanos") to
8908	// unconditionally include in API requests. By default, fields with
8909	// empty values are omitted from API requests. However, any non-pointer,
8910	// non-interface field appearing in ForceSendFields will be sent to the
8911	// server regardless of whether the field is empty or not. This may be
8912	// used to include empty fields in Patch requests.
8913	ForceSendFields []string `json:"-"`
8914
8915	// NullFields is a list of field names (e.g. "Nanos") to include in API
8916	// requests with the JSON null value. By default, fields with empty
8917	// values are omitted from API requests. However, any field with an
8918	// empty value appearing in NullFields will be sent to the server as
8919	// null. It is an error if a field in this list has a non-empty value.
8920	// This may be used to include null fields in Patch requests.
8921	NullFields []string `json:"-"`
8922}
8923
8924func (s *Duration) MarshalJSON() ([]byte, error) {
8925	type NoMethod Duration
8926	raw := NoMethod(*s)
8927	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8928}
8929
8930type ExchangedPeeringRoute struct {
8931	// DestRange: The destination range of the route.
8932	DestRange string `json:"destRange,omitempty"`
8933
8934	// Imported: True if the peering route has been imported from a peer.
8935	// The actual import happens if the field
8936	// networkPeering.importCustomRoutes is true for this network, and
8937	// networkPeering.exportCustomRoutes is true for the peer network, and
8938	// the import does not result in a route conflict.
8939	Imported bool `json:"imported,omitempty"`
8940
8941	// NextHopRegion: The region of peering route next hop, only applies to
8942	// dynamic routes.
8943	NextHopRegion string `json:"nextHopRegion,omitempty"`
8944
8945	// Priority: The priority of the peering route.
8946	Priority int64 `json:"priority,omitempty"`
8947
8948	// Type: The type of the peering route.
8949	//
8950	// Possible values:
8951	//   "DYNAMIC_PEERING_ROUTE"
8952	//   "STATIC_PEERING_ROUTE"
8953	//   "SUBNET_PEERING_ROUTE"
8954	Type string `json:"type,omitempty"`
8955
8956	// ForceSendFields is a list of field names (e.g. "DestRange") to
8957	// unconditionally include in API requests. By default, fields with
8958	// empty values are omitted from API requests. However, any non-pointer,
8959	// non-interface field appearing in ForceSendFields will be sent to the
8960	// server regardless of whether the field is empty or not. This may be
8961	// used to include empty fields in Patch requests.
8962	ForceSendFields []string `json:"-"`
8963
8964	// NullFields is a list of field names (e.g. "DestRange") to include in
8965	// API requests with the JSON null value. By default, fields with empty
8966	// values are omitted from API requests. However, any field with an
8967	// empty value appearing in NullFields will be sent to the server as
8968	// null. It is an error if a field in this list has a non-empty value.
8969	// This may be used to include null fields in Patch requests.
8970	NullFields []string `json:"-"`
8971}
8972
8973func (s *ExchangedPeeringRoute) MarshalJSON() ([]byte, error) {
8974	type NoMethod ExchangedPeeringRoute
8975	raw := NoMethod(*s)
8976	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8977}
8978
8979type ExchangedPeeringRoutesList struct {
8980	// Id: [Output Only] Unique identifier for the resource; defined by the
8981	// server.
8982	Id string `json:"id,omitempty"`
8983
8984	// Items: A list of ExchangedPeeringRoute resources.
8985	Items []*ExchangedPeeringRoute `json:"items,omitempty"`
8986
8987	// Kind: [Output Only] Type of resource. Always
8988	// compute#exchangedPeeringRoutesList for exchanged peering routes
8989	// lists.
8990	Kind string `json:"kind,omitempty"`
8991
8992	// NextPageToken: [Output Only] This token allows you to get the next
8993	// page of results for list requests. If the number of results is larger
8994	// than maxResults, use the nextPageToken as a value for the query
8995	// parameter pageToken in the next list request. Subsequent list
8996	// requests will have their own nextPageToken to continue paging through
8997	// the results.
8998	NextPageToken string `json:"nextPageToken,omitempty"`
8999
9000	// SelfLink: [Output Only] Server-defined URL for this resource.
9001	SelfLink string `json:"selfLink,omitempty"`
9002
9003	// Warning: [Output Only] Informational warning message.
9004	Warning *ExchangedPeeringRoutesListWarning `json:"warning,omitempty"`
9005
9006	// ServerResponse contains the HTTP response code and headers from the
9007	// server.
9008	googleapi.ServerResponse `json:"-"`
9009
9010	// ForceSendFields is a list of field names (e.g. "Id") to
9011	// unconditionally include in API requests. By default, fields with
9012	// empty values are omitted from API requests. However, any non-pointer,
9013	// non-interface field appearing in ForceSendFields will be sent to the
9014	// server regardless of whether the field is empty or not. This may be
9015	// used to include empty fields in Patch requests.
9016	ForceSendFields []string `json:"-"`
9017
9018	// NullFields is a list of field names (e.g. "Id") to include in API
9019	// requests with the JSON null value. By default, fields with empty
9020	// values are omitted from API requests. However, any field with an
9021	// empty value appearing in NullFields will be sent to the server as
9022	// null. It is an error if a field in this list has a non-empty value.
9023	// This may be used to include null fields in Patch requests.
9024	NullFields []string `json:"-"`
9025}
9026
9027func (s *ExchangedPeeringRoutesList) MarshalJSON() ([]byte, error) {
9028	type NoMethod ExchangedPeeringRoutesList
9029	raw := NoMethod(*s)
9030	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9031}
9032
9033// ExchangedPeeringRoutesListWarning: [Output Only] Informational
9034// warning message.
9035type ExchangedPeeringRoutesListWarning struct {
9036	// Code: [Output Only] A warning code, if applicable. For example,
9037	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
9038	// the response.
9039	//
9040	// Possible values:
9041	//   "CLEANUP_FAILED"
9042	//   "DEPRECATED_RESOURCE_USED"
9043	//   "DEPRECATED_TYPE_USED"
9044	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
9045	//   "EXPERIMENTAL_TYPE_USED"
9046	//   "EXTERNAL_API_WARNING"
9047	//   "FIELD_VALUE_OVERRIDEN"
9048	//   "INJECTED_KERNELS_DEPRECATED"
9049	//   "MISSING_TYPE_DEPENDENCY"
9050	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
9051	//   "NEXT_HOP_CANNOT_IP_FORWARD"
9052	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
9053	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
9054	//   "NEXT_HOP_NOT_RUNNING"
9055	//   "NOT_CRITICAL_ERROR"
9056	//   "NO_RESULTS_ON_PAGE"
9057	//   "REQUIRED_TOS_AGREEMENT"
9058	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
9059	//   "RESOURCE_NOT_DELETED"
9060	//   "SCHEMA_VALIDATION_IGNORED"
9061	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
9062	//   "UNDECLARED_PROPERTIES"
9063	//   "UNREACHABLE"
9064	Code string `json:"code,omitempty"`
9065
9066	// Data: [Output Only] Metadata about this warning in key: value format.
9067	// For example:
9068	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
9069	Data []*ExchangedPeeringRoutesListWarningData `json:"data,omitempty"`
9070
9071	// Message: [Output Only] A human-readable description of the warning
9072	// code.
9073	Message string `json:"message,omitempty"`
9074
9075	// ForceSendFields is a list of field names (e.g. "Code") to
9076	// unconditionally include in API requests. By default, fields with
9077	// empty values are omitted from API requests. However, any non-pointer,
9078	// non-interface field appearing in ForceSendFields will be sent to the
9079	// server regardless of whether the field is empty or not. This may be
9080	// used to include empty fields in Patch requests.
9081	ForceSendFields []string `json:"-"`
9082
9083	// NullFields is a list of field names (e.g. "Code") to include in API
9084	// requests with the JSON null value. By default, fields with empty
9085	// values are omitted from API requests. However, any field with an
9086	// empty value appearing in NullFields will be sent to the server as
9087	// null. It is an error if a field in this list has a non-empty value.
9088	// This may be used to include null fields in Patch requests.
9089	NullFields []string `json:"-"`
9090}
9091
9092func (s *ExchangedPeeringRoutesListWarning) MarshalJSON() ([]byte, error) {
9093	type NoMethod ExchangedPeeringRoutesListWarning
9094	raw := NoMethod(*s)
9095	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9096}
9097
9098type ExchangedPeeringRoutesListWarningData struct {
9099	// Key: [Output Only] A key that provides more detail on the warning
9100	// being returned. For example, for warnings where there are no results
9101	// in a list request for a particular zone, this key might be scope and
9102	// the key value might be the zone name. Other examples might be a key
9103	// indicating a deprecated resource and a suggested replacement, or a
9104	// warning about invalid network settings (for example, if an instance
9105	// attempts to perform IP forwarding but is not enabled for IP
9106	// forwarding).
9107	Key string `json:"key,omitempty"`
9108
9109	// Value: [Output Only] A warning data value corresponding to the key.
9110	Value string `json:"value,omitempty"`
9111
9112	// ForceSendFields is a list of field names (e.g. "Key") to
9113	// unconditionally include in API requests. By default, fields with
9114	// empty values are omitted from API requests. However, any non-pointer,
9115	// non-interface field appearing in ForceSendFields will be sent to the
9116	// server regardless of whether the field is empty or not. This may be
9117	// used to include empty fields in Patch requests.
9118	ForceSendFields []string `json:"-"`
9119
9120	// NullFields is a list of field names (e.g. "Key") to include in API
9121	// requests with the JSON null value. By default, fields with empty
9122	// values are omitted from API requests. However, any field with an
9123	// empty value appearing in NullFields will be sent to the server as
9124	// null. It is an error if a field in this list has a non-empty value.
9125	// This may be used to include null fields in Patch requests.
9126	NullFields []string `json:"-"`
9127}
9128
9129func (s *ExchangedPeeringRoutesListWarningData) MarshalJSON() ([]byte, error) {
9130	type NoMethod ExchangedPeeringRoutesListWarningData
9131	raw := NoMethod(*s)
9132	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9133}
9134
9135// Expr: Represents an expression text. Example:
9136//
9137// title: "User account presence" description: "Determines whether the
9138// request has a user account" expression: "size(request.user) > 0"
9139type Expr struct {
9140	// Description: An optional description of the expression. This is a
9141	// longer text which describes the expression, e.g. when hovered over it
9142	// in a UI.
9143	Description string `json:"description,omitempty"`
9144
9145	// Expression: Textual representation of an expression in Common
9146	// Expression Language syntax.
9147	//
9148	// The application context of the containing message determines which
9149	// well-known feature set of CEL is supported.
9150	Expression string `json:"expression,omitempty"`
9151
9152	// Location: An optional string indicating the location of the
9153	// expression for error reporting, e.g. a file name and a position in
9154	// the file.
9155	Location string `json:"location,omitempty"`
9156
9157	// Title: An optional title for the expression, i.e. a short string
9158	// describing its purpose. This can be used e.g. in UIs which allow to
9159	// enter the expression.
9160	Title string `json:"title,omitempty"`
9161
9162	// ForceSendFields is a list of field names (e.g. "Description") to
9163	// unconditionally include in API requests. By default, fields with
9164	// empty values are omitted from API requests. However, any non-pointer,
9165	// non-interface field appearing in ForceSendFields will be sent to the
9166	// server regardless of whether the field is empty or not. This may be
9167	// used to include empty fields in Patch requests.
9168	ForceSendFields []string `json:"-"`
9169
9170	// NullFields is a list of field names (e.g. "Description") to include
9171	// in API requests with the JSON null value. By default, fields with
9172	// empty values are omitted from API requests. However, any field with
9173	// an empty value appearing in NullFields will be sent to the server as
9174	// null. It is an error if a field in this list has a non-empty value.
9175	// This may be used to include null fields in Patch requests.
9176	NullFields []string `json:"-"`
9177}
9178
9179func (s *Expr) MarshalJSON() ([]byte, error) {
9180	type NoMethod Expr
9181	raw := NoMethod(*s)
9182	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9183}
9184
9185// ExternalVpnGateway: External VPN gateway is the on-premises VPN
9186// gateway(s) or another cloud provider?s VPN gateway that connects to
9187// your Google Cloud VPN gateway. To create a highly available VPN from
9188// Google Cloud to your on-premises side or another Cloud provider's VPN
9189// gateway, you must create a external VPN gateway resource in GCP,
9190// which provides the information to GCP about your external VPN
9191// gateway.
9192type ExternalVpnGateway struct {
9193	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
9194	// format.
9195	CreationTimestamp string `json:"creationTimestamp,omitempty"`
9196
9197	// Description: An optional description of this resource. Provide this
9198	// property when you create the resource.
9199	Description string `json:"description,omitempty"`
9200
9201	// Id: [Output Only] The unique identifier for the resource. This
9202	// identifier is defined by the server.
9203	Id uint64 `json:"id,omitempty,string"`
9204
9205	// Interfaces: List of interfaces for this external VPN gateway.
9206	Interfaces []*ExternalVpnGatewayInterface `json:"interfaces,omitempty"`
9207
9208	// Kind: [Output Only] Type of the resource. Always
9209	// compute#externalVpnGateway for externalVpnGateways.
9210	Kind string `json:"kind,omitempty"`
9211
9212	// LabelFingerprint: A fingerprint for the labels being applied to this
9213	// ExternalVpnGateway, which is essentially a hash of the labels set
9214	// used for optimistic locking. The fingerprint is initially generated
9215	// by Compute Engine and changes after every request to modify or update
9216	// labels. You must always provide an up-to-date fingerprint hash in
9217	// order to update or change labels, otherwise the request will fail
9218	// with error 412 conditionNotMet.
9219	//
9220	// To see the latest fingerprint, make a get() request to retrieve an
9221	// ExternalVpnGateway.
9222	LabelFingerprint string `json:"labelFingerprint,omitempty"`
9223
9224	// Labels: Labels to apply to this ExternalVpnGateway resource. These
9225	// can be later modified by the setLabels method. Each label key/value
9226	// must comply with RFC1035. Label values may be empty.
9227	Labels map[string]string `json:"labels,omitempty"`
9228
9229	// Name: Name of the resource. Provided by the client when the resource
9230	// is created. The name must be 1-63 characters long, and comply with
9231	// RFC1035. Specifically, the name must be 1-63 characters long and
9232	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
9233	// the first character must be a lowercase letter, and all following
9234	// characters must be a dash, lowercase letter, or digit, except the
9235	// last character, which cannot be a dash.
9236	Name string `json:"name,omitempty"`
9237
9238	// RedundancyType: Indicates the user-supplied redundancy type of this
9239	// external VPN gateway.
9240	//
9241	// Possible values:
9242	//   "FOUR_IPS_REDUNDANCY"
9243	//   "SINGLE_IP_INTERNALLY_REDUNDANT"
9244	//   "TWO_IPS_REDUNDANCY"
9245	RedundancyType string `json:"redundancyType,omitempty"`
9246
9247	// SelfLink: [Output Only] Server-defined URL for the resource.
9248	SelfLink string `json:"selfLink,omitempty"`
9249
9250	// ServerResponse contains the HTTP response code and headers from the
9251	// server.
9252	googleapi.ServerResponse `json:"-"`
9253
9254	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
9255	// to unconditionally include in API requests. By default, fields with
9256	// empty values are omitted from API requests. However, any non-pointer,
9257	// non-interface field appearing in ForceSendFields will be sent to the
9258	// server regardless of whether the field is empty or not. This may be
9259	// used to include empty fields in Patch requests.
9260	ForceSendFields []string `json:"-"`
9261
9262	// NullFields is a list of field names (e.g. "CreationTimestamp") to
9263	// include in API requests with the JSON null value. By default, fields
9264	// with empty values are omitted from API requests. However, any field
9265	// with an empty value appearing in NullFields will be sent to the
9266	// server as null. It is an error if a field in this list has a
9267	// non-empty value. This may be used to include null fields in Patch
9268	// requests.
9269	NullFields []string `json:"-"`
9270}
9271
9272func (s *ExternalVpnGateway) MarshalJSON() ([]byte, error) {
9273	type NoMethod ExternalVpnGateway
9274	raw := NoMethod(*s)
9275	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9276}
9277
9278// ExternalVpnGatewayInterface: The interface for the external VPN
9279// gateway.
9280type ExternalVpnGatewayInterface struct {
9281	// Id: The numeric ID of this interface. The allowed input values for
9282	// this id for different redundancy types of external VPN gateway:
9283	// SINGLE_IP_INTERNALLY_REDUNDANT - 0 TWO_IPS_REDUNDANCY - 0, 1
9284	// FOUR_IPS_REDUNDANCY - 0, 1, 2, 3
9285	Id int64 `json:"id,omitempty"`
9286
9287	// IpAddress: IP address of the interface in the external VPN gateway.
9288	// Only IPv4 is supported. This IP address can be either from your
9289	// on-premise gateway or another Cloud provider?s VPN gateway, it cannot
9290	// be an IP address from Google Compute Engine.
9291	IpAddress string `json:"ipAddress,omitempty"`
9292
9293	// ForceSendFields is a list of field names (e.g. "Id") to
9294	// unconditionally include in API requests. By default, fields with
9295	// empty values are omitted from API requests. However, any non-pointer,
9296	// non-interface field appearing in ForceSendFields will be sent to the
9297	// server regardless of whether the field is empty or not. This may be
9298	// used to include empty fields in Patch requests.
9299	ForceSendFields []string `json:"-"`
9300
9301	// NullFields is a list of field names (e.g. "Id") to include in API
9302	// requests with the JSON null value. By default, fields with empty
9303	// values are omitted from API requests. However, any field with an
9304	// empty value appearing in NullFields will be sent to the server as
9305	// null. It is an error if a field in this list has a non-empty value.
9306	// This may be used to include null fields in Patch requests.
9307	NullFields []string `json:"-"`
9308}
9309
9310func (s *ExternalVpnGatewayInterface) MarshalJSON() ([]byte, error) {
9311	type NoMethod ExternalVpnGatewayInterface
9312	raw := NoMethod(*s)
9313	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9314}
9315
9316// ExternalVpnGatewayList: Response to the list request, and contains a
9317// list of externalVpnGateways.
9318type ExternalVpnGatewayList struct {
9319	Etag string `json:"etag,omitempty"`
9320
9321	// Id: [Output Only] Unique identifier for the resource; defined by the
9322	// server.
9323	Id string `json:"id,omitempty"`
9324
9325	// Items: A list of ExternalVpnGateway resources.
9326	Items []*ExternalVpnGateway `json:"items,omitempty"`
9327
9328	// Kind: [Output Only] Type of resource. Always
9329	// compute#externalVpnGatewayList  for lists of externalVpnGateways.
9330	Kind string `json:"kind,omitempty"`
9331
9332	// NextPageToken: [Output Only] This token allows you to get the next
9333	// page of results for list requests. If the number of results is larger
9334	// than maxResults, use the nextPageToken as a value for the query
9335	// parameter pageToken in the next list request. Subsequent list
9336	// requests will have their own nextPageToken to continue paging through
9337	// the results.
9338	NextPageToken string `json:"nextPageToken,omitempty"`
9339
9340	// SelfLink: [Output Only] Server-defined URL for this resource.
9341	SelfLink string `json:"selfLink,omitempty"`
9342
9343	// Warning: [Output Only] Informational warning message.
9344	Warning *ExternalVpnGatewayListWarning `json:"warning,omitempty"`
9345
9346	// ServerResponse contains the HTTP response code and headers from the
9347	// server.
9348	googleapi.ServerResponse `json:"-"`
9349
9350	// ForceSendFields is a list of field names (e.g. "Etag") to
9351	// unconditionally include in API requests. By default, fields with
9352	// empty values are omitted from API requests. However, any non-pointer,
9353	// non-interface field appearing in ForceSendFields will be sent to the
9354	// server regardless of whether the field is empty or not. This may be
9355	// used to include empty fields in Patch requests.
9356	ForceSendFields []string `json:"-"`
9357
9358	// NullFields is a list of field names (e.g. "Etag") to include in API
9359	// requests with the JSON null value. By default, fields with empty
9360	// values are omitted from API requests. However, any field with an
9361	// empty value appearing in NullFields will be sent to the server as
9362	// null. It is an error if a field in this list has a non-empty value.
9363	// This may be used to include null fields in Patch requests.
9364	NullFields []string `json:"-"`
9365}
9366
9367func (s *ExternalVpnGatewayList) MarshalJSON() ([]byte, error) {
9368	type NoMethod ExternalVpnGatewayList
9369	raw := NoMethod(*s)
9370	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9371}
9372
9373// ExternalVpnGatewayListWarning: [Output Only] Informational warning
9374// message.
9375type ExternalVpnGatewayListWarning struct {
9376	// Code: [Output Only] A warning code, if applicable. For example,
9377	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
9378	// the response.
9379	//
9380	// Possible values:
9381	//   "CLEANUP_FAILED"
9382	//   "DEPRECATED_RESOURCE_USED"
9383	//   "DEPRECATED_TYPE_USED"
9384	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
9385	//   "EXPERIMENTAL_TYPE_USED"
9386	//   "EXTERNAL_API_WARNING"
9387	//   "FIELD_VALUE_OVERRIDEN"
9388	//   "INJECTED_KERNELS_DEPRECATED"
9389	//   "MISSING_TYPE_DEPENDENCY"
9390	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
9391	//   "NEXT_HOP_CANNOT_IP_FORWARD"
9392	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
9393	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
9394	//   "NEXT_HOP_NOT_RUNNING"
9395	//   "NOT_CRITICAL_ERROR"
9396	//   "NO_RESULTS_ON_PAGE"
9397	//   "REQUIRED_TOS_AGREEMENT"
9398	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
9399	//   "RESOURCE_NOT_DELETED"
9400	//   "SCHEMA_VALIDATION_IGNORED"
9401	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
9402	//   "UNDECLARED_PROPERTIES"
9403	//   "UNREACHABLE"
9404	Code string `json:"code,omitempty"`
9405
9406	// Data: [Output Only] Metadata about this warning in key: value format.
9407	// For example:
9408	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
9409	Data []*ExternalVpnGatewayListWarningData `json:"data,omitempty"`
9410
9411	// Message: [Output Only] A human-readable description of the warning
9412	// code.
9413	Message string `json:"message,omitempty"`
9414
9415	// ForceSendFields is a list of field names (e.g. "Code") to
9416	// unconditionally include in API requests. By default, fields with
9417	// empty values are omitted from API requests. However, any non-pointer,
9418	// non-interface field appearing in ForceSendFields will be sent to the
9419	// server regardless of whether the field is empty or not. This may be
9420	// used to include empty fields in Patch requests.
9421	ForceSendFields []string `json:"-"`
9422
9423	// NullFields is a list of field names (e.g. "Code") to include in API
9424	// requests with the JSON null value. By default, fields with empty
9425	// values are omitted from API requests. However, any field with an
9426	// empty value appearing in NullFields will be sent to the server as
9427	// null. It is an error if a field in this list has a non-empty value.
9428	// This may be used to include null fields in Patch requests.
9429	NullFields []string `json:"-"`
9430}
9431
9432func (s *ExternalVpnGatewayListWarning) MarshalJSON() ([]byte, error) {
9433	type NoMethod ExternalVpnGatewayListWarning
9434	raw := NoMethod(*s)
9435	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9436}
9437
9438type ExternalVpnGatewayListWarningData struct {
9439	// Key: [Output Only] A key that provides more detail on the warning
9440	// being returned. For example, for warnings where there are no results
9441	// in a list request for a particular zone, this key might be scope and
9442	// the key value might be the zone name. Other examples might be a key
9443	// indicating a deprecated resource and a suggested replacement, or a
9444	// warning about invalid network settings (for example, if an instance
9445	// attempts to perform IP forwarding but is not enabled for IP
9446	// forwarding).
9447	Key string `json:"key,omitempty"`
9448
9449	// Value: [Output Only] A warning data value corresponding to the key.
9450	Value string `json:"value,omitempty"`
9451
9452	// ForceSendFields is a list of field names (e.g. "Key") to
9453	// unconditionally include in API requests. By default, fields with
9454	// empty values are omitted from API requests. However, any non-pointer,
9455	// non-interface field appearing in ForceSendFields will be sent to the
9456	// server regardless of whether the field is empty or not. This may be
9457	// used to include empty fields in Patch requests.
9458	ForceSendFields []string `json:"-"`
9459
9460	// NullFields is a list of field names (e.g. "Key") to include in API
9461	// requests with the JSON null value. By default, fields with empty
9462	// values are omitted from API requests. However, any field with an
9463	// empty value appearing in NullFields will be sent to the server as
9464	// null. It is an error if a field in this list has a non-empty value.
9465	// This may be used to include null fields in Patch requests.
9466	NullFields []string `json:"-"`
9467}
9468
9469func (s *ExternalVpnGatewayListWarningData) MarshalJSON() ([]byte, error) {
9470	type NoMethod ExternalVpnGatewayListWarningData
9471	raw := NoMethod(*s)
9472	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9473}
9474
9475type FileContentBuffer struct {
9476	// Content: The raw content in the secure keys file.
9477	Content string `json:"content,omitempty"`
9478
9479	// Possible values:
9480	//   "BIN"
9481	//   "UNDEFINED"
9482	//   "X509"
9483	FileType string `json:"fileType,omitempty"`
9484
9485	// ForceSendFields is a list of field names (e.g. "Content") to
9486	// unconditionally include in API requests. By default, fields with
9487	// empty values are omitted from API requests. However, any non-pointer,
9488	// non-interface field appearing in ForceSendFields will be sent to the
9489	// server regardless of whether the field is empty or not. This may be
9490	// used to include empty fields in Patch requests.
9491	ForceSendFields []string `json:"-"`
9492
9493	// NullFields is a list of field names (e.g. "Content") to include in
9494	// API requests with the JSON null value. By default, fields with empty
9495	// values are omitted from API requests. However, any field with an
9496	// empty value appearing in NullFields will be sent to the server as
9497	// null. It is an error if a field in this list has a non-empty value.
9498	// This may be used to include null fields in Patch requests.
9499	NullFields []string `json:"-"`
9500}
9501
9502func (s *FileContentBuffer) MarshalJSON() ([]byte, error) {
9503	type NoMethod FileContentBuffer
9504	raw := NoMethod(*s)
9505	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9506}
9507
9508// Firewall: Represents a Firewall Rule resource.
9509//
9510// Firewall rules allow or deny ingress traffic to, and egress traffic
9511// from your instances. For more information, read Firewall rules.
9512type Firewall struct {
9513	// Allowed: The list of ALLOW rules specified by this firewall. Each
9514	// rule specifies a protocol and port-range tuple that describes a
9515	// permitted connection.
9516	Allowed []*FirewallAllowed `json:"allowed,omitempty"`
9517
9518	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
9519	// format.
9520	CreationTimestamp string `json:"creationTimestamp,omitempty"`
9521
9522	// Denied: The list of DENY rules specified by this firewall. Each rule
9523	// specifies a protocol and port-range tuple that describes a denied
9524	// connection.
9525	Denied []*FirewallDenied `json:"denied,omitempty"`
9526
9527	// Description: An optional description of this resource. Provide this
9528	// field when you create the resource.
9529	Description string `json:"description,omitempty"`
9530
9531	// DestinationRanges: If destination ranges are specified, the firewall
9532	// rule applies only to traffic that has destination IP address in these
9533	// ranges. These ranges must be expressed in CIDR format. Only IPv4 is
9534	// supported.
9535	DestinationRanges []string `json:"destinationRanges,omitempty"`
9536
9537	// Direction: Direction of traffic to which this firewall applies,
9538	// either `INGRESS` or `EGRESS`. The default is `INGRESS`. For `INGRESS`
9539	// traffic, you cannot specify the destinationRanges field, and for
9540	// `EGRESS` traffic, you cannot specify the sourceRanges or sourceTags
9541	// fields.
9542	//
9543	// Possible values:
9544	//   "EGRESS"
9545	//   "INGRESS"
9546	Direction string `json:"direction,omitempty"`
9547
9548	// Disabled: Denotes whether the firewall rule is disabled. When set to
9549	// true, the firewall rule is not enforced and the network behaves as if
9550	// it did not exist. If this is unspecified, the firewall rule will be
9551	// enabled.
9552	Disabled bool `json:"disabled,omitempty"`
9553
9554	// EnableLogging: Deprecated in favor of enable in LogConfig. This field
9555	// denotes whether to enable logging for a particular firewall rule. If
9556	// logging is enabled, logs will be exported to Stackdriver.
9557	EnableLogging bool `json:"enableLogging,omitempty"`
9558
9559	// Id: [Output Only] The unique identifier for the resource. This
9560	// identifier is defined by the server.
9561	Id uint64 `json:"id,omitempty,string"`
9562
9563	// Kind: [Output Only] Type of the resource. Always compute#firewall for
9564	// firewall rules.
9565	Kind string `json:"kind,omitempty"`
9566
9567	// LogConfig: This field denotes the logging options for a particular
9568	// firewall rule. If logging is enabled, logs will be exported to
9569	// Stackdriver.
9570	LogConfig *FirewallLogConfig `json:"logConfig,omitempty"`
9571
9572	// Name: Name of the resource; provided by the client when the resource
9573	// is created. The name must be 1-63 characters long, and comply with
9574	// RFC1035. Specifically, the name must be 1-63 characters long and
9575	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?. The first
9576	// character must be a lowercase letter, and all following characters
9577	// (except for the last character) must be a dash, lowercase letter, or
9578	// digit. The last character must be a lowercase letter or digit.
9579	Name string `json:"name,omitempty"`
9580
9581	// Network: URL of the network resource for this firewall rule. If not
9582	// specified when creating a firewall rule, the default network is
9583	// used:
9584	// global/networks/default
9585	// If you choose to specify this field, you can specify the network as a
9586	// full or partial URL. For example, the following are all valid URLs:
9587	//
9588	// -
9589	// https://www.googleapis.com/compute/v1/projects/myproject/global/networks/my-network
9590	// - projects/myproject/global/networks/my-network
9591	// - global/networks/default
9592	Network string `json:"network,omitempty"`
9593
9594	// Priority: Priority for this rule. This is an integer between `0` and
9595	// `65535`, both inclusive. The default value is `1000`. Relative
9596	// priorities determine which rule takes effect if multiple rules apply.
9597	// Lower values indicate higher priority. For example, a rule with
9598	// priority `0` has higher precedence than a rule with priority `1`.
9599	// DENY rules take precedence over ALLOW rules if they have equal
9600	// priority. Note that VPC networks have implied rules with a priority
9601	// of `65535`. To avoid conflicts with the implied rules, use a priority
9602	// number less than `65535`.
9603	Priority int64 `json:"priority,omitempty"`
9604
9605	// SelfLink: [Output Only] Server-defined URL for the resource.
9606	SelfLink string `json:"selfLink,omitempty"`
9607
9608	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
9609	// with the resource id.
9610	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
9611
9612	// SourceRanges: If source ranges are specified, the firewall rule
9613	// applies only to traffic that has a source IP address in these ranges.
9614	// These ranges must be expressed in CIDR format. One or both of
9615	// sourceRanges and sourceTags may be set. If both fields are set, the
9616	// rule applies to traffic that has a source IP address within
9617	// sourceRanges OR a source IP from a resource with a matching tag
9618	// listed in the sourceTags field. The connection does not need to match
9619	// both fields for the rule to apply. Only IPv4 is supported.
9620	SourceRanges []string `json:"sourceRanges,omitempty"`
9621
9622	// SourceServiceAccounts: If source service accounts are specified, the
9623	// firewall rules apply only to traffic originating from an instance
9624	// with a service account in this list. Source service accounts cannot
9625	// be used to control traffic to an instance's external IP address
9626	// because service accounts are associated with an instance, not an IP
9627	// address. sourceRanges can be set at the same time as
9628	// sourceServiceAccounts. If both are set, the firewall applies to
9629	// traffic that has a source IP address within the sourceRanges OR a
9630	// source IP that belongs to an instance with service account listed in
9631	// sourceServiceAccount. The connection does not need to match both
9632	// fields for the firewall to apply. sourceServiceAccounts cannot be
9633	// used at the same time as sourceTags or targetTags.
9634	SourceServiceAccounts []string `json:"sourceServiceAccounts,omitempty"`
9635
9636	// SourceTags: If source tags are specified, the firewall rule applies
9637	// only to traffic with source IPs that match the primary network
9638	// interfaces of VM instances that have the tag and are in the same VPC
9639	// network. Source tags cannot be used to control traffic to an
9640	// instance's external IP address, it only applies to traffic between
9641	// instances in the same virtual network. Because tags are associated
9642	// with instances, not IP addresses. One or both of sourceRanges and
9643	// sourceTags may be set. If both fields are set, the firewall applies
9644	// to traffic that has a source IP address within sourceRanges OR a
9645	// source IP from a resource with a matching tag listed in the
9646	// sourceTags field. The connection does not need to match both fields
9647	// for the firewall to apply.
9648	SourceTags []string `json:"sourceTags,omitempty"`
9649
9650	// TargetServiceAccounts: A list of service accounts indicating sets of
9651	// instances located in the network that may make network connections as
9652	// specified in allowed[]. targetServiceAccounts cannot be used at the
9653	// same time as targetTags or sourceTags. If neither
9654	// targetServiceAccounts nor targetTags are specified, the firewall rule
9655	// applies to all instances on the specified network.
9656	TargetServiceAccounts []string `json:"targetServiceAccounts,omitempty"`
9657
9658	// TargetTags: A list of tags that controls which instances the firewall
9659	// rule applies to. If targetTags are specified, then the firewall rule
9660	// applies only to instances in the VPC network that have one of those
9661	// tags. If no targetTags are specified, the firewall rule applies to
9662	// all instances on the specified network.
9663	TargetTags []string `json:"targetTags,omitempty"`
9664
9665	// ServerResponse contains the HTTP response code and headers from the
9666	// server.
9667	googleapi.ServerResponse `json:"-"`
9668
9669	// ForceSendFields is a list of field names (e.g. "Allowed") to
9670	// unconditionally include in API requests. By default, fields with
9671	// empty values are omitted from API requests. However, any non-pointer,
9672	// non-interface field appearing in ForceSendFields will be sent to the
9673	// server regardless of whether the field is empty or not. This may be
9674	// used to include empty fields in Patch requests.
9675	ForceSendFields []string `json:"-"`
9676
9677	// NullFields is a list of field names (e.g. "Allowed") to include in
9678	// API requests with the JSON null value. By default, fields with empty
9679	// values are omitted from API requests. However, any field with an
9680	// empty value appearing in NullFields will be sent to the server as
9681	// null. It is an error if a field in this list has a non-empty value.
9682	// This may be used to include null fields in Patch requests.
9683	NullFields []string `json:"-"`
9684}
9685
9686func (s *Firewall) MarshalJSON() ([]byte, error) {
9687	type NoMethod Firewall
9688	raw := NoMethod(*s)
9689	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9690}
9691
9692type FirewallAllowed struct {
9693	// IPProtocol: The IP protocol to which this rule applies. The protocol
9694	// type is required when creating a firewall rule. This value can either
9695	// be one of the following well known protocol strings (tcp, udp, icmp,
9696	// esp, ah, ipip, sctp) or the IP protocol number.
9697	IPProtocol string `json:"IPProtocol,omitempty"`
9698
9699	// Ports: An optional list of ports to which this rule applies. This
9700	// field is only applicable for the UDP or TCP protocol. Each entry must
9701	// be either an integer or a range. If not specified, this rule applies
9702	// to connections through any port.
9703	//
9704	// Example inputs include: ["22"], ["80","443"], and ["12345-12349"].
9705	Ports []string `json:"ports,omitempty"`
9706
9707	// ForceSendFields is a list of field names (e.g. "IPProtocol") to
9708	// unconditionally include in API requests. By default, fields with
9709	// empty values are omitted from API requests. However, any non-pointer,
9710	// non-interface field appearing in ForceSendFields will be sent to the
9711	// server regardless of whether the field is empty or not. This may be
9712	// used to include empty fields in Patch requests.
9713	ForceSendFields []string `json:"-"`
9714
9715	// NullFields is a list of field names (e.g. "IPProtocol") to include in
9716	// API requests with the JSON null value. By default, fields with empty
9717	// values are omitted from API requests. However, any field with an
9718	// empty value appearing in NullFields will be sent to the server as
9719	// null. It is an error if a field in this list has a non-empty value.
9720	// This may be used to include null fields in Patch requests.
9721	NullFields []string `json:"-"`
9722}
9723
9724func (s *FirewallAllowed) MarshalJSON() ([]byte, error) {
9725	type NoMethod FirewallAllowed
9726	raw := NoMethod(*s)
9727	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9728}
9729
9730type FirewallDenied struct {
9731	// IPProtocol: The IP protocol to which this rule applies. The protocol
9732	// type is required when creating a firewall rule. This value can either
9733	// be one of the following well known protocol strings (tcp, udp, icmp,
9734	// esp, ah, ipip, sctp) or the IP protocol number.
9735	IPProtocol string `json:"IPProtocol,omitempty"`
9736
9737	// Ports: An optional list of ports to which this rule applies. This
9738	// field is only applicable for the UDP or TCP protocol. Each entry must
9739	// be either an integer or a range. If not specified, this rule applies
9740	// to connections through any port.
9741	//
9742	// Example inputs include: ["22"], ["80","443"], and ["12345-12349"].
9743	Ports []string `json:"ports,omitempty"`
9744
9745	// ForceSendFields is a list of field names (e.g. "IPProtocol") to
9746	// unconditionally include in API requests. By default, fields with
9747	// empty values are omitted from API requests. However, any non-pointer,
9748	// non-interface field appearing in ForceSendFields will be sent to the
9749	// server regardless of whether the field is empty or not. This may be
9750	// used to include empty fields in Patch requests.
9751	ForceSendFields []string `json:"-"`
9752
9753	// NullFields is a list of field names (e.g. "IPProtocol") to include in
9754	// API requests with the JSON null value. By default, fields with empty
9755	// values are omitted from API requests. However, any field with an
9756	// empty value appearing in NullFields will be sent to the server as
9757	// null. It is an error if a field in this list has a non-empty value.
9758	// This may be used to include null fields in Patch requests.
9759	NullFields []string `json:"-"`
9760}
9761
9762func (s *FirewallDenied) MarshalJSON() ([]byte, error) {
9763	type NoMethod FirewallDenied
9764	raw := NoMethod(*s)
9765	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9766}
9767
9768// FirewallList: Contains a list of firewalls.
9769type FirewallList struct {
9770	// Id: [Output Only] Unique identifier for the resource; defined by the
9771	// server.
9772	Id string `json:"id,omitempty"`
9773
9774	// Items: A list of Firewall resources.
9775	Items []*Firewall `json:"items,omitempty"`
9776
9777	// Kind: [Output Only] Type of resource. Always compute#firewallList for
9778	// lists of firewalls.
9779	Kind string `json:"kind,omitempty"`
9780
9781	// NextPageToken: [Output Only] This token allows you to get the next
9782	// page of results for list requests. If the number of results is larger
9783	// than maxResults, use the nextPageToken as a value for the query
9784	// parameter pageToken in the next list request. Subsequent list
9785	// requests will have their own nextPageToken to continue paging through
9786	// the results.
9787	NextPageToken string `json:"nextPageToken,omitempty"`
9788
9789	// SelfLink: [Output Only] Server-defined URL for this resource.
9790	SelfLink string `json:"selfLink,omitempty"`
9791
9792	// Warning: [Output Only] Informational warning message.
9793	Warning *FirewallListWarning `json:"warning,omitempty"`
9794
9795	// ServerResponse contains the HTTP response code and headers from the
9796	// server.
9797	googleapi.ServerResponse `json:"-"`
9798
9799	// ForceSendFields is a list of field names (e.g. "Id") to
9800	// unconditionally include in API requests. By default, fields with
9801	// empty values are omitted from API requests. However, any non-pointer,
9802	// non-interface field appearing in ForceSendFields will be sent to the
9803	// server regardless of whether the field is empty or not. This may be
9804	// used to include empty fields in Patch requests.
9805	ForceSendFields []string `json:"-"`
9806
9807	// NullFields is a list of field names (e.g. "Id") to include in API
9808	// requests with the JSON null value. By default, fields with empty
9809	// values are omitted from API requests. However, any field with an
9810	// empty value appearing in NullFields will be sent to the server as
9811	// null. It is an error if a field in this list has a non-empty value.
9812	// This may be used to include null fields in Patch requests.
9813	NullFields []string `json:"-"`
9814}
9815
9816func (s *FirewallList) MarshalJSON() ([]byte, error) {
9817	type NoMethod FirewallList
9818	raw := NoMethod(*s)
9819	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9820}
9821
9822// FirewallListWarning: [Output Only] Informational warning message.
9823type FirewallListWarning struct {
9824	// Code: [Output Only] A warning code, if applicable. For example,
9825	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
9826	// the response.
9827	//
9828	// Possible values:
9829	//   "CLEANUP_FAILED"
9830	//   "DEPRECATED_RESOURCE_USED"
9831	//   "DEPRECATED_TYPE_USED"
9832	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
9833	//   "EXPERIMENTAL_TYPE_USED"
9834	//   "EXTERNAL_API_WARNING"
9835	//   "FIELD_VALUE_OVERRIDEN"
9836	//   "INJECTED_KERNELS_DEPRECATED"
9837	//   "MISSING_TYPE_DEPENDENCY"
9838	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
9839	//   "NEXT_HOP_CANNOT_IP_FORWARD"
9840	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
9841	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
9842	//   "NEXT_HOP_NOT_RUNNING"
9843	//   "NOT_CRITICAL_ERROR"
9844	//   "NO_RESULTS_ON_PAGE"
9845	//   "REQUIRED_TOS_AGREEMENT"
9846	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
9847	//   "RESOURCE_NOT_DELETED"
9848	//   "SCHEMA_VALIDATION_IGNORED"
9849	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
9850	//   "UNDECLARED_PROPERTIES"
9851	//   "UNREACHABLE"
9852	Code string `json:"code,omitempty"`
9853
9854	// Data: [Output Only] Metadata about this warning in key: value format.
9855	// For example:
9856	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
9857	Data []*FirewallListWarningData `json:"data,omitempty"`
9858
9859	// Message: [Output Only] A human-readable description of the warning
9860	// code.
9861	Message string `json:"message,omitempty"`
9862
9863	// ForceSendFields is a list of field names (e.g. "Code") to
9864	// unconditionally include in API requests. By default, fields with
9865	// empty values are omitted from API requests. However, any non-pointer,
9866	// non-interface field appearing in ForceSendFields will be sent to the
9867	// server regardless of whether the field is empty or not. This may be
9868	// used to include empty fields in Patch requests.
9869	ForceSendFields []string `json:"-"`
9870
9871	// NullFields is a list of field names (e.g. "Code") to include in API
9872	// requests with the JSON null value. By default, fields with empty
9873	// values are omitted from API requests. However, any field with an
9874	// empty value appearing in NullFields will be sent to the server as
9875	// null. It is an error if a field in this list has a non-empty value.
9876	// This may be used to include null fields in Patch requests.
9877	NullFields []string `json:"-"`
9878}
9879
9880func (s *FirewallListWarning) MarshalJSON() ([]byte, error) {
9881	type NoMethod FirewallListWarning
9882	raw := NoMethod(*s)
9883	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9884}
9885
9886type FirewallListWarningData struct {
9887	// Key: [Output Only] A key that provides more detail on the warning
9888	// being returned. For example, for warnings where there are no results
9889	// in a list request for a particular zone, this key might be scope and
9890	// the key value might be the zone name. Other examples might be a key
9891	// indicating a deprecated resource and a suggested replacement, or a
9892	// warning about invalid network settings (for example, if an instance
9893	// attempts to perform IP forwarding but is not enabled for IP
9894	// forwarding).
9895	Key string `json:"key,omitempty"`
9896
9897	// Value: [Output Only] A warning data value corresponding to the key.
9898	Value string `json:"value,omitempty"`
9899
9900	// ForceSendFields is a list of field names (e.g. "Key") to
9901	// unconditionally include in API requests. By default, fields with
9902	// empty values are omitted from API requests. However, any non-pointer,
9903	// non-interface field appearing in ForceSendFields will be sent to the
9904	// server regardless of whether the field is empty or not. This may be
9905	// used to include empty fields in Patch requests.
9906	ForceSendFields []string `json:"-"`
9907
9908	// NullFields is a list of field names (e.g. "Key") to include in API
9909	// requests with the JSON null value. By default, fields with empty
9910	// values are omitted from API requests. However, any field with an
9911	// empty value appearing in NullFields will be sent to the server as
9912	// null. It is an error if a field in this list has a non-empty value.
9913	// This may be used to include null fields in Patch requests.
9914	NullFields []string `json:"-"`
9915}
9916
9917func (s *FirewallListWarningData) MarshalJSON() ([]byte, error) {
9918	type NoMethod FirewallListWarningData
9919	raw := NoMethod(*s)
9920	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9921}
9922
9923// FirewallLogConfig: The available logging options for a firewall rule.
9924type FirewallLogConfig struct {
9925	// Enable: This field denotes whether to enable logging for a particular
9926	// firewall rule.
9927	Enable bool `json:"enable,omitempty"`
9928
9929	// Metadata: This field can only be specified for a particular firewall
9930	// rule if logging is enabled for that rule. This field denotes whether
9931	// to include or exclude metadata for firewall logs.
9932	//
9933	// Possible values:
9934	//   "EXCLUDE_ALL_METADATA"
9935	//   "INCLUDE_ALL_METADATA"
9936	Metadata string `json:"metadata,omitempty"`
9937
9938	// ForceSendFields is a list of field names (e.g. "Enable") to
9939	// unconditionally include in API requests. By default, fields with
9940	// empty values are omitted from API requests. However, any non-pointer,
9941	// non-interface field appearing in ForceSendFields will be sent to the
9942	// server regardless of whether the field is empty or not. This may be
9943	// used to include empty fields in Patch requests.
9944	ForceSendFields []string `json:"-"`
9945
9946	// NullFields is a list of field names (e.g. "Enable") to include in API
9947	// requests with the JSON null value. By default, fields with empty
9948	// values are omitted from API requests. However, any field with an
9949	// empty value appearing in NullFields will be sent to the server as
9950	// null. It is an error if a field in this list has a non-empty value.
9951	// This may be used to include null fields in Patch requests.
9952	NullFields []string `json:"-"`
9953}
9954
9955func (s *FirewallLogConfig) MarshalJSON() ([]byte, error) {
9956	type NoMethod FirewallLogConfig
9957	raw := NoMethod(*s)
9958	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9959}
9960
9961// FixedOrPercent: Encapsulates numeric value that can be either
9962// absolute or relative.
9963type FixedOrPercent struct {
9964	// Calculated: [Output Only] Absolute value of VM instances calculated
9965	// based on the specific mode.
9966	//
9967	//
9968	// - If the value is fixed, then the calculated value is equal to the
9969	// fixed value.
9970	// - If the value is a percent, then the calculated value is percent/100
9971	// * targetSize. For example, the calculated value of a 80% of a managed
9972	// instance group with 150 instances would be (80/100 * 150) = 120 VM
9973	// instances. If there is a remainder, the number is rounded up.
9974	Calculated int64 `json:"calculated,omitempty"`
9975
9976	// Fixed: Specifies a fixed number of VM instances. This must be a
9977	// positive integer.
9978	Fixed int64 `json:"fixed,omitempty"`
9979
9980	// Percent: Specifies a percentage of instances between 0 to 100%,
9981	// inclusive. For example, specify 80 for 80%.
9982	Percent int64 `json:"percent,omitempty"`
9983
9984	// ForceSendFields is a list of field names (e.g. "Calculated") to
9985	// unconditionally include in API requests. By default, fields with
9986	// empty values are omitted from API requests. However, any non-pointer,
9987	// non-interface field appearing in ForceSendFields will be sent to the
9988	// server regardless of whether the field is empty or not. This may be
9989	// used to include empty fields in Patch requests.
9990	ForceSendFields []string `json:"-"`
9991
9992	// NullFields is a list of field names (e.g. "Calculated") to include in
9993	// API requests with the JSON null value. By default, fields with empty
9994	// values are omitted from API requests. However, any field with an
9995	// empty value appearing in NullFields will be sent to the server as
9996	// null. It is an error if a field in this list has a non-empty value.
9997	// This may be used to include null fields in Patch requests.
9998	NullFields []string `json:"-"`
9999}
10000
10001func (s *FixedOrPercent) MarshalJSON() ([]byte, error) {
10002	type NoMethod FixedOrPercent
10003	raw := NoMethod(*s)
10004	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10005}
10006
10007// ForwardingRule: Represents a Forwarding Rule resource.
10008//
10009// A forwarding rule and its corresponding IP address represent the
10010// frontend configuration of a Google Cloud Platform load balancer.
10011// Forwarding rules can also reference target instances and Cloud VPN
10012// Classic gateways (targetVpnGateway).
10013//
10014// For more information, read Forwarding rule concepts and Using
10015// protocol forwarding.
10016//
10017// (== resource_for beta.forwardingRules ==) (== resource_for
10018// v1.forwardingRules ==) (== resource_for beta.globalForwardingRules
10019// ==) (== resource_for v1.globalForwardingRules ==) (== resource_for
10020// beta.regionForwardingRules ==) (== resource_for
10021// v1.regionForwardingRules ==)
10022type ForwardingRule struct {
10023	// IPAddress: IP address that this forwarding rule serves. When a client
10024	// sends traffic to this IP address, the forwarding rule directs the
10025	// traffic to the target that you specify in the forwarding rule.
10026	//
10027	// If you don't specify a reserved IP address, an ephemeral IP address
10028	// is assigned. Methods for specifying an IP address:
10029	//
10030	// * IPv4 dotted decimal, as in `100.1.2.3` * Full URL, as in
10031	// 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
10032	//
10033	// The loadBalancingScheme and the forwarding rule's target determine
10034	// the type of IP address that you can use. For detailed information,
10035	// refer to [IP address
10036	// specifications](/load-balancing/docs/forwarding-rule-concepts#ip_addre
10037	// ss_specifications).
10038	IPAddress string `json:"IPAddress,omitempty"`
10039
10040	// IPProtocol: The IP protocol to which this rule applies. Valid options
10041	// are TCP, UDP, ESP, AH, SCTP or ICMP.
10042	//
10043	// For Internal TCP/UDP Load Balancing, the load balancing scheme is
10044	// INTERNAL, and one of TCP or UDP are valid. For Traffic Director, the
10045	// load balancing scheme is INTERNAL_SELF_MANAGED, and only TCPis valid.
10046	// For Internal HTTP(S) Load Balancing, the load balancing scheme is
10047	// INTERNAL_MANAGED, and only TCP is valid. For HTTP(S), SSL Proxy, and
10048	// TCP Proxy Load Balancing, the load balancing scheme is EXTERNAL and
10049	// only TCP is valid. For Network TCP/UDP Load Balancing, the load
10050	// balancing scheme is EXTERNAL, and one of TCP or UDP is valid.
10051	//
10052	// Possible values:
10053	//   "AH"
10054	//   "ESP"
10055	//   "ICMP"
10056	//   "SCTP"
10057	//   "TCP"
10058	//   "UDP"
10059	IPProtocol string `json:"IPProtocol,omitempty"`
10060
10061	// AllPorts: This field is used along with the backend_service field for
10062	// internal load balancing or with the target field for internal
10063	// TargetInstance. This field cannot be used with port or portRange
10064	// fields.
10065	//
10066	// When the load balancing scheme is INTERNAL and protocol is TCP/UDP,
10067	// specify this field to allow packets addressed to any ports will be
10068	// forwarded to the backends configured with this forwarding rule.
10069	AllPorts bool `json:"allPorts,omitempty"`
10070
10071	// AllowGlobalAccess: This field is used along with the backend_service
10072	// field for internal load balancing or with the target field for
10073	// internal TargetInstance. If the field is set to TRUE, clients can
10074	// access ILB from all regions. Otherwise only allows access from
10075	// clients in the same region as the internal load balancer.
10076	AllowGlobalAccess bool `json:"allowGlobalAccess,omitempty"`
10077
10078	// BackendService: This field is only used for INTERNAL load
10079	// balancing.
10080	//
10081	// For internal load balancing, this field identifies the BackendService
10082	// resource to receive the matched traffic.
10083	BackendService string `json:"backendService,omitempty"`
10084
10085	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
10086	// format.
10087	CreationTimestamp string `json:"creationTimestamp,omitempty"`
10088
10089	// Description: An optional description of this resource. Provide this
10090	// property when you create the resource.
10091	Description string `json:"description,omitempty"`
10092
10093	// Fingerprint: Fingerprint of this resource. A hash of the contents
10094	// stored in this object. This field is used in optimistic locking. This
10095	// field will be ignored when inserting a ForwardingRule. Include the
10096	// fingerprint in patch request to ensure that you do not overwrite
10097	// changes that were applied from another concurrent request.
10098	//
10099	// To see the latest fingerprint, make a get() request to retrieve a
10100	// ForwardingRule.
10101	Fingerprint string `json:"fingerprint,omitempty"`
10102
10103	// Id: [Output Only] The unique identifier for the resource. This
10104	// identifier is defined by the server.
10105	Id uint64 `json:"id,omitempty,string"`
10106
10107	// IpVersion: The IP Version that will be used by this forwarding rule.
10108	// Valid options are IPV4 or IPV6. This can only be specified for an
10109	// external global forwarding rule.
10110	//
10111	// Possible values:
10112	//   "IPV4"
10113	//   "IPV6"
10114	//   "UNSPECIFIED_VERSION"
10115	IpVersion string `json:"ipVersion,omitempty"`
10116
10117	// IsMirroringCollector: Indicates whether or not this load balancer can
10118	// be used as a collector for packet mirroring. To prevent mirroring
10119	// loops, instances behind this load balancer will not have their
10120	// traffic mirrored even if a PacketMirroring rule applies to them. This
10121	// can only be set to true for load balancers that have their
10122	// loadBalancingScheme set to INTERNAL.
10123	IsMirroringCollector bool `json:"isMirroringCollector,omitempty"`
10124
10125	// Kind: [Output Only] Type of the resource. Always
10126	// compute#forwardingRule for Forwarding Rule resources.
10127	Kind string `json:"kind,omitempty"`
10128
10129	// LabelFingerprint: A fingerprint for the labels being applied to this
10130	// resource, which is essentially a hash of the labels set used for
10131	// optimistic locking. The fingerprint is initially generated by Compute
10132	// Engine and changes after every request to modify or update labels.
10133	// You must always provide an up-to-date fingerprint hash in order to
10134	// update or change labels, otherwise the request will fail with error
10135	// 412 conditionNotMet.
10136	//
10137	// To see the latest fingerprint, make a get() request to retrieve a
10138	// ForwardingRule.
10139	LabelFingerprint string `json:"labelFingerprint,omitempty"`
10140
10141	// Labels: Labels to apply to this resource. These can be later modified
10142	// by the setLabels method. Each label key/value pair must comply with
10143	// RFC1035. Label values may be empty.
10144	Labels map[string]string `json:"labels,omitempty"`
10145
10146	// LoadBalancingScheme: Specifies the forwarding rule type. EXTERNAL is
10147	// used for: - Classic Cloud VPN gateways - Protocol forwarding to VMs
10148	// from an external IP address - The following load balancers: HTTP(S),
10149	// SSL Proxy, TCP Proxy, and Network TCP/UDP.
10150	//
10151	// INTERNAL is used for: - Protocol forwarding to VMs from an internal
10152	// IP address - Internal TCP/UDP load balancers
10153	//
10154	// INTERNAL_MANAGED is used for: - Internal HTTP(S) load
10155	// balancers
10156	//
10157	// INTERNAL_SELF_MANAGED is used for: - Traffic Director
10158	//
10159	// For more information about forwarding rules, refer to Forwarding rule
10160	// concepts.
10161	//
10162	// Possible values:
10163	//   "EXTERNAL"
10164	//   "INTERNAL"
10165	//   "INTERNAL_MANAGED"
10166	//   "INTERNAL_SELF_MANAGED"
10167	//   "INVALID"
10168	LoadBalancingScheme string `json:"loadBalancingScheme,omitempty"`
10169
10170	// MetadataFilters: Opaque filter criteria used by Loadbalancer to
10171	// restrict routing configuration to a limited set xDS compliant
10172	// clients. In their xDS requests to Loadbalancer, xDS clients present
10173	// node metadata. If a match takes place, the relevant routing
10174	// configuration is made available to those proxies.
10175	// For each metadataFilter in this list, if its filterMatchCriteria is
10176	// set to MATCH_ANY, at least one of the filterLabels must match the
10177	// corresponding label provided in the metadata. If its
10178	// filterMatchCriteria is set to MATCH_ALL, then all of its filterLabels
10179	// must match with corresponding labels in the provided
10180	// metadata.
10181	// metadataFilters specified here can be overridden by those specified
10182	// in the UrlMap that this ForwardingRule references.
10183	// metadataFilters only applies to Loadbalancers that have their
10184	// loadBalancingScheme set to INTERNAL_SELF_MANAGED.
10185	MetadataFilters []*MetadataFilter `json:"metadataFilters,omitempty"`
10186
10187	// Name: Name of the resource; provided by the client when the resource
10188	// is created. The name must be 1-63 characters long, and comply with
10189	// RFC1035. Specifically, the name must be 1-63 characters long and
10190	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
10191	// the first character must be a lowercase letter, and all following
10192	// characters must be a dash, lowercase letter, or digit, except the
10193	// last character, which cannot be a dash.
10194	Name string `json:"name,omitempty"`
10195
10196	// Network: This field is not used for external load balancing.
10197	//
10198	// For INTERNAL and INTERNAL_SELF_MANAGED load balancing, this field
10199	// identifies the network that the load balanced IP should belong to for
10200	// this Forwarding Rule. If this field is not specified, the default
10201	// network will be used.
10202	Network string `json:"network,omitempty"`
10203
10204	// NetworkTier: This signifies the networking tier used for configuring
10205	// this load balancer and can only take the following values: PREMIUM ,
10206	// STANDARD.
10207	//
10208	// For regional ForwardingRule, the valid values are PREMIUM and
10209	// STANDARD. For GlobalForwardingRule, the valid value is PREMIUM.
10210	//
10211	// If this field is not specified, it is assumed to be PREMIUM. If
10212	// IPAddress is specified, this value must be equal to the networkTier
10213	// of the Address.
10214	//
10215	// Possible values:
10216	//   "PREMIUM"
10217	//   "SELECT"
10218	//   "STANDARD"
10219	NetworkTier string `json:"networkTier,omitempty"`
10220
10221	// PortRange: This field is deprecated. See the port
10222	// field.
10223	PortRange string `json:"portRange,omitempty"`
10224
10225	// Ports: List of comma-separated ports. The forwarding rule forwards
10226	// packets with matching destination ports. If the forwarding rule's
10227	// loadBalancingScheme is EXTERNAL, and the forwarding rule references a
10228	// target pool, specifying ports is optional. You can specify an
10229	// unlimited number of ports, but they must be contiguous. If you omit
10230	// ports, GCP forwards traffic on any port of the forwarding rule's
10231	// protocol.
10232	//
10233	// If the forwarding rule's loadBalancingScheme is EXTERNAL, and the
10234	// forwarding rule references a target HTTP proxy, target HTTPS proxy,
10235	// target TCP proxy, target SSL proxy, or target VPN gateway, you must
10236	// specify ports using the following constraints:
10237	//
10238	//
10239	// - TargetHttpProxy: 80, 8080
10240	// - TargetHttpsProxy: 443
10241	// - TargetTcpProxy: 25, 43, 110, 143, 195, 443, 465, 587, 700, 993,
10242	// 995, 1688, 1883, 5222
10243	// - TargetSslProxy: 25, 43, 110, 143, 195, 443, 465, 587, 700, 993,
10244	// 995, 1688, 1883, 5222
10245	// - TargetVpnGateway: 500, 4500
10246	//
10247	// If the forwarding rule's loadBalancingScheme is INTERNAL, you must
10248	// specify ports in one of the following ways:
10249	//
10250	// * A list of up to five ports, which can be non-contiguous * Keyword
10251	// ALL, which causes the forwarding rule to forward traffic on any port
10252	// of the forwarding rule's protocol.
10253	//
10254	// The ports field is used along with the target field for
10255	// TargetHttpProxy, TargetHttpsProxy, TargetSslProxy, TargetTcpProxy,
10256	// TargetVpnGateway, TargetPool, TargetInstance.
10257	//
10258	// Applicable only when IPProtocol is TCP, UDP, or SCTP. Forwarding
10259	// rules with the same [IPAddress, IPProtocol] pair must have disjoint
10260	// port ranges.
10261	Ports []string `json:"ports,omitempty"`
10262
10263	// Region: [Output Only] URL of the region where the regional forwarding
10264	// rule resides. This field is not applicable to global forwarding
10265	// rules. You must specify this field as part of the HTTP request URL.
10266	// It is not settable as a field in the request body.
10267	Region string `json:"region,omitempty"`
10268
10269	// SelfLink: [Output Only] Server-defined URL for the resource.
10270	SelfLink string `json:"selfLink,omitempty"`
10271
10272	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
10273	// with the resource id.
10274	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
10275
10276	// ServiceLabel: An optional prefix to the service name for this
10277	// Forwarding Rule. If specified, the prefix is the first label of the
10278	// fully qualified service name.
10279	//
10280	// The label must be 1-63 characters long, and comply with RFC1035.
10281	// Specifically, the label must be 1-63 characters long and match the
10282	// regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first
10283	// character must be a lowercase letter, and all following characters
10284	// must be a dash, lowercase letter, or digit, except the last
10285	// character, which cannot be a dash.
10286	//
10287	// This field is only used for internal load balancing.
10288	ServiceLabel string `json:"serviceLabel,omitempty"`
10289
10290	// ServiceName: [Output Only] The internal fully qualified service name
10291	// for this Forwarding Rule.
10292	//
10293	// This field is only used for internal load balancing.
10294	ServiceName string `json:"serviceName,omitempty"`
10295
10296	// Subnetwork: This field is only used for INTERNAL load balancing.
10297	//
10298	// For internal load balancing, this field identifies the subnetwork
10299	// that the load balanced IP should belong to for this Forwarding
10300	// Rule.
10301	//
10302	// If the network specified is in auto subnet mode, this field is
10303	// optional. However, if the network is in custom subnet mode, a
10304	// subnetwork must be specified.
10305	Subnetwork string `json:"subnetwork,omitempty"`
10306
10307	// Target: The URL of the target resource to receive the matched
10308	// traffic. For regional forwarding rules, this target must live in the
10309	// same region as the forwarding rule. For global forwarding rules, this
10310	// target must be a global load balancing resource. The forwarded
10311	// traffic must be of a type appropriate to the target object. For
10312	// INTERNAL_SELF_MANAGED load balancing, only HTTP and HTTPS targets are
10313	// valid.
10314	Target string `json:"target,omitempty"`
10315
10316	// ServerResponse contains the HTTP response code and headers from the
10317	// server.
10318	googleapi.ServerResponse `json:"-"`
10319
10320	// ForceSendFields is a list of field names (e.g. "IPAddress") to
10321	// unconditionally include in API requests. By default, fields with
10322	// empty values are omitted from API requests. However, any non-pointer,
10323	// non-interface field appearing in ForceSendFields will be sent to the
10324	// server regardless of whether the field is empty or not. This may be
10325	// used to include empty fields in Patch requests.
10326	ForceSendFields []string `json:"-"`
10327
10328	// NullFields is a list of field names (e.g. "IPAddress") to include in
10329	// API requests with the JSON null value. By default, fields with empty
10330	// values are omitted from API requests. However, any field with an
10331	// empty value appearing in NullFields will be sent to the server as
10332	// null. It is an error if a field in this list has a non-empty value.
10333	// This may be used to include null fields in Patch requests.
10334	NullFields []string `json:"-"`
10335}
10336
10337func (s *ForwardingRule) MarshalJSON() ([]byte, error) {
10338	type NoMethod ForwardingRule
10339	raw := NoMethod(*s)
10340	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10341}
10342
10343type ForwardingRuleAggregatedList struct {
10344	// Id: [Output Only] Unique identifier for the resource; defined by the
10345	// server.
10346	Id string `json:"id,omitempty"`
10347
10348	// Items: A list of ForwardingRulesScopedList resources.
10349	Items map[string]ForwardingRulesScopedList `json:"items,omitempty"`
10350
10351	// Kind: [Output Only] Type of resource. Always
10352	// compute#forwardingRuleAggregatedList for lists of forwarding rules.
10353	Kind string `json:"kind,omitempty"`
10354
10355	// NextPageToken: [Output Only] This token allows you to get the next
10356	// page of results for list requests. If the number of results is larger
10357	// than maxResults, use the nextPageToken as a value for the query
10358	// parameter pageToken in the next list request. Subsequent list
10359	// requests will have their own nextPageToken to continue paging through
10360	// the results.
10361	NextPageToken string `json:"nextPageToken,omitempty"`
10362
10363	// SelfLink: [Output Only] Server-defined URL for this resource.
10364	SelfLink string `json:"selfLink,omitempty"`
10365
10366	// Warning: [Output Only] Informational warning message.
10367	Warning *ForwardingRuleAggregatedListWarning `json:"warning,omitempty"`
10368
10369	// ServerResponse contains the HTTP response code and headers from the
10370	// server.
10371	googleapi.ServerResponse `json:"-"`
10372
10373	// ForceSendFields is a list of field names (e.g. "Id") to
10374	// unconditionally include in API requests. By default, fields with
10375	// empty values are omitted from API requests. However, any non-pointer,
10376	// non-interface field appearing in ForceSendFields will be sent to the
10377	// server regardless of whether the field is empty or not. This may be
10378	// used to include empty fields in Patch requests.
10379	ForceSendFields []string `json:"-"`
10380
10381	// NullFields is a list of field names (e.g. "Id") to include in API
10382	// requests with the JSON null value. By default, fields with empty
10383	// values are omitted from API requests. However, any field with an
10384	// empty value appearing in NullFields will be sent to the server as
10385	// null. It is an error if a field in this list has a non-empty value.
10386	// This may be used to include null fields in Patch requests.
10387	NullFields []string `json:"-"`
10388}
10389
10390func (s *ForwardingRuleAggregatedList) MarshalJSON() ([]byte, error) {
10391	type NoMethod ForwardingRuleAggregatedList
10392	raw := NoMethod(*s)
10393	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10394}
10395
10396// ForwardingRuleAggregatedListWarning: [Output Only] Informational
10397// warning message.
10398type ForwardingRuleAggregatedListWarning struct {
10399	// Code: [Output Only] A warning code, if applicable. For example,
10400	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
10401	// the response.
10402	//
10403	// Possible values:
10404	//   "CLEANUP_FAILED"
10405	//   "DEPRECATED_RESOURCE_USED"
10406	//   "DEPRECATED_TYPE_USED"
10407	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
10408	//   "EXPERIMENTAL_TYPE_USED"
10409	//   "EXTERNAL_API_WARNING"
10410	//   "FIELD_VALUE_OVERRIDEN"
10411	//   "INJECTED_KERNELS_DEPRECATED"
10412	//   "MISSING_TYPE_DEPENDENCY"
10413	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
10414	//   "NEXT_HOP_CANNOT_IP_FORWARD"
10415	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
10416	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
10417	//   "NEXT_HOP_NOT_RUNNING"
10418	//   "NOT_CRITICAL_ERROR"
10419	//   "NO_RESULTS_ON_PAGE"
10420	//   "REQUIRED_TOS_AGREEMENT"
10421	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
10422	//   "RESOURCE_NOT_DELETED"
10423	//   "SCHEMA_VALIDATION_IGNORED"
10424	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
10425	//   "UNDECLARED_PROPERTIES"
10426	//   "UNREACHABLE"
10427	Code string `json:"code,omitempty"`
10428
10429	// Data: [Output Only] Metadata about this warning in key: value format.
10430	// For example:
10431	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
10432	Data []*ForwardingRuleAggregatedListWarningData `json:"data,omitempty"`
10433
10434	// Message: [Output Only] A human-readable description of the warning
10435	// code.
10436	Message string `json:"message,omitempty"`
10437
10438	// ForceSendFields is a list of field names (e.g. "Code") to
10439	// unconditionally include in API requests. By default, fields with
10440	// empty values are omitted from API requests. However, any non-pointer,
10441	// non-interface field appearing in ForceSendFields will be sent to the
10442	// server regardless of whether the field is empty or not. This may be
10443	// used to include empty fields in Patch requests.
10444	ForceSendFields []string `json:"-"`
10445
10446	// NullFields is a list of field names (e.g. "Code") to include in API
10447	// requests with the JSON null value. By default, fields with empty
10448	// values are omitted from API requests. However, any field with an
10449	// empty value appearing in NullFields will be sent to the server as
10450	// null. It is an error if a field in this list has a non-empty value.
10451	// This may be used to include null fields in Patch requests.
10452	NullFields []string `json:"-"`
10453}
10454
10455func (s *ForwardingRuleAggregatedListWarning) MarshalJSON() ([]byte, error) {
10456	type NoMethod ForwardingRuleAggregatedListWarning
10457	raw := NoMethod(*s)
10458	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10459}
10460
10461type ForwardingRuleAggregatedListWarningData struct {
10462	// Key: [Output Only] A key that provides more detail on the warning
10463	// being returned. For example, for warnings where there are no results
10464	// in a list request for a particular zone, this key might be scope and
10465	// the key value might be the zone name. Other examples might be a key
10466	// indicating a deprecated resource and a suggested replacement, or a
10467	// warning about invalid network settings (for example, if an instance
10468	// attempts to perform IP forwarding but is not enabled for IP
10469	// forwarding).
10470	Key string `json:"key,omitempty"`
10471
10472	// Value: [Output Only] A warning data value corresponding to the key.
10473	Value string `json:"value,omitempty"`
10474
10475	// ForceSendFields is a list of field names (e.g. "Key") to
10476	// unconditionally include in API requests. By default, fields with
10477	// empty values are omitted from API requests. However, any non-pointer,
10478	// non-interface field appearing in ForceSendFields will be sent to the
10479	// server regardless of whether the field is empty or not. This may be
10480	// used to include empty fields in Patch requests.
10481	ForceSendFields []string `json:"-"`
10482
10483	// NullFields is a list of field names (e.g. "Key") to include in API
10484	// requests with the JSON null value. By default, fields with empty
10485	// values are omitted from API requests. However, any field with an
10486	// empty value appearing in NullFields will be sent to the server as
10487	// null. It is an error if a field in this list has a non-empty value.
10488	// This may be used to include null fields in Patch requests.
10489	NullFields []string `json:"-"`
10490}
10491
10492func (s *ForwardingRuleAggregatedListWarningData) MarshalJSON() ([]byte, error) {
10493	type NoMethod ForwardingRuleAggregatedListWarningData
10494	raw := NoMethod(*s)
10495	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10496}
10497
10498// ForwardingRuleList: Contains a list of ForwardingRule resources.
10499type ForwardingRuleList struct {
10500	// Id: [Output Only] Unique identifier for the resource; defined by the
10501	// server.
10502	Id string `json:"id,omitempty"`
10503
10504	// Items: A list of ForwardingRule resources.
10505	Items []*ForwardingRule `json:"items,omitempty"`
10506
10507	// Kind: Type of resource.
10508	Kind string `json:"kind,omitempty"`
10509
10510	// NextPageToken: [Output Only] This token allows you to get the next
10511	// page of results for list requests. If the number of results is larger
10512	// than maxResults, use the nextPageToken as a value for the query
10513	// parameter pageToken in the next list request. Subsequent list
10514	// requests will have their own nextPageToken to continue paging through
10515	// the results.
10516	NextPageToken string `json:"nextPageToken,omitempty"`
10517
10518	// SelfLink: [Output Only] Server-defined URL for this resource.
10519	SelfLink string `json:"selfLink,omitempty"`
10520
10521	// Warning: [Output Only] Informational warning message.
10522	Warning *ForwardingRuleListWarning `json:"warning,omitempty"`
10523
10524	// ServerResponse contains the HTTP response code and headers from the
10525	// server.
10526	googleapi.ServerResponse `json:"-"`
10527
10528	// ForceSendFields is a list of field names (e.g. "Id") to
10529	// unconditionally include in API requests. By default, fields with
10530	// empty values are omitted from API requests. However, any non-pointer,
10531	// non-interface field appearing in ForceSendFields will be sent to the
10532	// server regardless of whether the field is empty or not. This may be
10533	// used to include empty fields in Patch requests.
10534	ForceSendFields []string `json:"-"`
10535
10536	// NullFields is a list of field names (e.g. "Id") to include in API
10537	// requests with the JSON null value. By default, fields with empty
10538	// values are omitted from API requests. However, any field with an
10539	// empty value appearing in NullFields will be sent to the server as
10540	// null. It is an error if a field in this list has a non-empty value.
10541	// This may be used to include null fields in Patch requests.
10542	NullFields []string `json:"-"`
10543}
10544
10545func (s *ForwardingRuleList) MarshalJSON() ([]byte, error) {
10546	type NoMethod ForwardingRuleList
10547	raw := NoMethod(*s)
10548	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10549}
10550
10551// ForwardingRuleListWarning: [Output Only] Informational warning
10552// message.
10553type ForwardingRuleListWarning struct {
10554	// Code: [Output Only] A warning code, if applicable. For example,
10555	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
10556	// the response.
10557	//
10558	// Possible values:
10559	//   "CLEANUP_FAILED"
10560	//   "DEPRECATED_RESOURCE_USED"
10561	//   "DEPRECATED_TYPE_USED"
10562	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
10563	//   "EXPERIMENTAL_TYPE_USED"
10564	//   "EXTERNAL_API_WARNING"
10565	//   "FIELD_VALUE_OVERRIDEN"
10566	//   "INJECTED_KERNELS_DEPRECATED"
10567	//   "MISSING_TYPE_DEPENDENCY"
10568	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
10569	//   "NEXT_HOP_CANNOT_IP_FORWARD"
10570	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
10571	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
10572	//   "NEXT_HOP_NOT_RUNNING"
10573	//   "NOT_CRITICAL_ERROR"
10574	//   "NO_RESULTS_ON_PAGE"
10575	//   "REQUIRED_TOS_AGREEMENT"
10576	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
10577	//   "RESOURCE_NOT_DELETED"
10578	//   "SCHEMA_VALIDATION_IGNORED"
10579	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
10580	//   "UNDECLARED_PROPERTIES"
10581	//   "UNREACHABLE"
10582	Code string `json:"code,omitempty"`
10583
10584	// Data: [Output Only] Metadata about this warning in key: value format.
10585	// For example:
10586	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
10587	Data []*ForwardingRuleListWarningData `json:"data,omitempty"`
10588
10589	// Message: [Output Only] A human-readable description of the warning
10590	// code.
10591	Message string `json:"message,omitempty"`
10592
10593	// ForceSendFields is a list of field names (e.g. "Code") to
10594	// unconditionally include in API requests. By default, fields with
10595	// empty values are omitted from API requests. However, any non-pointer,
10596	// non-interface field appearing in ForceSendFields will be sent to the
10597	// server regardless of whether the field is empty or not. This may be
10598	// used to include empty fields in Patch requests.
10599	ForceSendFields []string `json:"-"`
10600
10601	// NullFields is a list of field names (e.g. "Code") to include in API
10602	// requests with the JSON null value. By default, fields with empty
10603	// values are omitted from API requests. However, any field with an
10604	// empty value appearing in NullFields will be sent to the server as
10605	// null. It is an error if a field in this list has a non-empty value.
10606	// This may be used to include null fields in Patch requests.
10607	NullFields []string `json:"-"`
10608}
10609
10610func (s *ForwardingRuleListWarning) MarshalJSON() ([]byte, error) {
10611	type NoMethod ForwardingRuleListWarning
10612	raw := NoMethod(*s)
10613	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10614}
10615
10616type ForwardingRuleListWarningData struct {
10617	// Key: [Output Only] A key that provides more detail on the warning
10618	// being returned. For example, for warnings where there are no results
10619	// in a list request for a particular zone, this key might be scope and
10620	// the key value might be the zone name. Other examples might be a key
10621	// indicating a deprecated resource and a suggested replacement, or a
10622	// warning about invalid network settings (for example, if an instance
10623	// attempts to perform IP forwarding but is not enabled for IP
10624	// forwarding).
10625	Key string `json:"key,omitempty"`
10626
10627	// Value: [Output Only] A warning data value corresponding to the key.
10628	Value string `json:"value,omitempty"`
10629
10630	// ForceSendFields is a list of field names (e.g. "Key") to
10631	// unconditionally include in API requests. By default, fields with
10632	// empty values are omitted from API requests. However, any non-pointer,
10633	// non-interface field appearing in ForceSendFields will be sent to the
10634	// server regardless of whether the field is empty or not. This may be
10635	// used to include empty fields in Patch requests.
10636	ForceSendFields []string `json:"-"`
10637
10638	// NullFields is a list of field names (e.g. "Key") to include in API
10639	// requests with the JSON null value. By default, fields with empty
10640	// values are omitted from API requests. However, any field with an
10641	// empty value appearing in NullFields will be sent to the server as
10642	// null. It is an error if a field in this list has a non-empty value.
10643	// This may be used to include null fields in Patch requests.
10644	NullFields []string `json:"-"`
10645}
10646
10647func (s *ForwardingRuleListWarningData) MarshalJSON() ([]byte, error) {
10648	type NoMethod ForwardingRuleListWarningData
10649	raw := NoMethod(*s)
10650	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10651}
10652
10653type ForwardingRuleReference struct {
10654	ForwardingRule string `json:"forwardingRule,omitempty"`
10655
10656	// ForceSendFields is a list of field names (e.g. "ForwardingRule") to
10657	// unconditionally include in API requests. By default, fields with
10658	// empty values are omitted from API requests. However, any non-pointer,
10659	// non-interface field appearing in ForceSendFields will be sent to the
10660	// server regardless of whether the field is empty or not. This may be
10661	// used to include empty fields in Patch requests.
10662	ForceSendFields []string `json:"-"`
10663
10664	// NullFields is a list of field names (e.g. "ForwardingRule") to
10665	// include in API requests with the JSON null value. By default, fields
10666	// with empty values are omitted from API requests. However, any field
10667	// with an empty value appearing in NullFields will be sent to the
10668	// server as null. It is an error if a field in this list has a
10669	// non-empty value. This may be used to include null fields in Patch
10670	// requests.
10671	NullFields []string `json:"-"`
10672}
10673
10674func (s *ForwardingRuleReference) MarshalJSON() ([]byte, error) {
10675	type NoMethod ForwardingRuleReference
10676	raw := NoMethod(*s)
10677	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10678}
10679
10680type ForwardingRulesScopedList struct {
10681	// ForwardingRules: A list of forwarding rules contained in this scope.
10682	ForwardingRules []*ForwardingRule `json:"forwardingRules,omitempty"`
10683
10684	// Warning: Informational warning which replaces the list of forwarding
10685	// rules when the list is empty.
10686	Warning *ForwardingRulesScopedListWarning `json:"warning,omitempty"`
10687
10688	// ForceSendFields is a list of field names (e.g. "ForwardingRules") to
10689	// unconditionally include in API requests. By default, fields with
10690	// empty values are omitted from API requests. However, any non-pointer,
10691	// non-interface field appearing in ForceSendFields will be sent to the
10692	// server regardless of whether the field is empty or not. This may be
10693	// used to include empty fields in Patch requests.
10694	ForceSendFields []string `json:"-"`
10695
10696	// NullFields is a list of field names (e.g. "ForwardingRules") to
10697	// include in API requests with the JSON null value. By default, fields
10698	// with empty values are omitted from API requests. However, any field
10699	// with an empty value appearing in NullFields will be sent to the
10700	// server as null. It is an error if a field in this list has a
10701	// non-empty value. This may be used to include null fields in Patch
10702	// requests.
10703	NullFields []string `json:"-"`
10704}
10705
10706func (s *ForwardingRulesScopedList) MarshalJSON() ([]byte, error) {
10707	type NoMethod ForwardingRulesScopedList
10708	raw := NoMethod(*s)
10709	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10710}
10711
10712// ForwardingRulesScopedListWarning: Informational warning which
10713// replaces the list of forwarding rules when the list is empty.
10714type ForwardingRulesScopedListWarning struct {
10715	// Code: [Output Only] A warning code, if applicable. For example,
10716	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
10717	// the response.
10718	//
10719	// Possible values:
10720	//   "CLEANUP_FAILED"
10721	//   "DEPRECATED_RESOURCE_USED"
10722	//   "DEPRECATED_TYPE_USED"
10723	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
10724	//   "EXPERIMENTAL_TYPE_USED"
10725	//   "EXTERNAL_API_WARNING"
10726	//   "FIELD_VALUE_OVERRIDEN"
10727	//   "INJECTED_KERNELS_DEPRECATED"
10728	//   "MISSING_TYPE_DEPENDENCY"
10729	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
10730	//   "NEXT_HOP_CANNOT_IP_FORWARD"
10731	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
10732	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
10733	//   "NEXT_HOP_NOT_RUNNING"
10734	//   "NOT_CRITICAL_ERROR"
10735	//   "NO_RESULTS_ON_PAGE"
10736	//   "REQUIRED_TOS_AGREEMENT"
10737	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
10738	//   "RESOURCE_NOT_DELETED"
10739	//   "SCHEMA_VALIDATION_IGNORED"
10740	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
10741	//   "UNDECLARED_PROPERTIES"
10742	//   "UNREACHABLE"
10743	Code string `json:"code,omitempty"`
10744
10745	// Data: [Output Only] Metadata about this warning in key: value format.
10746	// For example:
10747	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
10748	Data []*ForwardingRulesScopedListWarningData `json:"data,omitempty"`
10749
10750	// Message: [Output Only] A human-readable description of the warning
10751	// code.
10752	Message string `json:"message,omitempty"`
10753
10754	// ForceSendFields is a list of field names (e.g. "Code") to
10755	// unconditionally include in API requests. By default, fields with
10756	// empty values are omitted from API requests. However, any non-pointer,
10757	// non-interface field appearing in ForceSendFields will be sent to the
10758	// server regardless of whether the field is empty or not. This may be
10759	// used to include empty fields in Patch requests.
10760	ForceSendFields []string `json:"-"`
10761
10762	// NullFields is a list of field names (e.g. "Code") to include in API
10763	// requests with the JSON null value. By default, fields with empty
10764	// values are omitted from API requests. However, any field with an
10765	// empty value appearing in NullFields will be sent to the server as
10766	// null. It is an error if a field in this list has a non-empty value.
10767	// This may be used to include null fields in Patch requests.
10768	NullFields []string `json:"-"`
10769}
10770
10771func (s *ForwardingRulesScopedListWarning) MarshalJSON() ([]byte, error) {
10772	type NoMethod ForwardingRulesScopedListWarning
10773	raw := NoMethod(*s)
10774	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10775}
10776
10777type ForwardingRulesScopedListWarningData struct {
10778	// Key: [Output Only] A key that provides more detail on the warning
10779	// being returned. For example, for warnings where there are no results
10780	// in a list request for a particular zone, this key might be scope and
10781	// the key value might be the zone name. Other examples might be a key
10782	// indicating a deprecated resource and a suggested replacement, or a
10783	// warning about invalid network settings (for example, if an instance
10784	// attempts to perform IP forwarding but is not enabled for IP
10785	// forwarding).
10786	Key string `json:"key,omitempty"`
10787
10788	// Value: [Output Only] A warning data value corresponding to the key.
10789	Value string `json:"value,omitempty"`
10790
10791	// ForceSendFields is a list of field names (e.g. "Key") to
10792	// unconditionally include in API requests. By default, fields with
10793	// empty values are omitted from API requests. However, any non-pointer,
10794	// non-interface field appearing in ForceSendFields will be sent to the
10795	// server regardless of whether the field is empty or not. This may be
10796	// used to include empty fields in Patch requests.
10797	ForceSendFields []string `json:"-"`
10798
10799	// NullFields is a list of field names (e.g. "Key") to include in API
10800	// requests with the JSON null value. By default, fields with empty
10801	// values are omitted from API requests. However, any field with an
10802	// empty value appearing in NullFields will be sent to the server as
10803	// null. It is an error if a field in this list has a non-empty value.
10804	// This may be used to include null fields in Patch requests.
10805	NullFields []string `json:"-"`
10806}
10807
10808func (s *ForwardingRulesScopedListWarningData) MarshalJSON() ([]byte, error) {
10809	type NoMethod ForwardingRulesScopedListWarningData
10810	raw := NoMethod(*s)
10811	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10812}
10813
10814type GlobalNetworkEndpointGroupsAttachEndpointsRequest struct {
10815	// NetworkEndpoints: The list of network endpoints to be attached.
10816	NetworkEndpoints []*NetworkEndpoint `json:"networkEndpoints,omitempty"`
10817
10818	// ForceSendFields is a list of field names (e.g. "NetworkEndpoints") to
10819	// unconditionally include in API requests. By default, fields with
10820	// empty values are omitted from API requests. However, any non-pointer,
10821	// non-interface field appearing in ForceSendFields will be sent to the
10822	// server regardless of whether the field is empty or not. This may be
10823	// used to include empty fields in Patch requests.
10824	ForceSendFields []string `json:"-"`
10825
10826	// NullFields is a list of field names (e.g. "NetworkEndpoints") to
10827	// include in API requests with the JSON null value. By default, fields
10828	// with empty values are omitted from API requests. However, any field
10829	// with an empty value appearing in NullFields will be sent to the
10830	// server as null. It is an error if a field in this list has a
10831	// non-empty value. This may be used to include null fields in Patch
10832	// requests.
10833	NullFields []string `json:"-"`
10834}
10835
10836func (s *GlobalNetworkEndpointGroupsAttachEndpointsRequest) MarshalJSON() ([]byte, error) {
10837	type NoMethod GlobalNetworkEndpointGroupsAttachEndpointsRequest
10838	raw := NoMethod(*s)
10839	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10840}
10841
10842type GlobalNetworkEndpointGroupsDetachEndpointsRequest struct {
10843	// NetworkEndpoints: The list of network endpoints to be detached.
10844	NetworkEndpoints []*NetworkEndpoint `json:"networkEndpoints,omitempty"`
10845
10846	// ForceSendFields is a list of field names (e.g. "NetworkEndpoints") to
10847	// unconditionally include in API requests. By default, fields with
10848	// empty values are omitted from API requests. However, any non-pointer,
10849	// non-interface field appearing in ForceSendFields will be sent to the
10850	// server regardless of whether the field is empty or not. This may be
10851	// used to include empty fields in Patch requests.
10852	ForceSendFields []string `json:"-"`
10853
10854	// NullFields is a list of field names (e.g. "NetworkEndpoints") to
10855	// include in API requests with the JSON null value. By default, fields
10856	// with empty values are omitted from API requests. However, any field
10857	// with an empty value appearing in NullFields will be sent to the
10858	// server as null. It is an error if a field in this list has a
10859	// non-empty value. This may be used to include null fields in Patch
10860	// requests.
10861	NullFields []string `json:"-"`
10862}
10863
10864func (s *GlobalNetworkEndpointGroupsDetachEndpointsRequest) MarshalJSON() ([]byte, error) {
10865	type NoMethod GlobalNetworkEndpointGroupsDetachEndpointsRequest
10866	raw := NoMethod(*s)
10867	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10868}
10869
10870type GlobalSetLabelsRequest struct {
10871	// LabelFingerprint: The fingerprint of the previous set of labels for
10872	// this resource, used to detect conflicts. The fingerprint is initially
10873	// generated by Compute Engine and changes after every request to modify
10874	// or update labels. You must always provide an up-to-date fingerprint
10875	// hash when updating or changing labels, otherwise the request will
10876	// fail with error 412 conditionNotMet. Make a get() request to the
10877	// resource to get the latest fingerprint.
10878	LabelFingerprint string `json:"labelFingerprint,omitempty"`
10879
10880	// Labels: A list of labels to apply for this resource. Each label key &
10881	// value must comply with RFC1035. Specifically, the name must be 1-63
10882	// characters long and match the regular expression
10883	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
10884	// a lowercase letter, and all following characters must be a dash,
10885	// lowercase letter, or digit, except the last character, which cannot
10886	// be a dash. For example, "webserver-frontend": "images". A label value
10887	// can also be empty (e.g. "my-label": "").
10888	Labels map[string]string `json:"labels,omitempty"`
10889
10890	// ForceSendFields is a list of field names (e.g. "LabelFingerprint") to
10891	// unconditionally include in API requests. By default, fields with
10892	// empty values are omitted from API requests. However, any non-pointer,
10893	// non-interface field appearing in ForceSendFields will be sent to the
10894	// server regardless of whether the field is empty or not. This may be
10895	// used to include empty fields in Patch requests.
10896	ForceSendFields []string `json:"-"`
10897
10898	// NullFields is a list of field names (e.g. "LabelFingerprint") to
10899	// include in API requests with the JSON null value. By default, fields
10900	// with empty values are omitted from API requests. However, any field
10901	// with an empty value appearing in NullFields will be sent to the
10902	// server as null. It is an error if a field in this list has a
10903	// non-empty value. This may be used to include null fields in Patch
10904	// requests.
10905	NullFields []string `json:"-"`
10906}
10907
10908func (s *GlobalSetLabelsRequest) MarshalJSON() ([]byte, error) {
10909	type NoMethod GlobalSetLabelsRequest
10910	raw := NoMethod(*s)
10911	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10912}
10913
10914type GlobalSetPolicyRequest struct {
10915	// Bindings: Flatten Policy to create a backward compatible wire-format.
10916	// Deprecated. Use 'policy' to specify bindings.
10917	Bindings []*Binding `json:"bindings,omitempty"`
10918
10919	// Etag: Flatten Policy to create a backward compatible wire-format.
10920	// Deprecated. Use 'policy' to specify the etag.
10921	Etag string `json:"etag,omitempty"`
10922
10923	// Policy: REQUIRED: The complete policy to be applied to the
10924	// 'resource'. The size of the policy is limited to a few 10s of KB. An
10925	// empty policy is in general a valid policy but certain services (like
10926	// Projects) might reject them.
10927	Policy *Policy `json:"policy,omitempty"`
10928
10929	// ForceSendFields is a list of field names (e.g. "Bindings") to
10930	// unconditionally include in API requests. By default, fields with
10931	// empty values are omitted from API requests. However, any non-pointer,
10932	// non-interface field appearing in ForceSendFields will be sent to the
10933	// server regardless of whether the field is empty or not. This may be
10934	// used to include empty fields in Patch requests.
10935	ForceSendFields []string `json:"-"`
10936
10937	// NullFields is a list of field names (e.g. "Bindings") to include in
10938	// API requests with the JSON null value. By default, fields with empty
10939	// values are omitted from API requests. However, any field with an
10940	// empty value appearing in NullFields will be sent to the server as
10941	// null. It is an error if a field in this list has a non-empty value.
10942	// This may be used to include null fields in Patch requests.
10943	NullFields []string `json:"-"`
10944}
10945
10946func (s *GlobalSetPolicyRequest) MarshalJSON() ([]byte, error) {
10947	type NoMethod GlobalSetPolicyRequest
10948	raw := NoMethod(*s)
10949	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10950}
10951
10952// GrpcServiceConfig: gRPC config to access the SDS server.
10953type GrpcServiceConfig struct {
10954	// CallCredentials: The call credentials to access the SDS server.
10955	CallCredentials *CallCredentials `json:"callCredentials,omitempty"`
10956
10957	// ChannelCredentials: The channel credentials to access the SDS server.
10958	ChannelCredentials *ChannelCredentials `json:"channelCredentials,omitempty"`
10959
10960	// TargetUri: The target URI of the SDS server.
10961	TargetUri string `json:"targetUri,omitempty"`
10962
10963	// ForceSendFields is a list of field names (e.g. "CallCredentials") to
10964	// unconditionally include in API requests. By default, fields with
10965	// empty values are omitted from API requests. However, any non-pointer,
10966	// non-interface field appearing in ForceSendFields will be sent to the
10967	// server regardless of whether the field is empty or not. This may be
10968	// used to include empty fields in Patch requests.
10969	ForceSendFields []string `json:"-"`
10970
10971	// NullFields is a list of field names (e.g. "CallCredentials") to
10972	// include in API requests with the JSON null value. By default, fields
10973	// with empty values are omitted from API requests. However, any field
10974	// with an empty value appearing in NullFields will be sent to the
10975	// server as null. It is an error if a field in this list has a
10976	// non-empty value. This may be used to include null fields in Patch
10977	// requests.
10978	NullFields []string `json:"-"`
10979}
10980
10981func (s *GrpcServiceConfig) MarshalJSON() ([]byte, error) {
10982	type NoMethod GrpcServiceConfig
10983	raw := NoMethod(*s)
10984	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10985}
10986
10987// GuestAttributes: A guest attributes entry.
10988type GuestAttributes struct {
10989	// Kind: [Output Only] Type of the resource. Always
10990	// compute#guestAttributes for guest attributes entry.
10991	Kind string `json:"kind,omitempty"`
10992
10993	// QueryPath: The path to be queried. This can be the default namespace
10994	// ('/') or a nested namespace ('//') or a specified key ('//')
10995	QueryPath string `json:"queryPath,omitempty"`
10996
10997	// QueryValue: [Output Only] The value of the requested queried path.
10998	QueryValue *GuestAttributesValue `json:"queryValue,omitempty"`
10999
11000	// SelfLink: [Output Only] Server-defined URL for this resource.
11001	SelfLink string `json:"selfLink,omitempty"`
11002
11003	// VariableKey: The key to search for.
11004	VariableKey string `json:"variableKey,omitempty"`
11005
11006	// VariableValue: [Output Only] The value found for the requested key.
11007	VariableValue string `json:"variableValue,omitempty"`
11008
11009	// ServerResponse contains the HTTP response code and headers from the
11010	// server.
11011	googleapi.ServerResponse `json:"-"`
11012
11013	// ForceSendFields is a list of field names (e.g. "Kind") to
11014	// unconditionally include in API requests. By default, fields with
11015	// empty values are omitted from API requests. However, any non-pointer,
11016	// non-interface field appearing in ForceSendFields will be sent to the
11017	// server regardless of whether the field is empty or not. This may be
11018	// used to include empty fields in Patch requests.
11019	ForceSendFields []string `json:"-"`
11020
11021	// NullFields is a list of field names (e.g. "Kind") to include in API
11022	// requests with the JSON null value. By default, fields with empty
11023	// values are omitted from API requests. However, any field with an
11024	// empty value appearing in NullFields will be sent to the server as
11025	// null. It is an error if a field in this list has a non-empty value.
11026	// This may be used to include null fields in Patch requests.
11027	NullFields []string `json:"-"`
11028}
11029
11030func (s *GuestAttributes) MarshalJSON() ([]byte, error) {
11031	type NoMethod GuestAttributes
11032	raw := NoMethod(*s)
11033	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11034}
11035
11036// GuestAttributesEntry: A guest attributes namespace/key/value entry.
11037type GuestAttributesEntry struct {
11038	// Key: Key for the guest attribute entry.
11039	Key string `json:"key,omitempty"`
11040
11041	// Namespace: Namespace for the guest attribute entry.
11042	Namespace string `json:"namespace,omitempty"`
11043
11044	// Value: Value for the guest attribute entry.
11045	Value string `json:"value,omitempty"`
11046
11047	// ForceSendFields is a list of field names (e.g. "Key") to
11048	// unconditionally include in API requests. By default, fields with
11049	// empty values are omitted from API requests. However, any non-pointer,
11050	// non-interface field appearing in ForceSendFields will be sent to the
11051	// server regardless of whether the field is empty or not. This may be
11052	// used to include empty fields in Patch requests.
11053	ForceSendFields []string `json:"-"`
11054
11055	// NullFields is a list of field names (e.g. "Key") to include in API
11056	// requests with the JSON null value. By default, fields with empty
11057	// values are omitted from API requests. However, any field with an
11058	// empty value appearing in NullFields will be sent to the server as
11059	// null. It is an error if a field in this list has a non-empty value.
11060	// This may be used to include null fields in Patch requests.
11061	NullFields []string `json:"-"`
11062}
11063
11064func (s *GuestAttributesEntry) MarshalJSON() ([]byte, error) {
11065	type NoMethod GuestAttributesEntry
11066	raw := NoMethod(*s)
11067	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11068}
11069
11070// GuestAttributesValue: Array of guest attribute namespace/key/value
11071// tuples.
11072type GuestAttributesValue struct {
11073	Items []*GuestAttributesEntry `json:"items,omitempty"`
11074
11075	// ForceSendFields is a list of field names (e.g. "Items") to
11076	// unconditionally include in API requests. By default, fields with
11077	// empty values are omitted from API requests. However, any non-pointer,
11078	// non-interface field appearing in ForceSendFields will be sent to the
11079	// server regardless of whether the field is empty or not. This may be
11080	// used to include empty fields in Patch requests.
11081	ForceSendFields []string `json:"-"`
11082
11083	// NullFields is a list of field names (e.g. "Items") to include in API
11084	// requests with the JSON null value. By default, fields with empty
11085	// values are omitted from API requests. However, any field with an
11086	// empty value appearing in NullFields will be sent to the server as
11087	// null. It is an error if a field in this list has a non-empty value.
11088	// This may be used to include null fields in Patch requests.
11089	NullFields []string `json:"-"`
11090}
11091
11092func (s *GuestAttributesValue) MarshalJSON() ([]byte, error) {
11093	type NoMethod GuestAttributesValue
11094	raw := NoMethod(*s)
11095	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11096}
11097
11098// GuestOsFeature: Guest OS features.
11099type GuestOsFeature struct {
11100	// Type: The ID of a supported feature. Read  Enabling guest operating
11101	// system features to see a list of available options.
11102	//
11103	// Possible values:
11104	//   "FEATURE_TYPE_UNSPECIFIED"
11105	//   "GVNIC"
11106	//   "MULTI_IP_SUBNET"
11107	//   "SECURE_BOOT"
11108	//   "UEFI_COMPATIBLE"
11109	//   "VIRTIO_SCSI_MULTIQUEUE"
11110	//   "WINDOWS"
11111	Type string `json:"type,omitempty"`
11112
11113	// ForceSendFields is a list of field names (e.g. "Type") to
11114	// unconditionally include in API requests. By default, fields with
11115	// empty values are omitted from API requests. However, any non-pointer,
11116	// non-interface field appearing in ForceSendFields will be sent to the
11117	// server regardless of whether the field is empty or not. This may be
11118	// used to include empty fields in Patch requests.
11119	ForceSendFields []string `json:"-"`
11120
11121	// NullFields is a list of field names (e.g. "Type") to include in API
11122	// requests with the JSON null value. By default, fields with empty
11123	// values are omitted from API requests. However, any field with an
11124	// empty value appearing in NullFields will be sent to the server as
11125	// null. It is an error if a field in this list has a non-empty value.
11126	// This may be used to include null fields in Patch requests.
11127	NullFields []string `json:"-"`
11128}
11129
11130func (s *GuestOsFeature) MarshalJSON() ([]byte, error) {
11131	type NoMethod GuestOsFeature
11132	raw := NoMethod(*s)
11133	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11134}
11135
11136type HTTP2HealthCheck struct {
11137	// Host: The value of the host header in the HTTP/2 health check
11138	// request. If left empty (default value), the IP on behalf of which
11139	// this health check is performed will be used.
11140	Host string `json:"host,omitempty"`
11141
11142	// Port: The TCP port number for the health check request. The default
11143	// value is 443. Valid values are 1 through 65535.
11144	Port int64 `json:"port,omitempty"`
11145
11146	// PortName: Port name as defined in InstanceGroup#NamedPort#name. If
11147	// both port and port_name are defined, port takes precedence.
11148	PortName string `json:"portName,omitempty"`
11149
11150	// PortSpecification: Specifies how port is selected for health
11151	// checking, can be one of following values:
11152	// USE_FIXED_PORT: The port number in
11153	// port
11154	// is used for health checking.
11155	// USE_NAMED_PORT: The
11156	// portName
11157	// is used for health checking.
11158	// USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for
11159	// each network endpoint is used for health checking. For other
11160	// backends, the port or named port specified in the Backend Service is
11161	// used for health checking.
11162	//
11163	//
11164	// If not specified, HTTP2 health check follows behavior specified
11165	// in
11166	// port
11167	// and
11168	// portName
11169	// fields.
11170	//
11171	// Possible values:
11172	//   "USE_FIXED_PORT"
11173	//   "USE_NAMED_PORT"
11174	//   "USE_SERVING_PORT"
11175	PortSpecification string `json:"portSpecification,omitempty"`
11176
11177	// ProxyHeader: Specifies the type of proxy header to append before
11178	// sending data to the backend, either NONE or PROXY_V1. The default is
11179	// NONE.
11180	//
11181	// Possible values:
11182	//   "NONE"
11183	//   "PROXY_V1"
11184	ProxyHeader string `json:"proxyHeader,omitempty"`
11185
11186	// RequestPath: The request path of the HTTP/2 health check request. The
11187	// default value is /.
11188	RequestPath string `json:"requestPath,omitempty"`
11189
11190	// Response: The string to match anywhere in the first 1024 bytes of the
11191	// response body. If left empty (the default value), the status code
11192	// determines health. The response data can only be ASCII.
11193	Response string `json:"response,omitempty"`
11194
11195	// ForceSendFields is a list of field names (e.g. "Host") to
11196	// unconditionally include in API requests. By default, fields with
11197	// empty values are omitted from API requests. However, any non-pointer,
11198	// non-interface field appearing in ForceSendFields will be sent to the
11199	// server regardless of whether the field is empty or not. This may be
11200	// used to include empty fields in Patch requests.
11201	ForceSendFields []string `json:"-"`
11202
11203	// NullFields is a list of field names (e.g. "Host") to include in API
11204	// requests with the JSON null value. By default, fields with empty
11205	// values are omitted from API requests. However, any field with an
11206	// empty value appearing in NullFields will be sent to the server as
11207	// null. It is an error if a field in this list has a non-empty value.
11208	// This may be used to include null fields in Patch requests.
11209	NullFields []string `json:"-"`
11210}
11211
11212func (s *HTTP2HealthCheck) MarshalJSON() ([]byte, error) {
11213	type NoMethod HTTP2HealthCheck
11214	raw := NoMethod(*s)
11215	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11216}
11217
11218type HTTPHealthCheck struct {
11219	// Host: The value of the host header in the HTTP health check request.
11220	// If left empty (default value), the IP on behalf of which this health
11221	// check is performed will be used.
11222	Host string `json:"host,omitempty"`
11223
11224	// Port: The TCP port number for the health check request. The default
11225	// value is 80. Valid values are 1 through 65535.
11226	Port int64 `json:"port,omitempty"`
11227
11228	// PortName: Port name as defined in InstanceGroup#NamedPort#name. If
11229	// both port and port_name are defined, port takes precedence.
11230	PortName string `json:"portName,omitempty"`
11231
11232	// PortSpecification: Specifies how port is selected for health
11233	// checking, can be one of following values:
11234	// USE_FIXED_PORT: The port number in
11235	// port
11236	// is used for health checking.
11237	// USE_NAMED_PORT: The
11238	// portName
11239	// is used for health checking.
11240	// USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for
11241	// each network endpoint is used for health checking. For other
11242	// backends, the port or named port specified in the Backend Service is
11243	// used for health checking.
11244	//
11245	//
11246	// If not specified, HTTP health check follows behavior specified
11247	// in
11248	// port
11249	// and
11250	// portName
11251	// fields.
11252	//
11253	// Possible values:
11254	//   "USE_FIXED_PORT"
11255	//   "USE_NAMED_PORT"
11256	//   "USE_SERVING_PORT"
11257	PortSpecification string `json:"portSpecification,omitempty"`
11258
11259	// ProxyHeader: Specifies the type of proxy header to append before
11260	// sending data to the backend, either NONE or PROXY_V1. The default is
11261	// NONE.
11262	//
11263	// Possible values:
11264	//   "NONE"
11265	//   "PROXY_V1"
11266	ProxyHeader string `json:"proxyHeader,omitempty"`
11267
11268	// RequestPath: The request path of the HTTP health check request. The
11269	// default value is /.
11270	RequestPath string `json:"requestPath,omitempty"`
11271
11272	// Response: The string to match anywhere in the first 1024 bytes of the
11273	// response body. If left empty (the default value), the status code
11274	// determines health. The response data can only be ASCII.
11275	Response string `json:"response,omitempty"`
11276
11277	// ForceSendFields is a list of field names (e.g. "Host") to
11278	// unconditionally include in API requests. By default, fields with
11279	// empty values are omitted from API requests. However, any non-pointer,
11280	// non-interface field appearing in ForceSendFields will be sent to the
11281	// server regardless of whether the field is empty or not. This may be
11282	// used to include empty fields in Patch requests.
11283	ForceSendFields []string `json:"-"`
11284
11285	// NullFields is a list of field names (e.g. "Host") to include in API
11286	// requests with the JSON null value. By default, fields with empty
11287	// values are omitted from API requests. However, any field with an
11288	// empty value appearing in NullFields will be sent to the server as
11289	// null. It is an error if a field in this list has a non-empty value.
11290	// This may be used to include null fields in Patch requests.
11291	NullFields []string `json:"-"`
11292}
11293
11294func (s *HTTPHealthCheck) MarshalJSON() ([]byte, error) {
11295	type NoMethod HTTPHealthCheck
11296	raw := NoMethod(*s)
11297	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11298}
11299
11300type HTTPSHealthCheck struct {
11301	// Host: The value of the host header in the HTTPS health check request.
11302	// If left empty (default value), the IP on behalf of which this health
11303	// check is performed will be used.
11304	Host string `json:"host,omitempty"`
11305
11306	// Port: The TCP port number for the health check request. The default
11307	// value is 443. Valid values are 1 through 65535.
11308	Port int64 `json:"port,omitempty"`
11309
11310	// PortName: Port name as defined in InstanceGroup#NamedPort#name. If
11311	// both port and port_name are defined, port takes precedence.
11312	PortName string `json:"portName,omitempty"`
11313
11314	// PortSpecification: Specifies how port is selected for health
11315	// checking, can be one of following values:
11316	// USE_FIXED_PORT: The port number in
11317	// port
11318	// is used for health checking.
11319	// USE_NAMED_PORT: The
11320	// portName
11321	// is used for health checking.
11322	// USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for
11323	// each network endpoint is used for health checking. For other
11324	// backends, the port or named port specified in the Backend Service is
11325	// used for health checking.
11326	//
11327	//
11328	// If not specified, HTTPS health check follows behavior specified
11329	// in
11330	// port
11331	// and
11332	// portName
11333	// fields.
11334	//
11335	// Possible values:
11336	//   "USE_FIXED_PORT"
11337	//   "USE_NAMED_PORT"
11338	//   "USE_SERVING_PORT"
11339	PortSpecification string `json:"portSpecification,omitempty"`
11340
11341	// ProxyHeader: Specifies the type of proxy header to append before
11342	// sending data to the backend, either NONE or PROXY_V1. The default is
11343	// NONE.
11344	//
11345	// Possible values:
11346	//   "NONE"
11347	//   "PROXY_V1"
11348	ProxyHeader string `json:"proxyHeader,omitempty"`
11349
11350	// RequestPath: The request path of the HTTPS health check request. The
11351	// default value is /.
11352	RequestPath string `json:"requestPath,omitempty"`
11353
11354	// Response: The string to match anywhere in the first 1024 bytes of the
11355	// response body. If left empty (the default value), the status code
11356	// determines health. The response data can only be ASCII.
11357	Response string `json:"response,omitempty"`
11358
11359	// ForceSendFields is a list of field names (e.g. "Host") to
11360	// unconditionally include in API requests. By default, fields with
11361	// empty values are omitted from API requests. However, any non-pointer,
11362	// non-interface field appearing in ForceSendFields will be sent to the
11363	// server regardless of whether the field is empty or not. This may be
11364	// used to include empty fields in Patch requests.
11365	ForceSendFields []string `json:"-"`
11366
11367	// NullFields is a list of field names (e.g. "Host") to include in API
11368	// requests with the JSON null value. By default, fields with empty
11369	// values are omitted from API requests. However, any field with an
11370	// empty value appearing in NullFields will be sent to the server as
11371	// null. It is an error if a field in this list has a non-empty value.
11372	// This may be used to include null fields in Patch requests.
11373	NullFields []string `json:"-"`
11374}
11375
11376func (s *HTTPSHealthCheck) MarshalJSON() ([]byte, error) {
11377	type NoMethod HTTPSHealthCheck
11378	raw := NoMethod(*s)
11379	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11380}
11381
11382// HealthCheck: Represents a Health Check resource.
11383//
11384// Health checks are used for most GCP load balancers and managed
11385// instance group auto-healing. For more information, read Health Check
11386// Concepts.
11387//
11388// To perform health checks on network load balancers, you must use
11389// either httpHealthChecks or httpsHealthChecks.
11390type HealthCheck struct {
11391	// CheckIntervalSec: How often (in seconds) to send a health check. The
11392	// default value is 5 seconds.
11393	CheckIntervalSec int64 `json:"checkIntervalSec,omitempty"`
11394
11395	// CreationTimestamp: [Output Only] Creation timestamp in 3339 text
11396	// format.
11397	CreationTimestamp string `json:"creationTimestamp,omitempty"`
11398
11399	// Description: An optional description of this resource. Provide this
11400	// property when you create the resource.
11401	Description string `json:"description,omitempty"`
11402
11403	// HealthyThreshold: A so-far unhealthy instance will be marked healthy
11404	// after this many consecutive successes. The default value is 2.
11405	HealthyThreshold int64 `json:"healthyThreshold,omitempty"`
11406
11407	Http2HealthCheck *HTTP2HealthCheck `json:"http2HealthCheck,omitempty"`
11408
11409	HttpHealthCheck *HTTPHealthCheck `json:"httpHealthCheck,omitempty"`
11410
11411	HttpsHealthCheck *HTTPSHealthCheck `json:"httpsHealthCheck,omitempty"`
11412
11413	// Id: [Output Only] The unique identifier for the resource. This
11414	// identifier is defined by the server.
11415	Id uint64 `json:"id,omitempty,string"`
11416
11417	// Kind: Type of the resource.
11418	Kind string `json:"kind,omitempty"`
11419
11420	// LogConfig: Configure logging on this health check.
11421	LogConfig *HealthCheckLogConfig `json:"logConfig,omitempty"`
11422
11423	// Name: Name of the resource. Provided by the client when the resource
11424	// is created. The name must be 1-63 characters long, and comply with
11425	// RFC1035. Specifically, the name must be 1-63 characters long and
11426	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
11427	// the first character must be a lowercase letter, and all following
11428	// characters must be a dash, lowercase letter, or digit, except the
11429	// last character, which cannot be a dash.
11430	Name string `json:"name,omitempty"`
11431
11432	// Region: [Output Only] Region where the health check resides. Not
11433	// applicable to global health checks.
11434	Region string `json:"region,omitempty"`
11435
11436	// SelfLink: [Output Only] Server-defined URL for the resource.
11437	SelfLink string `json:"selfLink,omitempty"`
11438
11439	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
11440	// with the resource id.
11441	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
11442
11443	SslHealthCheck *SSLHealthCheck `json:"sslHealthCheck,omitempty"`
11444
11445	TcpHealthCheck *TCPHealthCheck `json:"tcpHealthCheck,omitempty"`
11446
11447	// TimeoutSec: How long (in seconds) to wait before claiming failure.
11448	// The default value is 5 seconds. It is invalid for timeoutSec to have
11449	// greater value than checkIntervalSec.
11450	TimeoutSec int64 `json:"timeoutSec,omitempty"`
11451
11452	// Type: Specifies the type of the healthCheck, either TCP, SSL, HTTP,
11453	// HTTPS or HTTP2. If not specified, the default is TCP. Exactly one of
11454	// the protocol-specific health check field must be specified, which
11455	// must match type field.
11456	//
11457	// Possible values:
11458	//   "HTTP"
11459	//   "HTTP2"
11460	//   "HTTPS"
11461	//   "INVALID"
11462	//   "SSL"
11463	//   "TCP"
11464	//   "UDP"
11465	Type string `json:"type,omitempty"`
11466
11467	UdpHealthCheck *UDPHealthCheck `json:"udpHealthCheck,omitempty"`
11468
11469	// UnhealthyThreshold: A so-far healthy instance will be marked
11470	// unhealthy after this many consecutive failures. The default value is
11471	// 2.
11472	UnhealthyThreshold int64 `json:"unhealthyThreshold,omitempty"`
11473
11474	// ServerResponse contains the HTTP response code and headers from the
11475	// server.
11476	googleapi.ServerResponse `json:"-"`
11477
11478	// ForceSendFields is a list of field names (e.g. "CheckIntervalSec") 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. "CheckIntervalSec") to
11487	// include in API requests with the JSON null value. By default, fields
11488	// with empty values are omitted from API requests. However, any field
11489	// with an empty value appearing in NullFields will be sent to the
11490	// server as null. It is an error if a field in this list has a
11491	// non-empty value. This may be used to include null fields in Patch
11492	// requests.
11493	NullFields []string `json:"-"`
11494}
11495
11496func (s *HealthCheck) MarshalJSON() ([]byte, error) {
11497	type NoMethod HealthCheck
11498	raw := NoMethod(*s)
11499	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11500}
11501
11502// HealthCheckList: Contains a list of HealthCheck resources.
11503type HealthCheckList struct {
11504	// Id: [Output Only] Unique identifier for the resource; defined by the
11505	// server.
11506	Id string `json:"id,omitempty"`
11507
11508	// Items: A list of HealthCheck resources.
11509	Items []*HealthCheck `json:"items,omitempty"`
11510
11511	// Kind: Type of resource.
11512	Kind string `json:"kind,omitempty"`
11513
11514	// NextPageToken: [Output Only] This token allows you to get the next
11515	// page of results for list requests. If the number of results is larger
11516	// than maxResults, use the nextPageToken as a value for the query
11517	// parameter pageToken in the next list request. Subsequent list
11518	// requests will have their own nextPageToken to continue paging through
11519	// the results.
11520	NextPageToken string `json:"nextPageToken,omitempty"`
11521
11522	// SelfLink: [Output Only] Server-defined URL for this resource.
11523	SelfLink string `json:"selfLink,omitempty"`
11524
11525	// Warning: [Output Only] Informational warning message.
11526	Warning *HealthCheckListWarning `json:"warning,omitempty"`
11527
11528	// ServerResponse contains the HTTP response code and headers from the
11529	// server.
11530	googleapi.ServerResponse `json:"-"`
11531
11532	// ForceSendFields is a list of field names (e.g. "Id") to
11533	// unconditionally include in API requests. By default, fields with
11534	// empty values are omitted from API requests. However, any non-pointer,
11535	// non-interface field appearing in ForceSendFields will be sent to the
11536	// server regardless of whether the field is empty or not. This may be
11537	// used to include empty fields in Patch requests.
11538	ForceSendFields []string `json:"-"`
11539
11540	// NullFields is a list of field names (e.g. "Id") to include in API
11541	// requests with the JSON null value. By default, fields with empty
11542	// values are omitted from API requests. However, any field with an
11543	// empty value appearing in NullFields will be sent to the server as
11544	// null. It is an error if a field in this list has a non-empty value.
11545	// This may be used to include null fields in Patch requests.
11546	NullFields []string `json:"-"`
11547}
11548
11549func (s *HealthCheckList) MarshalJSON() ([]byte, error) {
11550	type NoMethod HealthCheckList
11551	raw := NoMethod(*s)
11552	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11553}
11554
11555// HealthCheckListWarning: [Output Only] Informational warning message.
11556type HealthCheckListWarning struct {
11557	// Code: [Output Only] A warning code, if applicable. For example,
11558	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
11559	// the response.
11560	//
11561	// Possible values:
11562	//   "CLEANUP_FAILED"
11563	//   "DEPRECATED_RESOURCE_USED"
11564	//   "DEPRECATED_TYPE_USED"
11565	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
11566	//   "EXPERIMENTAL_TYPE_USED"
11567	//   "EXTERNAL_API_WARNING"
11568	//   "FIELD_VALUE_OVERRIDEN"
11569	//   "INJECTED_KERNELS_DEPRECATED"
11570	//   "MISSING_TYPE_DEPENDENCY"
11571	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
11572	//   "NEXT_HOP_CANNOT_IP_FORWARD"
11573	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
11574	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
11575	//   "NEXT_HOP_NOT_RUNNING"
11576	//   "NOT_CRITICAL_ERROR"
11577	//   "NO_RESULTS_ON_PAGE"
11578	//   "REQUIRED_TOS_AGREEMENT"
11579	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
11580	//   "RESOURCE_NOT_DELETED"
11581	//   "SCHEMA_VALIDATION_IGNORED"
11582	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
11583	//   "UNDECLARED_PROPERTIES"
11584	//   "UNREACHABLE"
11585	Code string `json:"code,omitempty"`
11586
11587	// Data: [Output Only] Metadata about this warning in key: value format.
11588	// For example:
11589	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
11590	Data []*HealthCheckListWarningData `json:"data,omitempty"`
11591
11592	// Message: [Output Only] A human-readable description of the warning
11593	// code.
11594	Message string `json:"message,omitempty"`
11595
11596	// ForceSendFields is a list of field names (e.g. "Code") to
11597	// unconditionally include in API requests. By default, fields with
11598	// empty values are omitted from API requests. However, any non-pointer,
11599	// non-interface field appearing in ForceSendFields will be sent to the
11600	// server regardless of whether the field is empty or not. This may be
11601	// used to include empty fields in Patch requests.
11602	ForceSendFields []string `json:"-"`
11603
11604	// NullFields is a list of field names (e.g. "Code") to include in API
11605	// requests with the JSON null value. By default, fields with empty
11606	// values are omitted from API requests. However, any field with an
11607	// empty value appearing in NullFields will be sent to the server as
11608	// null. It is an error if a field in this list has a non-empty value.
11609	// This may be used to include null fields in Patch requests.
11610	NullFields []string `json:"-"`
11611}
11612
11613func (s *HealthCheckListWarning) MarshalJSON() ([]byte, error) {
11614	type NoMethod HealthCheckListWarning
11615	raw := NoMethod(*s)
11616	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11617}
11618
11619type HealthCheckListWarningData struct {
11620	// Key: [Output Only] A key that provides more detail on the warning
11621	// being returned. For example, for warnings where there are no results
11622	// in a list request for a particular zone, this key might be scope and
11623	// the key value might be the zone name. Other examples might be a key
11624	// indicating a deprecated resource and a suggested replacement, or a
11625	// warning about invalid network settings (for example, if an instance
11626	// attempts to perform IP forwarding but is not enabled for IP
11627	// forwarding).
11628	Key string `json:"key,omitempty"`
11629
11630	// Value: [Output Only] A warning data value corresponding to the key.
11631	Value string `json:"value,omitempty"`
11632
11633	// ForceSendFields is a list of field names (e.g. "Key") to
11634	// unconditionally include in API requests. By default, fields with
11635	// empty values are omitted from API requests. However, any non-pointer,
11636	// non-interface field appearing in ForceSendFields will be sent to the
11637	// server regardless of whether the field is empty or not. This may be
11638	// used to include empty fields in Patch requests.
11639	ForceSendFields []string `json:"-"`
11640
11641	// NullFields is a list of field names (e.g. "Key") to include in API
11642	// requests with the JSON null value. By default, fields with empty
11643	// values are omitted from API requests. However, any field with an
11644	// empty value appearing in NullFields will be sent to the server as
11645	// null. It is an error if a field in this list has a non-empty value.
11646	// This may be used to include null fields in Patch requests.
11647	NullFields []string `json:"-"`
11648}
11649
11650func (s *HealthCheckListWarningData) MarshalJSON() ([]byte, error) {
11651	type NoMethod HealthCheckListWarningData
11652	raw := NoMethod(*s)
11653	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11654}
11655
11656// HealthCheckLogConfig: Configuration of logging on a health check. If
11657// logging is enabled, logs will be exported to Stackdriver.
11658type HealthCheckLogConfig struct {
11659	// Enable: Indicates whether or not to export logs. This is false by
11660	// default, which means no health check logging will be done.
11661	Enable bool `json:"enable,omitempty"`
11662
11663	// ForceSendFields is a list of field names (e.g. "Enable") to
11664	// unconditionally include in API requests. By default, fields with
11665	// empty values are omitted from API requests. However, any non-pointer,
11666	// non-interface field appearing in ForceSendFields will be sent to the
11667	// server regardless of whether the field is empty or not. This may be
11668	// used to include empty fields in Patch requests.
11669	ForceSendFields []string `json:"-"`
11670
11671	// NullFields is a list of field names (e.g. "Enable") to include in API
11672	// requests with the JSON null value. By default, fields with empty
11673	// values are omitted from API requests. However, any field with an
11674	// empty value appearing in NullFields will be sent to the server as
11675	// null. It is an error if a field in this list has a non-empty value.
11676	// This may be used to include null fields in Patch requests.
11677	NullFields []string `json:"-"`
11678}
11679
11680func (s *HealthCheckLogConfig) MarshalJSON() ([]byte, error) {
11681	type NoMethod HealthCheckLogConfig
11682	raw := NoMethod(*s)
11683	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11684}
11685
11686// HealthCheckReference: A full or valid partial URL to a health check.
11687// For example, the following are valid URLs:
11688// -
11689// https://www.googleapis.com/compute/beta/projects/project-id/global/httpHealthChecks/health-check
11690// - projects/project-id/global/httpHealthChecks/health-check
11691// - global/httpHealthChecks/health-check
11692type HealthCheckReference struct {
11693	HealthCheck string `json:"healthCheck,omitempty"`
11694
11695	// ForceSendFields is a list of field names (e.g. "HealthCheck") to
11696	// unconditionally include in API requests. By default, fields with
11697	// empty values are omitted from API requests. However, any non-pointer,
11698	// non-interface field appearing in ForceSendFields will be sent to the
11699	// server regardless of whether the field is empty or not. This may be
11700	// used to include empty fields in Patch requests.
11701	ForceSendFields []string `json:"-"`
11702
11703	// NullFields is a list of field names (e.g. "HealthCheck") to include
11704	// in API requests with the JSON null value. By default, fields with
11705	// empty values are omitted from API requests. However, any field with
11706	// an empty value appearing in NullFields will be sent to the server as
11707	// null. It is an error if a field in this list has a non-empty value.
11708	// This may be used to include null fields in Patch requests.
11709	NullFields []string `json:"-"`
11710}
11711
11712func (s *HealthCheckReference) MarshalJSON() ([]byte, error) {
11713	type NoMethod HealthCheckReference
11714	raw := NoMethod(*s)
11715	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11716}
11717
11718// HealthCheckService: A HealthCheckService defines a set of backends on
11719// which to perform periodic health checks and an endpoint to which to
11720// send notification of changes in the health status of the backends.
11721type HealthCheckService struct {
11722	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
11723	// format.
11724	CreationTimestamp string `json:"creationTimestamp,omitempty"`
11725
11726	// Description: An optional description of this resource. Provide this
11727	// property when you create the resource.
11728	Description string `json:"description,omitempty"`
11729
11730	// HealthChecks: List of URLs to the HealthCheck resources. Must have at
11731	// least one HealthCheck, and not more than 10. HealthCheck resources
11732	// must have portSpecification=USE_SERVING_PORT. For regional
11733	// HealthCheckService, the HealthCheck must be regional and in the same
11734	// region. For global HealthCheckService, HealthCheck must be global.
11735	// Mix of regional and global HealthChecks is not supported. Multiple
11736	// regional HealthChecks must belong to the same region. Regional
11737	// HealthChecks</code? must belong to the same region as zones of NEGs.
11738	HealthChecks []string `json:"healthChecks,omitempty"`
11739
11740	// HealthStatusAggregationPolicy: Optional. Policy for how the results
11741	// from multiple health checks for the same endpoint are aggregated.
11742	// Defaults to NO_AGGREGATION if unspecified.
11743	// - NO_AGGREGATION. An EndpointHealth message is returned for each
11744	// backend in the health check service.
11745	// - AND. If any backend's health check reports UNHEALTHY, then
11746	// UNHEALTHY is the HealthState of the entire health check service. If
11747	// all backend's are healthy, the HealthState of the health check
11748	// service is HEALTHY. .
11749	//
11750	// Possible values:
11751	//   "AND"
11752	//   "NO_AGGREGATION"
11753	HealthStatusAggregationPolicy string `json:"healthStatusAggregationPolicy,omitempty"`
11754
11755	// HealthStatusAggregationStrategy: Policy for how the results from
11756	// multiple health checks for the same endpoint are aggregated.
11757	// - NO_AGGREGATION. An EndpointHealth message is returned for each
11758	// backend in the health check service.
11759	// - AND. If any backend's health check reports UNHEALTHY, then
11760	// UNHEALTHY is the HealthState of the entire health check service. If
11761	// all backend's are healthy, the HealthState of the health check
11762	// service is HEALTHY. .
11763	//
11764	// Possible values:
11765	//   "AND"
11766	//   "NO_AGGREGATION"
11767	HealthStatusAggregationStrategy string `json:"healthStatusAggregationStrategy,omitempty"`
11768
11769	// Id: [Output Only] The unique identifier for the resource. This
11770	// identifier is defined by the server.
11771	Id uint64 `json:"id,omitempty,string"`
11772
11773	// Kind: [Output only] Type of the resource. Always
11774	// compute#healthCheckServicefor health check services.
11775	Kind string `json:"kind,omitempty"`
11776
11777	// Name: Name of the resource. The name must be 1-63 characters long,
11778	// and comply with RFC1035. Specifically, the name must be 1-63
11779	// characters long and match the regular expression
11780	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
11781	// a lowercase letter, and all following characters must be a dash,
11782	// lowercase letter, or digit, except the last character, which cannot
11783	// be a dash.
11784	Name string `json:"name,omitempty"`
11785
11786	// NetworkEndpointGroups: List of URLs to the NetworkEndpointGroup
11787	// resources. Must not have more than 100. For regional
11788	// HealthCheckService, NEGs must be in zones in the region of the
11789	// HealthCheckService.
11790	NetworkEndpointGroups []string `json:"networkEndpointGroups,omitempty"`
11791
11792	// NotificationEndpoints: List of URLs to the NotificationEndpoint
11793	// resources. Must not have more than 10. A list of endpoints for
11794	// receiving notifications of change in health status. For regional
11795	// HealthCheckService, NotificationEndpoint must be regional and in the
11796	// same region. For global HealthCheckService, NotificationEndpoint must
11797	// be global.
11798	NotificationEndpoints []string `json:"notificationEndpoints,omitempty"`
11799
11800	// Region: [Output Only] URL of the region where the health check
11801	// service resides. This field is not applicable to global health check
11802	// services. You must specify this field as part of the HTTP request
11803	// URL. It is not settable as a field in the request body.
11804	Region string `json:"region,omitempty"`
11805
11806	// SelfLink: [Output Only] Server-defined URL for the resource.
11807	SelfLink string `json:"selfLink,omitempty"`
11808
11809	// SelfLinkWithId: [Output Only] Server-defined URL with id for the
11810	// resource.
11811	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
11812
11813	// ServerResponse contains the HTTP response code and headers from the
11814	// server.
11815	googleapi.ServerResponse `json:"-"`
11816
11817	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
11818	// to unconditionally include in API requests. By default, fields with
11819	// empty values are omitted from API requests. However, any non-pointer,
11820	// non-interface field appearing in ForceSendFields will be sent to the
11821	// server regardless of whether the field is empty or not. This may be
11822	// used to include empty fields in Patch requests.
11823	ForceSendFields []string `json:"-"`
11824
11825	// NullFields is a list of field names (e.g. "CreationTimestamp") to
11826	// include in API requests with the JSON null value. By default, fields
11827	// with empty values are omitted from API requests. However, any field
11828	// with an empty value appearing in NullFields will be sent to the
11829	// server as null. It is an error if a field in this list has a
11830	// non-empty value. This may be used to include null fields in Patch
11831	// requests.
11832	NullFields []string `json:"-"`
11833}
11834
11835func (s *HealthCheckService) MarshalJSON() ([]byte, error) {
11836	type NoMethod HealthCheckService
11837	raw := NoMethod(*s)
11838	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11839}
11840
11841// HealthCheckServiceReference: A full or valid partial URL to a health
11842// check service. For example, the following are valid URLs:
11843// -
11844// https://www.googleapis.com/compute/beta/projects/project-id/regions/us-west1/healthCheckServices/health-check-service
11845// -
11846// projects/project-id/regions/us-west1/healthCheckServices/health-check-
11847// service
11848// - regions/us-west1/healthCheckServices/health-check-service
11849type HealthCheckServiceReference struct {
11850	HealthCheckService string `json:"healthCheckService,omitempty"`
11851
11852	// ForceSendFields is a list of field names (e.g. "HealthCheckService")
11853	// to unconditionally include in API requests. By default, fields with
11854	// empty values are omitted from API requests. However, any non-pointer,
11855	// non-interface field appearing in ForceSendFields will be sent to the
11856	// server regardless of whether the field is empty or not. This may be
11857	// used to include empty fields in Patch requests.
11858	ForceSendFields []string `json:"-"`
11859
11860	// NullFields is a list of field names (e.g. "HealthCheckService") to
11861	// include in API requests with the JSON null value. By default, fields
11862	// with empty values are omitted from API requests. However, any field
11863	// with an empty value appearing in NullFields will be sent to the
11864	// server as null. It is an error if a field in this list has a
11865	// non-empty value. This may be used to include null fields in Patch
11866	// requests.
11867	NullFields []string `json:"-"`
11868}
11869
11870func (s *HealthCheckServiceReference) MarshalJSON() ([]byte, error) {
11871	type NoMethod HealthCheckServiceReference
11872	raw := NoMethod(*s)
11873	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11874}
11875
11876type HealthCheckServicesList struct {
11877	// Id: [Output Only] Unique identifier for the resource; defined by the
11878	// server.
11879	Id string `json:"id,omitempty"`
11880
11881	// Items: A list of HealthCheckService resources.
11882	Items []*HealthCheckService `json:"items,omitempty"`
11883
11884	// Kind: [Output Only] Type of the resource. Always
11885	// compute#healthCheckServicesList for lists of HealthCheckServices.
11886	Kind string `json:"kind,omitempty"`
11887
11888	// NextPageToken: [Output Only] This token allows you to get the next
11889	// page of results for list requests. If the number of results is larger
11890	// than maxResults, use the nextPageToken as a value for the query
11891	// parameter pageToken in the next list request. Subsequent list
11892	// requests will have their own nextPageToken to continue paging through
11893	// the results.
11894	NextPageToken string `json:"nextPageToken,omitempty"`
11895
11896	// SelfLink: [Output Only] Server-defined URL for this resource.
11897	SelfLink string `json:"selfLink,omitempty"`
11898
11899	// Warning: [Output Only] Informational warning message.
11900	Warning *HealthCheckServicesListWarning `json:"warning,omitempty"`
11901
11902	// ServerResponse contains the HTTP response code and headers from the
11903	// server.
11904	googleapi.ServerResponse `json:"-"`
11905
11906	// ForceSendFields is a list of field names (e.g. "Id") to
11907	// unconditionally include in API requests. By default, fields with
11908	// empty values are omitted from API requests. However, any non-pointer,
11909	// non-interface field appearing in ForceSendFields will be sent to the
11910	// server regardless of whether the field is empty or not. This may be
11911	// used to include empty fields in Patch requests.
11912	ForceSendFields []string `json:"-"`
11913
11914	// NullFields is a list of field names (e.g. "Id") to include in API
11915	// requests with the JSON null value. By default, fields with empty
11916	// values are omitted from API requests. However, any field with an
11917	// empty value appearing in NullFields will be sent to the server as
11918	// null. It is an error if a field in this list has a non-empty value.
11919	// This may be used to include null fields in Patch requests.
11920	NullFields []string `json:"-"`
11921}
11922
11923func (s *HealthCheckServicesList) MarshalJSON() ([]byte, error) {
11924	type NoMethod HealthCheckServicesList
11925	raw := NoMethod(*s)
11926	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11927}
11928
11929// HealthCheckServicesListWarning: [Output Only] Informational warning
11930// message.
11931type HealthCheckServicesListWarning struct {
11932	// Code: [Output Only] A warning code, if applicable. For example,
11933	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
11934	// the response.
11935	//
11936	// Possible values:
11937	//   "CLEANUP_FAILED"
11938	//   "DEPRECATED_RESOURCE_USED"
11939	//   "DEPRECATED_TYPE_USED"
11940	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
11941	//   "EXPERIMENTAL_TYPE_USED"
11942	//   "EXTERNAL_API_WARNING"
11943	//   "FIELD_VALUE_OVERRIDEN"
11944	//   "INJECTED_KERNELS_DEPRECATED"
11945	//   "MISSING_TYPE_DEPENDENCY"
11946	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
11947	//   "NEXT_HOP_CANNOT_IP_FORWARD"
11948	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
11949	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
11950	//   "NEXT_HOP_NOT_RUNNING"
11951	//   "NOT_CRITICAL_ERROR"
11952	//   "NO_RESULTS_ON_PAGE"
11953	//   "REQUIRED_TOS_AGREEMENT"
11954	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
11955	//   "RESOURCE_NOT_DELETED"
11956	//   "SCHEMA_VALIDATION_IGNORED"
11957	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
11958	//   "UNDECLARED_PROPERTIES"
11959	//   "UNREACHABLE"
11960	Code string `json:"code,omitempty"`
11961
11962	// Data: [Output Only] Metadata about this warning in key: value format.
11963	// For example:
11964	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
11965	Data []*HealthCheckServicesListWarningData `json:"data,omitempty"`
11966
11967	// Message: [Output Only] A human-readable description of the warning
11968	// code.
11969	Message string `json:"message,omitempty"`
11970
11971	// ForceSendFields is a list of field names (e.g. "Code") to
11972	// unconditionally include in API requests. By default, fields with
11973	// empty values are omitted from API requests. However, any non-pointer,
11974	// non-interface field appearing in ForceSendFields will be sent to the
11975	// server regardless of whether the field is empty or not. This may be
11976	// used to include empty fields in Patch requests.
11977	ForceSendFields []string `json:"-"`
11978
11979	// NullFields is a list of field names (e.g. "Code") to include in API
11980	// requests with the JSON null value. By default, fields with empty
11981	// values are omitted from API requests. However, any field with an
11982	// empty value appearing in NullFields will be sent to the server as
11983	// null. It is an error if a field in this list has a non-empty value.
11984	// This may be used to include null fields in Patch requests.
11985	NullFields []string `json:"-"`
11986}
11987
11988func (s *HealthCheckServicesListWarning) MarshalJSON() ([]byte, error) {
11989	type NoMethod HealthCheckServicesListWarning
11990	raw := NoMethod(*s)
11991	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11992}
11993
11994type HealthCheckServicesListWarningData struct {
11995	// Key: [Output Only] A key that provides more detail on the warning
11996	// being returned. For example, for warnings where there are no results
11997	// in a list request for a particular zone, this key might be scope and
11998	// the key value might be the zone name. Other examples might be a key
11999	// indicating a deprecated resource and a suggested replacement, or a
12000	// warning about invalid network settings (for example, if an instance
12001	// attempts to perform IP forwarding but is not enabled for IP
12002	// forwarding).
12003	Key string `json:"key,omitempty"`
12004
12005	// Value: [Output Only] A warning data value corresponding to the key.
12006	Value string `json:"value,omitempty"`
12007
12008	// ForceSendFields is a list of field names (e.g. "Key") to
12009	// unconditionally include in API requests. By default, fields with
12010	// empty values are omitted from API requests. However, any non-pointer,
12011	// non-interface field appearing in ForceSendFields will be sent to the
12012	// server regardless of whether the field is empty or not. This may be
12013	// used to include empty fields in Patch requests.
12014	ForceSendFields []string `json:"-"`
12015
12016	// NullFields is a list of field names (e.g. "Key") to include in API
12017	// requests with the JSON null value. By default, fields with empty
12018	// values are omitted from API requests. However, any field with an
12019	// empty value appearing in NullFields will be sent to the server as
12020	// null. It is an error if a field in this list has a non-empty value.
12021	// This may be used to include null fields in Patch requests.
12022	NullFields []string `json:"-"`
12023}
12024
12025func (s *HealthCheckServicesListWarningData) MarshalJSON() ([]byte, error) {
12026	type NoMethod HealthCheckServicesListWarningData
12027	raw := NoMethod(*s)
12028	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12029}
12030
12031type HealthChecksAggregatedList struct {
12032	// Id: [Output Only] Unique identifier for the resource; defined by the
12033	// server.
12034	Id string `json:"id,omitempty"`
12035
12036	// Items: A list of HealthChecksScopedList resources.
12037	Items map[string]HealthChecksScopedList `json:"items,omitempty"`
12038
12039	// Kind: Type of resource.
12040	Kind string `json:"kind,omitempty"`
12041
12042	// NextPageToken: [Output Only] This token allows you to get the next
12043	// page of results for list requests. If the number of results is larger
12044	// than maxResults, use the nextPageToken as a value for the query
12045	// parameter pageToken in the next list request. Subsequent list
12046	// requests will have their own nextPageToken to continue paging through
12047	// the results.
12048	NextPageToken string `json:"nextPageToken,omitempty"`
12049
12050	// SelfLink: [Output Only] Server-defined URL for this resource.
12051	SelfLink string `json:"selfLink,omitempty"`
12052
12053	// Warning: [Output Only] Informational warning message.
12054	Warning *HealthChecksAggregatedListWarning `json:"warning,omitempty"`
12055
12056	// ServerResponse contains the HTTP response code and headers from the
12057	// server.
12058	googleapi.ServerResponse `json:"-"`
12059
12060	// ForceSendFields is a list of field names (e.g. "Id") to
12061	// unconditionally include in API requests. By default, fields with
12062	// empty values are omitted from API requests. However, any non-pointer,
12063	// non-interface field appearing in ForceSendFields will be sent to the
12064	// server regardless of whether the field is empty or not. This may be
12065	// used to include empty fields in Patch requests.
12066	ForceSendFields []string `json:"-"`
12067
12068	// NullFields is a list of field names (e.g. "Id") to include in API
12069	// requests with the JSON null value. By default, fields with empty
12070	// values are omitted from API requests. However, any field with an
12071	// empty value appearing in NullFields will be sent to the server as
12072	// null. It is an error if a field in this list has a non-empty value.
12073	// This may be used to include null fields in Patch requests.
12074	NullFields []string `json:"-"`
12075}
12076
12077func (s *HealthChecksAggregatedList) MarshalJSON() ([]byte, error) {
12078	type NoMethod HealthChecksAggregatedList
12079	raw := NoMethod(*s)
12080	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12081}
12082
12083// HealthChecksAggregatedListWarning: [Output Only] Informational
12084// warning message.
12085type HealthChecksAggregatedListWarning struct {
12086	// Code: [Output Only] A warning code, if applicable. For example,
12087	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
12088	// the response.
12089	//
12090	// Possible values:
12091	//   "CLEANUP_FAILED"
12092	//   "DEPRECATED_RESOURCE_USED"
12093	//   "DEPRECATED_TYPE_USED"
12094	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
12095	//   "EXPERIMENTAL_TYPE_USED"
12096	//   "EXTERNAL_API_WARNING"
12097	//   "FIELD_VALUE_OVERRIDEN"
12098	//   "INJECTED_KERNELS_DEPRECATED"
12099	//   "MISSING_TYPE_DEPENDENCY"
12100	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
12101	//   "NEXT_HOP_CANNOT_IP_FORWARD"
12102	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
12103	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
12104	//   "NEXT_HOP_NOT_RUNNING"
12105	//   "NOT_CRITICAL_ERROR"
12106	//   "NO_RESULTS_ON_PAGE"
12107	//   "REQUIRED_TOS_AGREEMENT"
12108	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
12109	//   "RESOURCE_NOT_DELETED"
12110	//   "SCHEMA_VALIDATION_IGNORED"
12111	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
12112	//   "UNDECLARED_PROPERTIES"
12113	//   "UNREACHABLE"
12114	Code string `json:"code,omitempty"`
12115
12116	// Data: [Output Only] Metadata about this warning in key: value format.
12117	// For example:
12118	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
12119	Data []*HealthChecksAggregatedListWarningData `json:"data,omitempty"`
12120
12121	// Message: [Output Only] A human-readable description of the warning
12122	// code.
12123	Message string `json:"message,omitempty"`
12124
12125	// ForceSendFields is a list of field names (e.g. "Code") to
12126	// unconditionally include in API requests. By default, fields with
12127	// empty values are omitted from API requests. However, any non-pointer,
12128	// non-interface field appearing in ForceSendFields will be sent to the
12129	// server regardless of whether the field is empty or not. This may be
12130	// used to include empty fields in Patch requests.
12131	ForceSendFields []string `json:"-"`
12132
12133	// NullFields is a list of field names (e.g. "Code") to include in API
12134	// requests with the JSON null value. By default, fields with empty
12135	// values are omitted from API requests. However, any field with an
12136	// empty value appearing in NullFields will be sent to the server as
12137	// null. It is an error if a field in this list has a non-empty value.
12138	// This may be used to include null fields in Patch requests.
12139	NullFields []string `json:"-"`
12140}
12141
12142func (s *HealthChecksAggregatedListWarning) MarshalJSON() ([]byte, error) {
12143	type NoMethod HealthChecksAggregatedListWarning
12144	raw := NoMethod(*s)
12145	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12146}
12147
12148type HealthChecksAggregatedListWarningData struct {
12149	// Key: [Output Only] A key that provides more detail on the warning
12150	// being returned. For example, for warnings where there are no results
12151	// in a list request for a particular zone, this key might be scope and
12152	// the key value might be the zone name. Other examples might be a key
12153	// indicating a deprecated resource and a suggested replacement, or a
12154	// warning about invalid network settings (for example, if an instance
12155	// attempts to perform IP forwarding but is not enabled for IP
12156	// forwarding).
12157	Key string `json:"key,omitempty"`
12158
12159	// Value: [Output Only] A warning data value corresponding to the key.
12160	Value string `json:"value,omitempty"`
12161
12162	// ForceSendFields is a list of field names (e.g. "Key") to
12163	// unconditionally include in API requests. By default, fields with
12164	// empty values are omitted from API requests. However, any non-pointer,
12165	// non-interface field appearing in ForceSendFields will be sent to the
12166	// server regardless of whether the field is empty or not. This may be
12167	// used to include empty fields in Patch requests.
12168	ForceSendFields []string `json:"-"`
12169
12170	// NullFields is a list of field names (e.g. "Key") to include in API
12171	// requests with the JSON null value. By default, fields with empty
12172	// values are omitted from API requests. However, any field with an
12173	// empty value appearing in NullFields will be sent to the server as
12174	// null. It is an error if a field in this list has a non-empty value.
12175	// This may be used to include null fields in Patch requests.
12176	NullFields []string `json:"-"`
12177}
12178
12179func (s *HealthChecksAggregatedListWarningData) MarshalJSON() ([]byte, error) {
12180	type NoMethod HealthChecksAggregatedListWarningData
12181	raw := NoMethod(*s)
12182	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12183}
12184
12185type HealthChecksScopedList struct {
12186	// HealthChecks: A list of HealthChecks contained in this scope.
12187	HealthChecks []*HealthCheck `json:"healthChecks,omitempty"`
12188
12189	// Warning: Informational warning which replaces the list of backend
12190	// services when the list is empty.
12191	Warning *HealthChecksScopedListWarning `json:"warning,omitempty"`
12192
12193	// ForceSendFields is a list of field names (e.g. "HealthChecks") to
12194	// unconditionally include in API requests. By default, fields with
12195	// empty values are omitted from API requests. However, any non-pointer,
12196	// non-interface field appearing in ForceSendFields will be sent to the
12197	// server regardless of whether the field is empty or not. This may be
12198	// used to include empty fields in Patch requests.
12199	ForceSendFields []string `json:"-"`
12200
12201	// NullFields is a list of field names (e.g. "HealthChecks") to include
12202	// in API requests with the JSON null value. By default, fields with
12203	// empty values are omitted from API requests. However, any field with
12204	// an empty value appearing in NullFields will be sent to the server as
12205	// null. It is an error if a field in this list has a non-empty value.
12206	// This may be used to include null fields in Patch requests.
12207	NullFields []string `json:"-"`
12208}
12209
12210func (s *HealthChecksScopedList) MarshalJSON() ([]byte, error) {
12211	type NoMethod HealthChecksScopedList
12212	raw := NoMethod(*s)
12213	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12214}
12215
12216// HealthChecksScopedListWarning: Informational warning which replaces
12217// the list of backend services when the list is empty.
12218type HealthChecksScopedListWarning struct {
12219	// Code: [Output Only] A warning code, if applicable. For example,
12220	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
12221	// the response.
12222	//
12223	// Possible values:
12224	//   "CLEANUP_FAILED"
12225	//   "DEPRECATED_RESOURCE_USED"
12226	//   "DEPRECATED_TYPE_USED"
12227	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
12228	//   "EXPERIMENTAL_TYPE_USED"
12229	//   "EXTERNAL_API_WARNING"
12230	//   "FIELD_VALUE_OVERRIDEN"
12231	//   "INJECTED_KERNELS_DEPRECATED"
12232	//   "MISSING_TYPE_DEPENDENCY"
12233	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
12234	//   "NEXT_HOP_CANNOT_IP_FORWARD"
12235	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
12236	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
12237	//   "NEXT_HOP_NOT_RUNNING"
12238	//   "NOT_CRITICAL_ERROR"
12239	//   "NO_RESULTS_ON_PAGE"
12240	//   "REQUIRED_TOS_AGREEMENT"
12241	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
12242	//   "RESOURCE_NOT_DELETED"
12243	//   "SCHEMA_VALIDATION_IGNORED"
12244	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
12245	//   "UNDECLARED_PROPERTIES"
12246	//   "UNREACHABLE"
12247	Code string `json:"code,omitempty"`
12248
12249	// Data: [Output Only] Metadata about this warning in key: value format.
12250	// For example:
12251	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
12252	Data []*HealthChecksScopedListWarningData `json:"data,omitempty"`
12253
12254	// Message: [Output Only] A human-readable description of the warning
12255	// code.
12256	Message string `json:"message,omitempty"`
12257
12258	// ForceSendFields is a list of field names (e.g. "Code") to
12259	// unconditionally include in API requests. By default, fields with
12260	// empty values are omitted from API requests. However, any non-pointer,
12261	// non-interface field appearing in ForceSendFields will be sent to the
12262	// server regardless of whether the field is empty or not. This may be
12263	// used to include empty fields in Patch requests.
12264	ForceSendFields []string `json:"-"`
12265
12266	// NullFields is a list of field names (e.g. "Code") to include in API
12267	// requests with the JSON null value. By default, fields with empty
12268	// values are omitted from API requests. However, any field with an
12269	// empty value appearing in NullFields will be sent to the server as
12270	// null. It is an error if a field in this list has a non-empty value.
12271	// This may be used to include null fields in Patch requests.
12272	NullFields []string `json:"-"`
12273}
12274
12275func (s *HealthChecksScopedListWarning) MarshalJSON() ([]byte, error) {
12276	type NoMethod HealthChecksScopedListWarning
12277	raw := NoMethod(*s)
12278	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12279}
12280
12281type HealthChecksScopedListWarningData struct {
12282	// Key: [Output Only] A key that provides more detail on the warning
12283	// being returned. For example, for warnings where there are no results
12284	// in a list request for a particular zone, this key might be scope and
12285	// the key value might be the zone name. Other examples might be a key
12286	// indicating a deprecated resource and a suggested replacement, or a
12287	// warning about invalid network settings (for example, if an instance
12288	// attempts to perform IP forwarding but is not enabled for IP
12289	// forwarding).
12290	Key string `json:"key,omitempty"`
12291
12292	// Value: [Output Only] A warning data value corresponding to the key.
12293	Value string `json:"value,omitempty"`
12294
12295	// ForceSendFields is a list of field names (e.g. "Key") to
12296	// unconditionally include in API requests. By default, fields with
12297	// empty values are omitted from API requests. However, any non-pointer,
12298	// non-interface field appearing in ForceSendFields will be sent to the
12299	// server regardless of whether the field is empty or not. This may be
12300	// used to include empty fields in Patch requests.
12301	ForceSendFields []string `json:"-"`
12302
12303	// NullFields is a list of field names (e.g. "Key") to include in API
12304	// requests with the JSON null value. By default, fields with empty
12305	// values are omitted from API requests. However, any field with an
12306	// empty value appearing in NullFields will be sent to the server as
12307	// null. It is an error if a field in this list has a non-empty value.
12308	// This may be used to include null fields in Patch requests.
12309	NullFields []string `json:"-"`
12310}
12311
12312func (s *HealthChecksScopedListWarningData) MarshalJSON() ([]byte, error) {
12313	type NoMethod HealthChecksScopedListWarningData
12314	raw := NoMethod(*s)
12315	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12316}
12317
12318type HealthStatus struct {
12319	// Annotations: Metadata defined as annotations for network endpoint.
12320	Annotations map[string]string `json:"annotations,omitempty"`
12321
12322	// HealthState: Health state of the instance.
12323	//
12324	// Possible values:
12325	//   "HEALTHY"
12326	//   "UNHEALTHY"
12327	HealthState string `json:"healthState,omitempty"`
12328
12329	// Instance: URL of the instance resource.
12330	Instance string `json:"instance,omitempty"`
12331
12332	// IpAddress: The IP address represented by this resource.
12333	IpAddress string `json:"ipAddress,omitempty"`
12334
12335	// Port: The port on the instance.
12336	Port int64 `json:"port,omitempty"`
12337
12338	// ForceSendFields is a list of field names (e.g. "Annotations") to
12339	// unconditionally include in API requests. By default, fields with
12340	// empty values are omitted from API requests. However, any non-pointer,
12341	// non-interface field appearing in ForceSendFields will be sent to the
12342	// server regardless of whether the field is empty or not. This may be
12343	// used to include empty fields in Patch requests.
12344	ForceSendFields []string `json:"-"`
12345
12346	// NullFields is a list of field names (e.g. "Annotations") to include
12347	// in API requests with the JSON null value. By default, fields with
12348	// empty values are omitted from API requests. However, any field with
12349	// an empty value appearing in NullFields will be sent to the server as
12350	// null. It is an error if a field in this list has a non-empty value.
12351	// This may be used to include null fields in Patch requests.
12352	NullFields []string `json:"-"`
12353}
12354
12355func (s *HealthStatus) MarshalJSON() ([]byte, error) {
12356	type NoMethod HealthStatus
12357	raw := NoMethod(*s)
12358	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12359}
12360
12361type HealthStatusForNetworkEndpoint struct {
12362	// BackendService: URL of the backend service associated with the health
12363	// state of the network endpoint.
12364	BackendService *BackendServiceReference `json:"backendService,omitempty"`
12365
12366	// ForwardingRule: URL of the forwarding rule associated with the health
12367	// state of the network endpoint.
12368	ForwardingRule *ForwardingRuleReference `json:"forwardingRule,omitempty"`
12369
12370	// HealthCheck: URL of the health check associated with the health state
12371	// of the network endpoint.
12372	HealthCheck *HealthCheckReference `json:"healthCheck,omitempty"`
12373
12374	// HealthCheckService: URL of the health check service associated with
12375	// the health state of the network endpoint.
12376	HealthCheckService *HealthCheckServiceReference `json:"healthCheckService,omitempty"`
12377
12378	// HealthState: Health state of the network endpoint determined based on
12379	// the health checks configured.
12380	//
12381	// Possible values:
12382	//   "DRAINING"
12383	//   "HEALTHY"
12384	//   "UNHEALTHY"
12385	//   "UNKNOWN"
12386	HealthState string `json:"healthState,omitempty"`
12387
12388	// ForceSendFields is a list of field names (e.g. "BackendService") to
12389	// unconditionally include in API requests. By default, fields with
12390	// empty values are omitted from API requests. However, any non-pointer,
12391	// non-interface field appearing in ForceSendFields will be sent to the
12392	// server regardless of whether the field is empty or not. This may be
12393	// used to include empty fields in Patch requests.
12394	ForceSendFields []string `json:"-"`
12395
12396	// NullFields is a list of field names (e.g. "BackendService") to
12397	// include in API requests with the JSON null value. By default, fields
12398	// with empty values are omitted from API requests. However, any field
12399	// with an empty value appearing in NullFields will be sent to the
12400	// server as null. It is an error if a field in this list has a
12401	// non-empty value. This may be used to include null fields in Patch
12402	// requests.
12403	NullFields []string `json:"-"`
12404}
12405
12406func (s *HealthStatusForNetworkEndpoint) MarshalJSON() ([]byte, error) {
12407	type NoMethod HealthStatusForNetworkEndpoint
12408	raw := NoMethod(*s)
12409	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12410}
12411
12412// HostRule: UrlMaps A host-matching rule for a URL. If matched, will
12413// use the named PathMatcher to select the BackendService.
12414type HostRule struct {
12415	// Description: An optional description of this resource. Provide this
12416	// property when you create the resource.
12417	Description string `json:"description,omitempty"`
12418
12419	// Hosts: The list of host patterns to match. They must be valid
12420	// hostnames, except * will match any string of ([a-z0-9-.]*). In that
12421	// case, * must be the first character and must be followed in the
12422	// pattern by either - or ..
12423	Hosts []string `json:"hosts,omitempty"`
12424
12425	// PathMatcher: The name of the PathMatcher to use to match the path
12426	// portion of the URL if the hostRule matches the URL's host portion.
12427	PathMatcher string `json:"pathMatcher,omitempty"`
12428
12429	// ForceSendFields is a list of field names (e.g. "Description") to
12430	// unconditionally include in API requests. By default, fields with
12431	// empty values are omitted from API requests. However, any non-pointer,
12432	// non-interface field appearing in ForceSendFields will be sent to the
12433	// server regardless of whether the field is empty or not. This may be
12434	// used to include empty fields in Patch requests.
12435	ForceSendFields []string `json:"-"`
12436
12437	// NullFields is a list of field names (e.g. "Description") to include
12438	// in API requests with the JSON null value. By default, fields with
12439	// empty values are omitted from API requests. However, any field with
12440	// an empty value appearing in NullFields will be sent to the server as
12441	// null. It is an error if a field in this list has a non-empty value.
12442	// This may be used to include null fields in Patch requests.
12443	NullFields []string `json:"-"`
12444}
12445
12446func (s *HostRule) MarshalJSON() ([]byte, error) {
12447	type NoMethod HostRule
12448	raw := NoMethod(*s)
12449	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12450}
12451
12452// HttpFaultAbort: Specification for how requests are aborted as part of
12453// fault injection.
12454type HttpFaultAbort struct {
12455	// HttpStatus: The HTTP status code used to abort the request.
12456	// The value must be between 200 and 599 inclusive.
12457	HttpStatus int64 `json:"httpStatus,omitempty"`
12458
12459	// Percentage: The percentage of traffic
12460	// (connections/operations/requests) which will be aborted as part of
12461	// fault injection.
12462	// The value must be between 0.0 and 100.0 inclusive.
12463	Percentage float64 `json:"percentage,omitempty"`
12464
12465	// ForceSendFields is a list of field names (e.g. "HttpStatus") to
12466	// unconditionally include in API requests. By default, fields with
12467	// empty values are omitted from API requests. However, any non-pointer,
12468	// non-interface field appearing in ForceSendFields will be sent to the
12469	// server regardless of whether the field is empty or not. This may be
12470	// used to include empty fields in Patch requests.
12471	ForceSendFields []string `json:"-"`
12472
12473	// NullFields is a list of field names (e.g. "HttpStatus") to include in
12474	// API requests with the JSON null value. By default, fields with empty
12475	// values are omitted from API requests. However, any field with an
12476	// empty value appearing in NullFields will be sent to the server as
12477	// null. It is an error if a field in this list has a non-empty value.
12478	// This may be used to include null fields in Patch requests.
12479	NullFields []string `json:"-"`
12480}
12481
12482func (s *HttpFaultAbort) MarshalJSON() ([]byte, error) {
12483	type NoMethod HttpFaultAbort
12484	raw := NoMethod(*s)
12485	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12486}
12487
12488func (s *HttpFaultAbort) UnmarshalJSON(data []byte) error {
12489	type NoMethod HttpFaultAbort
12490	var s1 struct {
12491		Percentage gensupport.JSONFloat64 `json:"percentage"`
12492		*NoMethod
12493	}
12494	s1.NoMethod = (*NoMethod)(s)
12495	if err := json.Unmarshal(data, &s1); err != nil {
12496		return err
12497	}
12498	s.Percentage = float64(s1.Percentage)
12499	return nil
12500}
12501
12502// HttpFaultDelay: Specifies the delay introduced by Loadbalancer before
12503// forwarding the request to the backend service as part of fault
12504// injection.
12505type HttpFaultDelay struct {
12506	// FixedDelay: Specifies the value of the fixed delay interval.
12507	FixedDelay *Duration `json:"fixedDelay,omitempty"`
12508
12509	// Percentage: The percentage of traffic
12510	// (connections/operations/requests) on which delay will be introduced
12511	// as part of fault injection.
12512	// The value must be between 0.0 and 100.0 inclusive.
12513	Percentage float64 `json:"percentage,omitempty"`
12514
12515	// ForceSendFields is a list of field names (e.g. "FixedDelay") to
12516	// unconditionally include in API requests. By default, fields with
12517	// empty values are omitted from API requests. However, any non-pointer,
12518	// non-interface field appearing in ForceSendFields will be sent to the
12519	// server regardless of whether the field is empty or not. This may be
12520	// used to include empty fields in Patch requests.
12521	ForceSendFields []string `json:"-"`
12522
12523	// NullFields is a list of field names (e.g. "FixedDelay") to include in
12524	// API requests with the JSON null value. By default, fields with empty
12525	// values are omitted from API requests. However, any field with an
12526	// empty value appearing in NullFields will be sent to the server as
12527	// null. It is an error if a field in this list has a non-empty value.
12528	// This may be used to include null fields in Patch requests.
12529	NullFields []string `json:"-"`
12530}
12531
12532func (s *HttpFaultDelay) MarshalJSON() ([]byte, error) {
12533	type NoMethod HttpFaultDelay
12534	raw := NoMethod(*s)
12535	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12536}
12537
12538func (s *HttpFaultDelay) UnmarshalJSON(data []byte) error {
12539	type NoMethod HttpFaultDelay
12540	var s1 struct {
12541		Percentage gensupport.JSONFloat64 `json:"percentage"`
12542		*NoMethod
12543	}
12544	s1.NoMethod = (*NoMethod)(s)
12545	if err := json.Unmarshal(data, &s1); err != nil {
12546		return err
12547	}
12548	s.Percentage = float64(s1.Percentage)
12549	return nil
12550}
12551
12552// HttpFaultInjection: The specification for fault injection introduced
12553// into traffic to test the resiliency of clients to backend service
12554// failure. As part of fault injection, when clients send requests to a
12555// backend service, delays can be introduced by Loadbalancer on a
12556// percentage of requests before sending those request to the backend
12557// service. Similarly requests from clients can be aborted by the
12558// Loadbalancer for a percentage of requests.
12559type HttpFaultInjection struct {
12560	// Abort: The specification for how client requests are aborted as part
12561	// of fault injection.
12562	Abort *HttpFaultAbort `json:"abort,omitempty"`
12563
12564	// Delay: The specification for how client requests are delayed as part
12565	// of fault injection, before being sent to a backend service.
12566	Delay *HttpFaultDelay `json:"delay,omitempty"`
12567
12568	// ForceSendFields is a list of field names (e.g. "Abort") to
12569	// unconditionally include in API requests. By default, fields with
12570	// empty values are omitted from API requests. However, any non-pointer,
12571	// non-interface field appearing in ForceSendFields will be sent to the
12572	// server regardless of whether the field is empty or not. This may be
12573	// used to include empty fields in Patch requests.
12574	ForceSendFields []string `json:"-"`
12575
12576	// NullFields is a list of field names (e.g. "Abort") to include in API
12577	// requests with the JSON null value. By default, fields with empty
12578	// values are omitted from API requests. However, any field with an
12579	// empty value appearing in NullFields will be sent to the server as
12580	// null. It is an error if a field in this list has a non-empty value.
12581	// This may be used to include null fields in Patch requests.
12582	NullFields []string `json:"-"`
12583}
12584
12585func (s *HttpFaultInjection) MarshalJSON() ([]byte, error) {
12586	type NoMethod HttpFaultInjection
12587	raw := NoMethod(*s)
12588	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12589}
12590
12591// HttpHeaderAction: The request and response header transformations
12592// that take effect before the request is passed along to the selected
12593// backendService.
12594type HttpHeaderAction struct {
12595	// RequestHeadersToAdd: Headers to add to a matching request prior to
12596	// forwarding the request to the backendService.
12597	RequestHeadersToAdd []*HttpHeaderOption `json:"requestHeadersToAdd,omitempty"`
12598
12599	// RequestHeadersToRemove: A list of header names for headers that need
12600	// to be removed from the request prior to forwarding the request to the
12601	// backendService.
12602	RequestHeadersToRemove []string `json:"requestHeadersToRemove,omitempty"`
12603
12604	// ResponseHeadersToAdd: Headers to add the response prior to sending
12605	// the response back to the client.
12606	ResponseHeadersToAdd []*HttpHeaderOption `json:"responseHeadersToAdd,omitempty"`
12607
12608	// ResponseHeadersToRemove: A list of header names for headers that need
12609	// to be removed from the response prior to sending the response back to
12610	// the client.
12611	ResponseHeadersToRemove []string `json:"responseHeadersToRemove,omitempty"`
12612
12613	// ForceSendFields is a list of field names (e.g. "RequestHeadersToAdd")
12614	// to unconditionally include in API requests. By default, fields with
12615	// empty values are omitted from API requests. However, any non-pointer,
12616	// non-interface field appearing in ForceSendFields will be sent to the
12617	// server regardless of whether the field is empty or not. This may be
12618	// used to include empty fields in Patch requests.
12619	ForceSendFields []string `json:"-"`
12620
12621	// NullFields is a list of field names (e.g. "RequestHeadersToAdd") to
12622	// include in API requests with the JSON null value. By default, fields
12623	// with empty values are omitted from API requests. However, any field
12624	// with an empty value appearing in NullFields will be sent to the
12625	// server as null. It is an error if a field in this list has a
12626	// non-empty value. This may be used to include null fields in Patch
12627	// requests.
12628	NullFields []string `json:"-"`
12629}
12630
12631func (s *HttpHeaderAction) MarshalJSON() ([]byte, error) {
12632	type NoMethod HttpHeaderAction
12633	raw := NoMethod(*s)
12634	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12635}
12636
12637// HttpHeaderMatch: matchRule criteria for request header matches.
12638type HttpHeaderMatch struct {
12639	// ExactMatch: The value should exactly match contents of
12640	// exactMatch.
12641	// Only one of exactMatch, prefixMatch, suffixMatch, regexMatch,
12642	// presentMatch or rangeMatch must be set.
12643	ExactMatch string `json:"exactMatch,omitempty"`
12644
12645	// HeaderName: The name of the HTTP header to match.
12646	// For matching against the HTTP request's authority, use a headerMatch
12647	// with the header name ":authority".
12648	// For matching a request's method, use the headerName ":method".
12649	HeaderName string `json:"headerName,omitempty"`
12650
12651	// InvertMatch: If set to false, the headerMatch is considered a match
12652	// if the match criteria above are met. If set to true, the headerMatch
12653	// is considered a match if the match criteria above are NOT met.
12654	// The default setting is false.
12655	InvertMatch bool `json:"invertMatch,omitempty"`
12656
12657	// PrefixMatch: The value of the header must start with the contents of
12658	// prefixMatch.
12659	// Only one of exactMatch, prefixMatch, suffixMatch, regexMatch,
12660	// presentMatch or rangeMatch must be set.
12661	PrefixMatch string `json:"prefixMatch,omitempty"`
12662
12663	// PresentMatch: A header with the contents of headerName must exist.
12664	// The match takes place whether or not the request's header has a value
12665	// or not.
12666	// Only one of exactMatch, prefixMatch, suffixMatch, regexMatch,
12667	// presentMatch or rangeMatch must be set.
12668	PresentMatch bool `json:"presentMatch,omitempty"`
12669
12670	// RangeMatch: The header value must be an integer and its value must be
12671	// in the range specified in rangeMatch. If the header does not contain
12672	// an integer, number or is empty, the match fails.
12673	// For example for a range [-5, 0]
12674	// - -3 will match.
12675	// - 0 will not match.
12676	// - 0.25 will not match.
12677	// - -3someString will not match.
12678	// Only one of exactMatch, prefixMatch, suffixMatch, regexMatch,
12679	// presentMatch or rangeMatch must be set.
12680	RangeMatch *Int64RangeMatch `json:"rangeMatch,omitempty"`
12681
12682	// RegexMatch: The value of the header must match the regualar
12683	// expression specified in regexMatch. For regular expression grammar,
12684	// please see:  en.cppreference.com/w/cpp/regex/ecmascript
12685	// For matching against a port specified in the HTTP request, use a
12686	// headerMatch with headerName set to PORT and a regular expression that
12687	// satisfies the RFC2616 Host header's port specifier.
12688	// Only one of exactMatch, prefixMatch, suffixMatch, regexMatch,
12689	// presentMatch or rangeMatch must be set.
12690	RegexMatch string `json:"regexMatch,omitempty"`
12691
12692	// SuffixMatch: The value of the header must end with the contents of
12693	// suffixMatch.
12694	// Only one of exactMatch, prefixMatch, suffixMatch, regexMatch,
12695	// presentMatch or rangeMatch must be set.
12696	SuffixMatch string `json:"suffixMatch,omitempty"`
12697
12698	// ForceSendFields is a list of field names (e.g. "ExactMatch") to
12699	// unconditionally include in API requests. By default, fields with
12700	// empty values are omitted from API requests. However, any non-pointer,
12701	// non-interface field appearing in ForceSendFields will be sent to the
12702	// server regardless of whether the field is empty or not. This may be
12703	// used to include empty fields in Patch requests.
12704	ForceSendFields []string `json:"-"`
12705
12706	// NullFields is a list of field names (e.g. "ExactMatch") to include in
12707	// API requests with the JSON null value. By default, fields with empty
12708	// values are omitted from API requests. However, any field with an
12709	// empty value appearing in NullFields will be sent to the server as
12710	// null. It is an error if a field in this list has a non-empty value.
12711	// This may be used to include null fields in Patch requests.
12712	NullFields []string `json:"-"`
12713}
12714
12715func (s *HttpHeaderMatch) MarshalJSON() ([]byte, error) {
12716	type NoMethod HttpHeaderMatch
12717	raw := NoMethod(*s)
12718	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12719}
12720
12721// HttpHeaderOption: Specification determining how headers are added to
12722// requests or responses.
12723type HttpHeaderOption struct {
12724	// HeaderName: The name of the header.
12725	HeaderName string `json:"headerName,omitempty"`
12726
12727	// HeaderValue: The value of the header to add.
12728	HeaderValue string `json:"headerValue,omitempty"`
12729
12730	// Replace: If false, headerValue is appended to any values that already
12731	// exist for the header. If true, headerValue is set for the header,
12732	// discarding any values that were set for that header.
12733	// The default value is false.
12734	Replace bool `json:"replace,omitempty"`
12735
12736	// ForceSendFields is a list of field names (e.g. "HeaderName") to
12737	// unconditionally include in API requests. By default, fields with
12738	// empty values are omitted from API requests. However, any non-pointer,
12739	// non-interface field appearing in ForceSendFields will be sent to the
12740	// server regardless of whether the field is empty or not. This may be
12741	// used to include empty fields in Patch requests.
12742	ForceSendFields []string `json:"-"`
12743
12744	// NullFields is a list of field names (e.g. "HeaderName") to include in
12745	// API requests with the JSON null value. By default, fields with empty
12746	// values are omitted from API requests. However, any field with an
12747	// empty value appearing in NullFields will be sent to the server as
12748	// null. It is an error if a field in this list has a non-empty value.
12749	// This may be used to include null fields in Patch requests.
12750	NullFields []string `json:"-"`
12751}
12752
12753func (s *HttpHeaderOption) MarshalJSON() ([]byte, error) {
12754	type NoMethod HttpHeaderOption
12755	raw := NoMethod(*s)
12756	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12757}
12758
12759// HttpHealthCheck: Represents a legacy HTTP Health Check
12760// resource.
12761//
12762// Legacy health checks are required by network load balancers. For more
12763// information, read Health Check Concepts.
12764type HttpHealthCheck struct {
12765	// CheckIntervalSec: How often (in seconds) to send a health check. The
12766	// default value is 5 seconds.
12767	CheckIntervalSec int64 `json:"checkIntervalSec,omitempty"`
12768
12769	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
12770	// format.
12771	CreationTimestamp string `json:"creationTimestamp,omitempty"`
12772
12773	// Description: An optional description of this resource. Provide this
12774	// property when you create the resource.
12775	Description string `json:"description,omitempty"`
12776
12777	// HealthyThreshold: A so-far unhealthy instance will be marked healthy
12778	// after this many consecutive successes. The default value is 2.
12779	HealthyThreshold int64 `json:"healthyThreshold,omitempty"`
12780
12781	// Host: The value of the host header in the HTTP health check request.
12782	// If left empty (default value), the public IP on behalf of which this
12783	// health check is performed will be used.
12784	Host string `json:"host,omitempty"`
12785
12786	// Id: [Output Only] The unique identifier for the resource. This
12787	// identifier is defined by the server.
12788	Id uint64 `json:"id,omitempty,string"`
12789
12790	// Kind: [Output Only] Type of the resource. Always
12791	// compute#httpHealthCheck for HTTP health checks.
12792	Kind string `json:"kind,omitempty"`
12793
12794	// Name: Name of the resource. Provided by the client when the resource
12795	// is created. The name must be 1-63 characters long, and comply with
12796	// RFC1035. Specifically, the name must be 1-63 characters long and
12797	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
12798	// the first character must be a lowercase letter, and all following
12799	// characters must be a dash, lowercase letter, or digit, except the
12800	// last character, which cannot be a dash.
12801	Name string `json:"name,omitempty"`
12802
12803	// Port: The TCP port number for the HTTP health check request. The
12804	// default value is 80.
12805	Port int64 `json:"port,omitempty"`
12806
12807	// RequestPath: The request path of the HTTP health check request. The
12808	// default value is /. This field does not support query parameters.
12809	RequestPath string `json:"requestPath,omitempty"`
12810
12811	// SelfLink: [Output Only] Server-defined URL for the resource.
12812	SelfLink string `json:"selfLink,omitempty"`
12813
12814	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
12815	// with the resource id.
12816	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
12817
12818	// TimeoutSec: How long (in seconds) to wait before claiming failure.
12819	// The default value is 5 seconds. It is invalid for timeoutSec to have
12820	// greater value than checkIntervalSec.
12821	TimeoutSec int64 `json:"timeoutSec,omitempty"`
12822
12823	// UnhealthyThreshold: A so-far healthy instance will be marked
12824	// unhealthy after this many consecutive failures. The default value is
12825	// 2.
12826	UnhealthyThreshold int64 `json:"unhealthyThreshold,omitempty"`
12827
12828	// ServerResponse contains the HTTP response code and headers from the
12829	// server.
12830	googleapi.ServerResponse `json:"-"`
12831
12832	// ForceSendFields is a list of field names (e.g. "CheckIntervalSec") to
12833	// unconditionally include in API requests. By default, fields with
12834	// empty values are omitted from API requests. However, any non-pointer,
12835	// non-interface field appearing in ForceSendFields will be sent to the
12836	// server regardless of whether the field is empty or not. This may be
12837	// used to include empty fields in Patch requests.
12838	ForceSendFields []string `json:"-"`
12839
12840	// NullFields is a list of field names (e.g. "CheckIntervalSec") to
12841	// include in API requests with the JSON null value. By default, fields
12842	// with empty values are omitted from API requests. However, any field
12843	// with an empty value appearing in NullFields will be sent to the
12844	// server as null. It is an error if a field in this list has a
12845	// non-empty value. This may be used to include null fields in Patch
12846	// requests.
12847	NullFields []string `json:"-"`
12848}
12849
12850func (s *HttpHealthCheck) MarshalJSON() ([]byte, error) {
12851	type NoMethod HttpHealthCheck
12852	raw := NoMethod(*s)
12853	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12854}
12855
12856// HttpHealthCheckList: Contains a list of HttpHealthCheck resources.
12857type HttpHealthCheckList struct {
12858	// Id: [Output Only] Unique identifier for the resource; defined by the
12859	// server.
12860	Id string `json:"id,omitempty"`
12861
12862	// Items: A list of HttpHealthCheck resources.
12863	Items []*HttpHealthCheck `json:"items,omitempty"`
12864
12865	// Kind: Type of resource.
12866	Kind string `json:"kind,omitempty"`
12867
12868	// NextPageToken: [Output Only] This token allows you to get the next
12869	// page of results for list requests. If the number of results is larger
12870	// than maxResults, use the nextPageToken as a value for the query
12871	// parameter pageToken in the next list request. Subsequent list
12872	// requests will have their own nextPageToken to continue paging through
12873	// the results.
12874	NextPageToken string `json:"nextPageToken,omitempty"`
12875
12876	// SelfLink: [Output Only] Server-defined URL for this resource.
12877	SelfLink string `json:"selfLink,omitempty"`
12878
12879	// Warning: [Output Only] Informational warning message.
12880	Warning *HttpHealthCheckListWarning `json:"warning,omitempty"`
12881
12882	// ServerResponse contains the HTTP response code and headers from the
12883	// server.
12884	googleapi.ServerResponse `json:"-"`
12885
12886	// ForceSendFields is a list of field names (e.g. "Id") to
12887	// unconditionally include in API requests. By default, fields with
12888	// empty values are omitted from API requests. However, any non-pointer,
12889	// non-interface field appearing in ForceSendFields will be sent to the
12890	// server regardless of whether the field is empty or not. This may be
12891	// used to include empty fields in Patch requests.
12892	ForceSendFields []string `json:"-"`
12893
12894	// NullFields is a list of field names (e.g. "Id") to include in API
12895	// requests with the JSON null value. By default, fields with empty
12896	// values are omitted from API requests. However, any field with an
12897	// empty value appearing in NullFields will be sent to the server as
12898	// null. It is an error if a field in this list has a non-empty value.
12899	// This may be used to include null fields in Patch requests.
12900	NullFields []string `json:"-"`
12901}
12902
12903func (s *HttpHealthCheckList) MarshalJSON() ([]byte, error) {
12904	type NoMethod HttpHealthCheckList
12905	raw := NoMethod(*s)
12906	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12907}
12908
12909// HttpHealthCheckListWarning: [Output Only] Informational warning
12910// message.
12911type HttpHealthCheckListWarning struct {
12912	// Code: [Output Only] A warning code, if applicable. For example,
12913	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
12914	// the response.
12915	//
12916	// Possible values:
12917	//   "CLEANUP_FAILED"
12918	//   "DEPRECATED_RESOURCE_USED"
12919	//   "DEPRECATED_TYPE_USED"
12920	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
12921	//   "EXPERIMENTAL_TYPE_USED"
12922	//   "EXTERNAL_API_WARNING"
12923	//   "FIELD_VALUE_OVERRIDEN"
12924	//   "INJECTED_KERNELS_DEPRECATED"
12925	//   "MISSING_TYPE_DEPENDENCY"
12926	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
12927	//   "NEXT_HOP_CANNOT_IP_FORWARD"
12928	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
12929	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
12930	//   "NEXT_HOP_NOT_RUNNING"
12931	//   "NOT_CRITICAL_ERROR"
12932	//   "NO_RESULTS_ON_PAGE"
12933	//   "REQUIRED_TOS_AGREEMENT"
12934	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
12935	//   "RESOURCE_NOT_DELETED"
12936	//   "SCHEMA_VALIDATION_IGNORED"
12937	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
12938	//   "UNDECLARED_PROPERTIES"
12939	//   "UNREACHABLE"
12940	Code string `json:"code,omitempty"`
12941
12942	// Data: [Output Only] Metadata about this warning in key: value format.
12943	// For example:
12944	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
12945	Data []*HttpHealthCheckListWarningData `json:"data,omitempty"`
12946
12947	// Message: [Output Only] A human-readable description of the warning
12948	// code.
12949	Message string `json:"message,omitempty"`
12950
12951	// ForceSendFields is a list of field names (e.g. "Code") to
12952	// unconditionally include in API requests. By default, fields with
12953	// empty values are omitted from API requests. However, any non-pointer,
12954	// non-interface field appearing in ForceSendFields will be sent to the
12955	// server regardless of whether the field is empty or not. This may be
12956	// used to include empty fields in Patch requests.
12957	ForceSendFields []string `json:"-"`
12958
12959	// NullFields is a list of field names (e.g. "Code") to include in API
12960	// requests with the JSON null value. By default, fields with empty
12961	// values are omitted from API requests. However, any field with an
12962	// empty value appearing in NullFields will be sent to the server as
12963	// null. It is an error if a field in this list has a non-empty value.
12964	// This may be used to include null fields in Patch requests.
12965	NullFields []string `json:"-"`
12966}
12967
12968func (s *HttpHealthCheckListWarning) MarshalJSON() ([]byte, error) {
12969	type NoMethod HttpHealthCheckListWarning
12970	raw := NoMethod(*s)
12971	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12972}
12973
12974type HttpHealthCheckListWarningData struct {
12975	// Key: [Output Only] A key that provides more detail on the warning
12976	// being returned. For example, for warnings where there are no results
12977	// in a list request for a particular zone, this key might be scope and
12978	// the key value might be the zone name. Other examples might be a key
12979	// indicating a deprecated resource and a suggested replacement, or a
12980	// warning about invalid network settings (for example, if an instance
12981	// attempts to perform IP forwarding but is not enabled for IP
12982	// forwarding).
12983	Key string `json:"key,omitempty"`
12984
12985	// Value: [Output Only] A warning data value corresponding to the key.
12986	Value string `json:"value,omitempty"`
12987
12988	// ForceSendFields is a list of field names (e.g. "Key") to
12989	// unconditionally include in API requests. By default, fields with
12990	// empty values are omitted from API requests. However, any non-pointer,
12991	// non-interface field appearing in ForceSendFields will be sent to the
12992	// server regardless of whether the field is empty or not. This may be
12993	// used to include empty fields in Patch requests.
12994	ForceSendFields []string `json:"-"`
12995
12996	// NullFields is a list of field names (e.g. "Key") to include in API
12997	// requests with the JSON null value. By default, fields with empty
12998	// values are omitted from API requests. However, any field with an
12999	// empty value appearing in NullFields will be sent to the server as
13000	// null. It is an error if a field in this list has a non-empty value.
13001	// This may be used to include null fields in Patch requests.
13002	NullFields []string `json:"-"`
13003}
13004
13005func (s *HttpHealthCheckListWarningData) MarshalJSON() ([]byte, error) {
13006	type NoMethod HttpHealthCheckListWarningData
13007	raw := NoMethod(*s)
13008	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13009}
13010
13011// HttpQueryParameterMatch: HttpRouteRuleMatch criteria for a request's
13012// query parameter.
13013type HttpQueryParameterMatch struct {
13014	// ExactMatch: The queryParameterMatch matches if the value of the
13015	// parameter exactly matches the contents of exactMatch.
13016	// Only one of presentMatch, exactMatch and regexMatch must be set.
13017	ExactMatch string `json:"exactMatch,omitempty"`
13018
13019	// Name: The name of the query parameter to match. The query parameter
13020	// must exist in the request, in the absence of which the request match
13021	// fails.
13022	Name string `json:"name,omitempty"`
13023
13024	// PresentMatch: Specifies that the queryParameterMatch matches if the
13025	// request contains the query parameter, irrespective of whether the
13026	// parameter has a value or not.
13027	// Only one of presentMatch, exactMatch and regexMatch must be set.
13028	PresentMatch bool `json:"presentMatch,omitempty"`
13029
13030	// RegexMatch: The queryParameterMatch matches if the value of the
13031	// parameter matches the regular expression specified by regexMatch. For
13032	// the regular expression grammar, please see
13033	// en.cppreference.com/w/cpp/regex/ecmascript
13034	// Only one of presentMatch, exactMatch and regexMatch must be set.
13035	RegexMatch string `json:"regexMatch,omitempty"`
13036
13037	// ForceSendFields is a list of field names (e.g. "ExactMatch") to
13038	// unconditionally include in API requests. By default, fields with
13039	// empty values are omitted from API requests. However, any non-pointer,
13040	// non-interface field appearing in ForceSendFields will be sent to the
13041	// server regardless of whether the field is empty or not. This may be
13042	// used to include empty fields in Patch requests.
13043	ForceSendFields []string `json:"-"`
13044
13045	// NullFields is a list of field names (e.g. "ExactMatch") to include in
13046	// API requests with the JSON null value. By default, fields with empty
13047	// values are omitted from API requests. However, any field with an
13048	// empty value appearing in NullFields will be sent to the server as
13049	// null. It is an error if a field in this list has a non-empty value.
13050	// This may be used to include null fields in Patch requests.
13051	NullFields []string `json:"-"`
13052}
13053
13054func (s *HttpQueryParameterMatch) MarshalJSON() ([]byte, error) {
13055	type NoMethod HttpQueryParameterMatch
13056	raw := NoMethod(*s)
13057	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13058}
13059
13060// HttpRedirectAction: Specifies settings for an HTTP redirect.
13061type HttpRedirectAction struct {
13062	// HostRedirect: The host that will be used in the redirect response
13063	// instead of the one that was supplied in the request.
13064	// The value must be between 1 and 255 characters.
13065	HostRedirect string `json:"hostRedirect,omitempty"`
13066
13067	// HttpsRedirect: If set to true, the URL scheme in the redirected
13068	// request is set to https. If set to false, the URL scheme of the
13069	// redirected request will remain the same as that of the request.
13070	// This must only be set for UrlMaps used in TargetHttpProxys. Setting
13071	// this true for TargetHttpsProxy is not permitted.
13072	// The default is set to false.
13073	HttpsRedirect bool `json:"httpsRedirect,omitempty"`
13074
13075	// PathRedirect: The path that will be used in the redirect response
13076	// instead of the one that was supplied in the request.
13077	// Only one of pathRedirect or prefixRedirect must be specified.
13078	// The value must be between 1 and 1024 characters.
13079	PathRedirect string `json:"pathRedirect,omitempty"`
13080
13081	// PrefixRedirect: The prefix that replaces the prefixMatch specified in
13082	// the HttpRouteRuleMatch, retaining the remaining portion of the URL
13083	// before redirecting the request.
13084	PrefixRedirect string `json:"prefixRedirect,omitempty"`
13085
13086	// RedirectResponseCode: The HTTP Status code to use for this
13087	// RedirectAction.
13088	// Supported values are:
13089	// - MOVED_PERMANENTLY_DEFAULT, which is the default value and
13090	// corresponds to 301.
13091	// - FOUND, which corresponds to 302.
13092	// - SEE_OTHER which corresponds to 303.
13093	// - TEMPORARY_REDIRECT, which corresponds to 307. In this case, the
13094	// request method will be retained.
13095	// - PERMANENT_REDIRECT, which corresponds to 308. In this case, the
13096	// request method will be retained.
13097	//
13098	// Possible values:
13099	//   "FOUND"
13100	//   "MOVED_PERMANENTLY_DEFAULT"
13101	//   "PERMANENT_REDIRECT"
13102	//   "SEE_OTHER"
13103	//   "TEMPORARY_REDIRECT"
13104	RedirectResponseCode string `json:"redirectResponseCode,omitempty"`
13105
13106	// StripQuery: If set to true, any accompanying query portion of the
13107	// original URL is removed prior to redirecting the request. If set to
13108	// false, the query portion of the original URL is retained.
13109	// The default is set to false.
13110	StripQuery bool `json:"stripQuery,omitempty"`
13111
13112	// ForceSendFields is a list of field names (e.g. "HostRedirect") to
13113	// unconditionally include in API requests. By default, fields with
13114	// empty values are omitted from API requests. However, any non-pointer,
13115	// non-interface field appearing in ForceSendFields will be sent to the
13116	// server regardless of whether the field is empty or not. This may be
13117	// used to include empty fields in Patch requests.
13118	ForceSendFields []string `json:"-"`
13119
13120	// NullFields is a list of field names (e.g. "HostRedirect") to include
13121	// in API requests with the JSON null value. By default, fields with
13122	// empty values are omitted from API requests. However, any field with
13123	// an empty value appearing in NullFields will be sent to the server as
13124	// null. It is an error if a field in this list has a non-empty value.
13125	// This may be used to include null fields in Patch requests.
13126	NullFields []string `json:"-"`
13127}
13128
13129func (s *HttpRedirectAction) MarshalJSON() ([]byte, error) {
13130	type NoMethod HttpRedirectAction
13131	raw := NoMethod(*s)
13132	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13133}
13134
13135// HttpRetryPolicy: The retry policy associates with HttpRouteRule
13136type HttpRetryPolicy struct {
13137	// NumRetries: Specifies the allowed number retries. This number must be
13138	// > 0. If not specified, defaults to 1.
13139	NumRetries int64 `json:"numRetries,omitempty"`
13140
13141	// PerTryTimeout: Specifies a non-zero timeout per retry attempt.
13142	// If not specified, will use the timeout set in HttpRouteAction. If
13143	// timeout in HttpRouteAction is not set, will use the largest timeout
13144	// among all backend services associated with the route.
13145	PerTryTimeout *Duration `json:"perTryTimeout,omitempty"`
13146
13147	// RetryConditions: Specfies one or more conditions when this retry rule
13148	// applies. Valid values are:
13149	// - 5xx: Loadbalancer will attempt a retry if the backend service
13150	// responds with any 5xx response code, or if the backend service does
13151	// not respond at all, example: disconnects, reset, read timeout,
13152	// connection failure, and refused streams.
13153	// - gateway-error: Similar to 5xx, but only applies to response codes
13154	// 502, 503 or 504.
13155	// -
13156	// - connect-failure: Loadbalancer will retry on failures connecting to
13157	// backend services, for example due to connection timeouts.
13158	// - retriable-4xx: Loadbalancer will retry for retriable 4xx response
13159	// codes. Currently the only retriable error supported is 409.
13160	// - refused-stream:Loadbalancer will retry if the backend service
13161	// resets the stream with a REFUSED_STREAM error code. This reset type
13162	// indicates that it is safe to retry.
13163	// - cancelledLoadbalancer will retry if the gRPC status code in the
13164	// response header is set to cancelled
13165	// - deadline-exceeded: Loadbalancer will retry if the gRPC status code
13166	// in the response header is set to deadline-exceeded
13167	// - resource-exhausted: Loadbalancer will retry if the gRPC status code
13168	// in the response header is set to resource-exhausted
13169	// - unavailable: Loadbalancer will retry if the gRPC status code in the
13170	// response header is set to unavailable
13171	RetryConditions []string `json:"retryConditions,omitempty"`
13172
13173	// ForceSendFields is a list of field names (e.g. "NumRetries") to
13174	// unconditionally include in API requests. By default, fields with
13175	// empty values are omitted from API requests. However, any non-pointer,
13176	// non-interface field appearing in ForceSendFields will be sent to the
13177	// server regardless of whether the field is empty or not. This may be
13178	// used to include empty fields in Patch requests.
13179	ForceSendFields []string `json:"-"`
13180
13181	// NullFields is a list of field names (e.g. "NumRetries") to include in
13182	// API requests with the JSON null value. By default, fields with empty
13183	// values are omitted from API requests. However, any field with an
13184	// empty value appearing in NullFields will be sent to the server as
13185	// null. It is an error if a field in this list has a non-empty value.
13186	// This may be used to include null fields in Patch requests.
13187	NullFields []string `json:"-"`
13188}
13189
13190func (s *HttpRetryPolicy) MarshalJSON() ([]byte, error) {
13191	type NoMethod HttpRetryPolicy
13192	raw := NoMethod(*s)
13193	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13194}
13195
13196type HttpRouteAction struct {
13197	// CorsPolicy: The specification for allowing client side cross-origin
13198	// requests. Please see W3C Recommendation for Cross Origin Resource
13199	// Sharing
13200	CorsPolicy *CorsPolicy `json:"corsPolicy,omitempty"`
13201
13202	// FaultInjectionPolicy: The specification for fault injection
13203	// introduced into traffic to test the resiliency of clients to backend
13204	// service failure. As part of fault injection, when clients send
13205	// requests to a backend service, delays can be introduced by
13206	// Loadbalancer on a percentage of requests before sending those request
13207	// to the backend service. Similarly requests from clients can be
13208	// aborted by the Loadbalancer for a percentage of requests.
13209	// timeout and retry_policy will be ignored by clients that are
13210	// configured with a fault_injection_policy.
13211	FaultInjectionPolicy *HttpFaultInjection `json:"faultInjectionPolicy,omitempty"`
13212
13213	// RequestMirrorPolicy: Specifies the policy on how requests intended
13214	// for the route's backends are shadowed to a separate mirrored backend
13215	// service. Loadbalancer does not wait for responses from the shadow
13216	// service. Prior to sending traffic to the shadow service, the host /
13217	// authority header is suffixed with -shadow.
13218	RequestMirrorPolicy *RequestMirrorPolicy `json:"requestMirrorPolicy,omitempty"`
13219
13220	// RetryPolicy: Specifies the retry policy associated with this route.
13221	RetryPolicy *HttpRetryPolicy `json:"retryPolicy,omitempty"`
13222
13223	// Timeout: Specifies the timeout for the selected route. Timeout is
13224	// computed from the time the request has been fully processed (i.e.
13225	// end-of-stream) up until the response has been completely processed.
13226	// Timeout includes all retries.
13227	// If not specified, will use the largest timeout among all backend
13228	// services associated with the route.
13229	Timeout *Duration `json:"timeout,omitempty"`
13230
13231	// UrlRewrite: The spec to modify the URL of the request, prior to
13232	// forwarding the request to the matched service
13233	UrlRewrite *UrlRewrite `json:"urlRewrite,omitempty"`
13234
13235	// WeightedBackendServices: A list of weighted backend services to send
13236	// traffic to when a route match occurs. The weights determine the
13237	// fraction of traffic that flows to their corresponding backend
13238	// service. If all traffic needs to go to a single backend service,
13239	// there must be one  weightedBackendService with weight set to a non 0
13240	// number.
13241	// Once a backendService is identified and before forwarding the request
13242	// to the backend service, advanced routing actions like Url rewrites
13243	// and header transformations are applied depending on additional
13244	// settings specified in this HttpRouteAction.
13245	WeightedBackendServices []*WeightedBackendService `json:"weightedBackendServices,omitempty"`
13246
13247	// ForceSendFields is a list of field names (e.g. "CorsPolicy") to
13248	// unconditionally include in API requests. By default, fields with
13249	// empty values are omitted from API requests. However, any non-pointer,
13250	// non-interface field appearing in ForceSendFields will be sent to the
13251	// server regardless of whether the field is empty or not. This may be
13252	// used to include empty fields in Patch requests.
13253	ForceSendFields []string `json:"-"`
13254
13255	// NullFields is a list of field names (e.g. "CorsPolicy") to include in
13256	// API requests with the JSON null value. By default, fields with empty
13257	// values are omitted from API requests. However, any field with an
13258	// empty value appearing in NullFields will be sent to the server as
13259	// null. It is an error if a field in this list has a non-empty value.
13260	// This may be used to include null fields in Patch requests.
13261	NullFields []string `json:"-"`
13262}
13263
13264func (s *HttpRouteAction) MarshalJSON() ([]byte, error) {
13265	type NoMethod HttpRouteAction
13266	raw := NoMethod(*s)
13267	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13268}
13269
13270// HttpRouteRule: An HttpRouteRule specifies how to match an HTTP
13271// request and the corresponding routing action that load balancing
13272// proxies will perform.
13273type HttpRouteRule struct {
13274	// Description: The short description conveying the intent of this
13275	// routeRule.
13276	// The description can have a maximum length of 1024 characters.
13277	Description string `json:"description,omitempty"`
13278
13279	// HeaderAction: Specifies changes to request and response headers that
13280	// need to take effect for the selected backendService.
13281	// The headerAction specified here are applied before the matching
13282	// pathMatchers[].headerAction and after
13283	// pathMatchers[].routeRules[].routeAction.weightedBackendService.backend
13284	// ServiceWeightAction[].headerAction
13285	HeaderAction *HttpHeaderAction `json:"headerAction,omitempty"`
13286
13287	MatchRules []*HttpRouteRuleMatch `json:"matchRules,omitempty"`
13288
13289	// Priority: For routeRules within a given pathMatcher, priority
13290	// determines the order in which load balancer will interpret
13291	// routeRules. RouteRules are evaluated in order of priority, from the
13292	// lowest to highest number. The priority of a rule decreases as its
13293	// number increases (1, 2, 3, N+1). The first rule that matches the
13294	// request is applied.
13295	// You cannot configure two or more routeRules with the same priority.
13296	// Priority for each rule must be set to a number between 0 and
13297	// 2147483647 inclusive.
13298	// Priority numbers can have gaps, which enable you to add or remove
13299	// rules in the future without affecting the rest of the rules. For
13300	// example, 1, 2, 3, 4, 5, 9, 12, 16 is a valid series of priority
13301	// numbers to which you could add rules numbered from 6 to 8, 10 to 11,
13302	// and 13 to 15 in the future without any impact on existing rules.
13303	Priority int64 `json:"priority,omitempty"`
13304
13305	// RouteAction: In response to a matching matchRule, the load balancer
13306	// performs advanced routing actions like URL rewrites, header
13307	// transformations, etc. prior to forwarding the request to the selected
13308	// backend. If  routeAction specifies any  weightedBackendServices,
13309	// service must not be set. Conversely if service is set, routeAction
13310	// cannot contain any  weightedBackendServices.
13311	// Only one of routeAction or urlRedirect must be set.
13312	RouteAction *HttpRouteAction `json:"routeAction,omitempty"`
13313
13314	// Service: The full or partial URL of the backend service resource to
13315	// which traffic is directed if this rule is matched. If routeAction is
13316	// additionally specified, advanced routing actions like URL Rewrites,
13317	// etc. take effect prior to sending the request to the backend.
13318	// However, if service is specified, routeAction cannot contain any
13319	// weightedBackendService s. Conversely, if routeAction specifies any
13320	// weightedBackendServices, service must not be specified.
13321	// Only one of urlRedirect, service or
13322	// routeAction.weightedBackendService must be set.
13323	Service string `json:"service,omitempty"`
13324
13325	// UrlRedirect: When this rule is matched, the request is redirected to
13326	// a URL specified by urlRedirect.
13327	// If urlRedirect is specified, service or routeAction must not be set.
13328	UrlRedirect *HttpRedirectAction `json:"urlRedirect,omitempty"`
13329
13330	// ForceSendFields is a list of field names (e.g. "Description") to
13331	// unconditionally include in API requests. By default, fields with
13332	// empty values are omitted from API requests. However, any non-pointer,
13333	// non-interface field appearing in ForceSendFields will be sent to the
13334	// server regardless of whether the field is empty or not. This may be
13335	// used to include empty fields in Patch requests.
13336	ForceSendFields []string `json:"-"`
13337
13338	// NullFields is a list of field names (e.g. "Description") to include
13339	// in API requests with the JSON null value. By default, fields with
13340	// empty values are omitted from API requests. However, any field with
13341	// an empty value appearing in NullFields will be sent to the server as
13342	// null. It is an error if a field in this list has a non-empty value.
13343	// This may be used to include null fields in Patch requests.
13344	NullFields []string `json:"-"`
13345}
13346
13347func (s *HttpRouteRule) MarshalJSON() ([]byte, error) {
13348	type NoMethod HttpRouteRule
13349	raw := NoMethod(*s)
13350	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13351}
13352
13353// HttpRouteRuleMatch: HttpRouteRuleMatch specifies a set of criteria
13354// for matching requests to an HttpRouteRule. All specified criteria
13355// must be satisfied for a match to occur.
13356type HttpRouteRuleMatch struct {
13357	// FullPathMatch: For satifying the matchRule condition, the path of the
13358	// request must exactly match the value specified in fullPathMatch after
13359	// removing any query parameters and anchor that may be part of the
13360	// original URL.
13361	// FullPathMatch must be between 1 and 1024 characters.
13362	// Only one of prefixMatch, fullPathMatch or regexMatch must be
13363	// specified.
13364	FullPathMatch string `json:"fullPathMatch,omitempty"`
13365
13366	// HeaderMatches: Specifies a list of header match criteria, all of
13367	// which must match corresponding headers in the request.
13368	HeaderMatches []*HttpHeaderMatch `json:"headerMatches,omitempty"`
13369
13370	// IgnoreCase: Specifies that prefixMatch and fullPathMatch matches are
13371	// case sensitive.
13372	// The default value is false.
13373	// caseSensitive must not be used with regexMatch.
13374	IgnoreCase bool `json:"ignoreCase,omitempty"`
13375
13376	// MetadataFilters: Opaque filter criteria used by Loadbalancer to
13377	// restrict routing configuration to a limited set xDS compliant
13378	// clients. In their xDS requests to Loadbalancer, xDS clients present
13379	// node metadata. If a match takes place, the relevant routing
13380	// configuration is made available to those proxies.
13381	// For each metadataFilter in this list, if its filterMatchCriteria is
13382	// set to MATCH_ANY, at least one of the filterLabels must match the
13383	// corresponding label provided in the metadata. If its
13384	// filterMatchCriteria is set to MATCH_ALL, then all of its filterLabels
13385	// must match with corresponding labels in the provided
13386	// metadata.
13387	// metadataFilters specified here can be overrides those specified in
13388	// ForwardingRule that refers to this UrlMap.
13389	// metadataFilters only applies to Loadbalancers that have their
13390	// loadBalancingScheme set to INTERNAL_SELF_MANAGED.
13391	MetadataFilters []*MetadataFilter `json:"metadataFilters,omitempty"`
13392
13393	// PrefixMatch: For satifying the matchRule condition, the request's
13394	// path must begin with the specified prefixMatch. prefixMatch must
13395	// begin with a /.
13396	// The value must be between 1 and 1024 characters.
13397	// Only one of prefixMatch, fullPathMatch or regexMatch must be
13398	// specified.
13399	PrefixMatch string `json:"prefixMatch,omitempty"`
13400
13401	// QueryParameterMatches: Specifies a list of query parameter match
13402	// criteria, all of which must match corresponding query parameters in
13403	// the request.
13404	QueryParameterMatches []*HttpQueryParameterMatch `json:"queryParameterMatches,omitempty"`
13405
13406	// RegexMatch: For satifying the matchRule condition, the path of the
13407	// request must satisfy the regular expression specified in regexMatch
13408	// after removing any query parameters and anchor supplied with the
13409	// original URL. For regular expression grammar please see
13410	// en.cppreference.com/w/cpp/regex/ecmascript
13411	// Only one of prefixMatch, fullPathMatch or regexMatch must be
13412	// specified.
13413	RegexMatch string `json:"regexMatch,omitempty"`
13414
13415	// ForceSendFields is a list of field names (e.g. "FullPathMatch") to
13416	// unconditionally include in API requests. By default, fields with
13417	// empty values are omitted from API requests. However, any non-pointer,
13418	// non-interface field appearing in ForceSendFields will be sent to the
13419	// server regardless of whether the field is empty or not. This may be
13420	// used to include empty fields in Patch requests.
13421	ForceSendFields []string `json:"-"`
13422
13423	// NullFields is a list of field names (e.g. "FullPathMatch") to include
13424	// in API requests with the JSON null value. By default, fields with
13425	// empty values are omitted from API requests. However, any field with
13426	// an empty value appearing in NullFields will be sent to the server as
13427	// null. It is an error if a field in this list has a non-empty value.
13428	// This may be used to include null fields in Patch requests.
13429	NullFields []string `json:"-"`
13430}
13431
13432func (s *HttpRouteRuleMatch) MarshalJSON() ([]byte, error) {
13433	type NoMethod HttpRouteRuleMatch
13434	raw := NoMethod(*s)
13435	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13436}
13437
13438// HttpsHealthCheck: Represents a legacy HTTPS Health Check
13439// resource.
13440//
13441// Legacy health checks are required by network load balancers. For more
13442// information, read Health Check Concepts.
13443type HttpsHealthCheck struct {
13444	// CheckIntervalSec: How often (in seconds) to send a health check. The
13445	// default value is 5 seconds.
13446	CheckIntervalSec int64 `json:"checkIntervalSec,omitempty"`
13447
13448	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
13449	// format.
13450	CreationTimestamp string `json:"creationTimestamp,omitempty"`
13451
13452	// Description: An optional description of this resource. Provide this
13453	// property when you create the resource.
13454	Description string `json:"description,omitempty"`
13455
13456	// HealthyThreshold: A so-far unhealthy instance will be marked healthy
13457	// after this many consecutive successes. The default value is 2.
13458	HealthyThreshold int64 `json:"healthyThreshold,omitempty"`
13459
13460	// Host: The value of the host header in the HTTPS health check request.
13461	// If left empty (default value), the public IP on behalf of which this
13462	// health check is performed will be used.
13463	Host string `json:"host,omitempty"`
13464
13465	// Id: [Output Only] The unique identifier for the resource. This
13466	// identifier is defined by the server.
13467	Id uint64 `json:"id,omitempty,string"`
13468
13469	// Kind: Type of the resource.
13470	Kind string `json:"kind,omitempty"`
13471
13472	// Name: Name of the resource. Provided by the client when the resource
13473	// is created. The name must be 1-63 characters long, and comply with
13474	// RFC1035. Specifically, the name must be 1-63 characters long and
13475	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
13476	// the first character must be a lowercase letter, and all following
13477	// characters must be a dash, lowercase letter, or digit, except the
13478	// last character, which cannot be a dash.
13479	Name string `json:"name,omitempty"`
13480
13481	// Port: The TCP port number for the HTTPS health check request. The
13482	// default value is 443.
13483	Port int64 `json:"port,omitempty"`
13484
13485	// RequestPath: The request path of the HTTPS health check request. The
13486	// default value is "/".
13487	RequestPath string `json:"requestPath,omitempty"`
13488
13489	// SelfLink: [Output Only] Server-defined URL for the resource.
13490	SelfLink string `json:"selfLink,omitempty"`
13491
13492	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
13493	// with the resource id.
13494	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
13495
13496	// TimeoutSec: How long (in seconds) to wait before claiming failure.
13497	// The default value is 5 seconds. It is invalid for timeoutSec to have
13498	// a greater value than checkIntervalSec.
13499	TimeoutSec int64 `json:"timeoutSec,omitempty"`
13500
13501	// UnhealthyThreshold: A so-far healthy instance will be marked
13502	// unhealthy after this many consecutive failures. The default value is
13503	// 2.
13504	UnhealthyThreshold int64 `json:"unhealthyThreshold,omitempty"`
13505
13506	// ServerResponse contains the HTTP response code and headers from the
13507	// server.
13508	googleapi.ServerResponse `json:"-"`
13509
13510	// ForceSendFields is a list of field names (e.g. "CheckIntervalSec") to
13511	// unconditionally include in API requests. By default, fields with
13512	// empty values are omitted from API requests. However, any non-pointer,
13513	// non-interface field appearing in ForceSendFields will be sent to the
13514	// server regardless of whether the field is empty or not. This may be
13515	// used to include empty fields in Patch requests.
13516	ForceSendFields []string `json:"-"`
13517
13518	// NullFields is a list of field names (e.g. "CheckIntervalSec") to
13519	// include in API requests with the JSON null value. By default, fields
13520	// with empty values are omitted from API requests. However, any field
13521	// with an empty value appearing in NullFields will be sent to the
13522	// server as null. It is an error if a field in this list has a
13523	// non-empty value. This may be used to include null fields in Patch
13524	// requests.
13525	NullFields []string `json:"-"`
13526}
13527
13528func (s *HttpsHealthCheck) MarshalJSON() ([]byte, error) {
13529	type NoMethod HttpsHealthCheck
13530	raw := NoMethod(*s)
13531	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13532}
13533
13534// HttpsHealthCheckList: Contains a list of HttpsHealthCheck resources.
13535type HttpsHealthCheckList struct {
13536	// Id: [Output Only] Unique identifier for the resource; defined by the
13537	// server.
13538	Id string `json:"id,omitempty"`
13539
13540	// Items: A list of HttpsHealthCheck resources.
13541	Items []*HttpsHealthCheck `json:"items,omitempty"`
13542
13543	// Kind: Type of resource.
13544	Kind string `json:"kind,omitempty"`
13545
13546	// NextPageToken: [Output Only] This token allows you to get the next
13547	// page of results for list requests. If the number of results is larger
13548	// than maxResults, use the nextPageToken as a value for the query
13549	// parameter pageToken in the next list request. Subsequent list
13550	// requests will have their own nextPageToken to continue paging through
13551	// the results.
13552	NextPageToken string `json:"nextPageToken,omitempty"`
13553
13554	// SelfLink: [Output Only] Server-defined URL for this resource.
13555	SelfLink string `json:"selfLink,omitempty"`
13556
13557	// Warning: [Output Only] Informational warning message.
13558	Warning *HttpsHealthCheckListWarning `json:"warning,omitempty"`
13559
13560	// ServerResponse contains the HTTP response code and headers from the
13561	// server.
13562	googleapi.ServerResponse `json:"-"`
13563
13564	// ForceSendFields is a list of field names (e.g. "Id") to
13565	// unconditionally include in API requests. By default, fields with
13566	// empty values are omitted from API requests. However, any non-pointer,
13567	// non-interface field appearing in ForceSendFields will be sent to the
13568	// server regardless of whether the field is empty or not. This may be
13569	// used to include empty fields in Patch requests.
13570	ForceSendFields []string `json:"-"`
13571
13572	// NullFields is a list of field names (e.g. "Id") to include in API
13573	// requests with the JSON null value. By default, fields with empty
13574	// values are omitted from API requests. However, any field with an
13575	// empty value appearing in NullFields will be sent to the server as
13576	// null. It is an error if a field in this list has a non-empty value.
13577	// This may be used to include null fields in Patch requests.
13578	NullFields []string `json:"-"`
13579}
13580
13581func (s *HttpsHealthCheckList) MarshalJSON() ([]byte, error) {
13582	type NoMethod HttpsHealthCheckList
13583	raw := NoMethod(*s)
13584	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13585}
13586
13587// HttpsHealthCheckListWarning: [Output Only] Informational warning
13588// message.
13589type HttpsHealthCheckListWarning struct {
13590	// Code: [Output Only] A warning code, if applicable. For example,
13591	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
13592	// the response.
13593	//
13594	// Possible values:
13595	//   "CLEANUP_FAILED"
13596	//   "DEPRECATED_RESOURCE_USED"
13597	//   "DEPRECATED_TYPE_USED"
13598	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
13599	//   "EXPERIMENTAL_TYPE_USED"
13600	//   "EXTERNAL_API_WARNING"
13601	//   "FIELD_VALUE_OVERRIDEN"
13602	//   "INJECTED_KERNELS_DEPRECATED"
13603	//   "MISSING_TYPE_DEPENDENCY"
13604	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
13605	//   "NEXT_HOP_CANNOT_IP_FORWARD"
13606	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
13607	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
13608	//   "NEXT_HOP_NOT_RUNNING"
13609	//   "NOT_CRITICAL_ERROR"
13610	//   "NO_RESULTS_ON_PAGE"
13611	//   "REQUIRED_TOS_AGREEMENT"
13612	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
13613	//   "RESOURCE_NOT_DELETED"
13614	//   "SCHEMA_VALIDATION_IGNORED"
13615	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
13616	//   "UNDECLARED_PROPERTIES"
13617	//   "UNREACHABLE"
13618	Code string `json:"code,omitempty"`
13619
13620	// Data: [Output Only] Metadata about this warning in key: value format.
13621	// For example:
13622	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
13623	Data []*HttpsHealthCheckListWarningData `json:"data,omitempty"`
13624
13625	// Message: [Output Only] A human-readable description of the warning
13626	// code.
13627	Message string `json:"message,omitempty"`
13628
13629	// ForceSendFields is a list of field names (e.g. "Code") to
13630	// unconditionally include in API requests. By default, fields with
13631	// empty values are omitted from API requests. However, any non-pointer,
13632	// non-interface field appearing in ForceSendFields will be sent to the
13633	// server regardless of whether the field is empty or not. This may be
13634	// used to include empty fields in Patch requests.
13635	ForceSendFields []string `json:"-"`
13636
13637	// NullFields is a list of field names (e.g. "Code") to include in API
13638	// requests with the JSON null value. By default, fields with empty
13639	// values are omitted from API requests. However, any field with an
13640	// empty value appearing in NullFields will be sent to the server as
13641	// null. It is an error if a field in this list has a non-empty value.
13642	// This may be used to include null fields in Patch requests.
13643	NullFields []string `json:"-"`
13644}
13645
13646func (s *HttpsHealthCheckListWarning) MarshalJSON() ([]byte, error) {
13647	type NoMethod HttpsHealthCheckListWarning
13648	raw := NoMethod(*s)
13649	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13650}
13651
13652type HttpsHealthCheckListWarningData struct {
13653	// Key: [Output Only] A key that provides more detail on the warning
13654	// being returned. For example, for warnings where there are no results
13655	// in a list request for a particular zone, this key might be scope and
13656	// the key value might be the zone name. Other examples might be a key
13657	// indicating a deprecated resource and a suggested replacement, or a
13658	// warning about invalid network settings (for example, if an instance
13659	// attempts to perform IP forwarding but is not enabled for IP
13660	// forwarding).
13661	Key string `json:"key,omitempty"`
13662
13663	// Value: [Output Only] A warning data value corresponding to the key.
13664	Value string `json:"value,omitempty"`
13665
13666	// ForceSendFields is a list of field names (e.g. "Key") to
13667	// unconditionally include in API requests. By default, fields with
13668	// empty values are omitted from API requests. However, any non-pointer,
13669	// non-interface field appearing in ForceSendFields will be sent to the
13670	// server regardless of whether the field is empty or not. This may be
13671	// used to include empty fields in Patch requests.
13672	ForceSendFields []string `json:"-"`
13673
13674	// NullFields is a list of field names (e.g. "Key") to include in API
13675	// requests with the JSON null value. By default, fields with empty
13676	// values are omitted from API requests. However, any field with an
13677	// empty value appearing in NullFields will be sent to the server as
13678	// null. It is an error if a field in this list has a non-empty value.
13679	// This may be used to include null fields in Patch requests.
13680	NullFields []string `json:"-"`
13681}
13682
13683func (s *HttpsHealthCheckListWarningData) MarshalJSON() ([]byte, error) {
13684	type NoMethod HttpsHealthCheckListWarningData
13685	raw := NoMethod(*s)
13686	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13687}
13688
13689// Image: Represents an Image resource.
13690//
13691// You can use images to create boot disks for your VM instances. For
13692// more information, read Images. (== resource_for beta.images ==) (==
13693// resource_for v1.images ==)
13694type Image struct {
13695	// ArchiveSizeBytes: Size of the image tar.gz archive stored in Google
13696	// Cloud Storage (in bytes).
13697	ArchiveSizeBytes int64 `json:"archiveSizeBytes,omitempty,string"`
13698
13699	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
13700	// format.
13701	CreationTimestamp string `json:"creationTimestamp,omitempty"`
13702
13703	// Deprecated: The deprecation status associated with this image.
13704	Deprecated *DeprecationStatus `json:"deprecated,omitempty"`
13705
13706	// Description: An optional description of this resource. Provide this
13707	// property when you create the resource.
13708	Description string `json:"description,omitempty"`
13709
13710	// DiskSizeGb: Size of the image when restored onto a persistent disk
13711	// (in GB).
13712	DiskSizeGb int64 `json:"diskSizeGb,omitempty,string"`
13713
13714	// Family: The name of the image family to which this image belongs. You
13715	// can create disks by specifying an image family instead of a specific
13716	// image name. The image family always returns its latest image that is
13717	// not deprecated. The name of the image family must comply with
13718	// RFC1035.
13719	Family string `json:"family,omitempty"`
13720
13721	// GuestOsFeatures: A list of features to enable on the guest operating
13722	// system. Applicable only for bootable images. Read  Enabling guest
13723	// operating system features to see a list of available options.
13724	GuestOsFeatures []*GuestOsFeature `json:"guestOsFeatures,omitempty"`
13725
13726	// Id: [Output Only] The unique identifier for the resource. This
13727	// identifier is defined by the server.
13728	Id uint64 `json:"id,omitempty,string"`
13729
13730	// ImageEncryptionKey: Encrypts the image using a customer-supplied
13731	// encryption key.
13732	//
13733	// After you encrypt an image with a customer-supplied key, you must
13734	// provide the same key if you use the image later (e.g. to create a
13735	// disk from the image).
13736	//
13737	// Customer-supplied encryption keys do not protect access to metadata
13738	// of the disk.
13739	//
13740	// If you do not provide an encryption key when creating the image, then
13741	// the disk will be encrypted using an automatically generated key and
13742	// you do not need to provide a key to use the image later.
13743	ImageEncryptionKey *CustomerEncryptionKey `json:"imageEncryptionKey,omitempty"`
13744
13745	// Kind: [Output Only] Type of the resource. Always compute#image for
13746	// images.
13747	Kind string `json:"kind,omitempty"`
13748
13749	// LabelFingerprint: A fingerprint for the labels being applied to this
13750	// image, which is essentially a hash of the labels used for optimistic
13751	// locking. The fingerprint is initially generated by Compute Engine and
13752	// changes after every request to modify or update labels. You must
13753	// always provide an up-to-date fingerprint hash in order to update or
13754	// change labels, otherwise the request will fail with error 412
13755	// conditionNotMet.
13756	//
13757	// To see the latest fingerprint, make a get() request to retrieve an
13758	// image.
13759	LabelFingerprint string `json:"labelFingerprint,omitempty"`
13760
13761	// Labels: Labels to apply to this image. These can be later modified by
13762	// the setLabels method.
13763	Labels map[string]string `json:"labels,omitempty"`
13764
13765	// LicenseCodes: Integer license codes indicating which licenses are
13766	// attached to this image.
13767	LicenseCodes googleapi.Int64s `json:"licenseCodes,omitempty"`
13768
13769	// Licenses: Any applicable license URI.
13770	Licenses []string `json:"licenses,omitempty"`
13771
13772	// Name: Name of the resource; provided by the client when the resource
13773	// is created. The name must be 1-63 characters long, and comply with
13774	// RFC1035. Specifically, the name must be 1-63 characters long and
13775	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
13776	// the first character must be a lowercase letter, and all following
13777	// characters must be a dash, lowercase letter, or digit, except the
13778	// last character, which cannot be a dash.
13779	Name string `json:"name,omitempty"`
13780
13781	// RawDisk: The parameters of the raw disk image.
13782	RawDisk *ImageRawDisk `json:"rawDisk,omitempty"`
13783
13784	// SelfLink: [Output Only] Server-defined URL for the resource.
13785	SelfLink string `json:"selfLink,omitempty"`
13786
13787	// SelfLinkWithId: [Output Only] Server-defined URL for this resource's
13788	// resource id.
13789	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
13790
13791	// ShieldedInstanceInitialState: Set the secure boot keys of shielded
13792	// instance.
13793	ShieldedInstanceInitialState *InitialStateConfig `json:"shieldedInstanceInitialState,omitempty"`
13794
13795	// SourceDisk: URL of the source disk used to create this image. This
13796	// can be a full or valid partial URL. You must provide either this
13797	// property or the rawDisk.source property but not both to create an
13798	// image. For example, the following are valid values:
13799	// -
13800	// https://www.googleapis.com/compute/v1/projects/project/zones/zone/disks/disk
13801	// - projects/project/zones/zone/disks/disk
13802	// - zones/zone/disks/disk
13803	SourceDisk string `json:"sourceDisk,omitempty"`
13804
13805	// SourceDiskEncryptionKey: The customer-supplied encryption key of the
13806	// source disk. Required if the source disk is protected by a
13807	// customer-supplied encryption key.
13808	SourceDiskEncryptionKey *CustomerEncryptionKey `json:"sourceDiskEncryptionKey,omitempty"`
13809
13810	// SourceDiskId: [Output Only] The ID value of the disk used to create
13811	// this image. This value may be used to determine whether the image was
13812	// taken from the current or a previous instance of a given disk name.
13813	SourceDiskId string `json:"sourceDiskId,omitempty"`
13814
13815	// SourceImage: URL of the source image used to create this image. This
13816	// can be a full or valid partial URL. You must provide exactly one of:
13817	//
13818	// - this property, or
13819	// - the rawDisk.source property, or
13820	// - the sourceDisk property   in order to create an image.
13821	SourceImage string `json:"sourceImage,omitempty"`
13822
13823	// SourceImageEncryptionKey: The customer-supplied encryption key of the
13824	// source image. Required if the source image is protected by a
13825	// customer-supplied encryption key.
13826	SourceImageEncryptionKey *CustomerEncryptionKey `json:"sourceImageEncryptionKey,omitempty"`
13827
13828	// SourceImageId: [Output Only] The ID value of the image used to create
13829	// this image. This value may be used to determine whether the image was
13830	// taken from the current or a previous instance of a given image name.
13831	SourceImageId string `json:"sourceImageId,omitempty"`
13832
13833	// SourceSnapshot: URL of the source snapshot used to create this image.
13834	// This can be a full or valid partial URL. You must provide exactly one
13835	// of:
13836	// - this property, or
13837	// - the sourceImage property, or
13838	// - the rawDisk.source property, or
13839	// - the sourceDisk property   in order to create an image.
13840	SourceSnapshot string `json:"sourceSnapshot,omitempty"`
13841
13842	// SourceSnapshotEncryptionKey: The customer-supplied encryption key of
13843	// the source snapshot. Required if the source snapshot is protected by
13844	// a customer-supplied encryption key.
13845	SourceSnapshotEncryptionKey *CustomerEncryptionKey `json:"sourceSnapshotEncryptionKey,omitempty"`
13846
13847	// SourceSnapshotId: [Output Only] The ID value of the snapshot used to
13848	// create this image. This value may be used to determine whether the
13849	// snapshot was taken from the current or a previous instance of a given
13850	// snapshot name.
13851	SourceSnapshotId string `json:"sourceSnapshotId,omitempty"`
13852
13853	// SourceType: The type of the image used to create this disk. The
13854	// default and only value is RAW
13855	//
13856	// Possible values:
13857	//   "RAW" (default)
13858	SourceType string `json:"sourceType,omitempty"`
13859
13860	// Status: [Output Only] The status of the image. An image can be used
13861	// to create other resources, such as instances, only after the image
13862	// has been successfully created and the status is set to READY.
13863	// Possible values are FAILED, PENDING, or READY.
13864	//
13865	// Possible values:
13866	//   "DELETING"
13867	//   "FAILED"
13868	//   "PENDING"
13869	//   "READY"
13870	Status string `json:"status,omitempty"`
13871
13872	// StorageLocations: Cloud Storage bucket storage location of the image
13873	// (regional or multi-regional).
13874	StorageLocations []string `json:"storageLocations,omitempty"`
13875
13876	// ServerResponse contains the HTTP response code and headers from the
13877	// server.
13878	googleapi.ServerResponse `json:"-"`
13879
13880	// ForceSendFields is a list of field names (e.g. "ArchiveSizeBytes") to
13881	// unconditionally include in API requests. By default, fields with
13882	// empty values are omitted from API requests. However, any non-pointer,
13883	// non-interface field appearing in ForceSendFields will be sent to the
13884	// server regardless of whether the field is empty or not. This may be
13885	// used to include empty fields in Patch requests.
13886	ForceSendFields []string `json:"-"`
13887
13888	// NullFields is a list of field names (e.g. "ArchiveSizeBytes") to
13889	// include in API requests with the JSON null value. By default, fields
13890	// with empty values are omitted from API requests. However, any field
13891	// with an empty value appearing in NullFields will be sent to the
13892	// server as null. It is an error if a field in this list has a
13893	// non-empty value. This may be used to include null fields in Patch
13894	// requests.
13895	NullFields []string `json:"-"`
13896}
13897
13898func (s *Image) MarshalJSON() ([]byte, error) {
13899	type NoMethod Image
13900	raw := NoMethod(*s)
13901	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13902}
13903
13904// ImageRawDisk: The parameters of the raw disk image.
13905type ImageRawDisk struct {
13906	// ContainerType: The format used to encode and transmit the block
13907	// device, which should be TAR. This is just a container and
13908	// transmission format and not a runtime format. Provided by the client
13909	// when the disk image is created.
13910	//
13911	// Possible values:
13912	//   "TAR"
13913	ContainerType string `json:"containerType,omitempty"`
13914
13915	// Sha1Checksum: [Deprecated] This field is deprecated. An optional SHA1
13916	// checksum of the disk image before unpackaging provided by the client
13917	// when the disk image is created.
13918	Sha1Checksum string `json:"sha1Checksum,omitempty"`
13919
13920	// Source: The full Google Cloud Storage URL where the disk image is
13921	// stored. You must provide either this property or the sourceDisk
13922	// property but not both.
13923	Source string `json:"source,omitempty"`
13924
13925	// ForceSendFields is a list of field names (e.g. "ContainerType") to
13926	// unconditionally include in API requests. By default, fields with
13927	// empty values are omitted from API requests. However, any non-pointer,
13928	// non-interface field appearing in ForceSendFields will be sent to the
13929	// server regardless of whether the field is empty or not. This may be
13930	// used to include empty fields in Patch requests.
13931	ForceSendFields []string `json:"-"`
13932
13933	// NullFields is a list of field names (e.g. "ContainerType") to include
13934	// in API requests with the JSON null value. By default, fields with
13935	// empty values are omitted from API requests. However, any field with
13936	// an empty value appearing in NullFields will be sent to the server as
13937	// null. It is an error if a field in this list has a non-empty value.
13938	// This may be used to include null fields in Patch requests.
13939	NullFields []string `json:"-"`
13940}
13941
13942func (s *ImageRawDisk) MarshalJSON() ([]byte, error) {
13943	type NoMethod ImageRawDisk
13944	raw := NoMethod(*s)
13945	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13946}
13947
13948// ImageList: Contains a list of images.
13949type ImageList struct {
13950	// Id: [Output Only] Unique identifier for the resource; defined by the
13951	// server.
13952	Id string `json:"id,omitempty"`
13953
13954	// Items: A list of Image resources.
13955	Items []*Image `json:"items,omitempty"`
13956
13957	// Kind: Type of resource.
13958	Kind string `json:"kind,omitempty"`
13959
13960	// NextPageToken: [Output Only] This token allows you to get the next
13961	// page of results for list requests. If the number of results is larger
13962	// than maxResults, use the nextPageToken as a value for the query
13963	// parameter pageToken in the next list request. Subsequent list
13964	// requests will have their own nextPageToken to continue paging through
13965	// the results.
13966	NextPageToken string `json:"nextPageToken,omitempty"`
13967
13968	// SelfLink: [Output Only] Server-defined URL for this resource.
13969	SelfLink string `json:"selfLink,omitempty"`
13970
13971	// Warning: [Output Only] Informational warning message.
13972	Warning *ImageListWarning `json:"warning,omitempty"`
13973
13974	// ServerResponse contains the HTTP response code and headers from the
13975	// server.
13976	googleapi.ServerResponse `json:"-"`
13977
13978	// ForceSendFields is a list of field names (e.g. "Id") to
13979	// unconditionally include in API requests. By default, fields with
13980	// empty values are omitted from API requests. However, any non-pointer,
13981	// non-interface field appearing in ForceSendFields will be sent to the
13982	// server regardless of whether the field is empty or not. This may be
13983	// used to include empty fields in Patch requests.
13984	ForceSendFields []string `json:"-"`
13985
13986	// NullFields is a list of field names (e.g. "Id") to include in API
13987	// requests with the JSON null value. By default, fields with empty
13988	// values are omitted from API requests. However, any field with an
13989	// empty value appearing in NullFields will be sent to the server as
13990	// null. It is an error if a field in this list has a non-empty value.
13991	// This may be used to include null fields in Patch requests.
13992	NullFields []string `json:"-"`
13993}
13994
13995func (s *ImageList) MarshalJSON() ([]byte, error) {
13996	type NoMethod ImageList
13997	raw := NoMethod(*s)
13998	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13999}
14000
14001// ImageListWarning: [Output Only] Informational warning message.
14002type ImageListWarning struct {
14003	// Code: [Output Only] A warning code, if applicable. For example,
14004	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
14005	// the response.
14006	//
14007	// Possible values:
14008	//   "CLEANUP_FAILED"
14009	//   "DEPRECATED_RESOURCE_USED"
14010	//   "DEPRECATED_TYPE_USED"
14011	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
14012	//   "EXPERIMENTAL_TYPE_USED"
14013	//   "EXTERNAL_API_WARNING"
14014	//   "FIELD_VALUE_OVERRIDEN"
14015	//   "INJECTED_KERNELS_DEPRECATED"
14016	//   "MISSING_TYPE_DEPENDENCY"
14017	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
14018	//   "NEXT_HOP_CANNOT_IP_FORWARD"
14019	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
14020	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
14021	//   "NEXT_HOP_NOT_RUNNING"
14022	//   "NOT_CRITICAL_ERROR"
14023	//   "NO_RESULTS_ON_PAGE"
14024	//   "REQUIRED_TOS_AGREEMENT"
14025	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
14026	//   "RESOURCE_NOT_DELETED"
14027	//   "SCHEMA_VALIDATION_IGNORED"
14028	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
14029	//   "UNDECLARED_PROPERTIES"
14030	//   "UNREACHABLE"
14031	Code string `json:"code,omitempty"`
14032
14033	// Data: [Output Only] Metadata about this warning in key: value format.
14034	// For example:
14035	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
14036	Data []*ImageListWarningData `json:"data,omitempty"`
14037
14038	// Message: [Output Only] A human-readable description of the warning
14039	// code.
14040	Message string `json:"message,omitempty"`
14041
14042	// ForceSendFields is a list of field names (e.g. "Code") to
14043	// unconditionally include in API requests. By default, fields with
14044	// empty values are omitted from API requests. However, any non-pointer,
14045	// non-interface field appearing in ForceSendFields will be sent to the
14046	// server regardless of whether the field is empty or not. This may be
14047	// used to include empty fields in Patch requests.
14048	ForceSendFields []string `json:"-"`
14049
14050	// NullFields is a list of field names (e.g. "Code") to include in API
14051	// requests with the JSON null value. By default, fields with empty
14052	// values are omitted from API requests. However, any field with an
14053	// empty value appearing in NullFields will be sent to the server as
14054	// null. It is an error if a field in this list has a non-empty value.
14055	// This may be used to include null fields in Patch requests.
14056	NullFields []string `json:"-"`
14057}
14058
14059func (s *ImageListWarning) MarshalJSON() ([]byte, error) {
14060	type NoMethod ImageListWarning
14061	raw := NoMethod(*s)
14062	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14063}
14064
14065type ImageListWarningData struct {
14066	// Key: [Output Only] A key that provides more detail on the warning
14067	// being returned. For example, for warnings where there are no results
14068	// in a list request for a particular zone, this key might be scope and
14069	// the key value might be the zone name. Other examples might be a key
14070	// indicating a deprecated resource and a suggested replacement, or a
14071	// warning about invalid network settings (for example, if an instance
14072	// attempts to perform IP forwarding but is not enabled for IP
14073	// forwarding).
14074	Key string `json:"key,omitempty"`
14075
14076	// Value: [Output Only] A warning data value corresponding to the key.
14077	Value string `json:"value,omitempty"`
14078
14079	// ForceSendFields is a list of field names (e.g. "Key") to
14080	// unconditionally include in API requests. By default, fields with
14081	// empty values are omitted from API requests. However, any non-pointer,
14082	// non-interface field appearing in ForceSendFields will be sent to the
14083	// server regardless of whether the field is empty or not. This may be
14084	// used to include empty fields in Patch requests.
14085	ForceSendFields []string `json:"-"`
14086
14087	// NullFields is a list of field names (e.g. "Key") to include in API
14088	// requests with the JSON null value. By default, fields with empty
14089	// values are omitted from API requests. However, any field with an
14090	// empty value appearing in NullFields will be sent to the server as
14091	// null. It is an error if a field in this list has a non-empty value.
14092	// This may be used to include null fields in Patch requests.
14093	NullFields []string `json:"-"`
14094}
14095
14096func (s *ImageListWarningData) MarshalJSON() ([]byte, error) {
14097	type NoMethod ImageListWarningData
14098	raw := NoMethod(*s)
14099	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14100}
14101
14102// InitialStateConfig: Initial State for shielded instance, these are
14103// public keys which are safe to store in public
14104type InitialStateConfig struct {
14105	// Dbs: The Key Database (db).
14106	Dbs []*FileContentBuffer `json:"dbs,omitempty"`
14107
14108	// Dbxs: The forbidden key database (dbx).
14109	Dbxs []*FileContentBuffer `json:"dbxs,omitempty"`
14110
14111	// Keks: The Key Exchange Key (KEK).
14112	Keks []*FileContentBuffer `json:"keks,omitempty"`
14113
14114	// Pk: The Platform Key (PK).
14115	Pk *FileContentBuffer `json:"pk,omitempty"`
14116
14117	// ForceSendFields is a list of field names (e.g. "Dbs") to
14118	// unconditionally include in API requests. By default, fields with
14119	// empty values are omitted from API requests. However, any non-pointer,
14120	// non-interface field appearing in ForceSendFields will be sent to the
14121	// server regardless of whether the field is empty or not. This may be
14122	// used to include empty fields in Patch requests.
14123	ForceSendFields []string `json:"-"`
14124
14125	// NullFields is a list of field names (e.g. "Dbs") to include in API
14126	// requests with the JSON null value. By default, fields with empty
14127	// values are omitted from API requests. However, any field with an
14128	// empty value appearing in NullFields will be sent to the server as
14129	// null. It is an error if a field in this list has a non-empty value.
14130	// This may be used to include null fields in Patch requests.
14131	NullFields []string `json:"-"`
14132}
14133
14134func (s *InitialStateConfig) MarshalJSON() ([]byte, error) {
14135	type NoMethod InitialStateConfig
14136	raw := NoMethod(*s)
14137	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14138}
14139
14140// Instance: Represents an Instance resource.
14141//
14142// An instance is a virtual machine that is hosted on Google Cloud
14143// Platform. For more information, read Virtual Machine Instances. (==
14144// resource_for beta.instances ==) (== resource_for v1.instances ==)
14145type Instance struct {
14146	// CanIpForward: Allows this instance to send and receive packets with
14147	// non-matching destination or source IPs. This is required if you plan
14148	// to use this instance to forward routes. For more information, see
14149	// Enabling IP Forwarding.
14150	CanIpForward bool `json:"canIpForward,omitempty"`
14151
14152	ConfidentialInstanceConfig *ConfidentialInstanceConfig `json:"confidentialInstanceConfig,omitempty"`
14153
14154	// CpuPlatform: [Output Only] The CPU platform used by this instance.
14155	CpuPlatform string `json:"cpuPlatform,omitempty"`
14156
14157	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
14158	// format.
14159	CreationTimestamp string `json:"creationTimestamp,omitempty"`
14160
14161	// DeletionProtection: Whether the resource should be protected against
14162	// deletion.
14163	DeletionProtection bool `json:"deletionProtection,omitempty"`
14164
14165	// Description: An optional description of this resource. Provide this
14166	// property when you create the resource.
14167	Description string `json:"description,omitempty"`
14168
14169	// Disks: Array of disks associated with this instance. Persistent disks
14170	// must be created before you can assign them.
14171	Disks []*AttachedDisk `json:"disks,omitempty"`
14172
14173	// DisplayDevice: Enables display device for the instance.
14174	DisplayDevice *DisplayDevice `json:"displayDevice,omitempty"`
14175
14176	// EraseWindowsVssSignature: Specifies whether the disks restored from
14177	// source snapshots or source machine image should erase Windows
14178	// specific VSS signature.
14179	EraseWindowsVssSignature bool `json:"eraseWindowsVssSignature,omitempty"`
14180
14181	// Fingerprint: Specifies a fingerprint for this resource, which is
14182	// essentially a hash of the instance's contents and used for optimistic
14183	// locking. The fingerprint is initially generated by Compute Engine and
14184	// changes after every request to modify or update the instance. You
14185	// must always provide an up-to-date fingerprint hash in order to update
14186	// the instance.
14187	//
14188	// To see the latest fingerprint, make get() request to the instance.
14189	Fingerprint string `json:"fingerprint,omitempty"`
14190
14191	// GuestAccelerators: A list of the type and count of accelerator cards
14192	// attached to the instance.
14193	GuestAccelerators []*AcceleratorConfig `json:"guestAccelerators,omitempty"`
14194
14195	// Hostname: Specifies the hostname of the instance. The specified
14196	// hostname must be RFC1035 compliant. If hostname is not specified, the
14197	// default hostname is [INSTANCE_NAME].c.[PROJECT_ID].internal when
14198	// using the global DNS, and
14199	// [INSTANCE_NAME].[ZONE].c.[PROJECT_ID].internal when using zonal DNS.
14200	Hostname string `json:"hostname,omitempty"`
14201
14202	// Id: [Output Only] The unique identifier for the resource. This
14203	// identifier is defined by the server.
14204	Id uint64 `json:"id,omitempty,string"`
14205
14206	// InstanceEncryptionKey: Encrypts or decrypts data for an instance with
14207	// a customer-supplied encryption key.
14208	//
14209	// If you are creating a new instance, this field encrypts the local SSD
14210	// and in-memory contents of the instance using a key that you
14211	// provide.
14212	//
14213	// If you are restarting an instance protected with a customer-supplied
14214	// encryption key, you must provide the correct key in order to
14215	// successfully restart the instance.
14216	//
14217	// If you do not provide an encryption key when creating the instance,
14218	// then the local SSD and in-memory contents will be encrypted using an
14219	// automatically generated key and you do not need to provide a key to
14220	// start the instance later.
14221	//
14222	// Instance templates do not store customer-supplied encryption keys, so
14223	// you cannot use your own keys to encrypt local SSDs and in-memory
14224	// content in a managed instance group.
14225	InstanceEncryptionKey *CustomerEncryptionKey `json:"instanceEncryptionKey,omitempty"`
14226
14227	// Kind: [Output Only] Type of the resource. Always compute#instance for
14228	// instances.
14229	Kind string `json:"kind,omitempty"`
14230
14231	// LabelFingerprint: A fingerprint for this request, which is
14232	// essentially a hash of the label's contents and used for optimistic
14233	// locking. The fingerprint is initially generated by Compute Engine and
14234	// changes after every request to modify or update labels. You must
14235	// always provide an up-to-date fingerprint hash in order to update or
14236	// change labels.
14237	//
14238	// To see the latest fingerprint, make get() request to the instance.
14239	LabelFingerprint string `json:"labelFingerprint,omitempty"`
14240
14241	// Labels: Labels to apply to this instance. These can be later modified
14242	// by the setLabels method.
14243	Labels map[string]string `json:"labels,omitempty"`
14244
14245	// MachineType: Full or partial URL of the machine type resource to use
14246	// for this instance, in the format:
14247	// zones/zone/machineTypes/machine-type. This is provided by the client
14248	// when the instance is created. For example, the following is a valid
14249	// partial url to a predefined machine
14250	// type:
14251	// zones/us-central1-f/machineTypes/n1-standard-1
14252	//
14253	//
14254	// To create a custom machine type, provide a URL to a machine type in
14255	// the following format, where CPUS is 1 or an even number up to 32 (2,
14256	// 4, 6, ... 24, etc), and MEMORY is the total memory for this instance.
14257	// Memory must be a multiple of 256 MB and must be supplied in MB (e.g.
14258	// 5 GB of memory is 5120
14259	// MB):
14260	// zones/zone/machineTypes/custom-CPUS-MEMORY
14261	//
14262	//
14263	// For example: zones/us-central1-f/machineTypes/custom-4-5120
14264	//
14265	// For a full list of restrictions, read the Specifications for custom
14266	// machine types.
14267	MachineType string `json:"machineType,omitempty"`
14268
14269	// Metadata: The metadata key/value pairs assigned to this instance.
14270	// This includes custom metadata and predefined keys.
14271	Metadata *Metadata `json:"metadata,omitempty"`
14272
14273	// MinCpuPlatform: Specifies a minimum CPU platform for the VM instance.
14274	// Applicable values are the friendly names of CPU platforms, such as
14275	// minCpuPlatform: "Intel Haswell" or minCpuPlatform: "Intel Sandy
14276	// Bridge".
14277	MinCpuPlatform string `json:"minCpuPlatform,omitempty"`
14278
14279	// Name: The name of the resource, provided by the client when initially
14280	// creating the resource. The resource name must be 1-63 characters
14281	// long, and comply with RFC1035. Specifically, the name must be 1-63
14282	// characters long and match the regular expression
14283	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
14284	// a lowercase letter, and all following characters must be a dash,
14285	// lowercase letter, or digit, except the last character, which cannot
14286	// be a dash.
14287	Name string `json:"name,omitempty"`
14288
14289	// NetworkInterfaces: An array of network configurations for this
14290	// instance. These specify how interfaces are configured to interact
14291	// with other network services, such as connecting to the internet.
14292	// Multiple interfaces are supported per instance.
14293	NetworkInterfaces []*NetworkInterface `json:"networkInterfaces,omitempty"`
14294
14295	// PostKeyRevocationActionType: Specifies whether this instance will be
14296	// shut down on key revocation.
14297	//
14298	// Possible values:
14299	//   "NOOP"
14300	//   "SHUTDOWN"
14301	//   "UNSPECIFIED"
14302	PostKeyRevocationActionType string `json:"postKeyRevocationActionType,omitempty"`
14303
14304	// PreservedStateSizeGb: Total amount of preserved state for SUSPENDED
14305	// instances. Read-only in the api.
14306	PreservedStateSizeGb int64 `json:"preservedStateSizeGb,omitempty,string"`
14307
14308	// ReservationAffinity: Specifies the reservations that this instance
14309	// can consume from.
14310	ReservationAffinity *ReservationAffinity `json:"reservationAffinity,omitempty"`
14311
14312	// ResourcePolicies: Resource policies applied to this instance.
14313	ResourcePolicies []string `json:"resourcePolicies,omitempty"`
14314
14315	// Scheduling: Sets the scheduling options for this instance.
14316	Scheduling *Scheduling `json:"scheduling,omitempty"`
14317
14318	// SelfLink: [Output Only] Server-defined URL for this resource.
14319	SelfLink string `json:"selfLink,omitempty"`
14320
14321	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
14322	// with the resource id.
14323	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
14324
14325	// ServiceAccounts: A list of service accounts, with their specified
14326	// scopes, authorized for this instance. Only one service account per VM
14327	// instance is supported.
14328	//
14329	// Service accounts generate access tokens that can be accessed through
14330	// the metadata server and used to authenticate applications on the
14331	// instance. See Service Accounts for more information.
14332	ServiceAccounts []*ServiceAccount `json:"serviceAccounts,omitempty"`
14333
14334	ShieldedInstanceConfig *ShieldedInstanceConfig `json:"shieldedInstanceConfig,omitempty"`
14335
14336	ShieldedInstanceIntegrityPolicy *ShieldedInstanceIntegrityPolicy `json:"shieldedInstanceIntegrityPolicy,omitempty"`
14337
14338	ShieldedVmConfig *ShieldedVmConfig `json:"shieldedVmConfig,omitempty"`
14339
14340	ShieldedVmIntegrityPolicy *ShieldedVmIntegrityPolicy `json:"shieldedVmIntegrityPolicy,omitempty"`
14341
14342	// SourceMachineImage: Source machine image
14343	SourceMachineImage string `json:"sourceMachineImage,omitempty"`
14344
14345	// SourceMachineImageEncryptionKey: Source GMI encryption key when
14346	// creating an instance from GMI.
14347	SourceMachineImageEncryptionKey *CustomerEncryptionKey `json:"sourceMachineImageEncryptionKey,omitempty"`
14348
14349	// StartRestricted: [Output Only] Whether a VM has been restricted for
14350	// start because Compute Engine has detected suspicious activity.
14351	StartRestricted bool `json:"startRestricted,omitempty"`
14352
14353	// Status: [Output Only] The status of the instance. One of the
14354	// following values: PROVISIONING, STAGING, RUNNING, STOPPING, STOPPED,
14355	// SUSPENDING, SUSPENDED, and TERMINATED.
14356	//
14357	// Possible values:
14358	//   "PROVISIONING"
14359	//   "REPAIRING"
14360	//   "RUNNING"
14361	//   "STAGING"
14362	//   "STOPPED"
14363	//   "STOPPING"
14364	//   "SUSPENDED"
14365	//   "SUSPENDING"
14366	//   "TERMINATED"
14367	Status string `json:"status,omitempty"`
14368
14369	// StatusMessage: [Output Only] An optional, human-readable explanation
14370	// of the status.
14371	StatusMessage string `json:"statusMessage,omitempty"`
14372
14373	// Tags: Tags to apply to this instance. Tags are used to identify valid
14374	// sources or targets for network firewalls and are specified by the
14375	// client during instance creation. The tags can be later modified by
14376	// the setTags method. Each tag within the list must comply with
14377	// RFC1035. Multiple tags can be specified via the 'tags.items' field.
14378	Tags *Tags `json:"tags,omitempty"`
14379
14380	// Zone: [Output Only] URL of the zone where the instance resides. You
14381	// must specify this field as part of the HTTP request URL. It is not
14382	// settable as a field in the request body.
14383	Zone string `json:"zone,omitempty"`
14384
14385	// ServerResponse contains the HTTP response code and headers from the
14386	// server.
14387	googleapi.ServerResponse `json:"-"`
14388
14389	// ForceSendFields is a list of field names (e.g. "CanIpForward") to
14390	// unconditionally include in API requests. By default, fields with
14391	// empty values are omitted from API requests. However, any non-pointer,
14392	// non-interface field appearing in ForceSendFields will be sent to the
14393	// server regardless of whether the field is empty or not. This may be
14394	// used to include empty fields in Patch requests.
14395	ForceSendFields []string `json:"-"`
14396
14397	// NullFields is a list of field names (e.g. "CanIpForward") to include
14398	// in API requests with the JSON null value. By default, fields with
14399	// empty values are omitted from API requests. However, any field with
14400	// an empty value appearing in NullFields will be sent to the server as
14401	// null. It is an error if a field in this list has a non-empty value.
14402	// This may be used to include null fields in Patch requests.
14403	NullFields []string `json:"-"`
14404}
14405
14406func (s *Instance) MarshalJSON() ([]byte, error) {
14407	type NoMethod Instance
14408	raw := NoMethod(*s)
14409	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14410}
14411
14412type InstanceAggregatedList struct {
14413	// Id: [Output Only] Unique identifier for the resource; defined by the
14414	// server.
14415	Id string `json:"id,omitempty"`
14416
14417	// Items: An object that contains a list of instances scoped by zone.
14418	Items map[string]InstancesScopedList `json:"items,omitempty"`
14419
14420	// Kind: [Output Only] Type of resource. Always
14421	// compute#instanceAggregatedList for aggregated lists of Instance
14422	// resources.
14423	Kind string `json:"kind,omitempty"`
14424
14425	// NextPageToken: [Output Only] This token allows you to get the next
14426	// page of results for list requests. If the number of results is larger
14427	// than maxResults, use the nextPageToken as a value for the query
14428	// parameter pageToken in the next list request. Subsequent list
14429	// requests will have their own nextPageToken to continue paging through
14430	// the results.
14431	NextPageToken string `json:"nextPageToken,omitempty"`
14432
14433	// SelfLink: [Output Only] Server-defined URL for this resource.
14434	SelfLink string `json:"selfLink,omitempty"`
14435
14436	// Warning: [Output Only] Informational warning message.
14437	Warning *InstanceAggregatedListWarning `json:"warning,omitempty"`
14438
14439	// ServerResponse contains the HTTP response code and headers from the
14440	// server.
14441	googleapi.ServerResponse `json:"-"`
14442
14443	// ForceSendFields is a list of field names (e.g. "Id") to
14444	// unconditionally include in API requests. By default, fields with
14445	// empty values are omitted from API requests. However, any non-pointer,
14446	// non-interface field appearing in ForceSendFields will be sent to the
14447	// server regardless of whether the field is empty or not. This may be
14448	// used to include empty fields in Patch requests.
14449	ForceSendFields []string `json:"-"`
14450
14451	// NullFields is a list of field names (e.g. "Id") to include in API
14452	// requests with the JSON null value. By default, fields with empty
14453	// values are omitted from API requests. However, any field with an
14454	// empty value appearing in NullFields will be sent to the server as
14455	// null. It is an error if a field in this list has a non-empty value.
14456	// This may be used to include null fields in Patch requests.
14457	NullFields []string `json:"-"`
14458}
14459
14460func (s *InstanceAggregatedList) MarshalJSON() ([]byte, error) {
14461	type NoMethod InstanceAggregatedList
14462	raw := NoMethod(*s)
14463	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14464}
14465
14466// InstanceAggregatedListWarning: [Output Only] Informational warning
14467// message.
14468type InstanceAggregatedListWarning struct {
14469	// Code: [Output Only] A warning code, if applicable. For example,
14470	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
14471	// the response.
14472	//
14473	// Possible values:
14474	//   "CLEANUP_FAILED"
14475	//   "DEPRECATED_RESOURCE_USED"
14476	//   "DEPRECATED_TYPE_USED"
14477	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
14478	//   "EXPERIMENTAL_TYPE_USED"
14479	//   "EXTERNAL_API_WARNING"
14480	//   "FIELD_VALUE_OVERRIDEN"
14481	//   "INJECTED_KERNELS_DEPRECATED"
14482	//   "MISSING_TYPE_DEPENDENCY"
14483	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
14484	//   "NEXT_HOP_CANNOT_IP_FORWARD"
14485	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
14486	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
14487	//   "NEXT_HOP_NOT_RUNNING"
14488	//   "NOT_CRITICAL_ERROR"
14489	//   "NO_RESULTS_ON_PAGE"
14490	//   "REQUIRED_TOS_AGREEMENT"
14491	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
14492	//   "RESOURCE_NOT_DELETED"
14493	//   "SCHEMA_VALIDATION_IGNORED"
14494	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
14495	//   "UNDECLARED_PROPERTIES"
14496	//   "UNREACHABLE"
14497	Code string `json:"code,omitempty"`
14498
14499	// Data: [Output Only] Metadata about this warning in key: value format.
14500	// For example:
14501	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
14502	Data []*InstanceAggregatedListWarningData `json:"data,omitempty"`
14503
14504	// Message: [Output Only] A human-readable description of the warning
14505	// code.
14506	Message string `json:"message,omitempty"`
14507
14508	// ForceSendFields is a list of field names (e.g. "Code") to
14509	// unconditionally include in API requests. By default, fields with
14510	// empty values are omitted from API requests. However, any non-pointer,
14511	// non-interface field appearing in ForceSendFields will be sent to the
14512	// server regardless of whether the field is empty or not. This may be
14513	// used to include empty fields in Patch requests.
14514	ForceSendFields []string `json:"-"`
14515
14516	// NullFields is a list of field names (e.g. "Code") to include in API
14517	// requests with the JSON null value. By default, fields with empty
14518	// values are omitted from API requests. However, any field with an
14519	// empty value appearing in NullFields will be sent to the server as
14520	// null. It is an error if a field in this list has a non-empty value.
14521	// This may be used to include null fields in Patch requests.
14522	NullFields []string `json:"-"`
14523}
14524
14525func (s *InstanceAggregatedListWarning) MarshalJSON() ([]byte, error) {
14526	type NoMethod InstanceAggregatedListWarning
14527	raw := NoMethod(*s)
14528	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14529}
14530
14531type InstanceAggregatedListWarningData struct {
14532	// Key: [Output Only] A key that provides more detail on the warning
14533	// being returned. For example, for warnings where there are no results
14534	// in a list request for a particular zone, this key might be scope and
14535	// the key value might be the zone name. Other examples might be a key
14536	// indicating a deprecated resource and a suggested replacement, or a
14537	// warning about invalid network settings (for example, if an instance
14538	// attempts to perform IP forwarding but is not enabled for IP
14539	// forwarding).
14540	Key string `json:"key,omitempty"`
14541
14542	// Value: [Output Only] A warning data value corresponding to the key.
14543	Value string `json:"value,omitempty"`
14544
14545	// ForceSendFields is a list of field names (e.g. "Key") to
14546	// unconditionally include in API requests. By default, fields with
14547	// empty values are omitted from API requests. However, any non-pointer,
14548	// non-interface field appearing in ForceSendFields will be sent to the
14549	// server regardless of whether the field is empty or not. This may be
14550	// used to include empty fields in Patch requests.
14551	ForceSendFields []string `json:"-"`
14552
14553	// NullFields is a list of field names (e.g. "Key") to include in API
14554	// requests with the JSON null value. By default, fields with empty
14555	// values are omitted from API requests. However, any field with an
14556	// empty value appearing in NullFields will be sent to the server as
14557	// null. It is an error if a field in this list has a non-empty value.
14558	// This may be used to include null fields in Patch requests.
14559	NullFields []string `json:"-"`
14560}
14561
14562func (s *InstanceAggregatedListWarningData) MarshalJSON() ([]byte, error) {
14563	type NoMethod InstanceAggregatedListWarningData
14564	raw := NoMethod(*s)
14565	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14566}
14567
14568// InstanceGroup: Represents an unmanaged Instance Group resource.
14569//
14570// Use unmanaged instance groups if you need to apply load balancing to
14571// groups of heterogeneous instances or if you need to manage the
14572// instances yourself. For more information, read  Instance groups.
14573//
14574// For zonal unmanaged Instance Group, use instanceGroups resource.
14575//
14576// For regional unmanaged Instance Group, use regionInstanceGroups
14577// resource. (== resource_for beta.instanceGroups ==) (== resource_for
14578// v1.instanceGroups ==) (== resource_for beta.regionInstanceGroups ==)
14579// (== resource_for v1.regionInstanceGroups ==)
14580type InstanceGroup struct {
14581	// CreationTimestamp: [Output Only] The creation timestamp for this
14582	// instance group in RFC3339 text format.
14583	CreationTimestamp string `json:"creationTimestamp,omitempty"`
14584
14585	// Description: An optional description of this resource. Provide this
14586	// property when you create the resource.
14587	Description string `json:"description,omitempty"`
14588
14589	// Fingerprint: [Output Only] The fingerprint of the named ports. The
14590	// system uses this fingerprint to detect conflicts when multiple users
14591	// change the named ports concurrently.
14592	Fingerprint string `json:"fingerprint,omitempty"`
14593
14594	// Id: [Output Only] A unique identifier for this instance group,
14595	// generated by the server.
14596	Id uint64 `json:"id,omitempty,string"`
14597
14598	// Kind: [Output Only] The resource type, which is always
14599	// compute#instanceGroup for instance groups.
14600	Kind string `json:"kind,omitempty"`
14601
14602	// Name: The name of the instance group. The name must be 1-63
14603	// characters long, and comply with RFC1035.
14604	Name string `json:"name,omitempty"`
14605
14606	// NamedPorts: Assigns a name to a port number. For example: {name:
14607	// "http", port: 80}
14608	//
14609	// This allows the system to reference ports by the assigned name
14610	// instead of a port number. Named ports can also contain multiple
14611	// ports. For example: [{name: "http", port: 80},{name: "http", port:
14612	// 8080}]
14613	//
14614	// Named ports apply to all instances in this instance group.
14615	NamedPorts []*NamedPort `json:"namedPorts,omitempty"`
14616
14617	// Network: The URL of the network to which all instances in the
14618	// instance group belong.
14619	Network string `json:"network,omitempty"`
14620
14621	// Region: [Output Only] The URL of the region where the instance group
14622	// is located (for regional resources).
14623	Region string `json:"region,omitempty"`
14624
14625	// SelfLink: [Output Only] The URL for this instance group. The server
14626	// generates this URL.
14627	SelfLink string `json:"selfLink,omitempty"`
14628
14629	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
14630	// with the resource id.
14631	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
14632
14633	// Size: [Output Only] The total number of instances in the instance
14634	// group.
14635	Size int64 `json:"size,omitempty"`
14636
14637	// Subnetwork: [Output Only] The URL of the subnetwork to which all
14638	// instances in the instance group belong.
14639	Subnetwork string `json:"subnetwork,omitempty"`
14640
14641	// Zone: [Output Only] The URL of the zone where the instance group is
14642	// located (for zonal resources).
14643	Zone string `json:"zone,omitempty"`
14644
14645	// ServerResponse contains the HTTP response code and headers from the
14646	// server.
14647	googleapi.ServerResponse `json:"-"`
14648
14649	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
14650	// to unconditionally include in API requests. By default, fields with
14651	// empty values are omitted from API requests. However, any non-pointer,
14652	// non-interface field appearing in ForceSendFields will be sent to the
14653	// server regardless of whether the field is empty or not. This may be
14654	// used to include empty fields in Patch requests.
14655	ForceSendFields []string `json:"-"`
14656
14657	// NullFields is a list of field names (e.g. "CreationTimestamp") to
14658	// include in API requests with the JSON null value. By default, fields
14659	// with empty values are omitted from API requests. However, any field
14660	// with an empty value appearing in NullFields will be sent to the
14661	// server as null. It is an error if a field in this list has a
14662	// non-empty value. This may be used to include null fields in Patch
14663	// requests.
14664	NullFields []string `json:"-"`
14665}
14666
14667func (s *InstanceGroup) MarshalJSON() ([]byte, error) {
14668	type NoMethod InstanceGroup
14669	raw := NoMethod(*s)
14670	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14671}
14672
14673type InstanceGroupAggregatedList struct {
14674	// Id: [Output Only] Unique identifier for the resource; defined by the
14675	// server.
14676	Id string `json:"id,omitempty"`
14677
14678	// Items: A list of InstanceGroupsScopedList resources.
14679	Items map[string]InstanceGroupsScopedList `json:"items,omitempty"`
14680
14681	// Kind: [Output Only] The resource type, which is always
14682	// compute#instanceGroupAggregatedList for aggregated lists of instance
14683	// groups.
14684	Kind string `json:"kind,omitempty"`
14685
14686	// NextPageToken: [Output Only] This token allows you to get the next
14687	// page of results for list requests. If the number of results is larger
14688	// than maxResults, use the nextPageToken as a value for the query
14689	// parameter pageToken in the next list request. Subsequent list
14690	// requests will have their own nextPageToken to continue paging through
14691	// the results.
14692	NextPageToken string `json:"nextPageToken,omitempty"`
14693
14694	// SelfLink: [Output Only] Server-defined URL for this resource.
14695	SelfLink string `json:"selfLink,omitempty"`
14696
14697	// Warning: [Output Only] Informational warning message.
14698	Warning *InstanceGroupAggregatedListWarning `json:"warning,omitempty"`
14699
14700	// ServerResponse contains the HTTP response code and headers from the
14701	// server.
14702	googleapi.ServerResponse `json:"-"`
14703
14704	// ForceSendFields is a list of field names (e.g. "Id") to
14705	// unconditionally include in API requests. By default, fields with
14706	// empty values are omitted from API requests. However, any non-pointer,
14707	// non-interface field appearing in ForceSendFields will be sent to the
14708	// server regardless of whether the field is empty or not. This may be
14709	// used to include empty fields in Patch requests.
14710	ForceSendFields []string `json:"-"`
14711
14712	// NullFields is a list of field names (e.g. "Id") to include in API
14713	// requests with the JSON null value. By default, fields with empty
14714	// values are omitted from API requests. However, any field with an
14715	// empty value appearing in NullFields will be sent to the server as
14716	// null. It is an error if a field in this list has a non-empty value.
14717	// This may be used to include null fields in Patch requests.
14718	NullFields []string `json:"-"`
14719}
14720
14721func (s *InstanceGroupAggregatedList) MarshalJSON() ([]byte, error) {
14722	type NoMethod InstanceGroupAggregatedList
14723	raw := NoMethod(*s)
14724	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14725}
14726
14727// InstanceGroupAggregatedListWarning: [Output Only] Informational
14728// warning message.
14729type InstanceGroupAggregatedListWarning struct {
14730	// Code: [Output Only] A warning code, if applicable. For example,
14731	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
14732	// the response.
14733	//
14734	// Possible values:
14735	//   "CLEANUP_FAILED"
14736	//   "DEPRECATED_RESOURCE_USED"
14737	//   "DEPRECATED_TYPE_USED"
14738	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
14739	//   "EXPERIMENTAL_TYPE_USED"
14740	//   "EXTERNAL_API_WARNING"
14741	//   "FIELD_VALUE_OVERRIDEN"
14742	//   "INJECTED_KERNELS_DEPRECATED"
14743	//   "MISSING_TYPE_DEPENDENCY"
14744	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
14745	//   "NEXT_HOP_CANNOT_IP_FORWARD"
14746	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
14747	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
14748	//   "NEXT_HOP_NOT_RUNNING"
14749	//   "NOT_CRITICAL_ERROR"
14750	//   "NO_RESULTS_ON_PAGE"
14751	//   "REQUIRED_TOS_AGREEMENT"
14752	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
14753	//   "RESOURCE_NOT_DELETED"
14754	//   "SCHEMA_VALIDATION_IGNORED"
14755	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
14756	//   "UNDECLARED_PROPERTIES"
14757	//   "UNREACHABLE"
14758	Code string `json:"code,omitempty"`
14759
14760	// Data: [Output Only] Metadata about this warning in key: value format.
14761	// For example:
14762	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
14763	Data []*InstanceGroupAggregatedListWarningData `json:"data,omitempty"`
14764
14765	// Message: [Output Only] A human-readable description of the warning
14766	// code.
14767	Message string `json:"message,omitempty"`
14768
14769	// ForceSendFields is a list of field names (e.g. "Code") to
14770	// unconditionally include in API requests. By default, fields with
14771	// empty values are omitted from API requests. However, any non-pointer,
14772	// non-interface field appearing in ForceSendFields will be sent to the
14773	// server regardless of whether the field is empty or not. This may be
14774	// used to include empty fields in Patch requests.
14775	ForceSendFields []string `json:"-"`
14776
14777	// NullFields is a list of field names (e.g. "Code") to include in API
14778	// requests with the JSON null value. By default, fields with empty
14779	// values are omitted from API requests. However, any field with an
14780	// empty value appearing in NullFields will be sent to the server as
14781	// null. It is an error if a field in this list has a non-empty value.
14782	// This may be used to include null fields in Patch requests.
14783	NullFields []string `json:"-"`
14784}
14785
14786func (s *InstanceGroupAggregatedListWarning) MarshalJSON() ([]byte, error) {
14787	type NoMethod InstanceGroupAggregatedListWarning
14788	raw := NoMethod(*s)
14789	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14790}
14791
14792type InstanceGroupAggregatedListWarningData struct {
14793	// Key: [Output Only] A key that provides more detail on the warning
14794	// being returned. For example, for warnings where there are no results
14795	// in a list request for a particular zone, this key might be scope and
14796	// the key value might be the zone name. Other examples might be a key
14797	// indicating a deprecated resource and a suggested replacement, or a
14798	// warning about invalid network settings (for example, if an instance
14799	// attempts to perform IP forwarding but is not enabled for IP
14800	// forwarding).
14801	Key string `json:"key,omitempty"`
14802
14803	// Value: [Output Only] A warning data value corresponding to the key.
14804	Value string `json:"value,omitempty"`
14805
14806	// ForceSendFields is a list of field names (e.g. "Key") to
14807	// unconditionally include in API requests. By default, fields with
14808	// empty values are omitted from API requests. However, any non-pointer,
14809	// non-interface field appearing in ForceSendFields will be sent to the
14810	// server regardless of whether the field is empty or not. This may be
14811	// used to include empty fields in Patch requests.
14812	ForceSendFields []string `json:"-"`
14813
14814	// NullFields is a list of field names (e.g. "Key") to include in API
14815	// requests with the JSON null value. By default, fields with empty
14816	// values are omitted from API requests. However, any field with an
14817	// empty value appearing in NullFields will be sent to the server as
14818	// null. It is an error if a field in this list has a non-empty value.
14819	// This may be used to include null fields in Patch requests.
14820	NullFields []string `json:"-"`
14821}
14822
14823func (s *InstanceGroupAggregatedListWarningData) MarshalJSON() ([]byte, error) {
14824	type NoMethod InstanceGroupAggregatedListWarningData
14825	raw := NoMethod(*s)
14826	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14827}
14828
14829// InstanceGroupList: A list of InstanceGroup resources.
14830type InstanceGroupList struct {
14831	// Id: [Output Only] Unique identifier for the resource; defined by the
14832	// server.
14833	Id string `json:"id,omitempty"`
14834
14835	// Items: A list of InstanceGroup resources.
14836	Items []*InstanceGroup `json:"items,omitempty"`
14837
14838	// Kind: [Output Only] The resource type, which is always
14839	// compute#instanceGroupList for instance group lists.
14840	Kind string `json:"kind,omitempty"`
14841
14842	// NextPageToken: [Output Only] This token allows you to get the next
14843	// page of results for list requests. If the number of results is larger
14844	// than maxResults, use the nextPageToken as a value for the query
14845	// parameter pageToken in the next list request. Subsequent list
14846	// requests will have their own nextPageToken to continue paging through
14847	// the results.
14848	NextPageToken string `json:"nextPageToken,omitempty"`
14849
14850	// SelfLink: [Output Only] Server-defined URL for this resource.
14851	SelfLink string `json:"selfLink,omitempty"`
14852
14853	// Warning: [Output Only] Informational warning message.
14854	Warning *InstanceGroupListWarning `json:"warning,omitempty"`
14855
14856	// ServerResponse contains the HTTP response code and headers from the
14857	// server.
14858	googleapi.ServerResponse `json:"-"`
14859
14860	// ForceSendFields is a list of field names (e.g. "Id") to
14861	// unconditionally include in API requests. By default, fields with
14862	// empty values are omitted from API requests. However, any non-pointer,
14863	// non-interface field appearing in ForceSendFields will be sent to the
14864	// server regardless of whether the field is empty or not. This may be
14865	// used to include empty fields in Patch requests.
14866	ForceSendFields []string `json:"-"`
14867
14868	// NullFields is a list of field names (e.g. "Id") to include in API
14869	// requests with the JSON null value. By default, fields with empty
14870	// values are omitted from API requests. However, any field with an
14871	// empty value appearing in NullFields will be sent to the server as
14872	// null. It is an error if a field in this list has a non-empty value.
14873	// This may be used to include null fields in Patch requests.
14874	NullFields []string `json:"-"`
14875}
14876
14877func (s *InstanceGroupList) MarshalJSON() ([]byte, error) {
14878	type NoMethod InstanceGroupList
14879	raw := NoMethod(*s)
14880	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14881}
14882
14883// InstanceGroupListWarning: [Output Only] Informational warning
14884// message.
14885type InstanceGroupListWarning struct {
14886	// Code: [Output Only] A warning code, if applicable. For example,
14887	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
14888	// the response.
14889	//
14890	// Possible values:
14891	//   "CLEANUP_FAILED"
14892	//   "DEPRECATED_RESOURCE_USED"
14893	//   "DEPRECATED_TYPE_USED"
14894	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
14895	//   "EXPERIMENTAL_TYPE_USED"
14896	//   "EXTERNAL_API_WARNING"
14897	//   "FIELD_VALUE_OVERRIDEN"
14898	//   "INJECTED_KERNELS_DEPRECATED"
14899	//   "MISSING_TYPE_DEPENDENCY"
14900	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
14901	//   "NEXT_HOP_CANNOT_IP_FORWARD"
14902	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
14903	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
14904	//   "NEXT_HOP_NOT_RUNNING"
14905	//   "NOT_CRITICAL_ERROR"
14906	//   "NO_RESULTS_ON_PAGE"
14907	//   "REQUIRED_TOS_AGREEMENT"
14908	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
14909	//   "RESOURCE_NOT_DELETED"
14910	//   "SCHEMA_VALIDATION_IGNORED"
14911	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
14912	//   "UNDECLARED_PROPERTIES"
14913	//   "UNREACHABLE"
14914	Code string `json:"code,omitempty"`
14915
14916	// Data: [Output Only] Metadata about this warning in key: value format.
14917	// For example:
14918	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
14919	Data []*InstanceGroupListWarningData `json:"data,omitempty"`
14920
14921	// Message: [Output Only] A human-readable description of the warning
14922	// code.
14923	Message string `json:"message,omitempty"`
14924
14925	// ForceSendFields is a list of field names (e.g. "Code") to
14926	// unconditionally include in API requests. By default, fields with
14927	// empty values are omitted from API requests. However, any non-pointer,
14928	// non-interface field appearing in ForceSendFields will be sent to the
14929	// server regardless of whether the field is empty or not. This may be
14930	// used to include empty fields in Patch requests.
14931	ForceSendFields []string `json:"-"`
14932
14933	// NullFields is a list of field names (e.g. "Code") to include in API
14934	// requests with the JSON null value. By default, fields with empty
14935	// values are omitted from API requests. However, any field with an
14936	// empty value appearing in NullFields will be sent to the server as
14937	// null. It is an error if a field in this list has a non-empty value.
14938	// This may be used to include null fields in Patch requests.
14939	NullFields []string `json:"-"`
14940}
14941
14942func (s *InstanceGroupListWarning) MarshalJSON() ([]byte, error) {
14943	type NoMethod InstanceGroupListWarning
14944	raw := NoMethod(*s)
14945	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14946}
14947
14948type InstanceGroupListWarningData struct {
14949	// Key: [Output Only] A key that provides more detail on the warning
14950	// being returned. For example, for warnings where there are no results
14951	// in a list request for a particular zone, this key might be scope and
14952	// the key value might be the zone name. Other examples might be a key
14953	// indicating a deprecated resource and a suggested replacement, or a
14954	// warning about invalid network settings (for example, if an instance
14955	// attempts to perform IP forwarding but is not enabled for IP
14956	// forwarding).
14957	Key string `json:"key,omitempty"`
14958
14959	// Value: [Output Only] A warning data value corresponding to the key.
14960	Value string `json:"value,omitempty"`
14961
14962	// ForceSendFields is a list of field names (e.g. "Key") to
14963	// unconditionally include in API requests. By default, fields with
14964	// empty values are omitted from API requests. However, any non-pointer,
14965	// non-interface field appearing in ForceSendFields will be sent to the
14966	// server regardless of whether the field is empty or not. This may be
14967	// used to include empty fields in Patch requests.
14968	ForceSendFields []string `json:"-"`
14969
14970	// NullFields is a list of field names (e.g. "Key") to include in API
14971	// requests with the JSON null value. By default, fields with empty
14972	// values are omitted from API requests. However, any field with an
14973	// empty value appearing in NullFields will be sent to the server as
14974	// null. It is an error if a field in this list has a non-empty value.
14975	// This may be used to include null fields in Patch requests.
14976	NullFields []string `json:"-"`
14977}
14978
14979func (s *InstanceGroupListWarningData) MarshalJSON() ([]byte, error) {
14980	type NoMethod InstanceGroupListWarningData
14981	raw := NoMethod(*s)
14982	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14983}
14984
14985// InstanceGroupManager: Represents a Managed Instance Group
14986// resource.
14987//
14988// An instance group is a collection of VM instances that you can manage
14989// as a single entity. For more information, read Instance groups.
14990//
14991// For zonal Managed Instance Group, use the instanceGroupManagers
14992// resource.
14993//
14994// For regional Managed Instance Group, use the
14995// regionInstanceGroupManagers resource. (== resource_for
14996// beta.instanceGroupManagers ==) (== resource_for
14997// v1.instanceGroupManagers ==) (== resource_for
14998// beta.regionInstanceGroupManagers ==) (== resource_for
14999// v1.regionInstanceGroupManagers ==)
15000type InstanceGroupManager struct {
15001	// AutoHealingPolicies: The autohealing policy for this managed instance
15002	// group. You can specify only one value.
15003	AutoHealingPolicies []*InstanceGroupManagerAutoHealingPolicy `json:"autoHealingPolicies,omitempty"`
15004
15005	// BaseInstanceName: The base instance name to use for instances in this
15006	// group. The value must be 1-58 characters long. Instances are named by
15007	// appending a hyphen and a random four-character string to the base
15008	// instance name. The base instance name must comply with RFC1035.
15009	BaseInstanceName string `json:"baseInstanceName,omitempty"`
15010
15011	// CreationTimestamp: [Output Only] The creation timestamp for this
15012	// managed instance group in RFC3339 text format.
15013	CreationTimestamp string `json:"creationTimestamp,omitempty"`
15014
15015	// CurrentActions: [Output Only] The list of instance actions and the
15016	// number of instances in this managed instance group that are scheduled
15017	// for each of those actions.
15018	CurrentActions *InstanceGroupManagerActionsSummary `json:"currentActions,omitempty"`
15019
15020	// Description: An optional description of this resource. Provide this
15021	// property when you create the resource.
15022	Description string `json:"description,omitempty"`
15023
15024	// DistributionPolicy: Policy specifying intended distribution of
15025	// instances in regional managed instance group.
15026	DistributionPolicy *DistributionPolicy `json:"distributionPolicy,omitempty"`
15027
15028	// FailoverAction: The action to perform in case of zone failure. Only
15029	// one value is supported, NO_FAILOVER. The default is NO_FAILOVER.
15030	//
15031	// Possible values:
15032	//   "NO_FAILOVER"
15033	//   "UNKNOWN"
15034	FailoverAction string `json:"failoverAction,omitempty"`
15035
15036	// Fingerprint: Fingerprint of this resource. This field may be used in
15037	// optimistic locking. It will be ignored when inserting an
15038	// InstanceGroupManager. An up-to-date fingerprint must be provided in
15039	// order to update the InstanceGroupManager, otherwise the request will
15040	// fail with error 412 conditionNotMet.
15041	//
15042	// To see the latest fingerprint, make a get() request to retrieve an
15043	// InstanceGroupManager.
15044	Fingerprint string `json:"fingerprint,omitempty"`
15045
15046	// Id: [Output Only] A unique identifier for this resource type. The
15047	// server generates this identifier.
15048	Id uint64 `json:"id,omitempty,string"`
15049
15050	// InstanceGroup: [Output Only] The URL of the Instance Group resource.
15051	InstanceGroup string `json:"instanceGroup,omitempty"`
15052
15053	// InstanceTemplate: The URL of the instance template that is specified
15054	// for this managed instance group. The group uses this template to
15055	// create all new instances in the managed instance group.
15056	InstanceTemplate string `json:"instanceTemplate,omitempty"`
15057
15058	// Kind: [Output Only] The resource type, which is always
15059	// compute#instanceGroupManager for managed instance groups.
15060	Kind string `json:"kind,omitempty"`
15061
15062	// Name: The name of the managed instance group. The name must be 1-63
15063	// characters long, and comply with RFC1035.
15064	Name string `json:"name,omitempty"`
15065
15066	// NamedPorts: Named ports configured for the Instance Groups
15067	// complementary to this Instance Group Manager.
15068	NamedPorts []*NamedPort `json:"namedPorts,omitempty"`
15069
15070	// PendingActions: [Deprecated] This field is deprecated and will be
15071	// removed. Prefer using the status field instead. Please contact
15072	// cloud-updater-feedback@google.com to leave feedback if your workload
15073	// relies on this field. [Output Only] The list of instance actions and
15074	// the number of instances in this managed instance group that are
15075	// pending for each of those actions.
15076	PendingActions *InstanceGroupManagerPendingActionsSummary `json:"pendingActions,omitempty"`
15077
15078	// Region: [Output Only] The URL of the region where the managed
15079	// instance group resides (for regional resources).
15080	Region string `json:"region,omitempty"`
15081
15082	// SelfLink: [Output Only] The URL for this managed instance group. The
15083	// server defines this URL.
15084	SelfLink string `json:"selfLink,omitempty"`
15085
15086	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
15087	// with the resource id.
15088	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
15089
15090	// ServiceAccount: The service account to be used as credentials for all
15091	// operations performed by the managed instance group on instances. The
15092	// service accounts needs all permissions required to create and delete
15093	// instances. By default, the service account
15094	// {projectNumber}@cloudservices.gserviceaccount.com is used.
15095	ServiceAccount string `json:"serviceAccount,omitempty"`
15096
15097	// StatefulPolicy: Stateful configuration for this Instanced Group
15098	// Manager
15099	StatefulPolicy *StatefulPolicy `json:"statefulPolicy,omitempty"`
15100
15101	// Status: [Output Only] The status of this managed instance group.
15102	Status *InstanceGroupManagerStatus `json:"status,omitempty"`
15103
15104	// TargetPools: The URLs for all TargetPool resources to which instances
15105	// in the instanceGroup field are added. The target pools automatically
15106	// apply to all of the instances in the managed instance group.
15107	TargetPools []string `json:"targetPools,omitempty"`
15108
15109	// TargetSize: The target number of running instances for this managed
15110	// instance group. Deleting or abandoning instances reduces this number.
15111	// Resizing the group changes this number.
15112	TargetSize int64 `json:"targetSize,omitempty"`
15113
15114	// UpdatePolicy: The update policy for this managed instance group.
15115	UpdatePolicy *InstanceGroupManagerUpdatePolicy `json:"updatePolicy,omitempty"`
15116
15117	// Versions: Specifies the instance templates used by this managed
15118	// instance group to create instances.
15119	//
15120	// Each version is defined by an instanceTemplate and a name. Every
15121	// version can appear at most once per instance group. This field
15122	// overrides the top-level instanceTemplate field. Read more about the
15123	// relationships between these fields. Exactly one version must leave
15124	// the targetSize field unset. That version will be applied to all
15125	// remaining instances. For more information, read about canary updates.
15126	Versions []*InstanceGroupManagerVersion `json:"versions,omitempty"`
15127
15128	// Zone: [Output Only] The URL of the zone where the managed instance
15129	// group is located (for zonal resources).
15130	Zone string `json:"zone,omitempty"`
15131
15132	// ServerResponse contains the HTTP response code and headers from the
15133	// server.
15134	googleapi.ServerResponse `json:"-"`
15135
15136	// ForceSendFields is a list of field names (e.g. "AutoHealingPolicies")
15137	// to unconditionally include in API requests. By default, fields with
15138	// empty values are omitted from API requests. However, any non-pointer,
15139	// non-interface field appearing in ForceSendFields will be sent to the
15140	// server regardless of whether the field is empty or not. This may be
15141	// used to include empty fields in Patch requests.
15142	ForceSendFields []string `json:"-"`
15143
15144	// NullFields is a list of field names (e.g. "AutoHealingPolicies") to
15145	// include in API requests with the JSON null value. By default, fields
15146	// with empty values are omitted from API requests. However, any field
15147	// with an empty value appearing in NullFields will be sent to the
15148	// server as null. It is an error if a field in this list has a
15149	// non-empty value. This may be used to include null fields in Patch
15150	// requests.
15151	NullFields []string `json:"-"`
15152}
15153
15154func (s *InstanceGroupManager) MarshalJSON() ([]byte, error) {
15155	type NoMethod InstanceGroupManager
15156	raw := NoMethod(*s)
15157	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15158}
15159
15160type InstanceGroupManagerActionsSummary struct {
15161	// Abandoning: [Output Only] The total number of instances in the
15162	// managed instance group that are scheduled to be abandoned. Abandoning
15163	// an instance removes it from the managed instance group without
15164	// deleting it.
15165	Abandoning int64 `json:"abandoning,omitempty"`
15166
15167	// Creating: [Output Only] The number of instances in the managed
15168	// instance group that are scheduled to be created or are currently
15169	// being created. If the group fails to create any of these instances,
15170	// it tries again until it creates the instance successfully.
15171	//
15172	// If you have disabled creation retries, this field will not be
15173	// populated; instead, the creatingWithoutRetries field will be
15174	// populated.
15175	Creating int64 `json:"creating,omitempty"`
15176
15177	// CreatingWithoutRetries: [Output Only] The number of instances that
15178	// the managed instance group will attempt to create. The group attempts
15179	// to create each instance only once. If the group fails to create any
15180	// of these instances, it decreases the group's targetSize value
15181	// accordingly.
15182	CreatingWithoutRetries int64 `json:"creatingWithoutRetries,omitempty"`
15183
15184	// Deleting: [Output Only] The number of instances in the managed
15185	// instance group that are scheduled to be deleted or are currently
15186	// being deleted.
15187	Deleting int64 `json:"deleting,omitempty"`
15188
15189	// None: [Output Only] The number of instances in the managed instance
15190	// group that are running and have no scheduled actions.
15191	None int64 `json:"none,omitempty"`
15192
15193	// Recreating: [Output Only] The number of instances in the managed
15194	// instance group that are scheduled to be recreated or are currently
15195	// being being recreated. Recreating an instance deletes the existing
15196	// root persistent disk and creates a new disk from the image that is
15197	// defined in the instance template.
15198	Recreating int64 `json:"recreating,omitempty"`
15199
15200	// Refreshing: [Output Only] The number of instances in the managed
15201	// instance group that are being reconfigured with properties that do
15202	// not require a restart or a recreate action. For example, setting or
15203	// removing target pools for the instance.
15204	Refreshing int64 `json:"refreshing,omitempty"`
15205
15206	// Restarting: [Output Only] The number of instances in the managed
15207	// instance group that are scheduled to be restarted or are currently
15208	// being restarted.
15209	Restarting int64 `json:"restarting,omitempty"`
15210
15211	// Verifying: [Output Only] The number of instances in the managed
15212	// instance group that are being verified. See the
15213	// managedInstances[].currentAction property in the listManagedInstances
15214	// method documentation.
15215	Verifying int64 `json:"verifying,omitempty"`
15216
15217	// ForceSendFields is a list of field names (e.g. "Abandoning") to
15218	// unconditionally include in API requests. By default, fields with
15219	// empty values are omitted from API requests. However, any non-pointer,
15220	// non-interface field appearing in ForceSendFields will be sent to the
15221	// server regardless of whether the field is empty or not. This may be
15222	// used to include empty fields in Patch requests.
15223	ForceSendFields []string `json:"-"`
15224
15225	// NullFields is a list of field names (e.g. "Abandoning") to include in
15226	// API requests with the JSON null value. By default, fields with empty
15227	// values are omitted from API requests. However, any field with an
15228	// empty value appearing in NullFields will be sent to the server as
15229	// null. It is an error if a field in this list has a non-empty value.
15230	// This may be used to include null fields in Patch requests.
15231	NullFields []string `json:"-"`
15232}
15233
15234func (s *InstanceGroupManagerActionsSummary) MarshalJSON() ([]byte, error) {
15235	type NoMethod InstanceGroupManagerActionsSummary
15236	raw := NoMethod(*s)
15237	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15238}
15239
15240type InstanceGroupManagerAggregatedList struct {
15241	// Id: [Output Only] Unique identifier for the resource; defined by the
15242	// server.
15243	Id string `json:"id,omitempty"`
15244
15245	// Items: A list of InstanceGroupManagersScopedList resources.
15246	Items map[string]InstanceGroupManagersScopedList `json:"items,omitempty"`
15247
15248	// Kind: [Output Only] The resource type, which is always
15249	// compute#instanceGroupManagerAggregatedList for an aggregated list of
15250	// managed instance groups.
15251	Kind string `json:"kind,omitempty"`
15252
15253	// NextPageToken: [Output Only] This token allows you to get the next
15254	// page of results for list requests. If the number of results is larger
15255	// than maxResults, use the nextPageToken as a value for the query
15256	// parameter pageToken in the next list request. Subsequent list
15257	// requests will have their own nextPageToken to continue paging through
15258	// the results.
15259	NextPageToken string `json:"nextPageToken,omitempty"`
15260
15261	// SelfLink: [Output Only] Server-defined URL for this resource.
15262	SelfLink string `json:"selfLink,omitempty"`
15263
15264	// Warning: [Output Only] Informational warning message.
15265	Warning *InstanceGroupManagerAggregatedListWarning `json:"warning,omitempty"`
15266
15267	// ServerResponse contains the HTTP response code and headers from the
15268	// server.
15269	googleapi.ServerResponse `json:"-"`
15270
15271	// ForceSendFields is a list of field names (e.g. "Id") to
15272	// unconditionally include in API requests. By default, fields with
15273	// empty values are omitted from API requests. However, any non-pointer,
15274	// non-interface field appearing in ForceSendFields will be sent to the
15275	// server regardless of whether the field is empty or not. This may be
15276	// used to include empty fields in Patch requests.
15277	ForceSendFields []string `json:"-"`
15278
15279	// NullFields is a list of field names (e.g. "Id") to include in API
15280	// requests with the JSON null value. By default, fields with empty
15281	// values are omitted from API requests. However, any field with an
15282	// empty value appearing in NullFields will be sent to the server as
15283	// null. It is an error if a field in this list has a non-empty value.
15284	// This may be used to include null fields in Patch requests.
15285	NullFields []string `json:"-"`
15286}
15287
15288func (s *InstanceGroupManagerAggregatedList) MarshalJSON() ([]byte, error) {
15289	type NoMethod InstanceGroupManagerAggregatedList
15290	raw := NoMethod(*s)
15291	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15292}
15293
15294// InstanceGroupManagerAggregatedListWarning: [Output Only]
15295// Informational warning message.
15296type InstanceGroupManagerAggregatedListWarning struct {
15297	// Code: [Output Only] A warning code, if applicable. For example,
15298	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
15299	// the response.
15300	//
15301	// Possible values:
15302	//   "CLEANUP_FAILED"
15303	//   "DEPRECATED_RESOURCE_USED"
15304	//   "DEPRECATED_TYPE_USED"
15305	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
15306	//   "EXPERIMENTAL_TYPE_USED"
15307	//   "EXTERNAL_API_WARNING"
15308	//   "FIELD_VALUE_OVERRIDEN"
15309	//   "INJECTED_KERNELS_DEPRECATED"
15310	//   "MISSING_TYPE_DEPENDENCY"
15311	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
15312	//   "NEXT_HOP_CANNOT_IP_FORWARD"
15313	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
15314	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
15315	//   "NEXT_HOP_NOT_RUNNING"
15316	//   "NOT_CRITICAL_ERROR"
15317	//   "NO_RESULTS_ON_PAGE"
15318	//   "REQUIRED_TOS_AGREEMENT"
15319	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
15320	//   "RESOURCE_NOT_DELETED"
15321	//   "SCHEMA_VALIDATION_IGNORED"
15322	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
15323	//   "UNDECLARED_PROPERTIES"
15324	//   "UNREACHABLE"
15325	Code string `json:"code,omitempty"`
15326
15327	// Data: [Output Only] Metadata about this warning in key: value format.
15328	// For example:
15329	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
15330	Data []*InstanceGroupManagerAggregatedListWarningData `json:"data,omitempty"`
15331
15332	// Message: [Output Only] A human-readable description of the warning
15333	// code.
15334	Message string `json:"message,omitempty"`
15335
15336	// ForceSendFields is a list of field names (e.g. "Code") to
15337	// unconditionally include in API requests. By default, fields with
15338	// empty values are omitted from API requests. However, any non-pointer,
15339	// non-interface field appearing in ForceSendFields will be sent to the
15340	// server regardless of whether the field is empty or not. This may be
15341	// used to include empty fields in Patch requests.
15342	ForceSendFields []string `json:"-"`
15343
15344	// NullFields is a list of field names (e.g. "Code") to include in API
15345	// requests with the JSON null value. By default, fields with empty
15346	// values are omitted from API requests. However, any field with an
15347	// empty value appearing in NullFields will be sent to the server as
15348	// null. It is an error if a field in this list has a non-empty value.
15349	// This may be used to include null fields in Patch requests.
15350	NullFields []string `json:"-"`
15351}
15352
15353func (s *InstanceGroupManagerAggregatedListWarning) MarshalJSON() ([]byte, error) {
15354	type NoMethod InstanceGroupManagerAggregatedListWarning
15355	raw := NoMethod(*s)
15356	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15357}
15358
15359type InstanceGroupManagerAggregatedListWarningData struct {
15360	// Key: [Output Only] A key that provides more detail on the warning
15361	// being returned. For example, for warnings where there are no results
15362	// in a list request for a particular zone, this key might be scope and
15363	// the key value might be the zone name. Other examples might be a key
15364	// indicating a deprecated resource and a suggested replacement, or a
15365	// warning about invalid network settings (for example, if an instance
15366	// attempts to perform IP forwarding but is not enabled for IP
15367	// forwarding).
15368	Key string `json:"key,omitempty"`
15369
15370	// Value: [Output Only] A warning data value corresponding to the key.
15371	Value string `json:"value,omitempty"`
15372
15373	// ForceSendFields is a list of field names (e.g. "Key") to
15374	// unconditionally include in API requests. By default, fields with
15375	// empty values are omitted from API requests. However, any non-pointer,
15376	// non-interface field appearing in ForceSendFields will be sent to the
15377	// server regardless of whether the field is empty or not. This may be
15378	// used to include empty fields in Patch requests.
15379	ForceSendFields []string `json:"-"`
15380
15381	// NullFields is a list of field names (e.g. "Key") to include in API
15382	// requests with the JSON null value. By default, fields with empty
15383	// values are omitted from API requests. However, any field with an
15384	// empty value appearing in NullFields will be sent to the server as
15385	// null. It is an error if a field in this list has a non-empty value.
15386	// This may be used to include null fields in Patch requests.
15387	NullFields []string `json:"-"`
15388}
15389
15390func (s *InstanceGroupManagerAggregatedListWarningData) MarshalJSON() ([]byte, error) {
15391	type NoMethod InstanceGroupManagerAggregatedListWarningData
15392	raw := NoMethod(*s)
15393	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15394}
15395
15396type InstanceGroupManagerAutoHealingPolicy struct {
15397	// HealthCheck: The URL for the health check that signals autohealing.
15398	HealthCheck string `json:"healthCheck,omitempty"`
15399
15400	// InitialDelaySec: The number of seconds that the managed instance
15401	// group waits before it applies autohealing policies to new instances
15402	// or recently recreated instances. This initial delay allows instances
15403	// to initialize and run their startup scripts before the instance group
15404	// determines that they are UNHEALTHY. This prevents the managed
15405	// instance group from recreating its instances prematurely. This value
15406	// must be from range [0, 3600].
15407	InitialDelaySec int64 `json:"initialDelaySec,omitempty"`
15408
15409	// MaxUnavailable: Maximum number of instances that can be unavailable
15410	// when autohealing. When 'percent' is used, the value is rounded UP.
15411	// The instance is considered available if all of the following
15412	// conditions are satisfied: 1. Instance's status is RUNNING. 2.
15413	// Instance's currentAction is NONE (in particular its liveness health
15414	// check result was observed to be HEALTHY at least once as it passed
15415	// VERIFYING). 3. There is no outgoing action on an instance triggered
15416	// by IGM.
15417	//
15418	// By default, number of concurrently autohealed instances is smaller
15419	// than the managed instance group target size. However, if a zonal
15420	// managed instance group has only one instance, or a regional managed
15421	// instance group has only one instance per zone, autohealing will
15422	// recreate these instances when they become unhealthy.
15423	MaxUnavailable *FixedOrPercent `json:"maxUnavailable,omitempty"`
15424
15425	// ForceSendFields is a list of field names (e.g. "HealthCheck") to
15426	// unconditionally include in API requests. By default, fields with
15427	// empty values are omitted from API requests. However, any non-pointer,
15428	// non-interface field appearing in ForceSendFields will be sent to the
15429	// server regardless of whether the field is empty or not. This may be
15430	// used to include empty fields in Patch requests.
15431	ForceSendFields []string `json:"-"`
15432
15433	// NullFields is a list of field names (e.g. "HealthCheck") to include
15434	// in API requests with the JSON null value. By default, fields with
15435	// empty values are omitted from API requests. However, any field with
15436	// an empty value appearing in NullFields will be sent to the server as
15437	// null. It is an error if a field in this list has a non-empty value.
15438	// This may be used to include null fields in Patch requests.
15439	NullFields []string `json:"-"`
15440}
15441
15442func (s *InstanceGroupManagerAutoHealingPolicy) MarshalJSON() ([]byte, error) {
15443	type NoMethod InstanceGroupManagerAutoHealingPolicy
15444	raw := NoMethod(*s)
15445	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15446}
15447
15448// InstanceGroupManagerList: [Output Only] A list of managed instance
15449// groups.
15450type InstanceGroupManagerList struct {
15451	// Id: [Output Only] Unique identifier for the resource; defined by the
15452	// server.
15453	Id string `json:"id,omitempty"`
15454
15455	// Items: A list of InstanceGroupManager resources.
15456	Items []*InstanceGroupManager `json:"items,omitempty"`
15457
15458	// Kind: [Output Only] The resource type, which is always
15459	// compute#instanceGroupManagerList for a list of managed instance
15460	// groups.
15461	Kind string `json:"kind,omitempty"`
15462
15463	// NextPageToken: [Output Only] This token allows you to get the next
15464	// page of results for list requests. If the number of results is larger
15465	// than maxResults, use the nextPageToken as a value for the query
15466	// parameter pageToken in the next list request. Subsequent list
15467	// requests will have their own nextPageToken to continue paging through
15468	// the results.
15469	NextPageToken string `json:"nextPageToken,omitempty"`
15470
15471	// SelfLink: [Output Only] Server-defined URL for this resource.
15472	SelfLink string `json:"selfLink,omitempty"`
15473
15474	// Warning: [Output Only] Informational warning message.
15475	Warning *InstanceGroupManagerListWarning `json:"warning,omitempty"`
15476
15477	// ServerResponse contains the HTTP response code and headers from the
15478	// server.
15479	googleapi.ServerResponse `json:"-"`
15480
15481	// ForceSendFields is a list of field names (e.g. "Id") to
15482	// unconditionally include in API requests. By default, fields with
15483	// empty values are omitted from API requests. However, any non-pointer,
15484	// non-interface field appearing in ForceSendFields will be sent to the
15485	// server regardless of whether the field is empty or not. This may be
15486	// used to include empty fields in Patch requests.
15487	ForceSendFields []string `json:"-"`
15488
15489	// NullFields is a list of field names (e.g. "Id") to include in API
15490	// requests with the JSON null value. By default, fields with empty
15491	// values are omitted from API requests. However, any field with an
15492	// empty value appearing in NullFields will be sent to the server as
15493	// null. It is an error if a field in this list has a non-empty value.
15494	// This may be used to include null fields in Patch requests.
15495	NullFields []string `json:"-"`
15496}
15497
15498func (s *InstanceGroupManagerList) MarshalJSON() ([]byte, error) {
15499	type NoMethod InstanceGroupManagerList
15500	raw := NoMethod(*s)
15501	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15502}
15503
15504// InstanceGroupManagerListWarning: [Output Only] Informational warning
15505// message.
15506type InstanceGroupManagerListWarning struct {
15507	// Code: [Output Only] A warning code, if applicable. For example,
15508	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
15509	// the response.
15510	//
15511	// Possible values:
15512	//   "CLEANUP_FAILED"
15513	//   "DEPRECATED_RESOURCE_USED"
15514	//   "DEPRECATED_TYPE_USED"
15515	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
15516	//   "EXPERIMENTAL_TYPE_USED"
15517	//   "EXTERNAL_API_WARNING"
15518	//   "FIELD_VALUE_OVERRIDEN"
15519	//   "INJECTED_KERNELS_DEPRECATED"
15520	//   "MISSING_TYPE_DEPENDENCY"
15521	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
15522	//   "NEXT_HOP_CANNOT_IP_FORWARD"
15523	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
15524	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
15525	//   "NEXT_HOP_NOT_RUNNING"
15526	//   "NOT_CRITICAL_ERROR"
15527	//   "NO_RESULTS_ON_PAGE"
15528	//   "REQUIRED_TOS_AGREEMENT"
15529	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
15530	//   "RESOURCE_NOT_DELETED"
15531	//   "SCHEMA_VALIDATION_IGNORED"
15532	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
15533	//   "UNDECLARED_PROPERTIES"
15534	//   "UNREACHABLE"
15535	Code string `json:"code,omitempty"`
15536
15537	// Data: [Output Only] Metadata about this warning in key: value format.
15538	// For example:
15539	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
15540	Data []*InstanceGroupManagerListWarningData `json:"data,omitempty"`
15541
15542	// Message: [Output Only] A human-readable description of the warning
15543	// code.
15544	Message string `json:"message,omitempty"`
15545
15546	// ForceSendFields is a list of field names (e.g. "Code") to
15547	// unconditionally include in API requests. By default, fields with
15548	// empty values are omitted from API requests. However, any non-pointer,
15549	// non-interface field appearing in ForceSendFields will be sent to the
15550	// server regardless of whether the field is empty or not. This may be
15551	// used to include empty fields in Patch requests.
15552	ForceSendFields []string `json:"-"`
15553
15554	// NullFields is a list of field names (e.g. "Code") to include in API
15555	// requests with the JSON null value. By default, fields with empty
15556	// values are omitted from API requests. However, any field with an
15557	// empty value appearing in NullFields will be sent to the server as
15558	// null. It is an error if a field in this list has a non-empty value.
15559	// This may be used to include null fields in Patch requests.
15560	NullFields []string `json:"-"`
15561}
15562
15563func (s *InstanceGroupManagerListWarning) MarshalJSON() ([]byte, error) {
15564	type NoMethod InstanceGroupManagerListWarning
15565	raw := NoMethod(*s)
15566	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15567}
15568
15569type InstanceGroupManagerListWarningData struct {
15570	// Key: [Output Only] A key that provides more detail on the warning
15571	// being returned. For example, for warnings where there are no results
15572	// in a list request for a particular zone, this key might be scope and
15573	// the key value might be the zone name. Other examples might be a key
15574	// indicating a deprecated resource and a suggested replacement, or a
15575	// warning about invalid network settings (for example, if an instance
15576	// attempts to perform IP forwarding but is not enabled for IP
15577	// forwarding).
15578	Key string `json:"key,omitempty"`
15579
15580	// Value: [Output Only] A warning data value corresponding to the key.
15581	Value string `json:"value,omitempty"`
15582
15583	// ForceSendFields is a list of field names (e.g. "Key") 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. "Key") 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 *InstanceGroupManagerListWarningData) MarshalJSON() ([]byte, error) {
15601	type NoMethod InstanceGroupManagerListWarningData
15602	raw := NoMethod(*s)
15603	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15604}
15605
15606type InstanceGroupManagerPendingActionsSummary struct {
15607	// Creating: [Deprecated] This field is deprecated and will be removed.
15608	// Prefer using the status field instead. Please contact
15609	// cloud-updater-feedback@google.com to leave feedback if your workload
15610	// relies on this field. [Output Only] The number of instances in the
15611	// managed instance group that are pending to be created.
15612	Creating int64 `json:"creating,omitempty"`
15613
15614	// Deleting: [Deprecated] This field is deprecated and will be removed.
15615	// Prefer using the status field instead. Please contact
15616	// cloud-updater-feedback@google.com to leave feedback if your workload
15617	// relies on this field. [Output Only] The number of instances in the
15618	// managed instance group that are pending to be deleted.
15619	Deleting int64 `json:"deleting,omitempty"`
15620
15621	// Recreating: [Deprecated] This field is deprecated and will be
15622	// removed. Prefer using the status field instead. Please contact
15623	// cloud-updater-feedback@google.com to leave feedback if your workload
15624	// relies on this field. [Output Only] The number of instances in the
15625	// managed instance group that are pending to be recreated.
15626	Recreating int64 `json:"recreating,omitempty"`
15627
15628	// Restarting: [Deprecated] This field is deprecated and will be
15629	// removed. Prefer using the status field instead. Please contact
15630	// cloud-updater-feedback@google.com to leave feedback if your workload
15631	// relies on this field. [Output Only] The number of instances in the
15632	// managed instance group that are pending to be restarted.
15633	Restarting int64 `json:"restarting,omitempty"`
15634
15635	// ForceSendFields is a list of field names (e.g. "Creating") to
15636	// unconditionally include in API requests. By default, fields with
15637	// empty values are omitted from API requests. However, any non-pointer,
15638	// non-interface field appearing in ForceSendFields will be sent to the
15639	// server regardless of whether the field is empty or not. This may be
15640	// used to include empty fields in Patch requests.
15641	ForceSendFields []string `json:"-"`
15642
15643	// NullFields is a list of field names (e.g. "Creating") to include in
15644	// API requests with the JSON null value. By default, fields with empty
15645	// values are omitted from API requests. However, any field with an
15646	// empty value appearing in NullFields will be sent to the server as
15647	// null. It is an error if a field in this list has a non-empty value.
15648	// This may be used to include null fields in Patch requests.
15649	NullFields []string `json:"-"`
15650}
15651
15652func (s *InstanceGroupManagerPendingActionsSummary) MarshalJSON() ([]byte, error) {
15653	type NoMethod InstanceGroupManagerPendingActionsSummary
15654	raw := NoMethod(*s)
15655	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15656}
15657
15658type InstanceGroupManagerStatus struct {
15659	// Autoscaler: [Output Only] The URL of the Autoscaler that targets this
15660	// instance group manager.
15661	Autoscaler string `json:"autoscaler,omitempty"`
15662
15663	// IsStable: [Output Only] A bit indicating whether the managed instance
15664	// group is in a stable state. A stable state means that: none of the
15665	// instances in the managed instance group is currently undergoing any
15666	// type of change (for example, creation, restart, or deletion); no
15667	// future changes are scheduled for instances in the managed instance
15668	// group; and the managed instance group itself is not being modified.
15669	IsStable bool `json:"isStable,omitempty"`
15670
15671	// Stateful: [Output Only] Stateful status of the given Instance Group
15672	// Manager.
15673	Stateful *InstanceGroupManagerStatusStateful `json:"stateful,omitempty"`
15674
15675	// VersionTarget: [Output Only] A status of consistency of Instances'
15676	// versions with their target version specified by version field on
15677	// Instance Group Manager.
15678	VersionTarget *InstanceGroupManagerStatusVersionTarget `json:"versionTarget,omitempty"`
15679
15680	// ForceSendFields is a list of field names (e.g. "Autoscaler") to
15681	// unconditionally include in API requests. By default, fields with
15682	// empty values are omitted from API requests. However, any non-pointer,
15683	// non-interface field appearing in ForceSendFields will be sent to the
15684	// server regardless of whether the field is empty or not. This may be
15685	// used to include empty fields in Patch requests.
15686	ForceSendFields []string `json:"-"`
15687
15688	// NullFields is a list of field names (e.g. "Autoscaler") to include in
15689	// API requests with the JSON null value. By default, fields with empty
15690	// values are omitted from API requests. However, any field with an
15691	// empty value appearing in NullFields will be sent to the server as
15692	// null. It is an error if a field in this list has a non-empty value.
15693	// This may be used to include null fields in Patch requests.
15694	NullFields []string `json:"-"`
15695}
15696
15697func (s *InstanceGroupManagerStatus) MarshalJSON() ([]byte, error) {
15698	type NoMethod InstanceGroupManagerStatus
15699	raw := NoMethod(*s)
15700	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15701}
15702
15703type InstanceGroupManagerStatusStateful struct {
15704	// IsStateful: [Output Only] A bit indicating whether the managed
15705	// instance group is stateful, i.e. has any disks in Stateful Policy or
15706	// at least one per-instance config. This is determined based on the
15707	// user intent, the group may be reported as not stateful even when
15708	// there is still some preserved state on managed instances.
15709	IsStateful bool `json:"isStateful,omitempty"`
15710
15711	// ForceSendFields is a list of field names (e.g. "IsStateful") to
15712	// unconditionally include in API requests. By default, fields with
15713	// empty values are omitted from API requests. However, any non-pointer,
15714	// non-interface field appearing in ForceSendFields will be sent to the
15715	// server regardless of whether the field is empty or not. This may be
15716	// used to include empty fields in Patch requests.
15717	ForceSendFields []string `json:"-"`
15718
15719	// NullFields is a list of field names (e.g. "IsStateful") to include in
15720	// API requests with the JSON null value. By default, fields with empty
15721	// values are omitted from API requests. However, any field with an
15722	// empty value appearing in NullFields will be sent to the server as
15723	// null. It is an error if a field in this list has a non-empty value.
15724	// This may be used to include null fields in Patch requests.
15725	NullFields []string `json:"-"`
15726}
15727
15728func (s *InstanceGroupManagerStatusStateful) MarshalJSON() ([]byte, error) {
15729	type NoMethod InstanceGroupManagerStatusStateful
15730	raw := NoMethod(*s)
15731	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15732}
15733
15734type InstanceGroupManagerStatusVersionTarget struct {
15735	// IsReached: [Output Only] A bit indicating whether version target has
15736	// been reached in this managed instance group, i.e. all instances are
15737	// in their target version. Instances' target version are specified by
15738	// version field on Instance Group Manager.
15739	IsReached bool `json:"isReached,omitempty"`
15740
15741	// ForceSendFields is a list of field names (e.g. "IsReached") to
15742	// unconditionally include in API requests. By default, fields with
15743	// empty values are omitted from API requests. However, any non-pointer,
15744	// non-interface field appearing in ForceSendFields will be sent to the
15745	// server regardless of whether the field is empty or not. This may be
15746	// used to include empty fields in Patch requests.
15747	ForceSendFields []string `json:"-"`
15748
15749	// NullFields is a list of field names (e.g. "IsReached") to include in
15750	// API requests with the JSON null value. By default, fields with empty
15751	// values are omitted from API requests. However, any field with an
15752	// empty value appearing in NullFields will be sent to the server as
15753	// null. It is an error if a field in this list has a non-empty value.
15754	// This may be used to include null fields in Patch requests.
15755	NullFields []string `json:"-"`
15756}
15757
15758func (s *InstanceGroupManagerStatusVersionTarget) MarshalJSON() ([]byte, error) {
15759	type NoMethod InstanceGroupManagerStatusVersionTarget
15760	raw := NoMethod(*s)
15761	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15762}
15763
15764type InstanceGroupManagerUpdatePolicy struct {
15765	// InstanceRedistributionType: The  instance redistribution policy for
15766	// regional managed instance groups. Valid values are:
15767	// - PROACTIVE (default): The group attempts to maintain an even
15768	// distribution of VM instances across zones in the region.
15769	// - NONE: For non-autoscaled groups, proactive redistribution is
15770	// disabled.
15771	//
15772	// Possible values:
15773	//   "NONE"
15774	//   "PROACTIVE"
15775	InstanceRedistributionType string `json:"instanceRedistributionType,omitempty"`
15776
15777	// MaxSurge: The maximum number of instances that can be created above
15778	// the specified targetSize during the update process. By default, a
15779	// fixed value of 1 is used. This value can be either a fixed number or
15780	// a percentage if the instance group has 10 or more instances. If you
15781	// set a percentage, the number of instances will be rounded up if
15782	// necessary.
15783	//
15784	// At least one of either maxSurge or maxUnavailable must be greater
15785	// than 0. Learn more about maxSurge.
15786	MaxSurge *FixedOrPercent `json:"maxSurge,omitempty"`
15787
15788	// MaxUnavailable: The maximum number of instances that can be
15789	// unavailable during the update process. An instance is considered
15790	// available if all of the following conditions are satisfied:
15791	//
15792	//
15793	// - The instance's status is RUNNING.
15794	// - If there is a health check on the instance group, the instance's
15795	// liveness health check result must be HEALTHY at least once. If there
15796	// is no health check on the group, then the instance only needs to have
15797	// a status of RUNNING to be considered available.  By default, a fixed
15798	// value of 1 is used. This value can be either a fixed number or a
15799	// percentage if the instance group has 10 or more instances. If you set
15800	// a percentage, the number of instances will be rounded up if
15801	// necessary.
15802	//
15803	// At least one of either maxSurge or maxUnavailable must be greater
15804	// than 0. Learn more about maxUnavailable.
15805	MaxUnavailable *FixedOrPercent `json:"maxUnavailable,omitempty"`
15806
15807	// MinReadySec: Minimum number of seconds to wait for after a newly
15808	// created instance becomes available. This value must be from range [0,
15809	// 3600].
15810	MinReadySec int64 `json:"minReadySec,omitempty"`
15811
15812	// MinimalAction: Minimal action to be taken on an instance. You can
15813	// specify either RESTART to restart existing instances or REPLACE to
15814	// delete and create new instances from the target template. If you
15815	// specify a RESTART, the Updater will attempt to perform that action
15816	// only. However, if the Updater determines that the minimal action you
15817	// specify is not enough to perform the update, it might perform a more
15818	// disruptive action.
15819	//
15820	// Possible values:
15821	//   "NONE"
15822	//   "REFRESH"
15823	//   "REPLACE"
15824	//   "RESTART"
15825	MinimalAction string `json:"minimalAction,omitempty"`
15826
15827	// ReplacementMethod: What action should be used to replace instances.
15828	// See minimal_action.REPLACE
15829	//
15830	// Possible values:
15831	//   "RECREATE"
15832	//   "SUBSTITUTE"
15833	ReplacementMethod string `json:"replacementMethod,omitempty"`
15834
15835	// Type: The type of update process. You can specify either PROACTIVE so
15836	// that the instance group manager proactively executes actions in order
15837	// to bring instances to their target versions or OPPORTUNISTIC so that
15838	// no action is proactively executed but the update will be performed as
15839	// part of other actions (for example, resizes or recreateInstances
15840	// calls).
15841	//
15842	// Possible values:
15843	//   "OPPORTUNISTIC"
15844	//   "PROACTIVE"
15845	Type string `json:"type,omitempty"`
15846
15847	// ForceSendFields is a list of field names (e.g.
15848	// "InstanceRedistributionType") to unconditionally include in API
15849	// requests. By default, fields with empty values are omitted from API
15850	// requests. However, any non-pointer, non-interface field appearing in
15851	// ForceSendFields will be sent to the server regardless of whether the
15852	// field is empty or not. This may be used to include empty fields in
15853	// Patch requests.
15854	ForceSendFields []string `json:"-"`
15855
15856	// NullFields is a list of field names (e.g.
15857	// "InstanceRedistributionType") to include in API requests with the
15858	// JSON null value. By default, fields with empty values are omitted
15859	// from API requests. However, any field with an empty value appearing
15860	// in NullFields will be sent to the server as null. It is an error if a
15861	// field in this list has a non-empty value. This may be used to include
15862	// null fields in Patch requests.
15863	NullFields []string `json:"-"`
15864}
15865
15866func (s *InstanceGroupManagerUpdatePolicy) MarshalJSON() ([]byte, error) {
15867	type NoMethod InstanceGroupManagerUpdatePolicy
15868	raw := NoMethod(*s)
15869	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15870}
15871
15872type InstanceGroupManagerVersion struct {
15873	// InstanceTemplate: The URL of the instance template that is specified
15874	// for this managed instance group. The group uses this template to
15875	// create new instances in the managed instance group until the
15876	// `targetSize` for this version is reached.
15877	InstanceTemplate string `json:"instanceTemplate,omitempty"`
15878
15879	// Name: Name of the version. Unique among all versions in the scope of
15880	// this managed instance group.
15881	Name string `json:"name,omitempty"`
15882
15883	// Tag: Tag describing the version. Used to trigger rollout of a target
15884	// version even if instance_template remains unchanged. Deprecated in
15885	// favor of 'name'.
15886	Tag string `json:"tag,omitempty"`
15887
15888	// TargetSize: Specifies the intended number of instances to be created
15889	// from the instanceTemplate. The final number of instances created from
15890	// the template will be equal to:
15891	// - If expressed as a fixed number, the minimum of either
15892	// targetSize.fixed or instanceGroupManager.targetSize is used.
15893	// - if expressed as a percent, the targetSize would be
15894	// (targetSize.percent/100 * InstanceGroupManager.targetSize) If there
15895	// is a remainder, the number is rounded up.  If unset, this version
15896	// will update any remaining instances not updated by another version.
15897	// Read Starting a canary update for more information.
15898	TargetSize *FixedOrPercent `json:"targetSize,omitempty"`
15899
15900	// ForceSendFields is a list of field names (e.g. "InstanceTemplate") to
15901	// unconditionally include in API requests. By default, fields with
15902	// empty values are omitted from API requests. However, any non-pointer,
15903	// non-interface field appearing in ForceSendFields will be sent to the
15904	// server regardless of whether the field is empty or not. This may be
15905	// used to include empty fields in Patch requests.
15906	ForceSendFields []string `json:"-"`
15907
15908	// NullFields is a list of field names (e.g. "InstanceTemplate") to
15909	// include in API requests with the JSON null value. By default, fields
15910	// with empty values are omitted from API requests. However, any field
15911	// with an empty value appearing in NullFields will be sent to the
15912	// server as null. It is an error if a field in this list has a
15913	// non-empty value. This may be used to include null fields in Patch
15914	// requests.
15915	NullFields []string `json:"-"`
15916}
15917
15918func (s *InstanceGroupManagerVersion) MarshalJSON() ([]byte, error) {
15919	type NoMethod InstanceGroupManagerVersion
15920	raw := NoMethod(*s)
15921	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15922}
15923
15924type InstanceGroupManagersAbandonInstancesRequest struct {
15925	// Instances: The URLs of one or more instances to abandon. This can be
15926	// a full URL or a partial URL, such as
15927	// zones/[ZONE]/instances/[INSTANCE_NAME].
15928	Instances []string `json:"instances,omitempty"`
15929
15930	// ForceSendFields is a list of field names (e.g. "Instances") to
15931	// unconditionally include in API requests. By default, fields with
15932	// empty values are omitted from API requests. However, any non-pointer,
15933	// non-interface field appearing in ForceSendFields will be sent to the
15934	// server regardless of whether the field is empty or not. This may be
15935	// used to include empty fields in Patch requests.
15936	ForceSendFields []string `json:"-"`
15937
15938	// NullFields is a list of field names (e.g. "Instances") to include in
15939	// API requests with the JSON null value. By default, fields with empty
15940	// values are omitted from API requests. However, any field with an
15941	// empty value appearing in NullFields will be sent to the server as
15942	// null. It is an error if a field in this list has a non-empty value.
15943	// This may be used to include null fields in Patch requests.
15944	NullFields []string `json:"-"`
15945}
15946
15947func (s *InstanceGroupManagersAbandonInstancesRequest) MarshalJSON() ([]byte, error) {
15948	type NoMethod InstanceGroupManagersAbandonInstancesRequest
15949	raw := NoMethod(*s)
15950	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15951}
15952
15953// InstanceGroupManagersApplyUpdatesRequest:
15954// InstanceGroupManagers.applyUpdatesToInstances
15955type InstanceGroupManagersApplyUpdatesRequest struct {
15956	// Instances: The list of URLs of one or more instances for which you
15957	// want to apply updates. Each URL can be a full URL or a partial URL,
15958	// such as zones/[ZONE]/instances/[INSTANCE_NAME].
15959	Instances []string `json:"instances,omitempty"`
15960
15961	// MaximalAction: The maximal action that should be performed on the
15962	// instances. By default REPLACE. This field is deprecated, please use
15963	// most_disruptive_allowed_action.
15964	//
15965	// Possible values:
15966	//   "NONE"
15967	//   "REFRESH"
15968	//   "REPLACE"
15969	//   "RESTART"
15970	MaximalAction string `json:"maximalAction,omitempty"`
15971
15972	// MinimalAction: The minimal action that you want to perform on each
15973	// instance during the update:
15974	// - REPLACE: At minimum, delete the instance and create it again.
15975	// - RESTART: Stop the instance and start it again.
15976	// - REFRESH: Do not stop the instance.
15977	// - NONE: Do not disrupt the instance at all.  By default, the minimum
15978	// action is NONE. If your update requires a more disruptive action than
15979	// you set with this flag, the necessary action is performed to execute
15980	// the update.
15981	//
15982	// Possible values:
15983	//   "NONE"
15984	//   "REFRESH"
15985	//   "REPLACE"
15986	//   "RESTART"
15987	MinimalAction string `json:"minimalAction,omitempty"`
15988
15989	// MostDisruptiveAllowedAction: The most disruptive action that you want
15990	// to perform on each instance during the update:
15991	// - REPLACE: Delete the instance and create it again.
15992	// - RESTART: Stop the instance and start it again.
15993	// - REFRESH: Do not stop the instance.
15994	// - NONE: Do not disrupt the instance at all.  By default, the most
15995	// disruptive allowed action is REPLACE. If your update requires a more
15996	// disruptive action than you set with this flag, the update request
15997	// will fail.
15998	//
15999	// Possible values:
16000	//   "NONE"
16001	//   "REFRESH"
16002	//   "REPLACE"
16003	//   "RESTART"
16004	MostDisruptiveAllowedAction string `json:"mostDisruptiveAllowedAction,omitempty"`
16005
16006	// ForceSendFields is a list of field names (e.g. "Instances") to
16007	// unconditionally include in API requests. By default, fields with
16008	// empty values are omitted from API requests. However, any non-pointer,
16009	// non-interface field appearing in ForceSendFields will be sent to the
16010	// server regardless of whether the field is empty or not. This may be
16011	// used to include empty fields in Patch requests.
16012	ForceSendFields []string `json:"-"`
16013
16014	// NullFields is a list of field names (e.g. "Instances") to include in
16015	// API requests with the JSON null value. By default, fields with empty
16016	// values are omitted from API requests. However, any field with an
16017	// empty value appearing in NullFields will be sent to the server as
16018	// null. It is an error if a field in this list has a non-empty value.
16019	// This may be used to include null fields in Patch requests.
16020	NullFields []string `json:"-"`
16021}
16022
16023func (s *InstanceGroupManagersApplyUpdatesRequest) MarshalJSON() ([]byte, error) {
16024	type NoMethod InstanceGroupManagersApplyUpdatesRequest
16025	raw := NoMethod(*s)
16026	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16027}
16028
16029// InstanceGroupManagersCreateInstancesRequest:
16030// InstanceGroupManagers.createInstances
16031type InstanceGroupManagersCreateInstancesRequest struct {
16032	// Instances: [Required] List of specifications of per-instance configs.
16033	Instances []*PerInstanceConfig `json:"instances,omitempty"`
16034
16035	// ForceSendFields is a list of field names (e.g. "Instances") to
16036	// unconditionally include in API requests. By default, fields with
16037	// empty values are omitted from API requests. However, any non-pointer,
16038	// non-interface field appearing in ForceSendFields will be sent to the
16039	// server regardless of whether the field is empty or not. This may be
16040	// used to include empty fields in Patch requests.
16041	ForceSendFields []string `json:"-"`
16042
16043	// NullFields is a list of field names (e.g. "Instances") to include in
16044	// API requests with the JSON null value. By default, fields with empty
16045	// values are omitted from API requests. However, any field with an
16046	// empty value appearing in NullFields will be sent to the server as
16047	// null. It is an error if a field in this list has a non-empty value.
16048	// This may be used to include null fields in Patch requests.
16049	NullFields []string `json:"-"`
16050}
16051
16052func (s *InstanceGroupManagersCreateInstancesRequest) MarshalJSON() ([]byte, error) {
16053	type NoMethod InstanceGroupManagersCreateInstancesRequest
16054	raw := NoMethod(*s)
16055	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16056}
16057
16058type InstanceGroupManagersDeleteInstancesRequest struct {
16059	// Instances: The URLs of one or more instances to delete. This can be a
16060	// full URL or a partial URL, such as
16061	// zones/[ZONE]/instances/[INSTANCE_NAME].
16062	Instances []string `json:"instances,omitempty"`
16063
16064	// ForceSendFields is a list of field names (e.g. "Instances") to
16065	// unconditionally include in API requests. By default, fields with
16066	// empty values are omitted from API requests. However, any non-pointer,
16067	// non-interface field appearing in ForceSendFields will be sent to the
16068	// server regardless of whether the field is empty or not. This may be
16069	// used to include empty fields in Patch requests.
16070	ForceSendFields []string `json:"-"`
16071
16072	// NullFields is a list of field names (e.g. "Instances") to include in
16073	// API requests with the JSON null value. By default, fields with empty
16074	// values are omitted from API requests. However, any field with an
16075	// empty value appearing in NullFields will be sent to the server as
16076	// null. It is an error if a field in this list has a non-empty value.
16077	// This may be used to include null fields in Patch requests.
16078	NullFields []string `json:"-"`
16079}
16080
16081func (s *InstanceGroupManagersDeleteInstancesRequest) MarshalJSON() ([]byte, error) {
16082	type NoMethod InstanceGroupManagersDeleteInstancesRequest
16083	raw := NoMethod(*s)
16084	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16085}
16086
16087// InstanceGroupManagersDeletePerInstanceConfigsReq:
16088// InstanceGroupManagers.deletePerInstanceConfigs
16089type InstanceGroupManagersDeletePerInstanceConfigsReq struct {
16090	// Names: The list of instance names for which we want to delete
16091	// per-instance configs on this managed instance group.
16092	Names []string `json:"names,omitempty"`
16093
16094	// ForceSendFields is a list of field names (e.g. "Names") to
16095	// unconditionally include in API requests. By default, fields with
16096	// empty values are omitted from API requests. However, any non-pointer,
16097	// non-interface field appearing in ForceSendFields will be sent to the
16098	// server regardless of whether the field is empty or not. This may be
16099	// used to include empty fields in Patch requests.
16100	ForceSendFields []string `json:"-"`
16101
16102	// NullFields is a list of field names (e.g. "Names") to include in API
16103	// requests with the JSON null value. By default, fields with empty
16104	// values are omitted from API requests. However, any field with an
16105	// empty value appearing in NullFields will be sent to the server as
16106	// null. It is an error if a field in this list has a non-empty value.
16107	// This may be used to include null fields in Patch requests.
16108	NullFields []string `json:"-"`
16109}
16110
16111func (s *InstanceGroupManagersDeletePerInstanceConfigsReq) MarshalJSON() ([]byte, error) {
16112	type NoMethod InstanceGroupManagersDeletePerInstanceConfigsReq
16113	raw := NoMethod(*s)
16114	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16115}
16116
16117type InstanceGroupManagersListErrorsResponse struct {
16118	// Items: [Output Only] The list of errors of the managed instance
16119	// group.
16120	Items []*InstanceManagedByIgmError `json:"items,omitempty"`
16121
16122	// NextPageToken: [Output Only] This token allows you to get the next
16123	// page of results for list requests. If the number of results is larger
16124	// than maxResults, use the nextPageToken as a value for the query
16125	// parameter pageToken in the next list request. Subsequent list
16126	// requests will have their own nextPageToken to continue paging through
16127	// the results.
16128	NextPageToken string `json:"nextPageToken,omitempty"`
16129
16130	// ServerResponse contains the HTTP response code and headers from the
16131	// server.
16132	googleapi.ServerResponse `json:"-"`
16133
16134	// ForceSendFields is a list of field names (e.g. "Items") to
16135	// unconditionally include in API requests. By default, fields with
16136	// empty values are omitted from API requests. However, any non-pointer,
16137	// non-interface field appearing in ForceSendFields will be sent to the
16138	// server regardless of whether the field is empty or not. This may be
16139	// used to include empty fields in Patch requests.
16140	ForceSendFields []string `json:"-"`
16141
16142	// NullFields is a list of field names (e.g. "Items") to include in API
16143	// requests with the JSON null value. By default, fields with empty
16144	// values are omitted from API requests. However, any field with an
16145	// empty value appearing in NullFields will be sent to the server as
16146	// null. It is an error if a field in this list has a non-empty value.
16147	// This may be used to include null fields in Patch requests.
16148	NullFields []string `json:"-"`
16149}
16150
16151func (s *InstanceGroupManagersListErrorsResponse) MarshalJSON() ([]byte, error) {
16152	type NoMethod InstanceGroupManagersListErrorsResponse
16153	raw := NoMethod(*s)
16154	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16155}
16156
16157type InstanceGroupManagersListManagedInstancesResponse struct {
16158	// ManagedInstances: [Output Only] The list of instances in the managed
16159	// instance group.
16160	ManagedInstances []*ManagedInstance `json:"managedInstances,omitempty"`
16161
16162	// NextPageToken: [Output Only] This token allows you to get the next
16163	// page of results for list requests. If the number of results is larger
16164	// than maxResults, use the nextPageToken as a value for the query
16165	// parameter pageToken in the next list request. Subsequent list
16166	// requests will have their own nextPageToken to continue paging through
16167	// the results.
16168	NextPageToken string `json:"nextPageToken,omitempty"`
16169
16170	// ServerResponse contains the HTTP response code and headers from the
16171	// server.
16172	googleapi.ServerResponse `json:"-"`
16173
16174	// ForceSendFields is a list of field names (e.g. "ManagedInstances") to
16175	// unconditionally include in API requests. By default, fields with
16176	// empty values are omitted from API requests. However, any non-pointer,
16177	// non-interface field appearing in ForceSendFields will be sent to the
16178	// server regardless of whether the field is empty or not. This may be
16179	// used to include empty fields in Patch requests.
16180	ForceSendFields []string `json:"-"`
16181
16182	// NullFields is a list of field names (e.g. "ManagedInstances") to
16183	// include in API requests with the JSON null value. By default, fields
16184	// with empty values are omitted from API requests. However, any field
16185	// with an empty value appearing in NullFields will be sent to the
16186	// server as null. It is an error if a field in this list has a
16187	// non-empty value. This may be used to include null fields in Patch
16188	// requests.
16189	NullFields []string `json:"-"`
16190}
16191
16192func (s *InstanceGroupManagersListManagedInstancesResponse) MarshalJSON() ([]byte, error) {
16193	type NoMethod InstanceGroupManagersListManagedInstancesResponse
16194	raw := NoMethod(*s)
16195	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16196}
16197
16198type InstanceGroupManagersListPerInstanceConfigsResp struct {
16199	// Items: [Output Only] The list of PerInstanceConfig.
16200	Items []*PerInstanceConfig `json:"items,omitempty"`
16201
16202	// NextPageToken: [Output Only] This token allows you to get the next
16203	// page of results for list requests. If the number of results is larger
16204	// than maxResults, use the nextPageToken as a value for the query
16205	// parameter pageToken in the next list request. Subsequent list
16206	// requests will have their own nextPageToken to continue paging through
16207	// the results.
16208	NextPageToken string `json:"nextPageToken,omitempty"`
16209
16210	// Warning: [Output Only] Informational warning message.
16211	Warning *InstanceGroupManagersListPerInstanceConfigsRespWarning `json:"warning,omitempty"`
16212
16213	// ServerResponse contains the HTTP response code and headers from the
16214	// server.
16215	googleapi.ServerResponse `json:"-"`
16216
16217	// ForceSendFields is a list of field names (e.g. "Items") to
16218	// unconditionally include in API requests. By default, fields with
16219	// empty values are omitted from API requests. However, any non-pointer,
16220	// non-interface field appearing in ForceSendFields will be sent to the
16221	// server regardless of whether the field is empty or not. This may be
16222	// used to include empty fields in Patch requests.
16223	ForceSendFields []string `json:"-"`
16224
16225	// NullFields is a list of field names (e.g. "Items") to include in API
16226	// requests with the JSON null value. By default, fields with empty
16227	// values are omitted from API requests. However, any field with an
16228	// empty value appearing in NullFields will be sent to the server as
16229	// null. It is an error if a field in this list has a non-empty value.
16230	// This may be used to include null fields in Patch requests.
16231	NullFields []string `json:"-"`
16232}
16233
16234func (s *InstanceGroupManagersListPerInstanceConfigsResp) MarshalJSON() ([]byte, error) {
16235	type NoMethod InstanceGroupManagersListPerInstanceConfigsResp
16236	raw := NoMethod(*s)
16237	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16238}
16239
16240// InstanceGroupManagersListPerInstanceConfigsRespWarning: [Output Only]
16241// Informational warning message.
16242type InstanceGroupManagersListPerInstanceConfigsRespWarning struct {
16243	// Code: [Output Only] A warning code, if applicable. For example,
16244	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
16245	// the response.
16246	//
16247	// Possible values:
16248	//   "CLEANUP_FAILED"
16249	//   "DEPRECATED_RESOURCE_USED"
16250	//   "DEPRECATED_TYPE_USED"
16251	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
16252	//   "EXPERIMENTAL_TYPE_USED"
16253	//   "EXTERNAL_API_WARNING"
16254	//   "FIELD_VALUE_OVERRIDEN"
16255	//   "INJECTED_KERNELS_DEPRECATED"
16256	//   "MISSING_TYPE_DEPENDENCY"
16257	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
16258	//   "NEXT_HOP_CANNOT_IP_FORWARD"
16259	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
16260	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
16261	//   "NEXT_HOP_NOT_RUNNING"
16262	//   "NOT_CRITICAL_ERROR"
16263	//   "NO_RESULTS_ON_PAGE"
16264	//   "REQUIRED_TOS_AGREEMENT"
16265	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
16266	//   "RESOURCE_NOT_DELETED"
16267	//   "SCHEMA_VALIDATION_IGNORED"
16268	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
16269	//   "UNDECLARED_PROPERTIES"
16270	//   "UNREACHABLE"
16271	Code string `json:"code,omitempty"`
16272
16273	// Data: [Output Only] Metadata about this warning in key: value format.
16274	// For example:
16275	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
16276	Data []*InstanceGroupManagersListPerInstanceConfigsRespWarningData `json:"data,omitempty"`
16277
16278	// Message: [Output Only] A human-readable description of the warning
16279	// code.
16280	Message string `json:"message,omitempty"`
16281
16282	// ForceSendFields is a list of field names (e.g. "Code") 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. "Code") to include in API
16291	// 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 *InstanceGroupManagersListPerInstanceConfigsRespWarning) MarshalJSON() ([]byte, error) {
16300	type NoMethod InstanceGroupManagersListPerInstanceConfigsRespWarning
16301	raw := NoMethod(*s)
16302	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16303}
16304
16305type InstanceGroupManagersListPerInstanceConfigsRespWarningData struct {
16306	// Key: [Output Only] A key that provides more detail on the warning
16307	// being returned. For example, for warnings where there are no results
16308	// in a list request for a particular zone, this key might be scope and
16309	// the key value might be the zone name. Other examples might be a key
16310	// indicating a deprecated resource and a suggested replacement, or a
16311	// warning about invalid network settings (for example, if an instance
16312	// attempts to perform IP forwarding but is not enabled for IP
16313	// forwarding).
16314	Key string `json:"key,omitempty"`
16315
16316	// Value: [Output Only] A warning data value corresponding to the key.
16317	Value string `json:"value,omitempty"`
16318
16319	// ForceSendFields is a list of field names (e.g. "Key") to
16320	// unconditionally include in API requests. By default, fields with
16321	// empty values are omitted from API requests. However, any non-pointer,
16322	// non-interface field appearing in ForceSendFields will be sent to the
16323	// server regardless of whether the field is empty or not. This may be
16324	// used to include empty fields in Patch requests.
16325	ForceSendFields []string `json:"-"`
16326
16327	// NullFields is a list of field names (e.g. "Key") to include in API
16328	// requests with the JSON null value. By default, fields with empty
16329	// values are omitted from API requests. However, any field with an
16330	// empty value appearing in NullFields will be sent to the server as
16331	// null. It is an error if a field in this list has a non-empty value.
16332	// This may be used to include null fields in Patch requests.
16333	NullFields []string `json:"-"`
16334}
16335
16336func (s *InstanceGroupManagersListPerInstanceConfigsRespWarningData) MarshalJSON() ([]byte, error) {
16337	type NoMethod InstanceGroupManagersListPerInstanceConfigsRespWarningData
16338	raw := NoMethod(*s)
16339	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16340}
16341
16342// InstanceGroupManagersPatchPerInstanceConfigsReq:
16343// InstanceGroupManagers.patchPerInstanceConfigs
16344type InstanceGroupManagersPatchPerInstanceConfigsReq struct {
16345	// PerInstanceConfigs: The list of per-instance configs to insert or
16346	// patch on this managed instance group.
16347	PerInstanceConfigs []*PerInstanceConfig `json:"perInstanceConfigs,omitempty"`
16348
16349	// ForceSendFields is a list of field names (e.g. "PerInstanceConfigs")
16350	// to unconditionally include in API requests. By default, fields with
16351	// empty values are omitted from API requests. However, any non-pointer,
16352	// non-interface field appearing in ForceSendFields will be sent to the
16353	// server regardless of whether the field is empty or not. This may be
16354	// used to include empty fields in Patch requests.
16355	ForceSendFields []string `json:"-"`
16356
16357	// NullFields is a list of field names (e.g. "PerInstanceConfigs") to
16358	// include in API requests with the JSON null value. By default, fields
16359	// with empty values are omitted from API requests. However, any field
16360	// with an empty value appearing in NullFields will be sent to the
16361	// server as null. It is an error if a field in this list has a
16362	// non-empty value. This may be used to include null fields in Patch
16363	// requests.
16364	NullFields []string `json:"-"`
16365}
16366
16367func (s *InstanceGroupManagersPatchPerInstanceConfigsReq) MarshalJSON() ([]byte, error) {
16368	type NoMethod InstanceGroupManagersPatchPerInstanceConfigsReq
16369	raw := NoMethod(*s)
16370	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16371}
16372
16373type InstanceGroupManagersRecreateInstancesRequest struct {
16374	// Instances: The URLs of one or more instances to recreate. This can be
16375	// a full URL or a partial URL, such as
16376	// zones/[ZONE]/instances/[INSTANCE_NAME].
16377	Instances []string `json:"instances,omitempty"`
16378
16379	// ForceSendFields is a list of field names (e.g. "Instances") to
16380	// unconditionally include in API requests. By default, fields with
16381	// empty values are omitted from API requests. However, any non-pointer,
16382	// non-interface field appearing in ForceSendFields will be sent to the
16383	// server regardless of whether the field is empty or not. This may be
16384	// used to include empty fields in Patch requests.
16385	ForceSendFields []string `json:"-"`
16386
16387	// NullFields is a list of field names (e.g. "Instances") to include in
16388	// API requests with the JSON null value. By default, fields with empty
16389	// values are omitted from API requests. However, any field with an
16390	// empty value appearing in NullFields will be sent to the server as
16391	// null. It is an error if a field in this list has a non-empty value.
16392	// This may be used to include null fields in Patch requests.
16393	NullFields []string `json:"-"`
16394}
16395
16396func (s *InstanceGroupManagersRecreateInstancesRequest) MarshalJSON() ([]byte, error) {
16397	type NoMethod InstanceGroupManagersRecreateInstancesRequest
16398	raw := NoMethod(*s)
16399	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16400}
16401
16402type InstanceGroupManagersResizeAdvancedRequest struct {
16403	// NoCreationRetries: If this flag is true, the managed instance group
16404	// attempts to create all instances initiated by this resize request
16405	// only once. If there is an error during creation, the managed instance
16406	// group does not retry create this instance, and we will decrease the
16407	// targetSize of the request instead. If the flag is false, the group
16408	// attempts to recreate each instance continuously until it
16409	// succeeds.
16410	//
16411	// This flag matters only in the first attempt of creation of an
16412	// instance. After an instance is successfully created while this flag
16413	// is enabled, the instance behaves the same way as all the other
16414	// instances created with a regular resize request. In particular, if a
16415	// running instance dies unexpectedly at a later time and needs to be
16416	// recreated, this mode does not affect the recreation behavior in that
16417	// scenario.
16418	//
16419	// This flag is applicable only to the current resize request. It does
16420	// not influence other resize requests in any way.
16421	//
16422	// You can see which instances is being creating in which mode by
16423	// calling the get or listManagedInstances API.
16424	NoCreationRetries bool `json:"noCreationRetries,omitempty"`
16425
16426	// TargetSize: The number of running instances that the managed instance
16427	// group should maintain at any given time. The group automatically adds
16428	// or removes instances to maintain the number of instances specified by
16429	// this parameter.
16430	TargetSize int64 `json:"targetSize,omitempty"`
16431
16432	// ForceSendFields is a list of field names (e.g. "NoCreationRetries")
16433	// to unconditionally include in API requests. By default, fields with
16434	// empty values are omitted from API requests. However, any non-pointer,
16435	// non-interface field appearing in ForceSendFields will be sent to the
16436	// server regardless of whether the field is empty or not. This may be
16437	// used to include empty fields in Patch requests.
16438	ForceSendFields []string `json:"-"`
16439
16440	// NullFields is a list of field names (e.g. "NoCreationRetries") to
16441	// include in API requests with the JSON null value. By default, fields
16442	// with empty values are omitted from API requests. However, any field
16443	// with an empty value appearing in NullFields will be sent to the
16444	// server as null. It is an error if a field in this list has a
16445	// non-empty value. This may be used to include null fields in Patch
16446	// requests.
16447	NullFields []string `json:"-"`
16448}
16449
16450func (s *InstanceGroupManagersResizeAdvancedRequest) MarshalJSON() ([]byte, error) {
16451	type NoMethod InstanceGroupManagersResizeAdvancedRequest
16452	raw := NoMethod(*s)
16453	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16454}
16455
16456type InstanceGroupManagersScopedList struct {
16457	// InstanceGroupManagers: [Output Only] The list of managed instance
16458	// groups that are contained in the specified project and zone.
16459	InstanceGroupManagers []*InstanceGroupManager `json:"instanceGroupManagers,omitempty"`
16460
16461	// Warning: [Output Only] The warning that replaces the list of managed
16462	// instance groups when the list is empty.
16463	Warning *InstanceGroupManagersScopedListWarning `json:"warning,omitempty"`
16464
16465	// ForceSendFields is a list of field names (e.g.
16466	// "InstanceGroupManagers") to unconditionally include in API requests.
16467	// By default, fields with empty values are omitted from API requests.
16468	// However, any non-pointer, non-interface field appearing in
16469	// ForceSendFields will be sent to the server regardless of whether the
16470	// field is empty or not. This may be used to include empty fields in
16471	// Patch requests.
16472	ForceSendFields []string `json:"-"`
16473
16474	// NullFields is a list of field names (e.g. "InstanceGroupManagers") to
16475	// include in API requests with the JSON null value. By default, fields
16476	// with empty values are omitted from API requests. However, any field
16477	// with an empty value appearing in NullFields will be sent to the
16478	// server as null. It is an error if a field in this list has a
16479	// non-empty value. This may be used to include null fields in Patch
16480	// requests.
16481	NullFields []string `json:"-"`
16482}
16483
16484func (s *InstanceGroupManagersScopedList) MarshalJSON() ([]byte, error) {
16485	type NoMethod InstanceGroupManagersScopedList
16486	raw := NoMethod(*s)
16487	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16488}
16489
16490// InstanceGroupManagersScopedListWarning: [Output Only] The warning
16491// that replaces the list of managed instance groups when the list is
16492// empty.
16493type InstanceGroupManagersScopedListWarning struct {
16494	// Code: [Output Only] A warning code, if applicable. For example,
16495	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
16496	// the response.
16497	//
16498	// Possible values:
16499	//   "CLEANUP_FAILED"
16500	//   "DEPRECATED_RESOURCE_USED"
16501	//   "DEPRECATED_TYPE_USED"
16502	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
16503	//   "EXPERIMENTAL_TYPE_USED"
16504	//   "EXTERNAL_API_WARNING"
16505	//   "FIELD_VALUE_OVERRIDEN"
16506	//   "INJECTED_KERNELS_DEPRECATED"
16507	//   "MISSING_TYPE_DEPENDENCY"
16508	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
16509	//   "NEXT_HOP_CANNOT_IP_FORWARD"
16510	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
16511	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
16512	//   "NEXT_HOP_NOT_RUNNING"
16513	//   "NOT_CRITICAL_ERROR"
16514	//   "NO_RESULTS_ON_PAGE"
16515	//   "REQUIRED_TOS_AGREEMENT"
16516	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
16517	//   "RESOURCE_NOT_DELETED"
16518	//   "SCHEMA_VALIDATION_IGNORED"
16519	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
16520	//   "UNDECLARED_PROPERTIES"
16521	//   "UNREACHABLE"
16522	Code string `json:"code,omitempty"`
16523
16524	// Data: [Output Only] Metadata about this warning in key: value format.
16525	// For example:
16526	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
16527	Data []*InstanceGroupManagersScopedListWarningData `json:"data,omitempty"`
16528
16529	// Message: [Output Only] A human-readable description of the warning
16530	// code.
16531	Message string `json:"message,omitempty"`
16532
16533	// ForceSendFields is a list of field names (e.g. "Code") to
16534	// unconditionally include in API requests. By default, fields with
16535	// empty values are omitted from API requests. However, any non-pointer,
16536	// non-interface field appearing in ForceSendFields will be sent to the
16537	// server regardless of whether the field is empty or not. This may be
16538	// used to include empty fields in Patch requests.
16539	ForceSendFields []string `json:"-"`
16540
16541	// NullFields is a list of field names (e.g. "Code") to include in API
16542	// requests with the JSON null value. By default, fields with empty
16543	// values are omitted from API requests. However, any field with an
16544	// empty value appearing in NullFields will be sent to the server as
16545	// null. It is an error if a field in this list has a non-empty value.
16546	// This may be used to include null fields in Patch requests.
16547	NullFields []string `json:"-"`
16548}
16549
16550func (s *InstanceGroupManagersScopedListWarning) MarshalJSON() ([]byte, error) {
16551	type NoMethod InstanceGroupManagersScopedListWarning
16552	raw := NoMethod(*s)
16553	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16554}
16555
16556type InstanceGroupManagersScopedListWarningData struct {
16557	// Key: [Output Only] A key that provides more detail on the warning
16558	// being returned. For example, for warnings where there are no results
16559	// in a list request for a particular zone, this key might be scope and
16560	// the key value might be the zone name. Other examples might be a key
16561	// indicating a deprecated resource and a suggested replacement, or a
16562	// warning about invalid network settings (for example, if an instance
16563	// attempts to perform IP forwarding but is not enabled for IP
16564	// forwarding).
16565	Key string `json:"key,omitempty"`
16566
16567	// Value: [Output Only] A warning data value corresponding to the key.
16568	Value string `json:"value,omitempty"`
16569
16570	// ForceSendFields is a list of field names (e.g. "Key") to
16571	// unconditionally include in API requests. By default, fields with
16572	// empty values are omitted from API requests. However, any non-pointer,
16573	// non-interface field appearing in ForceSendFields will be sent to the
16574	// server regardless of whether the field is empty or not. This may be
16575	// used to include empty fields in Patch requests.
16576	ForceSendFields []string `json:"-"`
16577
16578	// NullFields is a list of field names (e.g. "Key") to include in API
16579	// requests with the JSON null value. By default, fields with empty
16580	// values are omitted from API requests. However, any field with an
16581	// empty value appearing in NullFields will be sent to the server as
16582	// null. It is an error if a field in this list has a non-empty value.
16583	// This may be used to include null fields in Patch requests.
16584	NullFields []string `json:"-"`
16585}
16586
16587func (s *InstanceGroupManagersScopedListWarningData) MarshalJSON() ([]byte, error) {
16588	type NoMethod InstanceGroupManagersScopedListWarningData
16589	raw := NoMethod(*s)
16590	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16591}
16592
16593type InstanceGroupManagersSetAutoHealingRequest struct {
16594	AutoHealingPolicies []*InstanceGroupManagerAutoHealingPolicy `json:"autoHealingPolicies,omitempty"`
16595
16596	// ForceSendFields is a list of field names (e.g. "AutoHealingPolicies")
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. "AutoHealingPolicies") 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 *InstanceGroupManagersSetAutoHealingRequest) MarshalJSON() ([]byte, error) {
16615	type NoMethod InstanceGroupManagersSetAutoHealingRequest
16616	raw := NoMethod(*s)
16617	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16618}
16619
16620type InstanceGroupManagersSetInstanceTemplateRequest struct {
16621	// InstanceTemplate: The URL of the instance template that is specified
16622	// for this managed instance group. The group uses this template to
16623	// create all new instances in the managed instance group.
16624	InstanceTemplate string `json:"instanceTemplate,omitempty"`
16625
16626	// ForceSendFields is a list of field names (e.g. "InstanceTemplate") 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. "InstanceTemplate") to
16635	// include in API requests with the JSON null value. By default, fields
16636	// with empty values are omitted from API requests. However, any field
16637	// with an empty value appearing in NullFields will be sent to the
16638	// server as null. It is an error if a field in this list has a
16639	// non-empty value. This may be used to include null fields in Patch
16640	// requests.
16641	NullFields []string `json:"-"`
16642}
16643
16644func (s *InstanceGroupManagersSetInstanceTemplateRequest) MarshalJSON() ([]byte, error) {
16645	type NoMethod InstanceGroupManagersSetInstanceTemplateRequest
16646	raw := NoMethod(*s)
16647	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16648}
16649
16650type InstanceGroupManagersSetTargetPoolsRequest struct {
16651	// Fingerprint: The fingerprint of the target pools information. Use
16652	// this optional property to prevent conflicts when multiple users
16653	// change the target pools settings concurrently. Obtain the fingerprint
16654	// with the instanceGroupManagers.get method. Then, include the
16655	// fingerprint in your request to ensure that you do not overwrite
16656	// changes that were applied from another concurrent request.
16657	Fingerprint string `json:"fingerprint,omitempty"`
16658
16659	// TargetPools: The list of target pool URLs that instances in this
16660	// managed instance group belong to. The managed instance group applies
16661	// these target pools to all of the instances in the group. Existing
16662	// instances and new instances in the group all receive these target
16663	// pool settings.
16664	TargetPools []string `json:"targetPools,omitempty"`
16665
16666	// ForceSendFields is a list of field names (e.g. "Fingerprint") to
16667	// unconditionally include in API requests. By default, fields with
16668	// empty values are omitted from API requests. However, any non-pointer,
16669	// non-interface field appearing in ForceSendFields will be sent to the
16670	// server regardless of whether the field is empty or not. This may be
16671	// used to include empty fields in Patch requests.
16672	ForceSendFields []string `json:"-"`
16673
16674	// NullFields is a list of field names (e.g. "Fingerprint") to include
16675	// in API requests with the JSON null value. By default, fields with
16676	// empty values are omitted from API requests. However, any field with
16677	// an empty value appearing in NullFields will be sent to the server as
16678	// null. It is an error if a field in this list has a non-empty value.
16679	// This may be used to include null fields in Patch requests.
16680	NullFields []string `json:"-"`
16681}
16682
16683func (s *InstanceGroupManagersSetTargetPoolsRequest) MarshalJSON() ([]byte, error) {
16684	type NoMethod InstanceGroupManagersSetTargetPoolsRequest
16685	raw := NoMethod(*s)
16686	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16687}
16688
16689// InstanceGroupManagersUpdatePerInstanceConfigsReq:
16690// InstanceGroupManagers.updatePerInstanceConfigs
16691type InstanceGroupManagersUpdatePerInstanceConfigsReq struct {
16692	// PerInstanceConfigs: The list of per-instance configs to insert or
16693	// patch on this managed instance group.
16694	PerInstanceConfigs []*PerInstanceConfig `json:"perInstanceConfigs,omitempty"`
16695
16696	// ForceSendFields is a list of field names (e.g. "PerInstanceConfigs")
16697	// to unconditionally include in API requests. By default, fields with
16698	// empty values are omitted from API requests. However, any non-pointer,
16699	// non-interface field appearing in ForceSendFields will be sent to the
16700	// server regardless of whether the field is empty or not. This may be
16701	// used to include empty fields in Patch requests.
16702	ForceSendFields []string `json:"-"`
16703
16704	// NullFields is a list of field names (e.g. "PerInstanceConfigs") to
16705	// include in API requests with the JSON null value. By default, fields
16706	// with empty values are omitted from API requests. However, any field
16707	// with an empty value appearing in NullFields will be sent to the
16708	// server as null. It is an error if a field in this list has a
16709	// non-empty value. This may be used to include null fields in Patch
16710	// requests.
16711	NullFields []string `json:"-"`
16712}
16713
16714func (s *InstanceGroupManagersUpdatePerInstanceConfigsReq) MarshalJSON() ([]byte, error) {
16715	type NoMethod InstanceGroupManagersUpdatePerInstanceConfigsReq
16716	raw := NoMethod(*s)
16717	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16718}
16719
16720type InstanceGroupsAddInstancesRequest struct {
16721	// Instances: The list of instances to add to the instance group.
16722	Instances []*InstanceReference `json:"instances,omitempty"`
16723
16724	// ForceSendFields is a list of field names (e.g. "Instances") to
16725	// unconditionally include in API requests. By default, fields with
16726	// empty values are omitted from API requests. However, any non-pointer,
16727	// non-interface field appearing in ForceSendFields will be sent to the
16728	// server regardless of whether the field is empty or not. This may be
16729	// used to include empty fields in Patch requests.
16730	ForceSendFields []string `json:"-"`
16731
16732	// NullFields is a list of field names (e.g. "Instances") to include in
16733	// API requests with the JSON null value. By default, fields with empty
16734	// values are omitted from API requests. However, any field with an
16735	// empty value appearing in NullFields will be sent to the server as
16736	// null. It is an error if a field in this list has a non-empty value.
16737	// This may be used to include null fields in Patch requests.
16738	NullFields []string `json:"-"`
16739}
16740
16741func (s *InstanceGroupsAddInstancesRequest) MarshalJSON() ([]byte, error) {
16742	type NoMethod InstanceGroupsAddInstancesRequest
16743	raw := NoMethod(*s)
16744	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16745}
16746
16747type InstanceGroupsListInstances struct {
16748	// Id: [Output Only] Unique identifier for the resource; defined by the
16749	// server.
16750	Id string `json:"id,omitempty"`
16751
16752	// Items: A list of InstanceWithNamedPorts resources.
16753	Items []*InstanceWithNamedPorts `json:"items,omitempty"`
16754
16755	// Kind: [Output Only] The resource type, which is always
16756	// compute#instanceGroupsListInstances for the list of instances in the
16757	// specified instance group.
16758	Kind string `json:"kind,omitempty"`
16759
16760	// NextPageToken: [Output Only] This token allows you to get the next
16761	// page of results for list requests. If the number of results is larger
16762	// than maxResults, use the nextPageToken as a value for the query
16763	// parameter pageToken in the next list request. Subsequent list
16764	// requests will have their own nextPageToken to continue paging through
16765	// the results.
16766	NextPageToken string `json:"nextPageToken,omitempty"`
16767
16768	// SelfLink: [Output Only] Server-defined URL for this resource.
16769	SelfLink string `json:"selfLink,omitempty"`
16770
16771	// Warning: [Output Only] Informational warning message.
16772	Warning *InstanceGroupsListInstancesWarning `json:"warning,omitempty"`
16773
16774	// ServerResponse contains the HTTP response code and headers from the
16775	// server.
16776	googleapi.ServerResponse `json:"-"`
16777
16778	// ForceSendFields is a list of field names (e.g. "Id") to
16779	// unconditionally include in API requests. By default, fields with
16780	// empty values are omitted from API requests. However, any non-pointer,
16781	// non-interface field appearing in ForceSendFields will be sent to the
16782	// server regardless of whether the field is empty or not. This may be
16783	// used to include empty fields in Patch requests.
16784	ForceSendFields []string `json:"-"`
16785
16786	// NullFields is a list of field names (e.g. "Id") to include in API
16787	// requests with the JSON null value. By default, fields with empty
16788	// values are omitted from API requests. However, any field with an
16789	// empty value appearing in NullFields will be sent to the server as
16790	// null. It is an error if a field in this list has a non-empty value.
16791	// This may be used to include null fields in Patch requests.
16792	NullFields []string `json:"-"`
16793}
16794
16795func (s *InstanceGroupsListInstances) MarshalJSON() ([]byte, error) {
16796	type NoMethod InstanceGroupsListInstances
16797	raw := NoMethod(*s)
16798	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16799}
16800
16801// InstanceGroupsListInstancesWarning: [Output Only] Informational
16802// warning message.
16803type InstanceGroupsListInstancesWarning struct {
16804	// Code: [Output Only] A warning code, if applicable. For example,
16805	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
16806	// the response.
16807	//
16808	// Possible values:
16809	//   "CLEANUP_FAILED"
16810	//   "DEPRECATED_RESOURCE_USED"
16811	//   "DEPRECATED_TYPE_USED"
16812	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
16813	//   "EXPERIMENTAL_TYPE_USED"
16814	//   "EXTERNAL_API_WARNING"
16815	//   "FIELD_VALUE_OVERRIDEN"
16816	//   "INJECTED_KERNELS_DEPRECATED"
16817	//   "MISSING_TYPE_DEPENDENCY"
16818	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
16819	//   "NEXT_HOP_CANNOT_IP_FORWARD"
16820	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
16821	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
16822	//   "NEXT_HOP_NOT_RUNNING"
16823	//   "NOT_CRITICAL_ERROR"
16824	//   "NO_RESULTS_ON_PAGE"
16825	//   "REQUIRED_TOS_AGREEMENT"
16826	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
16827	//   "RESOURCE_NOT_DELETED"
16828	//   "SCHEMA_VALIDATION_IGNORED"
16829	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
16830	//   "UNDECLARED_PROPERTIES"
16831	//   "UNREACHABLE"
16832	Code string `json:"code,omitempty"`
16833
16834	// Data: [Output Only] Metadata about this warning in key: value format.
16835	// For example:
16836	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
16837	Data []*InstanceGroupsListInstancesWarningData `json:"data,omitempty"`
16838
16839	// Message: [Output Only] A human-readable description of the warning
16840	// code.
16841	Message string `json:"message,omitempty"`
16842
16843	// ForceSendFields is a list of field names (e.g. "Code") to
16844	// 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. "Code") to include in API
16852	// requests with the JSON null value. By default, fields with empty
16853	// values are omitted from API requests. However, any field with an
16854	// empty value appearing in NullFields will be sent to the server as
16855	// null. It is an error if a field in this list has a non-empty value.
16856	// This may be used to include null fields in Patch requests.
16857	NullFields []string `json:"-"`
16858}
16859
16860func (s *InstanceGroupsListInstancesWarning) MarshalJSON() ([]byte, error) {
16861	type NoMethod InstanceGroupsListInstancesWarning
16862	raw := NoMethod(*s)
16863	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16864}
16865
16866type InstanceGroupsListInstancesWarningData struct {
16867	// Key: [Output Only] A key that provides more detail on the warning
16868	// being returned. For example, for warnings where there are no results
16869	// in a list request for a particular zone, this key might be scope and
16870	// the key value might be the zone name. Other examples might be a key
16871	// indicating a deprecated resource and a suggested replacement, or a
16872	// warning about invalid network settings (for example, if an instance
16873	// attempts to perform IP forwarding but is not enabled for IP
16874	// forwarding).
16875	Key string `json:"key,omitempty"`
16876
16877	// Value: [Output Only] A warning data value corresponding to the key.
16878	Value string `json:"value,omitempty"`
16879
16880	// ForceSendFields is a list of field names (e.g. "Key") to
16881	// unconditionally include in API requests. By default, fields with
16882	// empty values are omitted from API requests. However, any non-pointer,
16883	// non-interface field appearing in ForceSendFields will be sent to the
16884	// server regardless of whether the field is empty or not. This may be
16885	// used to include empty fields in Patch requests.
16886	ForceSendFields []string `json:"-"`
16887
16888	// NullFields is a list of field names (e.g. "Key") to include in API
16889	// requests with the JSON null value. By default, fields with empty
16890	// values are omitted from API requests. However, any field with an
16891	// empty value appearing in NullFields will be sent to the server as
16892	// null. It is an error if a field in this list has a non-empty value.
16893	// This may be used to include null fields in Patch requests.
16894	NullFields []string `json:"-"`
16895}
16896
16897func (s *InstanceGroupsListInstancesWarningData) MarshalJSON() ([]byte, error) {
16898	type NoMethod InstanceGroupsListInstancesWarningData
16899	raw := NoMethod(*s)
16900	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16901}
16902
16903type InstanceGroupsListInstancesRequest struct {
16904	// InstanceState: A filter for the state of the instances in the
16905	// instance group. Valid options are ALL or RUNNING. If you do not
16906	// specify this parameter the list includes all instances regardless of
16907	// their state.
16908	//
16909	// Possible values:
16910	//   "ALL"
16911	//   "RUNNING"
16912	InstanceState string `json:"instanceState,omitempty"`
16913
16914	// ForceSendFields is a list of field names (e.g. "InstanceState") to
16915	// unconditionally include in API requests. By default, fields with
16916	// empty values are omitted from API requests. However, any non-pointer,
16917	// non-interface field appearing in ForceSendFields will be sent to the
16918	// server regardless of whether the field is empty or not. This may be
16919	// used to include empty fields in Patch requests.
16920	ForceSendFields []string `json:"-"`
16921
16922	// NullFields is a list of field names (e.g. "InstanceState") to include
16923	// in API requests with the JSON null value. By default, fields with
16924	// empty values are omitted from API requests. However, any field with
16925	// an empty value appearing in NullFields will be sent to the server as
16926	// null. It is an error if a field in this list has a non-empty value.
16927	// This may be used to include null fields in Patch requests.
16928	NullFields []string `json:"-"`
16929}
16930
16931func (s *InstanceGroupsListInstancesRequest) MarshalJSON() ([]byte, error) {
16932	type NoMethod InstanceGroupsListInstancesRequest
16933	raw := NoMethod(*s)
16934	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16935}
16936
16937type InstanceGroupsRemoveInstancesRequest struct {
16938	// Instances: The list of instances to remove from the instance group.
16939	Instances []*InstanceReference `json:"instances,omitempty"`
16940
16941	// ForceSendFields is a list of field names (e.g. "Instances") to
16942	// unconditionally include in API requests. By default, fields with
16943	// empty values are omitted from API requests. However, any non-pointer,
16944	// non-interface field appearing in ForceSendFields will be sent to the
16945	// server regardless of whether the field is empty or not. This may be
16946	// used to include empty fields in Patch requests.
16947	ForceSendFields []string `json:"-"`
16948
16949	// NullFields is a list of field names (e.g. "Instances") to include in
16950	// API requests with the JSON null value. By default, fields with empty
16951	// values are omitted from API requests. However, any field with an
16952	// empty value appearing in NullFields will be sent to the server as
16953	// null. It is an error if a field in this list has a non-empty value.
16954	// This may be used to include null fields in Patch requests.
16955	NullFields []string `json:"-"`
16956}
16957
16958func (s *InstanceGroupsRemoveInstancesRequest) MarshalJSON() ([]byte, error) {
16959	type NoMethod InstanceGroupsRemoveInstancesRequest
16960	raw := NoMethod(*s)
16961	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16962}
16963
16964type InstanceGroupsScopedList struct {
16965	// InstanceGroups: [Output Only] The list of instance groups that are
16966	// contained in this scope.
16967	InstanceGroups []*InstanceGroup `json:"instanceGroups,omitempty"`
16968
16969	// Warning: [Output Only] An informational warning that replaces the
16970	// list of instance groups when the list is empty.
16971	Warning *InstanceGroupsScopedListWarning `json:"warning,omitempty"`
16972
16973	// ForceSendFields is a list of field names (e.g. "InstanceGroups") to
16974	// unconditionally include in API requests. By default, fields with
16975	// empty values are omitted from API requests. However, any non-pointer,
16976	// non-interface field appearing in ForceSendFields will be sent to the
16977	// server regardless of whether the field is empty or not. This may be
16978	// used to include empty fields in Patch requests.
16979	ForceSendFields []string `json:"-"`
16980
16981	// NullFields is a list of field names (e.g. "InstanceGroups") to
16982	// include in API requests with the JSON null value. By default, fields
16983	// with empty values are omitted from API requests. However, any field
16984	// with an empty value appearing in NullFields will be sent to the
16985	// server as null. It is an error if a field in this list has a
16986	// non-empty value. This may be used to include null fields in Patch
16987	// requests.
16988	NullFields []string `json:"-"`
16989}
16990
16991func (s *InstanceGroupsScopedList) MarshalJSON() ([]byte, error) {
16992	type NoMethod InstanceGroupsScopedList
16993	raw := NoMethod(*s)
16994	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16995}
16996
16997// InstanceGroupsScopedListWarning: [Output Only] An informational
16998// warning that replaces the list of instance groups when the list is
16999// empty.
17000type InstanceGroupsScopedListWarning struct {
17001	// Code: [Output Only] A warning code, if applicable. For example,
17002	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
17003	// the response.
17004	//
17005	// Possible values:
17006	//   "CLEANUP_FAILED"
17007	//   "DEPRECATED_RESOURCE_USED"
17008	//   "DEPRECATED_TYPE_USED"
17009	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
17010	//   "EXPERIMENTAL_TYPE_USED"
17011	//   "EXTERNAL_API_WARNING"
17012	//   "FIELD_VALUE_OVERRIDEN"
17013	//   "INJECTED_KERNELS_DEPRECATED"
17014	//   "MISSING_TYPE_DEPENDENCY"
17015	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
17016	//   "NEXT_HOP_CANNOT_IP_FORWARD"
17017	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
17018	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
17019	//   "NEXT_HOP_NOT_RUNNING"
17020	//   "NOT_CRITICAL_ERROR"
17021	//   "NO_RESULTS_ON_PAGE"
17022	//   "REQUIRED_TOS_AGREEMENT"
17023	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
17024	//   "RESOURCE_NOT_DELETED"
17025	//   "SCHEMA_VALIDATION_IGNORED"
17026	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
17027	//   "UNDECLARED_PROPERTIES"
17028	//   "UNREACHABLE"
17029	Code string `json:"code,omitempty"`
17030
17031	// Data: [Output Only] Metadata about this warning in key: value format.
17032	// For example:
17033	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
17034	Data []*InstanceGroupsScopedListWarningData `json:"data,omitempty"`
17035
17036	// Message: [Output Only] A human-readable description of the warning
17037	// code.
17038	Message string `json:"message,omitempty"`
17039
17040	// ForceSendFields is a list of field names (e.g. "Code") to
17041	// unconditionally include in API requests. By default, fields with
17042	// empty values are omitted from API requests. However, any non-pointer,
17043	// non-interface field appearing in ForceSendFields will be sent to the
17044	// server regardless of whether the field is empty or not. This may be
17045	// used to include empty fields in Patch requests.
17046	ForceSendFields []string `json:"-"`
17047
17048	// NullFields is a list of field names (e.g. "Code") to include in API
17049	// requests with the JSON null value. By default, fields with empty
17050	// values are omitted from API requests. However, any field with an
17051	// empty value appearing in NullFields will be sent to the server as
17052	// null. It is an error if a field in this list has a non-empty value.
17053	// This may be used to include null fields in Patch requests.
17054	NullFields []string `json:"-"`
17055}
17056
17057func (s *InstanceGroupsScopedListWarning) MarshalJSON() ([]byte, error) {
17058	type NoMethod InstanceGroupsScopedListWarning
17059	raw := NoMethod(*s)
17060	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17061}
17062
17063type InstanceGroupsScopedListWarningData struct {
17064	// Key: [Output Only] A key that provides more detail on the warning
17065	// being returned. For example, for warnings where there are no results
17066	// in a list request for a particular zone, this key might be scope and
17067	// the key value might be the zone name. Other examples might be a key
17068	// indicating a deprecated resource and a suggested replacement, or a
17069	// warning about invalid network settings (for example, if an instance
17070	// attempts to perform IP forwarding but is not enabled for IP
17071	// forwarding).
17072	Key string `json:"key,omitempty"`
17073
17074	// Value: [Output Only] A warning data value corresponding to the key.
17075	Value string `json:"value,omitempty"`
17076
17077	// ForceSendFields is a list of field names (e.g. "Key") to
17078	// unconditionally include in API requests. By default, fields with
17079	// empty values are omitted from API requests. However, any non-pointer,
17080	// non-interface field appearing in ForceSendFields will be sent to the
17081	// server regardless of whether the field is empty or not. This may be
17082	// used to include empty fields in Patch requests.
17083	ForceSendFields []string `json:"-"`
17084
17085	// NullFields is a list of field names (e.g. "Key") to include in API
17086	// requests with the JSON null value. By default, fields with empty
17087	// values are omitted from API requests. However, any field with an
17088	// empty value appearing in NullFields will be sent to the server as
17089	// null. It is an error if a field in this list has a non-empty value.
17090	// This may be used to include null fields in Patch requests.
17091	NullFields []string `json:"-"`
17092}
17093
17094func (s *InstanceGroupsScopedListWarningData) MarshalJSON() ([]byte, error) {
17095	type NoMethod InstanceGroupsScopedListWarningData
17096	raw := NoMethod(*s)
17097	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17098}
17099
17100type InstanceGroupsSetNamedPortsRequest struct {
17101	// Fingerprint: The fingerprint of the named ports information for this
17102	// instance group. Use this optional property to prevent conflicts when
17103	// multiple users change the named ports settings concurrently. Obtain
17104	// the fingerprint with the instanceGroups.get method. Then, include the
17105	// fingerprint in your request to ensure that you do not overwrite
17106	// changes that were applied from another concurrent request. A request
17107	// with an incorrect fingerprint will fail with error 412
17108	// conditionNotMet.
17109	Fingerprint string `json:"fingerprint,omitempty"`
17110
17111	// NamedPorts: The list of named ports to set for this instance group.
17112	NamedPorts []*NamedPort `json:"namedPorts,omitempty"`
17113
17114	// ForceSendFields is a list of field names (e.g. "Fingerprint") to
17115	// unconditionally include in API requests. By default, fields with
17116	// empty values are omitted from API requests. However, any non-pointer,
17117	// non-interface field appearing in ForceSendFields will be sent to the
17118	// server regardless of whether the field is empty or not. This may be
17119	// used to include empty fields in Patch requests.
17120	ForceSendFields []string `json:"-"`
17121
17122	// NullFields is a list of field names (e.g. "Fingerprint") to include
17123	// in API requests with the JSON null value. By default, fields with
17124	// empty values are omitted from API requests. However, any field with
17125	// an empty value appearing in NullFields will be sent to the server as
17126	// null. It is an error if a field in this list has a non-empty value.
17127	// This may be used to include null fields in Patch requests.
17128	NullFields []string `json:"-"`
17129}
17130
17131func (s *InstanceGroupsSetNamedPortsRequest) MarshalJSON() ([]byte, error) {
17132	type NoMethod InstanceGroupsSetNamedPortsRequest
17133	raw := NoMethod(*s)
17134	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17135}
17136
17137// InstanceList: Contains a list of instances.
17138type InstanceList struct {
17139	// Id: [Output Only] Unique identifier for the resource; defined by the
17140	// server.
17141	Id string `json:"id,omitempty"`
17142
17143	// Items: A list of Instance resources.
17144	Items []*Instance `json:"items,omitempty"`
17145
17146	// Kind: [Output Only] Type of resource. Always compute#instanceList for
17147	// lists of Instance resources.
17148	Kind string `json:"kind,omitempty"`
17149
17150	// NextPageToken: [Output Only] This token allows you to get the next
17151	// page of results for list requests. If the number of results is larger
17152	// than maxResults, use the nextPageToken as a value for the query
17153	// parameter pageToken in the next list request. Subsequent list
17154	// requests will have their own nextPageToken to continue paging through
17155	// the results.
17156	NextPageToken string `json:"nextPageToken,omitempty"`
17157
17158	// SelfLink: [Output Only] Server-defined URL for this resource.
17159	SelfLink string `json:"selfLink,omitempty"`
17160
17161	// Warning: [Output Only] Informational warning message.
17162	Warning *InstanceListWarning `json:"warning,omitempty"`
17163
17164	// ServerResponse contains the HTTP response code and headers from the
17165	// server.
17166	googleapi.ServerResponse `json:"-"`
17167
17168	// ForceSendFields is a list of field names (e.g. "Id") to
17169	// unconditionally include in API requests. By default, fields with
17170	// empty values are omitted from API requests. However, any non-pointer,
17171	// non-interface field appearing in ForceSendFields will be sent to the
17172	// server regardless of whether the field is empty or not. This may be
17173	// used to include empty fields in Patch requests.
17174	ForceSendFields []string `json:"-"`
17175
17176	// NullFields is a list of field names (e.g. "Id") to include in API
17177	// requests with the JSON null value. By default, fields with empty
17178	// values are omitted from API requests. However, any field with an
17179	// empty value appearing in NullFields will be sent to the server as
17180	// null. It is an error if a field in this list has a non-empty value.
17181	// This may be used to include null fields in Patch requests.
17182	NullFields []string `json:"-"`
17183}
17184
17185func (s *InstanceList) MarshalJSON() ([]byte, error) {
17186	type NoMethod InstanceList
17187	raw := NoMethod(*s)
17188	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17189}
17190
17191// InstanceListWarning: [Output Only] Informational warning message.
17192type InstanceListWarning struct {
17193	// Code: [Output Only] A warning code, if applicable. For example,
17194	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
17195	// the response.
17196	//
17197	// Possible values:
17198	//   "CLEANUP_FAILED"
17199	//   "DEPRECATED_RESOURCE_USED"
17200	//   "DEPRECATED_TYPE_USED"
17201	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
17202	//   "EXPERIMENTAL_TYPE_USED"
17203	//   "EXTERNAL_API_WARNING"
17204	//   "FIELD_VALUE_OVERRIDEN"
17205	//   "INJECTED_KERNELS_DEPRECATED"
17206	//   "MISSING_TYPE_DEPENDENCY"
17207	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
17208	//   "NEXT_HOP_CANNOT_IP_FORWARD"
17209	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
17210	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
17211	//   "NEXT_HOP_NOT_RUNNING"
17212	//   "NOT_CRITICAL_ERROR"
17213	//   "NO_RESULTS_ON_PAGE"
17214	//   "REQUIRED_TOS_AGREEMENT"
17215	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
17216	//   "RESOURCE_NOT_DELETED"
17217	//   "SCHEMA_VALIDATION_IGNORED"
17218	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
17219	//   "UNDECLARED_PROPERTIES"
17220	//   "UNREACHABLE"
17221	Code string `json:"code,omitempty"`
17222
17223	// Data: [Output Only] Metadata about this warning in key: value format.
17224	// For example:
17225	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
17226	Data []*InstanceListWarningData `json:"data,omitempty"`
17227
17228	// Message: [Output Only] A human-readable description of the warning
17229	// code.
17230	Message string `json:"message,omitempty"`
17231
17232	// ForceSendFields is a list of field names (e.g. "Code") to
17233	// unconditionally include in API requests. By default, fields with
17234	// empty values are omitted from API requests. However, any non-pointer,
17235	// non-interface field appearing in ForceSendFields will be sent to the
17236	// server regardless of whether the field is empty or not. This may be
17237	// used to include empty fields in Patch requests.
17238	ForceSendFields []string `json:"-"`
17239
17240	// NullFields is a list of field names (e.g. "Code") to include in API
17241	// requests with the JSON null value. By default, fields with empty
17242	// values are omitted from API requests. However, any field with an
17243	// empty value appearing in NullFields will be sent to the server as
17244	// null. It is an error if a field in this list has a non-empty value.
17245	// This may be used to include null fields in Patch requests.
17246	NullFields []string `json:"-"`
17247}
17248
17249func (s *InstanceListWarning) MarshalJSON() ([]byte, error) {
17250	type NoMethod InstanceListWarning
17251	raw := NoMethod(*s)
17252	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17253}
17254
17255type InstanceListWarningData struct {
17256	// Key: [Output Only] A key that provides more detail on the warning
17257	// being returned. For example, for warnings where there are no results
17258	// in a list request for a particular zone, this key might be scope and
17259	// the key value might be the zone name. Other examples might be a key
17260	// indicating a deprecated resource and a suggested replacement, or a
17261	// warning about invalid network settings (for example, if an instance
17262	// attempts to perform IP forwarding but is not enabled for IP
17263	// forwarding).
17264	Key string `json:"key,omitempty"`
17265
17266	// Value: [Output Only] A warning data value corresponding to the key.
17267	Value string `json:"value,omitempty"`
17268
17269	// ForceSendFields is a list of field names (e.g. "Key") to
17270	// unconditionally include in API requests. By default, fields with
17271	// empty values are omitted from API requests. However, any non-pointer,
17272	// non-interface field appearing in ForceSendFields will be sent to the
17273	// server regardless of whether the field is empty or not. This may be
17274	// used to include empty fields in Patch requests.
17275	ForceSendFields []string `json:"-"`
17276
17277	// NullFields is a list of field names (e.g. "Key") to include in API
17278	// requests with the JSON null value. By default, fields with empty
17279	// values are omitted from API requests. However, any field with an
17280	// empty value appearing in NullFields will be sent to the server as
17281	// null. It is an error if a field in this list has a non-empty value.
17282	// This may be used to include null fields in Patch requests.
17283	NullFields []string `json:"-"`
17284}
17285
17286func (s *InstanceListWarningData) MarshalJSON() ([]byte, error) {
17287	type NoMethod InstanceListWarningData
17288	raw := NoMethod(*s)
17289	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17290}
17291
17292// InstanceListReferrers: Contains a list of instance referrers.
17293type InstanceListReferrers struct {
17294	// Id: [Output Only] Unique identifier for the resource; defined by the
17295	// server.
17296	Id string `json:"id,omitempty"`
17297
17298	// Items: A list of Reference resources.
17299	Items []*Reference `json:"items,omitempty"`
17300
17301	// Kind: [Output Only] Type of resource. Always
17302	// compute#instanceListReferrers for lists of Instance referrers.
17303	Kind string `json:"kind,omitempty"`
17304
17305	// NextPageToken: [Output Only] This token allows you to get the next
17306	// page of results for list requests. If the number of results is larger
17307	// than maxResults, use the nextPageToken as a value for the query
17308	// parameter pageToken in the next list request. Subsequent list
17309	// requests will have their own nextPageToken to continue paging through
17310	// the results.
17311	NextPageToken string `json:"nextPageToken,omitempty"`
17312
17313	// SelfLink: [Output Only] Server-defined URL for this resource.
17314	SelfLink string `json:"selfLink,omitempty"`
17315
17316	// Warning: [Output Only] Informational warning message.
17317	Warning *InstanceListReferrersWarning `json:"warning,omitempty"`
17318
17319	// ServerResponse contains the HTTP response code and headers from the
17320	// server.
17321	googleapi.ServerResponse `json:"-"`
17322
17323	// ForceSendFields is a list of field names (e.g. "Id") to
17324	// unconditionally include in API requests. By default, fields with
17325	// empty values are omitted from API requests. However, any non-pointer,
17326	// non-interface field appearing in ForceSendFields will be sent to the
17327	// server regardless of whether the field is empty or not. This may be
17328	// used to include empty fields in Patch requests.
17329	ForceSendFields []string `json:"-"`
17330
17331	// NullFields is a list of field names (e.g. "Id") to include in API
17332	// requests with the JSON null value. By default, fields with empty
17333	// values are omitted from API requests. However, any field with an
17334	// empty value appearing in NullFields will be sent to the server as
17335	// null. It is an error if a field in this list has a non-empty value.
17336	// This may be used to include null fields in Patch requests.
17337	NullFields []string `json:"-"`
17338}
17339
17340func (s *InstanceListReferrers) MarshalJSON() ([]byte, error) {
17341	type NoMethod InstanceListReferrers
17342	raw := NoMethod(*s)
17343	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17344}
17345
17346// InstanceListReferrersWarning: [Output Only] Informational warning
17347// message.
17348type InstanceListReferrersWarning struct {
17349	// Code: [Output Only] A warning code, if applicable. For example,
17350	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
17351	// the response.
17352	//
17353	// Possible values:
17354	//   "CLEANUP_FAILED"
17355	//   "DEPRECATED_RESOURCE_USED"
17356	//   "DEPRECATED_TYPE_USED"
17357	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
17358	//   "EXPERIMENTAL_TYPE_USED"
17359	//   "EXTERNAL_API_WARNING"
17360	//   "FIELD_VALUE_OVERRIDEN"
17361	//   "INJECTED_KERNELS_DEPRECATED"
17362	//   "MISSING_TYPE_DEPENDENCY"
17363	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
17364	//   "NEXT_HOP_CANNOT_IP_FORWARD"
17365	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
17366	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
17367	//   "NEXT_HOP_NOT_RUNNING"
17368	//   "NOT_CRITICAL_ERROR"
17369	//   "NO_RESULTS_ON_PAGE"
17370	//   "REQUIRED_TOS_AGREEMENT"
17371	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
17372	//   "RESOURCE_NOT_DELETED"
17373	//   "SCHEMA_VALIDATION_IGNORED"
17374	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
17375	//   "UNDECLARED_PROPERTIES"
17376	//   "UNREACHABLE"
17377	Code string `json:"code,omitempty"`
17378
17379	// Data: [Output Only] Metadata about this warning in key: value format.
17380	// For example:
17381	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
17382	Data []*InstanceListReferrersWarningData `json:"data,omitempty"`
17383
17384	// Message: [Output Only] A human-readable description of the warning
17385	// code.
17386	Message string `json:"message,omitempty"`
17387
17388	// ForceSendFields is a list of field names (e.g. "Code") to
17389	// unconditionally include in API requests. By default, fields with
17390	// empty values are omitted from API requests. However, any non-pointer,
17391	// non-interface field appearing in ForceSendFields will be sent to the
17392	// server regardless of whether the field is empty or not. This may be
17393	// used to include empty fields in Patch requests.
17394	ForceSendFields []string `json:"-"`
17395
17396	// NullFields is a list of field names (e.g. "Code") to include in API
17397	// requests with the JSON null value. By default, fields with empty
17398	// values are omitted from API requests. However, any field with an
17399	// empty value appearing in NullFields will be sent to the server as
17400	// null. It is an error if a field in this list has a non-empty value.
17401	// This may be used to include null fields in Patch requests.
17402	NullFields []string `json:"-"`
17403}
17404
17405func (s *InstanceListReferrersWarning) MarshalJSON() ([]byte, error) {
17406	type NoMethod InstanceListReferrersWarning
17407	raw := NoMethod(*s)
17408	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17409}
17410
17411type InstanceListReferrersWarningData struct {
17412	// Key: [Output Only] A key that provides more detail on the warning
17413	// being returned. For example, for warnings where there are no results
17414	// in a list request for a particular zone, this key might be scope and
17415	// the key value might be the zone name. Other examples might be a key
17416	// indicating a deprecated resource and a suggested replacement, or a
17417	// warning about invalid network settings (for example, if an instance
17418	// attempts to perform IP forwarding but is not enabled for IP
17419	// forwarding).
17420	Key string `json:"key,omitempty"`
17421
17422	// Value: [Output Only] A warning data value corresponding to the key.
17423	Value string `json:"value,omitempty"`
17424
17425	// ForceSendFields is a list of field names (e.g. "Key") to
17426	// unconditionally include in API requests. By default, fields with
17427	// empty values are omitted from API requests. However, any non-pointer,
17428	// non-interface field appearing in ForceSendFields will be sent to the
17429	// server regardless of whether the field is empty or not. This may be
17430	// used to include empty fields in Patch requests.
17431	ForceSendFields []string `json:"-"`
17432
17433	// NullFields is a list of field names (e.g. "Key") to include in API
17434	// requests with the JSON null value. By default, fields with empty
17435	// values are omitted from API requests. However, any field with an
17436	// empty value appearing in NullFields will be sent to the server as
17437	// null. It is an error if a field in this list has a non-empty value.
17438	// This may be used to include null fields in Patch requests.
17439	NullFields []string `json:"-"`
17440}
17441
17442func (s *InstanceListReferrersWarningData) MarshalJSON() ([]byte, error) {
17443	type NoMethod InstanceListReferrersWarningData
17444	raw := NoMethod(*s)
17445	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17446}
17447
17448type InstanceManagedByIgmError struct {
17449	// Error: [Output Only] Contents of the error.
17450	Error *InstanceManagedByIgmErrorManagedInstanceError `json:"error,omitempty"`
17451
17452	// InstanceActionDetails: [Output Only] Details of the instance action
17453	// that triggered this error. May be null, if the error was not caused
17454	// by an action on an instance. This field is optional.
17455	InstanceActionDetails *InstanceManagedByIgmErrorInstanceActionDetails `json:"instanceActionDetails,omitempty"`
17456
17457	// Timestamp: [Output Only] The time that this error occurred. This
17458	// value is in RFC3339 text format.
17459	Timestamp string `json:"timestamp,omitempty"`
17460
17461	// ForceSendFields is a list of field names (e.g. "Error") to
17462	// unconditionally include in API requests. By default, fields with
17463	// empty values are omitted from API requests. However, any non-pointer,
17464	// non-interface field appearing in ForceSendFields will be sent to the
17465	// server regardless of whether the field is empty or not. This may be
17466	// used to include empty fields in Patch requests.
17467	ForceSendFields []string `json:"-"`
17468
17469	// NullFields is a list of field names (e.g. "Error") to include in API
17470	// requests with the JSON null value. By default, fields with empty
17471	// values are omitted from API requests. However, any field with an
17472	// empty value appearing in NullFields will be sent to the server as
17473	// null. It is an error if a field in this list has a non-empty value.
17474	// This may be used to include null fields in Patch requests.
17475	NullFields []string `json:"-"`
17476}
17477
17478func (s *InstanceManagedByIgmError) MarshalJSON() ([]byte, error) {
17479	type NoMethod InstanceManagedByIgmError
17480	raw := NoMethod(*s)
17481	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17482}
17483
17484type InstanceManagedByIgmErrorInstanceActionDetails struct {
17485	// Action: [Output Only] Action that managed instance group was
17486	// executing on the instance when the error occurred. Possible values:
17487	//
17488	// Possible values:
17489	//   "ABANDONING"
17490	//   "CREATING"
17491	//   "CREATING_WITHOUT_RETRIES"
17492	//   "DELETING"
17493	//   "NONE"
17494	//   "RECREATING"
17495	//   "REFRESHING"
17496	//   "RESTARTING"
17497	//   "VERIFYING"
17498	Action string `json:"action,omitempty"`
17499
17500	// Instance: [Output Only] The URL of the instance. The URL can be set
17501	// even if the instance has not yet been created.
17502	Instance string `json:"instance,omitempty"`
17503
17504	// Version: [Output Only] Version this instance was created from, or was
17505	// being created from, but the creation failed. Corresponds to one of
17506	// the versions that were set on the Instance Group Manager resource at
17507	// the time this instance was being created.
17508	Version *ManagedInstanceVersion `json:"version,omitempty"`
17509
17510	// ForceSendFields is a list of field names (e.g. "Action") to
17511	// unconditionally include in API requests. By default, fields with
17512	// empty values are omitted from API requests. However, any non-pointer,
17513	// non-interface field appearing in ForceSendFields will be sent to the
17514	// server regardless of whether the field is empty or not. This may be
17515	// used to include empty fields in Patch requests.
17516	ForceSendFields []string `json:"-"`
17517
17518	// NullFields is a list of field names (e.g. "Action") to include in API
17519	// requests with the JSON null value. By default, fields with empty
17520	// values are omitted from API requests. However, any field with an
17521	// empty value appearing in NullFields will be sent to the server as
17522	// null. It is an error if a field in this list has a non-empty value.
17523	// This may be used to include null fields in Patch requests.
17524	NullFields []string `json:"-"`
17525}
17526
17527func (s *InstanceManagedByIgmErrorInstanceActionDetails) MarshalJSON() ([]byte, error) {
17528	type NoMethod InstanceManagedByIgmErrorInstanceActionDetails
17529	raw := NoMethod(*s)
17530	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17531}
17532
17533type InstanceManagedByIgmErrorManagedInstanceError struct {
17534	// Code: [Output Only] Error code.
17535	Code string `json:"code,omitempty"`
17536
17537	// Message: [Output Only] Error message.
17538	Message string `json:"message,omitempty"`
17539
17540	// ForceSendFields is a list of field names (e.g. "Code") to
17541	// unconditionally include in API requests. By default, fields with
17542	// empty values are omitted from API requests. However, any non-pointer,
17543	// non-interface field appearing in ForceSendFields will be sent to the
17544	// server regardless of whether the field is empty or not. This may be
17545	// used to include empty fields in Patch requests.
17546	ForceSendFields []string `json:"-"`
17547
17548	// NullFields is a list of field names (e.g. "Code") to include in API
17549	// requests with the JSON null value. By default, fields with empty
17550	// values are omitted from API requests. However, any field with an
17551	// empty value appearing in NullFields will be sent to the server as
17552	// null. It is an error if a field in this list has a non-empty value.
17553	// This may be used to include null fields in Patch requests.
17554	NullFields []string `json:"-"`
17555}
17556
17557func (s *InstanceManagedByIgmErrorManagedInstanceError) MarshalJSON() ([]byte, error) {
17558	type NoMethod InstanceManagedByIgmErrorManagedInstanceError
17559	raw := NoMethod(*s)
17560	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17561}
17562
17563type InstanceMoveRequest struct {
17564	// DestinationZone: The URL of the destination zone to move the
17565	// instance. This can be a full or partial URL. For example, the
17566	// following are all valid URLs to a zone:
17567	// - https://www.googleapis.com/compute/v1/projects/project/zones/zone
17568	//
17569	// - projects/project/zones/zone
17570	// - zones/zone
17571	DestinationZone string `json:"destinationZone,omitempty"`
17572
17573	// TargetInstance: The URL of the target instance to move. This can be a
17574	// full or partial URL. For example, the following are all valid URLs to
17575	// an instance:
17576	// -
17577	// https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/instance
17578	// - projects/project/zones/zone/instances/instance
17579	// - zones/zone/instances/instance
17580	TargetInstance string `json:"targetInstance,omitempty"`
17581
17582	// ForceSendFields is a list of field names (e.g. "DestinationZone") to
17583	// unconditionally include in API requests. By default, fields with
17584	// empty values are omitted from API requests. However, any non-pointer,
17585	// non-interface field appearing in ForceSendFields will be sent to the
17586	// server regardless of whether the field is empty or not. This may be
17587	// used to include empty fields in Patch requests.
17588	ForceSendFields []string `json:"-"`
17589
17590	// NullFields is a list of field names (e.g. "DestinationZone") to
17591	// include in API requests with the JSON null value. By default, fields
17592	// with empty values are omitted from API requests. However, any field
17593	// with an empty value appearing in NullFields will be sent to the
17594	// server as null. It is an error if a field in this list has a
17595	// non-empty value. This may be used to include null fields in Patch
17596	// requests.
17597	NullFields []string `json:"-"`
17598}
17599
17600func (s *InstanceMoveRequest) MarshalJSON() ([]byte, error) {
17601	type NoMethod InstanceMoveRequest
17602	raw := NoMethod(*s)
17603	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17604}
17605
17606type InstanceProperties struct {
17607	// CanIpForward: Enables instances created based on this template to
17608	// send packets with source IP addresses other than their own and
17609	// receive packets with destination IP addresses other than their own.
17610	// If these instances will be used as an IP gateway or it will be set as
17611	// the next-hop in a Route resource, specify true. If unsure, leave this
17612	// set to false. See the Enable IP forwarding documentation for more
17613	// information.
17614	CanIpForward bool `json:"canIpForward,omitempty"`
17615
17616	// ConfidentialInstanceConfig: Specifies the Confidential Instance
17617	// options.
17618	ConfidentialInstanceConfig *ConfidentialInstanceConfig `json:"confidentialInstanceConfig,omitempty"`
17619
17620	// Description: An optional text description for the instances that are
17621	// created from this instance template.
17622	Description string `json:"description,omitempty"`
17623
17624	// Disks: An array of disks that are associated with the instances that
17625	// are created from this template.
17626	Disks []*AttachedDisk `json:"disks,omitempty"`
17627
17628	// DisplayDevice: Display Device properties to enable support for remote
17629	// display products like: Teradici, VNC and TeamViewer
17630	DisplayDevice *DisplayDevice `json:"displayDevice,omitempty"`
17631
17632	// GuestAccelerators: A list of guest accelerator cards' type and count
17633	// to use for instances created from the instance template.
17634	GuestAccelerators []*AcceleratorConfig `json:"guestAccelerators,omitempty"`
17635
17636	// Labels: Labels to apply to instances that are created from this
17637	// template.
17638	Labels map[string]string `json:"labels,omitempty"`
17639
17640	// MachineType: The machine type to use for instances that are created
17641	// from this template.
17642	MachineType string `json:"machineType,omitempty"`
17643
17644	// Metadata: The metadata key/value pairs to assign to instances that
17645	// are created from this template. These pairs can consist of custom
17646	// metadata or predefined keys. See Project and instance metadata for
17647	// more information.
17648	Metadata *Metadata `json:"metadata,omitempty"`
17649
17650	// MinCpuPlatform: Minimum cpu/platform to be used by this instance. The
17651	// instance may be scheduled on the specified or newer cpu/platform.
17652	// Applicable values are the friendly names of CPU platforms, such as
17653	// minCpuPlatform: "Intel Haswell" or minCpuPlatform: "Intel Sandy
17654	// Bridge". For more information, read Specifying a Minimum CPU
17655	// Platform.
17656	MinCpuPlatform string `json:"minCpuPlatform,omitempty"`
17657
17658	// NetworkInterfaces: An array of network access configurations for this
17659	// interface.
17660	NetworkInterfaces []*NetworkInterface `json:"networkInterfaces,omitempty"`
17661
17662	// PostKeyRevocationActionType: Specifies whether this instance will be
17663	// shut down on key revocation.
17664	//
17665	// Possible values:
17666	//   "NOOP"
17667	//   "SHUTDOWN"
17668	//   "UNSPECIFIED"
17669	PostKeyRevocationActionType string `json:"postKeyRevocationActionType,omitempty"`
17670
17671	// ReservationAffinity: Specifies the reservations that this instance
17672	// can consume from.
17673	ReservationAffinity *ReservationAffinity `json:"reservationAffinity,omitempty"`
17674
17675	// Scheduling: Specifies the scheduling options for the instances that
17676	// are created from this template.
17677	Scheduling *Scheduling `json:"scheduling,omitempty"`
17678
17679	// ServiceAccounts: A list of service accounts with specified scopes.
17680	// Access tokens for these service accounts are available to the
17681	// instances that are created from this template. Use metadata queries
17682	// to obtain the access tokens for these instances.
17683	ServiceAccounts []*ServiceAccount `json:"serviceAccounts,omitempty"`
17684
17685	ShieldedInstanceConfig *ShieldedInstanceConfig `json:"shieldedInstanceConfig,omitempty"`
17686
17687	// ShieldedVmConfig: Specifies the Shielded VM options for the instances
17688	// that are created from this template.
17689	ShieldedVmConfig *ShieldedVmConfig `json:"shieldedVmConfig,omitempty"`
17690
17691	// Tags: A list of tags to apply to the instances that are created from
17692	// this template. The tags identify valid sources or targets for network
17693	// firewalls. The setTags method can modify this list of tags. Each tag
17694	// within the list must comply with RFC1035.
17695	Tags *Tags `json:"tags,omitempty"`
17696
17697	// ForceSendFields is a list of field names (e.g. "CanIpForward") to
17698	// unconditionally include in API requests. By default, fields with
17699	// empty values are omitted from API requests. However, any non-pointer,
17700	// non-interface field appearing in ForceSendFields will be sent to the
17701	// server regardless of whether the field is empty or not. This may be
17702	// used to include empty fields in Patch requests.
17703	ForceSendFields []string `json:"-"`
17704
17705	// NullFields is a list of field names (e.g. "CanIpForward") to include
17706	// in API requests with the JSON null value. By default, fields with
17707	// empty values are omitted from API requests. However, any field with
17708	// an empty value appearing in NullFields will be sent to the server as
17709	// null. It is an error if a field in this list has a non-empty value.
17710	// This may be used to include null fields in Patch requests.
17711	NullFields []string `json:"-"`
17712}
17713
17714func (s *InstanceProperties) MarshalJSON() ([]byte, error) {
17715	type NoMethod InstanceProperties
17716	raw := NoMethod(*s)
17717	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17718}
17719
17720type InstanceReference struct {
17721	// Instance: The URL for a specific instance.
17722	Instance string `json:"instance,omitempty"`
17723
17724	// ForceSendFields is a list of field names (e.g. "Instance") to
17725	// unconditionally include in API requests. By default, fields with
17726	// empty values are omitted from API requests. However, any non-pointer,
17727	// non-interface field appearing in ForceSendFields will be sent to the
17728	// server regardless of whether the field is empty or not. This may be
17729	// used to include empty fields in Patch requests.
17730	ForceSendFields []string `json:"-"`
17731
17732	// NullFields is a list of field names (e.g. "Instance") to include in
17733	// API requests with the JSON null value. By default, fields with empty
17734	// values are omitted from API requests. However, any field with an
17735	// empty value appearing in NullFields will be sent to the server as
17736	// null. It is an error if a field in this list has a non-empty value.
17737	// This may be used to include null fields in Patch requests.
17738	NullFields []string `json:"-"`
17739}
17740
17741func (s *InstanceReference) MarshalJSON() ([]byte, error) {
17742	type NoMethod InstanceReference
17743	raw := NoMethod(*s)
17744	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17745}
17746
17747// InstanceTemplate: Represents an Instance Template resource.
17748//
17749// You can use instance templates to create VM instances and managed
17750// instance groups. For more information, read Instance Templates. (==
17751// resource_for beta.instanceTemplates ==) (== resource_for
17752// v1.instanceTemplates ==)
17753type InstanceTemplate struct {
17754	// CreationTimestamp: [Output Only] The creation timestamp for this
17755	// instance template in RFC3339 text format.
17756	CreationTimestamp string `json:"creationTimestamp,omitempty"`
17757
17758	// Description: An optional description of this resource. Provide this
17759	// property when you create the resource.
17760	Description string `json:"description,omitempty"`
17761
17762	// Id: [Output Only] A unique identifier for this instance template. The
17763	// server defines this identifier.
17764	Id uint64 `json:"id,omitempty,string"`
17765
17766	// Kind: [Output Only] The resource type, which is always
17767	// compute#instanceTemplate for instance templates.
17768	Kind string `json:"kind,omitempty"`
17769
17770	// Name: Name of the resource; provided by the client when the resource
17771	// is created. The name must be 1-63 characters long, and comply with
17772	// RFC1035. Specifically, the name must be 1-63 characters long and
17773	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
17774	// the first character must be a lowercase letter, and all following
17775	// characters must be a dash, lowercase letter, or digit, except the
17776	// last character, which cannot be a dash.
17777	Name string `json:"name,omitempty"`
17778
17779	// Properties: The instance properties for this instance template.
17780	Properties *InstanceProperties `json:"properties,omitempty"`
17781
17782	// SelfLink: [Output Only] The URL for this instance template. The
17783	// server defines this URL.
17784	SelfLink string `json:"selfLink,omitempty"`
17785
17786	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
17787	// with the resource id.
17788	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
17789
17790	// SourceInstance: The source instance used to create the template. You
17791	// can provide this as a partial or full URL to the resource. For
17792	// example, the following are valid values:
17793	// -
17794	// https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/instance
17795	// - projects/project/zones/zone/instances/instance
17796	SourceInstance string `json:"sourceInstance,omitempty"`
17797
17798	// SourceInstanceParams: The source instance params to use to create
17799	// this instance template.
17800	SourceInstanceParams *SourceInstanceParams `json:"sourceInstanceParams,omitempty"`
17801
17802	// ServerResponse contains the HTTP response code and headers from the
17803	// server.
17804	googleapi.ServerResponse `json:"-"`
17805
17806	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
17807	// to unconditionally include in API requests. By default, fields with
17808	// empty values are omitted from API requests. However, any non-pointer,
17809	// non-interface field appearing in ForceSendFields will be sent to the
17810	// server regardless of whether the field is empty or not. This may be
17811	// used to include empty fields in Patch requests.
17812	ForceSendFields []string `json:"-"`
17813
17814	// NullFields is a list of field names (e.g. "CreationTimestamp") to
17815	// include in API requests with the JSON null value. By default, fields
17816	// with empty values are omitted from API requests. However, any field
17817	// with an empty value appearing in NullFields will be sent to the
17818	// server as null. It is an error if a field in this list has a
17819	// non-empty value. This may be used to include null fields in Patch
17820	// requests.
17821	NullFields []string `json:"-"`
17822}
17823
17824func (s *InstanceTemplate) MarshalJSON() ([]byte, error) {
17825	type NoMethod InstanceTemplate
17826	raw := NoMethod(*s)
17827	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17828}
17829
17830// InstanceTemplateList: A list of instance templates.
17831type InstanceTemplateList struct {
17832	// Id: [Output Only] Unique identifier for the resource; defined by the
17833	// server.
17834	Id string `json:"id,omitempty"`
17835
17836	// Items: A list of InstanceTemplate resources.
17837	Items []*InstanceTemplate `json:"items,omitempty"`
17838
17839	// Kind: [Output Only] The resource type, which is always
17840	// compute#instanceTemplatesListResponse for instance template lists.
17841	Kind string `json:"kind,omitempty"`
17842
17843	// NextPageToken: [Output Only] This token allows you to get the next
17844	// page of results for list requests. If the number of results is larger
17845	// than maxResults, use the nextPageToken as a value for the query
17846	// parameter pageToken in the next list request. Subsequent list
17847	// requests will have their own nextPageToken to continue paging through
17848	// the results.
17849	NextPageToken string `json:"nextPageToken,omitempty"`
17850
17851	// SelfLink: [Output Only] Server-defined URL for this resource.
17852	SelfLink string `json:"selfLink,omitempty"`
17853
17854	// Warning: [Output Only] Informational warning message.
17855	Warning *InstanceTemplateListWarning `json:"warning,omitempty"`
17856
17857	// ServerResponse contains the HTTP response code and headers from the
17858	// server.
17859	googleapi.ServerResponse `json:"-"`
17860
17861	// ForceSendFields is a list of field names (e.g. "Id") to
17862	// unconditionally include in API requests. By default, fields with
17863	// empty values are omitted from API requests. However, any non-pointer,
17864	// non-interface field appearing in ForceSendFields will be sent to the
17865	// server regardless of whether the field is empty or not. This may be
17866	// used to include empty fields in Patch requests.
17867	ForceSendFields []string `json:"-"`
17868
17869	// NullFields is a list of field names (e.g. "Id") to include in API
17870	// requests with the JSON null value. By default, fields with empty
17871	// values are omitted from API requests. However, any field with an
17872	// empty value appearing in NullFields will be sent to the server as
17873	// null. It is an error if a field in this list has a non-empty value.
17874	// This may be used to include null fields in Patch requests.
17875	NullFields []string `json:"-"`
17876}
17877
17878func (s *InstanceTemplateList) MarshalJSON() ([]byte, error) {
17879	type NoMethod InstanceTemplateList
17880	raw := NoMethod(*s)
17881	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17882}
17883
17884// InstanceTemplateListWarning: [Output Only] Informational warning
17885// message.
17886type InstanceTemplateListWarning struct {
17887	// Code: [Output Only] A warning code, if applicable. For example,
17888	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
17889	// the response.
17890	//
17891	// Possible values:
17892	//   "CLEANUP_FAILED"
17893	//   "DEPRECATED_RESOURCE_USED"
17894	//   "DEPRECATED_TYPE_USED"
17895	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
17896	//   "EXPERIMENTAL_TYPE_USED"
17897	//   "EXTERNAL_API_WARNING"
17898	//   "FIELD_VALUE_OVERRIDEN"
17899	//   "INJECTED_KERNELS_DEPRECATED"
17900	//   "MISSING_TYPE_DEPENDENCY"
17901	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
17902	//   "NEXT_HOP_CANNOT_IP_FORWARD"
17903	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
17904	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
17905	//   "NEXT_HOP_NOT_RUNNING"
17906	//   "NOT_CRITICAL_ERROR"
17907	//   "NO_RESULTS_ON_PAGE"
17908	//   "REQUIRED_TOS_AGREEMENT"
17909	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
17910	//   "RESOURCE_NOT_DELETED"
17911	//   "SCHEMA_VALIDATION_IGNORED"
17912	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
17913	//   "UNDECLARED_PROPERTIES"
17914	//   "UNREACHABLE"
17915	Code string `json:"code,omitempty"`
17916
17917	// Data: [Output Only] Metadata about this warning in key: value format.
17918	// For example:
17919	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
17920	Data []*InstanceTemplateListWarningData `json:"data,omitempty"`
17921
17922	// Message: [Output Only] A human-readable description of the warning
17923	// code.
17924	Message string `json:"message,omitempty"`
17925
17926	// ForceSendFields is a list of field names (e.g. "Code") to
17927	// unconditionally include in API requests. By default, fields with
17928	// empty values are omitted from API requests. However, any non-pointer,
17929	// non-interface field appearing in ForceSendFields will be sent to the
17930	// server regardless of whether the field is empty or not. This may be
17931	// used to include empty fields in Patch requests.
17932	ForceSendFields []string `json:"-"`
17933
17934	// NullFields is a list of field names (e.g. "Code") to include in API
17935	// requests with the JSON null value. By default, fields with empty
17936	// values are omitted from API requests. However, any field with an
17937	// empty value appearing in NullFields will be sent to the server as
17938	// null. It is an error if a field in this list has a non-empty value.
17939	// This may be used to include null fields in Patch requests.
17940	NullFields []string `json:"-"`
17941}
17942
17943func (s *InstanceTemplateListWarning) MarshalJSON() ([]byte, error) {
17944	type NoMethod InstanceTemplateListWarning
17945	raw := NoMethod(*s)
17946	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17947}
17948
17949type InstanceTemplateListWarningData struct {
17950	// Key: [Output Only] A key that provides more detail on the warning
17951	// being returned. For example, for warnings where there are no results
17952	// in a list request for a particular zone, this key might be scope and
17953	// the key value might be the zone name. Other examples might be a key
17954	// indicating a deprecated resource and a suggested replacement, or a
17955	// warning about invalid network settings (for example, if an instance
17956	// attempts to perform IP forwarding but is not enabled for IP
17957	// forwarding).
17958	Key string `json:"key,omitempty"`
17959
17960	// Value: [Output Only] A warning data value corresponding to the key.
17961	Value string `json:"value,omitempty"`
17962
17963	// ForceSendFields is a list of field names (e.g. "Key") to
17964	// unconditionally include in API requests. By default, fields with
17965	// empty values are omitted from API requests. However, any non-pointer,
17966	// non-interface field appearing in ForceSendFields will be sent to the
17967	// server regardless of whether the field is empty or not. This may be
17968	// used to include empty fields in Patch requests.
17969	ForceSendFields []string `json:"-"`
17970
17971	// NullFields is a list of field names (e.g. "Key") to include in API
17972	// requests with the JSON null value. By default, fields with empty
17973	// values are omitted from API requests. However, any field with an
17974	// empty value appearing in NullFields will be sent to the server as
17975	// null. It is an error if a field in this list has a non-empty value.
17976	// This may be used to include null fields in Patch requests.
17977	NullFields []string `json:"-"`
17978}
17979
17980func (s *InstanceTemplateListWarningData) MarshalJSON() ([]byte, error) {
17981	type NoMethod InstanceTemplateListWarningData
17982	raw := NoMethod(*s)
17983	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17984}
17985
17986type InstanceWithNamedPorts struct {
17987	// Instance: [Output Only] The URL of the instance.
17988	Instance string `json:"instance,omitempty"`
17989
17990	// NamedPorts: [Output Only] The named ports that belong to this
17991	// instance group.
17992	NamedPorts []*NamedPort `json:"namedPorts,omitempty"`
17993
17994	// Status: [Output Only] The status of the instance.
17995	//
17996	// Possible values:
17997	//   "PROVISIONING"
17998	//   "REPAIRING"
17999	//   "RUNNING"
18000	//   "STAGING"
18001	//   "STOPPED"
18002	//   "STOPPING"
18003	//   "SUSPENDED"
18004	//   "SUSPENDING"
18005	//   "TERMINATED"
18006	Status string `json:"status,omitempty"`
18007
18008	// ForceSendFields is a list of field names (e.g. "Instance") to
18009	// unconditionally include in API requests. By default, fields with
18010	// empty values are omitted from API requests. However, any non-pointer,
18011	// non-interface field appearing in ForceSendFields will be sent to the
18012	// server regardless of whether the field is empty or not. This may be
18013	// used to include empty fields in Patch requests.
18014	ForceSendFields []string `json:"-"`
18015
18016	// NullFields is a list of field names (e.g. "Instance") to include in
18017	// API requests with the JSON null value. By default, fields with empty
18018	// values are omitted from API requests. However, any field with an
18019	// empty value appearing in NullFields will be sent to the server as
18020	// null. It is an error if a field in this list has a non-empty value.
18021	// This may be used to include null fields in Patch requests.
18022	NullFields []string `json:"-"`
18023}
18024
18025func (s *InstanceWithNamedPorts) MarshalJSON() ([]byte, error) {
18026	type NoMethod InstanceWithNamedPorts
18027	raw := NoMethod(*s)
18028	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18029}
18030
18031type InstancesAddResourcePoliciesRequest struct {
18032	// ResourcePolicies: Resource policies to be added to this instance.
18033	ResourcePolicies []string `json:"resourcePolicies,omitempty"`
18034
18035	// ForceSendFields is a list of field names (e.g. "ResourcePolicies") to
18036	// unconditionally include in API requests. By default, fields with
18037	// empty values are omitted from API requests. However, any non-pointer,
18038	// non-interface field appearing in ForceSendFields will be sent to the
18039	// server regardless of whether the field is empty or not. This may be
18040	// used to include empty fields in Patch requests.
18041	ForceSendFields []string `json:"-"`
18042
18043	// NullFields is a list of field names (e.g. "ResourcePolicies") to
18044	// include in API requests with the JSON null value. By default, fields
18045	// with empty values are omitted from API requests. However, any field
18046	// with an empty value appearing in NullFields will be sent to the
18047	// server as null. It is an error if a field in this list has a
18048	// non-empty value. This may be used to include null fields in Patch
18049	// requests.
18050	NullFields []string `json:"-"`
18051}
18052
18053func (s *InstancesAddResourcePoliciesRequest) MarshalJSON() ([]byte, error) {
18054	type NoMethod InstancesAddResourcePoliciesRequest
18055	raw := NoMethod(*s)
18056	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18057}
18058
18059type InstancesGetEffectiveFirewallsResponse struct {
18060	// Firewalls: Effective firewalls on the instance.
18061	Firewalls []*Firewall `json:"firewalls,omitempty"`
18062
18063	// OrganizationFirewalls: Effective firewalls from organization
18064	// policies.
18065	OrganizationFirewalls []*InstancesGetEffectiveFirewallsResponseOrganizationFirewallPolicy `json:"organizationFirewalls,omitempty"`
18066
18067	// ServerResponse contains the HTTP response code and headers from the
18068	// server.
18069	googleapi.ServerResponse `json:"-"`
18070
18071	// ForceSendFields is a list of field names (e.g. "Firewalls") to
18072	// unconditionally include in API requests. By default, fields with
18073	// empty values are omitted from API requests. However, any non-pointer,
18074	// non-interface field appearing in ForceSendFields will be sent to the
18075	// server regardless of whether the field is empty or not. This may be
18076	// used to include empty fields in Patch requests.
18077	ForceSendFields []string `json:"-"`
18078
18079	// NullFields is a list of field names (e.g. "Firewalls") to include in
18080	// API requests with the JSON null value. By default, fields with empty
18081	// values are omitted from API requests. However, any field with an
18082	// empty value appearing in NullFields will be sent to the server as
18083	// null. It is an error if a field in this list has a non-empty value.
18084	// This may be used to include null fields in Patch requests.
18085	NullFields []string `json:"-"`
18086}
18087
18088func (s *InstancesGetEffectiveFirewallsResponse) MarshalJSON() ([]byte, error) {
18089	type NoMethod InstancesGetEffectiveFirewallsResponse
18090	raw := NoMethod(*s)
18091	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18092}
18093
18094// InstancesGetEffectiveFirewallsResponseOrganizationFirewallPolicy: A
18095// pruned SecurityPolicy containing ID and any applicable firewall
18096// rules.
18097type InstancesGetEffectiveFirewallsResponseOrganizationFirewallPolicy struct {
18098	// Id: The unique identifier for the security policy. This identifier is
18099	// defined by the server.
18100	Id uint64 `json:"id,omitempty,string"`
18101
18102	// Rules: The rules that apply to the network.
18103	Rules []*SecurityPolicyRule `json:"rules,omitempty"`
18104
18105	// ForceSendFields is a list of field names (e.g. "Id") to
18106	// unconditionally include in API requests. By default, fields with
18107	// empty values are omitted from API requests. However, any non-pointer,
18108	// non-interface field appearing in ForceSendFields will be sent to the
18109	// server regardless of whether the field is empty or not. This may be
18110	// used to include empty fields in Patch requests.
18111	ForceSendFields []string `json:"-"`
18112
18113	// NullFields is a list of field names (e.g. "Id") to include in API
18114	// requests with the JSON null value. By default, fields with empty
18115	// values are omitted from API requests. However, any field with an
18116	// empty value appearing in NullFields will be sent to the server as
18117	// null. It is an error if a field in this list has a non-empty value.
18118	// This may be used to include null fields in Patch requests.
18119	NullFields []string `json:"-"`
18120}
18121
18122func (s *InstancesGetEffectiveFirewallsResponseOrganizationFirewallPolicy) MarshalJSON() ([]byte, error) {
18123	type NoMethod InstancesGetEffectiveFirewallsResponseOrganizationFirewallPolicy
18124	raw := NoMethod(*s)
18125	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18126}
18127
18128type InstancesRemoveResourcePoliciesRequest struct {
18129	// ResourcePolicies: Resource policies to be removed from this instance.
18130	ResourcePolicies []string `json:"resourcePolicies,omitempty"`
18131
18132	// ForceSendFields is a list of field names (e.g. "ResourcePolicies") to
18133	// unconditionally include in API requests. By default, fields with
18134	// empty values are omitted from API requests. However, any non-pointer,
18135	// non-interface field appearing in ForceSendFields will be sent to the
18136	// server regardless of whether the field is empty or not. This may be
18137	// used to include empty fields in Patch requests.
18138	ForceSendFields []string `json:"-"`
18139
18140	// NullFields is a list of field names (e.g. "ResourcePolicies") to
18141	// include in API requests with the JSON null value. By default, fields
18142	// with empty values are omitted from API requests. However, any field
18143	// with an empty value appearing in NullFields will be sent to the
18144	// server as null. It is an error if a field in this list has a
18145	// non-empty value. This may be used to include null fields in Patch
18146	// requests.
18147	NullFields []string `json:"-"`
18148}
18149
18150func (s *InstancesRemoveResourcePoliciesRequest) MarshalJSON() ([]byte, error) {
18151	type NoMethod InstancesRemoveResourcePoliciesRequest
18152	raw := NoMethod(*s)
18153	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18154}
18155
18156type InstancesResumeRequest struct {
18157	// Disks: Array of disks associated with this instance that are
18158	// protected with a customer-supplied encryption key.
18159	//
18160	// In order to resume the instance, the disk url and its corresponding
18161	// key must be provided.
18162	//
18163	// If the disk is not protected with a customer-supplied encryption key
18164	// it should not be specified.
18165	Disks []*CustomerEncryptionKeyProtectedDisk `json:"disks,omitempty"`
18166
18167	// InstanceEncryptionKey: Decrypts data associated with an instance that
18168	// is protected with a customer-supplied encryption key.
18169	//
18170	// If the instance you are starting is protected with a
18171	// customer-supplied encryption key, the correct key must be provided
18172	// otherwise the instance resume will not succeed.
18173	InstanceEncryptionKey *CustomerEncryptionKey `json:"instanceEncryptionKey,omitempty"`
18174
18175	// ForceSendFields is a list of field names (e.g. "Disks") to
18176	// unconditionally include in API requests. By default, fields with
18177	// empty values are omitted from API requests. However, any non-pointer,
18178	// non-interface field appearing in ForceSendFields will be sent to the
18179	// server regardless of whether the field is empty or not. This may be
18180	// used to include empty fields in Patch requests.
18181	ForceSendFields []string `json:"-"`
18182
18183	// NullFields is a list of field names (e.g. "Disks") to include in API
18184	// requests with the JSON null value. By default, fields with empty
18185	// values are omitted from API requests. However, any field with an
18186	// empty value appearing in NullFields will be sent to the server as
18187	// null. It is an error if a field in this list has a non-empty value.
18188	// This may be used to include null fields in Patch requests.
18189	NullFields []string `json:"-"`
18190}
18191
18192func (s *InstancesResumeRequest) MarshalJSON() ([]byte, error) {
18193	type NoMethod InstancesResumeRequest
18194	raw := NoMethod(*s)
18195	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18196}
18197
18198type InstancesScopedList struct {
18199	// Instances: [Output Only] A list of instances contained in this scope.
18200	Instances []*Instance `json:"instances,omitempty"`
18201
18202	// Warning: [Output Only] Informational warning which replaces the list
18203	// of instances when the list is empty.
18204	Warning *InstancesScopedListWarning `json:"warning,omitempty"`
18205
18206	// ForceSendFields is a list of field names (e.g. "Instances") to
18207	// unconditionally include in API requests. By default, fields with
18208	// empty values are omitted from API requests. However, any non-pointer,
18209	// non-interface field appearing in ForceSendFields will be sent to the
18210	// server regardless of whether the field is empty or not. This may be
18211	// used to include empty fields in Patch requests.
18212	ForceSendFields []string `json:"-"`
18213
18214	// NullFields is a list of field names (e.g. "Instances") to include in
18215	// API requests with the JSON null value. By default, fields with empty
18216	// values are omitted from API requests. However, any field with an
18217	// empty value appearing in NullFields will be sent to the server as
18218	// null. It is an error if a field in this list has a non-empty value.
18219	// This may be used to include null fields in Patch requests.
18220	NullFields []string `json:"-"`
18221}
18222
18223func (s *InstancesScopedList) MarshalJSON() ([]byte, error) {
18224	type NoMethod InstancesScopedList
18225	raw := NoMethod(*s)
18226	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18227}
18228
18229// InstancesScopedListWarning: [Output Only] Informational warning which
18230// replaces the list of instances when the list is empty.
18231type InstancesScopedListWarning struct {
18232	// Code: [Output Only] A warning code, if applicable. For example,
18233	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
18234	// the response.
18235	//
18236	// Possible values:
18237	//   "CLEANUP_FAILED"
18238	//   "DEPRECATED_RESOURCE_USED"
18239	//   "DEPRECATED_TYPE_USED"
18240	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
18241	//   "EXPERIMENTAL_TYPE_USED"
18242	//   "EXTERNAL_API_WARNING"
18243	//   "FIELD_VALUE_OVERRIDEN"
18244	//   "INJECTED_KERNELS_DEPRECATED"
18245	//   "MISSING_TYPE_DEPENDENCY"
18246	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
18247	//   "NEXT_HOP_CANNOT_IP_FORWARD"
18248	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
18249	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
18250	//   "NEXT_HOP_NOT_RUNNING"
18251	//   "NOT_CRITICAL_ERROR"
18252	//   "NO_RESULTS_ON_PAGE"
18253	//   "REQUIRED_TOS_AGREEMENT"
18254	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
18255	//   "RESOURCE_NOT_DELETED"
18256	//   "SCHEMA_VALIDATION_IGNORED"
18257	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
18258	//   "UNDECLARED_PROPERTIES"
18259	//   "UNREACHABLE"
18260	Code string `json:"code,omitempty"`
18261
18262	// Data: [Output Only] Metadata about this warning in key: value format.
18263	// For example:
18264	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
18265	Data []*InstancesScopedListWarningData `json:"data,omitempty"`
18266
18267	// Message: [Output Only] A human-readable description of the warning
18268	// code.
18269	Message string `json:"message,omitempty"`
18270
18271	// ForceSendFields is a list of field names (e.g. "Code") to
18272	// unconditionally include in API requests. By default, fields with
18273	// empty values are omitted from API requests. However, any non-pointer,
18274	// non-interface field appearing in ForceSendFields will be sent to the
18275	// server regardless of whether the field is empty or not. This may be
18276	// used to include empty fields in Patch requests.
18277	ForceSendFields []string `json:"-"`
18278
18279	// NullFields is a list of field names (e.g. "Code") to include in API
18280	// requests with the JSON null value. By default, fields with empty
18281	// values are omitted from API requests. However, any field with an
18282	// empty value appearing in NullFields will be sent to the server as
18283	// null. It is an error if a field in this list has a non-empty value.
18284	// This may be used to include null fields in Patch requests.
18285	NullFields []string `json:"-"`
18286}
18287
18288func (s *InstancesScopedListWarning) MarshalJSON() ([]byte, error) {
18289	type NoMethod InstancesScopedListWarning
18290	raw := NoMethod(*s)
18291	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18292}
18293
18294type InstancesScopedListWarningData struct {
18295	// Key: [Output Only] A key that provides more detail on the warning
18296	// being returned. For example, for warnings where there are no results
18297	// in a list request for a particular zone, this key might be scope and
18298	// the key value might be the zone name. Other examples might be a key
18299	// indicating a deprecated resource and a suggested replacement, or a
18300	// warning about invalid network settings (for example, if an instance
18301	// attempts to perform IP forwarding but is not enabled for IP
18302	// forwarding).
18303	Key string `json:"key,omitempty"`
18304
18305	// Value: [Output Only] A warning data value corresponding to the key.
18306	Value string `json:"value,omitempty"`
18307
18308	// ForceSendFields is a list of field names (e.g. "Key") to
18309	// unconditionally include in API requests. By default, fields with
18310	// empty values are omitted from API requests. However, any non-pointer,
18311	// non-interface field appearing in ForceSendFields will be sent to the
18312	// server regardless of whether the field is empty or not. This may be
18313	// used to include empty fields in Patch requests.
18314	ForceSendFields []string `json:"-"`
18315
18316	// NullFields is a list of field names (e.g. "Key") to include in API
18317	// requests with the JSON null value. By default, fields with empty
18318	// values are omitted from API requests. However, any field with an
18319	// empty value appearing in NullFields will be sent to the server as
18320	// null. It is an error if a field in this list has a non-empty value.
18321	// This may be used to include null fields in Patch requests.
18322	NullFields []string `json:"-"`
18323}
18324
18325func (s *InstancesScopedListWarningData) MarshalJSON() ([]byte, error) {
18326	type NoMethod InstancesScopedListWarningData
18327	raw := NoMethod(*s)
18328	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18329}
18330
18331type InstancesSetLabelsRequest struct {
18332	// LabelFingerprint: Fingerprint of the previous set of labels for this
18333	// resource, used to prevent conflicts. Provide the latest fingerprint
18334	// value when making a request to add or change labels.
18335	LabelFingerprint string `json:"labelFingerprint,omitempty"`
18336
18337	Labels map[string]string `json:"labels,omitempty"`
18338
18339	// ForceSendFields is a list of field names (e.g. "LabelFingerprint") to
18340	// unconditionally include in API requests. By default, fields with
18341	// empty values are omitted from API requests. However, any non-pointer,
18342	// non-interface field appearing in ForceSendFields will be sent to the
18343	// server regardless of whether the field is empty or not. This may be
18344	// used to include empty fields in Patch requests.
18345	ForceSendFields []string `json:"-"`
18346
18347	// NullFields is a list of field names (e.g. "LabelFingerprint") to
18348	// include in API requests with the JSON null value. By default, fields
18349	// with empty values are omitted from API requests. However, any field
18350	// with an empty value appearing in NullFields will be sent to the
18351	// server as null. It is an error if a field in this list has a
18352	// non-empty value. This may be used to include null fields in Patch
18353	// requests.
18354	NullFields []string `json:"-"`
18355}
18356
18357func (s *InstancesSetLabelsRequest) MarshalJSON() ([]byte, error) {
18358	type NoMethod InstancesSetLabelsRequest
18359	raw := NoMethod(*s)
18360	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18361}
18362
18363type InstancesSetMachineResourcesRequest struct {
18364	// GuestAccelerators: A list of the type and count of accelerator cards
18365	// attached to the instance.
18366	GuestAccelerators []*AcceleratorConfig `json:"guestAccelerators,omitempty"`
18367
18368	// ForceSendFields is a list of field names (e.g. "GuestAccelerators")
18369	// to unconditionally include in API requests. By default, fields with
18370	// empty values are omitted from API requests. However, any non-pointer,
18371	// non-interface field appearing in ForceSendFields will be sent to the
18372	// server regardless of whether the field is empty or not. This may be
18373	// used to include empty fields in Patch requests.
18374	ForceSendFields []string `json:"-"`
18375
18376	// NullFields is a list of field names (e.g. "GuestAccelerators") to
18377	// include in API requests with the JSON null value. By default, fields
18378	// with empty values are omitted from API requests. However, any field
18379	// with an empty value appearing in NullFields will be sent to the
18380	// server as null. It is an error if a field in this list has a
18381	// non-empty value. This may be used to include null fields in Patch
18382	// requests.
18383	NullFields []string `json:"-"`
18384}
18385
18386func (s *InstancesSetMachineResourcesRequest) MarshalJSON() ([]byte, error) {
18387	type NoMethod InstancesSetMachineResourcesRequest
18388	raw := NoMethod(*s)
18389	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18390}
18391
18392type InstancesSetMachineTypeRequest struct {
18393	// MachineType: Full or partial URL of the machine type resource. See
18394	// Machine Types for a full list of machine types. For example:
18395	// zones/us-central1-f/machineTypes/n1-standard-1
18396	MachineType string `json:"machineType,omitempty"`
18397
18398	// ForceSendFields is a list of field names (e.g. "MachineType") to
18399	// unconditionally include in API requests. By default, fields with
18400	// empty values are omitted from API requests. However, any non-pointer,
18401	// non-interface field appearing in ForceSendFields will be sent to the
18402	// server regardless of whether the field is empty or not. This may be
18403	// used to include empty fields in Patch requests.
18404	ForceSendFields []string `json:"-"`
18405
18406	// NullFields is a list of field names (e.g. "MachineType") to include
18407	// in API requests with the JSON null value. By default, fields with
18408	// empty values are omitted from API requests. However, any field with
18409	// an empty value appearing in NullFields will be sent to the server as
18410	// null. It is an error if a field in this list has a non-empty value.
18411	// This may be used to include null fields in Patch requests.
18412	NullFields []string `json:"-"`
18413}
18414
18415func (s *InstancesSetMachineTypeRequest) MarshalJSON() ([]byte, error) {
18416	type NoMethod InstancesSetMachineTypeRequest
18417	raw := NoMethod(*s)
18418	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18419}
18420
18421type InstancesSetMinCpuPlatformRequest struct {
18422	// MinCpuPlatform: Minimum cpu/platform this instance should be started
18423	// at.
18424	MinCpuPlatform string `json:"minCpuPlatform,omitempty"`
18425
18426	// ForceSendFields is a list of field names (e.g. "MinCpuPlatform") to
18427	// unconditionally include in API requests. By default, fields with
18428	// empty values are omitted from API requests. However, any non-pointer,
18429	// non-interface field appearing in ForceSendFields will be sent to the
18430	// server regardless of whether the field is empty or not. This may be
18431	// used to include empty fields in Patch requests.
18432	ForceSendFields []string `json:"-"`
18433
18434	// NullFields is a list of field names (e.g. "MinCpuPlatform") to
18435	// include in API requests with the JSON null value. By default, fields
18436	// with empty values are omitted from API requests. However, any field
18437	// with an empty value appearing in NullFields will be sent to the
18438	// server as null. It is an error if a field in this list has a
18439	// non-empty value. This may be used to include null fields in Patch
18440	// requests.
18441	NullFields []string `json:"-"`
18442}
18443
18444func (s *InstancesSetMinCpuPlatformRequest) MarshalJSON() ([]byte, error) {
18445	type NoMethod InstancesSetMinCpuPlatformRequest
18446	raw := NoMethod(*s)
18447	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18448}
18449
18450type InstancesSetNameRequest struct {
18451	// CurrentName: The current name of this resource, used to prevent
18452	// conflicts. Provide the latest name when making a request to change
18453	// name.
18454	CurrentName string `json:"currentName,omitempty"`
18455
18456	// Name: The name to be applied to the instance. Needs to be RFC 1035
18457	// compliant.
18458	Name string `json:"name,omitempty"`
18459
18460	// ForceSendFields is a list of field names (e.g. "CurrentName") to
18461	// unconditionally include in API requests. By default, fields with
18462	// empty values are omitted from API requests. However, any non-pointer,
18463	// non-interface field appearing in ForceSendFields will be sent to the
18464	// server regardless of whether the field is empty or not. This may be
18465	// used to include empty fields in Patch requests.
18466	ForceSendFields []string `json:"-"`
18467
18468	// NullFields is a list of field names (e.g. "CurrentName") to include
18469	// in API requests with the JSON null value. By default, fields with
18470	// empty values are omitted from API requests. However, any field with
18471	// an empty value appearing in NullFields will be sent to the server as
18472	// null. It is an error if a field in this list has a non-empty value.
18473	// This may be used to include null fields in Patch requests.
18474	NullFields []string `json:"-"`
18475}
18476
18477func (s *InstancesSetNameRequest) MarshalJSON() ([]byte, error) {
18478	type NoMethod InstancesSetNameRequest
18479	raw := NoMethod(*s)
18480	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18481}
18482
18483type InstancesSetServiceAccountRequest struct {
18484	// Email: Email address of the service account.
18485	Email string `json:"email,omitempty"`
18486
18487	// Scopes: The list of scopes to be made available for this service
18488	// account.
18489	Scopes []string `json:"scopes,omitempty"`
18490
18491	// ForceSendFields is a list of field names (e.g. "Email") to
18492	// unconditionally include in API requests. By default, fields with
18493	// empty values are omitted from API requests. However, any non-pointer,
18494	// non-interface field appearing in ForceSendFields will be sent to the
18495	// server regardless of whether the field is empty or not. This may be
18496	// used to include empty fields in Patch requests.
18497	ForceSendFields []string `json:"-"`
18498
18499	// NullFields is a list of field names (e.g. "Email") to include in API
18500	// requests with the JSON null value. By default, fields with empty
18501	// values are omitted from API requests. However, any field with an
18502	// empty value appearing in NullFields will be sent to the server as
18503	// null. It is an error if a field in this list has a non-empty value.
18504	// This may be used to include null fields in Patch requests.
18505	NullFields []string `json:"-"`
18506}
18507
18508func (s *InstancesSetServiceAccountRequest) MarshalJSON() ([]byte, error) {
18509	type NoMethod InstancesSetServiceAccountRequest
18510	raw := NoMethod(*s)
18511	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18512}
18513
18514type InstancesStartWithEncryptionKeyRequest struct {
18515	// Disks: Array of disks associated with this instance that are
18516	// protected with a customer-supplied encryption key.
18517	//
18518	// In order to start the instance, the disk url and its corresponding
18519	// key must be provided.
18520	//
18521	// If the disk is not protected with a customer-supplied encryption key
18522	// it should not be specified.
18523	Disks []*CustomerEncryptionKeyProtectedDisk `json:"disks,omitempty"`
18524
18525	// InstanceEncryptionKey: Decrypts data associated with an instance that
18526	// is protected with a customer-supplied encryption key.
18527	//
18528	// If the instance you are starting is protected with a
18529	// customer-supplied encryption key, the correct key must be provided
18530	// otherwise the instance start will not succeed.
18531	InstanceEncryptionKey *CustomerEncryptionKey `json:"instanceEncryptionKey,omitempty"`
18532
18533	// ForceSendFields is a list of field names (e.g. "Disks") to
18534	// unconditionally include in API requests. By default, fields with
18535	// empty values are omitted from API requests. However, any non-pointer,
18536	// non-interface field appearing in ForceSendFields will be sent to the
18537	// server regardless of whether the field is empty or not. This may be
18538	// used to include empty fields in Patch requests.
18539	ForceSendFields []string `json:"-"`
18540
18541	// NullFields is a list of field names (e.g. "Disks") to include in API
18542	// requests with the JSON null value. By default, fields with empty
18543	// values are omitted from API requests. However, any field with an
18544	// empty value appearing in NullFields will be sent to the server as
18545	// null. It is an error if a field in this list has a non-empty value.
18546	// This may be used to include null fields in Patch requests.
18547	NullFields []string `json:"-"`
18548}
18549
18550func (s *InstancesStartWithEncryptionKeyRequest) MarshalJSON() ([]byte, error) {
18551	type NoMethod InstancesStartWithEncryptionKeyRequest
18552	raw := NoMethod(*s)
18553	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18554}
18555
18556// Int64RangeMatch: HttpRouteRuleMatch criteria for field values that
18557// must stay within the specified integer range.
18558type Int64RangeMatch struct {
18559	// RangeEnd: The end of the range (exclusive) in signed long integer
18560	// format.
18561	RangeEnd int64 `json:"rangeEnd,omitempty,string"`
18562
18563	// RangeStart: The start of the range (inclusive) in signed long integer
18564	// format.
18565	RangeStart int64 `json:"rangeStart,omitempty,string"`
18566
18567	// ForceSendFields is a list of field names (e.g. "RangeEnd") 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. "RangeEnd") to include in
18576	// API 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 *Int64RangeMatch) MarshalJSON() ([]byte, error) {
18585	type NoMethod Int64RangeMatch
18586	raw := NoMethod(*s)
18587	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18588}
18589
18590// Interconnect: Represents an Interconnect resource.
18591//
18592// An Interconnect resource is a dedicated connection between the GCP
18593// network and your on-premises network. For more information, read the
18594// Dedicated Interconnect Overview. (== resource_for v1.interconnects
18595// ==) (== resource_for beta.interconnects ==)
18596type Interconnect struct {
18597	// AdminEnabled: Administrative status of the interconnect. When this is
18598	// set to true, the Interconnect is functional and can carry traffic.
18599	// When set to false, no packets can be carried over the interconnect
18600	// and no BGP routes are exchanged over it. By default, the status is
18601	// set to true.
18602	AdminEnabled bool `json:"adminEnabled,omitempty"`
18603
18604	// CircuitInfos: [Output Only] A list of CircuitInfo objects, that
18605	// describe the individual circuits in this LAG.
18606	CircuitInfos []*InterconnectCircuitInfo `json:"circuitInfos,omitempty"`
18607
18608	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
18609	// format.
18610	CreationTimestamp string `json:"creationTimestamp,omitempty"`
18611
18612	// CustomerName: Customer name, to put in the Letter of Authorization as
18613	// the party authorized to request a crossconnect.
18614	CustomerName string `json:"customerName,omitempty"`
18615
18616	// Description: An optional description of this resource. Provide this
18617	// property when you create the resource.
18618	Description string `json:"description,omitempty"`
18619
18620	// ExpectedOutages: [Output Only] A list of outages expected for this
18621	// Interconnect.
18622	ExpectedOutages []*InterconnectOutageNotification `json:"expectedOutages,omitempty"`
18623
18624	// GoogleIpAddress: [Output Only] IP address configured on the Google
18625	// side of the Interconnect link. This can be used only for ping tests.
18626	GoogleIpAddress string `json:"googleIpAddress,omitempty"`
18627
18628	// GoogleReferenceId: [Output Only] Google reference ID to be used when
18629	// raising support tickets with Google or otherwise to debug backend
18630	// connectivity issues.
18631	GoogleReferenceId string `json:"googleReferenceId,omitempty"`
18632
18633	// Id: [Output Only] The unique identifier for the resource. This
18634	// identifier is defined by the server.
18635	Id uint64 `json:"id,omitempty,string"`
18636
18637	// InterconnectAttachments: [Output Only] A list of the URLs of all
18638	// InterconnectAttachments configured to use this Interconnect.
18639	InterconnectAttachments []string `json:"interconnectAttachments,omitempty"`
18640
18641	// InterconnectType: Type of interconnect, which can take one of the
18642	// following values:
18643	// - PARTNER: A partner-managed interconnection shared between customers
18644	// though a partner.
18645	// - DEDICATED: A dedicated physical interconnection with the customer.
18646	// Note that a value IT_PRIVATE has been deprecated in favor of
18647	// DEDICATED.
18648	//
18649	// Possible values:
18650	//   "DEDICATED"
18651	//   "IT_PRIVATE"
18652	//   "PARTNER"
18653	InterconnectType string `json:"interconnectType,omitempty"`
18654
18655	// Kind: [Output Only] Type of the resource. Always compute#interconnect
18656	// for interconnects.
18657	Kind string `json:"kind,omitempty"`
18658
18659	// LabelFingerprint: A fingerprint for the labels being applied to this
18660	// Interconnect, which is essentially a hash of the labels set used for
18661	// optimistic locking. The fingerprint is initially generated by Compute
18662	// Engine and changes after every request to modify or update labels.
18663	// You must always provide an up-to-date fingerprint hash in order to
18664	// update or change labels, otherwise the request will fail with error
18665	// 412 conditionNotMet.
18666	//
18667	// To see the latest fingerprint, make a get() request to retrieve an
18668	// Interconnect.
18669	LabelFingerprint string `json:"labelFingerprint,omitempty"`
18670
18671	// Labels: Labels to apply to this Interconnect resource. These can be
18672	// later modified by the setLabels method. Each label key/value must
18673	// comply with RFC1035. Label values may be empty.
18674	Labels map[string]string `json:"labels,omitempty"`
18675
18676	// LinkType: Type of link requested, which can take one of the following
18677	// values:
18678	// - LINK_TYPE_ETHERNET_10G_LR: A 10G Ethernet with LR optics
18679	// - LINK_TYPE_ETHERNET_100G_LR: A 100G Ethernet with LR optics. Note
18680	// that this field indicates the speed of each of the links in the
18681	// bundle, not the speed of the entire bundle.
18682	//
18683	// Possible values:
18684	//   "LINK_TYPE_ETHERNET_100G_LR"
18685	//   "LINK_TYPE_ETHERNET_10G_LR"
18686	LinkType string `json:"linkType,omitempty"`
18687
18688	// Location: URL of the InterconnectLocation object that represents
18689	// where this connection is to be provisioned.
18690	Location string `json:"location,omitempty"`
18691
18692	// Name: Name of the resource. Provided by the client when the resource
18693	// is created. The name must be 1-63 characters long, and comply with
18694	// RFC1035. Specifically, the name must be 1-63 characters long and
18695	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
18696	// the first character must be a lowercase letter, and all following
18697	// characters must be a dash, lowercase letter, or digit, except the
18698	// last character, which cannot be a dash.
18699	Name string `json:"name,omitempty"`
18700
18701	// NocContactEmail: Email address to contact the customer NOC for
18702	// operations and maintenance notifications regarding this Interconnect.
18703	// If specified, this will be used for notifications in addition to all
18704	// other forms described, such as Stackdriver logs alerting and Cloud
18705	// Notifications.
18706	NocContactEmail string `json:"nocContactEmail,omitempty"`
18707
18708	// OperationalStatus: [Output Only] The current status of this
18709	// Interconnect's functionality, which can take one of the following
18710	// values:
18711	// - OS_ACTIVE: A valid Interconnect, which is turned up and is ready to
18712	// use. Attachments may be provisioned on this Interconnect.
18713	// - OS_UNPROVISIONED: An Interconnect that has not completed turnup. No
18714	// attachments may be provisioned on this Interconnect.
18715	// - OS_UNDER_MAINTENANCE: An Interconnect that is undergoing internal
18716	// maintenance. No attachments may be provisioned or updated on this
18717	// Interconnect.
18718	//
18719	// Possible values:
18720	//   "OS_ACTIVE"
18721	//   "OS_UNPROVISIONED"
18722	OperationalStatus string `json:"operationalStatus,omitempty"`
18723
18724	// PeerIpAddress: [Output Only] IP address configured on the customer
18725	// side of the Interconnect link. The customer should configure this IP
18726	// address during turnup when prompted by Google NOC. This can be used
18727	// only for ping tests.
18728	PeerIpAddress string `json:"peerIpAddress,omitempty"`
18729
18730	// ProvisionedLinkCount: [Output Only] Number of links actually
18731	// provisioned in this interconnect.
18732	ProvisionedLinkCount int64 `json:"provisionedLinkCount,omitempty"`
18733
18734	// RequestedLinkCount: Target number of physical links in the link
18735	// bundle, as requested by the customer.
18736	RequestedLinkCount int64 `json:"requestedLinkCount,omitempty"`
18737
18738	// SelfLink: [Output Only] Server-defined URL for the resource.
18739	SelfLink string `json:"selfLink,omitempty"`
18740
18741	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
18742	// with the resource id.
18743	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
18744
18745	// State: [Output Only] The current state of Interconnect functionality,
18746	// which can take one of the following values:
18747	// - ACTIVE: The Interconnect is valid, turned up and ready to use.
18748	// Attachments may be provisioned on this Interconnect.
18749	// - UNPROVISIONED: The Interconnect has not completed turnup. No
18750	// attachments may be provisioned on this Interconnect.
18751	// - UNDER_MAINTENANCE: The Interconnect is undergoing internal
18752	// maintenance. No attachments may be provisioned or updated on this
18753	// Interconnect.
18754	//
18755	// Possible values:
18756	//   "ACTIVE"
18757	//   "UNPROVISIONED"
18758	State string `json:"state,omitempty"`
18759
18760	// ServerResponse contains the HTTP response code and headers from the
18761	// server.
18762	googleapi.ServerResponse `json:"-"`
18763
18764	// ForceSendFields is a list of field names (e.g. "AdminEnabled") to
18765	// unconditionally include in API requests. By default, fields with
18766	// empty values are omitted from API requests. However, any non-pointer,
18767	// non-interface field appearing in ForceSendFields will be sent to the
18768	// server regardless of whether the field is empty or not. This may be
18769	// used to include empty fields in Patch requests.
18770	ForceSendFields []string `json:"-"`
18771
18772	// NullFields is a list of field names (e.g. "AdminEnabled") to include
18773	// in API requests with the JSON null value. By default, fields with
18774	// empty values are omitted from API requests. However, any field with
18775	// an empty value appearing in NullFields will be sent to the server as
18776	// null. It is an error if a field in this list has a non-empty value.
18777	// This may be used to include null fields in Patch requests.
18778	NullFields []string `json:"-"`
18779}
18780
18781func (s *Interconnect) MarshalJSON() ([]byte, error) {
18782	type NoMethod Interconnect
18783	raw := NoMethod(*s)
18784	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18785}
18786
18787// InterconnectAttachment: Represents an Interconnect Attachment (VLAN)
18788// resource.
18789//
18790// You can use Interconnect attachments (VLANS) to connect your Virtual
18791// Private Cloud networks to your on-premises networks through an
18792// Interconnect. For more information, read  Creating VLAN Attachments.
18793// (== resource_for beta.interconnectAttachments ==) (== resource_for
18794// v1.interconnectAttachments ==)
18795type InterconnectAttachment struct {
18796	// AdminEnabled: Determines whether this Attachment will carry packets.
18797	// Not present for PARTNER_PROVIDER.
18798	AdminEnabled bool `json:"adminEnabled,omitempty"`
18799
18800	// Bandwidth: Provisioned bandwidth capacity for the interconnect
18801	// attachment. For attachments of type DEDICATED, the user can set the
18802	// bandwidth. For attachments of type PARTNER, the Google Partner that
18803	// is operating the interconnect must set the bandwidth. Output only for
18804	// PARTNER type, mutable for PARTNER_PROVIDER and DEDICATED, and can
18805	// take one of the following values:
18806	// - BPS_50M: 50 Mbit/s
18807	// - BPS_100M: 100 Mbit/s
18808	// - BPS_200M: 200 Mbit/s
18809	// - BPS_300M: 300 Mbit/s
18810	// - BPS_400M: 400 Mbit/s
18811	// - BPS_500M: 500 Mbit/s
18812	// - BPS_1G: 1 Gbit/s
18813	// - BPS_2G: 2 Gbit/s
18814	// - BPS_5G: 5 Gbit/s
18815	// - BPS_10G: 10 Gbit/s
18816	// - BPS_20G: 20 Gbit/s
18817	// - BPS_50G: 50 Gbit/s
18818	//
18819	// Possible values:
18820	//   "BPS_100M"
18821	//   "BPS_10G"
18822	//   "BPS_1G"
18823	//   "BPS_200M"
18824	//   "BPS_20G"
18825	//   "BPS_2G"
18826	//   "BPS_300M"
18827	//   "BPS_400M"
18828	//   "BPS_500M"
18829	//   "BPS_50G"
18830	//   "BPS_50M"
18831	//   "BPS_5G"
18832	Bandwidth string `json:"bandwidth,omitempty"`
18833
18834	// CandidateSubnets: Up to 16 candidate prefixes that can be used to
18835	// restrict the allocation of cloudRouterIpAddress and
18836	// customerRouterIpAddress for this attachment. All prefixes must be
18837	// within link-local address space (169.254.0.0/16) and must be /29 or
18838	// shorter (/28, /27, etc). Google will attempt to select an unused /29
18839	// from the supplied candidate prefix(es). The request will fail if all
18840	// possible /29s are in use on Google?s edge. If not supplied, Google
18841	// will randomly select an unused /29 from all of link-local space.
18842	CandidateSubnets []string `json:"candidateSubnets,omitempty"`
18843
18844	// CloudRouterIpAddress: [Output Only] IPv4 address + prefix length to
18845	// be configured on Cloud Router Interface for this interconnect
18846	// attachment.
18847	CloudRouterIpAddress string `json:"cloudRouterIpAddress,omitempty"`
18848
18849	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
18850	// format.
18851	CreationTimestamp string `json:"creationTimestamp,omitempty"`
18852
18853	// CustomerRouterIpAddress: [Output Only] IPv4 address + prefix length
18854	// to be configured on the customer router subinterface for this
18855	// interconnect attachment.
18856	CustomerRouterIpAddress string `json:"customerRouterIpAddress,omitempty"`
18857
18858	// Description: An optional description of this resource.
18859	Description string `json:"description,omitempty"`
18860
18861	// EdgeAvailabilityDomain: Desired availability domain for the
18862	// attachment. Only available for type PARTNER, at creation time, and
18863	// can take one of the following values:
18864	// - AVAILABILITY_DOMAIN_ANY
18865	// - AVAILABILITY_DOMAIN_1
18866	// - AVAILABILITY_DOMAIN_2 For improved reliability, customers should
18867	// configure a pair of attachments, one per availability domain. The
18868	// selected availability domain will be provided to the Partner via the
18869	// pairing key, so that the provisioned circuit will lie in the
18870	// specified domain. If not specified, the value will default to
18871	// AVAILABILITY_DOMAIN_ANY.
18872	//
18873	// Possible values:
18874	//   "AVAILABILITY_DOMAIN_1"
18875	//   "AVAILABILITY_DOMAIN_2"
18876	//   "AVAILABILITY_DOMAIN_ANY"
18877	EdgeAvailabilityDomain string `json:"edgeAvailabilityDomain,omitempty"`
18878
18879	// GoogleReferenceId: [Output Only] Google reference ID, to be used when
18880	// raising support tickets with Google or otherwise to debug backend
18881	// connectivity issues. [Deprecated] This field is not used.
18882	GoogleReferenceId string `json:"googleReferenceId,omitempty"`
18883
18884	// Id: [Output Only] The unique identifier for the resource. This
18885	// identifier is defined by the server.
18886	Id uint64 `json:"id,omitempty,string"`
18887
18888	// Interconnect: URL of the underlying Interconnect object that this
18889	// attachment's traffic will traverse through.
18890	Interconnect string `json:"interconnect,omitempty"`
18891
18892	// Kind: [Output Only] Type of the resource. Always
18893	// compute#interconnectAttachment for interconnect attachments.
18894	Kind string `json:"kind,omitempty"`
18895
18896	// LabelFingerprint: A fingerprint for the labels being applied to this
18897	// InterconnectAttachment, which is essentially a hash of the labels set
18898	// used for optimistic locking. The fingerprint is initially generated
18899	// by Compute Engine and changes after every request to modify or update
18900	// labels. You must always provide an up-to-date fingerprint hash in
18901	// order to update or change labels, otherwise the request will fail
18902	// with error 412 conditionNotMet.
18903	//
18904	// To see the latest fingerprint, make a get() request to retrieve an
18905	// InterconnectAttachment.
18906	LabelFingerprint string `json:"labelFingerprint,omitempty"`
18907
18908	// Labels: Labels to apply to this InterconnectAttachment resource.
18909	// These can be later modified by the setLabels method. Each label
18910	// key/value must comply with RFC1035. Label values may be empty.
18911	Labels map[string]string `json:"labels,omitempty"`
18912
18913	// Mtu: Maximum Transmission Unit (MTU), in bytes, of packets passing
18914	// through this interconnect attachment. Only 1440 and 1500 are allowed.
18915	// If not specified, the value will default to 1440.
18916	Mtu int64 `json:"mtu,omitempty"`
18917
18918	// Name: Name of the resource. Provided by the client when the resource
18919	// is created. The name must be 1-63 characters long, and comply with
18920	// RFC1035. Specifically, the name must be 1-63 characters long and
18921	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
18922	// the first character must be a lowercase letter, and all following
18923	// characters must be a dash, lowercase letter, or digit, except the
18924	// last character, which cannot be a dash.
18925	Name string `json:"name,omitempty"`
18926
18927	// OperationalStatus: [Output Only] The current status of whether or not
18928	// this interconnect attachment is functional, which can take one of the
18929	// following values:
18930	// - OS_ACTIVE: The attachment has been turned up and is ready to use.
18931	//
18932	// - OS_UNPROVISIONED: The attachment is not ready to use yet, because
18933	// turnup is not complete.
18934	//
18935	// Possible values:
18936	//   "OS_ACTIVE"
18937	//   "OS_UNPROVISIONED"
18938	OperationalStatus string `json:"operationalStatus,omitempty"`
18939
18940	// PairingKey: [Output only for type PARTNER. Input only for
18941	// PARTNER_PROVIDER. Not present for DEDICATED]. The opaque identifier
18942	// of an PARTNER attachment used to initiate provisioning with a
18943	// selected partner. Of the form "XXXXX/region/domain"
18944	PairingKey string `json:"pairingKey,omitempty"`
18945
18946	// PartnerAsn: Optional BGP ASN for the router supplied by a Layer 3
18947	// Partner if they configured BGP on behalf of the customer. Output only
18948	// for PARTNER type, input only for PARTNER_PROVIDER, not available for
18949	// DEDICATED.
18950	PartnerAsn int64 `json:"partnerAsn,omitempty,string"`
18951
18952	// PartnerMetadata: Informational metadata about Partner attachments
18953	// from Partners to display to customers. Output only for for PARTNER
18954	// type, mutable for PARTNER_PROVIDER, not available for DEDICATED.
18955	PartnerMetadata *InterconnectAttachmentPartnerMetadata `json:"partnerMetadata,omitempty"`
18956
18957	// PrivateInterconnectInfo: [Output Only] Information specific to an
18958	// InterconnectAttachment. This property is populated if the
18959	// interconnect that this is attached to is of type DEDICATED.
18960	PrivateInterconnectInfo *InterconnectAttachmentPrivateInfo `json:"privateInterconnectInfo,omitempty"`
18961
18962	// Region: [Output Only] URL of the region where the regional
18963	// interconnect attachment resides. You must specify this field as part
18964	// of the HTTP request URL. It is not settable as a field in the request
18965	// body.
18966	Region string `json:"region,omitempty"`
18967
18968	// Router: URL of the Cloud Router to be used for dynamic routing. This
18969	// router must be in the same region as this InterconnectAttachment. The
18970	// InterconnectAttachment will automatically connect the Interconnect to
18971	// the network & region within which the Cloud Router is configured.
18972	Router string `json:"router,omitempty"`
18973
18974	// SelfLink: [Output Only] Server-defined URL for the resource.
18975	SelfLink string `json:"selfLink,omitempty"`
18976
18977	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
18978	// with the resource id.
18979	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
18980
18981	// State: [Output Only] The current state of this attachment's
18982	// functionality. Enum values ACTIVE and UNPROVISIONED are shared by
18983	// DEDICATED/PRIVATE, PARTNER, and PARTNER_PROVIDER interconnect
18984	// attachments, while enum values PENDING_PARTNER,
18985	// PARTNER_REQUEST_RECEIVED, and PENDING_CUSTOMER are used for only
18986	// PARTNER and PARTNER_PROVIDER interconnect attachments. This state can
18987	// take one of the following values:
18988	// - ACTIVE: The attachment has been turned up and is ready to use.
18989	// - UNPROVISIONED: The attachment is not ready to use yet, because
18990	// turnup is not complete.
18991	// - PENDING_PARTNER: A newly-created PARTNER attachment that has not
18992	// yet been configured on the Partner side.
18993	// - PARTNER_REQUEST_RECEIVED: A PARTNER attachment is in the process of
18994	// provisioning after a PARTNER_PROVIDER attachment was created that
18995	// references it.
18996	// - PENDING_CUSTOMER: A PARTNER or PARTNER_PROVIDER attachment that is
18997	// waiting for a customer to activate it.
18998	// - DEFUNCT: The attachment was deleted externally and is no longer
18999	// functional. This could be because the associated Interconnect was
19000	// removed, or because the other side of a Partner attachment was
19001	// deleted.
19002	//
19003	// Possible values:
19004	//   "ACTIVE"
19005	//   "DEFUNCT"
19006	//   "PARTNER_REQUEST_RECEIVED"
19007	//   "PENDING_CUSTOMER"
19008	//   "PENDING_PARTNER"
19009	//   "STATE_UNSPECIFIED"
19010	//   "UNPROVISIONED"
19011	State string `json:"state,omitempty"`
19012
19013	// Type: The type of interconnect attachment this is, which can take one
19014	// of the following values:
19015	// - DEDICATED: an attachment to a Dedicated Interconnect.
19016	// - PARTNER: an attachment to a Partner Interconnect, created by the
19017	// customer.
19018	// - PARTNER_PROVIDER: an attachment to a Partner Interconnect, created
19019	// by the partner.
19020	//
19021	// Possible values:
19022	//   "DEDICATED"
19023	//   "PARTNER"
19024	//   "PARTNER_PROVIDER"
19025	Type string `json:"type,omitempty"`
19026
19027	// VlanTag8021q: The IEEE 802.1Q VLAN tag for this attachment, in the
19028	// range 2-4094. Only specified at creation time.
19029	VlanTag8021q int64 `json:"vlanTag8021q,omitempty"`
19030
19031	// ServerResponse contains the HTTP response code and headers from the
19032	// server.
19033	googleapi.ServerResponse `json:"-"`
19034
19035	// ForceSendFields is a list of field names (e.g. "AdminEnabled") to
19036	// unconditionally include in API requests. By default, fields with
19037	// empty values are omitted from API requests. However, any non-pointer,
19038	// non-interface field appearing in ForceSendFields will be sent to the
19039	// server regardless of whether the field is empty or not. This may be
19040	// used to include empty fields in Patch requests.
19041	ForceSendFields []string `json:"-"`
19042
19043	// NullFields is a list of field names (e.g. "AdminEnabled") to include
19044	// in API requests with the JSON null value. By default, fields with
19045	// empty values are omitted from API requests. However, any field with
19046	// an empty value appearing in NullFields will be sent to the server as
19047	// null. It is an error if a field in this list has a non-empty value.
19048	// This may be used to include null fields in Patch requests.
19049	NullFields []string `json:"-"`
19050}
19051
19052func (s *InterconnectAttachment) MarshalJSON() ([]byte, error) {
19053	type NoMethod InterconnectAttachment
19054	raw := NoMethod(*s)
19055	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19056}
19057
19058type InterconnectAttachmentAggregatedList struct {
19059	// Id: [Output Only] Unique identifier for the resource; defined by the
19060	// server.
19061	Id string `json:"id,omitempty"`
19062
19063	// Items: A list of InterconnectAttachmentsScopedList resources.
19064	Items map[string]InterconnectAttachmentsScopedList `json:"items,omitempty"`
19065
19066	// Kind: [Output Only] Type of resource. Always
19067	// compute#interconnectAttachmentAggregatedList for aggregated lists of
19068	// interconnect attachments.
19069	Kind string `json:"kind,omitempty"`
19070
19071	// NextPageToken: [Output Only] This token allows you to get the next
19072	// page of results for list requests. If the number of results is larger
19073	// than maxResults, use the nextPageToken as a value for the query
19074	// parameter pageToken in the next list request. Subsequent list
19075	// requests will have their own nextPageToken to continue paging through
19076	// the results.
19077	NextPageToken string `json:"nextPageToken,omitempty"`
19078
19079	// SelfLink: [Output Only] Server-defined URL for this resource.
19080	SelfLink string `json:"selfLink,omitempty"`
19081
19082	// Warning: [Output Only] Informational warning message.
19083	Warning *InterconnectAttachmentAggregatedListWarning `json:"warning,omitempty"`
19084
19085	// ServerResponse contains the HTTP response code and headers from the
19086	// server.
19087	googleapi.ServerResponse `json:"-"`
19088
19089	// ForceSendFields is a list of field names (e.g. "Id") to
19090	// unconditionally include in API requests. By default, fields with
19091	// empty values are omitted from API requests. However, any non-pointer,
19092	// non-interface field appearing in ForceSendFields will be sent to the
19093	// server regardless of whether the field is empty or not. This may be
19094	// used to include empty fields in Patch requests.
19095	ForceSendFields []string `json:"-"`
19096
19097	// NullFields is a list of field names (e.g. "Id") to include in API
19098	// requests with the JSON null value. By default, fields with empty
19099	// values are omitted from API requests. However, any field with an
19100	// empty value appearing in NullFields will be sent to the server as
19101	// null. It is an error if a field in this list has a non-empty value.
19102	// This may be used to include null fields in Patch requests.
19103	NullFields []string `json:"-"`
19104}
19105
19106func (s *InterconnectAttachmentAggregatedList) MarshalJSON() ([]byte, error) {
19107	type NoMethod InterconnectAttachmentAggregatedList
19108	raw := NoMethod(*s)
19109	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19110}
19111
19112// InterconnectAttachmentAggregatedListWarning: [Output Only]
19113// Informational warning message.
19114type InterconnectAttachmentAggregatedListWarning struct {
19115	// Code: [Output Only] A warning code, if applicable. For example,
19116	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
19117	// the response.
19118	//
19119	// Possible values:
19120	//   "CLEANUP_FAILED"
19121	//   "DEPRECATED_RESOURCE_USED"
19122	//   "DEPRECATED_TYPE_USED"
19123	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
19124	//   "EXPERIMENTAL_TYPE_USED"
19125	//   "EXTERNAL_API_WARNING"
19126	//   "FIELD_VALUE_OVERRIDEN"
19127	//   "INJECTED_KERNELS_DEPRECATED"
19128	//   "MISSING_TYPE_DEPENDENCY"
19129	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
19130	//   "NEXT_HOP_CANNOT_IP_FORWARD"
19131	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
19132	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
19133	//   "NEXT_HOP_NOT_RUNNING"
19134	//   "NOT_CRITICAL_ERROR"
19135	//   "NO_RESULTS_ON_PAGE"
19136	//   "REQUIRED_TOS_AGREEMENT"
19137	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
19138	//   "RESOURCE_NOT_DELETED"
19139	//   "SCHEMA_VALIDATION_IGNORED"
19140	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
19141	//   "UNDECLARED_PROPERTIES"
19142	//   "UNREACHABLE"
19143	Code string `json:"code,omitempty"`
19144
19145	// Data: [Output Only] Metadata about this warning in key: value format.
19146	// For example:
19147	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
19148	Data []*InterconnectAttachmentAggregatedListWarningData `json:"data,omitempty"`
19149
19150	// Message: [Output Only] A human-readable description of the warning
19151	// code.
19152	Message string `json:"message,omitempty"`
19153
19154	// ForceSendFields is a list of field names (e.g. "Code") to
19155	// unconditionally include in API requests. By default, fields with
19156	// empty values are omitted from API requests. However, any non-pointer,
19157	// non-interface field appearing in ForceSendFields will be sent to the
19158	// server regardless of whether the field is empty or not. This may be
19159	// used to include empty fields in Patch requests.
19160	ForceSendFields []string `json:"-"`
19161
19162	// NullFields is a list of field names (e.g. "Code") to include in API
19163	// requests with the JSON null value. By default, fields with empty
19164	// values are omitted from API requests. However, any field with an
19165	// empty value appearing in NullFields will be sent to the server as
19166	// null. It is an error if a field in this list has a non-empty value.
19167	// This may be used to include null fields in Patch requests.
19168	NullFields []string `json:"-"`
19169}
19170
19171func (s *InterconnectAttachmentAggregatedListWarning) MarshalJSON() ([]byte, error) {
19172	type NoMethod InterconnectAttachmentAggregatedListWarning
19173	raw := NoMethod(*s)
19174	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19175}
19176
19177type InterconnectAttachmentAggregatedListWarningData struct {
19178	// Key: [Output Only] A key that provides more detail on the warning
19179	// being returned. For example, for warnings where there are no results
19180	// in a list request for a particular zone, this key might be scope and
19181	// the key value might be the zone name. Other examples might be a key
19182	// indicating a deprecated resource and a suggested replacement, or a
19183	// warning about invalid network settings (for example, if an instance
19184	// attempts to perform IP forwarding but is not enabled for IP
19185	// forwarding).
19186	Key string `json:"key,omitempty"`
19187
19188	// Value: [Output Only] A warning data value corresponding to the key.
19189	Value string `json:"value,omitempty"`
19190
19191	// ForceSendFields is a list of field names (e.g. "Key") to
19192	// unconditionally include in API requests. By default, fields with
19193	// empty values are omitted from API requests. However, any non-pointer,
19194	// non-interface field appearing in ForceSendFields will be sent to the
19195	// server regardless of whether the field is empty or not. This may be
19196	// used to include empty fields in Patch requests.
19197	ForceSendFields []string `json:"-"`
19198
19199	// NullFields is a list of field names (e.g. "Key") to include in API
19200	// requests with the JSON null value. By default, fields with empty
19201	// values are omitted from API requests. However, any field with an
19202	// empty value appearing in NullFields will be sent to the server as
19203	// null. It is an error if a field in this list has a non-empty value.
19204	// This may be used to include null fields in Patch requests.
19205	NullFields []string `json:"-"`
19206}
19207
19208func (s *InterconnectAttachmentAggregatedListWarningData) MarshalJSON() ([]byte, error) {
19209	type NoMethod InterconnectAttachmentAggregatedListWarningData
19210	raw := NoMethod(*s)
19211	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19212}
19213
19214// InterconnectAttachmentList: Response to the list request, and
19215// contains a list of interconnect attachments.
19216type InterconnectAttachmentList struct {
19217	// Id: [Output Only] Unique identifier for the resource; defined by the
19218	// server.
19219	Id string `json:"id,omitempty"`
19220
19221	// Items: A list of InterconnectAttachment resources.
19222	Items []*InterconnectAttachment `json:"items,omitempty"`
19223
19224	// Kind: [Output Only] Type of resource. Always
19225	// compute#interconnectAttachmentList for lists of interconnect
19226	// attachments.
19227	Kind string `json:"kind,omitempty"`
19228
19229	// NextPageToken: [Output Only] This token allows you to get the next
19230	// page of results for list requests. If the number of results is larger
19231	// than maxResults, use the nextPageToken as a value for the query
19232	// parameter pageToken in the next list request. Subsequent list
19233	// requests will have their own nextPageToken to continue paging through
19234	// the results.
19235	NextPageToken string `json:"nextPageToken,omitempty"`
19236
19237	// SelfLink: [Output Only] Server-defined URL for this resource.
19238	SelfLink string `json:"selfLink,omitempty"`
19239
19240	// Warning: [Output Only] Informational warning message.
19241	Warning *InterconnectAttachmentListWarning `json:"warning,omitempty"`
19242
19243	// ServerResponse contains the HTTP response code and headers from the
19244	// server.
19245	googleapi.ServerResponse `json:"-"`
19246
19247	// ForceSendFields is a list of field names (e.g. "Id") to
19248	// unconditionally include in API requests. By default, fields with
19249	// empty values are omitted from API requests. However, any non-pointer,
19250	// non-interface field appearing in ForceSendFields will be sent to the
19251	// server regardless of whether the field is empty or not. This may be
19252	// used to include empty fields in Patch requests.
19253	ForceSendFields []string `json:"-"`
19254
19255	// NullFields is a list of field names (e.g. "Id") to include in API
19256	// requests with the JSON null value. By default, fields with empty
19257	// values are omitted from API requests. However, any field with an
19258	// empty value appearing in NullFields will be sent to the server as
19259	// null. It is an error if a field in this list has a non-empty value.
19260	// This may be used to include null fields in Patch requests.
19261	NullFields []string `json:"-"`
19262}
19263
19264func (s *InterconnectAttachmentList) MarshalJSON() ([]byte, error) {
19265	type NoMethod InterconnectAttachmentList
19266	raw := NoMethod(*s)
19267	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19268}
19269
19270// InterconnectAttachmentListWarning: [Output Only] Informational
19271// warning message.
19272type InterconnectAttachmentListWarning struct {
19273	// Code: [Output Only] A warning code, if applicable. For example,
19274	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
19275	// the response.
19276	//
19277	// Possible values:
19278	//   "CLEANUP_FAILED"
19279	//   "DEPRECATED_RESOURCE_USED"
19280	//   "DEPRECATED_TYPE_USED"
19281	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
19282	//   "EXPERIMENTAL_TYPE_USED"
19283	//   "EXTERNAL_API_WARNING"
19284	//   "FIELD_VALUE_OVERRIDEN"
19285	//   "INJECTED_KERNELS_DEPRECATED"
19286	//   "MISSING_TYPE_DEPENDENCY"
19287	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
19288	//   "NEXT_HOP_CANNOT_IP_FORWARD"
19289	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
19290	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
19291	//   "NEXT_HOP_NOT_RUNNING"
19292	//   "NOT_CRITICAL_ERROR"
19293	//   "NO_RESULTS_ON_PAGE"
19294	//   "REQUIRED_TOS_AGREEMENT"
19295	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
19296	//   "RESOURCE_NOT_DELETED"
19297	//   "SCHEMA_VALIDATION_IGNORED"
19298	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
19299	//   "UNDECLARED_PROPERTIES"
19300	//   "UNREACHABLE"
19301	Code string `json:"code,omitempty"`
19302
19303	// Data: [Output Only] Metadata about this warning in key: value format.
19304	// For example:
19305	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
19306	Data []*InterconnectAttachmentListWarningData `json:"data,omitempty"`
19307
19308	// Message: [Output Only] A human-readable description of the warning
19309	// code.
19310	Message string `json:"message,omitempty"`
19311
19312	// ForceSendFields is a list of field names (e.g. "Code") to
19313	// unconditionally include in API requests. By default, fields with
19314	// empty values are omitted from API requests. However, any non-pointer,
19315	// non-interface field appearing in ForceSendFields will be sent to the
19316	// server regardless of whether the field is empty or not. This may be
19317	// used to include empty fields in Patch requests.
19318	ForceSendFields []string `json:"-"`
19319
19320	// NullFields is a list of field names (e.g. "Code") to include in API
19321	// requests with the JSON null value. By default, fields with empty
19322	// values are omitted from API requests. However, any field with an
19323	// empty value appearing in NullFields will be sent to the server as
19324	// null. It is an error if a field in this list has a non-empty value.
19325	// This may be used to include null fields in Patch requests.
19326	NullFields []string `json:"-"`
19327}
19328
19329func (s *InterconnectAttachmentListWarning) MarshalJSON() ([]byte, error) {
19330	type NoMethod InterconnectAttachmentListWarning
19331	raw := NoMethod(*s)
19332	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19333}
19334
19335type InterconnectAttachmentListWarningData struct {
19336	// Key: [Output Only] A key that provides more detail on the warning
19337	// being returned. For example, for warnings where there are no results
19338	// in a list request for a particular zone, this key might be scope and
19339	// the key value might be the zone name. Other examples might be a key
19340	// indicating a deprecated resource and a suggested replacement, or a
19341	// warning about invalid network settings (for example, if an instance
19342	// attempts to perform IP forwarding but is not enabled for IP
19343	// forwarding).
19344	Key string `json:"key,omitempty"`
19345
19346	// Value: [Output Only] A warning data value corresponding to the key.
19347	Value string `json:"value,omitempty"`
19348
19349	// ForceSendFields is a list of field names (e.g. "Key") to
19350	// unconditionally include in API requests. By default, fields with
19351	// empty values are omitted from API requests. However, any non-pointer,
19352	// non-interface field appearing in ForceSendFields will be sent to the
19353	// server regardless of whether the field is empty or not. This may be
19354	// used to include empty fields in Patch requests.
19355	ForceSendFields []string `json:"-"`
19356
19357	// NullFields is a list of field names (e.g. "Key") to include in API
19358	// requests with the JSON null value. By default, fields with empty
19359	// values are omitted from API requests. However, any field with an
19360	// empty value appearing in NullFields will be sent to the server as
19361	// null. It is an error if a field in this list has a non-empty value.
19362	// This may be used to include null fields in Patch requests.
19363	NullFields []string `json:"-"`
19364}
19365
19366func (s *InterconnectAttachmentListWarningData) MarshalJSON() ([]byte, error) {
19367	type NoMethod InterconnectAttachmentListWarningData
19368	raw := NoMethod(*s)
19369	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19370}
19371
19372// InterconnectAttachmentPartnerMetadata: Informational metadata about
19373// Partner attachments from Partners to display to customers. These
19374// fields are propagated from PARTNER_PROVIDER attachments to their
19375// corresponding PARTNER attachments.
19376type InterconnectAttachmentPartnerMetadata struct {
19377	// InterconnectName: Plain text name of the Interconnect this attachment
19378	// is connected to, as displayed in the Partner?s portal. For instance
19379	// "Chicago 1". This value may be validated to match approved Partner
19380	// values.
19381	InterconnectName string `json:"interconnectName,omitempty"`
19382
19383	// PartnerName: Plain text name of the Partner providing this
19384	// attachment. This value may be validated to match approved Partner
19385	// values.
19386	PartnerName string `json:"partnerName,omitempty"`
19387
19388	// PortalUrl: URL of the Partner?s portal for this Attachment. Partners
19389	// may customise this to be a deep link to the specific resource on the
19390	// Partner portal. This value may be validated to match approved Partner
19391	// values.
19392	PortalUrl string `json:"portalUrl,omitempty"`
19393
19394	// ForceSendFields is a list of field names (e.g. "InterconnectName") to
19395	// unconditionally include in API requests. By default, fields with
19396	// empty values are omitted from API requests. However, any non-pointer,
19397	// non-interface field appearing in ForceSendFields will be sent to the
19398	// server regardless of whether the field is empty or not. This may be
19399	// used to include empty fields in Patch requests.
19400	ForceSendFields []string `json:"-"`
19401
19402	// NullFields is a list of field names (e.g. "InterconnectName") to
19403	// include in API requests with the JSON null value. By default, fields
19404	// with empty values are omitted from API requests. However, any field
19405	// with an empty value appearing in NullFields will be sent to the
19406	// server as null. It is an error if a field in this list has a
19407	// non-empty value. This may be used to include null fields in Patch
19408	// requests.
19409	NullFields []string `json:"-"`
19410}
19411
19412func (s *InterconnectAttachmentPartnerMetadata) MarshalJSON() ([]byte, error) {
19413	type NoMethod InterconnectAttachmentPartnerMetadata
19414	raw := NoMethod(*s)
19415	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19416}
19417
19418// InterconnectAttachmentPrivateInfo: Information for an interconnect
19419// attachment when this belongs to an interconnect of type DEDICATED.
19420type InterconnectAttachmentPrivateInfo struct {
19421	// Tag8021q: [Output Only] 802.1q encapsulation tag to be used for
19422	// traffic between Google and the customer, going to and from this
19423	// network and region.
19424	Tag8021q int64 `json:"tag8021q,omitempty"`
19425
19426	// ForceSendFields is a list of field names (e.g. "Tag8021q") to
19427	// unconditionally include in API requests. By default, fields with
19428	// empty values are omitted from API requests. However, any non-pointer,
19429	// non-interface field appearing in ForceSendFields will be sent to the
19430	// server regardless of whether the field is empty or not. This may be
19431	// used to include empty fields in Patch requests.
19432	ForceSendFields []string `json:"-"`
19433
19434	// NullFields is a list of field names (e.g. "Tag8021q") to include in
19435	// API requests with the JSON null value. By default, fields with empty
19436	// values are omitted from API requests. However, any field with an
19437	// empty value appearing in NullFields will be sent to the server as
19438	// null. It is an error if a field in this list has a non-empty value.
19439	// This may be used to include null fields in Patch requests.
19440	NullFields []string `json:"-"`
19441}
19442
19443func (s *InterconnectAttachmentPrivateInfo) MarshalJSON() ([]byte, error) {
19444	type NoMethod InterconnectAttachmentPrivateInfo
19445	raw := NoMethod(*s)
19446	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19447}
19448
19449type InterconnectAttachmentsScopedList struct {
19450	// InterconnectAttachments: A list of interconnect attachments contained
19451	// in this scope.
19452	InterconnectAttachments []*InterconnectAttachment `json:"interconnectAttachments,omitempty"`
19453
19454	// Warning: Informational warning which replaces the list of addresses
19455	// when the list is empty.
19456	Warning *InterconnectAttachmentsScopedListWarning `json:"warning,omitempty"`
19457
19458	// ForceSendFields is a list of field names (e.g.
19459	// "InterconnectAttachments") to unconditionally include in API
19460	// requests. By default, fields with empty values are omitted from API
19461	// requests. However, any non-pointer, non-interface field appearing in
19462	// ForceSendFields will be sent to the server regardless of whether the
19463	// field is empty or not. This may be used to include empty fields in
19464	// Patch requests.
19465	ForceSendFields []string `json:"-"`
19466
19467	// NullFields is a list of field names (e.g. "InterconnectAttachments")
19468	// to include in API requests with the JSON null value. By default,
19469	// fields with empty values are omitted from API requests. However, any
19470	// field with an empty value appearing in NullFields will be sent to the
19471	// server as null. It is an error if a field in this list has a
19472	// non-empty value. This may be used to include null fields in Patch
19473	// requests.
19474	NullFields []string `json:"-"`
19475}
19476
19477func (s *InterconnectAttachmentsScopedList) MarshalJSON() ([]byte, error) {
19478	type NoMethod InterconnectAttachmentsScopedList
19479	raw := NoMethod(*s)
19480	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19481}
19482
19483// InterconnectAttachmentsScopedListWarning: Informational warning which
19484// replaces the list of addresses when the list is empty.
19485type InterconnectAttachmentsScopedListWarning struct {
19486	// Code: [Output Only] A warning code, if applicable. For example,
19487	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
19488	// the response.
19489	//
19490	// Possible values:
19491	//   "CLEANUP_FAILED"
19492	//   "DEPRECATED_RESOURCE_USED"
19493	//   "DEPRECATED_TYPE_USED"
19494	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
19495	//   "EXPERIMENTAL_TYPE_USED"
19496	//   "EXTERNAL_API_WARNING"
19497	//   "FIELD_VALUE_OVERRIDEN"
19498	//   "INJECTED_KERNELS_DEPRECATED"
19499	//   "MISSING_TYPE_DEPENDENCY"
19500	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
19501	//   "NEXT_HOP_CANNOT_IP_FORWARD"
19502	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
19503	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
19504	//   "NEXT_HOP_NOT_RUNNING"
19505	//   "NOT_CRITICAL_ERROR"
19506	//   "NO_RESULTS_ON_PAGE"
19507	//   "REQUIRED_TOS_AGREEMENT"
19508	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
19509	//   "RESOURCE_NOT_DELETED"
19510	//   "SCHEMA_VALIDATION_IGNORED"
19511	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
19512	//   "UNDECLARED_PROPERTIES"
19513	//   "UNREACHABLE"
19514	Code string `json:"code,omitempty"`
19515
19516	// Data: [Output Only] Metadata about this warning in key: value format.
19517	// For example:
19518	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
19519	Data []*InterconnectAttachmentsScopedListWarningData `json:"data,omitempty"`
19520
19521	// Message: [Output Only] A human-readable description of the warning
19522	// code.
19523	Message string `json:"message,omitempty"`
19524
19525	// ForceSendFields is a list of field names (e.g. "Code") to
19526	// unconditionally include in API requests. By default, fields with
19527	// empty values are omitted from API requests. However, any non-pointer,
19528	// non-interface field appearing in ForceSendFields will be sent to the
19529	// server regardless of whether the field is empty or not. This may be
19530	// used to include empty fields in Patch requests.
19531	ForceSendFields []string `json:"-"`
19532
19533	// NullFields is a list of field names (e.g. "Code") to include in API
19534	// requests with the JSON null value. By default, fields with empty
19535	// values are omitted from API requests. However, any field with an
19536	// empty value appearing in NullFields will be sent to the server as
19537	// null. It is an error if a field in this list has a non-empty value.
19538	// This may be used to include null fields in Patch requests.
19539	NullFields []string `json:"-"`
19540}
19541
19542func (s *InterconnectAttachmentsScopedListWarning) MarshalJSON() ([]byte, error) {
19543	type NoMethod InterconnectAttachmentsScopedListWarning
19544	raw := NoMethod(*s)
19545	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19546}
19547
19548type InterconnectAttachmentsScopedListWarningData struct {
19549	// Key: [Output Only] A key that provides more detail on the warning
19550	// being returned. For example, for warnings where there are no results
19551	// in a list request for a particular zone, this key might be scope and
19552	// the key value might be the zone name. Other examples might be a key
19553	// indicating a deprecated resource and a suggested replacement, or a
19554	// warning about invalid network settings (for example, if an instance
19555	// attempts to perform IP forwarding but is not enabled for IP
19556	// forwarding).
19557	Key string `json:"key,omitempty"`
19558
19559	// Value: [Output Only] A warning data value corresponding to the key.
19560	Value string `json:"value,omitempty"`
19561
19562	// ForceSendFields is a list of field names (e.g. "Key") to
19563	// unconditionally include in API requests. By default, fields with
19564	// empty values are omitted from API requests. However, any non-pointer,
19565	// non-interface field appearing in ForceSendFields will be sent to the
19566	// server regardless of whether the field is empty or not. This may be
19567	// used to include empty fields in Patch requests.
19568	ForceSendFields []string `json:"-"`
19569
19570	// NullFields is a list of field names (e.g. "Key") to include in API
19571	// requests with the JSON null value. By default, fields with empty
19572	// values are omitted from API requests. However, any field with an
19573	// empty value appearing in NullFields will be sent to the server as
19574	// null. It is an error if a field in this list has a non-empty value.
19575	// This may be used to include null fields in Patch requests.
19576	NullFields []string `json:"-"`
19577}
19578
19579func (s *InterconnectAttachmentsScopedListWarningData) MarshalJSON() ([]byte, error) {
19580	type NoMethod InterconnectAttachmentsScopedListWarningData
19581	raw := NoMethod(*s)
19582	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19583}
19584
19585// InterconnectCircuitInfo: Describes a single physical circuit between
19586// the Customer and Google. CircuitInfo objects are created by Google,
19587// so all fields are output only. Next id: 4
19588type InterconnectCircuitInfo struct {
19589	// CustomerDemarcId: Customer-side demarc ID for this circuit.
19590	CustomerDemarcId string `json:"customerDemarcId,omitempty"`
19591
19592	// GoogleCircuitId: Google-assigned unique ID for this circuit. Assigned
19593	// at circuit turn-up.
19594	GoogleCircuitId string `json:"googleCircuitId,omitempty"`
19595
19596	// GoogleDemarcId: Google-side demarc ID for this circuit. Assigned at
19597	// circuit turn-up and provided by Google to the customer in the LOA.
19598	GoogleDemarcId string `json:"googleDemarcId,omitempty"`
19599
19600	// ForceSendFields is a list of field names (e.g. "CustomerDemarcId") to
19601	// unconditionally include in API requests. By default, fields with
19602	// empty values are omitted from API requests. However, any non-pointer,
19603	// non-interface field appearing in ForceSendFields will be sent to the
19604	// server regardless of whether the field is empty or not. This may be
19605	// used to include empty fields in Patch requests.
19606	ForceSendFields []string `json:"-"`
19607
19608	// NullFields is a list of field names (e.g. "CustomerDemarcId") to
19609	// include in API requests with the JSON null value. By default, fields
19610	// with empty values are omitted from API requests. However, any field
19611	// with an empty value appearing in NullFields will be sent to the
19612	// server as null. It is an error if a field in this list has a
19613	// non-empty value. This may be used to include null fields in Patch
19614	// requests.
19615	NullFields []string `json:"-"`
19616}
19617
19618func (s *InterconnectCircuitInfo) MarshalJSON() ([]byte, error) {
19619	type NoMethod InterconnectCircuitInfo
19620	raw := NoMethod(*s)
19621	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19622}
19623
19624// InterconnectDiagnostics: Diagnostics information about interconnect,
19625// contains detailed and current technical information about Google?s
19626// side of the connection.
19627type InterconnectDiagnostics struct {
19628	// ArpCaches: A list of InterconnectDiagnostics.ARPEntry objects,
19629	// describing individual neighbors currently seen by the Google router
19630	// in the ARP cache for the Interconnect. This will be empty when the
19631	// Interconnect is not bundled.
19632	ArpCaches []*InterconnectDiagnosticsARPEntry `json:"arpCaches,omitempty"`
19633
19634	// Links: A list of InterconnectDiagnostics.LinkStatus objects,
19635	// describing the status for each link on the Interconnect.
19636	Links []*InterconnectDiagnosticsLinkStatus `json:"links,omitempty"`
19637
19638	// MacAddress: The MAC address of the Interconnect's bundle interface.
19639	MacAddress string `json:"macAddress,omitempty"`
19640
19641	// ForceSendFields is a list of field names (e.g. "ArpCaches") to
19642	// unconditionally include in API requests. By default, fields with
19643	// empty values are omitted from API requests. However, any non-pointer,
19644	// non-interface field appearing in ForceSendFields will be sent to the
19645	// server regardless of whether the field is empty or not. This may be
19646	// used to include empty fields in Patch requests.
19647	ForceSendFields []string `json:"-"`
19648
19649	// NullFields is a list of field names (e.g. "ArpCaches") to include in
19650	// API requests with the JSON null value. By default, fields with empty
19651	// values are omitted from API requests. However, any field with an
19652	// empty value appearing in NullFields will be sent to the server as
19653	// null. It is an error if a field in this list has a non-empty value.
19654	// This may be used to include null fields in Patch requests.
19655	NullFields []string `json:"-"`
19656}
19657
19658func (s *InterconnectDiagnostics) MarshalJSON() ([]byte, error) {
19659	type NoMethod InterconnectDiagnostics
19660	raw := NoMethod(*s)
19661	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19662}
19663
19664// InterconnectDiagnosticsARPEntry: Describing the ARP neighbor entries
19665// seen on this link
19666type InterconnectDiagnosticsARPEntry struct {
19667	// IpAddress: The IP address of this ARP neighbor.
19668	IpAddress string `json:"ipAddress,omitempty"`
19669
19670	// MacAddress: The MAC address of this ARP neighbor.
19671	MacAddress string `json:"macAddress,omitempty"`
19672
19673	// ForceSendFields is a list of field names (e.g. "IpAddress") to
19674	// unconditionally include in API requests. By default, fields with
19675	// empty values are omitted from API requests. However, any non-pointer,
19676	// non-interface field appearing in ForceSendFields will be sent to the
19677	// server regardless of whether the field is empty or not. This may be
19678	// used to include empty fields in Patch requests.
19679	ForceSendFields []string `json:"-"`
19680
19681	// NullFields is a list of field names (e.g. "IpAddress") to include in
19682	// API requests with the JSON null value. By default, fields with empty
19683	// values are omitted from API requests. However, any field with an
19684	// empty value appearing in NullFields will be sent to the server as
19685	// null. It is an error if a field in this list has a non-empty value.
19686	// This may be used to include null fields in Patch requests.
19687	NullFields []string `json:"-"`
19688}
19689
19690func (s *InterconnectDiagnosticsARPEntry) MarshalJSON() ([]byte, error) {
19691	type NoMethod InterconnectDiagnosticsARPEntry
19692	raw := NoMethod(*s)
19693	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19694}
19695
19696type InterconnectDiagnosticsLinkLACPStatus struct {
19697	// GoogleSystemId: System ID of the port on Google?s side of the LACP
19698	// exchange.
19699	GoogleSystemId string `json:"googleSystemId,omitempty"`
19700
19701	// NeighborSystemId: System ID of the port on the neighbor?s side of the
19702	// LACP exchange.
19703	NeighborSystemId string `json:"neighborSystemId,omitempty"`
19704
19705	// State: The state of a LACP link, which can take one of the following
19706	// values:
19707	// - ACTIVE: The link is configured and active within the bundle.
19708	// - DETACHED: The link is not configured within the bundle. This means
19709	// that the rest of the object should be empty.
19710	//
19711	// Possible values:
19712	//   "ACTIVE"
19713	//   "DETACHED"
19714	State string `json:"state,omitempty"`
19715
19716	// ForceSendFields is a list of field names (e.g. "GoogleSystemId") to
19717	// unconditionally include in API requests. By default, fields with
19718	// empty values are omitted from API requests. However, any non-pointer,
19719	// non-interface field appearing in ForceSendFields will be sent to the
19720	// server regardless of whether the field is empty or not. This may be
19721	// used to include empty fields in Patch requests.
19722	ForceSendFields []string `json:"-"`
19723
19724	// NullFields is a list of field names (e.g. "GoogleSystemId") to
19725	// include in API requests with the JSON null value. By default, fields
19726	// with empty values are omitted from API requests. However, any field
19727	// with an empty value appearing in NullFields will be sent to the
19728	// server as null. It is an error if a field in this list has a
19729	// non-empty value. This may be used to include null fields in Patch
19730	// requests.
19731	NullFields []string `json:"-"`
19732}
19733
19734func (s *InterconnectDiagnosticsLinkLACPStatus) MarshalJSON() ([]byte, error) {
19735	type NoMethod InterconnectDiagnosticsLinkLACPStatus
19736	raw := NoMethod(*s)
19737	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19738}
19739
19740type InterconnectDiagnosticsLinkOpticalPower struct {
19741	// State: The status of the current value when compared to the warning
19742	// and alarm levels for the receiving or transmitting transceiver.
19743	// Possible states include:
19744	// - OK: The value has not crossed a warning threshold.
19745	// - LOW_WARNING: The value has crossed below the low warning threshold.
19746	//
19747	// - HIGH_WARNING: The value has crossed above the high warning
19748	// threshold.
19749	// - LOW_ALARM: The value has crossed below the low alarm threshold.
19750	// - HIGH_ALARM: The value has crossed above the high alarm threshold.
19751	//
19752	// Possible values:
19753	//   "HIGH_ALARM"
19754	//   "HIGH_WARNING"
19755	//   "LOW_ALARM"
19756	//   "LOW_WARNING"
19757	//   "OK"
19758	State string `json:"state,omitempty"`
19759
19760	// Value: Value of the current receiving or transmitting optical power,
19761	// read in dBm. Take a known good optical value, give it a 10% margin
19762	// and trigger warnings relative to that value. In general, a -7dBm
19763	// warning and a -11dBm alarm are good optical value estimates for most
19764	// links.
19765	Value float64 `json:"value,omitempty"`
19766
19767	// ForceSendFields is a list of field names (e.g. "State") to
19768	// unconditionally include in API requests. By default, fields with
19769	// empty values are omitted from API requests. However, any non-pointer,
19770	// non-interface field appearing in ForceSendFields will be sent to the
19771	// server regardless of whether the field is empty or not. This may be
19772	// used to include empty fields in Patch requests.
19773	ForceSendFields []string `json:"-"`
19774
19775	// NullFields is a list of field names (e.g. "State") to include in API
19776	// requests with the JSON null value. By default, fields with empty
19777	// values are omitted from API requests. However, any field with an
19778	// empty value appearing in NullFields will be sent to the server as
19779	// null. It is an error if a field in this list has a non-empty value.
19780	// This may be used to include null fields in Patch requests.
19781	NullFields []string `json:"-"`
19782}
19783
19784func (s *InterconnectDiagnosticsLinkOpticalPower) MarshalJSON() ([]byte, error) {
19785	type NoMethod InterconnectDiagnosticsLinkOpticalPower
19786	raw := NoMethod(*s)
19787	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19788}
19789
19790func (s *InterconnectDiagnosticsLinkOpticalPower) UnmarshalJSON(data []byte) error {
19791	type NoMethod InterconnectDiagnosticsLinkOpticalPower
19792	var s1 struct {
19793		Value gensupport.JSONFloat64 `json:"value"`
19794		*NoMethod
19795	}
19796	s1.NoMethod = (*NoMethod)(s)
19797	if err := json.Unmarshal(data, &s1); err != nil {
19798		return err
19799	}
19800	s.Value = float64(s1.Value)
19801	return nil
19802}
19803
19804type InterconnectDiagnosticsLinkStatus struct {
19805	// ArpCaches: A list of InterconnectDiagnostics.ARPEntry objects,
19806	// describing the ARP neighbor entries seen on this link. This will be
19807	// empty if the link is bundled
19808	ArpCaches []*InterconnectDiagnosticsARPEntry `json:"arpCaches,omitempty"`
19809
19810	// CircuitId: The unique ID for this link assigned during turn up by
19811	// Google.
19812	CircuitId string `json:"circuitId,omitempty"`
19813
19814	// GoogleDemarc: The Demarc address assigned by Google and provided in
19815	// the LoA.
19816	GoogleDemarc string `json:"googleDemarc,omitempty"`
19817
19818	LacpStatus *InterconnectDiagnosticsLinkLACPStatus `json:"lacpStatus,omitempty"`
19819
19820	// ReceivingOpticalPower: An InterconnectDiagnostics.LinkOpticalPower
19821	// object, describing the current value and status of the received light
19822	// level.
19823	ReceivingOpticalPower *InterconnectDiagnosticsLinkOpticalPower `json:"receivingOpticalPower,omitempty"`
19824
19825	// TransmittingOpticalPower: An InterconnectDiagnostics.LinkOpticalPower
19826	// object, describing the current value and status of the transmitted
19827	// light level.
19828	TransmittingOpticalPower *InterconnectDiagnosticsLinkOpticalPower `json:"transmittingOpticalPower,omitempty"`
19829
19830	// ForceSendFields is a list of field names (e.g. "ArpCaches") to
19831	// unconditionally include in API requests. By default, fields with
19832	// empty values are omitted from API requests. However, any non-pointer,
19833	// non-interface field appearing in ForceSendFields will be sent to the
19834	// server regardless of whether the field is empty or not. This may be
19835	// used to include empty fields in Patch requests.
19836	ForceSendFields []string `json:"-"`
19837
19838	// NullFields is a list of field names (e.g. "ArpCaches") to include in
19839	// API requests with the JSON null value. By default, fields with empty
19840	// values are omitted from API requests. However, any field with an
19841	// empty value appearing in NullFields will be sent to the server as
19842	// null. It is an error if a field in this list has a non-empty value.
19843	// This may be used to include null fields in Patch requests.
19844	NullFields []string `json:"-"`
19845}
19846
19847func (s *InterconnectDiagnosticsLinkStatus) MarshalJSON() ([]byte, error) {
19848	type NoMethod InterconnectDiagnosticsLinkStatus
19849	raw := NoMethod(*s)
19850	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19851}
19852
19853// InterconnectList: Response to the list request, and contains a list
19854// of interconnects.
19855type InterconnectList struct {
19856	// Id: [Output Only] Unique identifier for the resource; defined by the
19857	// server.
19858	Id string `json:"id,omitempty"`
19859
19860	// Items: A list of Interconnect resources.
19861	Items []*Interconnect `json:"items,omitempty"`
19862
19863	// Kind: [Output Only] Type of resource. Always compute#interconnectList
19864	// for lists of interconnects.
19865	Kind string `json:"kind,omitempty"`
19866
19867	// NextPageToken: [Output Only] This token allows you to get the next
19868	// page of results for list requests. If the number of results is larger
19869	// than maxResults, use the nextPageToken as a value for the query
19870	// parameter pageToken in the next list request. Subsequent list
19871	// requests will have their own nextPageToken to continue paging through
19872	// the results.
19873	NextPageToken string `json:"nextPageToken,omitempty"`
19874
19875	// SelfLink: [Output Only] Server-defined URL for this resource.
19876	SelfLink string `json:"selfLink,omitempty"`
19877
19878	// Warning: [Output Only] Informational warning message.
19879	Warning *InterconnectListWarning `json:"warning,omitempty"`
19880
19881	// ServerResponse contains the HTTP response code and headers from the
19882	// server.
19883	googleapi.ServerResponse `json:"-"`
19884
19885	// ForceSendFields is a list of field names (e.g. "Id") to
19886	// unconditionally include in API requests. By default, fields with
19887	// empty values are omitted from API requests. However, any non-pointer,
19888	// non-interface field appearing in ForceSendFields will be sent to the
19889	// server regardless of whether the field is empty or not. This may be
19890	// used to include empty fields in Patch requests.
19891	ForceSendFields []string `json:"-"`
19892
19893	// NullFields is a list of field names (e.g. "Id") to include in API
19894	// requests with the JSON null value. By default, fields with empty
19895	// values are omitted from API requests. However, any field with an
19896	// empty value appearing in NullFields will be sent to the server as
19897	// null. It is an error if a field in this list has a non-empty value.
19898	// This may be used to include null fields in Patch requests.
19899	NullFields []string `json:"-"`
19900}
19901
19902func (s *InterconnectList) MarshalJSON() ([]byte, error) {
19903	type NoMethod InterconnectList
19904	raw := NoMethod(*s)
19905	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19906}
19907
19908// InterconnectListWarning: [Output Only] Informational warning message.
19909type InterconnectListWarning struct {
19910	// Code: [Output Only] A warning code, if applicable. For example,
19911	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
19912	// the response.
19913	//
19914	// Possible values:
19915	//   "CLEANUP_FAILED"
19916	//   "DEPRECATED_RESOURCE_USED"
19917	//   "DEPRECATED_TYPE_USED"
19918	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
19919	//   "EXPERIMENTAL_TYPE_USED"
19920	//   "EXTERNAL_API_WARNING"
19921	//   "FIELD_VALUE_OVERRIDEN"
19922	//   "INJECTED_KERNELS_DEPRECATED"
19923	//   "MISSING_TYPE_DEPENDENCY"
19924	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
19925	//   "NEXT_HOP_CANNOT_IP_FORWARD"
19926	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
19927	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
19928	//   "NEXT_HOP_NOT_RUNNING"
19929	//   "NOT_CRITICAL_ERROR"
19930	//   "NO_RESULTS_ON_PAGE"
19931	//   "REQUIRED_TOS_AGREEMENT"
19932	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
19933	//   "RESOURCE_NOT_DELETED"
19934	//   "SCHEMA_VALIDATION_IGNORED"
19935	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
19936	//   "UNDECLARED_PROPERTIES"
19937	//   "UNREACHABLE"
19938	Code string `json:"code,omitempty"`
19939
19940	// Data: [Output Only] Metadata about this warning in key: value format.
19941	// For example:
19942	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
19943	Data []*InterconnectListWarningData `json:"data,omitempty"`
19944
19945	// Message: [Output Only] A human-readable description of the warning
19946	// code.
19947	Message string `json:"message,omitempty"`
19948
19949	// ForceSendFields is a list of field names (e.g. "Code") to
19950	// unconditionally include in API requests. By default, fields with
19951	// empty values are omitted from API requests. However, any non-pointer,
19952	// non-interface field appearing in ForceSendFields will be sent to the
19953	// server regardless of whether the field is empty or not. This may be
19954	// used to include empty fields in Patch requests.
19955	ForceSendFields []string `json:"-"`
19956
19957	// NullFields is a list of field names (e.g. "Code") to include in API
19958	// requests with the JSON null value. By default, fields with empty
19959	// values are omitted from API requests. However, any field with an
19960	// empty value appearing in NullFields will be sent to the server as
19961	// null. It is an error if a field in this list has a non-empty value.
19962	// This may be used to include null fields in Patch requests.
19963	NullFields []string `json:"-"`
19964}
19965
19966func (s *InterconnectListWarning) MarshalJSON() ([]byte, error) {
19967	type NoMethod InterconnectListWarning
19968	raw := NoMethod(*s)
19969	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19970}
19971
19972type InterconnectListWarningData struct {
19973	// Key: [Output Only] A key that provides more detail on the warning
19974	// being returned. For example, for warnings where there are no results
19975	// in a list request for a particular zone, this key might be scope and
19976	// the key value might be the zone name. Other examples might be a key
19977	// indicating a deprecated resource and a suggested replacement, or a
19978	// warning about invalid network settings (for example, if an instance
19979	// attempts to perform IP forwarding but is not enabled for IP
19980	// forwarding).
19981	Key string `json:"key,omitempty"`
19982
19983	// Value: [Output Only] A warning data value corresponding to the key.
19984	Value string `json:"value,omitempty"`
19985
19986	// ForceSendFields is a list of field names (e.g. "Key") to
19987	// unconditionally include in API requests. By default, fields with
19988	// empty values are omitted from API requests. However, any non-pointer,
19989	// non-interface field appearing in ForceSendFields will be sent to the
19990	// server regardless of whether the field is empty or not. This may be
19991	// used to include empty fields in Patch requests.
19992	ForceSendFields []string `json:"-"`
19993
19994	// NullFields is a list of field names (e.g. "Key") to include in API
19995	// requests with the JSON null value. By default, fields with empty
19996	// values are omitted from API requests. However, any field with an
19997	// empty value appearing in NullFields will be sent to the server as
19998	// null. It is an error if a field in this list has a non-empty value.
19999	// This may be used to include null fields in Patch requests.
20000	NullFields []string `json:"-"`
20001}
20002
20003func (s *InterconnectListWarningData) MarshalJSON() ([]byte, error) {
20004	type NoMethod InterconnectListWarningData
20005	raw := NoMethod(*s)
20006	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20007}
20008
20009// InterconnectLocation: Represents an Interconnect Attachment (VLAN)
20010// Location resource.
20011//
20012// You can use this resource to find location details about an
20013// Interconnect attachment (VLAN). For more information about
20014// interconnect attachments, read  Creating VLAN Attachments.
20015type InterconnectLocation struct {
20016	// Address: [Output Only] The postal address of the Point of Presence,
20017	// each line in the address is separated by a newline character.
20018	Address string `json:"address,omitempty"`
20019
20020	// AvailabilityZone: [Output Only] Availability zone for this
20021	// InterconnectLocation. Within a metropolitan area (metro), maintenance
20022	// will not be simultaneously scheduled in more than one availability
20023	// zone. Example: "zone1" or "zone2".
20024	AvailabilityZone string `json:"availabilityZone,omitempty"`
20025
20026	// City: [Output Only] Metropolitan area designator that indicates which
20027	// city an interconnect is located. For example: "Chicago, IL",
20028	// "Amsterdam, Netherlands".
20029	City string `json:"city,omitempty"`
20030
20031	// Continent: [Output Only] Continent for this location, which can take
20032	// one of the following values:
20033	// - AFRICA
20034	// - ASIA_PAC
20035	// - EUROPE
20036	// - NORTH_AMERICA
20037	// - SOUTH_AMERICA
20038	//
20039	// Possible values:
20040	//   "AFRICA"
20041	//   "ASIA_PAC"
20042	//   "C_AFRICA"
20043	//   "C_ASIA_PAC"
20044	//   "C_EUROPE"
20045	//   "C_NORTH_AMERICA"
20046	//   "C_SOUTH_AMERICA"
20047	//   "EUROPE"
20048	//   "NORTH_AMERICA"
20049	//   "SOUTH_AMERICA"
20050	Continent string `json:"continent,omitempty"`
20051
20052	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
20053	// format.
20054	CreationTimestamp string `json:"creationTimestamp,omitempty"`
20055
20056	// Description: [Output Only] An optional description of the resource.
20057	Description string `json:"description,omitempty"`
20058
20059	// FacilityProvider: [Output Only] The name of the provider for this
20060	// facility (e.g., EQUINIX).
20061	FacilityProvider string `json:"facilityProvider,omitempty"`
20062
20063	// FacilityProviderFacilityId: [Output Only] A provider-assigned
20064	// Identifier for this facility (e.g., Ashburn-DC1).
20065	FacilityProviderFacilityId string `json:"facilityProviderFacilityId,omitempty"`
20066
20067	// Id: [Output Only] The unique identifier for the resource. This
20068	// identifier is defined by the server.
20069	Id uint64 `json:"id,omitempty,string"`
20070
20071	// Kind: [Output Only] Type of the resource. Always
20072	// compute#interconnectLocation for interconnect locations.
20073	Kind string `json:"kind,omitempty"`
20074
20075	// Name: [Output Only] Name of the resource.
20076	Name string `json:"name,omitempty"`
20077
20078	// PeeringdbFacilityId: [Output Only] The peeringdb identifier for this
20079	// facility (corresponding with a netfac type in peeringdb).
20080	PeeringdbFacilityId string `json:"peeringdbFacilityId,omitempty"`
20081
20082	// RegionInfos: [Output Only] A list of InterconnectLocation.RegionInfo
20083	// objects, that describe parameters pertaining to the relation between
20084	// this InterconnectLocation and various Google Cloud regions.
20085	RegionInfos []*InterconnectLocationRegionInfo `json:"regionInfos,omitempty"`
20086
20087	// SelfLink: [Output Only] Server-defined URL for the resource.
20088	SelfLink string `json:"selfLink,omitempty"`
20089
20090	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
20091	// with the resource id.
20092	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
20093
20094	// Status: [Output Only] The status of this InterconnectLocation, which
20095	// can take one of the following values:
20096	// - CLOSED: The InterconnectLocation is closed and is unavailable for
20097	// provisioning new Interconnects.
20098	// - AVAILABLE: The InterconnectLocation is available for provisioning
20099	// new Interconnects.
20100	//
20101	// Possible values:
20102	//   "AVAILABLE"
20103	//   "CLOSED"
20104	Status string `json:"status,omitempty"`
20105
20106	// ServerResponse contains the HTTP response code and headers from the
20107	// server.
20108	googleapi.ServerResponse `json:"-"`
20109
20110	// ForceSendFields is a list of field names (e.g. "Address") to
20111	// unconditionally include in API requests. By default, fields with
20112	// empty values are omitted from API requests. However, any non-pointer,
20113	// non-interface field appearing in ForceSendFields will be sent to the
20114	// server regardless of whether the field is empty or not. This may be
20115	// used to include empty fields in Patch requests.
20116	ForceSendFields []string `json:"-"`
20117
20118	// NullFields is a list of field names (e.g. "Address") to include in
20119	// API requests with the JSON null value. By default, fields with empty
20120	// values are omitted from API requests. However, any field with an
20121	// empty value appearing in NullFields will be sent to the server as
20122	// null. It is an error if a field in this list has a non-empty value.
20123	// This may be used to include null fields in Patch requests.
20124	NullFields []string `json:"-"`
20125}
20126
20127func (s *InterconnectLocation) MarshalJSON() ([]byte, error) {
20128	type NoMethod InterconnectLocation
20129	raw := NoMethod(*s)
20130	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20131}
20132
20133// InterconnectLocationList: Response to the list request, and contains
20134// a list of interconnect locations.
20135type InterconnectLocationList struct {
20136	// Id: [Output Only] Unique identifier for the resource; defined by the
20137	// server.
20138	Id string `json:"id,omitempty"`
20139
20140	// Items: A list of InterconnectLocation resources.
20141	Items []*InterconnectLocation `json:"items,omitempty"`
20142
20143	// Kind: [Output Only] Type of resource. Always
20144	// compute#interconnectLocationList for lists of interconnect locations.
20145	Kind string `json:"kind,omitempty"`
20146
20147	// NextPageToken: [Output Only] This token allows you to get the next
20148	// page of results for list requests. If the number of results is larger
20149	// than maxResults, use the nextPageToken as a value for the query
20150	// parameter pageToken in the next list request. Subsequent list
20151	// requests will have their own nextPageToken to continue paging through
20152	// the results.
20153	NextPageToken string `json:"nextPageToken,omitempty"`
20154
20155	// SelfLink: [Output Only] Server-defined URL for this resource.
20156	SelfLink string `json:"selfLink,omitempty"`
20157
20158	// Warning: [Output Only] Informational warning message.
20159	Warning *InterconnectLocationListWarning `json:"warning,omitempty"`
20160
20161	// ServerResponse contains the HTTP response code and headers from the
20162	// server.
20163	googleapi.ServerResponse `json:"-"`
20164
20165	// ForceSendFields is a list of field names (e.g. "Id") to
20166	// unconditionally include in API requests. By default, fields with
20167	// empty values are omitted from API requests. However, any non-pointer,
20168	// non-interface field appearing in ForceSendFields will be sent to the
20169	// server regardless of whether the field is empty or not. This may be
20170	// used to include empty fields in Patch requests.
20171	ForceSendFields []string `json:"-"`
20172
20173	// NullFields is a list of field names (e.g. "Id") to include in API
20174	// requests with the JSON null value. By default, fields with empty
20175	// values are omitted from API requests. However, any field with an
20176	// empty value appearing in NullFields will be sent to the server as
20177	// null. It is an error if a field in this list has a non-empty value.
20178	// This may be used to include null fields in Patch requests.
20179	NullFields []string `json:"-"`
20180}
20181
20182func (s *InterconnectLocationList) MarshalJSON() ([]byte, error) {
20183	type NoMethod InterconnectLocationList
20184	raw := NoMethod(*s)
20185	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20186}
20187
20188// InterconnectLocationListWarning: [Output Only] Informational warning
20189// message.
20190type InterconnectLocationListWarning struct {
20191	// Code: [Output Only] A warning code, if applicable. For example,
20192	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
20193	// the response.
20194	//
20195	// Possible values:
20196	//   "CLEANUP_FAILED"
20197	//   "DEPRECATED_RESOURCE_USED"
20198	//   "DEPRECATED_TYPE_USED"
20199	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
20200	//   "EXPERIMENTAL_TYPE_USED"
20201	//   "EXTERNAL_API_WARNING"
20202	//   "FIELD_VALUE_OVERRIDEN"
20203	//   "INJECTED_KERNELS_DEPRECATED"
20204	//   "MISSING_TYPE_DEPENDENCY"
20205	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
20206	//   "NEXT_HOP_CANNOT_IP_FORWARD"
20207	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
20208	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
20209	//   "NEXT_HOP_NOT_RUNNING"
20210	//   "NOT_CRITICAL_ERROR"
20211	//   "NO_RESULTS_ON_PAGE"
20212	//   "REQUIRED_TOS_AGREEMENT"
20213	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
20214	//   "RESOURCE_NOT_DELETED"
20215	//   "SCHEMA_VALIDATION_IGNORED"
20216	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
20217	//   "UNDECLARED_PROPERTIES"
20218	//   "UNREACHABLE"
20219	Code string `json:"code,omitempty"`
20220
20221	// Data: [Output Only] Metadata about this warning in key: value format.
20222	// For example:
20223	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
20224	Data []*InterconnectLocationListWarningData `json:"data,omitempty"`
20225
20226	// Message: [Output Only] A human-readable description of the warning
20227	// code.
20228	Message string `json:"message,omitempty"`
20229
20230	// ForceSendFields is a list of field names (e.g. "Code") to
20231	// unconditionally include in API requests. By default, fields with
20232	// empty values are omitted from API requests. However, any non-pointer,
20233	// non-interface field appearing in ForceSendFields will be sent to the
20234	// server regardless of whether the field is empty or not. This may be
20235	// used to include empty fields in Patch requests.
20236	ForceSendFields []string `json:"-"`
20237
20238	// NullFields is a list of field names (e.g. "Code") to include in API
20239	// requests with the JSON null value. By default, fields with empty
20240	// values are omitted from API requests. However, any field with an
20241	// empty value appearing in NullFields will be sent to the server as
20242	// null. It is an error if a field in this list has a non-empty value.
20243	// This may be used to include null fields in Patch requests.
20244	NullFields []string `json:"-"`
20245}
20246
20247func (s *InterconnectLocationListWarning) MarshalJSON() ([]byte, error) {
20248	type NoMethod InterconnectLocationListWarning
20249	raw := NoMethod(*s)
20250	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20251}
20252
20253type InterconnectLocationListWarningData struct {
20254	// Key: [Output Only] A key that provides more detail on the warning
20255	// being returned. For example, for warnings where there are no results
20256	// in a list request for a particular zone, this key might be scope and
20257	// the key value might be the zone name. Other examples might be a key
20258	// indicating a deprecated resource and a suggested replacement, or a
20259	// warning about invalid network settings (for example, if an instance
20260	// attempts to perform IP forwarding but is not enabled for IP
20261	// forwarding).
20262	Key string `json:"key,omitempty"`
20263
20264	// Value: [Output Only] A warning data value corresponding to the key.
20265	Value string `json:"value,omitempty"`
20266
20267	// ForceSendFields is a list of field names (e.g. "Key") to
20268	// unconditionally include in API requests. By default, fields with
20269	// empty values are omitted from API requests. However, any non-pointer,
20270	// non-interface field appearing in ForceSendFields will be sent to the
20271	// server regardless of whether the field is empty or not. This may be
20272	// used to include empty fields in Patch requests.
20273	ForceSendFields []string `json:"-"`
20274
20275	// NullFields is a list of field names (e.g. "Key") to include in API
20276	// requests with the JSON null value. By default, fields with empty
20277	// values are omitted from API requests. However, any field with an
20278	// empty value appearing in NullFields will be sent to the server as
20279	// null. It is an error if a field in this list has a non-empty value.
20280	// This may be used to include null fields in Patch requests.
20281	NullFields []string `json:"-"`
20282}
20283
20284func (s *InterconnectLocationListWarningData) MarshalJSON() ([]byte, error) {
20285	type NoMethod InterconnectLocationListWarningData
20286	raw := NoMethod(*s)
20287	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20288}
20289
20290// InterconnectLocationRegionInfo: Information about any potential
20291// InterconnectAttachments between an Interconnect at a specific
20292// InterconnectLocation, and a specific Cloud Region.
20293type InterconnectLocationRegionInfo struct {
20294	// ExpectedRttMs: Expected round-trip time in milliseconds, from this
20295	// InterconnectLocation to a VM in this region.
20296	ExpectedRttMs int64 `json:"expectedRttMs,omitempty,string"`
20297
20298	// LocationPresence: Identifies the network presence of this location.
20299	//
20300	// Possible values:
20301	//   "GLOBAL"
20302	//   "LOCAL_REGION"
20303	//   "LP_GLOBAL"
20304	//   "LP_LOCAL_REGION"
20305	LocationPresence string `json:"locationPresence,omitempty"`
20306
20307	// Region: URL for the region of this location.
20308	Region string `json:"region,omitempty"`
20309
20310	// ForceSendFields is a list of field names (e.g. "ExpectedRttMs") to
20311	// unconditionally include in API requests. By default, fields with
20312	// empty values are omitted from API requests. However, any non-pointer,
20313	// non-interface field appearing in ForceSendFields will be sent to the
20314	// server regardless of whether the field is empty or not. This may be
20315	// used to include empty fields in Patch requests.
20316	ForceSendFields []string `json:"-"`
20317
20318	// NullFields is a list of field names (e.g. "ExpectedRttMs") to include
20319	// in API requests with the JSON null value. By default, fields with
20320	// empty values are omitted from API requests. However, any field with
20321	// an empty value appearing in NullFields will be sent to the server as
20322	// null. It is an error if a field in this list has a non-empty value.
20323	// This may be used to include null fields in Patch requests.
20324	NullFields []string `json:"-"`
20325}
20326
20327func (s *InterconnectLocationRegionInfo) MarshalJSON() ([]byte, error) {
20328	type NoMethod InterconnectLocationRegionInfo
20329	raw := NoMethod(*s)
20330	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20331}
20332
20333// InterconnectOutageNotification: Description of a planned outage on
20334// this Interconnect. Next id: 9
20335type InterconnectOutageNotification struct {
20336	// AffectedCircuits: If issue_type is IT_PARTIAL_OUTAGE, a list of the
20337	// Google-side circuit IDs that will be affected.
20338	AffectedCircuits []string `json:"affectedCircuits,omitempty"`
20339
20340	// Description: A description about the purpose of the outage.
20341	Description string `json:"description,omitempty"`
20342
20343	// EndTime: Scheduled end time for the outage (milliseconds since Unix
20344	// epoch).
20345	EndTime int64 `json:"endTime,omitempty,string"`
20346
20347	// IssueType: Form this outage is expected to take, which can take one
20348	// of the following values:
20349	// - OUTAGE: The Interconnect may be completely out of service for some
20350	// or all of the specified window.
20351	// - PARTIAL_OUTAGE: Some circuits comprising the Interconnect as a
20352	// whole should remain up, but with reduced bandwidth. Note that the
20353	// versions of this enum prefixed with "IT_" have been deprecated in
20354	// favor of the unprefixed values.
20355	//
20356	// Possible values:
20357	//   "IT_OUTAGE"
20358	//   "IT_PARTIAL_OUTAGE"
20359	//   "OUTAGE"
20360	//   "PARTIAL_OUTAGE"
20361	IssueType string `json:"issueType,omitempty"`
20362
20363	// Name: Unique identifier for this outage notification.
20364	Name string `json:"name,omitempty"`
20365
20366	// Source: The party that generated this notification, which can take
20367	// the following value:
20368	// - GOOGLE: this notification as generated by Google. Note that the
20369	// value of NSRC_GOOGLE has been deprecated in favor of GOOGLE.
20370	//
20371	// Possible values:
20372	//   "GOOGLE"
20373	//   "NSRC_GOOGLE"
20374	Source string `json:"source,omitempty"`
20375
20376	// StartTime: Scheduled start time for the outage (milliseconds since
20377	// Unix epoch).
20378	StartTime int64 `json:"startTime,omitempty,string"`
20379
20380	// State: State of this notification, which can take one of the
20381	// following values:
20382	// - ACTIVE: This outage notification is active. The event could be in
20383	// the past, present, or future. See start_time and end_time for
20384	// scheduling.
20385	// - CANCELLED: The outage associated with this notification was
20386	// cancelled before the outage was due to start. Note that the versions
20387	// of this enum prefixed with "NS_" have been deprecated in favor of the
20388	// unprefixed values.
20389	//
20390	// Possible values:
20391	//   "ACTIVE"
20392	//   "CANCELLED"
20393	//   "COMPLETED"
20394	//   "NS_ACTIVE"
20395	//   "NS_CANCELED"
20396	State string `json:"state,omitempty"`
20397
20398	// ForceSendFields is a list of field names (e.g. "AffectedCircuits") to
20399	// unconditionally include in API requests. By default, fields with
20400	// empty values are omitted from API requests. However, any non-pointer,
20401	// non-interface field appearing in ForceSendFields will be sent to the
20402	// server regardless of whether the field is empty or not. This may be
20403	// used to include empty fields in Patch requests.
20404	ForceSendFields []string `json:"-"`
20405
20406	// NullFields is a list of field names (e.g. "AffectedCircuits") to
20407	// include in API requests with the JSON null value. By default, fields
20408	// with empty values are omitted from API requests. However, any field
20409	// with an empty value appearing in NullFields will be sent to the
20410	// server as null. It is an error if a field in this list has a
20411	// non-empty value. This may be used to include null fields in Patch
20412	// requests.
20413	NullFields []string `json:"-"`
20414}
20415
20416func (s *InterconnectOutageNotification) MarshalJSON() ([]byte, error) {
20417	type NoMethod InterconnectOutageNotification
20418	raw := NoMethod(*s)
20419	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20420}
20421
20422// InterconnectsGetDiagnosticsResponse: Response for the
20423// InterconnectsGetDiagnosticsRequest.
20424type InterconnectsGetDiagnosticsResponse struct {
20425	Result *InterconnectDiagnostics `json:"result,omitempty"`
20426
20427	// ServerResponse contains the HTTP response code and headers from the
20428	// server.
20429	googleapi.ServerResponse `json:"-"`
20430
20431	// ForceSendFields is a list of field names (e.g. "Result") to
20432	// unconditionally include in API requests. By default, fields with
20433	// empty values are omitted from API requests. However, any non-pointer,
20434	// non-interface field appearing in ForceSendFields will be sent to the
20435	// server regardless of whether the field is empty or not. This may be
20436	// used to include empty fields in Patch requests.
20437	ForceSendFields []string `json:"-"`
20438
20439	// NullFields is a list of field names (e.g. "Result") to include in API
20440	// requests with the JSON null value. By default, fields with empty
20441	// values are omitted from API requests. However, any field with an
20442	// empty value appearing in NullFields will be sent to the server as
20443	// null. It is an error if a field in this list has a non-empty value.
20444	// This may be used to include null fields in Patch requests.
20445	NullFields []string `json:"-"`
20446}
20447
20448func (s *InterconnectsGetDiagnosticsResponse) MarshalJSON() ([]byte, error) {
20449	type NoMethod InterconnectsGetDiagnosticsResponse
20450	raw := NoMethod(*s)
20451	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20452}
20453
20454type InternalIpAddress struct {
20455	// Cidr: IP CIDR address or range.
20456	Cidr string `json:"cidr,omitempty"`
20457
20458	// Owner: The owner of the internal IP address.
20459	Owner string `json:"owner,omitempty"`
20460
20461	// Purpose: The purpose of the internal IP address if applicable.
20462	Purpose string `json:"purpose,omitempty"`
20463
20464	// Region: The region of the internal IP address if applicable.
20465	Region string `json:"region,omitempty"`
20466
20467	// Type: The type of the internal IP address.
20468	//
20469	// Possible values:
20470	//   "PEER_RESERVED"
20471	//   "PEER_USED"
20472	//   "REMOTE_RESERVED"
20473	//   "REMOTE_USED"
20474	//   "RESERVED"
20475	//   "SUBNETWORK"
20476	//   "TYPE_UNSPECIFIED"
20477	Type string `json:"type,omitempty"`
20478
20479	// ForceSendFields is a list of field names (e.g. "Cidr") to
20480	// unconditionally include in API requests. By default, fields with
20481	// empty values are omitted from API requests. However, any non-pointer,
20482	// non-interface field appearing in ForceSendFields will be sent to the
20483	// server regardless of whether the field is empty or not. This may be
20484	// used to include empty fields in Patch requests.
20485	ForceSendFields []string `json:"-"`
20486
20487	// NullFields is a list of field names (e.g. "Cidr") to include in API
20488	// requests with the JSON null value. By default, fields with empty
20489	// values are omitted from API requests. However, any field with an
20490	// empty value appearing in NullFields will be sent to the server as
20491	// null. It is an error if a field in this list has a non-empty value.
20492	// This may be used to include null fields in Patch requests.
20493	NullFields []string `json:"-"`
20494}
20495
20496func (s *InternalIpAddress) MarshalJSON() ([]byte, error) {
20497	type NoMethod InternalIpAddress
20498	raw := NoMethod(*s)
20499	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20500}
20501
20502type InternalIpOwner struct {
20503	// IpCidrRange: IP CIDR range being owned.
20504	IpCidrRange string `json:"ipCidrRange,omitempty"`
20505
20506	// Owners: URLs of the IP owners of the IP CIDR range.
20507	Owners []string `json:"owners,omitempty"`
20508
20509	// SystemOwned: Whether this IP CIDR range is reserved for system use.
20510	SystemOwned bool `json:"systemOwned,omitempty"`
20511
20512	// ForceSendFields is a list of field names (e.g. "IpCidrRange") to
20513	// unconditionally include in API requests. By default, fields with
20514	// empty values are omitted from API requests. However, any non-pointer,
20515	// non-interface field appearing in ForceSendFields will be sent to the
20516	// server regardless of whether the field is empty or not. This may be
20517	// used to include empty fields in Patch requests.
20518	ForceSendFields []string `json:"-"`
20519
20520	// NullFields is a list of field names (e.g. "IpCidrRange") to include
20521	// in API requests with the JSON null value. By default, fields with
20522	// empty values are omitted from API requests. However, any field with
20523	// an empty value appearing in NullFields will be sent to the server as
20524	// null. It is an error if a field in this list has a non-empty value.
20525	// This may be used to include null fields in Patch requests.
20526	NullFields []string `json:"-"`
20527}
20528
20529func (s *InternalIpOwner) MarshalJSON() ([]byte, error) {
20530	type NoMethod InternalIpOwner
20531	raw := NoMethod(*s)
20532	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20533}
20534
20535type IpAddressesList struct {
20536	// Id: [Output Only] Unique identifier for the resource; defined by the
20537	// server.
20538	Id string `json:"id,omitempty"`
20539
20540	// Items: A list of InternalIpAddress resources.
20541	Items []*InternalIpAddress `json:"items,omitempty"`
20542
20543	// Kind: [Output Only] Type of resource. Always compute#ipAddressesList
20544	// for IP addresses lists.
20545	Kind string `json:"kind,omitempty"`
20546
20547	// NextPageToken: [Output Only] This token allows you to get the next
20548	// page of results for list requests. If the number of results is larger
20549	// than maxResults, use the nextPageToken as a value for the query
20550	// parameter pageToken in the next list request. Subsequent list
20551	// requests will have their own nextPageToken to continue paging through
20552	// the results.
20553	NextPageToken string `json:"nextPageToken,omitempty"`
20554
20555	// SelfLink: [Output Only] Server-defined URL for this resource.
20556	SelfLink string `json:"selfLink,omitempty"`
20557
20558	// Warning: [Output Only] Informational warning message.
20559	Warning *IpAddressesListWarning `json:"warning,omitempty"`
20560
20561	// ServerResponse contains the HTTP response code and headers from the
20562	// server.
20563	googleapi.ServerResponse `json:"-"`
20564
20565	// ForceSendFields is a list of field names (e.g. "Id") to
20566	// unconditionally include in API requests. By default, fields with
20567	// empty values are omitted from API requests. However, any non-pointer,
20568	// non-interface field appearing in ForceSendFields will be sent to the
20569	// server regardless of whether the field is empty or not. This may be
20570	// used to include empty fields in Patch requests.
20571	ForceSendFields []string `json:"-"`
20572
20573	// NullFields is a list of field names (e.g. "Id") to include in API
20574	// requests with the JSON null value. By default, fields with empty
20575	// values are omitted from API requests. However, any field with an
20576	// empty value appearing in NullFields will be sent to the server as
20577	// null. It is an error if a field in this list has a non-empty value.
20578	// This may be used to include null fields in Patch requests.
20579	NullFields []string `json:"-"`
20580}
20581
20582func (s *IpAddressesList) MarshalJSON() ([]byte, error) {
20583	type NoMethod IpAddressesList
20584	raw := NoMethod(*s)
20585	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20586}
20587
20588// IpAddressesListWarning: [Output Only] Informational warning message.
20589type IpAddressesListWarning struct {
20590	// Code: [Output Only] A warning code, if applicable. For example,
20591	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
20592	// the response.
20593	//
20594	// Possible values:
20595	//   "CLEANUP_FAILED"
20596	//   "DEPRECATED_RESOURCE_USED"
20597	//   "DEPRECATED_TYPE_USED"
20598	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
20599	//   "EXPERIMENTAL_TYPE_USED"
20600	//   "EXTERNAL_API_WARNING"
20601	//   "FIELD_VALUE_OVERRIDEN"
20602	//   "INJECTED_KERNELS_DEPRECATED"
20603	//   "MISSING_TYPE_DEPENDENCY"
20604	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
20605	//   "NEXT_HOP_CANNOT_IP_FORWARD"
20606	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
20607	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
20608	//   "NEXT_HOP_NOT_RUNNING"
20609	//   "NOT_CRITICAL_ERROR"
20610	//   "NO_RESULTS_ON_PAGE"
20611	//   "REQUIRED_TOS_AGREEMENT"
20612	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
20613	//   "RESOURCE_NOT_DELETED"
20614	//   "SCHEMA_VALIDATION_IGNORED"
20615	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
20616	//   "UNDECLARED_PROPERTIES"
20617	//   "UNREACHABLE"
20618	Code string `json:"code,omitempty"`
20619
20620	// Data: [Output Only] Metadata about this warning in key: value format.
20621	// For example:
20622	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
20623	Data []*IpAddressesListWarningData `json:"data,omitempty"`
20624
20625	// Message: [Output Only] A human-readable description of the warning
20626	// code.
20627	Message string `json:"message,omitempty"`
20628
20629	// ForceSendFields is a list of field names (e.g. "Code") to
20630	// unconditionally include in API requests. By default, fields with
20631	// empty values are omitted from API requests. However, any non-pointer,
20632	// non-interface field appearing in ForceSendFields will be sent to the
20633	// server regardless of whether the field is empty or not. This may be
20634	// used to include empty fields in Patch requests.
20635	ForceSendFields []string `json:"-"`
20636
20637	// NullFields is a list of field names (e.g. "Code") to include in API
20638	// requests with the JSON null value. By default, fields with empty
20639	// values are omitted from API requests. However, any field with an
20640	// empty value appearing in NullFields will be sent to the server as
20641	// null. It is an error if a field in this list has a non-empty value.
20642	// This may be used to include null fields in Patch requests.
20643	NullFields []string `json:"-"`
20644}
20645
20646func (s *IpAddressesListWarning) MarshalJSON() ([]byte, error) {
20647	type NoMethod IpAddressesListWarning
20648	raw := NoMethod(*s)
20649	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20650}
20651
20652type IpAddressesListWarningData struct {
20653	// Key: [Output Only] A key that provides more detail on the warning
20654	// being returned. For example, for warnings where there are no results
20655	// in a list request for a particular zone, this key might be scope and
20656	// the key value might be the zone name. Other examples might be a key
20657	// indicating a deprecated resource and a suggested replacement, or a
20658	// warning about invalid network settings (for example, if an instance
20659	// attempts to perform IP forwarding but is not enabled for IP
20660	// forwarding).
20661	Key string `json:"key,omitempty"`
20662
20663	// Value: [Output Only] A warning data value corresponding to the key.
20664	Value string `json:"value,omitempty"`
20665
20666	// ForceSendFields is a list of field names (e.g. "Key") to
20667	// unconditionally include in API requests. By default, fields with
20668	// empty values are omitted from API requests. However, any non-pointer,
20669	// non-interface field appearing in ForceSendFields will be sent to the
20670	// server regardless of whether the field is empty or not. This may be
20671	// used to include empty fields in Patch requests.
20672	ForceSendFields []string `json:"-"`
20673
20674	// NullFields is a list of field names (e.g. "Key") to include in API
20675	// requests with the JSON null value. By default, fields with empty
20676	// values are omitted from API requests. However, any field with an
20677	// empty value appearing in NullFields will be sent to the server as
20678	// null. It is an error if a field in this list has a non-empty value.
20679	// This may be used to include null fields in Patch requests.
20680	NullFields []string `json:"-"`
20681}
20682
20683func (s *IpAddressesListWarningData) MarshalJSON() ([]byte, error) {
20684	type NoMethod IpAddressesListWarningData
20685	raw := NoMethod(*s)
20686	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20687}
20688
20689// IpOwnerList: Contains a list of IP owners.
20690type IpOwnerList struct {
20691	// Id: [Output Only] Unique identifier for the resource; defined by the
20692	// server.
20693	Id string `json:"id,omitempty"`
20694
20695	// Items: A list of InternalIpOwner resources.
20696	Items []*InternalIpOwner `json:"items,omitempty"`
20697
20698	// Kind: [Output Only] Type of resource. Always compute#ipOwnerList for
20699	// lists of IP owners.
20700	Kind string `json:"kind,omitempty"`
20701
20702	// NextPageToken: [Output Only] This token allows you to get the next
20703	// page of results for list requests. If the number of results is larger
20704	// than maxResults, use the nextPageToken as a value for the query
20705	// parameter pageToken in the next list request. Subsequent list
20706	// requests will have their own nextPageToken to continue paging through
20707	// the results.
20708	NextPageToken string `json:"nextPageToken,omitempty"`
20709
20710	// SelfLink: [Output Only] Server-defined URL for this resource.
20711	SelfLink string `json:"selfLink,omitempty"`
20712
20713	// Warning: [Output Only] Informational warning message.
20714	Warning *IpOwnerListWarning `json:"warning,omitempty"`
20715
20716	// ServerResponse contains the HTTP response code and headers from the
20717	// server.
20718	googleapi.ServerResponse `json:"-"`
20719
20720	// ForceSendFields is a list of field names (e.g. "Id") to
20721	// unconditionally include in API requests. By default, fields with
20722	// empty values are omitted from API requests. However, any non-pointer,
20723	// non-interface field appearing in ForceSendFields will be sent to the
20724	// server regardless of whether the field is empty or not. This may be
20725	// used to include empty fields in Patch requests.
20726	ForceSendFields []string `json:"-"`
20727
20728	// NullFields is a list of field names (e.g. "Id") to include in API
20729	// requests with the JSON null value. By default, fields with empty
20730	// values are omitted from API requests. However, any field with an
20731	// empty value appearing in NullFields will be sent to the server as
20732	// null. It is an error if a field in this list has a non-empty value.
20733	// This may be used to include null fields in Patch requests.
20734	NullFields []string `json:"-"`
20735}
20736
20737func (s *IpOwnerList) MarshalJSON() ([]byte, error) {
20738	type NoMethod IpOwnerList
20739	raw := NoMethod(*s)
20740	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20741}
20742
20743// IpOwnerListWarning: [Output Only] Informational warning message.
20744type IpOwnerListWarning struct {
20745	// Code: [Output Only] A warning code, if applicable. For example,
20746	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
20747	// the response.
20748	//
20749	// Possible values:
20750	//   "CLEANUP_FAILED"
20751	//   "DEPRECATED_RESOURCE_USED"
20752	//   "DEPRECATED_TYPE_USED"
20753	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
20754	//   "EXPERIMENTAL_TYPE_USED"
20755	//   "EXTERNAL_API_WARNING"
20756	//   "FIELD_VALUE_OVERRIDEN"
20757	//   "INJECTED_KERNELS_DEPRECATED"
20758	//   "MISSING_TYPE_DEPENDENCY"
20759	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
20760	//   "NEXT_HOP_CANNOT_IP_FORWARD"
20761	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
20762	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
20763	//   "NEXT_HOP_NOT_RUNNING"
20764	//   "NOT_CRITICAL_ERROR"
20765	//   "NO_RESULTS_ON_PAGE"
20766	//   "REQUIRED_TOS_AGREEMENT"
20767	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
20768	//   "RESOURCE_NOT_DELETED"
20769	//   "SCHEMA_VALIDATION_IGNORED"
20770	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
20771	//   "UNDECLARED_PROPERTIES"
20772	//   "UNREACHABLE"
20773	Code string `json:"code,omitempty"`
20774
20775	// Data: [Output Only] Metadata about this warning in key: value format.
20776	// For example:
20777	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
20778	Data []*IpOwnerListWarningData `json:"data,omitempty"`
20779
20780	// Message: [Output Only] A human-readable description of the warning
20781	// code.
20782	Message string `json:"message,omitempty"`
20783
20784	// ForceSendFields is a list of field names (e.g. "Code") to
20785	// unconditionally include in API requests. By default, fields with
20786	// empty values are omitted from API requests. However, any non-pointer,
20787	// non-interface field appearing in ForceSendFields will be sent to the
20788	// server regardless of whether the field is empty or not. This may be
20789	// used to include empty fields in Patch requests.
20790	ForceSendFields []string `json:"-"`
20791
20792	// NullFields is a list of field names (e.g. "Code") to include in API
20793	// requests with the JSON null value. By default, fields with empty
20794	// values are omitted from API requests. However, any field with an
20795	// empty value appearing in NullFields will be sent to the server as
20796	// null. It is an error if a field in this list has a non-empty value.
20797	// This may be used to include null fields in Patch requests.
20798	NullFields []string `json:"-"`
20799}
20800
20801func (s *IpOwnerListWarning) MarshalJSON() ([]byte, error) {
20802	type NoMethod IpOwnerListWarning
20803	raw := NoMethod(*s)
20804	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20805}
20806
20807type IpOwnerListWarningData struct {
20808	// Key: [Output Only] A key that provides more detail on the warning
20809	// being returned. For example, for warnings where there are no results
20810	// in a list request for a particular zone, this key might be scope and
20811	// the key value might be the zone name. Other examples might be a key
20812	// indicating a deprecated resource and a suggested replacement, or a
20813	// warning about invalid network settings (for example, if an instance
20814	// attempts to perform IP forwarding but is not enabled for IP
20815	// forwarding).
20816	Key string `json:"key,omitempty"`
20817
20818	// Value: [Output Only] A warning data value corresponding to the key.
20819	Value string `json:"value,omitempty"`
20820
20821	// ForceSendFields is a list of field names (e.g. "Key") to
20822	// unconditionally include in API requests. By default, fields with
20823	// empty values are omitted from API requests. However, any non-pointer,
20824	// non-interface field appearing in ForceSendFields will be sent to the
20825	// server regardless of whether the field is empty or not. This may be
20826	// used to include empty fields in Patch requests.
20827	ForceSendFields []string `json:"-"`
20828
20829	// NullFields is a list of field names (e.g. "Key") to include in API
20830	// requests with the JSON null value. By default, fields with empty
20831	// values are omitted from API requests. However, any field with an
20832	// empty value appearing in NullFields will be sent to the server as
20833	// null. It is an error if a field in this list has a non-empty value.
20834	// This may be used to include null fields in Patch requests.
20835	NullFields []string `json:"-"`
20836}
20837
20838func (s *IpOwnerListWarningData) MarshalJSON() ([]byte, error) {
20839	type NoMethod IpOwnerListWarningData
20840	raw := NoMethod(*s)
20841	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20842}
20843
20844// Jwt: JWT configuration for origin authentication.
20845type Jwt struct {
20846	// Audiences: A JWT containing any of these audiences will be accepted.
20847	// The service name will be accepted if audiences is empty. Examples:
20848	// bookstore_android.apps.googleusercontent.com,
20849	// bookstore_web.apps.googleusercontent.com
20850	Audiences []string `json:"audiences,omitempty"`
20851
20852	// Issuer: Identifies the issuer that issued the JWT, which is usually a
20853	// URL or an email address. Examples: https://securetoken.google.com,
20854	// 1234567-compute@developer.gserviceaccount.com
20855	Issuer string `json:"issuer,omitempty"`
20856
20857	// JwksPublicKeys: The provider?s public key set to validate the
20858	// signature of the JWT.
20859	JwksPublicKeys string `json:"jwksPublicKeys,omitempty"`
20860
20861	// JwtHeaders: jwt_headers and jwt_params define where to extract the
20862	// JWT from an HTTP request. If no explicit location is specified, the
20863	// following default locations are tried in order:
20864	//
20865	// 1. The Authorization header using the Bearer schema. See `here `_.
20866	// Example:
20867	//
20868	// Authorization: Bearer .
20869	//
20870	// 2. `access_token` query parameter. See `this `_
20871	//
20872	// Multiple JWTs can be verified for a request. Each JWT has to be
20873	// extracted from the locations its issuer specified or from the default
20874	// locations.
20875	//
20876	// This field is set if JWT is sent in a request header. This field
20877	// specifies the header name. For example, if
20878	// `header=x-goog-iap-jwt-assertion`, the header format will be
20879	// x-goog-iap-jwt-assertion: .
20880	JwtHeaders []*JwtHeader `json:"jwtHeaders,omitempty"`
20881
20882	// JwtParams: This field is set if JWT is sent in a query parameter.
20883	// This field specifies the query parameter name. For example, if
20884	// jwt_params[0] is jwt_token, the JWT format in the query parameter is
20885	// /path?jwt_token=.
20886	JwtParams []string `json:"jwtParams,omitempty"`
20887
20888	// ForceSendFields is a list of field names (e.g. "Audiences") to
20889	// unconditionally include in API requests. By default, fields with
20890	// empty values are omitted from API requests. However, any non-pointer,
20891	// non-interface field appearing in ForceSendFields will be sent to the
20892	// server regardless of whether the field is empty or not. This may be
20893	// used to include empty fields in Patch requests.
20894	ForceSendFields []string `json:"-"`
20895
20896	// NullFields is a list of field names (e.g. "Audiences") to include in
20897	// API requests with the JSON null value. By default, fields with empty
20898	// values are omitted from API requests. However, any field with an
20899	// empty value appearing in NullFields will be sent to the server as
20900	// null. It is an error if a field in this list has a non-empty value.
20901	// This may be used to include null fields in Patch requests.
20902	NullFields []string `json:"-"`
20903}
20904
20905func (s *Jwt) MarshalJSON() ([]byte, error) {
20906	type NoMethod Jwt
20907	raw := NoMethod(*s)
20908	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20909}
20910
20911// JwtHeader: This message specifies a header location to extract JWT
20912// token.
20913type JwtHeader struct {
20914	// Name: The HTTP header name.
20915	Name string `json:"name,omitempty"`
20916
20917	// ValuePrefix: The value prefix. The value format is "value_prefix" For
20918	// example, for "Authorization: Bearer ", value_prefix="Bearer " with a
20919	// space at the end.
20920	ValuePrefix string `json:"valuePrefix,omitempty"`
20921
20922	// ForceSendFields is a list of field names (e.g. "Name") to
20923	// unconditionally include in API requests. By default, fields with
20924	// empty values are omitted from API requests. However, any non-pointer,
20925	// non-interface field appearing in ForceSendFields will be sent to the
20926	// server regardless of whether the field is empty or not. This may be
20927	// used to include empty fields in Patch requests.
20928	ForceSendFields []string `json:"-"`
20929
20930	// NullFields is a list of field names (e.g. "Name") to include in API
20931	// requests with the JSON null value. By default, fields with empty
20932	// values are omitted from API requests. However, any field with an
20933	// empty value appearing in NullFields will be sent to the server as
20934	// null. It is an error if a field in this list has a non-empty value.
20935	// This may be used to include null fields in Patch requests.
20936	NullFields []string `json:"-"`
20937}
20938
20939func (s *JwtHeader) MarshalJSON() ([]byte, error) {
20940	type NoMethod JwtHeader
20941	raw := NoMethod(*s)
20942	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20943}
20944
20945// License: A license resource.
20946type License struct {
20947	// ChargesUseFee: [Output Only] Deprecated. This field no longer
20948	// reflects whether a license charges a usage fee.
20949	ChargesUseFee bool `json:"chargesUseFee,omitempty"`
20950
20951	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
20952	// format.
20953	CreationTimestamp string `json:"creationTimestamp,omitempty"`
20954
20955	// Description: An optional textual description of the resource;
20956	// provided by the client when the resource is created.
20957	Description string `json:"description,omitempty"`
20958
20959	// Id: [Output Only] The unique identifier for the resource. This
20960	// identifier is defined by the server.
20961	Id uint64 `json:"id,omitempty,string"`
20962
20963	// Kind: [Output Only] Type of resource. Always compute#license for
20964	// licenses.
20965	Kind string `json:"kind,omitempty"`
20966
20967	// LicenseCode: [Output Only] The unique code used to attach this
20968	// license to images, snapshots, and disks.
20969	LicenseCode uint64 `json:"licenseCode,omitempty,string"`
20970
20971	// Name: Name of the resource. The name must be 1-63 characters long and
20972	// comply with RFC1035.
20973	Name string `json:"name,omitempty"`
20974
20975	ResourceRequirements *LicenseResourceRequirements `json:"resourceRequirements,omitempty"`
20976
20977	// SelfLink: [Output Only] Server-defined URL for the resource.
20978	SelfLink string `json:"selfLink,omitempty"`
20979
20980	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
20981	// with the resource id.
20982	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
20983
20984	// Transferable: If false, licenses will not be copied from the source
20985	// resource when creating an image from a disk, disk from snapshot, or
20986	// snapshot from disk.
20987	Transferable bool `json:"transferable,omitempty"`
20988
20989	// ServerResponse contains the HTTP response code and headers from the
20990	// server.
20991	googleapi.ServerResponse `json:"-"`
20992
20993	// ForceSendFields is a list of field names (e.g. "ChargesUseFee") to
20994	// unconditionally include in API requests. By default, fields with
20995	// empty values are omitted from API requests. However, any non-pointer,
20996	// non-interface field appearing in ForceSendFields will be sent to the
20997	// server regardless of whether the field is empty or not. This may be
20998	// used to include empty fields in Patch requests.
20999	ForceSendFields []string `json:"-"`
21000
21001	// NullFields is a list of field names (e.g. "ChargesUseFee") to include
21002	// in API requests with the JSON null value. By default, fields with
21003	// empty values are omitted from API requests. However, any field with
21004	// an empty value appearing in NullFields will be sent to the server as
21005	// null. It is an error if a field in this list has a non-empty value.
21006	// This may be used to include null fields in Patch requests.
21007	NullFields []string `json:"-"`
21008}
21009
21010func (s *License) MarshalJSON() ([]byte, error) {
21011	type NoMethod License
21012	raw := NoMethod(*s)
21013	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21014}
21015
21016type LicenseCode struct {
21017	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
21018	// format.
21019	CreationTimestamp string `json:"creationTimestamp,omitempty"`
21020
21021	// Description: [Output Only] Description of this License Code.
21022	Description string `json:"description,omitempty"`
21023
21024	// Id: [Output Only] The unique identifier for the resource. This
21025	// identifier is defined by the server.
21026	Id uint64 `json:"id,omitempty,string"`
21027
21028	// Kind: [Output Only] Type of resource. Always compute#licenseCode for
21029	// licenses.
21030	Kind string `json:"kind,omitempty"`
21031
21032	// LicenseAlias: [Output Only] URL and description aliases of Licenses
21033	// with the same License Code.
21034	LicenseAlias []*LicenseCodeLicenseAlias `json:"licenseAlias,omitempty"`
21035
21036	// Name: [Output Only] Name of the resource. The name is 1-20 characters
21037	// long and must be a valid 64 bit integer.
21038	Name string `json:"name,omitempty"`
21039
21040	// SelfLink: [Output Only] Server-defined URL for the resource.
21041	SelfLink string `json:"selfLink,omitempty"`
21042
21043	// State: [Output Only] Current state of this License Code.
21044	//
21045	// Possible values:
21046	//   "DISABLED"
21047	//   "ENABLED"
21048	//   "RESTRICTED"
21049	//   "STATE_UNSPECIFIED"
21050	//   "TERMINATED"
21051	State string `json:"state,omitempty"`
21052
21053	// Transferable: [Output Only] If true, the license will remain attached
21054	// when creating images or snapshots from disks. Otherwise, the license
21055	// is not transferred.
21056	Transferable bool `json:"transferable,omitempty"`
21057
21058	// ServerResponse contains the HTTP response code and headers from the
21059	// server.
21060	googleapi.ServerResponse `json:"-"`
21061
21062	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
21063	// to unconditionally include in API requests. By default, fields with
21064	// empty values are omitted from API requests. However, any non-pointer,
21065	// non-interface field appearing in ForceSendFields will be sent to the
21066	// server regardless of whether the field is empty or not. This may be
21067	// used to include empty fields in Patch requests.
21068	ForceSendFields []string `json:"-"`
21069
21070	// NullFields is a list of field names (e.g. "CreationTimestamp") to
21071	// include in API requests with the JSON null value. By default, fields
21072	// with empty values are omitted from API requests. However, any field
21073	// with an empty value appearing in NullFields will be sent to the
21074	// server as null. It is an error if a field in this list has a
21075	// non-empty value. This may be used to include null fields in Patch
21076	// requests.
21077	NullFields []string `json:"-"`
21078}
21079
21080func (s *LicenseCode) MarshalJSON() ([]byte, error) {
21081	type NoMethod LicenseCode
21082	raw := NoMethod(*s)
21083	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21084}
21085
21086type LicenseCodeLicenseAlias struct {
21087	// Description: [Output Only] Description of this License Code.
21088	Description string `json:"description,omitempty"`
21089
21090	// SelfLink: [Output Only] URL of license corresponding to this License
21091	// Code.
21092	SelfLink string `json:"selfLink,omitempty"`
21093
21094	// ForceSendFields is a list of field names (e.g. "Description") to
21095	// unconditionally include in API requests. By default, fields with
21096	// empty values are omitted from API requests. However, any non-pointer,
21097	// non-interface field appearing in ForceSendFields will be sent to the
21098	// server regardless of whether the field is empty or not. This may be
21099	// used to include empty fields in Patch requests.
21100	ForceSendFields []string `json:"-"`
21101
21102	// NullFields is a list of field names (e.g. "Description") to include
21103	// in API requests with the JSON null value. By default, fields with
21104	// empty values are omitted from API requests. However, any field with
21105	// an empty value appearing in NullFields will be sent to the server as
21106	// null. It is an error if a field in this list has a non-empty value.
21107	// This may be used to include null fields in Patch requests.
21108	NullFields []string `json:"-"`
21109}
21110
21111func (s *LicenseCodeLicenseAlias) MarshalJSON() ([]byte, error) {
21112	type NoMethod LicenseCodeLicenseAlias
21113	raw := NoMethod(*s)
21114	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21115}
21116
21117// LicenseResourceCommitment: Commitment for a particular license
21118// resource (a License Commitment is composed of one or more of these).
21119type LicenseResourceCommitment struct {
21120	// Amount: The number of licenses purchased.
21121	Amount int64 `json:"amount,omitempty,string"`
21122
21123	// CoresPerLicense: Specifies the core range of the instance for which
21124	// this license applies.
21125	CoresPerLicense string `json:"coresPerLicense,omitempty"`
21126
21127	// License: Any applicable license URI.
21128	License string `json:"license,omitempty"`
21129
21130	// ForceSendFields is a list of field names (e.g. "Amount") to
21131	// unconditionally include in API requests. By default, fields with
21132	// empty values are omitted from API requests. However, any non-pointer,
21133	// non-interface field appearing in ForceSendFields will be sent to the
21134	// server regardless of whether the field is empty or not. This may be
21135	// used to include empty fields in Patch requests.
21136	ForceSendFields []string `json:"-"`
21137
21138	// NullFields is a list of field names (e.g. "Amount") to include in API
21139	// requests with the JSON null value. By default, fields with empty
21140	// values are omitted from API requests. However, any field with an
21141	// empty value appearing in NullFields will be sent to the server as
21142	// null. It is an error if a field in this list has a non-empty value.
21143	// This may be used to include null fields in Patch requests.
21144	NullFields []string `json:"-"`
21145}
21146
21147func (s *LicenseResourceCommitment) MarshalJSON() ([]byte, error) {
21148	type NoMethod LicenseResourceCommitment
21149	raw := NoMethod(*s)
21150	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21151}
21152
21153type LicenseResourceRequirements struct {
21154	// MinGuestCpuCount: Minimum number of guest cpus required to use the
21155	// Instance. Enforced at Instance creation and Instance start.
21156	MinGuestCpuCount int64 `json:"minGuestCpuCount,omitempty"`
21157
21158	// MinMemoryMb: Minimum memory required to use the Instance. Enforced at
21159	// Instance creation and Instance start.
21160	MinMemoryMb int64 `json:"minMemoryMb,omitempty"`
21161
21162	// ForceSendFields is a list of field names (e.g. "MinGuestCpuCount") to
21163	// unconditionally include in API requests. By default, fields with
21164	// empty values are omitted from API requests. However, any non-pointer,
21165	// non-interface field appearing in ForceSendFields will be sent to the
21166	// server regardless of whether the field is empty or not. This may be
21167	// used to include empty fields in Patch requests.
21168	ForceSendFields []string `json:"-"`
21169
21170	// NullFields is a list of field names (e.g. "MinGuestCpuCount") to
21171	// include in API requests with the JSON null value. By default, fields
21172	// with empty values are omitted from API requests. However, any field
21173	// with an empty value appearing in NullFields will be sent to the
21174	// server as null. It is an error if a field in this list has a
21175	// non-empty value. This may be used to include null fields in Patch
21176	// requests.
21177	NullFields []string `json:"-"`
21178}
21179
21180func (s *LicenseResourceRequirements) MarshalJSON() ([]byte, error) {
21181	type NoMethod LicenseResourceRequirements
21182	raw := NoMethod(*s)
21183	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21184}
21185
21186type LicensesListResponse struct {
21187	// Id: [Output Only] Unique identifier for the resource; defined by the
21188	// server.
21189	Id string `json:"id,omitempty"`
21190
21191	// Items: A list of License resources.
21192	Items []*License `json:"items,omitempty"`
21193
21194	// NextPageToken: [Output Only] This token allows you to get the next
21195	// page of results for list requests. If the number of results is larger
21196	// than maxResults, use the nextPageToken as a value for the query
21197	// parameter pageToken in the next list request. Subsequent list
21198	// requests will have their own nextPageToken to continue paging through
21199	// the results.
21200	NextPageToken string `json:"nextPageToken,omitempty"`
21201
21202	// SelfLink: [Output Only] Server-defined URL for this resource.
21203	SelfLink string `json:"selfLink,omitempty"`
21204
21205	// Warning: [Output Only] Informational warning message.
21206	Warning *LicensesListResponseWarning `json:"warning,omitempty"`
21207
21208	// ServerResponse contains the HTTP response code and headers from the
21209	// server.
21210	googleapi.ServerResponse `json:"-"`
21211
21212	// ForceSendFields is a list of field names (e.g. "Id") to
21213	// unconditionally include in API requests. By default, fields with
21214	// empty values are omitted from API requests. However, any non-pointer,
21215	// non-interface field appearing in ForceSendFields will be sent to the
21216	// server regardless of whether the field is empty or not. This may be
21217	// used to include empty fields in Patch requests.
21218	ForceSendFields []string `json:"-"`
21219
21220	// NullFields is a list of field names (e.g. "Id") to include in API
21221	// requests with the JSON null value. By default, fields with empty
21222	// values are omitted from API requests. However, any field with an
21223	// empty value appearing in NullFields will be sent to the server as
21224	// null. It is an error if a field in this list has a non-empty value.
21225	// This may be used to include null fields in Patch requests.
21226	NullFields []string `json:"-"`
21227}
21228
21229func (s *LicensesListResponse) MarshalJSON() ([]byte, error) {
21230	type NoMethod LicensesListResponse
21231	raw := NoMethod(*s)
21232	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21233}
21234
21235// LicensesListResponseWarning: [Output Only] Informational warning
21236// message.
21237type LicensesListResponseWarning struct {
21238	// Code: [Output Only] A warning code, if applicable. For example,
21239	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
21240	// the response.
21241	//
21242	// Possible values:
21243	//   "CLEANUP_FAILED"
21244	//   "DEPRECATED_RESOURCE_USED"
21245	//   "DEPRECATED_TYPE_USED"
21246	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
21247	//   "EXPERIMENTAL_TYPE_USED"
21248	//   "EXTERNAL_API_WARNING"
21249	//   "FIELD_VALUE_OVERRIDEN"
21250	//   "INJECTED_KERNELS_DEPRECATED"
21251	//   "MISSING_TYPE_DEPENDENCY"
21252	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
21253	//   "NEXT_HOP_CANNOT_IP_FORWARD"
21254	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
21255	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
21256	//   "NEXT_HOP_NOT_RUNNING"
21257	//   "NOT_CRITICAL_ERROR"
21258	//   "NO_RESULTS_ON_PAGE"
21259	//   "REQUIRED_TOS_AGREEMENT"
21260	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
21261	//   "RESOURCE_NOT_DELETED"
21262	//   "SCHEMA_VALIDATION_IGNORED"
21263	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
21264	//   "UNDECLARED_PROPERTIES"
21265	//   "UNREACHABLE"
21266	Code string `json:"code,omitempty"`
21267
21268	// Data: [Output Only] Metadata about this warning in key: value format.
21269	// For example:
21270	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
21271	Data []*LicensesListResponseWarningData `json:"data,omitempty"`
21272
21273	// Message: [Output Only] A human-readable description of the warning
21274	// code.
21275	Message string `json:"message,omitempty"`
21276
21277	// ForceSendFields is a list of field names (e.g. "Code") to
21278	// unconditionally include in API requests. By default, fields with
21279	// empty values are omitted from API requests. However, any non-pointer,
21280	// non-interface field appearing in ForceSendFields will be sent to the
21281	// server regardless of whether the field is empty or not. This may be
21282	// used to include empty fields in Patch requests.
21283	ForceSendFields []string `json:"-"`
21284
21285	// NullFields is a list of field names (e.g. "Code") to include in API
21286	// requests with the JSON null value. By default, fields with empty
21287	// values are omitted from API requests. However, any field with an
21288	// empty value appearing in NullFields will be sent to the server as
21289	// null. It is an error if a field in this list has a non-empty value.
21290	// This may be used to include null fields in Patch requests.
21291	NullFields []string `json:"-"`
21292}
21293
21294func (s *LicensesListResponseWarning) MarshalJSON() ([]byte, error) {
21295	type NoMethod LicensesListResponseWarning
21296	raw := NoMethod(*s)
21297	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21298}
21299
21300type LicensesListResponseWarningData struct {
21301	// Key: [Output Only] A key that provides more detail on the warning
21302	// being returned. For example, for warnings where there are no results
21303	// in a list request for a particular zone, this key might be scope and
21304	// the key value might be the zone name. Other examples might be a key
21305	// indicating a deprecated resource and a suggested replacement, or a
21306	// warning about invalid network settings (for example, if an instance
21307	// attempts to perform IP forwarding but is not enabled for IP
21308	// forwarding).
21309	Key string `json:"key,omitempty"`
21310
21311	// Value: [Output Only] A warning data value corresponding to the key.
21312	Value string `json:"value,omitempty"`
21313
21314	// ForceSendFields is a list of field names (e.g. "Key") to
21315	// unconditionally include in API requests. By default, fields with
21316	// empty values are omitted from API requests. However, any non-pointer,
21317	// non-interface field appearing in ForceSendFields will be sent to the
21318	// server regardless of whether the field is empty or not. This may be
21319	// used to include empty fields in Patch requests.
21320	ForceSendFields []string `json:"-"`
21321
21322	// NullFields is a list of field names (e.g. "Key") to include in API
21323	// requests with the JSON null value. By default, fields with empty
21324	// values are omitted from API requests. However, any field with an
21325	// empty value appearing in NullFields will be sent to the server as
21326	// null. It is an error if a field in this list has a non-empty value.
21327	// This may be used to include null fields in Patch requests.
21328	NullFields []string `json:"-"`
21329}
21330
21331func (s *LicensesListResponseWarningData) MarshalJSON() ([]byte, error) {
21332	type NoMethod LicensesListResponseWarningData
21333	raw := NoMethod(*s)
21334	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21335}
21336
21337type LocalDisk struct {
21338	// DiskCount: Specifies the number of such disks.
21339	DiskCount string `json:"diskCount,omitempty"`
21340
21341	// DiskSizeGb: Specifies the size of the disk in base-2 GB.
21342	DiskSizeGb string `json:"diskSizeGb,omitempty"`
21343
21344	// DiskType: Specifies the desired disk type on the node. This disk type
21345	// must be a local storage type (e.g.: local-ssd). Note that for
21346	// nodeTemplates, this should be the name of the disk type and not its
21347	// URL.
21348	DiskType string `json:"diskType,omitempty"`
21349
21350	// ForceSendFields is a list of field names (e.g. "DiskCount") to
21351	// unconditionally include in API requests. By default, fields with
21352	// empty values are omitted from API requests. However, any non-pointer,
21353	// non-interface field appearing in ForceSendFields will be sent to the
21354	// server regardless of whether the field is empty or not. This may be
21355	// used to include empty fields in Patch requests.
21356	ForceSendFields []string `json:"-"`
21357
21358	// NullFields is a list of field names (e.g. "DiskCount") to include in
21359	// API requests with the JSON null value. By default, fields with empty
21360	// values are omitted from API requests. However, any field with an
21361	// empty value appearing in NullFields will be sent to the server as
21362	// null. It is an error if a field in this list has a non-empty value.
21363	// This may be used to include null fields in Patch requests.
21364	NullFields []string `json:"-"`
21365}
21366
21367func (s *LocalDisk) MarshalJSON() ([]byte, error) {
21368	type NoMethod LocalDisk
21369	raw := NoMethod(*s)
21370	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21371}
21372
21373// LogConfig: Specifies what kind of log the caller must write
21374type LogConfig struct {
21375	// CloudAudit: Cloud audit options.
21376	CloudAudit *LogConfigCloudAuditOptions `json:"cloudAudit,omitempty"`
21377
21378	// Counter: Counter options.
21379	Counter *LogConfigCounterOptions `json:"counter,omitempty"`
21380
21381	// DataAccess: Data access options.
21382	DataAccess *LogConfigDataAccessOptions `json:"dataAccess,omitempty"`
21383
21384	// ForceSendFields is a list of field names (e.g. "CloudAudit") to
21385	// unconditionally include in API requests. By default, fields with
21386	// empty values are omitted from API requests. However, any non-pointer,
21387	// non-interface field appearing in ForceSendFields will be sent to the
21388	// server regardless of whether the field is empty or not. This may be
21389	// used to include empty fields in Patch requests.
21390	ForceSendFields []string `json:"-"`
21391
21392	// NullFields is a list of field names (e.g. "CloudAudit") to include in
21393	// API requests with the JSON null value. By default, fields with empty
21394	// values are omitted from API requests. However, any field with an
21395	// empty value appearing in NullFields will be sent to the server as
21396	// null. It is an error if a field in this list has a non-empty value.
21397	// This may be used to include null fields in Patch requests.
21398	NullFields []string `json:"-"`
21399}
21400
21401func (s *LogConfig) MarshalJSON() ([]byte, error) {
21402	type NoMethod LogConfig
21403	raw := NoMethod(*s)
21404	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21405}
21406
21407// LogConfigCloudAuditOptions: Write a Cloud Audit log
21408type LogConfigCloudAuditOptions struct {
21409	// AuthorizationLoggingOptions: Information used by the Cloud Audit
21410	// Logging pipeline.
21411	AuthorizationLoggingOptions *AuthorizationLoggingOptions `json:"authorizationLoggingOptions,omitempty"`
21412
21413	// LogName: The log_name to populate in the Cloud Audit Record.
21414	//
21415	// Possible values:
21416	//   "ADMIN_ACTIVITY"
21417	//   "DATA_ACCESS"
21418	//   "UNSPECIFIED_LOG_NAME"
21419	LogName string `json:"logName,omitempty"`
21420
21421	// ForceSendFields is a list of field names (e.g.
21422	// "AuthorizationLoggingOptions") to unconditionally include in API
21423	// requests. By default, fields with empty values are omitted from API
21424	// requests. However, any non-pointer, non-interface field appearing in
21425	// ForceSendFields will be sent to the server regardless of whether the
21426	// field is empty or not. This may be used to include empty fields in
21427	// Patch requests.
21428	ForceSendFields []string `json:"-"`
21429
21430	// NullFields is a list of field names (e.g.
21431	// "AuthorizationLoggingOptions") to include in API requests with the
21432	// JSON null value. By default, fields with empty values are omitted
21433	// from API requests. However, any field with an empty value appearing
21434	// in NullFields will be sent to the server as null. It is an error if a
21435	// field in this list has a non-empty value. This may be used to include
21436	// null fields in Patch requests.
21437	NullFields []string `json:"-"`
21438}
21439
21440func (s *LogConfigCloudAuditOptions) MarshalJSON() ([]byte, error) {
21441	type NoMethod LogConfigCloudAuditOptions
21442	raw := NoMethod(*s)
21443	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21444}
21445
21446// LogConfigCounterOptions: Increment a streamz counter with the
21447// specified metric and field names.
21448//
21449// Metric names should start with a '/', generally be lowercase-only,
21450// and end in "_count". Field names should not contain an initial slash.
21451// The actual exported metric names will have "/iam/policy"
21452// prepended.
21453//
21454// Field names correspond to IAM request parameters and field values are
21455// their respective values.
21456//
21457// Supported field names: - "authority", which is "[token]" if
21458// IAMContext.token is present, otherwise the value of
21459// IAMContext.authority_selector if present, and otherwise a
21460// representation of IAMContext.principal; or - "iam_principal", a
21461// representation of IAMContext.principal even if a token or authority
21462// selector is present; or - "" (empty string), resulting in a counter
21463// with no fields.
21464//
21465// Examples: counter { metric: "/debug_access_count" field:
21466// "iam_principal" } ==> increment counter
21467// /iam/policy/debug_access_count {iam_principal=[value of
21468// IAMContext.principal]}
21469//
21470// TODO(b/141846426): Consider supporting "authority" and
21471// "iam_principal" fields in the same counter.
21472type LogConfigCounterOptions struct {
21473	// CustomFields: Custom fields.
21474	CustomFields []*LogConfigCounterOptionsCustomField `json:"customFields,omitempty"`
21475
21476	// Field: The field value to attribute.
21477	Field string `json:"field,omitempty"`
21478
21479	// Metric: The metric to update.
21480	Metric string `json:"metric,omitempty"`
21481
21482	// ForceSendFields is a list of field names (e.g. "CustomFields") to
21483	// unconditionally include in API requests. By default, fields with
21484	// empty values are omitted from API requests. However, any non-pointer,
21485	// non-interface field appearing in ForceSendFields will be sent to the
21486	// server regardless of whether the field is empty or not. This may be
21487	// used to include empty fields in Patch requests.
21488	ForceSendFields []string `json:"-"`
21489
21490	// NullFields is a list of field names (e.g. "CustomFields") to include
21491	// in API requests with the JSON null value. By default, fields with
21492	// empty values are omitted from API requests. However, any field with
21493	// an empty value appearing in NullFields will be sent to the server as
21494	// null. It is an error if a field in this list has a non-empty value.
21495	// This may be used to include null fields in Patch requests.
21496	NullFields []string `json:"-"`
21497}
21498
21499func (s *LogConfigCounterOptions) MarshalJSON() ([]byte, error) {
21500	type NoMethod LogConfigCounterOptions
21501	raw := NoMethod(*s)
21502	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21503}
21504
21505// LogConfigCounterOptionsCustomField: Custom fields. These can be used
21506// to create a counter with arbitrary field/value pairs. See:
21507// go/rpcsp-custom-fields.
21508type LogConfigCounterOptionsCustomField struct {
21509	// Name: Name is the field name.
21510	Name string `json:"name,omitempty"`
21511
21512	// Value: Value is the field value. It is important that in contrast to
21513	// the CounterOptions.field, the value here is a constant that is not
21514	// derived from the IAMContext.
21515	Value string `json:"value,omitempty"`
21516
21517	// ForceSendFields is a list of field names (e.g. "Name") to
21518	// unconditionally include in API requests. By default, fields with
21519	// empty values are omitted from API requests. However, any non-pointer,
21520	// non-interface field appearing in ForceSendFields will be sent to the
21521	// server regardless of whether the field is empty or not. This may be
21522	// used to include empty fields in Patch requests.
21523	ForceSendFields []string `json:"-"`
21524
21525	// NullFields is a list of field names (e.g. "Name") to include in API
21526	// requests with the JSON null value. By default, fields with empty
21527	// values are omitted from API requests. However, any field with an
21528	// empty value appearing in NullFields will be sent to the server as
21529	// null. It is an error if a field in this list has a non-empty value.
21530	// This may be used to include null fields in Patch requests.
21531	NullFields []string `json:"-"`
21532}
21533
21534func (s *LogConfigCounterOptionsCustomField) MarshalJSON() ([]byte, error) {
21535	type NoMethod LogConfigCounterOptionsCustomField
21536	raw := NoMethod(*s)
21537	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21538}
21539
21540// LogConfigDataAccessOptions: Write a Data Access (Gin) log
21541type LogConfigDataAccessOptions struct {
21542	// LogMode: Whether Gin logging should happen in a fail-closed manner at
21543	// the caller. This is relevant only in the LocalIAM implementation, for
21544	// now.
21545	//
21546	// Possible values:
21547	//   "LOG_FAIL_CLOSED"
21548	//   "LOG_MODE_UNSPECIFIED"
21549	LogMode string `json:"logMode,omitempty"`
21550
21551	// ForceSendFields is a list of field names (e.g. "LogMode") to
21552	// unconditionally include in API requests. By default, fields with
21553	// empty values are omitted from API requests. However, any non-pointer,
21554	// non-interface field appearing in ForceSendFields will be sent to the
21555	// server regardless of whether the field is empty or not. This may be
21556	// used to include empty fields in Patch requests.
21557	ForceSendFields []string `json:"-"`
21558
21559	// NullFields is a list of field names (e.g. "LogMode") to include in
21560	// API requests with the JSON null value. By default, fields with empty
21561	// values are omitted from API requests. However, any field with an
21562	// empty value appearing in NullFields will be sent to the server as
21563	// null. It is an error if a field in this list has a non-empty value.
21564	// This may be used to include null fields in Patch requests.
21565	NullFields []string `json:"-"`
21566}
21567
21568func (s *LogConfigDataAccessOptions) MarshalJSON() ([]byte, error) {
21569	type NoMethod LogConfigDataAccessOptions
21570	raw := NoMethod(*s)
21571	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21572}
21573
21574// MachineImage: Machine image resource.
21575type MachineImage struct {
21576	// CreationTimestamp: [Output Only] The creation timestamp for this
21577	// machine image in RFC3339 text format.
21578	CreationTimestamp string `json:"creationTimestamp,omitempty"`
21579
21580	// Description: An optional description of this resource. Provide this
21581	// property when you create the resource.
21582	Description string `json:"description,omitempty"`
21583
21584	// GuestFlush: [Input Only] Specifies to create an application
21585	// consistent machine image by informing the OS to prepare for the
21586	// snapshot process. Currently only supported on Windows instances using
21587	// the Volume Shadow Copy Service (VSS).
21588	GuestFlush bool `json:"guestFlush,omitempty"`
21589
21590	// Id: [Output Only] A unique identifier for this machine image. The
21591	// server defines this identifier.
21592	Id uint64 `json:"id,omitempty,string"`
21593
21594	// Kind: [Output Only] The resource type, which is always
21595	// compute#machineImage for machine image.
21596	Kind string `json:"kind,omitempty"`
21597
21598	// MachineImageEncryptionKey: Encrypts the machine image using a
21599	// customer-supplied encryption key.
21600	//
21601	// After you encrypt a machine image using a customer-supplied key, you
21602	// must provide the same key if you use the machine image later. For
21603	// example, you must provide the encryption key when you create an
21604	// instance from the encrypted machine image in a future
21605	// request.
21606	//
21607	// Customer-supplied encryption keys do not protect access to metadata
21608	// of the machine image.
21609	//
21610	// If you do not provide an encryption key when creating the machine
21611	// image, then the machine image will be encrypted using an
21612	// automatically generated key and you do not need to provide a key to
21613	// use the machine image later.
21614	MachineImageEncryptionKey *CustomerEncryptionKey `json:"machineImageEncryptionKey,omitempty"`
21615
21616	// Name: Name of the resource; provided by the client when the resource
21617	// is created. The name must be 1-63 characters long, and comply with
21618	// RFC1035. Specifically, the name must be 1-63 characters long and
21619	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
21620	// the first character must be a lowercase letter, and all following
21621	// characters must be a dash, lowercase letter, or digit, except the
21622	// last character, which cannot be a dash.
21623	Name string `json:"name,omitempty"`
21624
21625	// SelfLink: [Output Only] The URL for this machine image. The server
21626	// defines this URL.
21627	SelfLink string `json:"selfLink,omitempty"`
21628
21629	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
21630	// with the resource id.
21631	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
21632
21633	// SourceDiskEncryptionKeys: [Input Only] The customer-supplied
21634	// encryption key of the disks attached to the source instance. Required
21635	// if the source disk is protected by a customer-supplied encryption
21636	// key.
21637	SourceDiskEncryptionKeys []*SourceDiskEncryptionKey `json:"sourceDiskEncryptionKeys,omitempty"`
21638
21639	// SourceInstance: The source instance used to create the machine image.
21640	// You can provide this as a partial or full URL to the resource. For
21641	// example, the following are valid values:
21642	// -
21643	// https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/instance
21644	// - projects/project/zones/zone/instances/instance
21645	SourceInstance string `json:"sourceInstance,omitempty"`
21646
21647	// SourceInstanceProperties: [Output Only] Properties of source
21648	// instance.
21649	SourceInstanceProperties *SourceInstanceProperties `json:"sourceInstanceProperties,omitempty"`
21650
21651	// Status: [Output Only] The status of the machine image. One of the
21652	// following values: INVALID, CREATING, READY, DELETING, and UPLOADING.
21653	//
21654	// Possible values:
21655	//   "CREATING"
21656	//   "DELETING"
21657	//   "INVALID"
21658	//   "READY"
21659	//   "UPLOADING"
21660	Status string `json:"status,omitempty"`
21661
21662	// StorageLocations: GCS bucket storage location of the machine image
21663	// (regional or multi-regional).
21664	StorageLocations []string `json:"storageLocations,omitempty"`
21665
21666	// TotalStorageBytes: [Output Only] Total size of the storage used by
21667	// the machine image.
21668	TotalStorageBytes int64 `json:"totalStorageBytes,omitempty,string"`
21669
21670	// ServerResponse contains the HTTP response code and headers from the
21671	// server.
21672	googleapi.ServerResponse `json:"-"`
21673
21674	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
21675	// to unconditionally include in API requests. By default, fields with
21676	// empty values are omitted from API requests. However, any non-pointer,
21677	// non-interface field appearing in ForceSendFields will be sent to the
21678	// server regardless of whether the field is empty or not. This may be
21679	// used to include empty fields in Patch requests.
21680	ForceSendFields []string `json:"-"`
21681
21682	// NullFields is a list of field names (e.g. "CreationTimestamp") to
21683	// include in API requests with the JSON null value. By default, fields
21684	// with empty values are omitted from API requests. However, any field
21685	// with an empty value appearing in NullFields will be sent to the
21686	// server as null. It is an error if a field in this list has a
21687	// non-empty value. This may be used to include null fields in Patch
21688	// requests.
21689	NullFields []string `json:"-"`
21690}
21691
21692func (s *MachineImage) MarshalJSON() ([]byte, error) {
21693	type NoMethod MachineImage
21694	raw := NoMethod(*s)
21695	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21696}
21697
21698// MachineImageList: A list of machine images.
21699type MachineImageList struct {
21700	// Id: [Output Only] Unique identifier for the resource; defined by the
21701	// server.
21702	Id string `json:"id,omitempty"`
21703
21704	// Items: A list of MachineImage resources.
21705	Items []*MachineImage `json:"items,omitempty"`
21706
21707	// Kind: [Output Only] The resource type, which is always
21708	// compute#machineImagesListResponse for machine image lists.
21709	Kind string `json:"kind,omitempty"`
21710
21711	// NextPageToken: [Output Only] This token allows you to get the next
21712	// page of results for list requests. If the number of results is larger
21713	// than maxResults, use the nextPageToken as a value for the query
21714	// parameter pageToken in the next list request. Subsequent list
21715	// requests will have their own nextPageToken to continue paging through
21716	// the results.
21717	NextPageToken string `json:"nextPageToken,omitempty"`
21718
21719	// SelfLink: [Output Only] Server-defined URL for this resource.
21720	SelfLink string `json:"selfLink,omitempty"`
21721
21722	// Warning: [Output Only] Informational warning message.
21723	Warning *MachineImageListWarning `json:"warning,omitempty"`
21724
21725	// ServerResponse contains the HTTP response code and headers from the
21726	// server.
21727	googleapi.ServerResponse `json:"-"`
21728
21729	// ForceSendFields is a list of field names (e.g. "Id") to
21730	// unconditionally include in API requests. By default, fields with
21731	// empty values are omitted from API requests. However, any non-pointer,
21732	// non-interface field appearing in ForceSendFields will be sent to the
21733	// server regardless of whether the field is empty or not. This may be
21734	// used to include empty fields in Patch requests.
21735	ForceSendFields []string `json:"-"`
21736
21737	// NullFields is a list of field names (e.g. "Id") to include in API
21738	// requests with the JSON null value. By default, fields with empty
21739	// values are omitted from API requests. However, any field with an
21740	// empty value appearing in NullFields will be sent to the server as
21741	// null. It is an error if a field in this list has a non-empty value.
21742	// This may be used to include null fields in Patch requests.
21743	NullFields []string `json:"-"`
21744}
21745
21746func (s *MachineImageList) MarshalJSON() ([]byte, error) {
21747	type NoMethod MachineImageList
21748	raw := NoMethod(*s)
21749	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21750}
21751
21752// MachineImageListWarning: [Output Only] Informational warning message.
21753type MachineImageListWarning struct {
21754	// Code: [Output Only] A warning code, if applicable. For example,
21755	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
21756	// the response.
21757	//
21758	// Possible values:
21759	//   "CLEANUP_FAILED"
21760	//   "DEPRECATED_RESOURCE_USED"
21761	//   "DEPRECATED_TYPE_USED"
21762	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
21763	//   "EXPERIMENTAL_TYPE_USED"
21764	//   "EXTERNAL_API_WARNING"
21765	//   "FIELD_VALUE_OVERRIDEN"
21766	//   "INJECTED_KERNELS_DEPRECATED"
21767	//   "MISSING_TYPE_DEPENDENCY"
21768	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
21769	//   "NEXT_HOP_CANNOT_IP_FORWARD"
21770	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
21771	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
21772	//   "NEXT_HOP_NOT_RUNNING"
21773	//   "NOT_CRITICAL_ERROR"
21774	//   "NO_RESULTS_ON_PAGE"
21775	//   "REQUIRED_TOS_AGREEMENT"
21776	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
21777	//   "RESOURCE_NOT_DELETED"
21778	//   "SCHEMA_VALIDATION_IGNORED"
21779	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
21780	//   "UNDECLARED_PROPERTIES"
21781	//   "UNREACHABLE"
21782	Code string `json:"code,omitempty"`
21783
21784	// Data: [Output Only] Metadata about this warning in key: value format.
21785	// For example:
21786	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
21787	Data []*MachineImageListWarningData `json:"data,omitempty"`
21788
21789	// Message: [Output Only] A human-readable description of the warning
21790	// code.
21791	Message string `json:"message,omitempty"`
21792
21793	// ForceSendFields is a list of field names (e.g. "Code") to
21794	// unconditionally include in API requests. By default, fields with
21795	// empty values are omitted from API requests. However, any non-pointer,
21796	// non-interface field appearing in ForceSendFields will be sent to the
21797	// server regardless of whether the field is empty or not. This may be
21798	// used to include empty fields in Patch requests.
21799	ForceSendFields []string `json:"-"`
21800
21801	// NullFields is a list of field names (e.g. "Code") to include in API
21802	// requests with the JSON null value. By default, fields with empty
21803	// values are omitted from API requests. However, any field with an
21804	// empty value appearing in NullFields will be sent to the server as
21805	// null. It is an error if a field in this list has a non-empty value.
21806	// This may be used to include null fields in Patch requests.
21807	NullFields []string `json:"-"`
21808}
21809
21810func (s *MachineImageListWarning) MarshalJSON() ([]byte, error) {
21811	type NoMethod MachineImageListWarning
21812	raw := NoMethod(*s)
21813	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21814}
21815
21816type MachineImageListWarningData struct {
21817	// Key: [Output Only] A key that provides more detail on the warning
21818	// being returned. For example, for warnings where there are no results
21819	// in a list request for a particular zone, this key might be scope and
21820	// the key value might be the zone name. Other examples might be a key
21821	// indicating a deprecated resource and a suggested replacement, or a
21822	// warning about invalid network settings (for example, if an instance
21823	// attempts to perform IP forwarding but is not enabled for IP
21824	// forwarding).
21825	Key string `json:"key,omitempty"`
21826
21827	// Value: [Output Only] A warning data value corresponding to the key.
21828	Value string `json:"value,omitempty"`
21829
21830	// ForceSendFields is a list of field names (e.g. "Key") to
21831	// unconditionally include in API requests. By default, fields with
21832	// empty values are omitted from API requests. However, any non-pointer,
21833	// non-interface field appearing in ForceSendFields will be sent to the
21834	// server regardless of whether the field is empty or not. This may be
21835	// used to include empty fields in Patch requests.
21836	ForceSendFields []string `json:"-"`
21837
21838	// NullFields is a list of field names (e.g. "Key") to include in API
21839	// requests with the JSON null value. By default, fields with empty
21840	// values are omitted from API requests. However, any field with an
21841	// empty value appearing in NullFields will be sent to the server as
21842	// null. It is an error if a field in this list has a non-empty value.
21843	// This may be used to include null fields in Patch requests.
21844	NullFields []string `json:"-"`
21845}
21846
21847func (s *MachineImageListWarningData) MarshalJSON() ([]byte, error) {
21848	type NoMethod MachineImageListWarningData
21849	raw := NoMethod(*s)
21850	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21851}
21852
21853// MachineType: Represents a Machine Type resource.
21854//
21855// You can use specific machine types for your VM instances based on
21856// performance and pricing requirements. For more information, read
21857// Machine Types. (== resource_for v1.machineTypes ==) (== resource_for
21858// beta.machineTypes ==)
21859type MachineType struct {
21860	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
21861	// format.
21862	CreationTimestamp string `json:"creationTimestamp,omitempty"`
21863
21864	// Deprecated: [Output Only] The deprecation status associated with this
21865	// machine type.
21866	Deprecated *DeprecationStatus `json:"deprecated,omitempty"`
21867
21868	// Description: [Output Only] An optional textual description of the
21869	// resource.
21870	Description string `json:"description,omitempty"`
21871
21872	// GuestCpus: [Output Only] The number of virtual CPUs that are
21873	// available to the instance.
21874	GuestCpus int64 `json:"guestCpus,omitempty"`
21875
21876	// Id: [Output Only] The unique identifier for the resource. This
21877	// identifier is defined by the server.
21878	Id uint64 `json:"id,omitempty,string"`
21879
21880	// IsSharedCpu: [Output Only] Whether this machine type has a shared
21881	// CPU. See Shared-core machine types for more information.
21882	IsSharedCpu bool `json:"isSharedCpu,omitempty"`
21883
21884	// Kind: [Output Only] The type of the resource. Always
21885	// compute#machineType for machine types.
21886	Kind string `json:"kind,omitempty"`
21887
21888	// MaximumPersistentDisks: [Output Only] Maximum persistent disks
21889	// allowed.
21890	MaximumPersistentDisks int64 `json:"maximumPersistentDisks,omitempty"`
21891
21892	// MaximumPersistentDisksSizeGb: [Output Only] Maximum total persistent
21893	// disks size (GB) allowed.
21894	MaximumPersistentDisksSizeGb int64 `json:"maximumPersistentDisksSizeGb,omitempty,string"`
21895
21896	// MemoryMb: [Output Only] The amount of physical memory available to
21897	// the instance, defined in MB.
21898	MemoryMb int64 `json:"memoryMb,omitempty"`
21899
21900	// Name: [Output Only] Name of the resource.
21901	Name string `json:"name,omitempty"`
21902
21903	// SelfLink: [Output Only] Server-defined URL for the resource.
21904	SelfLink string `json:"selfLink,omitempty"`
21905
21906	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
21907	// with the resource id.
21908	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
21909
21910	// Zone: [Output Only] The name of the zone where the machine type
21911	// resides, such as us-central1-a.
21912	Zone string `json:"zone,omitempty"`
21913
21914	// ServerResponse contains the HTTP response code and headers from the
21915	// server.
21916	googleapi.ServerResponse `json:"-"`
21917
21918	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
21919	// to unconditionally include in API requests. By default, fields with
21920	// empty values are omitted from API requests. However, any non-pointer,
21921	// non-interface field appearing in ForceSendFields will be sent to the
21922	// server regardless of whether the field is empty or not. This may be
21923	// used to include empty fields in Patch requests.
21924	ForceSendFields []string `json:"-"`
21925
21926	// NullFields is a list of field names (e.g. "CreationTimestamp") to
21927	// include in API requests with the JSON null value. By default, fields
21928	// with empty values are omitted from API requests. However, any field
21929	// with an empty value appearing in NullFields will be sent to the
21930	// server as null. It is an error if a field in this list has a
21931	// non-empty value. This may be used to include null fields in Patch
21932	// requests.
21933	NullFields []string `json:"-"`
21934}
21935
21936func (s *MachineType) MarshalJSON() ([]byte, error) {
21937	type NoMethod MachineType
21938	raw := NoMethod(*s)
21939	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21940}
21941
21942type MachineTypeAggregatedList struct {
21943	// Id: [Output Only] Unique identifier for the resource; defined by the
21944	// server.
21945	Id string `json:"id,omitempty"`
21946
21947	// Items: A list of MachineTypesScopedList resources.
21948	Items map[string]MachineTypesScopedList `json:"items,omitempty"`
21949
21950	// Kind: [Output Only] Type of resource. Always
21951	// compute#machineTypeAggregatedList for aggregated lists of machine
21952	// types.
21953	Kind string `json:"kind,omitempty"`
21954
21955	// NextPageToken: [Output Only] This token allows you to get the next
21956	// page of results for list requests. If the number of results is larger
21957	// than maxResults, use the nextPageToken as a value for the query
21958	// parameter pageToken in the next list request. Subsequent list
21959	// requests will have their own nextPageToken to continue paging through
21960	// the results.
21961	NextPageToken string `json:"nextPageToken,omitempty"`
21962
21963	// SelfLink: [Output Only] Server-defined URL for this resource.
21964	SelfLink string `json:"selfLink,omitempty"`
21965
21966	// Warning: [Output Only] Informational warning message.
21967	Warning *MachineTypeAggregatedListWarning `json:"warning,omitempty"`
21968
21969	// ServerResponse contains the HTTP response code and headers from the
21970	// server.
21971	googleapi.ServerResponse `json:"-"`
21972
21973	// ForceSendFields is a list of field names (e.g. "Id") to
21974	// unconditionally include in API requests. By default, fields with
21975	// empty values are omitted from API requests. However, any non-pointer,
21976	// non-interface field appearing in ForceSendFields will be sent to the
21977	// server regardless of whether the field is empty or not. This may be
21978	// used to include empty fields in Patch requests.
21979	ForceSendFields []string `json:"-"`
21980
21981	// NullFields is a list of field names (e.g. "Id") to include in API
21982	// requests with the JSON null value. By default, fields with empty
21983	// values are omitted from API requests. However, any field with an
21984	// empty value appearing in NullFields will be sent to the server as
21985	// null. It is an error if a field in this list has a non-empty value.
21986	// This may be used to include null fields in Patch requests.
21987	NullFields []string `json:"-"`
21988}
21989
21990func (s *MachineTypeAggregatedList) MarshalJSON() ([]byte, error) {
21991	type NoMethod MachineTypeAggregatedList
21992	raw := NoMethod(*s)
21993	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21994}
21995
21996// MachineTypeAggregatedListWarning: [Output Only] Informational warning
21997// message.
21998type MachineTypeAggregatedListWarning struct {
21999	// Code: [Output Only] A warning code, if applicable. For example,
22000	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
22001	// the response.
22002	//
22003	// Possible values:
22004	//   "CLEANUP_FAILED"
22005	//   "DEPRECATED_RESOURCE_USED"
22006	//   "DEPRECATED_TYPE_USED"
22007	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
22008	//   "EXPERIMENTAL_TYPE_USED"
22009	//   "EXTERNAL_API_WARNING"
22010	//   "FIELD_VALUE_OVERRIDEN"
22011	//   "INJECTED_KERNELS_DEPRECATED"
22012	//   "MISSING_TYPE_DEPENDENCY"
22013	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
22014	//   "NEXT_HOP_CANNOT_IP_FORWARD"
22015	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
22016	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
22017	//   "NEXT_HOP_NOT_RUNNING"
22018	//   "NOT_CRITICAL_ERROR"
22019	//   "NO_RESULTS_ON_PAGE"
22020	//   "REQUIRED_TOS_AGREEMENT"
22021	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
22022	//   "RESOURCE_NOT_DELETED"
22023	//   "SCHEMA_VALIDATION_IGNORED"
22024	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
22025	//   "UNDECLARED_PROPERTIES"
22026	//   "UNREACHABLE"
22027	Code string `json:"code,omitempty"`
22028
22029	// Data: [Output Only] Metadata about this warning in key: value format.
22030	// For example:
22031	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
22032	Data []*MachineTypeAggregatedListWarningData `json:"data,omitempty"`
22033
22034	// Message: [Output Only] A human-readable description of the warning
22035	// code.
22036	Message string `json:"message,omitempty"`
22037
22038	// ForceSendFields is a list of field names (e.g. "Code") to
22039	// unconditionally include in API requests. By default, fields with
22040	// empty values are omitted from API requests. However, any non-pointer,
22041	// non-interface field appearing in ForceSendFields will be sent to the
22042	// server regardless of whether the field is empty or not. This may be
22043	// used to include empty fields in Patch requests.
22044	ForceSendFields []string `json:"-"`
22045
22046	// NullFields is a list of field names (e.g. "Code") to include in API
22047	// requests with the JSON null value. By default, fields with empty
22048	// values are omitted from API requests. However, any field with an
22049	// empty value appearing in NullFields will be sent to the server as
22050	// null. It is an error if a field in this list has a non-empty value.
22051	// This may be used to include null fields in Patch requests.
22052	NullFields []string `json:"-"`
22053}
22054
22055func (s *MachineTypeAggregatedListWarning) MarshalJSON() ([]byte, error) {
22056	type NoMethod MachineTypeAggregatedListWarning
22057	raw := NoMethod(*s)
22058	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22059}
22060
22061type MachineTypeAggregatedListWarningData struct {
22062	// Key: [Output Only] A key that provides more detail on the warning
22063	// being returned. For example, for warnings where there are no results
22064	// in a list request for a particular zone, this key might be scope and
22065	// the key value might be the zone name. Other examples might be a key
22066	// indicating a deprecated resource and a suggested replacement, or a
22067	// warning about invalid network settings (for example, if an instance
22068	// attempts to perform IP forwarding but is not enabled for IP
22069	// forwarding).
22070	Key string `json:"key,omitempty"`
22071
22072	// Value: [Output Only] A warning data value corresponding to the key.
22073	Value string `json:"value,omitempty"`
22074
22075	// ForceSendFields is a list of field names (e.g. "Key") to
22076	// unconditionally include in API requests. By default, fields with
22077	// empty values are omitted from API requests. However, any non-pointer,
22078	// non-interface field appearing in ForceSendFields will be sent to the
22079	// server regardless of whether the field is empty or not. This may be
22080	// used to include empty fields in Patch requests.
22081	ForceSendFields []string `json:"-"`
22082
22083	// NullFields is a list of field names (e.g. "Key") to include in API
22084	// requests with the JSON null value. By default, fields with empty
22085	// values are omitted from API requests. However, any field with an
22086	// empty value appearing in NullFields will be sent to the server as
22087	// null. It is an error if a field in this list has a non-empty value.
22088	// This may be used to include null fields in Patch requests.
22089	NullFields []string `json:"-"`
22090}
22091
22092func (s *MachineTypeAggregatedListWarningData) MarshalJSON() ([]byte, error) {
22093	type NoMethod MachineTypeAggregatedListWarningData
22094	raw := NoMethod(*s)
22095	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22096}
22097
22098// MachineTypeList: Contains a list of machine types.
22099type MachineTypeList struct {
22100	// Id: [Output Only] Unique identifier for the resource; defined by the
22101	// server.
22102	Id string `json:"id,omitempty"`
22103
22104	// Items: A list of MachineType resources.
22105	Items []*MachineType `json:"items,omitempty"`
22106
22107	// Kind: [Output Only] Type of resource. Always compute#machineTypeList
22108	// for lists of machine types.
22109	Kind string `json:"kind,omitempty"`
22110
22111	// NextPageToken: [Output Only] This token allows you to get the next
22112	// page of results for list requests. If the number of results is larger
22113	// than maxResults, use the nextPageToken as a value for the query
22114	// parameter pageToken in the next list request. Subsequent list
22115	// requests will have their own nextPageToken to continue paging through
22116	// the results.
22117	NextPageToken string `json:"nextPageToken,omitempty"`
22118
22119	// SelfLink: [Output Only] Server-defined URL for this resource.
22120	SelfLink string `json:"selfLink,omitempty"`
22121
22122	// Warning: [Output Only] Informational warning message.
22123	Warning *MachineTypeListWarning `json:"warning,omitempty"`
22124
22125	// ServerResponse contains the HTTP response code and headers from the
22126	// server.
22127	googleapi.ServerResponse `json:"-"`
22128
22129	// ForceSendFields is a list of field names (e.g. "Id") to
22130	// unconditionally include in API requests. By default, fields with
22131	// empty values are omitted from API requests. However, any non-pointer,
22132	// non-interface field appearing in ForceSendFields will be sent to the
22133	// server regardless of whether the field is empty or not. This may be
22134	// used to include empty fields in Patch requests.
22135	ForceSendFields []string `json:"-"`
22136
22137	// NullFields is a list of field names (e.g. "Id") to include in API
22138	// requests with the JSON null value. By default, fields with empty
22139	// values are omitted from API requests. However, any field with an
22140	// empty value appearing in NullFields will be sent to the server as
22141	// null. It is an error if a field in this list has a non-empty value.
22142	// This may be used to include null fields in Patch requests.
22143	NullFields []string `json:"-"`
22144}
22145
22146func (s *MachineTypeList) MarshalJSON() ([]byte, error) {
22147	type NoMethod MachineTypeList
22148	raw := NoMethod(*s)
22149	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22150}
22151
22152// MachineTypeListWarning: [Output Only] Informational warning message.
22153type MachineTypeListWarning struct {
22154	// Code: [Output Only] A warning code, if applicable. For example,
22155	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
22156	// the response.
22157	//
22158	// Possible values:
22159	//   "CLEANUP_FAILED"
22160	//   "DEPRECATED_RESOURCE_USED"
22161	//   "DEPRECATED_TYPE_USED"
22162	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
22163	//   "EXPERIMENTAL_TYPE_USED"
22164	//   "EXTERNAL_API_WARNING"
22165	//   "FIELD_VALUE_OVERRIDEN"
22166	//   "INJECTED_KERNELS_DEPRECATED"
22167	//   "MISSING_TYPE_DEPENDENCY"
22168	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
22169	//   "NEXT_HOP_CANNOT_IP_FORWARD"
22170	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
22171	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
22172	//   "NEXT_HOP_NOT_RUNNING"
22173	//   "NOT_CRITICAL_ERROR"
22174	//   "NO_RESULTS_ON_PAGE"
22175	//   "REQUIRED_TOS_AGREEMENT"
22176	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
22177	//   "RESOURCE_NOT_DELETED"
22178	//   "SCHEMA_VALIDATION_IGNORED"
22179	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
22180	//   "UNDECLARED_PROPERTIES"
22181	//   "UNREACHABLE"
22182	Code string `json:"code,omitempty"`
22183
22184	// Data: [Output Only] Metadata about this warning in key: value format.
22185	// For example:
22186	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
22187	Data []*MachineTypeListWarningData `json:"data,omitempty"`
22188
22189	// Message: [Output Only] A human-readable description of the warning
22190	// code.
22191	Message string `json:"message,omitempty"`
22192
22193	// ForceSendFields is a list of field names (e.g. "Code") to
22194	// unconditionally include in API requests. By default, fields with
22195	// empty values are omitted from API requests. However, any non-pointer,
22196	// non-interface field appearing in ForceSendFields will be sent to the
22197	// server regardless of whether the field is empty or not. This may be
22198	// used to include empty fields in Patch requests.
22199	ForceSendFields []string `json:"-"`
22200
22201	// NullFields is a list of field names (e.g. "Code") to include in API
22202	// requests with the JSON null value. By default, fields with empty
22203	// values are omitted from API requests. However, any field with an
22204	// empty value appearing in NullFields will be sent to the server as
22205	// null. It is an error if a field in this list has a non-empty value.
22206	// This may be used to include null fields in Patch requests.
22207	NullFields []string `json:"-"`
22208}
22209
22210func (s *MachineTypeListWarning) MarshalJSON() ([]byte, error) {
22211	type NoMethod MachineTypeListWarning
22212	raw := NoMethod(*s)
22213	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22214}
22215
22216type MachineTypeListWarningData struct {
22217	// Key: [Output Only] A key that provides more detail on the warning
22218	// being returned. For example, for warnings where there are no results
22219	// in a list request for a particular zone, this key might be scope and
22220	// the key value might be the zone name. Other examples might be a key
22221	// indicating a deprecated resource and a suggested replacement, or a
22222	// warning about invalid network settings (for example, if an instance
22223	// attempts to perform IP forwarding but is not enabled for IP
22224	// forwarding).
22225	Key string `json:"key,omitempty"`
22226
22227	// Value: [Output Only] A warning data value corresponding to the key.
22228	Value string `json:"value,omitempty"`
22229
22230	// ForceSendFields is a list of field names (e.g. "Key") to
22231	// unconditionally include in API requests. By default, fields with
22232	// empty values are omitted from API requests. However, any non-pointer,
22233	// non-interface field appearing in ForceSendFields will be sent to the
22234	// server regardless of whether the field is empty or not. This may be
22235	// used to include empty fields in Patch requests.
22236	ForceSendFields []string `json:"-"`
22237
22238	// NullFields is a list of field names (e.g. "Key") to include in API
22239	// requests with the JSON null value. By default, fields with empty
22240	// values are omitted from API requests. However, any field with an
22241	// empty value appearing in NullFields will be sent to the server as
22242	// null. It is an error if a field in this list has a non-empty value.
22243	// This may be used to include null fields in Patch requests.
22244	NullFields []string `json:"-"`
22245}
22246
22247func (s *MachineTypeListWarningData) MarshalJSON() ([]byte, error) {
22248	type NoMethod MachineTypeListWarningData
22249	raw := NoMethod(*s)
22250	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22251}
22252
22253type MachineTypesScopedList struct {
22254	// MachineTypes: [Output Only] A list of machine types contained in this
22255	// scope.
22256	MachineTypes []*MachineType `json:"machineTypes,omitempty"`
22257
22258	// Warning: [Output Only] An informational warning that appears when the
22259	// machine types list is empty.
22260	Warning *MachineTypesScopedListWarning `json:"warning,omitempty"`
22261
22262	// ForceSendFields is a list of field names (e.g. "MachineTypes") to
22263	// unconditionally include in API requests. By default, fields with
22264	// empty values are omitted from API requests. However, any non-pointer,
22265	// non-interface field appearing in ForceSendFields will be sent to the
22266	// server regardless of whether the field is empty or not. This may be
22267	// used to include empty fields in Patch requests.
22268	ForceSendFields []string `json:"-"`
22269
22270	// NullFields is a list of field names (e.g. "MachineTypes") to include
22271	// in API requests with the JSON null value. By default, fields with
22272	// empty values are omitted from API requests. However, any field with
22273	// an empty value appearing in NullFields will be sent to the server as
22274	// null. It is an error if a field in this list has a non-empty value.
22275	// This may be used to include null fields in Patch requests.
22276	NullFields []string `json:"-"`
22277}
22278
22279func (s *MachineTypesScopedList) MarshalJSON() ([]byte, error) {
22280	type NoMethod MachineTypesScopedList
22281	raw := NoMethod(*s)
22282	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22283}
22284
22285// MachineTypesScopedListWarning: [Output Only] An informational warning
22286// that appears when the machine types list is empty.
22287type MachineTypesScopedListWarning struct {
22288	// Code: [Output Only] A warning code, if applicable. For example,
22289	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
22290	// the response.
22291	//
22292	// Possible values:
22293	//   "CLEANUP_FAILED"
22294	//   "DEPRECATED_RESOURCE_USED"
22295	//   "DEPRECATED_TYPE_USED"
22296	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
22297	//   "EXPERIMENTAL_TYPE_USED"
22298	//   "EXTERNAL_API_WARNING"
22299	//   "FIELD_VALUE_OVERRIDEN"
22300	//   "INJECTED_KERNELS_DEPRECATED"
22301	//   "MISSING_TYPE_DEPENDENCY"
22302	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
22303	//   "NEXT_HOP_CANNOT_IP_FORWARD"
22304	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
22305	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
22306	//   "NEXT_HOP_NOT_RUNNING"
22307	//   "NOT_CRITICAL_ERROR"
22308	//   "NO_RESULTS_ON_PAGE"
22309	//   "REQUIRED_TOS_AGREEMENT"
22310	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
22311	//   "RESOURCE_NOT_DELETED"
22312	//   "SCHEMA_VALIDATION_IGNORED"
22313	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
22314	//   "UNDECLARED_PROPERTIES"
22315	//   "UNREACHABLE"
22316	Code string `json:"code,omitempty"`
22317
22318	// Data: [Output Only] Metadata about this warning in key: value format.
22319	// For example:
22320	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
22321	Data []*MachineTypesScopedListWarningData `json:"data,omitempty"`
22322
22323	// Message: [Output Only] A human-readable description of the warning
22324	// code.
22325	Message string `json:"message,omitempty"`
22326
22327	// ForceSendFields is a list of field names (e.g. "Code") to
22328	// unconditionally include in API requests. By default, fields with
22329	// empty values are omitted from API requests. However, any non-pointer,
22330	// non-interface field appearing in ForceSendFields will be sent to the
22331	// server regardless of whether the field is empty or not. This may be
22332	// used to include empty fields in Patch requests.
22333	ForceSendFields []string `json:"-"`
22334
22335	// NullFields is a list of field names (e.g. "Code") to include in API
22336	// requests with the JSON null value. By default, fields with empty
22337	// values are omitted from API requests. However, any field with an
22338	// empty value appearing in NullFields will be sent to the server as
22339	// null. It is an error if a field in this list has a non-empty value.
22340	// This may be used to include null fields in Patch requests.
22341	NullFields []string `json:"-"`
22342}
22343
22344func (s *MachineTypesScopedListWarning) MarshalJSON() ([]byte, error) {
22345	type NoMethod MachineTypesScopedListWarning
22346	raw := NoMethod(*s)
22347	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22348}
22349
22350type MachineTypesScopedListWarningData struct {
22351	// Key: [Output Only] A key that provides more detail on the warning
22352	// being returned. For example, for warnings where there are no results
22353	// in a list request for a particular zone, this key might be scope and
22354	// the key value might be the zone name. Other examples might be a key
22355	// indicating a deprecated resource and a suggested replacement, or a
22356	// warning about invalid network settings (for example, if an instance
22357	// attempts to perform IP forwarding but is not enabled for IP
22358	// forwarding).
22359	Key string `json:"key,omitempty"`
22360
22361	// Value: [Output Only] A warning data value corresponding to the key.
22362	Value string `json:"value,omitempty"`
22363
22364	// ForceSendFields is a list of field names (e.g. "Key") to
22365	// unconditionally include in API requests. By default, fields with
22366	// empty values are omitted from API requests. However, any non-pointer,
22367	// non-interface field appearing in ForceSendFields will be sent to the
22368	// server regardless of whether the field is empty or not. This may be
22369	// used to include empty fields in Patch requests.
22370	ForceSendFields []string `json:"-"`
22371
22372	// NullFields is a list of field names (e.g. "Key") to include in API
22373	// requests with the JSON null value. By default, fields with empty
22374	// values are omitted from API requests. However, any field with an
22375	// empty value appearing in NullFields will be sent to the server as
22376	// null. It is an error if a field in this list has a non-empty value.
22377	// This may be used to include null fields in Patch requests.
22378	NullFields []string `json:"-"`
22379}
22380
22381func (s *MachineTypesScopedListWarningData) MarshalJSON() ([]byte, error) {
22382	type NoMethod MachineTypesScopedListWarningData
22383	raw := NoMethod(*s)
22384	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22385}
22386
22387// ManagedInstance: A Managed Instance resource.
22388type ManagedInstance struct {
22389	// CurrentAction: [Output Only] The current action that the managed
22390	// instance group has scheduled for the instance. Possible values:
22391	// - NONE The instance is running, and the managed instance group does
22392	// not have any scheduled actions for this instance.
22393	// - CREATING The managed instance group is creating this instance. If
22394	// the group fails to create this instance, it will try again until it
22395	// is successful.
22396	// - CREATING_WITHOUT_RETRIES The managed instance group is attempting
22397	// to create this instance only once. If the group fails to create this
22398	// instance, it does not try again and the group's targetSize value is
22399	// decreased instead.
22400	// - RECREATING The managed instance group is recreating this instance.
22401	//
22402	// - DELETING The managed instance group is permanently deleting this
22403	// instance.
22404	// - ABANDONING The managed instance group is abandoning this instance.
22405	// The instance will be removed from the instance group and from any
22406	// target pools that are associated with this group.
22407	// - RESTARTING The managed instance group is restarting the instance.
22408	//
22409	// - REFRESHING The managed instance group is applying configuration
22410	// changes to the instance without stopping it. For example, the group
22411	// can update the target pool list for an instance without stopping that
22412	// instance.
22413	// - VERIFYING The managed instance group has created the instance and
22414	// it is in the process of being verified.
22415	//
22416	// Possible values:
22417	//   "ABANDONING"
22418	//   "CREATING"
22419	//   "CREATING_WITHOUT_RETRIES"
22420	//   "DELETING"
22421	//   "NONE"
22422	//   "RECREATING"
22423	//   "REFRESHING"
22424	//   "RESTARTING"
22425	//   "VERIFYING"
22426	CurrentAction string `json:"currentAction,omitempty"`
22427
22428	// Id: [Output only] The unique identifier for this resource. This field
22429	// is empty when instance does not exist.
22430	Id uint64 `json:"id,omitempty,string"`
22431
22432	// Instance: [Output Only] The URL of the instance. The URL can exist
22433	// even if the instance has not yet been created.
22434	Instance string `json:"instance,omitempty"`
22435
22436	// InstanceHealth: [Output Only] Health state of the instance per
22437	// health-check.
22438	InstanceHealth []*ManagedInstanceInstanceHealth `json:"instanceHealth,omitempty"`
22439
22440	// InstanceStatus: [Output Only] The status of the instance. This field
22441	// is empty when the instance does not exist.
22442	//
22443	// Possible values:
22444	//   "PROVISIONING"
22445	//   "REPAIRING"
22446	//   "RUNNING"
22447	//   "STAGING"
22448	//   "STOPPED"
22449	//   "STOPPING"
22450	//   "SUSPENDED"
22451	//   "SUSPENDING"
22452	//   "TERMINATED"
22453	InstanceStatus string `json:"instanceStatus,omitempty"`
22454
22455	// InstanceTemplate: [Output Only] The intended template of the
22456	// instance. This field is empty when current_action is one of {
22457	// DELETING, ABANDONING }.
22458	InstanceTemplate string `json:"instanceTemplate,omitempty"`
22459
22460	// LastAttempt: [Output Only] Information about the last attempt to
22461	// create or delete the instance.
22462	LastAttempt *ManagedInstanceLastAttempt `json:"lastAttempt,omitempty"`
22463
22464	// PreservedStateFromConfig: [Output Only] Preserved state applied from
22465	// per-instance config for this instance.
22466	PreservedStateFromConfig *PreservedState `json:"preservedStateFromConfig,omitempty"`
22467
22468	// PreservedStateFromPolicy: [Output Only] Preserved state generated
22469	// based on stateful policy for this instance.
22470	PreservedStateFromPolicy *PreservedState `json:"preservedStateFromPolicy,omitempty"`
22471
22472	// Tag: [Output Only] Tag describing the version.
22473	Tag string `json:"tag,omitempty"`
22474
22475	// Version: [Output Only] Intended version of this instance.
22476	Version *ManagedInstanceVersion `json:"version,omitempty"`
22477
22478	// ForceSendFields is a list of field names (e.g. "CurrentAction") to
22479	// unconditionally include in API requests. By default, fields with
22480	// empty values are omitted from API requests. However, any non-pointer,
22481	// non-interface field appearing in ForceSendFields will be sent to the
22482	// server regardless of whether the field is empty or not. This may be
22483	// used to include empty fields in Patch requests.
22484	ForceSendFields []string `json:"-"`
22485
22486	// NullFields is a list of field names (e.g. "CurrentAction") to include
22487	// in API requests with the JSON null value. By default, fields with
22488	// empty values are omitted from API requests. However, any field with
22489	// an empty value appearing in NullFields will be sent to the server as
22490	// null. It is an error if a field in this list has a non-empty value.
22491	// This may be used to include null fields in Patch requests.
22492	NullFields []string `json:"-"`
22493}
22494
22495func (s *ManagedInstance) MarshalJSON() ([]byte, error) {
22496	type NoMethod ManagedInstance
22497	raw := NoMethod(*s)
22498	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22499}
22500
22501type ManagedInstanceInstanceHealth struct {
22502	// DetailedHealthState: [Output Only] The current detailed instance
22503	// health state.
22504	//
22505	// Possible values:
22506	//   "DRAINING"
22507	//   "HEALTHY"
22508	//   "TIMEOUT"
22509	//   "UNHEALTHY"
22510	//   "UNKNOWN"
22511	DetailedHealthState string `json:"detailedHealthState,omitempty"`
22512
22513	// HealthCheck: [Output Only] The URL for the health check that verifies
22514	// whether the instance is healthy.
22515	HealthCheck string `json:"healthCheck,omitempty"`
22516
22517	// HealthState: [Output Only] The current instance health state. This
22518	// field will not get promoted to beta/GA and might be removed from
22519	// alpha APIs after 01/12/2019. Please use detailed_health_state field
22520	// instead.
22521	//
22522	// Possible values:
22523	//   "HEALTHY"
22524	//   "UNHEALTHY"
22525	HealthState string `json:"healthState,omitempty"`
22526
22527	// ForceSendFields is a list of field names (e.g. "DetailedHealthState")
22528	// to unconditionally include in API requests. By default, fields with
22529	// empty values are omitted from API requests. However, any non-pointer,
22530	// non-interface field appearing in ForceSendFields will be sent to the
22531	// server regardless of whether the field is empty or not. This may be
22532	// used to include empty fields in Patch requests.
22533	ForceSendFields []string `json:"-"`
22534
22535	// NullFields is a list of field names (e.g. "DetailedHealthState") to
22536	// include in API requests with the JSON null value. By default, fields
22537	// with empty values are omitted from API requests. However, any field
22538	// with an empty value appearing in NullFields will be sent to the
22539	// server as null. It is an error if a field in this list has a
22540	// non-empty value. This may be used to include null fields in Patch
22541	// requests.
22542	NullFields []string `json:"-"`
22543}
22544
22545func (s *ManagedInstanceInstanceHealth) MarshalJSON() ([]byte, error) {
22546	type NoMethod ManagedInstanceInstanceHealth
22547	raw := NoMethod(*s)
22548	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22549}
22550
22551type ManagedInstanceLastAttempt struct {
22552	// Errors: [Output Only] Encountered errors during the last attempt to
22553	// create or delete the instance.
22554	Errors *ManagedInstanceLastAttemptErrors `json:"errors,omitempty"`
22555
22556	// ForceSendFields is a list of field names (e.g. "Errors") to
22557	// unconditionally include in API requests. By default, fields with
22558	// empty values are omitted from API requests. However, any non-pointer,
22559	// non-interface field appearing in ForceSendFields will be sent to the
22560	// server regardless of whether the field is empty or not. This may be
22561	// used to include empty fields in Patch requests.
22562	ForceSendFields []string `json:"-"`
22563
22564	// NullFields is a list of field names (e.g. "Errors") to include in API
22565	// requests with the JSON null value. By default, fields with empty
22566	// values are omitted from API requests. However, any field with an
22567	// empty value appearing in NullFields will be sent to the server as
22568	// null. It is an error if a field in this list has a non-empty value.
22569	// This may be used to include null fields in Patch requests.
22570	NullFields []string `json:"-"`
22571}
22572
22573func (s *ManagedInstanceLastAttempt) MarshalJSON() ([]byte, error) {
22574	type NoMethod ManagedInstanceLastAttempt
22575	raw := NoMethod(*s)
22576	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22577}
22578
22579// ManagedInstanceLastAttemptErrors: [Output Only] Encountered errors
22580// during the last attempt to create or delete the instance.
22581type ManagedInstanceLastAttemptErrors struct {
22582	// Errors: [Output Only] The array of errors encountered while
22583	// processing this operation.
22584	Errors []*ManagedInstanceLastAttemptErrorsErrors `json:"errors,omitempty"`
22585
22586	// ForceSendFields is a list of field names (e.g. "Errors") to
22587	// unconditionally include in API requests. By default, fields with
22588	// empty values are omitted from API requests. However, any non-pointer,
22589	// non-interface field appearing in ForceSendFields will be sent to the
22590	// server regardless of whether the field is empty or not. This may be
22591	// used to include empty fields in Patch requests.
22592	ForceSendFields []string `json:"-"`
22593
22594	// NullFields is a list of field names (e.g. "Errors") to include in API
22595	// requests with the JSON null value. By default, fields with empty
22596	// values are omitted from API requests. However, any field with an
22597	// empty value appearing in NullFields will be sent to the server as
22598	// null. It is an error if a field in this list has a non-empty value.
22599	// This may be used to include null fields in Patch requests.
22600	NullFields []string `json:"-"`
22601}
22602
22603func (s *ManagedInstanceLastAttemptErrors) MarshalJSON() ([]byte, error) {
22604	type NoMethod ManagedInstanceLastAttemptErrors
22605	raw := NoMethod(*s)
22606	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22607}
22608
22609type ManagedInstanceLastAttemptErrorsErrors struct {
22610	// Code: [Output Only] The error type identifier for this error.
22611	Code string `json:"code,omitempty"`
22612
22613	// Location: [Output Only] Indicates the field in the request that
22614	// caused the error. This property is optional.
22615	Location string `json:"location,omitempty"`
22616
22617	// Message: [Output Only] An optional, human-readable error message.
22618	Message string `json:"message,omitempty"`
22619
22620	// ForceSendFields is a list of field names (e.g. "Code") to
22621	// unconditionally include in API requests. By default, fields with
22622	// empty values are omitted from API requests. However, any non-pointer,
22623	// non-interface field appearing in ForceSendFields will be sent to the
22624	// server regardless of whether the field is empty or not. This may be
22625	// used to include empty fields in Patch requests.
22626	ForceSendFields []string `json:"-"`
22627
22628	// NullFields is a list of field names (e.g. "Code") to include in API
22629	// requests with the JSON null value. By default, fields with empty
22630	// values are omitted from API requests. However, any field with an
22631	// empty value appearing in NullFields will be sent to the server as
22632	// null. It is an error if a field in this list has a non-empty value.
22633	// This may be used to include null fields in Patch requests.
22634	NullFields []string `json:"-"`
22635}
22636
22637func (s *ManagedInstanceLastAttemptErrorsErrors) MarshalJSON() ([]byte, error) {
22638	type NoMethod ManagedInstanceLastAttemptErrorsErrors
22639	raw := NoMethod(*s)
22640	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22641}
22642
22643type ManagedInstanceVersion struct {
22644	// InstanceTemplate: [Output Only] The intended template of the
22645	// instance. This field is empty when current_action is one of {
22646	// DELETING, ABANDONING }.
22647	InstanceTemplate string `json:"instanceTemplate,omitempty"`
22648
22649	// Name: [Output Only] Name of the version.
22650	Name string `json:"name,omitempty"`
22651
22652	// ForceSendFields is a list of field names (e.g. "InstanceTemplate") to
22653	// unconditionally include in API requests. By default, fields with
22654	// empty values are omitted from API requests. However, any non-pointer,
22655	// non-interface field appearing in ForceSendFields will be sent to the
22656	// server regardless of whether the field is empty or not. This may be
22657	// used to include empty fields in Patch requests.
22658	ForceSendFields []string `json:"-"`
22659
22660	// NullFields is a list of field names (e.g. "InstanceTemplate") to
22661	// include in API requests with the JSON null value. By default, fields
22662	// with empty values are omitted from API requests. However, any field
22663	// with an empty value appearing in NullFields will be sent to the
22664	// server as null. It is an error if a field in this list has a
22665	// non-empty value. This may be used to include null fields in Patch
22666	// requests.
22667	NullFields []string `json:"-"`
22668}
22669
22670func (s *ManagedInstanceVersion) MarshalJSON() ([]byte, error) {
22671	type NoMethod ManagedInstanceVersion
22672	raw := NoMethod(*s)
22673	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22674}
22675
22676// Metadata: A metadata key/value entry.
22677type Metadata struct {
22678	// Fingerprint: Specifies a fingerprint for this request, which is
22679	// essentially a hash of the metadata's contents and used for optimistic
22680	// locking. The fingerprint is initially generated by Compute Engine and
22681	// changes after every request to modify or update metadata. You must
22682	// always provide an up-to-date fingerprint hash in order to update or
22683	// change metadata, otherwise the request will fail with error 412
22684	// conditionNotMet.
22685	//
22686	// To see the latest fingerprint, make a get() request to retrieve the
22687	// resource.
22688	Fingerprint string `json:"fingerprint,omitempty"`
22689
22690	// Items: Array of key/value pairs. The total size of all keys and
22691	// values must be less than 512 KB.
22692	Items []*MetadataItems `json:"items,omitempty"`
22693
22694	// Kind: [Output Only] Type of the resource. Always compute#metadata for
22695	// metadata.
22696	Kind string `json:"kind,omitempty"`
22697
22698	// ForceSendFields is a list of field names (e.g. "Fingerprint") to
22699	// unconditionally include in API requests. By default, fields with
22700	// empty values are omitted from API requests. However, any non-pointer,
22701	// non-interface field appearing in ForceSendFields will be sent to the
22702	// server regardless of whether the field is empty or not. This may be
22703	// used to include empty fields in Patch requests.
22704	ForceSendFields []string `json:"-"`
22705
22706	// NullFields is a list of field names (e.g. "Fingerprint") to include
22707	// in API requests with the JSON null value. By default, fields with
22708	// empty values are omitted from API requests. However, any field with
22709	// an empty value appearing in NullFields will be sent to the server as
22710	// null. It is an error if a field in this list has a non-empty value.
22711	// This may be used to include null fields in Patch requests.
22712	NullFields []string `json:"-"`
22713}
22714
22715func (s *Metadata) MarshalJSON() ([]byte, error) {
22716	type NoMethod Metadata
22717	raw := NoMethod(*s)
22718	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22719}
22720
22721type MetadataItems struct {
22722	// Key: Key for the metadata entry. Keys must conform to the following
22723	// regexp: [a-zA-Z0-9-_]+, and be less than 128 bytes in length. This is
22724	// reflected as part of a URL in the metadata server. Additionally, to
22725	// avoid ambiguity, keys must not conflict with any other metadata keys
22726	// for the project.
22727	Key string `json:"key,omitempty"`
22728
22729	// Value: Value for the metadata entry. These are free-form strings, and
22730	// only have meaning as interpreted by the image running in the
22731	// instance. The only restriction placed on values is that their size
22732	// must be less than or equal to 262144 bytes (256 KiB).
22733	Value string `json:"value,omitempty"`
22734
22735	// ForceSendFields is a list of field names (e.g. "Key") to
22736	// unconditionally include in API requests. By default, fields with
22737	// empty values are omitted from API requests. However, any non-pointer,
22738	// non-interface field appearing in ForceSendFields will be sent to the
22739	// server regardless of whether the field is empty or not. This may be
22740	// used to include empty fields in Patch requests.
22741	ForceSendFields []string `json:"-"`
22742
22743	// NullFields is a list of field names (e.g. "Key") to include in API
22744	// requests with the JSON null value. By default, fields with empty
22745	// values are omitted from API requests. However, any field with an
22746	// empty value appearing in NullFields will be sent to the server as
22747	// null. It is an error if a field in this list has a non-empty value.
22748	// This may be used to include null fields in Patch requests.
22749	NullFields []string `json:"-"`
22750}
22751
22752func (s *MetadataItems) MarshalJSON() ([]byte, error) {
22753	type NoMethod MetadataItems
22754	raw := NoMethod(*s)
22755	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22756}
22757
22758// MetadataCredentialsFromPlugin: Custom authenticator credentials.
22759type MetadataCredentialsFromPlugin struct {
22760	// Name: Plugin name.
22761	Name string `json:"name,omitempty"`
22762
22763	// StructConfig: A text proto that conforms to a Struct type definition
22764	// interpreted by the plugin.
22765	StructConfig string `json:"structConfig,omitempty"`
22766
22767	// ForceSendFields is a list of field names (e.g. "Name") to
22768	// unconditionally include in API requests. By default, fields with
22769	// empty values are omitted from API requests. However, any non-pointer,
22770	// non-interface field appearing in ForceSendFields will be sent to the
22771	// server regardless of whether the field is empty or not. This may be
22772	// used to include empty fields in Patch requests.
22773	ForceSendFields []string `json:"-"`
22774
22775	// NullFields is a list of field names (e.g. "Name") to include in API
22776	// requests with the JSON null value. By default, fields with empty
22777	// values are omitted from API requests. However, any field with an
22778	// empty value appearing in NullFields will be sent to the server as
22779	// null. It is an error if a field in this list has a non-empty value.
22780	// This may be used to include null fields in Patch requests.
22781	NullFields []string `json:"-"`
22782}
22783
22784func (s *MetadataCredentialsFromPlugin) MarshalJSON() ([]byte, error) {
22785	type NoMethod MetadataCredentialsFromPlugin
22786	raw := NoMethod(*s)
22787	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22788}
22789
22790// MetadataFilter: Opaque filter criteria used by loadbalancers to
22791// restrict routing configuration to a limited set of loadbalancing
22792// proxies. Proxies and sidecars involved in loadbalancing would
22793// typically present metadata to the loadbalancers which need to match
22794// criteria specified here. If a match takes place, the relevant routing
22795// configuration is made available to those proxies.
22796// For each metadataFilter in this list, if its filterMatchCriteria is
22797// set to MATCH_ANY, at least one of the filterLabels must match the
22798// corresponding label provided in the metadata. If its
22799// filterMatchCriteria is set to MATCH_ALL, then all of its filterLabels
22800// must match with corresponding labels in the provided metadata.
22801// An example for using metadataFilters would be: if loadbalancing
22802// involves  Envoys, they will only receive routing configuration when
22803// values in metadataFilters match values supplied in <a
22804// href="https://www.envoyproxy.io/docs/envoy/latest/api-v2/api/v2/core/b
22805// ase.proto#envoy-api-msg-core-node" Node metadata of their XDS
22806// requests to loadbalancers.
22807type MetadataFilter struct {
22808	// FilterLabels: The list of label value pairs that must match labels in
22809	// the provided metadata based on filterMatchCriteria
22810	// This list must not be empty and can have at the most 64 entries.
22811	FilterLabels []*MetadataFilterLabelMatch `json:"filterLabels,omitempty"`
22812
22813	// FilterMatchCriteria: Specifies how individual filterLabel matches
22814	// within the list of filterLabels contribute towards the overall
22815	// metadataFilter match.
22816	// Supported values are:
22817	// - MATCH_ANY: At least one of the filterLabels must have a matching
22818	// label in the provided metadata.
22819	// - MATCH_ALL: All filterLabels must have matching labels in the
22820	// provided metadata.
22821	//
22822	// Possible values:
22823	//   "MATCH_ALL"
22824	//   "MATCH_ANY"
22825	//   "NOT_SET"
22826	FilterMatchCriteria string `json:"filterMatchCriteria,omitempty"`
22827
22828	// ForceSendFields is a list of field names (e.g. "FilterLabels") to
22829	// unconditionally include in API requests. By default, fields with
22830	// empty values are omitted from API requests. However, any non-pointer,
22831	// non-interface field appearing in ForceSendFields will be sent to the
22832	// server regardless of whether the field is empty or not. This may be
22833	// used to include empty fields in Patch requests.
22834	ForceSendFields []string `json:"-"`
22835
22836	// NullFields is a list of field names (e.g. "FilterLabels") to include
22837	// in API requests with the JSON null value. By default, fields with
22838	// empty values are omitted from API requests. However, any field with
22839	// an empty value appearing in NullFields will be sent to the server as
22840	// null. It is an error if a field in this list has a non-empty value.
22841	// This may be used to include null fields in Patch requests.
22842	NullFields []string `json:"-"`
22843}
22844
22845func (s *MetadataFilter) MarshalJSON() ([]byte, error) {
22846	type NoMethod MetadataFilter
22847	raw := NoMethod(*s)
22848	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22849}
22850
22851// MetadataFilterLabelMatch: MetadataFilter label name value pairs that
22852// are expected to match corresponding labels presented as metadata to
22853// the loadbalancer.
22854type MetadataFilterLabelMatch struct {
22855	// Name: Name of metadata label.
22856	// The name can have a maximum length of 1024 characters and must be at
22857	// least 1 character long.
22858	Name string `json:"name,omitempty"`
22859
22860	// Value: The value of the label must match the specified value.
22861	// value can have a maximum length of 1024 characters.
22862	Value string `json:"value,omitempty"`
22863
22864	// ForceSendFields is a list of field names (e.g. "Name") to
22865	// unconditionally include in API requests. By default, fields with
22866	// empty values are omitted from API requests. However, any non-pointer,
22867	// non-interface field appearing in ForceSendFields will be sent to the
22868	// server regardless of whether the field is empty or not. This may be
22869	// used to include empty fields in Patch requests.
22870	ForceSendFields []string `json:"-"`
22871
22872	// NullFields is a list of field names (e.g. "Name") to include in API
22873	// requests with the JSON null value. By default, fields with empty
22874	// values are omitted from API requests. However, any field with an
22875	// empty value appearing in NullFields will be sent to the server as
22876	// null. It is an error if a field in this list has a non-empty value.
22877	// This may be used to include null fields in Patch requests.
22878	NullFields []string `json:"-"`
22879}
22880
22881func (s *MetadataFilterLabelMatch) MarshalJSON() ([]byte, error) {
22882	type NoMethod MetadataFilterLabelMatch
22883	raw := NoMethod(*s)
22884	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22885}
22886
22887// MutualTls: Configuration for the mutual Tls mode for peer
22888// authentication.
22889type MutualTls struct {
22890	// Mode: Specifies if the server TLS is configured to be strict or
22891	// permissive. This field can be set to one of the following: STRICT:
22892	// Client certificate must be presented, connection is in TLS.
22893	// PERMISSIVE: Client certificate can be omitted, connection can be
22894	// either plaintext or TLS.
22895	//
22896	// Possible values:
22897	//   "INVALID"
22898	//   "PERMISSIVE"
22899	//   "STRICT"
22900	Mode string `json:"mode,omitempty"`
22901
22902	// ForceSendFields is a list of field names (e.g. "Mode") to
22903	// unconditionally include in API requests. By default, fields with
22904	// empty values are omitted from API requests. However, any non-pointer,
22905	// non-interface field appearing in ForceSendFields will be sent to the
22906	// server regardless of whether the field is empty or not. This may be
22907	// used to include empty fields in Patch requests.
22908	ForceSendFields []string `json:"-"`
22909
22910	// NullFields is a list of field names (e.g. "Mode") to include in API
22911	// requests with the JSON null value. By default, fields with empty
22912	// values are omitted from API requests. However, any field with an
22913	// empty value appearing in NullFields will be sent to the server as
22914	// null. It is an error if a field in this list has a non-empty value.
22915	// This may be used to include null fields in Patch requests.
22916	NullFields []string `json:"-"`
22917}
22918
22919func (s *MutualTls) MarshalJSON() ([]byte, error) {
22920	type NoMethod MutualTls
22921	raw := NoMethod(*s)
22922	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22923}
22924
22925// NamedPort: The named port. For example: .
22926type NamedPort struct {
22927	// Name: The name for this named port. The name must be 1-63 characters
22928	// long, and comply with RFC1035.
22929	Name string `json:"name,omitempty"`
22930
22931	// Port: The port number, which can be a value between 1 and 65535.
22932	Port int64 `json:"port,omitempty"`
22933
22934	// ForceSendFields is a list of field names (e.g. "Name") to
22935	// unconditionally include in API requests. By default, fields with
22936	// empty values are omitted from API requests. However, any non-pointer,
22937	// non-interface field appearing in ForceSendFields will be sent to the
22938	// server regardless of whether the field is empty or not. This may be
22939	// used to include empty fields in Patch requests.
22940	ForceSendFields []string `json:"-"`
22941
22942	// NullFields is a list of field names (e.g. "Name") to include in API
22943	// requests with the JSON null value. By default, fields with empty
22944	// values are omitted from API requests. However, any field with an
22945	// empty value appearing in NullFields will be sent to the server as
22946	// null. It is an error if a field in this list has a non-empty value.
22947	// This may be used to include null fields in Patch requests.
22948	NullFields []string `json:"-"`
22949}
22950
22951func (s *NamedPort) MarshalJSON() ([]byte, error) {
22952	type NoMethod NamedPort
22953	raw := NoMethod(*s)
22954	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22955}
22956
22957// Network: Represents a VPC Network resource.
22958//
22959// Networks connect resources to each other and to the internet. For
22960// more information, read Virtual Private Cloud (VPC) Network. (==
22961// resource_for v1.networks ==) (== resource_for beta.networks ==)
22962type Network struct {
22963	// IPv4Range: Deprecated in favor of subnet mode networks. The range of
22964	// internal addresses that are legal on this network. This range is a
22965	// CIDR specification, for example: 192.168.0.0/16. Provided by the
22966	// client when the network is created.
22967	IPv4Range string `json:"IPv4Range,omitempty"`
22968
22969	// AutoCreateSubnetworks: When set to true, the VPC network is created
22970	// in "auto" mode. When set to false, the VPC network is created in
22971	// "custom" mode.
22972	//
22973	// An auto mode VPC network starts with one subnet per region. Each
22974	// subnet has a predetermined range as described in Auto mode VPC
22975	// network IP ranges.
22976	AutoCreateSubnetworks bool `json:"autoCreateSubnetworks,omitempty"`
22977
22978	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
22979	// format.
22980	CreationTimestamp string `json:"creationTimestamp,omitempty"`
22981
22982	// CrossVmEncryption: [Output Only] Type of VM-to-VM traffic encryption
22983	// for this network.
22984	//
22985	// Possible values:
22986	//   "ENCRYPTED"
22987	//   "UNENCRYPTED"
22988	CrossVmEncryption string `json:"crossVmEncryption,omitempty"`
22989
22990	// Description: An optional description of this resource. Provide this
22991	// field when you create the resource.
22992	Description string `json:"description,omitempty"`
22993
22994	// GatewayIPv4: [Output Only] The gateway address for default routing
22995	// out of the network, selected by GCP.
22996	GatewayIPv4 string `json:"gatewayIPv4,omitempty"`
22997
22998	// Id: [Output Only] The unique identifier for the resource. This
22999	// identifier is defined by the server.
23000	Id uint64 `json:"id,omitempty,string"`
23001
23002	// Kind: [Output Only] Type of the resource. Always compute#network for
23003	// networks.
23004	Kind string `json:"kind,omitempty"`
23005
23006	// LoadBalancerVmEncryption: [Output Only] Type of LB-to-VM traffic
23007	// encryption for this network.
23008	//
23009	// Possible values:
23010	//   "ENCRYPTED"
23011	//   "UNENCRYPTED"
23012	LoadBalancerVmEncryption string `json:"loadBalancerVmEncryption,omitempty"`
23013
23014	// Mtu: Maximum Transmission Unit in bytes. The minimum value for this
23015	// field is 1460 and the maximum value is 1500 bytes.
23016	Mtu int64 `json:"mtu,omitempty"`
23017
23018	// MulticastMode: The multicast mode for this network. If set to ZONAL,
23019	// multicast is allowed within a zone. If set to DISABLED, multicast is
23020	// disabled for this network. The default is DISABLED.
23021	//
23022	// Possible values:
23023	//   "DISABLED"
23024	//   "ZONAL"
23025	MulticastMode string `json:"multicastMode,omitempty"`
23026
23027	// Name: Name of the resource. Provided by the client when the resource
23028	// is created. The name must be 1-63 characters long, and comply with
23029	// RFC1035. Specifically, the name must be 1-63 characters long and
23030	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?. The first
23031	// character must be a lowercase letter, and all following characters
23032	// (except for the last character) must be a dash, lowercase letter, or
23033	// digit. The last character must be a lowercase letter or digit.
23034	Name string `json:"name,omitempty"`
23035
23036	// Peerings: [Output Only] A list of network peerings for the resource.
23037	Peerings []*NetworkPeering `json:"peerings,omitempty"`
23038
23039	// RoutingConfig: The network-level routing configuration for this
23040	// network. Used by Cloud Router to determine what type of network-wide
23041	// routing behavior to enforce.
23042	RoutingConfig *NetworkRoutingConfig `json:"routingConfig,omitempty"`
23043
23044	// SelfLink: [Output Only] Server-defined URL for the resource.
23045	SelfLink string `json:"selfLink,omitempty"`
23046
23047	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
23048	// with the resource id.
23049	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
23050
23051	// Subnetworks: [Output Only] Server-defined fully-qualified URLs for
23052	// all subnetworks in this VPC network.
23053	Subnetworks []string `json:"subnetworks,omitempty"`
23054
23055	// ServerResponse contains the HTTP response code and headers from the
23056	// server.
23057	googleapi.ServerResponse `json:"-"`
23058
23059	// ForceSendFields is a list of field names (e.g. "IPv4Range") to
23060	// unconditionally include in API requests. By default, fields with
23061	// empty values are omitted from API requests. However, any non-pointer,
23062	// non-interface field appearing in ForceSendFields will be sent to the
23063	// server regardless of whether the field is empty or not. This may be
23064	// used to include empty fields in Patch requests.
23065	ForceSendFields []string `json:"-"`
23066
23067	// NullFields is a list of field names (e.g. "IPv4Range") to include in
23068	// API requests with the JSON null value. By default, fields with empty
23069	// values are omitted from API requests. However, any field with an
23070	// empty value appearing in NullFields will be sent to the server as
23071	// null. It is an error if a field in this list has a non-empty value.
23072	// This may be used to include null fields in Patch requests.
23073	NullFields []string `json:"-"`
23074}
23075
23076func (s *Network) MarshalJSON() ([]byte, error) {
23077	type NoMethod Network
23078	raw := NoMethod(*s)
23079	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23080}
23081
23082// NetworkEndpoint: The network endpoint.
23083type NetworkEndpoint struct {
23084	// Annotations: Metadata defined as annotations on the network endpoint.
23085	Annotations map[string]string `json:"annotations,omitempty"`
23086
23087	// Fqdn: Optional fully qualified domain name of network endpoint. This
23088	// can only be specified when NetworkEndpointGroup.network_endpoint_type
23089	// is NON_GCP_FQDN_PORT.
23090	Fqdn string `json:"fqdn,omitempty"`
23091
23092	// Instance: The name for a specific VM instance that the IP address
23093	// belongs to. This is required for network endpoints of type
23094	// GCE_VM_IP_PORT. The instance must be in the same zone of network
23095	// endpoint group.
23096	//
23097	// The name must be 1-63 characters long, and comply with RFC1035.
23098	Instance string `json:"instance,omitempty"`
23099
23100	// IpAddress: Optional IPv4 address of network endpoint. The IP address
23101	// must belong to a VM in Compute Engine (either the primary IP or as
23102	// part of an aliased IP range). If the IP address is not specified,
23103	// then the primary IP address for the VM instance in the network that
23104	// the network endpoint group belongs to will be used.
23105	IpAddress string `json:"ipAddress,omitempty"`
23106
23107	// Port: Optional port number of network endpoint. If not specified and
23108	// the NetworkEndpointGroup.network_endpoint_type is GCE_IP_PORT, the
23109	// defaultPort for the network endpoint group will be used.
23110	Port int64 `json:"port,omitempty"`
23111
23112	// ForceSendFields is a list of field names (e.g. "Annotations") to
23113	// unconditionally include in API requests. By default, fields with
23114	// empty values are omitted from API requests. However, any non-pointer,
23115	// non-interface field appearing in ForceSendFields will be sent to the
23116	// server regardless of whether the field is empty or not. This may be
23117	// used to include empty fields in Patch requests.
23118	ForceSendFields []string `json:"-"`
23119
23120	// NullFields is a list of field names (e.g. "Annotations") to include
23121	// in API requests with the JSON null value. By default, fields with
23122	// empty values are omitted from API requests. However, any field with
23123	// an empty value appearing in NullFields will be sent to the server as
23124	// null. It is an error if a field in this list has a non-empty value.
23125	// This may be used to include null fields in Patch requests.
23126	NullFields []string `json:"-"`
23127}
23128
23129func (s *NetworkEndpoint) MarshalJSON() ([]byte, error) {
23130	type NoMethod NetworkEndpoint
23131	raw := NoMethod(*s)
23132	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23133}
23134
23135// NetworkEndpointGroup: Represents a collection of network
23136// endpoints.
23137//
23138// For more information read Setting up network endpoint groups in load
23139// balancing. (== resource_for v1.networkEndpointGroups ==) (==
23140// resource_for beta.networkEndpointGroups ==)
23141type NetworkEndpointGroup struct {
23142	// Annotations: Metadata defined as annotations on the network endpoint
23143	// group.
23144	Annotations map[string]string `json:"annotations,omitempty"`
23145
23146	// AppEngine: Only valid when networkEndpointType is "SERVERLESS". Only
23147	// one of cloudRun, appEngine or cloudFunction may be set.
23148	AppEngine *NetworkEndpointGroupAppEngine `json:"appEngine,omitempty"`
23149
23150	// CloudFunction: Only valid when networkEndpointType is "SERVERLESS".
23151	// Only one of cloudRun, appEngine or cloudFunction may be set.
23152	CloudFunction *NetworkEndpointGroupCloudFunction `json:"cloudFunction,omitempty"`
23153
23154	// CloudRun: Only valid when networkEndpointType is "SERVERLESS". Only
23155	// one of cloudRun, appEngine or cloudFunction may be set.
23156	CloudRun *NetworkEndpointGroupCloudRun `json:"cloudRun,omitempty"`
23157
23158	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
23159	// format.
23160	CreationTimestamp string `json:"creationTimestamp,omitempty"`
23161
23162	// DefaultPort: The default port used if the port number is not
23163	// specified in the network endpoint.
23164	DefaultPort int64 `json:"defaultPort,omitempty"`
23165
23166	// Description: An optional description of this resource. Provide this
23167	// property when you create the resource.
23168	Description string `json:"description,omitempty"`
23169
23170	// Id: [Output Only] The unique identifier for the resource. This
23171	// identifier is defined by the server.
23172	Id uint64 `json:"id,omitempty,string"`
23173
23174	// Kind: [Output Only] Type of the resource. Always
23175	// compute#networkEndpointGroup for network endpoint group.
23176	Kind string `json:"kind,omitempty"`
23177
23178	// LoadBalancer: This field is only valid when the network endpoint
23179	// group is used for load balancing. [Deprecated] This field is
23180	// deprecated.
23181	LoadBalancer *NetworkEndpointGroupLbNetworkEndpointGroup `json:"loadBalancer,omitempty"`
23182
23183	// Name: Name of the resource; provided by the client when the resource
23184	// is created. The name must be 1-63 characters long, and comply with
23185	// RFC1035. Specifically, the name must be 1-63 characters long and
23186	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
23187	// the first character must be a lowercase letter, and all following
23188	// characters must be a dash, lowercase letter, or digit, except the
23189	// last character, which cannot be a dash.
23190	Name string `json:"name,omitempty"`
23191
23192	// Network: The URL of the network to which all network endpoints in the
23193	// NEG belong. Uses "default" project network if unspecified.
23194	Network string `json:"network,omitempty"`
23195
23196	// NetworkEndpointType: Type of network endpoints in this network
23197	// endpoint group. Currently the only supported value is GCE_VM_IP_PORT.
23198	//
23199	// Possible values:
23200	//   "GCE_VM_IP_PORT"
23201	//   "GCE_VM_PRIMARY_IP"
23202	//   "INTERNET_FQDN_PORT"
23203	//   "INTERNET_IP_PORT"
23204	//   "NON_GCP_PRIVATE_IP_PORT"
23205	//   "SERVERLESS"
23206	NetworkEndpointType string `json:"networkEndpointType,omitempty"`
23207
23208	// Region: [Output Only] The URL of the region where the network
23209	// endpoint group is located.
23210	Region string `json:"region,omitempty"`
23211
23212	// SelfLink: [Output Only] Server-defined URL for the resource.
23213	SelfLink string `json:"selfLink,omitempty"`
23214
23215	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
23216	// with the resource id.
23217	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
23218
23219	// Size: [Output only] Number of network endpoints in the network
23220	// endpoint group.
23221	Size int64 `json:"size,omitempty"`
23222
23223	// Subnetwork: Optional URL of the subnetwork to which all network
23224	// endpoints in the NEG belong.
23225	Subnetwork string `json:"subnetwork,omitempty"`
23226
23227	// Type: Specify the type of this network endpoint group. Only
23228	// LOAD_BALANCING is valid for now.
23229	//
23230	// Possible values:
23231	//   "LOAD_BALANCING"
23232	Type string `json:"type,omitempty"`
23233
23234	// Zone: [Output Only] The URL of the zone where the network endpoint
23235	// group is located.
23236	Zone string `json:"zone,omitempty"`
23237
23238	// ServerResponse contains the HTTP response code and headers from the
23239	// server.
23240	googleapi.ServerResponse `json:"-"`
23241
23242	// ForceSendFields is a list of field names (e.g. "Annotations") to
23243	// unconditionally include in API requests. By default, fields with
23244	// empty values are omitted from API requests. However, any non-pointer,
23245	// non-interface field appearing in ForceSendFields will be sent to the
23246	// server regardless of whether the field is empty or not. This may be
23247	// used to include empty fields in Patch requests.
23248	ForceSendFields []string `json:"-"`
23249
23250	// NullFields is a list of field names (e.g. "Annotations") to include
23251	// in API requests with the JSON null value. By default, fields with
23252	// empty values are omitted from API requests. However, any field with
23253	// an empty value appearing in NullFields will be sent to the server as
23254	// null. It is an error if a field in this list has a non-empty value.
23255	// This may be used to include null fields in Patch requests.
23256	NullFields []string `json:"-"`
23257}
23258
23259func (s *NetworkEndpointGroup) MarshalJSON() ([]byte, error) {
23260	type NoMethod NetworkEndpointGroup
23261	raw := NoMethod(*s)
23262	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23263}
23264
23265type NetworkEndpointGroupAggregatedList struct {
23266	// Id: [Output Only] Unique identifier for the resource; defined by the
23267	// server.
23268	Id string `json:"id,omitempty"`
23269
23270	// Items: A list of NetworkEndpointGroupsScopedList resources.
23271	Items map[string]NetworkEndpointGroupsScopedList `json:"items,omitempty"`
23272
23273	// Kind: [Output Only] The resource type, which is always
23274	// compute#networkEndpointGroupAggregatedList for aggregated lists of
23275	// network endpoint groups.
23276	Kind string `json:"kind,omitempty"`
23277
23278	// NextPageToken: [Output Only] This token allows you to get the next
23279	// page of results for list requests. If the number of results is larger
23280	// than maxResults, use the nextPageToken as a value for the query
23281	// parameter pageToken in the next list request. Subsequent list
23282	// requests will have their own nextPageToken to continue paging through
23283	// the results.
23284	NextPageToken string `json:"nextPageToken,omitempty"`
23285
23286	// SelfLink: [Output Only] Server-defined URL for this resource.
23287	SelfLink string `json:"selfLink,omitempty"`
23288
23289	// Warning: [Output Only] Informational warning message.
23290	Warning *NetworkEndpointGroupAggregatedListWarning `json:"warning,omitempty"`
23291
23292	// ServerResponse contains the HTTP response code and headers from the
23293	// server.
23294	googleapi.ServerResponse `json:"-"`
23295
23296	// ForceSendFields is a list of field names (e.g. "Id") to
23297	// unconditionally include in API requests. By default, fields with
23298	// empty values are omitted from API requests. However, any non-pointer,
23299	// non-interface field appearing in ForceSendFields will be sent to the
23300	// server regardless of whether the field is empty or not. This may be
23301	// used to include empty fields in Patch requests.
23302	ForceSendFields []string `json:"-"`
23303
23304	// NullFields is a list of field names (e.g. "Id") to include in API
23305	// requests with the JSON null value. By default, fields with empty
23306	// values are omitted from API requests. However, any field with an
23307	// empty value appearing in NullFields will be sent to the server as
23308	// null. It is an error if a field in this list has a non-empty value.
23309	// This may be used to include null fields in Patch requests.
23310	NullFields []string `json:"-"`
23311}
23312
23313func (s *NetworkEndpointGroupAggregatedList) MarshalJSON() ([]byte, error) {
23314	type NoMethod NetworkEndpointGroupAggregatedList
23315	raw := NoMethod(*s)
23316	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23317}
23318
23319// NetworkEndpointGroupAggregatedListWarning: [Output Only]
23320// Informational warning message.
23321type NetworkEndpointGroupAggregatedListWarning struct {
23322	// Code: [Output Only] A warning code, if applicable. For example,
23323	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
23324	// the response.
23325	//
23326	// Possible values:
23327	//   "CLEANUP_FAILED"
23328	//   "DEPRECATED_RESOURCE_USED"
23329	//   "DEPRECATED_TYPE_USED"
23330	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
23331	//   "EXPERIMENTAL_TYPE_USED"
23332	//   "EXTERNAL_API_WARNING"
23333	//   "FIELD_VALUE_OVERRIDEN"
23334	//   "INJECTED_KERNELS_DEPRECATED"
23335	//   "MISSING_TYPE_DEPENDENCY"
23336	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
23337	//   "NEXT_HOP_CANNOT_IP_FORWARD"
23338	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
23339	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
23340	//   "NEXT_HOP_NOT_RUNNING"
23341	//   "NOT_CRITICAL_ERROR"
23342	//   "NO_RESULTS_ON_PAGE"
23343	//   "REQUIRED_TOS_AGREEMENT"
23344	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
23345	//   "RESOURCE_NOT_DELETED"
23346	//   "SCHEMA_VALIDATION_IGNORED"
23347	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
23348	//   "UNDECLARED_PROPERTIES"
23349	//   "UNREACHABLE"
23350	Code string `json:"code,omitempty"`
23351
23352	// Data: [Output Only] Metadata about this warning in key: value format.
23353	// For example:
23354	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
23355	Data []*NetworkEndpointGroupAggregatedListWarningData `json:"data,omitempty"`
23356
23357	// Message: [Output Only] A human-readable description of the warning
23358	// code.
23359	Message string `json:"message,omitempty"`
23360
23361	// ForceSendFields is a list of field names (e.g. "Code") to
23362	// unconditionally include in API requests. By default, fields with
23363	// empty values are omitted from API requests. However, any non-pointer,
23364	// non-interface field appearing in ForceSendFields will be sent to the
23365	// server regardless of whether the field is empty or not. This may be
23366	// used to include empty fields in Patch requests.
23367	ForceSendFields []string `json:"-"`
23368
23369	// NullFields is a list of field names (e.g. "Code") to include in API
23370	// requests with the JSON null value. By default, fields with empty
23371	// values are omitted from API requests. However, any field with an
23372	// empty value appearing in NullFields will be sent to the server as
23373	// null. It is an error if a field in this list has a non-empty value.
23374	// This may be used to include null fields in Patch requests.
23375	NullFields []string `json:"-"`
23376}
23377
23378func (s *NetworkEndpointGroupAggregatedListWarning) MarshalJSON() ([]byte, error) {
23379	type NoMethod NetworkEndpointGroupAggregatedListWarning
23380	raw := NoMethod(*s)
23381	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23382}
23383
23384type NetworkEndpointGroupAggregatedListWarningData struct {
23385	// Key: [Output Only] A key that provides more detail on the warning
23386	// being returned. For example, for warnings where there are no results
23387	// in a list request for a particular zone, this key might be scope and
23388	// the key value might be the zone name. Other examples might be a key
23389	// indicating a deprecated resource and a suggested replacement, or a
23390	// warning about invalid network settings (for example, if an instance
23391	// attempts to perform IP forwarding but is not enabled for IP
23392	// forwarding).
23393	Key string `json:"key,omitempty"`
23394
23395	// Value: [Output Only] A warning data value corresponding to the key.
23396	Value string `json:"value,omitempty"`
23397
23398	// ForceSendFields is a list of field names (e.g. "Key") to
23399	// unconditionally include in API requests. By default, fields with
23400	// empty values are omitted from API requests. However, any non-pointer,
23401	// non-interface field appearing in ForceSendFields will be sent to the
23402	// server regardless of whether the field is empty or not. This may be
23403	// used to include empty fields in Patch requests.
23404	ForceSendFields []string `json:"-"`
23405
23406	// NullFields is a list of field names (e.g. "Key") to include in API
23407	// requests with the JSON null value. By default, fields with empty
23408	// values are omitted from API requests. However, any field with an
23409	// empty value appearing in NullFields will be sent to the server as
23410	// null. It is an error if a field in this list has a non-empty value.
23411	// This may be used to include null fields in Patch requests.
23412	NullFields []string `json:"-"`
23413}
23414
23415func (s *NetworkEndpointGroupAggregatedListWarningData) MarshalJSON() ([]byte, error) {
23416	type NoMethod NetworkEndpointGroupAggregatedListWarningData
23417	raw := NoMethod(*s)
23418	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23419}
23420
23421// NetworkEndpointGroupAppEngine: Configuration for an App Engine
23422// network endpoint group (NEG). The service is optional, may be
23423// provided explicitly or in the URL mask. The version is optional and
23424// can only be provided explicitly or in the URL mask when service is
23425// present.
23426//
23427// Note: App Engine service must be in the same project and located in
23428// the same region as the Serverless NEG.
23429type NetworkEndpointGroupAppEngine struct {
23430	// Service: Optional serving service.
23431	//
23432	// The service name must be 1-63 characters long, and comply with
23433	// RFC1035.
23434	//
23435	// Example value: "default", "my-service".
23436	Service string `json:"service,omitempty"`
23437
23438	// UrlMask: A template to parse service and version fields from a
23439	// request URL. URL mask allows for routing to multiple App Engine
23440	// services without having to create multiple Network Endpoint Groups
23441	// and backend services.
23442	//
23443	// For example, the request URLs "foo1-dot-appname.appspot.com/v1" and
23444	// "foo1-dot-appname.appspot.com/v2" can be backed by the same
23445	// Serverless NEG with URL mask "-dot-appname.appspot.com/". The URL
23446	// mask will parse them to { service = "foo1", version = "v1" } and {
23447	// service = "foo1", version = "v2" } respectively.
23448	UrlMask string `json:"urlMask,omitempty"`
23449
23450	// Version: Optional serving version.
23451	//
23452	// The version must be 1-63 characters long, and comply with
23453	// RFC1035.
23454	//
23455	// Example value: "v1", "v2".
23456	Version string `json:"version,omitempty"`
23457
23458	// ForceSendFields is a list of field names (e.g. "Service") to
23459	// unconditionally include in API requests. By default, fields with
23460	// empty values are omitted from API requests. However, any non-pointer,
23461	// non-interface field appearing in ForceSendFields will be sent to the
23462	// server regardless of whether the field is empty or not. This may be
23463	// used to include empty fields in Patch requests.
23464	ForceSendFields []string `json:"-"`
23465
23466	// NullFields is a list of field names (e.g. "Service") to include in
23467	// API requests with the JSON null value. By default, fields with empty
23468	// values are omitted from API requests. However, any field with an
23469	// empty value appearing in NullFields will be sent to the server as
23470	// null. It is an error if a field in this list has a non-empty value.
23471	// This may be used to include null fields in Patch requests.
23472	NullFields []string `json:"-"`
23473}
23474
23475func (s *NetworkEndpointGroupAppEngine) MarshalJSON() ([]byte, error) {
23476	type NoMethod NetworkEndpointGroupAppEngine
23477	raw := NoMethod(*s)
23478	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23479}
23480
23481// NetworkEndpointGroupCloudFunction: Configuration for a Cloud Function
23482// network endpoint group (NEG). The function must be provided
23483// explicitly or in the URL mask.
23484//
23485// Note: Cloud Function must be in the same project and located in the
23486// same region as the Serverless NEG.
23487type NetworkEndpointGroupCloudFunction struct {
23488	// Function: A user-defined name of the Cloud Function.
23489	//
23490	// The service name must be 1-63 characters long, and comply with
23491	// RFC1035.
23492	//
23493	// Example value: "func1".
23494	Function string `json:"function,omitempty"`
23495
23496	// UrlMask: A template to parse function field from a request URL. URL
23497	// mask allows for routing to multiple Cloud Functions without having to
23498	// create multiple Network Endpoint Groups and backend services.
23499	//
23500	// For example, request URLs "mydomain.com/function1" and
23501	// "mydomain.com/function2" can be backed by the same Serverless NEG
23502	// with URL mask "/". The URL mask will parse them to { function =
23503	// "function1" } and { function = "function2" } respectively.
23504	UrlMask string `json:"urlMask,omitempty"`
23505
23506	// ForceSendFields is a list of field names (e.g. "Function") to
23507	// unconditionally include in API requests. By default, fields with
23508	// empty values are omitted from API requests. However, any non-pointer,
23509	// non-interface field appearing in ForceSendFields will be sent to the
23510	// server regardless of whether the field is empty or not. This may be
23511	// used to include empty fields in Patch requests.
23512	ForceSendFields []string `json:"-"`
23513
23514	// NullFields is a list of field names (e.g. "Function") to include in
23515	// API requests with the JSON null value. By default, fields with empty
23516	// values are omitted from API requests. However, any field with an
23517	// empty value appearing in NullFields will be sent to the server as
23518	// null. It is an error if a field in this list has a non-empty value.
23519	// This may be used to include null fields in Patch requests.
23520	NullFields []string `json:"-"`
23521}
23522
23523func (s *NetworkEndpointGroupCloudFunction) MarshalJSON() ([]byte, error) {
23524	type NoMethod NetworkEndpointGroupCloudFunction
23525	raw := NoMethod(*s)
23526	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23527}
23528
23529// NetworkEndpointGroupCloudRun: Configuration for a Cloud Run network
23530// endpoint group (NEG). The service must be provided explicitly or in
23531// the URL mask. The tag is optional, may be provided explicitly or in
23532// the URL mask.
23533//
23534// Note: Cloud Run service must be in the same project and located in
23535// the same region as the Serverless NEG.
23536type NetworkEndpointGroupCloudRun struct {
23537	// Service: Cloud Run service is the main resource of Cloud Run.
23538	//
23539	// The tag must be 1-63 characters long, and comply with
23540	// RFC1035.
23541	//
23542	// Example value: "run-service".
23543	Service string `json:"service,omitempty"`
23544
23545	// Tag: Optional Cloud Run tag represents the "named-revision" to
23546	// provide additional fine-grained traffic routing information.
23547	//
23548	// The tag must be 1-63 characters long, and comply with
23549	// RFC1035.
23550	//
23551	// Example value: "revision-0010".
23552	Tag string `json:"tag,omitempty"`
23553
23554	// UrlMask: A template to parse service and tag fields from a request
23555	// URL. URL mask allows for routing to multiple Run services without
23556	// having to create multiple network endpoint groups and backend
23557	// services.
23558	//
23559	// For example, request URLs "foo1.domain.com/bar1" and
23560	// "foo1.domain.com/bar2" can be backed by the same Serverless Network
23561	// Endpoint Group (NEG) with URL mask ".domain.com/". The URL mask will
23562	// parse them to { service="bar1", tag="foo1" } and { service="bar2",
23563	// tag="foo2" } respectively.
23564	UrlMask string `json:"urlMask,omitempty"`
23565
23566	// ForceSendFields is a list of field names (e.g. "Service") to
23567	// unconditionally include in API requests. By default, fields with
23568	// empty values are omitted from API requests. However, any non-pointer,
23569	// non-interface field appearing in ForceSendFields will be sent to the
23570	// server regardless of whether the field is empty or not. This may be
23571	// used to include empty fields in Patch requests.
23572	ForceSendFields []string `json:"-"`
23573
23574	// NullFields is a list of field names (e.g. "Service") to include in
23575	// API requests with the JSON null value. By default, fields with empty
23576	// values are omitted from API requests. However, any field with an
23577	// empty value appearing in NullFields will be sent to the server as
23578	// null. It is an error if a field in this list has a non-empty value.
23579	// This may be used to include null fields in Patch requests.
23580	NullFields []string `json:"-"`
23581}
23582
23583func (s *NetworkEndpointGroupCloudRun) MarshalJSON() ([]byte, error) {
23584	type NoMethod NetworkEndpointGroupCloudRun
23585	raw := NoMethod(*s)
23586	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23587}
23588
23589// NetworkEndpointGroupLbNetworkEndpointGroup: Load balancing specific
23590// fields for network endpoint group.
23591type NetworkEndpointGroupLbNetworkEndpointGroup struct {
23592	// DefaultPort: The default port used if the port number is not
23593	// specified in the network endpoint. [Deprecated] This field is
23594	// deprecated.
23595	DefaultPort int64 `json:"defaultPort,omitempty"`
23596
23597	// Network: The URL of the network to which all network endpoints in the
23598	// NEG belong. Uses "default" project network if unspecified.
23599	// [Deprecated] This field is deprecated.
23600	Network string `json:"network,omitempty"`
23601
23602	// Subnetwork: Optional URL of the subnetwork to which all network
23603	// endpoints in the NEG belong. [Deprecated] This field is deprecated.
23604	Subnetwork string `json:"subnetwork,omitempty"`
23605
23606	// Zone: [Output Only] The URL of the zone where the network endpoint
23607	// group is located. [Deprecated] This field is deprecated.
23608	Zone string `json:"zone,omitempty"`
23609
23610	// ForceSendFields is a list of field names (e.g. "DefaultPort") to
23611	// unconditionally include in API requests. By default, fields with
23612	// empty values are omitted from API requests. However, any non-pointer,
23613	// non-interface field appearing in ForceSendFields will be sent to the
23614	// server regardless of whether the field is empty or not. This may be
23615	// used to include empty fields in Patch requests.
23616	ForceSendFields []string `json:"-"`
23617
23618	// NullFields is a list of field names (e.g. "DefaultPort") to include
23619	// in API requests with the JSON null value. By default, fields with
23620	// empty values are omitted from API requests. However, any field with
23621	// an empty value appearing in NullFields will be sent to the server as
23622	// null. It is an error if a field in this list has a non-empty value.
23623	// This may be used to include null fields in Patch requests.
23624	NullFields []string `json:"-"`
23625}
23626
23627func (s *NetworkEndpointGroupLbNetworkEndpointGroup) MarshalJSON() ([]byte, error) {
23628	type NoMethod NetworkEndpointGroupLbNetworkEndpointGroup
23629	raw := NoMethod(*s)
23630	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23631}
23632
23633type NetworkEndpointGroupList struct {
23634	// Id: [Output Only] Unique identifier for the resource; defined by the
23635	// server.
23636	Id string `json:"id,omitempty"`
23637
23638	// Items: A list of NetworkEndpointGroup resources.
23639	Items []*NetworkEndpointGroup `json:"items,omitempty"`
23640
23641	// Kind: [Output Only] The resource type, which is always
23642	// compute#networkEndpointGroupList for network endpoint group lists.
23643	Kind string `json:"kind,omitempty"`
23644
23645	// NextPageToken: [Output Only] This token allows you to get the next
23646	// page of results for list requests. If the number of results is larger
23647	// than maxResults, use the nextPageToken as a value for the query
23648	// parameter pageToken in the next list request. Subsequent list
23649	// requests will have their own nextPageToken to continue paging through
23650	// the results.
23651	NextPageToken string `json:"nextPageToken,omitempty"`
23652
23653	// SelfLink: [Output Only] Server-defined URL for this resource.
23654	SelfLink string `json:"selfLink,omitempty"`
23655
23656	// Warning: [Output Only] Informational warning message.
23657	Warning *NetworkEndpointGroupListWarning `json:"warning,omitempty"`
23658
23659	// ServerResponse contains the HTTP response code and headers from the
23660	// server.
23661	googleapi.ServerResponse `json:"-"`
23662
23663	// ForceSendFields is a list of field names (e.g. "Id") to
23664	// unconditionally include in API requests. By default, fields with
23665	// empty values are omitted from API requests. However, any non-pointer,
23666	// non-interface field appearing in ForceSendFields will be sent to the
23667	// server regardless of whether the field is empty or not. This may be
23668	// used to include empty fields in Patch requests.
23669	ForceSendFields []string `json:"-"`
23670
23671	// NullFields is a list of field names (e.g. "Id") to include in API
23672	// requests with the JSON null value. By default, fields with empty
23673	// values are omitted from API requests. However, any field with an
23674	// empty value appearing in NullFields will be sent to the server as
23675	// null. It is an error if a field in this list has a non-empty value.
23676	// This may be used to include null fields in Patch requests.
23677	NullFields []string `json:"-"`
23678}
23679
23680func (s *NetworkEndpointGroupList) MarshalJSON() ([]byte, error) {
23681	type NoMethod NetworkEndpointGroupList
23682	raw := NoMethod(*s)
23683	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23684}
23685
23686// NetworkEndpointGroupListWarning: [Output Only] Informational warning
23687// message.
23688type NetworkEndpointGroupListWarning struct {
23689	// Code: [Output Only] A warning code, if applicable. For example,
23690	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
23691	// the response.
23692	//
23693	// Possible values:
23694	//   "CLEANUP_FAILED"
23695	//   "DEPRECATED_RESOURCE_USED"
23696	//   "DEPRECATED_TYPE_USED"
23697	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
23698	//   "EXPERIMENTAL_TYPE_USED"
23699	//   "EXTERNAL_API_WARNING"
23700	//   "FIELD_VALUE_OVERRIDEN"
23701	//   "INJECTED_KERNELS_DEPRECATED"
23702	//   "MISSING_TYPE_DEPENDENCY"
23703	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
23704	//   "NEXT_HOP_CANNOT_IP_FORWARD"
23705	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
23706	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
23707	//   "NEXT_HOP_NOT_RUNNING"
23708	//   "NOT_CRITICAL_ERROR"
23709	//   "NO_RESULTS_ON_PAGE"
23710	//   "REQUIRED_TOS_AGREEMENT"
23711	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
23712	//   "RESOURCE_NOT_DELETED"
23713	//   "SCHEMA_VALIDATION_IGNORED"
23714	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
23715	//   "UNDECLARED_PROPERTIES"
23716	//   "UNREACHABLE"
23717	Code string `json:"code,omitempty"`
23718
23719	// Data: [Output Only] Metadata about this warning in key: value format.
23720	// For example:
23721	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
23722	Data []*NetworkEndpointGroupListWarningData `json:"data,omitempty"`
23723
23724	// Message: [Output Only] A human-readable description of the warning
23725	// code.
23726	Message string `json:"message,omitempty"`
23727
23728	// ForceSendFields is a list of field names (e.g. "Code") to
23729	// unconditionally include in API requests. By default, fields with
23730	// empty values are omitted from API requests. However, any non-pointer,
23731	// non-interface field appearing in ForceSendFields will be sent to the
23732	// server regardless of whether the field is empty or not. This may be
23733	// used to include empty fields in Patch requests.
23734	ForceSendFields []string `json:"-"`
23735
23736	// NullFields is a list of field names (e.g. "Code") to include in API
23737	// requests with the JSON null value. By default, fields with empty
23738	// values are omitted from API requests. However, any field with an
23739	// empty value appearing in NullFields will be sent to the server as
23740	// null. It is an error if a field in this list has a non-empty value.
23741	// This may be used to include null fields in Patch requests.
23742	NullFields []string `json:"-"`
23743}
23744
23745func (s *NetworkEndpointGroupListWarning) MarshalJSON() ([]byte, error) {
23746	type NoMethod NetworkEndpointGroupListWarning
23747	raw := NoMethod(*s)
23748	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23749}
23750
23751type NetworkEndpointGroupListWarningData struct {
23752	// Key: [Output Only] A key that provides more detail on the warning
23753	// being returned. For example, for warnings where there are no results
23754	// in a list request for a particular zone, this key might be scope and
23755	// the key value might be the zone name. Other examples might be a key
23756	// indicating a deprecated resource and a suggested replacement, or a
23757	// warning about invalid network settings (for example, if an instance
23758	// attempts to perform IP forwarding but is not enabled for IP
23759	// forwarding).
23760	Key string `json:"key,omitempty"`
23761
23762	// Value: [Output Only] A warning data value corresponding to the key.
23763	Value string `json:"value,omitempty"`
23764
23765	// ForceSendFields is a list of field names (e.g. "Key") to
23766	// unconditionally include in API requests. By default, fields with
23767	// empty values are omitted from API requests. However, any non-pointer,
23768	// non-interface field appearing in ForceSendFields will be sent to the
23769	// server regardless of whether the field is empty or not. This may be
23770	// used to include empty fields in Patch requests.
23771	ForceSendFields []string `json:"-"`
23772
23773	// NullFields is a list of field names (e.g. "Key") to include in API
23774	// requests with the JSON null value. By default, fields with empty
23775	// values are omitted from API requests. However, any field with an
23776	// empty value appearing in NullFields will be sent to the server as
23777	// null. It is an error if a field in this list has a non-empty value.
23778	// This may be used to include null fields in Patch requests.
23779	NullFields []string `json:"-"`
23780}
23781
23782func (s *NetworkEndpointGroupListWarningData) MarshalJSON() ([]byte, error) {
23783	type NoMethod NetworkEndpointGroupListWarningData
23784	raw := NoMethod(*s)
23785	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23786}
23787
23788type NetworkEndpointGroupsAttachEndpointsRequest struct {
23789	// NetworkEndpoints: The list of network endpoints to be attached.
23790	NetworkEndpoints []*NetworkEndpoint `json:"networkEndpoints,omitempty"`
23791
23792	// ForceSendFields is a list of field names (e.g. "NetworkEndpoints") to
23793	// unconditionally include in API requests. By default, fields with
23794	// empty values are omitted from API requests. However, any non-pointer,
23795	// non-interface field appearing in ForceSendFields will be sent to the
23796	// server regardless of whether the field is empty or not. This may be
23797	// used to include empty fields in Patch requests.
23798	ForceSendFields []string `json:"-"`
23799
23800	// NullFields is a list of field names (e.g. "NetworkEndpoints") to
23801	// include in API requests with the JSON null value. By default, fields
23802	// with empty values are omitted from API requests. However, any field
23803	// with an empty value appearing in NullFields will be sent to the
23804	// server as null. It is an error if a field in this list has a
23805	// non-empty value. This may be used to include null fields in Patch
23806	// requests.
23807	NullFields []string `json:"-"`
23808}
23809
23810func (s *NetworkEndpointGroupsAttachEndpointsRequest) MarshalJSON() ([]byte, error) {
23811	type NoMethod NetworkEndpointGroupsAttachEndpointsRequest
23812	raw := NoMethod(*s)
23813	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23814}
23815
23816type NetworkEndpointGroupsDetachEndpointsRequest struct {
23817	// NetworkEndpoints: The list of network endpoints to be detached.
23818	NetworkEndpoints []*NetworkEndpoint `json:"networkEndpoints,omitempty"`
23819
23820	// ForceSendFields is a list of field names (e.g. "NetworkEndpoints") to
23821	// unconditionally include in API requests. By default, fields with
23822	// empty values are omitted from API requests. However, any non-pointer,
23823	// non-interface field appearing in ForceSendFields will be sent to the
23824	// server regardless of whether the field is empty or not. This may be
23825	// used to include empty fields in Patch requests.
23826	ForceSendFields []string `json:"-"`
23827
23828	// NullFields is a list of field names (e.g. "NetworkEndpoints") to
23829	// include in API requests with the JSON null value. By default, fields
23830	// with empty values are omitted from API requests. However, any field
23831	// with an empty value appearing in NullFields will be sent to the
23832	// server as null. It is an error if a field in this list has a
23833	// non-empty value. This may be used to include null fields in Patch
23834	// requests.
23835	NullFields []string `json:"-"`
23836}
23837
23838func (s *NetworkEndpointGroupsDetachEndpointsRequest) MarshalJSON() ([]byte, error) {
23839	type NoMethod NetworkEndpointGroupsDetachEndpointsRequest
23840	raw := NoMethod(*s)
23841	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23842}
23843
23844type NetworkEndpointGroupsListEndpointsRequest struct {
23845	// EndpointFilters: Optional list of endpoints to query. This is a more
23846	// efficient but also limited version of filter parameter. Endpoints in
23847	// the filter must have ip_address and port fields populated, other
23848	// fields are not supported.
23849	EndpointFilters []*NetworkEndpointGroupsListEndpointsRequestNetworkEndpointFilter `json:"endpointFilters,omitempty"`
23850
23851	// HealthStatus: Optional query parameter for showing the health status
23852	// of each network endpoint. Valid options are SKIP or SHOW. If you
23853	// don't specifiy this parameter, the health status of network endpoints
23854	// will not be provided.
23855	//
23856	// Possible values:
23857	//   "SHOW"
23858	//   "SKIP"
23859	HealthStatus string `json:"healthStatus,omitempty"`
23860
23861	// ForceSendFields is a list of field names (e.g. "EndpointFilters") to
23862	// unconditionally include in API requests. By default, fields with
23863	// empty values are omitted from API requests. However, any non-pointer,
23864	// non-interface field appearing in ForceSendFields will be sent to the
23865	// server regardless of whether the field is empty or not. This may be
23866	// used to include empty fields in Patch requests.
23867	ForceSendFields []string `json:"-"`
23868
23869	// NullFields is a list of field names (e.g. "EndpointFilters") to
23870	// include in API requests with the JSON null value. By default, fields
23871	// with empty values are omitted from API requests. However, any field
23872	// with an empty value appearing in NullFields will be sent to the
23873	// server as null. It is an error if a field in this list has a
23874	// non-empty value. This may be used to include null fields in Patch
23875	// requests.
23876	NullFields []string `json:"-"`
23877}
23878
23879func (s *NetworkEndpointGroupsListEndpointsRequest) MarshalJSON() ([]byte, error) {
23880	type NoMethod NetworkEndpointGroupsListEndpointsRequest
23881	raw := NoMethod(*s)
23882	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23883}
23884
23885type NetworkEndpointGroupsListEndpointsRequestNetworkEndpointFilter struct {
23886	NetworkEndpoint *NetworkEndpoint `json:"networkEndpoint,omitempty"`
23887
23888	// ForceSendFields is a list of field names (e.g. "NetworkEndpoint") to
23889	// unconditionally include in API requests. By default, fields with
23890	// empty values are omitted from API requests. However, any non-pointer,
23891	// non-interface field appearing in ForceSendFields will be sent to the
23892	// server regardless of whether the field is empty or not. This may be
23893	// used to include empty fields in Patch requests.
23894	ForceSendFields []string `json:"-"`
23895
23896	// NullFields is a list of field names (e.g. "NetworkEndpoint") to
23897	// include in API requests with the JSON null value. By default, fields
23898	// with empty values are omitted from API requests. However, any field
23899	// with an empty value appearing in NullFields will be sent to the
23900	// server as null. It is an error if a field in this list has a
23901	// non-empty value. This may be used to include null fields in Patch
23902	// requests.
23903	NullFields []string `json:"-"`
23904}
23905
23906func (s *NetworkEndpointGroupsListEndpointsRequestNetworkEndpointFilter) MarshalJSON() ([]byte, error) {
23907	type NoMethod NetworkEndpointGroupsListEndpointsRequestNetworkEndpointFilter
23908	raw := NoMethod(*s)
23909	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23910}
23911
23912type NetworkEndpointGroupsListNetworkEndpoints struct {
23913	// Id: [Output Only] Unique identifier for the resource; defined by the
23914	// server.
23915	Id string `json:"id,omitempty"`
23916
23917	// Items: A list of NetworkEndpointWithHealthStatus resources.
23918	Items []*NetworkEndpointWithHealthStatus `json:"items,omitempty"`
23919
23920	// Kind: [Output Only] The resource type, which is always
23921	// compute#networkEndpointGroupsListNetworkEndpoints for the list of
23922	// network endpoints in the specified network endpoint group.
23923	Kind string `json:"kind,omitempty"`
23924
23925	// NextPageToken: [Output Only] This token allows you to get the next
23926	// page of results for list requests. If the number of results is larger
23927	// than maxResults, use the nextPageToken as a value for the query
23928	// parameter pageToken in the next list request. Subsequent list
23929	// requests will have their own nextPageToken to continue paging through
23930	// the results.
23931	NextPageToken string `json:"nextPageToken,omitempty"`
23932
23933	// Warning: [Output Only] Informational warning message.
23934	Warning *NetworkEndpointGroupsListNetworkEndpointsWarning `json:"warning,omitempty"`
23935
23936	// ServerResponse contains the HTTP response code and headers from the
23937	// server.
23938	googleapi.ServerResponse `json:"-"`
23939
23940	// ForceSendFields is a list of field names (e.g. "Id") to
23941	// unconditionally include in API requests. By default, fields with
23942	// empty values are omitted from API requests. However, any non-pointer,
23943	// non-interface field appearing in ForceSendFields will be sent to the
23944	// server regardless of whether the field is empty or not. This may be
23945	// used to include empty fields in Patch requests.
23946	ForceSendFields []string `json:"-"`
23947
23948	// NullFields is a list of field names (e.g. "Id") to include in API
23949	// requests with the JSON null value. By default, fields with empty
23950	// values are omitted from API requests. However, any field with an
23951	// empty value appearing in NullFields will be sent to the server as
23952	// null. It is an error if a field in this list has a non-empty value.
23953	// This may be used to include null fields in Patch requests.
23954	NullFields []string `json:"-"`
23955}
23956
23957func (s *NetworkEndpointGroupsListNetworkEndpoints) MarshalJSON() ([]byte, error) {
23958	type NoMethod NetworkEndpointGroupsListNetworkEndpoints
23959	raw := NoMethod(*s)
23960	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23961}
23962
23963// NetworkEndpointGroupsListNetworkEndpointsWarning: [Output Only]
23964// Informational warning message.
23965type NetworkEndpointGroupsListNetworkEndpointsWarning struct {
23966	// Code: [Output Only] A warning code, if applicable. For example,
23967	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
23968	// the response.
23969	//
23970	// Possible values:
23971	//   "CLEANUP_FAILED"
23972	//   "DEPRECATED_RESOURCE_USED"
23973	//   "DEPRECATED_TYPE_USED"
23974	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
23975	//   "EXPERIMENTAL_TYPE_USED"
23976	//   "EXTERNAL_API_WARNING"
23977	//   "FIELD_VALUE_OVERRIDEN"
23978	//   "INJECTED_KERNELS_DEPRECATED"
23979	//   "MISSING_TYPE_DEPENDENCY"
23980	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
23981	//   "NEXT_HOP_CANNOT_IP_FORWARD"
23982	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
23983	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
23984	//   "NEXT_HOP_NOT_RUNNING"
23985	//   "NOT_CRITICAL_ERROR"
23986	//   "NO_RESULTS_ON_PAGE"
23987	//   "REQUIRED_TOS_AGREEMENT"
23988	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
23989	//   "RESOURCE_NOT_DELETED"
23990	//   "SCHEMA_VALIDATION_IGNORED"
23991	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
23992	//   "UNDECLARED_PROPERTIES"
23993	//   "UNREACHABLE"
23994	Code string `json:"code,omitempty"`
23995
23996	// Data: [Output Only] Metadata about this warning in key: value format.
23997	// For example:
23998	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
23999	Data []*NetworkEndpointGroupsListNetworkEndpointsWarningData `json:"data,omitempty"`
24000
24001	// Message: [Output Only] A human-readable description of the warning
24002	// code.
24003	Message string `json:"message,omitempty"`
24004
24005	// ForceSendFields is a list of field names (e.g. "Code") to
24006	// unconditionally include in API requests. By default, fields with
24007	// empty values are omitted from API requests. However, any non-pointer,
24008	// non-interface field appearing in ForceSendFields will be sent to the
24009	// server regardless of whether the field is empty or not. This may be
24010	// used to include empty fields in Patch requests.
24011	ForceSendFields []string `json:"-"`
24012
24013	// NullFields is a list of field names (e.g. "Code") to include in API
24014	// requests with the JSON null value. By default, fields with empty
24015	// values are omitted from API requests. However, any field with an
24016	// empty value appearing in NullFields will be sent to the server as
24017	// null. It is an error if a field in this list has a non-empty value.
24018	// This may be used to include null fields in Patch requests.
24019	NullFields []string `json:"-"`
24020}
24021
24022func (s *NetworkEndpointGroupsListNetworkEndpointsWarning) MarshalJSON() ([]byte, error) {
24023	type NoMethod NetworkEndpointGroupsListNetworkEndpointsWarning
24024	raw := NoMethod(*s)
24025	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24026}
24027
24028type NetworkEndpointGroupsListNetworkEndpointsWarningData struct {
24029	// Key: [Output Only] A key that provides more detail on the warning
24030	// being returned. For example, for warnings where there are no results
24031	// in a list request for a particular zone, this key might be scope and
24032	// the key value might be the zone name. Other examples might be a key
24033	// indicating a deprecated resource and a suggested replacement, or a
24034	// warning about invalid network settings (for example, if an instance
24035	// attempts to perform IP forwarding but is not enabled for IP
24036	// forwarding).
24037	Key string `json:"key,omitempty"`
24038
24039	// Value: [Output Only] A warning data value corresponding to the key.
24040	Value string `json:"value,omitempty"`
24041
24042	// ForceSendFields is a list of field names (e.g. "Key") to
24043	// unconditionally include in API requests. By default, fields with
24044	// empty values are omitted from API requests. However, any non-pointer,
24045	// non-interface field appearing in ForceSendFields will be sent to the
24046	// server regardless of whether the field is empty or not. This may be
24047	// used to include empty fields in Patch requests.
24048	ForceSendFields []string `json:"-"`
24049
24050	// NullFields is a list of field names (e.g. "Key") to include in API
24051	// requests with the JSON null value. By default, fields with empty
24052	// values are omitted from API requests. However, any field with an
24053	// empty value appearing in NullFields will be sent to the server as
24054	// null. It is an error if a field in this list has a non-empty value.
24055	// This may be used to include null fields in Patch requests.
24056	NullFields []string `json:"-"`
24057}
24058
24059func (s *NetworkEndpointGroupsListNetworkEndpointsWarningData) MarshalJSON() ([]byte, error) {
24060	type NoMethod NetworkEndpointGroupsListNetworkEndpointsWarningData
24061	raw := NoMethod(*s)
24062	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24063}
24064
24065type NetworkEndpointGroupsScopedList struct {
24066	// NetworkEndpointGroups: [Output Only] The list of network endpoint
24067	// groups that are contained in this scope.
24068	NetworkEndpointGroups []*NetworkEndpointGroup `json:"networkEndpointGroups,omitempty"`
24069
24070	// Warning: [Output Only] An informational warning that replaces the
24071	// list of network endpoint groups when the list is empty.
24072	Warning *NetworkEndpointGroupsScopedListWarning `json:"warning,omitempty"`
24073
24074	// ForceSendFields is a list of field names (e.g.
24075	// "NetworkEndpointGroups") to unconditionally include in API requests.
24076	// By default, fields with empty values are omitted from API requests.
24077	// However, any non-pointer, non-interface field appearing in
24078	// ForceSendFields will be sent to the server regardless of whether the
24079	// field is empty or not. This may be used to include empty fields in
24080	// Patch requests.
24081	ForceSendFields []string `json:"-"`
24082
24083	// NullFields is a list of field names (e.g. "NetworkEndpointGroups") to
24084	// include in API requests with the JSON null value. By default, fields
24085	// with empty values are omitted from API requests. However, any field
24086	// with an empty value appearing in NullFields will be sent to the
24087	// server as null. It is an error if a field in this list has a
24088	// non-empty value. This may be used to include null fields in Patch
24089	// requests.
24090	NullFields []string `json:"-"`
24091}
24092
24093func (s *NetworkEndpointGroupsScopedList) MarshalJSON() ([]byte, error) {
24094	type NoMethod NetworkEndpointGroupsScopedList
24095	raw := NoMethod(*s)
24096	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24097}
24098
24099// NetworkEndpointGroupsScopedListWarning: [Output Only] An
24100// informational warning that replaces the list of network endpoint
24101// groups when the list is empty.
24102type NetworkEndpointGroupsScopedListWarning struct {
24103	// Code: [Output Only] A warning code, if applicable. For example,
24104	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
24105	// the response.
24106	//
24107	// Possible values:
24108	//   "CLEANUP_FAILED"
24109	//   "DEPRECATED_RESOURCE_USED"
24110	//   "DEPRECATED_TYPE_USED"
24111	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
24112	//   "EXPERIMENTAL_TYPE_USED"
24113	//   "EXTERNAL_API_WARNING"
24114	//   "FIELD_VALUE_OVERRIDEN"
24115	//   "INJECTED_KERNELS_DEPRECATED"
24116	//   "MISSING_TYPE_DEPENDENCY"
24117	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
24118	//   "NEXT_HOP_CANNOT_IP_FORWARD"
24119	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
24120	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
24121	//   "NEXT_HOP_NOT_RUNNING"
24122	//   "NOT_CRITICAL_ERROR"
24123	//   "NO_RESULTS_ON_PAGE"
24124	//   "REQUIRED_TOS_AGREEMENT"
24125	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
24126	//   "RESOURCE_NOT_DELETED"
24127	//   "SCHEMA_VALIDATION_IGNORED"
24128	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
24129	//   "UNDECLARED_PROPERTIES"
24130	//   "UNREACHABLE"
24131	Code string `json:"code,omitempty"`
24132
24133	// Data: [Output Only] Metadata about this warning in key: value format.
24134	// For example:
24135	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
24136	Data []*NetworkEndpointGroupsScopedListWarningData `json:"data,omitempty"`
24137
24138	// Message: [Output Only] A human-readable description of the warning
24139	// code.
24140	Message string `json:"message,omitempty"`
24141
24142	// ForceSendFields is a list of field names (e.g. "Code") to
24143	// unconditionally include in API requests. By default, fields with
24144	// empty values are omitted from API requests. However, any non-pointer,
24145	// non-interface field appearing in ForceSendFields will be sent to the
24146	// server regardless of whether the field is empty or not. This may be
24147	// used to include empty fields in Patch requests.
24148	ForceSendFields []string `json:"-"`
24149
24150	// NullFields is a list of field names (e.g. "Code") to include in API
24151	// requests with the JSON null value. By default, fields with empty
24152	// values are omitted from API requests. However, any field with an
24153	// empty value appearing in NullFields will be sent to the server as
24154	// null. It is an error if a field in this list has a non-empty value.
24155	// This may be used to include null fields in Patch requests.
24156	NullFields []string `json:"-"`
24157}
24158
24159func (s *NetworkEndpointGroupsScopedListWarning) MarshalJSON() ([]byte, error) {
24160	type NoMethod NetworkEndpointGroupsScopedListWarning
24161	raw := NoMethod(*s)
24162	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24163}
24164
24165type NetworkEndpointGroupsScopedListWarningData struct {
24166	// Key: [Output Only] A key that provides more detail on the warning
24167	// being returned. For example, for warnings where there are no results
24168	// in a list request for a particular zone, this key might be scope and
24169	// the key value might be the zone name. Other examples might be a key
24170	// indicating a deprecated resource and a suggested replacement, or a
24171	// warning about invalid network settings (for example, if an instance
24172	// attempts to perform IP forwarding but is not enabled for IP
24173	// forwarding).
24174	Key string `json:"key,omitempty"`
24175
24176	// Value: [Output Only] A warning data value corresponding to the key.
24177	Value string `json:"value,omitempty"`
24178
24179	// ForceSendFields is a list of field names (e.g. "Key") to
24180	// unconditionally include in API requests. By default, fields with
24181	// empty values are omitted from API requests. However, any non-pointer,
24182	// non-interface field appearing in ForceSendFields will be sent to the
24183	// server regardless of whether the field is empty or not. This may be
24184	// used to include empty fields in Patch requests.
24185	ForceSendFields []string `json:"-"`
24186
24187	// NullFields is a list of field names (e.g. "Key") to include in API
24188	// requests with the JSON null value. By default, fields with empty
24189	// values are omitted from API requests. However, any field with an
24190	// empty value appearing in NullFields will be sent to the server as
24191	// null. It is an error if a field in this list has a non-empty value.
24192	// This may be used to include null fields in Patch requests.
24193	NullFields []string `json:"-"`
24194}
24195
24196func (s *NetworkEndpointGroupsScopedListWarningData) MarshalJSON() ([]byte, error) {
24197	type NoMethod NetworkEndpointGroupsScopedListWarningData
24198	raw := NoMethod(*s)
24199	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24200}
24201
24202type NetworkEndpointWithHealthStatus struct {
24203	// Healths: [Output only] The health status of network endpoint;
24204	Healths []*HealthStatusForNetworkEndpoint `json:"healths,omitempty"`
24205
24206	// NetworkEndpoint: [Output only] The network endpoint;
24207	NetworkEndpoint *NetworkEndpoint `json:"networkEndpoint,omitempty"`
24208
24209	// ForceSendFields is a list of field names (e.g. "Healths") to
24210	// unconditionally include in API requests. By default, fields with
24211	// empty values are omitted from API requests. However, any non-pointer,
24212	// non-interface field appearing in ForceSendFields will be sent to the
24213	// server regardless of whether the field is empty or not. This may be
24214	// used to include empty fields in Patch requests.
24215	ForceSendFields []string `json:"-"`
24216
24217	// NullFields is a list of field names (e.g. "Healths") to include in
24218	// API requests with the JSON null value. By default, fields with empty
24219	// values are omitted from API requests. However, any field with an
24220	// empty value appearing in NullFields will be sent to the server as
24221	// null. It is an error if a field in this list has a non-empty value.
24222	// This may be used to include null fields in Patch requests.
24223	NullFields []string `json:"-"`
24224}
24225
24226func (s *NetworkEndpointWithHealthStatus) MarshalJSON() ([]byte, error) {
24227	type NoMethod NetworkEndpointWithHealthStatus
24228	raw := NoMethod(*s)
24229	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24230}
24231
24232// NetworkInterface: A network interface resource attached to an
24233// instance.
24234type NetworkInterface struct {
24235	// AccessConfigs: An array of configurations for this interface.
24236	// Currently, only one access config, ONE_TO_ONE_NAT, is supported. If
24237	// there are no accessConfigs specified, then this instance will have no
24238	// external internet access.
24239	AccessConfigs []*AccessConfig `json:"accessConfigs,omitempty"`
24240
24241	// AliasIpRanges: An array of alias IP ranges for this network
24242	// interface. You can only specify this field for network interfaces in
24243	// VPC networks.
24244	AliasIpRanges []*AliasIpRange `json:"aliasIpRanges,omitempty"`
24245
24246	// Fingerprint: Fingerprint hash of contents stored in this network
24247	// interface. This field will be ignored when inserting an Instance or
24248	// adding a NetworkInterface. An up-to-date fingerprint must be provided
24249	// in order to update the NetworkInterface, otherwise the request will
24250	// fail with error 412 conditionNotMet.
24251	Fingerprint string `json:"fingerprint,omitempty"`
24252
24253	// Ipv6Address: [Output Only] An IPv6 internal network address for this
24254	// network interface.
24255	Ipv6Address string `json:"ipv6Address,omitempty"`
24256
24257	// Kind: [Output Only] Type of the resource. Always
24258	// compute#networkInterface for network interfaces.
24259	Kind string `json:"kind,omitempty"`
24260
24261	// Name: [Output Only] The name of the network interface, which is
24262	// generated by the server. For network devices, these are eth0, eth1,
24263	// etc.
24264	Name string `json:"name,omitempty"`
24265
24266	// Network: URL of the network resource for this instance. When creating
24267	// an instance, if neither the network nor the subnetwork is specified,
24268	// the default network global/networks/default is used; if the network
24269	// is not specified but the subnetwork is specified, the network is
24270	// inferred.
24271	//
24272	// If you specify this property, you can specify the network as a full
24273	// or partial URL. For example, the following are all valid URLs:
24274	// -
24275	// https://www.googleapis.com/compute/v1/projects/project/global/networks/network
24276	// - projects/project/global/networks/network
24277	// - global/networks/default
24278	Network string `json:"network,omitempty"`
24279
24280	// NetworkIP: An IPv4 internal IP address to assign to the instance for
24281	// this network interface. If not specified by the user, an unused
24282	// internal IP is assigned by the system.
24283	NetworkIP string `json:"networkIP,omitempty"`
24284
24285	// Subnetwork: The URL of the Subnetwork resource for this instance. If
24286	// the network resource is in legacy mode, do not specify this field. If
24287	// the network is in auto subnet mode, specifying the subnetwork is
24288	// optional. If the network is in custom subnet mode, specifying the
24289	// subnetwork is required. If you specify this field, you can specify
24290	// the subnetwork as a full or partial URL. For example, the following
24291	// are all valid URLs:
24292	// -
24293	// https://www.googleapis.com/compute/v1/projects/project/regions/region/subnetworks/subnetwork
24294	// - regions/region/subnetworks/subnetwork
24295	Subnetwork string `json:"subnetwork,omitempty"`
24296
24297	// ForceSendFields is a list of field names (e.g. "AccessConfigs") to
24298	// unconditionally include in API requests. By default, fields with
24299	// empty values are omitted from API requests. However, any non-pointer,
24300	// non-interface field appearing in ForceSendFields will be sent to the
24301	// server regardless of whether the field is empty or not. This may be
24302	// used to include empty fields in Patch requests.
24303	ForceSendFields []string `json:"-"`
24304
24305	// NullFields is a list of field names (e.g. "AccessConfigs") to include
24306	// in API requests with the JSON null value. By default, fields with
24307	// empty values are omitted from API requests. However, any field with
24308	// an empty value appearing in NullFields will be sent to the server as
24309	// null. It is an error if a field in this list has a non-empty value.
24310	// This may be used to include null fields in Patch requests.
24311	NullFields []string `json:"-"`
24312}
24313
24314func (s *NetworkInterface) MarshalJSON() ([]byte, error) {
24315	type NoMethod NetworkInterface
24316	raw := NoMethod(*s)
24317	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24318}
24319
24320// NetworkList: Contains a list of networks.
24321type NetworkList struct {
24322	// Id: [Output Only] Unique identifier for the resource; defined by the
24323	// server.
24324	Id string `json:"id,omitempty"`
24325
24326	// Items: A list of Network resources.
24327	Items []*Network `json:"items,omitempty"`
24328
24329	// Kind: [Output Only] Type of resource. Always compute#networkList for
24330	// lists of networks.
24331	Kind string `json:"kind,omitempty"`
24332
24333	// NextPageToken: [Output Only] This token allows you to get the next
24334	// page of results for list requests. If the number of results is larger
24335	// than maxResults, use the nextPageToken as a value for the query
24336	// parameter pageToken in the next list request. Subsequent list
24337	// requests will have their own nextPageToken to continue paging through
24338	// the results.
24339	NextPageToken string `json:"nextPageToken,omitempty"`
24340
24341	// SelfLink: [Output Only] Server-defined URL for this resource.
24342	SelfLink string `json:"selfLink,omitempty"`
24343
24344	// Warning: [Output Only] Informational warning message.
24345	Warning *NetworkListWarning `json:"warning,omitempty"`
24346
24347	// ServerResponse contains the HTTP response code and headers from the
24348	// server.
24349	googleapi.ServerResponse `json:"-"`
24350
24351	// ForceSendFields is a list of field names (e.g. "Id") to
24352	// unconditionally include in API requests. By default, fields with
24353	// empty values are omitted from API requests. However, any non-pointer,
24354	// non-interface field appearing in ForceSendFields will be sent to the
24355	// server regardless of whether the field is empty or not. This may be
24356	// used to include empty fields in Patch requests.
24357	ForceSendFields []string `json:"-"`
24358
24359	// NullFields is a list of field names (e.g. "Id") to include in API
24360	// requests with the JSON null value. By default, fields with empty
24361	// values are omitted from API requests. However, any field with an
24362	// empty value appearing in NullFields will be sent to the server as
24363	// null. It is an error if a field in this list has a non-empty value.
24364	// This may be used to include null fields in Patch requests.
24365	NullFields []string `json:"-"`
24366}
24367
24368func (s *NetworkList) MarshalJSON() ([]byte, error) {
24369	type NoMethod NetworkList
24370	raw := NoMethod(*s)
24371	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24372}
24373
24374// NetworkListWarning: [Output Only] Informational warning message.
24375type NetworkListWarning struct {
24376	// Code: [Output Only] A warning code, if applicable. For example,
24377	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
24378	// the response.
24379	//
24380	// Possible values:
24381	//   "CLEANUP_FAILED"
24382	//   "DEPRECATED_RESOURCE_USED"
24383	//   "DEPRECATED_TYPE_USED"
24384	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
24385	//   "EXPERIMENTAL_TYPE_USED"
24386	//   "EXTERNAL_API_WARNING"
24387	//   "FIELD_VALUE_OVERRIDEN"
24388	//   "INJECTED_KERNELS_DEPRECATED"
24389	//   "MISSING_TYPE_DEPENDENCY"
24390	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
24391	//   "NEXT_HOP_CANNOT_IP_FORWARD"
24392	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
24393	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
24394	//   "NEXT_HOP_NOT_RUNNING"
24395	//   "NOT_CRITICAL_ERROR"
24396	//   "NO_RESULTS_ON_PAGE"
24397	//   "REQUIRED_TOS_AGREEMENT"
24398	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
24399	//   "RESOURCE_NOT_DELETED"
24400	//   "SCHEMA_VALIDATION_IGNORED"
24401	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
24402	//   "UNDECLARED_PROPERTIES"
24403	//   "UNREACHABLE"
24404	Code string `json:"code,omitempty"`
24405
24406	// Data: [Output Only] Metadata about this warning in key: value format.
24407	// For example:
24408	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
24409	Data []*NetworkListWarningData `json:"data,omitempty"`
24410
24411	// Message: [Output Only] A human-readable description of the warning
24412	// code.
24413	Message string `json:"message,omitempty"`
24414
24415	// ForceSendFields is a list of field names (e.g. "Code") to
24416	// unconditionally include in API requests. By default, fields with
24417	// empty values are omitted from API requests. However, any non-pointer,
24418	// non-interface field appearing in ForceSendFields will be sent to the
24419	// server regardless of whether the field is empty or not. This may be
24420	// used to include empty fields in Patch requests.
24421	ForceSendFields []string `json:"-"`
24422
24423	// NullFields is a list of field names (e.g. "Code") to include in API
24424	// requests with the JSON null value. By default, fields with empty
24425	// values are omitted from API requests. However, any field with an
24426	// empty value appearing in NullFields will be sent to the server as
24427	// null. It is an error if a field in this list has a non-empty value.
24428	// This may be used to include null fields in Patch requests.
24429	NullFields []string `json:"-"`
24430}
24431
24432func (s *NetworkListWarning) MarshalJSON() ([]byte, error) {
24433	type NoMethod NetworkListWarning
24434	raw := NoMethod(*s)
24435	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24436}
24437
24438type NetworkListWarningData struct {
24439	// Key: [Output Only] A key that provides more detail on the warning
24440	// being returned. For example, for warnings where there are no results
24441	// in a list request for a particular zone, this key might be scope and
24442	// the key value might be the zone name. Other examples might be a key
24443	// indicating a deprecated resource and a suggested replacement, or a
24444	// warning about invalid network settings (for example, if an instance
24445	// attempts to perform IP forwarding but is not enabled for IP
24446	// forwarding).
24447	Key string `json:"key,omitempty"`
24448
24449	// Value: [Output Only] A warning data value corresponding to the key.
24450	Value string `json:"value,omitempty"`
24451
24452	// ForceSendFields is a list of field names (e.g. "Key") to
24453	// unconditionally include in API requests. By default, fields with
24454	// empty values are omitted from API requests. However, any non-pointer,
24455	// non-interface field appearing in ForceSendFields will be sent to the
24456	// server regardless of whether the field is empty or not. This may be
24457	// used to include empty fields in Patch requests.
24458	ForceSendFields []string `json:"-"`
24459
24460	// NullFields is a list of field names (e.g. "Key") to include in API
24461	// requests with the JSON null value. By default, fields with empty
24462	// values are omitted from API requests. However, any field with an
24463	// empty value appearing in NullFields will be sent to the server as
24464	// null. It is an error if a field in this list has a non-empty value.
24465	// This may be used to include null fields in Patch requests.
24466	NullFields []string `json:"-"`
24467}
24468
24469func (s *NetworkListWarningData) MarshalJSON() ([]byte, error) {
24470	type NoMethod NetworkListWarningData
24471	raw := NoMethod(*s)
24472	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24473}
24474
24475// NetworkPeering: A network peering attached to a network resource. The
24476// message includes the peering name, peer network, peering state, and a
24477// flag indicating whether Google Compute Engine should automatically
24478// create routes for the peering.
24479type NetworkPeering struct {
24480	// AdvertisePeerSubnetsViaRouters: Whether Cloud Routers in this network
24481	// can automatically advertise subnets from the peer network.
24482	AdvertisePeerSubnetsViaRouters bool `json:"advertisePeerSubnetsViaRouters,omitempty"`
24483
24484	// AutoCreateRoutes: This field will be deprecated soon. Use the
24485	// exchange_subnet_routes field instead. Indicates whether full mesh
24486	// connectivity is created and managed automatically between peered
24487	// networks. Currently this field should always be true since Google
24488	// Compute Engine will automatically create and manage subnetwork routes
24489	// between two networks when peering state is ACTIVE.
24490	AutoCreateRoutes bool `json:"autoCreateRoutes,omitempty"`
24491
24492	// ExchangeSubnetRoutes: Indicates whether full mesh connectivity is
24493	// created and managed automatically between peered networks. Currently
24494	// this field should always be true since Google Compute Engine will
24495	// automatically create and manage subnetwork routes between two
24496	// networks when peering state is ACTIVE.
24497	ExchangeSubnetRoutes bool `json:"exchangeSubnetRoutes,omitempty"`
24498
24499	// ExportCustomRoutes: Whether to export the custom routes to peer
24500	// network.
24501	ExportCustomRoutes bool `json:"exportCustomRoutes,omitempty"`
24502
24503	// ExportSubnetRoutesWithPublicIp: Whether subnet routes with public IP
24504	// range are exported. The default value is true, all subnet routes are
24505	// exported. The IPv4 special-use ranges
24506	// (https://en.wikipedia.org/wiki/IPv4#Special_addresses) are always
24507	// exported to peers and are not controlled by this field.
24508	ExportSubnetRoutesWithPublicIp bool `json:"exportSubnetRoutesWithPublicIp,omitempty"`
24509
24510	// ImportCustomRoutes: Whether to import the custom routes from peer
24511	// network.
24512	ImportCustomRoutes bool `json:"importCustomRoutes,omitempty"`
24513
24514	// ImportSubnetRoutesWithPublicIp: Whether subnet routes with public IP
24515	// range are imported. The default value is false. The IPv4 special-use
24516	// ranges (https://en.wikipedia.org/wiki/IPv4#Special_addresses) are
24517	// always imported from peers and are not controlled by this field.
24518	ImportSubnetRoutesWithPublicIp bool `json:"importSubnetRoutesWithPublicIp,omitempty"`
24519
24520	// Name: Name of this peering. Provided by the client when the peering
24521	// is created. The name must comply with RFC1035. Specifically, the name
24522	// must be 1-63 characters long and match regular expression
24523	// `[a-z]([-a-z0-9]*[a-z0-9])?`. The first character must be a lowercase
24524	// letter, and all the following characters must be a dash, lowercase
24525	// letter, or digit, except the last character, which cannot be a dash.
24526	Name string `json:"name,omitempty"`
24527
24528	// Network: The URL of the peer network. It can be either full URL or
24529	// partial URL. The peer network may belong to a different project. If
24530	// the partial URL does not contain project, it is assumed that the peer
24531	// network is in the same project as the current network.
24532	Network string `json:"network,omitempty"`
24533
24534	// PeerMtu: Maximum Transmission Unit in bytes.
24535	PeerMtu int64 `json:"peerMtu,omitempty"`
24536
24537	// State: [Output Only] State for the peering, either `ACTIVE` or
24538	// `INACTIVE`. The peering is `ACTIVE` when there's a matching
24539	// configuration in the peer network.
24540	//
24541	// Possible values:
24542	//   "ACTIVE"
24543	//   "INACTIVE"
24544	State string `json:"state,omitempty"`
24545
24546	// StateDetails: [Output Only] Details about the current state of the
24547	// peering.
24548	StateDetails string `json:"stateDetails,omitempty"`
24549
24550	// ForceSendFields is a list of field names (e.g.
24551	// "AdvertisePeerSubnetsViaRouters") to unconditionally include in API
24552	// requests. By default, fields with empty values are omitted from API
24553	// requests. However, any non-pointer, non-interface field appearing in
24554	// ForceSendFields will be sent to the server regardless of whether the
24555	// field is empty or not. This may be used to include empty fields in
24556	// Patch requests.
24557	ForceSendFields []string `json:"-"`
24558
24559	// NullFields is a list of field names (e.g.
24560	// "AdvertisePeerSubnetsViaRouters") to include in API requests with the
24561	// JSON null value. By default, fields with empty values are omitted
24562	// from API requests. However, any field with an empty value appearing
24563	// in NullFields will be sent to the server as null. It is an error if a
24564	// field in this list has a non-empty value. This may be used to include
24565	// null fields in Patch requests.
24566	NullFields []string `json:"-"`
24567}
24568
24569func (s *NetworkPeering) MarshalJSON() ([]byte, error) {
24570	type NoMethod NetworkPeering
24571	raw := NoMethod(*s)
24572	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24573}
24574
24575// NetworkRoutingConfig: A routing configuration attached to a network
24576// resource. The message includes the list of routers associated with
24577// the network, and a flag indicating the type of routing behavior to
24578// enforce network-wide.
24579type NetworkRoutingConfig struct {
24580	// RoutingMode: The network-wide routing mode to use. If set to
24581	// REGIONAL, this network's Cloud Routers will only advertise routes
24582	// with subnets of this network in the same region as the router. If set
24583	// to GLOBAL, this network's Cloud Routers will advertise routes with
24584	// all subnets of this network, across regions.
24585	//
24586	// Possible values:
24587	//   "GLOBAL"
24588	//   "REGIONAL"
24589	RoutingMode string `json:"routingMode,omitempty"`
24590
24591	// ForceSendFields is a list of field names (e.g. "RoutingMode") to
24592	// unconditionally include in API requests. By default, fields with
24593	// empty values are omitted from API requests. However, any non-pointer,
24594	// non-interface field appearing in ForceSendFields will be sent to the
24595	// server regardless of whether the field is empty or not. This may be
24596	// used to include empty fields in Patch requests.
24597	ForceSendFields []string `json:"-"`
24598
24599	// NullFields is a list of field names (e.g. "RoutingMode") to include
24600	// in API requests with the JSON null value. By default, fields with
24601	// empty values are omitted from API requests. However, any field with
24602	// an empty value appearing in NullFields will be sent to the server as
24603	// null. It is an error if a field in this list has a non-empty value.
24604	// This may be used to include null fields in Patch requests.
24605	NullFields []string `json:"-"`
24606}
24607
24608func (s *NetworkRoutingConfig) MarshalJSON() ([]byte, error) {
24609	type NoMethod NetworkRoutingConfig
24610	raw := NoMethod(*s)
24611	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24612}
24613
24614type NetworksAddPeeringRequest struct {
24615	// AutoCreateRoutes: This field will be deprecated soon. Use
24616	// exchange_subnet_routes in network_peering instead. Indicates whether
24617	// full mesh connectivity is created and managed automatically between
24618	// peered networks. Currently this field should always be true since
24619	// Google Compute Engine will automatically create and manage subnetwork
24620	// routes between two networks when peering state is ACTIVE.
24621	AutoCreateRoutes bool `json:"autoCreateRoutes,omitempty"`
24622
24623	// ExportCustomRoutes: This field will be deprecated soon. Use
24624	// export_custom_routes in network_peering instead. Whether to export
24625	// the custom routes to peer network.
24626	ExportCustomRoutes bool `json:"exportCustomRoutes,omitempty"`
24627
24628	// ImportCustomRoutes: This field will be deprecated soon. Use
24629	// import_custom_routes in network_peering instead. Whether to import
24630	// the custom routes from peer network.
24631	ImportCustomRoutes bool `json:"importCustomRoutes,omitempty"`
24632
24633	// Name: Name of the peering, which should conform to RFC1035.
24634	Name string `json:"name,omitempty"`
24635
24636	// NetworkPeering: Network peering parameters. In order to specify route
24637	// policies for peering using import and export custom routes, you must
24638	// specify all peering related parameters (name, peer network,
24639	// exchange_subnet_routes) in the network_peering field. The
24640	// corresponding fields in NetworksAddPeeringRequest will be deprecated
24641	// soon.
24642	NetworkPeering *NetworkPeering `json:"networkPeering,omitempty"`
24643
24644	// PeerNetwork: URL of the peer network. It can be either full URL or
24645	// partial URL. The peer network may belong to a different project. If
24646	// the partial URL does not contain project, it is assumed that the peer
24647	// network is in the same project as the current network.
24648	PeerNetwork string `json:"peerNetwork,omitempty"`
24649
24650	// ForceSendFields is a list of field names (e.g. "AutoCreateRoutes") to
24651	// unconditionally include in API requests. By default, fields with
24652	// empty values are omitted from API requests. However, any non-pointer,
24653	// non-interface field appearing in ForceSendFields will be sent to the
24654	// server regardless of whether the field is empty or not. This may be
24655	// used to include empty fields in Patch requests.
24656	ForceSendFields []string `json:"-"`
24657
24658	// NullFields is a list of field names (e.g. "AutoCreateRoutes") to
24659	// include in API requests with the JSON null value. By default, fields
24660	// with empty values are omitted from API requests. However, any field
24661	// with an empty value appearing in NullFields will be sent to the
24662	// server as null. It is an error if a field in this list has a
24663	// non-empty value. This may be used to include null fields in Patch
24664	// requests.
24665	NullFields []string `json:"-"`
24666}
24667
24668func (s *NetworksAddPeeringRequest) MarshalJSON() ([]byte, error) {
24669	type NoMethod NetworksAddPeeringRequest
24670	raw := NoMethod(*s)
24671	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24672}
24673
24674type NetworksGetEffectiveFirewallsResponse struct {
24675	// Firewalls: Effective firewalls on the network.
24676	Firewalls []*Firewall `json:"firewalls,omitempty"`
24677
24678	// OrganizationFirewalls: Effective firewalls from organization
24679	// policies.
24680	OrganizationFirewalls []*NetworksGetEffectiveFirewallsResponseOrganizationFirewallPolicy `json:"organizationFirewalls,omitempty"`
24681
24682	// ServerResponse contains the HTTP response code and headers from the
24683	// server.
24684	googleapi.ServerResponse `json:"-"`
24685
24686	// ForceSendFields is a list of field names (e.g. "Firewalls") to
24687	// unconditionally include in API requests. By default, fields with
24688	// empty values are omitted from API requests. However, any non-pointer,
24689	// non-interface field appearing in ForceSendFields will be sent to the
24690	// server regardless of whether the field is empty or not. This may be
24691	// used to include empty fields in Patch requests.
24692	ForceSendFields []string `json:"-"`
24693
24694	// NullFields is a list of field names (e.g. "Firewalls") to include in
24695	// API requests with the JSON null value. By default, fields with empty
24696	// values are omitted from API requests. However, any field with an
24697	// empty value appearing in NullFields will be sent to the server as
24698	// null. It is an error if a field in this list has a non-empty value.
24699	// This may be used to include null fields in Patch requests.
24700	NullFields []string `json:"-"`
24701}
24702
24703func (s *NetworksGetEffectiveFirewallsResponse) MarshalJSON() ([]byte, error) {
24704	type NoMethod NetworksGetEffectiveFirewallsResponse
24705	raw := NoMethod(*s)
24706	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24707}
24708
24709// NetworksGetEffectiveFirewallsResponseOrganizationFirewallPolicy: A
24710// pruned SecurityPolicy containing ID and any applicable firewall
24711// rules.
24712type NetworksGetEffectiveFirewallsResponseOrganizationFirewallPolicy struct {
24713	// Id: [Output Only] The unique identifier for the security policy. This
24714	// identifier is defined by the server.
24715	Id uint64 `json:"id,omitempty,string"`
24716
24717	// Rules: The rules that apply to the network.
24718	Rules []*SecurityPolicyRule `json:"rules,omitempty"`
24719
24720	// ForceSendFields is a list of field names (e.g. "Id") to
24721	// unconditionally include in API requests. By default, fields with
24722	// empty values are omitted from API requests. However, any non-pointer,
24723	// non-interface field appearing in ForceSendFields will be sent to the
24724	// server regardless of whether the field is empty or not. This may be
24725	// used to include empty fields in Patch requests.
24726	ForceSendFields []string `json:"-"`
24727
24728	// NullFields is a list of field names (e.g. "Id") to include in API
24729	// requests with the JSON null value. By default, fields with empty
24730	// values are omitted from API requests. However, any field with an
24731	// empty value appearing in NullFields will be sent to the server as
24732	// null. It is an error if a field in this list has a non-empty value.
24733	// This may be used to include null fields in Patch requests.
24734	NullFields []string `json:"-"`
24735}
24736
24737func (s *NetworksGetEffectiveFirewallsResponseOrganizationFirewallPolicy) MarshalJSON() ([]byte, error) {
24738	type NoMethod NetworksGetEffectiveFirewallsResponseOrganizationFirewallPolicy
24739	raw := NoMethod(*s)
24740	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24741}
24742
24743type NetworksRemovePeeringRequest struct {
24744	// Name: Name of the peering, which should conform to RFC1035.
24745	Name string `json:"name,omitempty"`
24746
24747	// ForceSendFields is a list of field names (e.g. "Name") to
24748	// unconditionally include in API requests. By default, fields with
24749	// empty values are omitted from API requests. However, any non-pointer,
24750	// non-interface field appearing in ForceSendFields will be sent to the
24751	// server regardless of whether the field is empty or not. This may be
24752	// used to include empty fields in Patch requests.
24753	ForceSendFields []string `json:"-"`
24754
24755	// NullFields is a list of field names (e.g. "Name") to include in API
24756	// requests with the JSON null value. By default, fields with empty
24757	// values are omitted from API requests. However, any field with an
24758	// empty value appearing in NullFields will be sent to the server as
24759	// null. It is an error if a field in this list has a non-empty value.
24760	// This may be used to include null fields in Patch requests.
24761	NullFields []string `json:"-"`
24762}
24763
24764func (s *NetworksRemovePeeringRequest) MarshalJSON() ([]byte, error) {
24765	type NoMethod NetworksRemovePeeringRequest
24766	raw := NoMethod(*s)
24767	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24768}
24769
24770type NetworksUpdatePeeringRequest struct {
24771	NetworkPeering *NetworkPeering `json:"networkPeering,omitempty"`
24772
24773	// ForceSendFields is a list of field names (e.g. "NetworkPeering") to
24774	// unconditionally include in API requests. By default, fields with
24775	// empty values are omitted from API requests. However, any non-pointer,
24776	// non-interface field appearing in ForceSendFields will be sent to the
24777	// server regardless of whether the field is empty or not. This may be
24778	// used to include empty fields in Patch requests.
24779	ForceSendFields []string `json:"-"`
24780
24781	// NullFields is a list of field names (e.g. "NetworkPeering") to
24782	// include in API requests with the JSON null value. By default, fields
24783	// with empty values are omitted from API requests. However, any field
24784	// with an empty value appearing in NullFields will be sent to the
24785	// server as null. It is an error if a field in this list has a
24786	// non-empty value. This may be used to include null fields in Patch
24787	// requests.
24788	NullFields []string `json:"-"`
24789}
24790
24791func (s *NetworksUpdatePeeringRequest) MarshalJSON() ([]byte, error) {
24792	type NoMethod NetworksUpdatePeeringRequest
24793	raw := NoMethod(*s)
24794	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24795}
24796
24797// NodeGroup: Represent a sole-tenant Node Group resource.
24798//
24799// A sole-tenant node is a physical server that is dedicated to hosting
24800// VM instances only for your specific project. Use sole-tenant nodes to
24801// keep your instances physically separated from instances in other
24802// projects, or to group your instances together on the same host
24803// hardware. For more information, read Sole-tenant nodes. (==
24804// resource_for beta.nodeGroups ==) (== resource_for v1.nodeGroups ==)
24805// NextID: 16
24806type NodeGroup struct {
24807	AutoscalingPolicy *NodeGroupAutoscalingPolicy `json:"autoscalingPolicy,omitempty"`
24808
24809	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
24810	// format.
24811	CreationTimestamp string `json:"creationTimestamp,omitempty"`
24812
24813	// Description: An optional description of this resource. Provide this
24814	// property when you create the resource.
24815	Description string `json:"description,omitempty"`
24816
24817	Fingerprint string `json:"fingerprint,omitempty"`
24818
24819	// Id: [Output Only] The unique identifier for the resource. This
24820	// identifier is defined by the server.
24821	Id uint64 `json:"id,omitempty,string"`
24822
24823	// Kind: [Output Only] The type of the resource. Always
24824	// compute#nodeGroup for node group.
24825	Kind string `json:"kind,omitempty"`
24826
24827	// Possible values:
24828	//   "DEFAULT"
24829	//   "MAINTENANCE_POLICY_UNSPECIFIED"
24830	//   "MIGRATE_WITHIN_NODE_GROUP"
24831	//   "RESTART_IN_PLACE"
24832	MaintenancePolicy string `json:"maintenancePolicy,omitempty"`
24833
24834	// Name: The name of the resource, provided by the client when initially
24835	// creating the resource. The resource name must be 1-63 characters
24836	// long, and comply with RFC1035. Specifically, the name must be 1-63
24837	// characters long and match the regular expression
24838	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
24839	// a lowercase letter, and all following characters must be a dash,
24840	// lowercase letter, or digit, except the last character, which cannot
24841	// be a dash.
24842	Name string `json:"name,omitempty"`
24843
24844	// NodeTemplate: The URL of the node template to which this node group
24845	// belongs.
24846	NodeTemplate string `json:"nodeTemplate,omitempty"`
24847
24848	// SelfLink: [Output Only] Server-defined URL for the resource.
24849	SelfLink string `json:"selfLink,omitempty"`
24850
24851	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
24852	// with the resource id.
24853	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
24854
24855	// Size: [Output Only] The total number of nodes in the node group.
24856	Size int64 `json:"size,omitempty"`
24857
24858	// Possible values:
24859	//   "CREATING"
24860	//   "DELETING"
24861	//   "INVALID"
24862	//   "READY"
24863	Status string `json:"status,omitempty"`
24864
24865	// Zone: [Output Only] The name of the zone where the node group
24866	// resides, such as us-central1-a.
24867	Zone string `json:"zone,omitempty"`
24868
24869	// ServerResponse contains the HTTP response code and headers from the
24870	// server.
24871	googleapi.ServerResponse `json:"-"`
24872
24873	// ForceSendFields is a list of field names (e.g. "AutoscalingPolicy")
24874	// to unconditionally include in API requests. By default, fields with
24875	// empty values are omitted from API requests. However, any non-pointer,
24876	// non-interface field appearing in ForceSendFields will be sent to the
24877	// server regardless of whether the field is empty or not. This may be
24878	// used to include empty fields in Patch requests.
24879	ForceSendFields []string `json:"-"`
24880
24881	// NullFields is a list of field names (e.g. "AutoscalingPolicy") to
24882	// include in API requests with the JSON null value. By default, fields
24883	// with empty values are omitted from API requests. However, any field
24884	// with an empty value appearing in NullFields will be sent to the
24885	// server as null. It is an error if a field in this list has a
24886	// non-empty value. This may be used to include null fields in Patch
24887	// requests.
24888	NullFields []string `json:"-"`
24889}
24890
24891func (s *NodeGroup) MarshalJSON() ([]byte, error) {
24892	type NoMethod NodeGroup
24893	raw := NoMethod(*s)
24894	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24895}
24896
24897type NodeGroupAggregatedList struct {
24898	// Id: [Output Only] Unique identifier for the resource; defined by the
24899	// server.
24900	Id string `json:"id,omitempty"`
24901
24902	// Items: A list of NodeGroupsScopedList resources.
24903	Items map[string]NodeGroupsScopedList `json:"items,omitempty"`
24904
24905	// Kind: [Output Only] Type of resource.Always
24906	// compute#nodeGroupAggregatedList for aggregated lists of node groups.
24907	Kind string `json:"kind,omitempty"`
24908
24909	// NextPageToken: [Output Only] This token allows you to get the next
24910	// page of results for list requests. If the number of results is larger
24911	// than maxResults, use the nextPageToken as a value for the query
24912	// parameter pageToken in the next list request. Subsequent list
24913	// requests will have their own nextPageToken to continue paging through
24914	// the results.
24915	NextPageToken string `json:"nextPageToken,omitempty"`
24916
24917	// SelfLink: [Output Only] Server-defined URL for this resource.
24918	SelfLink string `json:"selfLink,omitempty"`
24919
24920	// Warning: [Output Only] Informational warning message.
24921	Warning *NodeGroupAggregatedListWarning `json:"warning,omitempty"`
24922
24923	// ServerResponse contains the HTTP response code and headers from the
24924	// server.
24925	googleapi.ServerResponse `json:"-"`
24926
24927	// ForceSendFields is a list of field names (e.g. "Id") to
24928	// unconditionally include in API requests. By default, fields with
24929	// empty values are omitted from API requests. However, any non-pointer,
24930	// non-interface field appearing in ForceSendFields will be sent to the
24931	// server regardless of whether the field is empty or not. This may be
24932	// used to include empty fields in Patch requests.
24933	ForceSendFields []string `json:"-"`
24934
24935	// NullFields is a list of field names (e.g. "Id") to include in API
24936	// requests with the JSON null value. By default, fields with empty
24937	// values are omitted from API requests. However, any field with an
24938	// empty value appearing in NullFields will be sent to the server as
24939	// null. It is an error if a field in this list has a non-empty value.
24940	// This may be used to include null fields in Patch requests.
24941	NullFields []string `json:"-"`
24942}
24943
24944func (s *NodeGroupAggregatedList) MarshalJSON() ([]byte, error) {
24945	type NoMethod NodeGroupAggregatedList
24946	raw := NoMethod(*s)
24947	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24948}
24949
24950// NodeGroupAggregatedListWarning: [Output Only] Informational warning
24951// message.
24952type NodeGroupAggregatedListWarning struct {
24953	// Code: [Output Only] A warning code, if applicable. For example,
24954	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
24955	// the response.
24956	//
24957	// Possible values:
24958	//   "CLEANUP_FAILED"
24959	//   "DEPRECATED_RESOURCE_USED"
24960	//   "DEPRECATED_TYPE_USED"
24961	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
24962	//   "EXPERIMENTAL_TYPE_USED"
24963	//   "EXTERNAL_API_WARNING"
24964	//   "FIELD_VALUE_OVERRIDEN"
24965	//   "INJECTED_KERNELS_DEPRECATED"
24966	//   "MISSING_TYPE_DEPENDENCY"
24967	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
24968	//   "NEXT_HOP_CANNOT_IP_FORWARD"
24969	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
24970	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
24971	//   "NEXT_HOP_NOT_RUNNING"
24972	//   "NOT_CRITICAL_ERROR"
24973	//   "NO_RESULTS_ON_PAGE"
24974	//   "REQUIRED_TOS_AGREEMENT"
24975	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
24976	//   "RESOURCE_NOT_DELETED"
24977	//   "SCHEMA_VALIDATION_IGNORED"
24978	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
24979	//   "UNDECLARED_PROPERTIES"
24980	//   "UNREACHABLE"
24981	Code string `json:"code,omitempty"`
24982
24983	// Data: [Output Only] Metadata about this warning in key: value format.
24984	// For example:
24985	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
24986	Data []*NodeGroupAggregatedListWarningData `json:"data,omitempty"`
24987
24988	// Message: [Output Only] A human-readable description of the warning
24989	// code.
24990	Message string `json:"message,omitempty"`
24991
24992	// ForceSendFields is a list of field names (e.g. "Code") to
24993	// unconditionally include in API requests. By default, fields with
24994	// empty values are omitted from API requests. However, any non-pointer,
24995	// non-interface field appearing in ForceSendFields will be sent to the
24996	// server regardless of whether the field is empty or not. This may be
24997	// used to include empty fields in Patch requests.
24998	ForceSendFields []string `json:"-"`
24999
25000	// NullFields is a list of field names (e.g. "Code") to include in API
25001	// requests with the JSON null value. By default, fields with empty
25002	// values are omitted from API requests. However, any field with an
25003	// empty value appearing in NullFields will be sent to the server as
25004	// null. It is an error if a field in this list has a non-empty value.
25005	// This may be used to include null fields in Patch requests.
25006	NullFields []string `json:"-"`
25007}
25008
25009func (s *NodeGroupAggregatedListWarning) MarshalJSON() ([]byte, error) {
25010	type NoMethod NodeGroupAggregatedListWarning
25011	raw := NoMethod(*s)
25012	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25013}
25014
25015type NodeGroupAggregatedListWarningData struct {
25016	// Key: [Output Only] A key that provides more detail on the warning
25017	// being returned. For example, for warnings where there are no results
25018	// in a list request for a particular zone, this key might be scope and
25019	// the key value might be the zone name. Other examples might be a key
25020	// indicating a deprecated resource and a suggested replacement, or a
25021	// warning about invalid network settings (for example, if an instance
25022	// attempts to perform IP forwarding but is not enabled for IP
25023	// forwarding).
25024	Key string `json:"key,omitempty"`
25025
25026	// Value: [Output Only] A warning data value corresponding to the key.
25027	Value string `json:"value,omitempty"`
25028
25029	// ForceSendFields is a list of field names (e.g. "Key") to
25030	// unconditionally include in API requests. By default, fields with
25031	// empty values are omitted from API requests. However, any non-pointer,
25032	// non-interface field appearing in ForceSendFields will be sent to the
25033	// server regardless of whether the field is empty or not. This may be
25034	// used to include empty fields in Patch requests.
25035	ForceSendFields []string `json:"-"`
25036
25037	// NullFields is a list of field names (e.g. "Key") to include in API
25038	// requests with the JSON null value. By default, fields with empty
25039	// values are omitted from API requests. However, any field with an
25040	// empty value appearing in NullFields will be sent to the server as
25041	// null. It is an error if a field in this list has a non-empty value.
25042	// This may be used to include null fields in Patch requests.
25043	NullFields []string `json:"-"`
25044}
25045
25046func (s *NodeGroupAggregatedListWarningData) MarshalJSON() ([]byte, error) {
25047	type NoMethod NodeGroupAggregatedListWarningData
25048	raw := NoMethod(*s)
25049	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25050}
25051
25052type NodeGroupAutoscalingPolicy struct {
25053	MaxSize int64 `json:"maxSize,omitempty"`
25054
25055	MinSize int64 `json:"minSize,omitempty"`
25056
25057	// Possible values:
25058	//   "MODE_UNSPECIFIED"
25059	//   "OFF"
25060	//   "ON"
25061	Mode string `json:"mode,omitempty"`
25062
25063	// ForceSendFields is a list of field names (e.g. "MaxSize") to
25064	// unconditionally include in API requests. By default, fields with
25065	// empty values are omitted from API requests. However, any non-pointer,
25066	// non-interface field appearing in ForceSendFields will be sent to the
25067	// server regardless of whether the field is empty or not. This may be
25068	// used to include empty fields in Patch requests.
25069	ForceSendFields []string `json:"-"`
25070
25071	// NullFields is a list of field names (e.g. "MaxSize") to include in
25072	// API requests with the JSON null value. By default, fields with empty
25073	// values are omitted from API requests. However, any field with an
25074	// empty value appearing in NullFields will be sent to the server as
25075	// null. It is an error if a field in this list has a non-empty value.
25076	// This may be used to include null fields in Patch requests.
25077	NullFields []string `json:"-"`
25078}
25079
25080func (s *NodeGroupAutoscalingPolicy) MarshalJSON() ([]byte, error) {
25081	type NoMethod NodeGroupAutoscalingPolicy
25082	raw := NoMethod(*s)
25083	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25084}
25085
25086// NodeGroupList: Contains a list of nodeGroups.
25087type NodeGroupList struct {
25088	// Id: [Output Only] Unique identifier for the resource; defined by the
25089	// server.
25090	Id string `json:"id,omitempty"`
25091
25092	// Items: A list of NodeGroup resources.
25093	Items []*NodeGroup `json:"items,omitempty"`
25094
25095	// Kind: [Output Only] Type of resource.Always compute#nodeGroupList for
25096	// lists of node groups.
25097	Kind string `json:"kind,omitempty"`
25098
25099	// NextPageToken: [Output Only] This token allows you to get the next
25100	// page of results for list requests. If the number of results is larger
25101	// than maxResults, use the nextPageToken as a value for the query
25102	// parameter pageToken in the next list request. Subsequent list
25103	// requests will have their own nextPageToken to continue paging through
25104	// the results.
25105	NextPageToken string `json:"nextPageToken,omitempty"`
25106
25107	// SelfLink: [Output Only] Server-defined URL for this resource.
25108	SelfLink string `json:"selfLink,omitempty"`
25109
25110	// Warning: [Output Only] Informational warning message.
25111	Warning *NodeGroupListWarning `json:"warning,omitempty"`
25112
25113	// ServerResponse contains the HTTP response code and headers from the
25114	// server.
25115	googleapi.ServerResponse `json:"-"`
25116
25117	// ForceSendFields is a list of field names (e.g. "Id") to
25118	// unconditionally include in API requests. By default, fields with
25119	// empty values are omitted from API requests. However, any non-pointer,
25120	// non-interface field appearing in ForceSendFields will be sent to the
25121	// server regardless of whether the field is empty or not. This may be
25122	// used to include empty fields in Patch requests.
25123	ForceSendFields []string `json:"-"`
25124
25125	// NullFields is a list of field names (e.g. "Id") to include in API
25126	// requests with the JSON null value. By default, fields with empty
25127	// values are omitted from API requests. However, any field with an
25128	// empty value appearing in NullFields will be sent to the server as
25129	// null. It is an error if a field in this list has a non-empty value.
25130	// This may be used to include null fields in Patch requests.
25131	NullFields []string `json:"-"`
25132}
25133
25134func (s *NodeGroupList) MarshalJSON() ([]byte, error) {
25135	type NoMethod NodeGroupList
25136	raw := NoMethod(*s)
25137	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25138}
25139
25140// NodeGroupListWarning: [Output Only] Informational warning message.
25141type NodeGroupListWarning struct {
25142	// Code: [Output Only] A warning code, if applicable. For example,
25143	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
25144	// the response.
25145	//
25146	// Possible values:
25147	//   "CLEANUP_FAILED"
25148	//   "DEPRECATED_RESOURCE_USED"
25149	//   "DEPRECATED_TYPE_USED"
25150	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
25151	//   "EXPERIMENTAL_TYPE_USED"
25152	//   "EXTERNAL_API_WARNING"
25153	//   "FIELD_VALUE_OVERRIDEN"
25154	//   "INJECTED_KERNELS_DEPRECATED"
25155	//   "MISSING_TYPE_DEPENDENCY"
25156	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
25157	//   "NEXT_HOP_CANNOT_IP_FORWARD"
25158	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
25159	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
25160	//   "NEXT_HOP_NOT_RUNNING"
25161	//   "NOT_CRITICAL_ERROR"
25162	//   "NO_RESULTS_ON_PAGE"
25163	//   "REQUIRED_TOS_AGREEMENT"
25164	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
25165	//   "RESOURCE_NOT_DELETED"
25166	//   "SCHEMA_VALIDATION_IGNORED"
25167	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
25168	//   "UNDECLARED_PROPERTIES"
25169	//   "UNREACHABLE"
25170	Code string `json:"code,omitempty"`
25171
25172	// Data: [Output Only] Metadata about this warning in key: value format.
25173	// For example:
25174	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
25175	Data []*NodeGroupListWarningData `json:"data,omitempty"`
25176
25177	// Message: [Output Only] A human-readable description of the warning
25178	// code.
25179	Message string `json:"message,omitempty"`
25180
25181	// ForceSendFields is a list of field names (e.g. "Code") to
25182	// unconditionally include in API requests. By default, fields with
25183	// empty values are omitted from API requests. However, any non-pointer,
25184	// non-interface field appearing in ForceSendFields will be sent to the
25185	// server regardless of whether the field is empty or not. This may be
25186	// used to include empty fields in Patch requests.
25187	ForceSendFields []string `json:"-"`
25188
25189	// NullFields is a list of field names (e.g. "Code") to include in API
25190	// requests with the JSON null value. By default, fields with empty
25191	// values are omitted from API requests. However, any field with an
25192	// empty value appearing in NullFields will be sent to the server as
25193	// null. It is an error if a field in this list has a non-empty value.
25194	// This may be used to include null fields in Patch requests.
25195	NullFields []string `json:"-"`
25196}
25197
25198func (s *NodeGroupListWarning) MarshalJSON() ([]byte, error) {
25199	type NoMethod NodeGroupListWarning
25200	raw := NoMethod(*s)
25201	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25202}
25203
25204type NodeGroupListWarningData struct {
25205	// Key: [Output Only] A key that provides more detail on the warning
25206	// being returned. For example, for warnings where there are no results
25207	// in a list request for a particular zone, this key might be scope and
25208	// the key value might be the zone name. Other examples might be a key
25209	// indicating a deprecated resource and a suggested replacement, or a
25210	// warning about invalid network settings (for example, if an instance
25211	// attempts to perform IP forwarding but is not enabled for IP
25212	// forwarding).
25213	Key string `json:"key,omitempty"`
25214
25215	// Value: [Output Only] A warning data value corresponding to the key.
25216	Value string `json:"value,omitempty"`
25217
25218	// ForceSendFields is a list of field names (e.g. "Key") to
25219	// unconditionally include in API requests. By default, fields with
25220	// empty values are omitted from API requests. However, any non-pointer,
25221	// non-interface field appearing in ForceSendFields will be sent to the
25222	// server regardless of whether the field is empty or not. This may be
25223	// used to include empty fields in Patch requests.
25224	ForceSendFields []string `json:"-"`
25225
25226	// NullFields is a list of field names (e.g. "Key") to include in API
25227	// requests with the JSON null value. By default, fields with empty
25228	// values are omitted from API requests. However, any field with an
25229	// empty value appearing in NullFields will be sent to the server as
25230	// null. It is an error if a field in this list has a non-empty value.
25231	// This may be used to include null fields in Patch requests.
25232	NullFields []string `json:"-"`
25233}
25234
25235func (s *NodeGroupListWarningData) MarshalJSON() ([]byte, error) {
25236	type NoMethod NodeGroupListWarningData
25237	raw := NoMethod(*s)
25238	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25239}
25240
25241type NodeGroupNode struct {
25242	// Disks: Local disk configurations.
25243	Disks []*LocalDisk `json:"disks,omitempty"`
25244
25245	// Instances: Instances scheduled on this node.
25246	Instances []string `json:"instances,omitempty"`
25247
25248	// Name: The name of the node.
25249	Name string `json:"name,omitempty"`
25250
25251	// NodeType: The type of this node.
25252	NodeType string `json:"nodeType,omitempty"`
25253
25254	// ServerBinding: Binding properties for the physical server.
25255	ServerBinding *ServerBinding `json:"serverBinding,omitempty"`
25256
25257	// ServerId: Server ID associated with this node.
25258	ServerId string `json:"serverId,omitempty"`
25259
25260	// Possible values:
25261	//   "CREATING"
25262	//   "DELETING"
25263	//   "INVALID"
25264	//   "READY"
25265	//   "REPAIRING"
25266	Status string `json:"status,omitempty"`
25267
25268	// ForceSendFields is a list of field names (e.g. "Disks") to
25269	// unconditionally include in API requests. By default, fields with
25270	// empty values are omitted from API requests. However, any non-pointer,
25271	// non-interface field appearing in ForceSendFields will be sent to the
25272	// server regardless of whether the field is empty or not. This may be
25273	// used to include empty fields in Patch requests.
25274	ForceSendFields []string `json:"-"`
25275
25276	// NullFields is a list of field names (e.g. "Disks") to include in API
25277	// requests with the JSON null value. By default, fields with empty
25278	// values are omitted from API requests. However, any field with an
25279	// empty value appearing in NullFields will be sent to the server as
25280	// null. It is an error if a field in this list has a non-empty value.
25281	// This may be used to include null fields in Patch requests.
25282	NullFields []string `json:"-"`
25283}
25284
25285func (s *NodeGroupNode) MarshalJSON() ([]byte, error) {
25286	type NoMethod NodeGroupNode
25287	raw := NoMethod(*s)
25288	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25289}
25290
25291type NodeGroupsAddNodesRequest struct {
25292	// AdditionalNodeCount: Count of additional nodes to be added to the
25293	// node group.
25294	AdditionalNodeCount int64 `json:"additionalNodeCount,omitempty"`
25295
25296	// ForceSendFields is a list of field names (e.g. "AdditionalNodeCount")
25297	// to unconditionally include in API requests. By default, fields with
25298	// empty values are omitted from API requests. However, any non-pointer,
25299	// non-interface field appearing in ForceSendFields will be sent to the
25300	// server regardless of whether the field is empty or not. This may be
25301	// used to include empty fields in Patch requests.
25302	ForceSendFields []string `json:"-"`
25303
25304	// NullFields is a list of field names (e.g. "AdditionalNodeCount") to
25305	// include in API requests with the JSON null value. By default, fields
25306	// with empty values are omitted from API requests. However, any field
25307	// with an empty value appearing in NullFields will be sent to the
25308	// server as null. It is an error if a field in this list has a
25309	// non-empty value. This may be used to include null fields in Patch
25310	// requests.
25311	NullFields []string `json:"-"`
25312}
25313
25314func (s *NodeGroupsAddNodesRequest) MarshalJSON() ([]byte, error) {
25315	type NoMethod NodeGroupsAddNodesRequest
25316	raw := NoMethod(*s)
25317	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25318}
25319
25320type NodeGroupsDeleteNodesRequest struct {
25321	// Nodes: Names of the nodes to delete.
25322	Nodes []string `json:"nodes,omitempty"`
25323
25324	// ForceSendFields is a list of field names (e.g. "Nodes") to
25325	// unconditionally include in API requests. By default, fields with
25326	// empty values are omitted from API requests. However, any non-pointer,
25327	// non-interface field appearing in ForceSendFields will be sent to the
25328	// server regardless of whether the field is empty or not. This may be
25329	// used to include empty fields in Patch requests.
25330	ForceSendFields []string `json:"-"`
25331
25332	// NullFields is a list of field names (e.g. "Nodes") to include in API
25333	// requests with the JSON null value. By default, fields with empty
25334	// values are omitted from API requests. However, any field with an
25335	// empty value appearing in NullFields will be sent to the server as
25336	// null. It is an error if a field in this list has a non-empty value.
25337	// This may be used to include null fields in Patch requests.
25338	NullFields []string `json:"-"`
25339}
25340
25341func (s *NodeGroupsDeleteNodesRequest) MarshalJSON() ([]byte, error) {
25342	type NoMethod NodeGroupsDeleteNodesRequest
25343	raw := NoMethod(*s)
25344	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25345}
25346
25347type NodeGroupsListNodes struct {
25348	// Id: [Output Only] Unique identifier for the resource; defined by the
25349	// server.
25350	Id string `json:"id,omitempty"`
25351
25352	// Items: A list of Node resources.
25353	Items []*NodeGroupNode `json:"items,omitempty"`
25354
25355	// Kind: [Output Only] The resource type, which is always
25356	// compute.nodeGroupsListNodes for the list of nodes in the specified
25357	// node group.
25358	Kind string `json:"kind,omitempty"`
25359
25360	// NextPageToken: [Output Only] This token allows you to get the next
25361	// page of results for list requests. If the number of results is larger
25362	// than maxResults, use the nextPageToken as a value for the query
25363	// parameter pageToken in the next list request. Subsequent list
25364	// requests will have their own nextPageToken to continue paging through
25365	// the results.
25366	NextPageToken string `json:"nextPageToken,omitempty"`
25367
25368	// SelfLink: [Output Only] Server-defined URL for this resource.
25369	SelfLink string `json:"selfLink,omitempty"`
25370
25371	// Warning: [Output Only] Informational warning message.
25372	Warning *NodeGroupsListNodesWarning `json:"warning,omitempty"`
25373
25374	// ServerResponse contains the HTTP response code and headers from the
25375	// server.
25376	googleapi.ServerResponse `json:"-"`
25377
25378	// ForceSendFields is a list of field names (e.g. "Id") to
25379	// unconditionally include in API requests. By default, fields with
25380	// empty values are omitted from API requests. However, any non-pointer,
25381	// non-interface field appearing in ForceSendFields will be sent to the
25382	// server regardless of whether the field is empty or not. This may be
25383	// used to include empty fields in Patch requests.
25384	ForceSendFields []string `json:"-"`
25385
25386	// NullFields is a list of field names (e.g. "Id") to include in API
25387	// requests with the JSON null value. By default, fields with empty
25388	// values are omitted from API requests. However, any field with an
25389	// empty value appearing in NullFields will be sent to the server as
25390	// null. It is an error if a field in this list has a non-empty value.
25391	// This may be used to include null fields in Patch requests.
25392	NullFields []string `json:"-"`
25393}
25394
25395func (s *NodeGroupsListNodes) MarshalJSON() ([]byte, error) {
25396	type NoMethod NodeGroupsListNodes
25397	raw := NoMethod(*s)
25398	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25399}
25400
25401// NodeGroupsListNodesWarning: [Output Only] Informational warning
25402// message.
25403type NodeGroupsListNodesWarning struct {
25404	// Code: [Output Only] A warning code, if applicable. For example,
25405	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
25406	// the response.
25407	//
25408	// Possible values:
25409	//   "CLEANUP_FAILED"
25410	//   "DEPRECATED_RESOURCE_USED"
25411	//   "DEPRECATED_TYPE_USED"
25412	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
25413	//   "EXPERIMENTAL_TYPE_USED"
25414	//   "EXTERNAL_API_WARNING"
25415	//   "FIELD_VALUE_OVERRIDEN"
25416	//   "INJECTED_KERNELS_DEPRECATED"
25417	//   "MISSING_TYPE_DEPENDENCY"
25418	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
25419	//   "NEXT_HOP_CANNOT_IP_FORWARD"
25420	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
25421	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
25422	//   "NEXT_HOP_NOT_RUNNING"
25423	//   "NOT_CRITICAL_ERROR"
25424	//   "NO_RESULTS_ON_PAGE"
25425	//   "REQUIRED_TOS_AGREEMENT"
25426	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
25427	//   "RESOURCE_NOT_DELETED"
25428	//   "SCHEMA_VALIDATION_IGNORED"
25429	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
25430	//   "UNDECLARED_PROPERTIES"
25431	//   "UNREACHABLE"
25432	Code string `json:"code,omitempty"`
25433
25434	// Data: [Output Only] Metadata about this warning in key: value format.
25435	// For example:
25436	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
25437	Data []*NodeGroupsListNodesWarningData `json:"data,omitempty"`
25438
25439	// Message: [Output Only] A human-readable description of the warning
25440	// code.
25441	Message string `json:"message,omitempty"`
25442
25443	// ForceSendFields is a list of field names (e.g. "Code") to
25444	// unconditionally include in API requests. By default, fields with
25445	// empty values are omitted from API requests. However, any non-pointer,
25446	// non-interface field appearing in ForceSendFields will be sent to the
25447	// server regardless of whether the field is empty or not. This may be
25448	// used to include empty fields in Patch requests.
25449	ForceSendFields []string `json:"-"`
25450
25451	// NullFields is a list of field names (e.g. "Code") to include in API
25452	// requests with the JSON null value. By default, fields with empty
25453	// values are omitted from API requests. However, any field with an
25454	// empty value appearing in NullFields will be sent to the server as
25455	// null. It is an error if a field in this list has a non-empty value.
25456	// This may be used to include null fields in Patch requests.
25457	NullFields []string `json:"-"`
25458}
25459
25460func (s *NodeGroupsListNodesWarning) MarshalJSON() ([]byte, error) {
25461	type NoMethod NodeGroupsListNodesWarning
25462	raw := NoMethod(*s)
25463	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25464}
25465
25466type NodeGroupsListNodesWarningData struct {
25467	// Key: [Output Only] A key that provides more detail on the warning
25468	// being returned. For example, for warnings where there are no results
25469	// in a list request for a particular zone, this key might be scope and
25470	// the key value might be the zone name. Other examples might be a key
25471	// indicating a deprecated resource and a suggested replacement, or a
25472	// warning about invalid network settings (for example, if an instance
25473	// attempts to perform IP forwarding but is not enabled for IP
25474	// forwarding).
25475	Key string `json:"key,omitempty"`
25476
25477	// Value: [Output Only] A warning data value corresponding to the key.
25478	Value string `json:"value,omitempty"`
25479
25480	// ForceSendFields is a list of field names (e.g. "Key") to
25481	// unconditionally include in API requests. By default, fields with
25482	// empty values are omitted from API requests. However, any non-pointer,
25483	// non-interface field appearing in ForceSendFields will be sent to the
25484	// server regardless of whether the field is empty or not. This may be
25485	// used to include empty fields in Patch requests.
25486	ForceSendFields []string `json:"-"`
25487
25488	// NullFields is a list of field names (e.g. "Key") to include in API
25489	// requests with the JSON null value. By default, fields with empty
25490	// values are omitted from API requests. However, any field with an
25491	// empty value appearing in NullFields will be sent to the server as
25492	// null. It is an error if a field in this list has a non-empty value.
25493	// This may be used to include null fields in Patch requests.
25494	NullFields []string `json:"-"`
25495}
25496
25497func (s *NodeGroupsListNodesWarningData) MarshalJSON() ([]byte, error) {
25498	type NoMethod NodeGroupsListNodesWarningData
25499	raw := NoMethod(*s)
25500	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25501}
25502
25503type NodeGroupsScopedList struct {
25504	// NodeGroups: [Output Only] A list of node groups contained in this
25505	// scope.
25506	NodeGroups []*NodeGroup `json:"nodeGroups,omitempty"`
25507
25508	// Warning: [Output Only] An informational warning that appears when the
25509	// nodeGroup list is empty.
25510	Warning *NodeGroupsScopedListWarning `json:"warning,omitempty"`
25511
25512	// ForceSendFields is a list of field names (e.g. "NodeGroups") to
25513	// unconditionally include in API requests. By default, fields with
25514	// empty values are omitted from API requests. However, any non-pointer,
25515	// non-interface field appearing in ForceSendFields will be sent to the
25516	// server regardless of whether the field is empty or not. This may be
25517	// used to include empty fields in Patch requests.
25518	ForceSendFields []string `json:"-"`
25519
25520	// NullFields is a list of field names (e.g. "NodeGroups") to include in
25521	// API requests with the JSON null value. By default, fields with empty
25522	// values are omitted from API requests. However, any field with an
25523	// empty value appearing in NullFields will be sent to the server as
25524	// null. It is an error if a field in this list has a non-empty value.
25525	// This may be used to include null fields in Patch requests.
25526	NullFields []string `json:"-"`
25527}
25528
25529func (s *NodeGroupsScopedList) MarshalJSON() ([]byte, error) {
25530	type NoMethod NodeGroupsScopedList
25531	raw := NoMethod(*s)
25532	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25533}
25534
25535// NodeGroupsScopedListWarning: [Output Only] An informational warning
25536// that appears when the nodeGroup list is empty.
25537type NodeGroupsScopedListWarning struct {
25538	// Code: [Output Only] A warning code, if applicable. For example,
25539	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
25540	// the response.
25541	//
25542	// Possible values:
25543	//   "CLEANUP_FAILED"
25544	//   "DEPRECATED_RESOURCE_USED"
25545	//   "DEPRECATED_TYPE_USED"
25546	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
25547	//   "EXPERIMENTAL_TYPE_USED"
25548	//   "EXTERNAL_API_WARNING"
25549	//   "FIELD_VALUE_OVERRIDEN"
25550	//   "INJECTED_KERNELS_DEPRECATED"
25551	//   "MISSING_TYPE_DEPENDENCY"
25552	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
25553	//   "NEXT_HOP_CANNOT_IP_FORWARD"
25554	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
25555	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
25556	//   "NEXT_HOP_NOT_RUNNING"
25557	//   "NOT_CRITICAL_ERROR"
25558	//   "NO_RESULTS_ON_PAGE"
25559	//   "REQUIRED_TOS_AGREEMENT"
25560	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
25561	//   "RESOURCE_NOT_DELETED"
25562	//   "SCHEMA_VALIDATION_IGNORED"
25563	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
25564	//   "UNDECLARED_PROPERTIES"
25565	//   "UNREACHABLE"
25566	Code string `json:"code,omitempty"`
25567
25568	// Data: [Output Only] Metadata about this warning in key: value format.
25569	// For example:
25570	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
25571	Data []*NodeGroupsScopedListWarningData `json:"data,omitempty"`
25572
25573	// Message: [Output Only] A human-readable description of the warning
25574	// code.
25575	Message string `json:"message,omitempty"`
25576
25577	// ForceSendFields is a list of field names (e.g. "Code") to
25578	// unconditionally include in API requests. By default, fields with
25579	// empty values are omitted from API requests. However, any non-pointer,
25580	// non-interface field appearing in ForceSendFields will be sent to the
25581	// server regardless of whether the field is empty or not. This may be
25582	// used to include empty fields in Patch requests.
25583	ForceSendFields []string `json:"-"`
25584
25585	// NullFields is a list of field names (e.g. "Code") to include in API
25586	// requests with the JSON null value. By default, fields with empty
25587	// values are omitted from API requests. However, any field with an
25588	// empty value appearing in NullFields will be sent to the server as
25589	// null. It is an error if a field in this list has a non-empty value.
25590	// This may be used to include null fields in Patch requests.
25591	NullFields []string `json:"-"`
25592}
25593
25594func (s *NodeGroupsScopedListWarning) MarshalJSON() ([]byte, error) {
25595	type NoMethod NodeGroupsScopedListWarning
25596	raw := NoMethod(*s)
25597	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25598}
25599
25600type NodeGroupsScopedListWarningData struct {
25601	// Key: [Output Only] A key that provides more detail on the warning
25602	// being returned. For example, for warnings where there are no results
25603	// in a list request for a particular zone, this key might be scope and
25604	// the key value might be the zone name. Other examples might be a key
25605	// indicating a deprecated resource and a suggested replacement, or a
25606	// warning about invalid network settings (for example, if an instance
25607	// attempts to perform IP forwarding but is not enabled for IP
25608	// forwarding).
25609	Key string `json:"key,omitempty"`
25610
25611	// Value: [Output Only] A warning data value corresponding to the key.
25612	Value string `json:"value,omitempty"`
25613
25614	// ForceSendFields is a list of field names (e.g. "Key") to
25615	// unconditionally include in API requests. By default, fields with
25616	// empty values are omitted from API requests. However, any non-pointer,
25617	// non-interface field appearing in ForceSendFields will be sent to the
25618	// server regardless of whether the field is empty or not. This may be
25619	// used to include empty fields in Patch requests.
25620	ForceSendFields []string `json:"-"`
25621
25622	// NullFields is a list of field names (e.g. "Key") to include in API
25623	// requests with the JSON null value. By default, fields with empty
25624	// values are omitted from API requests. However, any field with an
25625	// empty value appearing in NullFields will be sent to the server as
25626	// null. It is an error if a field in this list has a non-empty value.
25627	// This may be used to include null fields in Patch requests.
25628	NullFields []string `json:"-"`
25629}
25630
25631func (s *NodeGroupsScopedListWarningData) MarshalJSON() ([]byte, error) {
25632	type NoMethod NodeGroupsScopedListWarningData
25633	raw := NoMethod(*s)
25634	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25635}
25636
25637type NodeGroupsSetAutoscalingPolicyRequest struct {
25638	AutoscalingPolicy *NodeGroupAutoscalingPolicy `json:"autoscalingPolicy,omitempty"`
25639
25640	// ForceSendFields is a list of field names (e.g. "AutoscalingPolicy")
25641	// to unconditionally include in API requests. By default, fields with
25642	// empty values are omitted from API requests. However, any non-pointer,
25643	// non-interface field appearing in ForceSendFields will be sent to the
25644	// server regardless of whether the field is empty or not. This may be
25645	// used to include empty fields in Patch requests.
25646	ForceSendFields []string `json:"-"`
25647
25648	// NullFields is a list of field names (e.g. "AutoscalingPolicy") to
25649	// include in API requests with the JSON null value. By default, fields
25650	// with empty values are omitted from API requests. However, any field
25651	// with an empty value appearing in NullFields will be sent to the
25652	// server as null. It is an error if a field in this list has a
25653	// non-empty value. This may be used to include null fields in Patch
25654	// requests.
25655	NullFields []string `json:"-"`
25656}
25657
25658func (s *NodeGroupsSetAutoscalingPolicyRequest) MarshalJSON() ([]byte, error) {
25659	type NoMethod NodeGroupsSetAutoscalingPolicyRequest
25660	raw := NoMethod(*s)
25661	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25662}
25663
25664type NodeGroupsSetNodeTemplateRequest struct {
25665	// NodeTemplate: Full or partial URL of the node template resource to be
25666	// updated for this node group.
25667	NodeTemplate string `json:"nodeTemplate,omitempty"`
25668
25669	// ForceSendFields is a list of field names (e.g. "NodeTemplate") to
25670	// unconditionally include in API requests. By default, fields with
25671	// empty values are omitted from API requests. However, any non-pointer,
25672	// non-interface field appearing in ForceSendFields will be sent to the
25673	// server regardless of whether the field is empty or not. This may be
25674	// used to include empty fields in Patch requests.
25675	ForceSendFields []string `json:"-"`
25676
25677	// NullFields is a list of field names (e.g. "NodeTemplate") to include
25678	// in API requests with the JSON null value. By default, fields with
25679	// empty values are omitted from API requests. However, any field with
25680	// an empty value appearing in NullFields will be sent to the server as
25681	// null. It is an error if a field in this list has a non-empty value.
25682	// This may be used to include null fields in Patch requests.
25683	NullFields []string `json:"-"`
25684}
25685
25686func (s *NodeGroupsSetNodeTemplateRequest) MarshalJSON() ([]byte, error) {
25687	type NoMethod NodeGroupsSetNodeTemplateRequest
25688	raw := NoMethod(*s)
25689	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25690}
25691
25692// NodeTemplate: Represent a sole-tenant Node Template resource.
25693//
25694// You can use a template to define properties for nodes in a node
25695// group. For more information, read Creating node groups and instances.
25696// (== resource_for beta.nodeTemplates ==) (== resource_for
25697// v1.nodeTemplates ==) (== NextID: 16 ==)
25698type NodeTemplate struct {
25699	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
25700	// format.
25701	CreationTimestamp string `json:"creationTimestamp,omitempty"`
25702
25703	// Description: An optional description of this resource. Provide this
25704	// property when you create the resource.
25705	Description string `json:"description,omitempty"`
25706
25707	Disks []*LocalDisk `json:"disks,omitempty"`
25708
25709	// Id: [Output Only] The unique identifier for the resource. This
25710	// identifier is defined by the server.
25711	Id uint64 `json:"id,omitempty,string"`
25712
25713	// Kind: [Output Only] The type of the resource. Always
25714	// compute#nodeTemplate for node templates.
25715	Kind string `json:"kind,omitempty"`
25716
25717	// Name: The name of the resource, provided by the client when initially
25718	// creating the resource. The resource name must be 1-63 characters
25719	// long, and comply with RFC1035. Specifically, the name must be 1-63
25720	// characters long and match the regular expression
25721	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
25722	// a lowercase letter, and all following characters must be a dash,
25723	// lowercase letter, or digit, except the last character, which cannot
25724	// be a dash.
25725	Name string `json:"name,omitempty"`
25726
25727	// NodeAffinityLabels: Labels to use for node affinity, which will be
25728	// used in instance scheduling.
25729	NodeAffinityLabels map[string]string `json:"nodeAffinityLabels,omitempty"`
25730
25731	// NodeType: The node type to use for nodes group that are created from
25732	// this template.
25733	NodeType string `json:"nodeType,omitempty"`
25734
25735	// NodeTypeFlexibility: The flexible properties of the desired node
25736	// type. Node groups that use this node template will create nodes of a
25737	// type that matches these properties.
25738	//
25739	// This field is mutually exclusive with the node_type property; you can
25740	// only define one or the other, but not both.
25741	NodeTypeFlexibility *NodeTemplateNodeTypeFlexibility `json:"nodeTypeFlexibility,omitempty"`
25742
25743	// Region: [Output Only] The name of the region where the node template
25744	// resides, such as us-central1.
25745	Region string `json:"region,omitempty"`
25746
25747	// SelfLink: [Output Only] Server-defined URL for the resource.
25748	SelfLink string `json:"selfLink,omitempty"`
25749
25750	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
25751	// with the resource id.
25752	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
25753
25754	// ServerBinding: Sets the binding properties for the physical server.
25755	// Valid values include:
25756	// - [Default] RESTART_NODE_ON_ANY_SERVER: Restarts VMs on any available
25757	// physical server
25758	// - RESTART_NODE_ON_MINIMAL_SERVER: Restarts VMs on the same physical
25759	// server whenever possible
25760	//
25761	// See Sole-tenant node options for more information.
25762	ServerBinding *ServerBinding `json:"serverBinding,omitempty"`
25763
25764	// Status: [Output Only] The status of the node template. One of the
25765	// following values: CREATING, READY, and DELETING.
25766	//
25767	// Possible values:
25768	//   "CREATING"
25769	//   "DELETING"
25770	//   "INVALID"
25771	//   "READY"
25772	Status string `json:"status,omitempty"`
25773
25774	// StatusMessage: [Output Only] An optional, human-readable explanation
25775	// of the status.
25776	StatusMessage string `json:"statusMessage,omitempty"`
25777
25778	// ServerResponse contains the HTTP response code and headers from the
25779	// server.
25780	googleapi.ServerResponse `json:"-"`
25781
25782	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
25783	// to unconditionally include in API requests. By default, fields with
25784	// empty values are omitted from API requests. However, any non-pointer,
25785	// non-interface field appearing in ForceSendFields will be sent to the
25786	// server regardless of whether the field is empty or not. This may be
25787	// used to include empty fields in Patch requests.
25788	ForceSendFields []string `json:"-"`
25789
25790	// NullFields is a list of field names (e.g. "CreationTimestamp") to
25791	// include in API requests with the JSON null value. By default, fields
25792	// with empty values are omitted from API requests. However, any field
25793	// with an empty value appearing in NullFields will be sent to the
25794	// server as null. It is an error if a field in this list has a
25795	// non-empty value. This may be used to include null fields in Patch
25796	// requests.
25797	NullFields []string `json:"-"`
25798}
25799
25800func (s *NodeTemplate) MarshalJSON() ([]byte, error) {
25801	type NoMethod NodeTemplate
25802	raw := NoMethod(*s)
25803	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25804}
25805
25806type NodeTemplateAggregatedList struct {
25807	// Id: [Output Only] Unique identifier for the resource; defined by the
25808	// server.
25809	Id string `json:"id,omitempty"`
25810
25811	// Items: A list of NodeTemplatesScopedList resources.
25812	Items map[string]NodeTemplatesScopedList `json:"items,omitempty"`
25813
25814	// Kind: [Output Only] Type of resource.Always
25815	// compute#nodeTemplateAggregatedList for aggregated lists of node
25816	// templates.
25817	Kind string `json:"kind,omitempty"`
25818
25819	// NextPageToken: [Output Only] This token allows you to get the next
25820	// page of results for list requests. If the number of results is larger
25821	// than maxResults, use the nextPageToken as a value for the query
25822	// parameter pageToken in the next list request. Subsequent list
25823	// requests will have their own nextPageToken to continue paging through
25824	// the results.
25825	NextPageToken string `json:"nextPageToken,omitempty"`
25826
25827	// SelfLink: [Output Only] Server-defined URL for this resource.
25828	SelfLink string `json:"selfLink,omitempty"`
25829
25830	// Warning: [Output Only] Informational warning message.
25831	Warning *NodeTemplateAggregatedListWarning `json:"warning,omitempty"`
25832
25833	// ServerResponse contains the HTTP response code and headers from the
25834	// server.
25835	googleapi.ServerResponse `json:"-"`
25836
25837	// ForceSendFields is a list of field names (e.g. "Id") to
25838	// unconditionally include in API requests. By default, fields with
25839	// empty values are omitted from API requests. However, any non-pointer,
25840	// non-interface field appearing in ForceSendFields will be sent to the
25841	// server regardless of whether the field is empty or not. This may be
25842	// used to include empty fields in Patch requests.
25843	ForceSendFields []string `json:"-"`
25844
25845	// NullFields is a list of field names (e.g. "Id") to include in API
25846	// requests with the JSON null value. By default, fields with empty
25847	// values are omitted from API requests. However, any field with an
25848	// empty value appearing in NullFields will be sent to the server as
25849	// null. It is an error if a field in this list has a non-empty value.
25850	// This may be used to include null fields in Patch requests.
25851	NullFields []string `json:"-"`
25852}
25853
25854func (s *NodeTemplateAggregatedList) MarshalJSON() ([]byte, error) {
25855	type NoMethod NodeTemplateAggregatedList
25856	raw := NoMethod(*s)
25857	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25858}
25859
25860// NodeTemplateAggregatedListWarning: [Output Only] Informational
25861// warning message.
25862type NodeTemplateAggregatedListWarning struct {
25863	// Code: [Output Only] A warning code, if applicable. For example,
25864	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
25865	// the response.
25866	//
25867	// Possible values:
25868	//   "CLEANUP_FAILED"
25869	//   "DEPRECATED_RESOURCE_USED"
25870	//   "DEPRECATED_TYPE_USED"
25871	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
25872	//   "EXPERIMENTAL_TYPE_USED"
25873	//   "EXTERNAL_API_WARNING"
25874	//   "FIELD_VALUE_OVERRIDEN"
25875	//   "INJECTED_KERNELS_DEPRECATED"
25876	//   "MISSING_TYPE_DEPENDENCY"
25877	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
25878	//   "NEXT_HOP_CANNOT_IP_FORWARD"
25879	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
25880	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
25881	//   "NEXT_HOP_NOT_RUNNING"
25882	//   "NOT_CRITICAL_ERROR"
25883	//   "NO_RESULTS_ON_PAGE"
25884	//   "REQUIRED_TOS_AGREEMENT"
25885	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
25886	//   "RESOURCE_NOT_DELETED"
25887	//   "SCHEMA_VALIDATION_IGNORED"
25888	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
25889	//   "UNDECLARED_PROPERTIES"
25890	//   "UNREACHABLE"
25891	Code string `json:"code,omitempty"`
25892
25893	// Data: [Output Only] Metadata about this warning in key: value format.
25894	// For example:
25895	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
25896	Data []*NodeTemplateAggregatedListWarningData `json:"data,omitempty"`
25897
25898	// Message: [Output Only] A human-readable description of the warning
25899	// code.
25900	Message string `json:"message,omitempty"`
25901
25902	// ForceSendFields is a list of field names (e.g. "Code") to
25903	// unconditionally include in API requests. By default, fields with
25904	// empty values are omitted from API requests. However, any non-pointer,
25905	// non-interface field appearing in ForceSendFields will be sent to the
25906	// server regardless of whether the field is empty or not. This may be
25907	// used to include empty fields in Patch requests.
25908	ForceSendFields []string `json:"-"`
25909
25910	// NullFields is a list of field names (e.g. "Code") to include in API
25911	// requests with the JSON null value. By default, fields with empty
25912	// values are omitted from API requests. However, any field with an
25913	// empty value appearing in NullFields will be sent to the server as
25914	// null. It is an error if a field in this list has a non-empty value.
25915	// This may be used to include null fields in Patch requests.
25916	NullFields []string `json:"-"`
25917}
25918
25919func (s *NodeTemplateAggregatedListWarning) MarshalJSON() ([]byte, error) {
25920	type NoMethod NodeTemplateAggregatedListWarning
25921	raw := NoMethod(*s)
25922	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25923}
25924
25925type NodeTemplateAggregatedListWarningData struct {
25926	// Key: [Output Only] A key that provides more detail on the warning
25927	// being returned. For example, for warnings where there are no results
25928	// in a list request for a particular zone, this key might be scope and
25929	// the key value might be the zone name. Other examples might be a key
25930	// indicating a deprecated resource and a suggested replacement, or a
25931	// warning about invalid network settings (for example, if an instance
25932	// attempts to perform IP forwarding but is not enabled for IP
25933	// forwarding).
25934	Key string `json:"key,omitempty"`
25935
25936	// Value: [Output Only] A warning data value corresponding to the key.
25937	Value string `json:"value,omitempty"`
25938
25939	// ForceSendFields is a list of field names (e.g. "Key") to
25940	// unconditionally include in API requests. By default, fields with
25941	// empty values are omitted from API requests. However, any non-pointer,
25942	// non-interface field appearing in ForceSendFields will be sent to the
25943	// server regardless of whether the field is empty or not. This may be
25944	// used to include empty fields in Patch requests.
25945	ForceSendFields []string `json:"-"`
25946
25947	// NullFields is a list of field names (e.g. "Key") to include in API
25948	// requests with the JSON null value. By default, fields with empty
25949	// values are omitted from API requests. However, any field with an
25950	// empty value appearing in NullFields will be sent to the server as
25951	// null. It is an error if a field in this list has a non-empty value.
25952	// This may be used to include null fields in Patch requests.
25953	NullFields []string `json:"-"`
25954}
25955
25956func (s *NodeTemplateAggregatedListWarningData) MarshalJSON() ([]byte, error) {
25957	type NoMethod NodeTemplateAggregatedListWarningData
25958	raw := NoMethod(*s)
25959	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25960}
25961
25962// NodeTemplateList: Contains a list of node templates.
25963type NodeTemplateList struct {
25964	// Id: [Output Only] Unique identifier for the resource; defined by the
25965	// server.
25966	Id string `json:"id,omitempty"`
25967
25968	// Items: A list of NodeTemplate resources.
25969	Items []*NodeTemplate `json:"items,omitempty"`
25970
25971	// Kind: [Output Only] Type of resource.Always compute#nodeTemplateList
25972	// for lists of node templates.
25973	Kind string `json:"kind,omitempty"`
25974
25975	// NextPageToken: [Output Only] This token allows you to get the next
25976	// page of results for list requests. If the number of results is larger
25977	// than maxResults, use the nextPageToken as a value for the query
25978	// parameter pageToken in the next list request. Subsequent list
25979	// requests will have their own nextPageToken to continue paging through
25980	// the results.
25981	NextPageToken string `json:"nextPageToken,omitempty"`
25982
25983	// SelfLink: [Output Only] Server-defined URL for this resource.
25984	SelfLink string `json:"selfLink,omitempty"`
25985
25986	// Warning: [Output Only] Informational warning message.
25987	Warning *NodeTemplateListWarning `json:"warning,omitempty"`
25988
25989	// ServerResponse contains the HTTP response code and headers from the
25990	// server.
25991	googleapi.ServerResponse `json:"-"`
25992
25993	// ForceSendFields is a list of field names (e.g. "Id") to
25994	// unconditionally include in API requests. By default, fields with
25995	// empty values are omitted from API requests. However, any non-pointer,
25996	// non-interface field appearing in ForceSendFields will be sent to the
25997	// server regardless of whether the field is empty or not. This may be
25998	// used to include empty fields in Patch requests.
25999	ForceSendFields []string `json:"-"`
26000
26001	// NullFields is a list of field names (e.g. "Id") to include in API
26002	// requests with the JSON null value. By default, fields with empty
26003	// values are omitted from API requests. However, any field with an
26004	// empty value appearing in NullFields will be sent to the server as
26005	// null. It is an error if a field in this list has a non-empty value.
26006	// This may be used to include null fields in Patch requests.
26007	NullFields []string `json:"-"`
26008}
26009
26010func (s *NodeTemplateList) MarshalJSON() ([]byte, error) {
26011	type NoMethod NodeTemplateList
26012	raw := NoMethod(*s)
26013	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26014}
26015
26016// NodeTemplateListWarning: [Output Only] Informational warning message.
26017type NodeTemplateListWarning struct {
26018	// Code: [Output Only] A warning code, if applicable. For example,
26019	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
26020	// the response.
26021	//
26022	// Possible values:
26023	//   "CLEANUP_FAILED"
26024	//   "DEPRECATED_RESOURCE_USED"
26025	//   "DEPRECATED_TYPE_USED"
26026	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
26027	//   "EXPERIMENTAL_TYPE_USED"
26028	//   "EXTERNAL_API_WARNING"
26029	//   "FIELD_VALUE_OVERRIDEN"
26030	//   "INJECTED_KERNELS_DEPRECATED"
26031	//   "MISSING_TYPE_DEPENDENCY"
26032	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
26033	//   "NEXT_HOP_CANNOT_IP_FORWARD"
26034	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
26035	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
26036	//   "NEXT_HOP_NOT_RUNNING"
26037	//   "NOT_CRITICAL_ERROR"
26038	//   "NO_RESULTS_ON_PAGE"
26039	//   "REQUIRED_TOS_AGREEMENT"
26040	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
26041	//   "RESOURCE_NOT_DELETED"
26042	//   "SCHEMA_VALIDATION_IGNORED"
26043	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
26044	//   "UNDECLARED_PROPERTIES"
26045	//   "UNREACHABLE"
26046	Code string `json:"code,omitempty"`
26047
26048	// Data: [Output Only] Metadata about this warning in key: value format.
26049	// For example:
26050	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
26051	Data []*NodeTemplateListWarningData `json:"data,omitempty"`
26052
26053	// Message: [Output Only] A human-readable description of the warning
26054	// code.
26055	Message string `json:"message,omitempty"`
26056
26057	// ForceSendFields is a list of field names (e.g. "Code") to
26058	// unconditionally include in API requests. By default, fields with
26059	// empty values are omitted from API requests. However, any non-pointer,
26060	// non-interface field appearing in ForceSendFields will be sent to the
26061	// server regardless of whether the field is empty or not. This may be
26062	// used to include empty fields in Patch requests.
26063	ForceSendFields []string `json:"-"`
26064
26065	// NullFields is a list of field names (e.g. "Code") to include in API
26066	// requests with the JSON null value. By default, fields with empty
26067	// values are omitted from API requests. However, any field with an
26068	// empty value appearing in NullFields will be sent to the server as
26069	// null. It is an error if a field in this list has a non-empty value.
26070	// This may be used to include null fields in Patch requests.
26071	NullFields []string `json:"-"`
26072}
26073
26074func (s *NodeTemplateListWarning) MarshalJSON() ([]byte, error) {
26075	type NoMethod NodeTemplateListWarning
26076	raw := NoMethod(*s)
26077	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26078}
26079
26080type NodeTemplateListWarningData struct {
26081	// Key: [Output Only] A key that provides more detail on the warning
26082	// being returned. For example, for warnings where there are no results
26083	// in a list request for a particular zone, this key might be scope and
26084	// the key value might be the zone name. Other examples might be a key
26085	// indicating a deprecated resource and a suggested replacement, or a
26086	// warning about invalid network settings (for example, if an instance
26087	// attempts to perform IP forwarding but is not enabled for IP
26088	// forwarding).
26089	Key string `json:"key,omitempty"`
26090
26091	// Value: [Output Only] A warning data value corresponding to the key.
26092	Value string `json:"value,omitempty"`
26093
26094	// ForceSendFields is a list of field names (e.g. "Key") to
26095	// unconditionally include in API requests. By default, fields with
26096	// empty values are omitted from API requests. However, any non-pointer,
26097	// non-interface field appearing in ForceSendFields will be sent to the
26098	// server regardless of whether the field is empty or not. This may be
26099	// used to include empty fields in Patch requests.
26100	ForceSendFields []string `json:"-"`
26101
26102	// NullFields is a list of field names (e.g. "Key") to include in API
26103	// requests with the JSON null value. By default, fields with empty
26104	// values are omitted from API requests. However, any field with an
26105	// empty value appearing in NullFields will be sent to the server as
26106	// null. It is an error if a field in this list has a non-empty value.
26107	// This may be used to include null fields in Patch requests.
26108	NullFields []string `json:"-"`
26109}
26110
26111func (s *NodeTemplateListWarningData) MarshalJSON() ([]byte, error) {
26112	type NoMethod NodeTemplateListWarningData
26113	raw := NoMethod(*s)
26114	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26115}
26116
26117type NodeTemplateNodeTypeFlexibility struct {
26118	Cpus string `json:"cpus,omitempty"`
26119
26120	LocalSsd string `json:"localSsd,omitempty"`
26121
26122	Memory string `json:"memory,omitempty"`
26123
26124	// ForceSendFields is a list of field names (e.g. "Cpus") to
26125	// unconditionally include in API requests. By default, fields with
26126	// empty values are omitted from API requests. However, any non-pointer,
26127	// non-interface field appearing in ForceSendFields will be sent to the
26128	// server regardless of whether the field is empty or not. This may be
26129	// used to include empty fields in Patch requests.
26130	ForceSendFields []string `json:"-"`
26131
26132	// NullFields is a list of field names (e.g. "Cpus") to include in API
26133	// requests with the JSON null value. By default, fields with empty
26134	// values are omitted from API requests. However, any field with an
26135	// empty value appearing in NullFields will be sent to the server as
26136	// null. It is an error if a field in this list has a non-empty value.
26137	// This may be used to include null fields in Patch requests.
26138	NullFields []string `json:"-"`
26139}
26140
26141func (s *NodeTemplateNodeTypeFlexibility) MarshalJSON() ([]byte, error) {
26142	type NoMethod NodeTemplateNodeTypeFlexibility
26143	raw := NoMethod(*s)
26144	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26145}
26146
26147type NodeTemplatesScopedList struct {
26148	// NodeTemplates: [Output Only] A list of node templates contained in
26149	// this scope.
26150	NodeTemplates []*NodeTemplate `json:"nodeTemplates,omitempty"`
26151
26152	// Warning: [Output Only] An informational warning that appears when the
26153	// node templates list is empty.
26154	Warning *NodeTemplatesScopedListWarning `json:"warning,omitempty"`
26155
26156	// ForceSendFields is a list of field names (e.g. "NodeTemplates") to
26157	// unconditionally include in API requests. By default, fields with
26158	// empty values are omitted from API requests. However, any non-pointer,
26159	// non-interface field appearing in ForceSendFields will be sent to the
26160	// server regardless of whether the field is empty or not. This may be
26161	// used to include empty fields in Patch requests.
26162	ForceSendFields []string `json:"-"`
26163
26164	// NullFields is a list of field names (e.g. "NodeTemplates") to include
26165	// in API requests with the JSON null value. By default, fields with
26166	// empty values are omitted from API requests. However, any field with
26167	// an empty value appearing in NullFields will be sent to the server as
26168	// null. It is an error if a field in this list has a non-empty value.
26169	// This may be used to include null fields in Patch requests.
26170	NullFields []string `json:"-"`
26171}
26172
26173func (s *NodeTemplatesScopedList) MarshalJSON() ([]byte, error) {
26174	type NoMethod NodeTemplatesScopedList
26175	raw := NoMethod(*s)
26176	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26177}
26178
26179// NodeTemplatesScopedListWarning: [Output Only] An informational
26180// warning that appears when the node templates list is empty.
26181type NodeTemplatesScopedListWarning struct {
26182	// Code: [Output Only] A warning code, if applicable. For example,
26183	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
26184	// the response.
26185	//
26186	// Possible values:
26187	//   "CLEANUP_FAILED"
26188	//   "DEPRECATED_RESOURCE_USED"
26189	//   "DEPRECATED_TYPE_USED"
26190	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
26191	//   "EXPERIMENTAL_TYPE_USED"
26192	//   "EXTERNAL_API_WARNING"
26193	//   "FIELD_VALUE_OVERRIDEN"
26194	//   "INJECTED_KERNELS_DEPRECATED"
26195	//   "MISSING_TYPE_DEPENDENCY"
26196	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
26197	//   "NEXT_HOP_CANNOT_IP_FORWARD"
26198	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
26199	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
26200	//   "NEXT_HOP_NOT_RUNNING"
26201	//   "NOT_CRITICAL_ERROR"
26202	//   "NO_RESULTS_ON_PAGE"
26203	//   "REQUIRED_TOS_AGREEMENT"
26204	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
26205	//   "RESOURCE_NOT_DELETED"
26206	//   "SCHEMA_VALIDATION_IGNORED"
26207	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
26208	//   "UNDECLARED_PROPERTIES"
26209	//   "UNREACHABLE"
26210	Code string `json:"code,omitempty"`
26211
26212	// Data: [Output Only] Metadata about this warning in key: value format.
26213	// For example:
26214	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
26215	Data []*NodeTemplatesScopedListWarningData `json:"data,omitempty"`
26216
26217	// Message: [Output Only] A human-readable description of the warning
26218	// code.
26219	Message string `json:"message,omitempty"`
26220
26221	// ForceSendFields is a list of field names (e.g. "Code") to
26222	// unconditionally include in API requests. By default, fields with
26223	// empty values are omitted from API requests. However, any non-pointer,
26224	// non-interface field appearing in ForceSendFields will be sent to the
26225	// server regardless of whether the field is empty or not. This may be
26226	// used to include empty fields in Patch requests.
26227	ForceSendFields []string `json:"-"`
26228
26229	// NullFields is a list of field names (e.g. "Code") to include in API
26230	// requests with the JSON null value. By default, fields with empty
26231	// values are omitted from API requests. However, any field with an
26232	// empty value appearing in NullFields will be sent to the server as
26233	// null. It is an error if a field in this list has a non-empty value.
26234	// This may be used to include null fields in Patch requests.
26235	NullFields []string `json:"-"`
26236}
26237
26238func (s *NodeTemplatesScopedListWarning) MarshalJSON() ([]byte, error) {
26239	type NoMethod NodeTemplatesScopedListWarning
26240	raw := NoMethod(*s)
26241	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26242}
26243
26244type NodeTemplatesScopedListWarningData struct {
26245	// Key: [Output Only] A key that provides more detail on the warning
26246	// being returned. For example, for warnings where there are no results
26247	// in a list request for a particular zone, this key might be scope and
26248	// the key value might be the zone name. Other examples might be a key
26249	// indicating a deprecated resource and a suggested replacement, or a
26250	// warning about invalid network settings (for example, if an instance
26251	// attempts to perform IP forwarding but is not enabled for IP
26252	// forwarding).
26253	Key string `json:"key,omitempty"`
26254
26255	// Value: [Output Only] A warning data value corresponding to the key.
26256	Value string `json:"value,omitempty"`
26257
26258	// ForceSendFields is a list of field names (e.g. "Key") to
26259	// unconditionally include in API requests. By default, fields with
26260	// empty values are omitted from API requests. However, any non-pointer,
26261	// non-interface field appearing in ForceSendFields will be sent to the
26262	// server regardless of whether the field is empty or not. This may be
26263	// used to include empty fields in Patch requests.
26264	ForceSendFields []string `json:"-"`
26265
26266	// NullFields is a list of field names (e.g. "Key") to include in API
26267	// requests with the JSON null value. By default, fields with empty
26268	// values are omitted from API requests. However, any field with an
26269	// empty value appearing in NullFields will be sent to the server as
26270	// null. It is an error if a field in this list has a non-empty value.
26271	// This may be used to include null fields in Patch requests.
26272	NullFields []string `json:"-"`
26273}
26274
26275func (s *NodeTemplatesScopedListWarningData) MarshalJSON() ([]byte, error) {
26276	type NoMethod NodeTemplatesScopedListWarningData
26277	raw := NoMethod(*s)
26278	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26279}
26280
26281// NodeType: Represent a sole-tenant Node Type resource.
26282//
26283// Each node within a node group must have a node type. A node type
26284// specifies the total amount of cores and memory for that node.
26285// Currently, the only available node type is n1-node-96-624 node type
26286// that has 96 vCPUs and 624 GB of memory, available in multiple zones.
26287// For more information read Node types. (== resource_for beta.nodeTypes
26288// ==) (== resource_for v1.nodeTypes ==)
26289type NodeType struct {
26290	// CpuPlatform: [Output Only] The CPU platform used by this node type.
26291	CpuPlatform string `json:"cpuPlatform,omitempty"`
26292
26293	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
26294	// format.
26295	CreationTimestamp string `json:"creationTimestamp,omitempty"`
26296
26297	// Deprecated: [Output Only] The deprecation status associated with this
26298	// node type.
26299	Deprecated *DeprecationStatus `json:"deprecated,omitempty"`
26300
26301	// Description: [Output Only] An optional textual description of the
26302	// resource.
26303	Description string `json:"description,omitempty"`
26304
26305	// GuestCpus: [Output Only] The number of virtual CPUs that are
26306	// available to the node type.
26307	GuestCpus int64 `json:"guestCpus,omitempty"`
26308
26309	// Id: [Output Only] The unique identifier for the resource. This
26310	// identifier is defined by the server.
26311	Id uint64 `json:"id,omitempty,string"`
26312
26313	// Kind: [Output Only] The type of the resource. Always compute#nodeType
26314	// for node types.
26315	Kind string `json:"kind,omitempty"`
26316
26317	// LocalSsdGb: [Output Only] Local SSD available to the node type,
26318	// defined in GB.
26319	LocalSsdGb int64 `json:"localSsdGb,omitempty"`
26320
26321	// MemoryMb: [Output Only] The amount of physical memory available to
26322	// the node type, defined in MB.
26323	MemoryMb int64 `json:"memoryMb,omitempty"`
26324
26325	// Name: [Output Only] Name of the resource.
26326	Name string `json:"name,omitempty"`
26327
26328	// SelfLink: [Output Only] Server-defined URL for the resource.
26329	SelfLink string `json:"selfLink,omitempty"`
26330
26331	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
26332	// with the resource id.
26333	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
26334
26335	// Zone: [Output Only] The name of the zone where the node type resides,
26336	// such as us-central1-a.
26337	Zone string `json:"zone,omitempty"`
26338
26339	// ServerResponse contains the HTTP response code and headers from the
26340	// server.
26341	googleapi.ServerResponse `json:"-"`
26342
26343	// ForceSendFields is a list of field names (e.g. "CpuPlatform") to
26344	// unconditionally include in API requests. By default, fields with
26345	// empty values are omitted from API requests. However, any non-pointer,
26346	// non-interface field appearing in ForceSendFields will be sent to the
26347	// server regardless of whether the field is empty or not. This may be
26348	// used to include empty fields in Patch requests.
26349	ForceSendFields []string `json:"-"`
26350
26351	// NullFields is a list of field names (e.g. "CpuPlatform") to include
26352	// in API requests with the JSON null value. By default, fields with
26353	// empty values are omitted from API requests. However, any field with
26354	// an empty value appearing in NullFields will be sent to the server as
26355	// null. It is an error if a field in this list has a non-empty value.
26356	// This may be used to include null fields in Patch requests.
26357	NullFields []string `json:"-"`
26358}
26359
26360func (s *NodeType) MarshalJSON() ([]byte, error) {
26361	type NoMethod NodeType
26362	raw := NoMethod(*s)
26363	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26364}
26365
26366type NodeTypeAggregatedList struct {
26367	// Id: [Output Only] Unique identifier for the resource; defined by the
26368	// server.
26369	Id string `json:"id,omitempty"`
26370
26371	// Items: A list of NodeTypesScopedList resources.
26372	Items map[string]NodeTypesScopedList `json:"items,omitempty"`
26373
26374	// Kind: [Output Only] Type of resource.Always
26375	// compute#nodeTypeAggregatedList for aggregated lists of node types.
26376	Kind string `json:"kind,omitempty"`
26377
26378	// NextPageToken: [Output Only] This token allows you to get the next
26379	// page of results for list requests. If the number of results is larger
26380	// than maxResults, use the nextPageToken as a value for the query
26381	// parameter pageToken in the next list request. Subsequent list
26382	// requests will have their own nextPageToken to continue paging through
26383	// the results.
26384	NextPageToken string `json:"nextPageToken,omitempty"`
26385
26386	// SelfLink: [Output Only] Server-defined URL for this resource.
26387	SelfLink string `json:"selfLink,omitempty"`
26388
26389	// Warning: [Output Only] Informational warning message.
26390	Warning *NodeTypeAggregatedListWarning `json:"warning,omitempty"`
26391
26392	// ServerResponse contains the HTTP response code and headers from the
26393	// server.
26394	googleapi.ServerResponse `json:"-"`
26395
26396	// ForceSendFields is a list of field names (e.g. "Id") to
26397	// unconditionally include in API requests. By default, fields with
26398	// empty values are omitted from API requests. However, any non-pointer,
26399	// non-interface field appearing in ForceSendFields will be sent to the
26400	// server regardless of whether the field is empty or not. This may be
26401	// used to include empty fields in Patch requests.
26402	ForceSendFields []string `json:"-"`
26403
26404	// NullFields is a list of field names (e.g. "Id") to include in API
26405	// requests with the JSON null value. By default, fields with empty
26406	// values are omitted from API requests. However, any field with an
26407	// empty value appearing in NullFields will be sent to the server as
26408	// null. It is an error if a field in this list has a non-empty value.
26409	// This may be used to include null fields in Patch requests.
26410	NullFields []string `json:"-"`
26411}
26412
26413func (s *NodeTypeAggregatedList) MarshalJSON() ([]byte, error) {
26414	type NoMethod NodeTypeAggregatedList
26415	raw := NoMethod(*s)
26416	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26417}
26418
26419// NodeTypeAggregatedListWarning: [Output Only] Informational warning
26420// message.
26421type NodeTypeAggregatedListWarning struct {
26422	// Code: [Output Only] A warning code, if applicable. For example,
26423	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
26424	// the response.
26425	//
26426	// Possible values:
26427	//   "CLEANUP_FAILED"
26428	//   "DEPRECATED_RESOURCE_USED"
26429	//   "DEPRECATED_TYPE_USED"
26430	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
26431	//   "EXPERIMENTAL_TYPE_USED"
26432	//   "EXTERNAL_API_WARNING"
26433	//   "FIELD_VALUE_OVERRIDEN"
26434	//   "INJECTED_KERNELS_DEPRECATED"
26435	//   "MISSING_TYPE_DEPENDENCY"
26436	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
26437	//   "NEXT_HOP_CANNOT_IP_FORWARD"
26438	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
26439	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
26440	//   "NEXT_HOP_NOT_RUNNING"
26441	//   "NOT_CRITICAL_ERROR"
26442	//   "NO_RESULTS_ON_PAGE"
26443	//   "REQUIRED_TOS_AGREEMENT"
26444	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
26445	//   "RESOURCE_NOT_DELETED"
26446	//   "SCHEMA_VALIDATION_IGNORED"
26447	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
26448	//   "UNDECLARED_PROPERTIES"
26449	//   "UNREACHABLE"
26450	Code string `json:"code,omitempty"`
26451
26452	// Data: [Output Only] Metadata about this warning in key: value format.
26453	// For example:
26454	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
26455	Data []*NodeTypeAggregatedListWarningData `json:"data,omitempty"`
26456
26457	// Message: [Output Only] A human-readable description of the warning
26458	// code.
26459	Message string `json:"message,omitempty"`
26460
26461	// ForceSendFields is a list of field names (e.g. "Code") to
26462	// unconditionally include in API requests. By default, fields with
26463	// empty values are omitted from API requests. However, any non-pointer,
26464	// non-interface field appearing in ForceSendFields will be sent to the
26465	// server regardless of whether the field is empty or not. This may be
26466	// used to include empty fields in Patch requests.
26467	ForceSendFields []string `json:"-"`
26468
26469	// NullFields is a list of field names (e.g. "Code") to include in API
26470	// requests with the JSON null value. By default, fields with empty
26471	// values are omitted from API requests. However, any field with an
26472	// empty value appearing in NullFields will be sent to the server as
26473	// null. It is an error if a field in this list has a non-empty value.
26474	// This may be used to include null fields in Patch requests.
26475	NullFields []string `json:"-"`
26476}
26477
26478func (s *NodeTypeAggregatedListWarning) MarshalJSON() ([]byte, error) {
26479	type NoMethod NodeTypeAggregatedListWarning
26480	raw := NoMethod(*s)
26481	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26482}
26483
26484type NodeTypeAggregatedListWarningData struct {
26485	// Key: [Output Only] A key that provides more detail on the warning
26486	// being returned. For example, for warnings where there are no results
26487	// in a list request for a particular zone, this key might be scope and
26488	// the key value might be the zone name. Other examples might be a key
26489	// indicating a deprecated resource and a suggested replacement, or a
26490	// warning about invalid network settings (for example, if an instance
26491	// attempts to perform IP forwarding but is not enabled for IP
26492	// forwarding).
26493	Key string `json:"key,omitempty"`
26494
26495	// Value: [Output Only] A warning data value corresponding to the key.
26496	Value string `json:"value,omitempty"`
26497
26498	// ForceSendFields is a list of field names (e.g. "Key") to
26499	// unconditionally include in API requests. By default, fields with
26500	// empty values are omitted from API requests. However, any non-pointer,
26501	// non-interface field appearing in ForceSendFields will be sent to the
26502	// server regardless of whether the field is empty or not. This may be
26503	// used to include empty fields in Patch requests.
26504	ForceSendFields []string `json:"-"`
26505
26506	// NullFields is a list of field names (e.g. "Key") to include in API
26507	// requests with the JSON null value. By default, fields with empty
26508	// values are omitted from API requests. However, any field with an
26509	// empty value appearing in NullFields will be sent to the server as
26510	// null. It is an error if a field in this list has a non-empty value.
26511	// This may be used to include null fields in Patch requests.
26512	NullFields []string `json:"-"`
26513}
26514
26515func (s *NodeTypeAggregatedListWarningData) MarshalJSON() ([]byte, error) {
26516	type NoMethod NodeTypeAggregatedListWarningData
26517	raw := NoMethod(*s)
26518	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26519}
26520
26521// NodeTypeList: Contains a list of node types.
26522type NodeTypeList struct {
26523	// Id: [Output Only] Unique identifier for the resource; defined by the
26524	// server.
26525	Id string `json:"id,omitempty"`
26526
26527	// Items: A list of NodeType resources.
26528	Items []*NodeType `json:"items,omitempty"`
26529
26530	// Kind: [Output Only] Type of resource.Always compute#nodeTypeList for
26531	// lists of node types.
26532	Kind string `json:"kind,omitempty"`
26533
26534	// NextPageToken: [Output Only] This token allows you to get the next
26535	// page of results for list requests. If the number of results is larger
26536	// than maxResults, use the nextPageToken as a value for the query
26537	// parameter pageToken in the next list request. Subsequent list
26538	// requests will have their own nextPageToken to continue paging through
26539	// the results.
26540	NextPageToken string `json:"nextPageToken,omitempty"`
26541
26542	// SelfLink: [Output Only] Server-defined URL for this resource.
26543	SelfLink string `json:"selfLink,omitempty"`
26544
26545	// Warning: [Output Only] Informational warning message.
26546	Warning *NodeTypeListWarning `json:"warning,omitempty"`
26547
26548	// ServerResponse contains the HTTP response code and headers from the
26549	// server.
26550	googleapi.ServerResponse `json:"-"`
26551
26552	// ForceSendFields is a list of field names (e.g. "Id") to
26553	// unconditionally include in API requests. By default, fields with
26554	// empty values are omitted from API requests. However, any non-pointer,
26555	// non-interface field appearing in ForceSendFields will be sent to the
26556	// server regardless of whether the field is empty or not. This may be
26557	// used to include empty fields in Patch requests.
26558	ForceSendFields []string `json:"-"`
26559
26560	// NullFields is a list of field names (e.g. "Id") to include in API
26561	// requests with the JSON null value. By default, fields with empty
26562	// values are omitted from API requests. However, any field with an
26563	// empty value appearing in NullFields will be sent to the server as
26564	// null. It is an error if a field in this list has a non-empty value.
26565	// This may be used to include null fields in Patch requests.
26566	NullFields []string `json:"-"`
26567}
26568
26569func (s *NodeTypeList) MarshalJSON() ([]byte, error) {
26570	type NoMethod NodeTypeList
26571	raw := NoMethod(*s)
26572	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26573}
26574
26575// NodeTypeListWarning: [Output Only] Informational warning message.
26576type NodeTypeListWarning struct {
26577	// Code: [Output Only] A warning code, if applicable. For example,
26578	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
26579	// the response.
26580	//
26581	// Possible values:
26582	//   "CLEANUP_FAILED"
26583	//   "DEPRECATED_RESOURCE_USED"
26584	//   "DEPRECATED_TYPE_USED"
26585	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
26586	//   "EXPERIMENTAL_TYPE_USED"
26587	//   "EXTERNAL_API_WARNING"
26588	//   "FIELD_VALUE_OVERRIDEN"
26589	//   "INJECTED_KERNELS_DEPRECATED"
26590	//   "MISSING_TYPE_DEPENDENCY"
26591	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
26592	//   "NEXT_HOP_CANNOT_IP_FORWARD"
26593	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
26594	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
26595	//   "NEXT_HOP_NOT_RUNNING"
26596	//   "NOT_CRITICAL_ERROR"
26597	//   "NO_RESULTS_ON_PAGE"
26598	//   "REQUIRED_TOS_AGREEMENT"
26599	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
26600	//   "RESOURCE_NOT_DELETED"
26601	//   "SCHEMA_VALIDATION_IGNORED"
26602	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
26603	//   "UNDECLARED_PROPERTIES"
26604	//   "UNREACHABLE"
26605	Code string `json:"code,omitempty"`
26606
26607	// Data: [Output Only] Metadata about this warning in key: value format.
26608	// For example:
26609	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
26610	Data []*NodeTypeListWarningData `json:"data,omitempty"`
26611
26612	// Message: [Output Only] A human-readable description of the warning
26613	// code.
26614	Message string `json:"message,omitempty"`
26615
26616	// ForceSendFields is a list of field names (e.g. "Code") to
26617	// unconditionally include in API requests. By default, fields with
26618	// empty values are omitted from API requests. However, any non-pointer,
26619	// non-interface field appearing in ForceSendFields will be sent to the
26620	// server regardless of whether the field is empty or not. This may be
26621	// used to include empty fields in Patch requests.
26622	ForceSendFields []string `json:"-"`
26623
26624	// NullFields is a list of field names (e.g. "Code") to include in API
26625	// requests with the JSON null value. By default, fields with empty
26626	// values are omitted from API requests. However, any field with an
26627	// empty value appearing in NullFields will be sent to the server as
26628	// null. It is an error if a field in this list has a non-empty value.
26629	// This may be used to include null fields in Patch requests.
26630	NullFields []string `json:"-"`
26631}
26632
26633func (s *NodeTypeListWarning) MarshalJSON() ([]byte, error) {
26634	type NoMethod NodeTypeListWarning
26635	raw := NoMethod(*s)
26636	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26637}
26638
26639type NodeTypeListWarningData struct {
26640	// Key: [Output Only] A key that provides more detail on the warning
26641	// being returned. For example, for warnings where there are no results
26642	// in a list request for a particular zone, this key might be scope and
26643	// the key value might be the zone name. Other examples might be a key
26644	// indicating a deprecated resource and a suggested replacement, or a
26645	// warning about invalid network settings (for example, if an instance
26646	// attempts to perform IP forwarding but is not enabled for IP
26647	// forwarding).
26648	Key string `json:"key,omitempty"`
26649
26650	// Value: [Output Only] A warning data value corresponding to the key.
26651	Value string `json:"value,omitempty"`
26652
26653	// ForceSendFields is a list of field names (e.g. "Key") to
26654	// unconditionally include in API requests. By default, fields with
26655	// empty values are omitted from API requests. However, any non-pointer,
26656	// non-interface field appearing in ForceSendFields will be sent to the
26657	// server regardless of whether the field is empty or not. This may be
26658	// used to include empty fields in Patch requests.
26659	ForceSendFields []string `json:"-"`
26660
26661	// NullFields is a list of field names (e.g. "Key") to include in API
26662	// requests with the JSON null value. By default, fields with empty
26663	// values are omitted from API requests. However, any field with an
26664	// empty value appearing in NullFields will be sent to the server as
26665	// null. It is an error if a field in this list has a non-empty value.
26666	// This may be used to include null fields in Patch requests.
26667	NullFields []string `json:"-"`
26668}
26669
26670func (s *NodeTypeListWarningData) MarshalJSON() ([]byte, error) {
26671	type NoMethod NodeTypeListWarningData
26672	raw := NoMethod(*s)
26673	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26674}
26675
26676type NodeTypesScopedList struct {
26677	// NodeTypes: [Output Only] A list of node types contained in this
26678	// scope.
26679	NodeTypes []*NodeType `json:"nodeTypes,omitempty"`
26680
26681	// Warning: [Output Only] An informational warning that appears when the
26682	// node types list is empty.
26683	Warning *NodeTypesScopedListWarning `json:"warning,omitempty"`
26684
26685	// ForceSendFields is a list of field names (e.g. "NodeTypes") to
26686	// unconditionally include in API requests. By default, fields with
26687	// empty values are omitted from API requests. However, any non-pointer,
26688	// non-interface field appearing in ForceSendFields will be sent to the
26689	// server regardless of whether the field is empty or not. This may be
26690	// used to include empty fields in Patch requests.
26691	ForceSendFields []string `json:"-"`
26692
26693	// NullFields is a list of field names (e.g. "NodeTypes") to include in
26694	// API requests with the JSON null value. By default, fields with empty
26695	// values are omitted from API requests. However, any field with an
26696	// empty value appearing in NullFields will be sent to the server as
26697	// null. It is an error if a field in this list has a non-empty value.
26698	// This may be used to include null fields in Patch requests.
26699	NullFields []string `json:"-"`
26700}
26701
26702func (s *NodeTypesScopedList) MarshalJSON() ([]byte, error) {
26703	type NoMethod NodeTypesScopedList
26704	raw := NoMethod(*s)
26705	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26706}
26707
26708// NodeTypesScopedListWarning: [Output Only] An informational warning
26709// that appears when the node types list is empty.
26710type NodeTypesScopedListWarning struct {
26711	// Code: [Output Only] A warning code, if applicable. For example,
26712	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
26713	// the response.
26714	//
26715	// Possible values:
26716	//   "CLEANUP_FAILED"
26717	//   "DEPRECATED_RESOURCE_USED"
26718	//   "DEPRECATED_TYPE_USED"
26719	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
26720	//   "EXPERIMENTAL_TYPE_USED"
26721	//   "EXTERNAL_API_WARNING"
26722	//   "FIELD_VALUE_OVERRIDEN"
26723	//   "INJECTED_KERNELS_DEPRECATED"
26724	//   "MISSING_TYPE_DEPENDENCY"
26725	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
26726	//   "NEXT_HOP_CANNOT_IP_FORWARD"
26727	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
26728	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
26729	//   "NEXT_HOP_NOT_RUNNING"
26730	//   "NOT_CRITICAL_ERROR"
26731	//   "NO_RESULTS_ON_PAGE"
26732	//   "REQUIRED_TOS_AGREEMENT"
26733	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
26734	//   "RESOURCE_NOT_DELETED"
26735	//   "SCHEMA_VALIDATION_IGNORED"
26736	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
26737	//   "UNDECLARED_PROPERTIES"
26738	//   "UNREACHABLE"
26739	Code string `json:"code,omitempty"`
26740
26741	// Data: [Output Only] Metadata about this warning in key: value format.
26742	// For example:
26743	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
26744	Data []*NodeTypesScopedListWarningData `json:"data,omitempty"`
26745
26746	// Message: [Output Only] A human-readable description of the warning
26747	// code.
26748	Message string `json:"message,omitempty"`
26749
26750	// ForceSendFields is a list of field names (e.g. "Code") to
26751	// unconditionally include in API requests. By default, fields with
26752	// empty values are omitted from API requests. However, any non-pointer,
26753	// non-interface field appearing in ForceSendFields will be sent to the
26754	// server regardless of whether the field is empty or not. This may be
26755	// used to include empty fields in Patch requests.
26756	ForceSendFields []string `json:"-"`
26757
26758	// NullFields is a list of field names (e.g. "Code") to include in API
26759	// requests with the JSON null value. By default, fields with empty
26760	// values are omitted from API requests. However, any field with an
26761	// empty value appearing in NullFields will be sent to the server as
26762	// null. It is an error if a field in this list has a non-empty value.
26763	// This may be used to include null fields in Patch requests.
26764	NullFields []string `json:"-"`
26765}
26766
26767func (s *NodeTypesScopedListWarning) MarshalJSON() ([]byte, error) {
26768	type NoMethod NodeTypesScopedListWarning
26769	raw := NoMethod(*s)
26770	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26771}
26772
26773type NodeTypesScopedListWarningData struct {
26774	// Key: [Output Only] A key that provides more detail on the warning
26775	// being returned. For example, for warnings where there are no results
26776	// in a list request for a particular zone, this key might be scope and
26777	// the key value might be the zone name. Other examples might be a key
26778	// indicating a deprecated resource and a suggested replacement, or a
26779	// warning about invalid network settings (for example, if an instance
26780	// attempts to perform IP forwarding but is not enabled for IP
26781	// forwarding).
26782	Key string `json:"key,omitempty"`
26783
26784	// Value: [Output Only] A warning data value corresponding to the key.
26785	Value string `json:"value,omitempty"`
26786
26787	// ForceSendFields is a list of field names (e.g. "Key") to
26788	// unconditionally include in API requests. By default, fields with
26789	// empty values are omitted from API requests. However, any non-pointer,
26790	// non-interface field appearing in ForceSendFields will be sent to the
26791	// server regardless of whether the field is empty or not. This may be
26792	// used to include empty fields in Patch requests.
26793	ForceSendFields []string `json:"-"`
26794
26795	// NullFields is a list of field names (e.g. "Key") to include in API
26796	// requests with the JSON null value. By default, fields with empty
26797	// values are omitted from API requests. However, any field with an
26798	// empty value appearing in NullFields will be sent to the server as
26799	// null. It is an error if a field in this list has a non-empty value.
26800	// This may be used to include null fields in Patch requests.
26801	NullFields []string `json:"-"`
26802}
26803
26804func (s *NodeTypesScopedListWarningData) MarshalJSON() ([]byte, error) {
26805	type NoMethod NodeTypesScopedListWarningData
26806	raw := NoMethod(*s)
26807	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26808}
26809
26810// NotificationEndpoint: A notification endpoint resource defines an
26811// endpoint to receive notifications when there are status changes
26812// detected by the associated health check service.
26813type NotificationEndpoint struct {
26814	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
26815	// format.
26816	CreationTimestamp string `json:"creationTimestamp,omitempty"`
26817
26818	// Description: An optional description of this resource. Provide this
26819	// property when you create the resource.
26820	Description string `json:"description,omitempty"`
26821
26822	// GrpcSettings: Settings of the gRPC notification endpoint including
26823	// the endpoint URL and the retry duration.
26824	GrpcSettings *NotificationEndpointGrpcSettings `json:"grpcSettings,omitempty"`
26825
26826	// Id: [Output Only] A unique identifier for this resource type. The
26827	// server generates this identifier.
26828	Id uint64 `json:"id,omitempty,string"`
26829
26830	// Kind: [Output Only] Type of the resource. Always
26831	// compute#notificationEndpoint for notification endpoints.
26832	Kind string `json:"kind,omitempty"`
26833
26834	// Name: Name of the resource. Provided by the client when the resource
26835	// is created. The name must be 1-63 characters long, and comply with
26836	// RFC1035. Specifically, the name must be 1-63 characters long and
26837	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
26838	// the first character must be a lowercase letter, and all following
26839	// characters must be a dash, lowercase letter, or digit, except the
26840	// last character, which cannot be a dash.
26841	Name string `json:"name,omitempty"`
26842
26843	// Region: [Output Only] URL of the region where the notification
26844	// endpoint resides. This field applies only to the regional resource.
26845	// You must specify this field as part of the HTTP request URL. It is
26846	// not settable as a field in the request body.
26847	Region string `json:"region,omitempty"`
26848
26849	// SelfLink: [Output Only] Server-defined URL for the resource.
26850	SelfLink string `json:"selfLink,omitempty"`
26851
26852	// ServerResponse contains the HTTP response code and headers from the
26853	// server.
26854	googleapi.ServerResponse `json:"-"`
26855
26856	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
26857	// to unconditionally include in API requests. By default, fields with
26858	// empty values are omitted from API requests. However, any non-pointer,
26859	// non-interface field appearing in ForceSendFields will be sent to the
26860	// server regardless of whether the field is empty or not. This may be
26861	// used to include empty fields in Patch requests.
26862	ForceSendFields []string `json:"-"`
26863
26864	// NullFields is a list of field names (e.g. "CreationTimestamp") to
26865	// include in API requests with the JSON null value. By default, fields
26866	// with empty values are omitted from API requests. However, any field
26867	// with an empty value appearing in NullFields will be sent to the
26868	// server as null. It is an error if a field in this list has a
26869	// non-empty value. This may be used to include null fields in Patch
26870	// requests.
26871	NullFields []string `json:"-"`
26872}
26873
26874func (s *NotificationEndpoint) MarshalJSON() ([]byte, error) {
26875	type NoMethod NotificationEndpoint
26876	raw := NoMethod(*s)
26877	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26878}
26879
26880// NotificationEndpointGrpcSettings: Represents a gRPC setting that
26881// describes one gRPC notification endpoint and the retry duration
26882// attempting to send notification to this endpoint.
26883type NotificationEndpointGrpcSettings struct {
26884	// Authority: Optional. If specified, this field is used to set the
26885	// authority header by the sender of notifications. See
26886	// https://tools.ietf.org/html/rfc7540#section-8.1.2.3
26887	Authority string `json:"authority,omitempty"`
26888
26889	// Endpoint: Endpoint to which gRPC notifications are sent. This must be
26890	// a valid gRPCLB DNS name.
26891	Endpoint string `json:"endpoint,omitempty"`
26892
26893	// PayloadName: Optional. If specified, this field is used to populate
26894	// the "name" field in gRPC requests.
26895	PayloadName string `json:"payloadName,omitempty"`
26896
26897	// ResendInterval: Optional. This field is used to configure how often
26898	// to send a full update of all non-healthy backends. If unspecified,
26899	// full updates are not sent. If specified, must be in the range between
26900	// 600 seconds to 3600 seconds. Nanos are disallowed.
26901	ResendInterval *Duration `json:"resendInterval,omitempty"`
26902
26903	// RetryDurationSec: How much time (in seconds) is spent attempting
26904	// notification retries until a successful response is received. Default
26905	// is 30s. Limit is 20m (1200s). Must be a positive number.
26906	RetryDurationSec int64 `json:"retryDurationSec,omitempty"`
26907
26908	// ForceSendFields is a list of field names (e.g. "Authority") to
26909	// unconditionally include in API requests. By default, fields with
26910	// empty values are omitted from API requests. However, any non-pointer,
26911	// non-interface field appearing in ForceSendFields will be sent to the
26912	// server regardless of whether the field is empty or not. This may be
26913	// used to include empty fields in Patch requests.
26914	ForceSendFields []string `json:"-"`
26915
26916	// NullFields is a list of field names (e.g. "Authority") to include in
26917	// API requests with the JSON null value. By default, fields with empty
26918	// values are omitted from API requests. However, any field with an
26919	// empty value appearing in NullFields will be sent to the server as
26920	// null. It is an error if a field in this list has a non-empty value.
26921	// This may be used to include null fields in Patch requests.
26922	NullFields []string `json:"-"`
26923}
26924
26925func (s *NotificationEndpointGrpcSettings) MarshalJSON() ([]byte, error) {
26926	type NoMethod NotificationEndpointGrpcSettings
26927	raw := NoMethod(*s)
26928	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26929}
26930
26931type NotificationEndpointList struct {
26932	// Id: [Output Only] Unique identifier for the resource; defined by the
26933	// server.
26934	Id string `json:"id,omitempty"`
26935
26936	// Items: A list of NotificationEndpoint resources.
26937	Items []*NotificationEndpoint `json:"items,omitempty"`
26938
26939	// Kind: [Output Only] Type of the resource. Always
26940	// compute#notificationEndpoint for notification endpoints.
26941	Kind string `json:"kind,omitempty"`
26942
26943	// NextPageToken: [Output Only] This token allows you to get the next
26944	// page of results for list requests. If the number of results is larger
26945	// than maxResults, use the nextPageToken as a value for the query
26946	// parameter pageToken in the next list request. Subsequent list
26947	// requests will have their own nextPageToken to continue paging through
26948	// the results.
26949	NextPageToken string `json:"nextPageToken,omitempty"`
26950
26951	// SelfLink: [Output Only] Server-defined URL for this resource.
26952	SelfLink string `json:"selfLink,omitempty"`
26953
26954	// Warning: [Output Only] Informational warning message.
26955	Warning *NotificationEndpointListWarning `json:"warning,omitempty"`
26956
26957	// ServerResponse contains the HTTP response code and headers from the
26958	// server.
26959	googleapi.ServerResponse `json:"-"`
26960
26961	// ForceSendFields is a list of field names (e.g. "Id") to
26962	// unconditionally include in API requests. By default, fields with
26963	// empty values are omitted from API requests. However, any non-pointer,
26964	// non-interface field appearing in ForceSendFields will be sent to the
26965	// server regardless of whether the field is empty or not. This may be
26966	// used to include empty fields in Patch requests.
26967	ForceSendFields []string `json:"-"`
26968
26969	// NullFields is a list of field names (e.g. "Id") to include in API
26970	// requests with the JSON null value. By default, fields with empty
26971	// values are omitted from API requests. However, any field with an
26972	// empty value appearing in NullFields will be sent to the server as
26973	// null. It is an error if a field in this list has a non-empty value.
26974	// This may be used to include null fields in Patch requests.
26975	NullFields []string `json:"-"`
26976}
26977
26978func (s *NotificationEndpointList) MarshalJSON() ([]byte, error) {
26979	type NoMethod NotificationEndpointList
26980	raw := NoMethod(*s)
26981	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26982}
26983
26984// NotificationEndpointListWarning: [Output Only] Informational warning
26985// message.
26986type NotificationEndpointListWarning struct {
26987	// Code: [Output Only] A warning code, if applicable. For example,
26988	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
26989	// the response.
26990	//
26991	// Possible values:
26992	//   "CLEANUP_FAILED"
26993	//   "DEPRECATED_RESOURCE_USED"
26994	//   "DEPRECATED_TYPE_USED"
26995	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
26996	//   "EXPERIMENTAL_TYPE_USED"
26997	//   "EXTERNAL_API_WARNING"
26998	//   "FIELD_VALUE_OVERRIDEN"
26999	//   "INJECTED_KERNELS_DEPRECATED"
27000	//   "MISSING_TYPE_DEPENDENCY"
27001	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
27002	//   "NEXT_HOP_CANNOT_IP_FORWARD"
27003	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
27004	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
27005	//   "NEXT_HOP_NOT_RUNNING"
27006	//   "NOT_CRITICAL_ERROR"
27007	//   "NO_RESULTS_ON_PAGE"
27008	//   "REQUIRED_TOS_AGREEMENT"
27009	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
27010	//   "RESOURCE_NOT_DELETED"
27011	//   "SCHEMA_VALIDATION_IGNORED"
27012	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
27013	//   "UNDECLARED_PROPERTIES"
27014	//   "UNREACHABLE"
27015	Code string `json:"code,omitempty"`
27016
27017	// Data: [Output Only] Metadata about this warning in key: value format.
27018	// For example:
27019	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
27020	Data []*NotificationEndpointListWarningData `json:"data,omitempty"`
27021
27022	// Message: [Output Only] A human-readable description of the warning
27023	// code.
27024	Message string `json:"message,omitempty"`
27025
27026	// ForceSendFields is a list of field names (e.g. "Code") to
27027	// unconditionally include in API requests. By default, fields with
27028	// empty values are omitted from API requests. However, any non-pointer,
27029	// non-interface field appearing in ForceSendFields will be sent to the
27030	// server regardless of whether the field is empty or not. This may be
27031	// used to include empty fields in Patch requests.
27032	ForceSendFields []string `json:"-"`
27033
27034	// NullFields is a list of field names (e.g. "Code") to include in API
27035	// requests with the JSON null value. By default, fields with empty
27036	// values are omitted from API requests. However, any field with an
27037	// empty value appearing in NullFields will be sent to the server as
27038	// null. It is an error if a field in this list has a non-empty value.
27039	// This may be used to include null fields in Patch requests.
27040	NullFields []string `json:"-"`
27041}
27042
27043func (s *NotificationEndpointListWarning) MarshalJSON() ([]byte, error) {
27044	type NoMethod NotificationEndpointListWarning
27045	raw := NoMethod(*s)
27046	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27047}
27048
27049type NotificationEndpointListWarningData struct {
27050	// Key: [Output Only] A key that provides more detail on the warning
27051	// being returned. For example, for warnings where there are no results
27052	// in a list request for a particular zone, this key might be scope and
27053	// the key value might be the zone name. Other examples might be a key
27054	// indicating a deprecated resource and a suggested replacement, or a
27055	// warning about invalid network settings (for example, if an instance
27056	// attempts to perform IP forwarding but is not enabled for IP
27057	// forwarding).
27058	Key string `json:"key,omitempty"`
27059
27060	// Value: [Output Only] A warning data value corresponding to the key.
27061	Value string `json:"value,omitempty"`
27062
27063	// ForceSendFields is a list of field names (e.g. "Key") to
27064	// unconditionally include in API requests. By default, fields with
27065	// empty values are omitted from API requests. However, any non-pointer,
27066	// non-interface field appearing in ForceSendFields will be sent to the
27067	// server regardless of whether the field is empty or not. This may be
27068	// used to include empty fields in Patch requests.
27069	ForceSendFields []string `json:"-"`
27070
27071	// NullFields is a list of field names (e.g. "Key") to include in API
27072	// requests with the JSON null value. By default, fields with empty
27073	// values are omitted from API requests. However, any field with an
27074	// empty value appearing in NullFields will be sent to the server as
27075	// null. It is an error if a field in this list has a non-empty value.
27076	// This may be used to include null fields in Patch requests.
27077	NullFields []string `json:"-"`
27078}
27079
27080func (s *NotificationEndpointListWarningData) MarshalJSON() ([]byte, error) {
27081	type NoMethod NotificationEndpointListWarningData
27082	raw := NoMethod(*s)
27083	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27084}
27085
27086// Operation: Represents an Operation resource.
27087//
27088// You can use an operation resource to manage asynchronous API
27089// requests. For more information, read Handling API
27090// responses.
27091//
27092// Operations can be global, regional or zonal.
27093// - For global operations, use the globalOperations resource.
27094// - For regional operations, use the regionOperations resource.
27095// - For zonal operations, use the zonalOperations resource.
27096//
27097// For more information, read  Global, Regional, and Zonal Resources.
27098// (== resource_for v1.globalOperations ==) (== resource_for
27099// beta.globalOperations ==) (== resource_for v1.regionOperations ==)
27100// (== resource_for beta.regionOperations ==) (== resource_for
27101// v1.zoneOperations ==) (== resource_for beta.zoneOperations ==)
27102type Operation struct {
27103	// ClientOperationId: [Output Only] The value of `requestId` if you
27104	// provided it in the request. Not present otherwise.
27105	ClientOperationId string `json:"clientOperationId,omitempty"`
27106
27107	// CreationTimestamp: [Deprecated] This field is deprecated.
27108	CreationTimestamp string `json:"creationTimestamp,omitempty"`
27109
27110	// Description: [Output Only] A textual description of the operation,
27111	// which is set when the operation is created.
27112	Description string `json:"description,omitempty"`
27113
27114	// EndTime: [Output Only] The time that this operation was completed.
27115	// This value is in RFC3339 text format.
27116	EndTime string `json:"endTime,omitempty"`
27117
27118	// Error: [Output Only] If errors are generated during processing of the
27119	// operation, this field will be populated.
27120	Error *OperationError `json:"error,omitempty"`
27121
27122	// HttpErrorMessage: [Output Only] If the operation fails, this field
27123	// contains the HTTP error message that was returned, such as NOT FOUND.
27124	HttpErrorMessage string `json:"httpErrorMessage,omitempty"`
27125
27126	// HttpErrorStatusCode: [Output Only] If the operation fails, this field
27127	// contains the HTTP error status code that was returned. For example, a
27128	// 404 means the resource was not found.
27129	HttpErrorStatusCode int64 `json:"httpErrorStatusCode,omitempty"`
27130
27131	// Id: [Output Only] The unique identifier for the operation. This
27132	// identifier is defined by the server.
27133	Id uint64 `json:"id,omitempty,string"`
27134
27135	// InsertTime: [Output Only] The time that this operation was requested.
27136	// This value is in RFC3339 text format.
27137	InsertTime string `json:"insertTime,omitempty"`
27138
27139	// Kind: [Output Only] Type of the resource. Always compute#operation
27140	// for Operation resources.
27141	Kind string `json:"kind,omitempty"`
27142
27143	// Name: [Output Only] Name of the operation.
27144	Name string `json:"name,omitempty"`
27145
27146	// OperationType: [Output Only] The type of operation, such as insert,
27147	// update, or delete, and so on.
27148	OperationType string `json:"operationType,omitempty"`
27149
27150	// Progress: [Output Only] An optional progress indicator that ranges
27151	// from 0 to 100. There is no requirement that this be linear or support
27152	// any granularity of operations. This should not be used to guess when
27153	// the operation will be complete. This number should monotonically
27154	// increase as the operation progresses.
27155	Progress int64 `json:"progress,omitempty"`
27156
27157	// Region: [Output Only] The URL of the region where the operation
27158	// resides. Only applicable when performing regional operations.
27159	Region string `json:"region,omitempty"`
27160
27161	// SelfLink: [Output Only] Server-defined URL for the resource.
27162	SelfLink string `json:"selfLink,omitempty"`
27163
27164	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
27165	// with the resource id.
27166	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
27167
27168	// StartTime: [Output Only] The time that this operation was started by
27169	// the server. This value is in RFC3339 text format.
27170	StartTime string `json:"startTime,omitempty"`
27171
27172	// Status: [Output Only] The status of the operation, which can be one
27173	// of the following: PENDING, RUNNING, or DONE.
27174	//
27175	// Possible values:
27176	//   "DONE"
27177	//   "PENDING"
27178	//   "RUNNING"
27179	Status string `json:"status,omitempty"`
27180
27181	// StatusMessage: [Output Only] An optional textual description of the
27182	// current status of the operation.
27183	StatusMessage string `json:"statusMessage,omitempty"`
27184
27185	// TargetId: [Output Only] The unique target ID, which identifies a
27186	// specific incarnation of the target resource.
27187	TargetId uint64 `json:"targetId,omitempty,string"`
27188
27189	// TargetLink: [Output Only] The URL of the resource that the operation
27190	// modifies. For operations related to creating a snapshot, this points
27191	// to the persistent disk that the snapshot was created from.
27192	TargetLink string `json:"targetLink,omitempty"`
27193
27194	// User: [Output Only] User who requested the operation, for example:
27195	// user@example.com.
27196	User string `json:"user,omitempty"`
27197
27198	// Warnings: [Output Only] If warning messages are generated during
27199	// processing of the operation, this field will be populated.
27200	Warnings []*OperationWarnings `json:"warnings,omitempty"`
27201
27202	// Zone: [Output Only] The URL of the zone where the operation resides.
27203	// Only applicable when performing per-zone operations.
27204	Zone string `json:"zone,omitempty"`
27205
27206	// ServerResponse contains the HTTP response code and headers from the
27207	// server.
27208	googleapi.ServerResponse `json:"-"`
27209
27210	// ForceSendFields is a list of field names (e.g. "ClientOperationId")
27211	// to unconditionally include in API requests. By default, fields with
27212	// empty values are omitted from API requests. However, any non-pointer,
27213	// non-interface field appearing in ForceSendFields will be sent to the
27214	// server regardless of whether the field is empty or not. This may be
27215	// used to include empty fields in Patch requests.
27216	ForceSendFields []string `json:"-"`
27217
27218	// NullFields is a list of field names (e.g. "ClientOperationId") to
27219	// include in API requests with the JSON null value. By default, fields
27220	// with empty values are omitted from API requests. However, any field
27221	// with an empty value appearing in NullFields will be sent to the
27222	// server as null. It is an error if a field in this list has a
27223	// non-empty value. This may be used to include null fields in Patch
27224	// requests.
27225	NullFields []string `json:"-"`
27226}
27227
27228func (s *Operation) MarshalJSON() ([]byte, error) {
27229	type NoMethod Operation
27230	raw := NoMethod(*s)
27231	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27232}
27233
27234// OperationError: [Output Only] If errors are generated during
27235// processing of the operation, this field will be populated.
27236type OperationError struct {
27237	// Errors: [Output Only] The array of errors encountered while
27238	// processing this operation.
27239	Errors []*OperationErrorErrors `json:"errors,omitempty"`
27240
27241	// ForceSendFields is a list of field names (e.g. "Errors") to
27242	// unconditionally include in API requests. By default, fields with
27243	// empty values are omitted from API requests. However, any non-pointer,
27244	// non-interface field appearing in ForceSendFields will be sent to the
27245	// server regardless of whether the field is empty or not. This may be
27246	// used to include empty fields in Patch requests.
27247	ForceSendFields []string `json:"-"`
27248
27249	// NullFields is a list of field names (e.g. "Errors") to include in API
27250	// requests with the JSON null value. By default, fields with empty
27251	// values are omitted from API requests. However, any field with an
27252	// empty value appearing in NullFields will be sent to the server as
27253	// null. It is an error if a field in this list has a non-empty value.
27254	// This may be used to include null fields in Patch requests.
27255	NullFields []string `json:"-"`
27256}
27257
27258func (s *OperationError) MarshalJSON() ([]byte, error) {
27259	type NoMethod OperationError
27260	raw := NoMethod(*s)
27261	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27262}
27263
27264type OperationErrorErrors struct {
27265	// Code: [Output Only] The error type identifier for this error.
27266	Code string `json:"code,omitempty"`
27267
27268	// Location: [Output Only] Indicates the field in the request that
27269	// caused the error. This property is optional.
27270	Location string `json:"location,omitempty"`
27271
27272	// Message: [Output Only] An optional, human-readable error message.
27273	Message string `json:"message,omitempty"`
27274
27275	// ForceSendFields is a list of field names (e.g. "Code") to
27276	// unconditionally include in API requests. By default, fields with
27277	// empty values are omitted from API requests. However, any non-pointer,
27278	// non-interface field appearing in ForceSendFields will be sent to the
27279	// server regardless of whether the field is empty or not. This may be
27280	// used to include empty fields in Patch requests.
27281	ForceSendFields []string `json:"-"`
27282
27283	// NullFields is a list of field names (e.g. "Code") to include in API
27284	// requests with the JSON null value. By default, fields with empty
27285	// values are omitted from API requests. However, any field with an
27286	// empty value appearing in NullFields will be sent to the server as
27287	// null. It is an error if a field in this list has a non-empty value.
27288	// This may be used to include null fields in Patch requests.
27289	NullFields []string `json:"-"`
27290}
27291
27292func (s *OperationErrorErrors) MarshalJSON() ([]byte, error) {
27293	type NoMethod OperationErrorErrors
27294	raw := NoMethod(*s)
27295	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27296}
27297
27298type OperationWarnings struct {
27299	// Code: [Output Only] A warning code, if applicable. For example,
27300	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
27301	// the response.
27302	//
27303	// Possible values:
27304	//   "CLEANUP_FAILED"
27305	//   "DEPRECATED_RESOURCE_USED"
27306	//   "DEPRECATED_TYPE_USED"
27307	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
27308	//   "EXPERIMENTAL_TYPE_USED"
27309	//   "EXTERNAL_API_WARNING"
27310	//   "FIELD_VALUE_OVERRIDEN"
27311	//   "INJECTED_KERNELS_DEPRECATED"
27312	//   "MISSING_TYPE_DEPENDENCY"
27313	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
27314	//   "NEXT_HOP_CANNOT_IP_FORWARD"
27315	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
27316	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
27317	//   "NEXT_HOP_NOT_RUNNING"
27318	//   "NOT_CRITICAL_ERROR"
27319	//   "NO_RESULTS_ON_PAGE"
27320	//   "REQUIRED_TOS_AGREEMENT"
27321	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
27322	//   "RESOURCE_NOT_DELETED"
27323	//   "SCHEMA_VALIDATION_IGNORED"
27324	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
27325	//   "UNDECLARED_PROPERTIES"
27326	//   "UNREACHABLE"
27327	Code string `json:"code,omitempty"`
27328
27329	// Data: [Output Only] Metadata about this warning in key: value format.
27330	// For example:
27331	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
27332	Data []*OperationWarningsData `json:"data,omitempty"`
27333
27334	// Message: [Output Only] A human-readable description of the warning
27335	// code.
27336	Message string `json:"message,omitempty"`
27337
27338	// ForceSendFields is a list of field names (e.g. "Code") to
27339	// unconditionally include in API requests. By default, fields with
27340	// empty values are omitted from API requests. However, any non-pointer,
27341	// non-interface field appearing in ForceSendFields will be sent to the
27342	// server regardless of whether the field is empty or not. This may be
27343	// used to include empty fields in Patch requests.
27344	ForceSendFields []string `json:"-"`
27345
27346	// NullFields is a list of field names (e.g. "Code") to include in API
27347	// requests with the JSON null value. By default, fields with empty
27348	// values are omitted from API requests. However, any field with an
27349	// empty value appearing in NullFields will be sent to the server as
27350	// null. It is an error if a field in this list has a non-empty value.
27351	// This may be used to include null fields in Patch requests.
27352	NullFields []string `json:"-"`
27353}
27354
27355func (s *OperationWarnings) MarshalJSON() ([]byte, error) {
27356	type NoMethod OperationWarnings
27357	raw := NoMethod(*s)
27358	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27359}
27360
27361type OperationWarningsData struct {
27362	// Key: [Output Only] A key that provides more detail on the warning
27363	// being returned. For example, for warnings where there are no results
27364	// in a list request for a particular zone, this key might be scope and
27365	// the key value might be the zone name. Other examples might be a key
27366	// indicating a deprecated resource and a suggested replacement, or a
27367	// warning about invalid network settings (for example, if an instance
27368	// attempts to perform IP forwarding but is not enabled for IP
27369	// forwarding).
27370	Key string `json:"key,omitempty"`
27371
27372	// Value: [Output Only] A warning data value corresponding to the key.
27373	Value string `json:"value,omitempty"`
27374
27375	// ForceSendFields is a list of field names (e.g. "Key") to
27376	// unconditionally include in API requests. By default, fields with
27377	// empty values are omitted from API requests. However, any non-pointer,
27378	// non-interface field appearing in ForceSendFields will be sent to the
27379	// server regardless of whether the field is empty or not. This may be
27380	// used to include empty fields in Patch requests.
27381	ForceSendFields []string `json:"-"`
27382
27383	// NullFields is a list of field names (e.g. "Key") to include in API
27384	// requests with the JSON null value. By default, fields with empty
27385	// values are omitted from API requests. However, any field with an
27386	// empty value appearing in NullFields will be sent to the server as
27387	// null. It is an error if a field in this list has a non-empty value.
27388	// This may be used to include null fields in Patch requests.
27389	NullFields []string `json:"-"`
27390}
27391
27392func (s *OperationWarningsData) MarshalJSON() ([]byte, error) {
27393	type NoMethod OperationWarningsData
27394	raw := NoMethod(*s)
27395	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27396}
27397
27398type OperationAggregatedList struct {
27399	// Id: [Output Only] The unique identifier for the resource. This
27400	// identifier is defined by the server.
27401	Id string `json:"id,omitempty"`
27402
27403	// Items: [Output Only] A map of scoped operation lists.
27404	Items map[string]OperationsScopedList `json:"items,omitempty"`
27405
27406	// Kind: [Output Only] Type of resource. Always
27407	// compute#operationAggregatedList for aggregated lists of operations.
27408	Kind string `json:"kind,omitempty"`
27409
27410	// NextPageToken: [Output Only] This token allows you to get the next
27411	// page of results for list requests. If the number of results is larger
27412	// than maxResults, use the nextPageToken as a value for the query
27413	// parameter pageToken in the next list request. Subsequent list
27414	// requests will have their own nextPageToken to continue paging through
27415	// the results.
27416	NextPageToken string `json:"nextPageToken,omitempty"`
27417
27418	// SelfLink: [Output Only] Server-defined URL for this resource.
27419	SelfLink string `json:"selfLink,omitempty"`
27420
27421	// Warning: [Output Only] Informational warning message.
27422	Warning *OperationAggregatedListWarning `json:"warning,omitempty"`
27423
27424	// ServerResponse contains the HTTP response code and headers from the
27425	// server.
27426	googleapi.ServerResponse `json:"-"`
27427
27428	// ForceSendFields is a list of field names (e.g. "Id") to
27429	// unconditionally include in API requests. By default, fields with
27430	// empty values are omitted from API requests. However, any non-pointer,
27431	// non-interface field appearing in ForceSendFields will be sent to the
27432	// server regardless of whether the field is empty or not. This may be
27433	// used to include empty fields in Patch requests.
27434	ForceSendFields []string `json:"-"`
27435
27436	// NullFields is a list of field names (e.g. "Id") to include in API
27437	// requests with the JSON null value. By default, fields with empty
27438	// values are omitted from API requests. However, any field with an
27439	// empty value appearing in NullFields will be sent to the server as
27440	// null. It is an error if a field in this list has a non-empty value.
27441	// This may be used to include null fields in Patch requests.
27442	NullFields []string `json:"-"`
27443}
27444
27445func (s *OperationAggregatedList) MarshalJSON() ([]byte, error) {
27446	type NoMethod OperationAggregatedList
27447	raw := NoMethod(*s)
27448	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27449}
27450
27451// OperationAggregatedListWarning: [Output Only] Informational warning
27452// message.
27453type OperationAggregatedListWarning struct {
27454	// Code: [Output Only] A warning code, if applicable. For example,
27455	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
27456	// the response.
27457	//
27458	// Possible values:
27459	//   "CLEANUP_FAILED"
27460	//   "DEPRECATED_RESOURCE_USED"
27461	//   "DEPRECATED_TYPE_USED"
27462	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
27463	//   "EXPERIMENTAL_TYPE_USED"
27464	//   "EXTERNAL_API_WARNING"
27465	//   "FIELD_VALUE_OVERRIDEN"
27466	//   "INJECTED_KERNELS_DEPRECATED"
27467	//   "MISSING_TYPE_DEPENDENCY"
27468	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
27469	//   "NEXT_HOP_CANNOT_IP_FORWARD"
27470	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
27471	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
27472	//   "NEXT_HOP_NOT_RUNNING"
27473	//   "NOT_CRITICAL_ERROR"
27474	//   "NO_RESULTS_ON_PAGE"
27475	//   "REQUIRED_TOS_AGREEMENT"
27476	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
27477	//   "RESOURCE_NOT_DELETED"
27478	//   "SCHEMA_VALIDATION_IGNORED"
27479	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
27480	//   "UNDECLARED_PROPERTIES"
27481	//   "UNREACHABLE"
27482	Code string `json:"code,omitempty"`
27483
27484	// Data: [Output Only] Metadata about this warning in key: value format.
27485	// For example:
27486	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
27487	Data []*OperationAggregatedListWarningData `json:"data,omitempty"`
27488
27489	// Message: [Output Only] A human-readable description of the warning
27490	// code.
27491	Message string `json:"message,omitempty"`
27492
27493	// ForceSendFields is a list of field names (e.g. "Code") to
27494	// unconditionally include in API requests. By default, fields with
27495	// empty values are omitted from API requests. However, any non-pointer,
27496	// non-interface field appearing in ForceSendFields will be sent to the
27497	// server regardless of whether the field is empty or not. This may be
27498	// used to include empty fields in Patch requests.
27499	ForceSendFields []string `json:"-"`
27500
27501	// NullFields is a list of field names (e.g. "Code") to include in API
27502	// requests with the JSON null value. By default, fields with empty
27503	// values are omitted from API requests. However, any field with an
27504	// empty value appearing in NullFields will be sent to the server as
27505	// null. It is an error if a field in this list has a non-empty value.
27506	// This may be used to include null fields in Patch requests.
27507	NullFields []string `json:"-"`
27508}
27509
27510func (s *OperationAggregatedListWarning) MarshalJSON() ([]byte, error) {
27511	type NoMethod OperationAggregatedListWarning
27512	raw := NoMethod(*s)
27513	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27514}
27515
27516type OperationAggregatedListWarningData struct {
27517	// Key: [Output Only] A key that provides more detail on the warning
27518	// being returned. For example, for warnings where there are no results
27519	// in a list request for a particular zone, this key might be scope and
27520	// the key value might be the zone name. Other examples might be a key
27521	// indicating a deprecated resource and a suggested replacement, or a
27522	// warning about invalid network settings (for example, if an instance
27523	// attempts to perform IP forwarding but is not enabled for IP
27524	// forwarding).
27525	Key string `json:"key,omitempty"`
27526
27527	// Value: [Output Only] A warning data value corresponding to the key.
27528	Value string `json:"value,omitempty"`
27529
27530	// ForceSendFields is a list of field names (e.g. "Key") to
27531	// unconditionally include in API requests. By default, fields with
27532	// empty values are omitted from API requests. However, any non-pointer,
27533	// non-interface field appearing in ForceSendFields will be sent to the
27534	// server regardless of whether the field is empty or not. This may be
27535	// used to include empty fields in Patch requests.
27536	ForceSendFields []string `json:"-"`
27537
27538	// NullFields is a list of field names (e.g. "Key") to include in API
27539	// requests with the JSON null value. By default, fields with empty
27540	// values are omitted from API requests. However, any field with an
27541	// empty value appearing in NullFields will be sent to the server as
27542	// null. It is an error if a field in this list has a non-empty value.
27543	// This may be used to include null fields in Patch requests.
27544	NullFields []string `json:"-"`
27545}
27546
27547func (s *OperationAggregatedListWarningData) MarshalJSON() ([]byte, error) {
27548	type NoMethod OperationAggregatedListWarningData
27549	raw := NoMethod(*s)
27550	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27551}
27552
27553// OperationList: Contains a list of Operation resources.
27554type OperationList struct {
27555	// Id: [Output Only] The unique identifier for the resource. This
27556	// identifier is defined by the server.
27557	Id string `json:"id,omitempty"`
27558
27559	// Items: [Output Only] A list of Operation resources.
27560	Items []*Operation `json:"items,omitempty"`
27561
27562	// Kind: [Output Only] Type of resource. Always compute#operations for
27563	// Operations resource.
27564	Kind string `json:"kind,omitempty"`
27565
27566	// NextPageToken: [Output Only] This token allows you to get the next
27567	// page of results for list requests. If the number of results is larger
27568	// than maxResults, use the nextPageToken as a value for the query
27569	// parameter pageToken in the next list request. Subsequent list
27570	// requests will have their own nextPageToken to continue paging through
27571	// the results.
27572	NextPageToken string `json:"nextPageToken,omitempty"`
27573
27574	// SelfLink: [Output Only] Server-defined URL for this resource.
27575	SelfLink string `json:"selfLink,omitempty"`
27576
27577	// Warning: [Output Only] Informational warning message.
27578	Warning *OperationListWarning `json:"warning,omitempty"`
27579
27580	// ServerResponse contains the HTTP response code and headers from the
27581	// server.
27582	googleapi.ServerResponse `json:"-"`
27583
27584	// ForceSendFields is a list of field names (e.g. "Id") to
27585	// unconditionally include in API requests. By default, fields with
27586	// empty values are omitted from API requests. However, any non-pointer,
27587	// non-interface field appearing in ForceSendFields will be sent to the
27588	// server regardless of whether the field is empty or not. This may be
27589	// used to include empty fields in Patch requests.
27590	ForceSendFields []string `json:"-"`
27591
27592	// NullFields is a list of field names (e.g. "Id") to include in API
27593	// requests with the JSON null value. By default, fields with empty
27594	// values are omitted from API requests. However, any field with an
27595	// empty value appearing in NullFields will be sent to the server as
27596	// null. It is an error if a field in this list has a non-empty value.
27597	// This may be used to include null fields in Patch requests.
27598	NullFields []string `json:"-"`
27599}
27600
27601func (s *OperationList) MarshalJSON() ([]byte, error) {
27602	type NoMethod OperationList
27603	raw := NoMethod(*s)
27604	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27605}
27606
27607// OperationListWarning: [Output Only] Informational warning message.
27608type OperationListWarning struct {
27609	// Code: [Output Only] A warning code, if applicable. For example,
27610	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
27611	// the response.
27612	//
27613	// Possible values:
27614	//   "CLEANUP_FAILED"
27615	//   "DEPRECATED_RESOURCE_USED"
27616	//   "DEPRECATED_TYPE_USED"
27617	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
27618	//   "EXPERIMENTAL_TYPE_USED"
27619	//   "EXTERNAL_API_WARNING"
27620	//   "FIELD_VALUE_OVERRIDEN"
27621	//   "INJECTED_KERNELS_DEPRECATED"
27622	//   "MISSING_TYPE_DEPENDENCY"
27623	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
27624	//   "NEXT_HOP_CANNOT_IP_FORWARD"
27625	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
27626	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
27627	//   "NEXT_HOP_NOT_RUNNING"
27628	//   "NOT_CRITICAL_ERROR"
27629	//   "NO_RESULTS_ON_PAGE"
27630	//   "REQUIRED_TOS_AGREEMENT"
27631	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
27632	//   "RESOURCE_NOT_DELETED"
27633	//   "SCHEMA_VALIDATION_IGNORED"
27634	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
27635	//   "UNDECLARED_PROPERTIES"
27636	//   "UNREACHABLE"
27637	Code string `json:"code,omitempty"`
27638
27639	// Data: [Output Only] Metadata about this warning in key: value format.
27640	// For example:
27641	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
27642	Data []*OperationListWarningData `json:"data,omitempty"`
27643
27644	// Message: [Output Only] A human-readable description of the warning
27645	// code.
27646	Message string `json:"message,omitempty"`
27647
27648	// ForceSendFields is a list of field names (e.g. "Code") to
27649	// unconditionally include in API requests. By default, fields with
27650	// empty values are omitted from API requests. However, any non-pointer,
27651	// non-interface field appearing in ForceSendFields will be sent to the
27652	// server regardless of whether the field is empty or not. This may be
27653	// used to include empty fields in Patch requests.
27654	ForceSendFields []string `json:"-"`
27655
27656	// NullFields is a list of field names (e.g. "Code") to include in API
27657	// requests with the JSON null value. By default, fields with empty
27658	// values are omitted from API requests. However, any field with an
27659	// empty value appearing in NullFields will be sent to the server as
27660	// null. It is an error if a field in this list has a non-empty value.
27661	// This may be used to include null fields in Patch requests.
27662	NullFields []string `json:"-"`
27663}
27664
27665func (s *OperationListWarning) MarshalJSON() ([]byte, error) {
27666	type NoMethod OperationListWarning
27667	raw := NoMethod(*s)
27668	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27669}
27670
27671type OperationListWarningData struct {
27672	// Key: [Output Only] A key that provides more detail on the warning
27673	// being returned. For example, for warnings where there are no results
27674	// in a list request for a particular zone, this key might be scope and
27675	// the key value might be the zone name. Other examples might be a key
27676	// indicating a deprecated resource and a suggested replacement, or a
27677	// warning about invalid network settings (for example, if an instance
27678	// attempts to perform IP forwarding but is not enabled for IP
27679	// forwarding).
27680	Key string `json:"key,omitempty"`
27681
27682	// Value: [Output Only] A warning data value corresponding to the key.
27683	Value string `json:"value,omitempty"`
27684
27685	// ForceSendFields is a list of field names (e.g. "Key") to
27686	// unconditionally include in API requests. By default, fields with
27687	// empty values are omitted from API requests. However, any non-pointer,
27688	// non-interface field appearing in ForceSendFields will be sent to the
27689	// server regardless of whether the field is empty or not. This may be
27690	// used to include empty fields in Patch requests.
27691	ForceSendFields []string `json:"-"`
27692
27693	// NullFields is a list of field names (e.g. "Key") to include in API
27694	// requests with the JSON null value. By default, fields with empty
27695	// values are omitted from API requests. However, any field with an
27696	// empty value appearing in NullFields will be sent to the server as
27697	// null. It is an error if a field in this list has a non-empty value.
27698	// This may be used to include null fields in Patch requests.
27699	NullFields []string `json:"-"`
27700}
27701
27702func (s *OperationListWarningData) MarshalJSON() ([]byte, error) {
27703	type NoMethod OperationListWarningData
27704	raw := NoMethod(*s)
27705	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27706}
27707
27708type OperationsScopedList struct {
27709	// Operations: [Output Only] A list of operations contained in this
27710	// scope.
27711	Operations []*Operation `json:"operations,omitempty"`
27712
27713	// Warning: [Output Only] Informational warning which replaces the list
27714	// of operations when the list is empty.
27715	Warning *OperationsScopedListWarning `json:"warning,omitempty"`
27716
27717	// ForceSendFields is a list of field names (e.g. "Operations") to
27718	// unconditionally include in API requests. By default, fields with
27719	// empty values are omitted from API requests. However, any non-pointer,
27720	// non-interface field appearing in ForceSendFields will be sent to the
27721	// server regardless of whether the field is empty or not. This may be
27722	// used to include empty fields in Patch requests.
27723	ForceSendFields []string `json:"-"`
27724
27725	// NullFields is a list of field names (e.g. "Operations") to include in
27726	// API requests with the JSON null value. By default, fields with empty
27727	// values are omitted from API requests. However, any field with an
27728	// empty value appearing in NullFields will be sent to the server as
27729	// null. It is an error if a field in this list has a non-empty value.
27730	// This may be used to include null fields in Patch requests.
27731	NullFields []string `json:"-"`
27732}
27733
27734func (s *OperationsScopedList) MarshalJSON() ([]byte, error) {
27735	type NoMethod OperationsScopedList
27736	raw := NoMethod(*s)
27737	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27738}
27739
27740// OperationsScopedListWarning: [Output Only] Informational warning
27741// which replaces the list of operations when the list is empty.
27742type OperationsScopedListWarning struct {
27743	// Code: [Output Only] A warning code, if applicable. For example,
27744	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
27745	// the response.
27746	//
27747	// Possible values:
27748	//   "CLEANUP_FAILED"
27749	//   "DEPRECATED_RESOURCE_USED"
27750	//   "DEPRECATED_TYPE_USED"
27751	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
27752	//   "EXPERIMENTAL_TYPE_USED"
27753	//   "EXTERNAL_API_WARNING"
27754	//   "FIELD_VALUE_OVERRIDEN"
27755	//   "INJECTED_KERNELS_DEPRECATED"
27756	//   "MISSING_TYPE_DEPENDENCY"
27757	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
27758	//   "NEXT_HOP_CANNOT_IP_FORWARD"
27759	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
27760	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
27761	//   "NEXT_HOP_NOT_RUNNING"
27762	//   "NOT_CRITICAL_ERROR"
27763	//   "NO_RESULTS_ON_PAGE"
27764	//   "REQUIRED_TOS_AGREEMENT"
27765	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
27766	//   "RESOURCE_NOT_DELETED"
27767	//   "SCHEMA_VALIDATION_IGNORED"
27768	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
27769	//   "UNDECLARED_PROPERTIES"
27770	//   "UNREACHABLE"
27771	Code string `json:"code,omitempty"`
27772
27773	// Data: [Output Only] Metadata about this warning in key: value format.
27774	// For example:
27775	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
27776	Data []*OperationsScopedListWarningData `json:"data,omitempty"`
27777
27778	// Message: [Output Only] A human-readable description of the warning
27779	// code.
27780	Message string `json:"message,omitempty"`
27781
27782	// ForceSendFields is a list of field names (e.g. "Code") to
27783	// unconditionally include in API requests. By default, fields with
27784	// empty values are omitted from API requests. However, any non-pointer,
27785	// non-interface field appearing in ForceSendFields will be sent to the
27786	// server regardless of whether the field is empty or not. This may be
27787	// used to include empty fields in Patch requests.
27788	ForceSendFields []string `json:"-"`
27789
27790	// NullFields is a list of field names (e.g. "Code") to include in API
27791	// requests with the JSON null value. By default, fields with empty
27792	// values are omitted from API requests. However, any field with an
27793	// empty value appearing in NullFields will be sent to the server as
27794	// null. It is an error if a field in this list has a non-empty value.
27795	// This may be used to include null fields in Patch requests.
27796	NullFields []string `json:"-"`
27797}
27798
27799func (s *OperationsScopedListWarning) MarshalJSON() ([]byte, error) {
27800	type NoMethod OperationsScopedListWarning
27801	raw := NoMethod(*s)
27802	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27803}
27804
27805type OperationsScopedListWarningData struct {
27806	// Key: [Output Only] A key that provides more detail on the warning
27807	// being returned. For example, for warnings where there are no results
27808	// in a list request for a particular zone, this key might be scope and
27809	// the key value might be the zone name. Other examples might be a key
27810	// indicating a deprecated resource and a suggested replacement, or a
27811	// warning about invalid network settings (for example, if an instance
27812	// attempts to perform IP forwarding but is not enabled for IP
27813	// forwarding).
27814	Key string `json:"key,omitempty"`
27815
27816	// Value: [Output Only] A warning data value corresponding to the key.
27817	Value string `json:"value,omitempty"`
27818
27819	// ForceSendFields is a list of field names (e.g. "Key") to
27820	// unconditionally include in API requests. By default, fields with
27821	// empty values are omitted from API requests. However, any non-pointer,
27822	// non-interface field appearing in ForceSendFields will be sent to the
27823	// server regardless of whether the field is empty or not. This may be
27824	// used to include empty fields in Patch requests.
27825	ForceSendFields []string `json:"-"`
27826
27827	// NullFields is a list of field names (e.g. "Key") to include in API
27828	// requests with the JSON null value. By default, fields with empty
27829	// values are omitted from API requests. However, any field with an
27830	// empty value appearing in NullFields will be sent to the server as
27831	// null. It is an error if a field in this list has a non-empty value.
27832	// This may be used to include null fields in Patch requests.
27833	NullFields []string `json:"-"`
27834}
27835
27836func (s *OperationsScopedListWarningData) MarshalJSON() ([]byte, error) {
27837	type NoMethod OperationsScopedListWarningData
27838	raw := NoMethod(*s)
27839	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27840}
27841
27842type OrganizationSecurityPoliciesListAssociationsResponse struct {
27843	// Associations: A list of associations.
27844	Associations []*SecurityPolicyAssociation `json:"associations,omitempty"`
27845
27846	// Kind: [Output Only] Type of securityPolicy associations. Always
27847	// compute#organizationSecurityPoliciesListAssociations for lists of
27848	// securityPolicy associations.
27849	Kind string `json:"kind,omitempty"`
27850
27851	// ServerResponse contains the HTTP response code and headers from the
27852	// server.
27853	googleapi.ServerResponse `json:"-"`
27854
27855	// ForceSendFields is a list of field names (e.g. "Associations") to
27856	// unconditionally include in API requests. By default, fields with
27857	// empty values are omitted from API requests. However, any non-pointer,
27858	// non-interface field appearing in ForceSendFields will be sent to the
27859	// server regardless of whether the field is empty or not. This may be
27860	// used to include empty fields in Patch requests.
27861	ForceSendFields []string `json:"-"`
27862
27863	// NullFields is a list of field names (e.g. "Associations") to include
27864	// in API requests with the JSON null value. By default, fields with
27865	// empty values are omitted from API requests. However, any field with
27866	// an empty value appearing in NullFields will be sent to the server as
27867	// null. It is an error if a field in this list has a non-empty value.
27868	// This may be used to include null fields in Patch requests.
27869	NullFields []string `json:"-"`
27870}
27871
27872func (s *OrganizationSecurityPoliciesListAssociationsResponse) MarshalJSON() ([]byte, error) {
27873	type NoMethod OrganizationSecurityPoliciesListAssociationsResponse
27874	raw := NoMethod(*s)
27875	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27876}
27877
27878// OriginAuthenticationMethod: Configuration for the origin
27879// authentication method.
27880type OriginAuthenticationMethod struct {
27881	Jwt *Jwt `json:"jwt,omitempty"`
27882
27883	// ForceSendFields is a list of field names (e.g. "Jwt") to
27884	// unconditionally include in API requests. By default, fields with
27885	// empty values are omitted from API requests. However, any non-pointer,
27886	// non-interface field appearing in ForceSendFields will be sent to the
27887	// server regardless of whether the field is empty or not. This may be
27888	// used to include empty fields in Patch requests.
27889	ForceSendFields []string `json:"-"`
27890
27891	// NullFields is a list of field names (e.g. "Jwt") to include in API
27892	// requests with the JSON null value. By default, fields with empty
27893	// values are omitted from API requests. However, any field with an
27894	// empty value appearing in NullFields will be sent to the server as
27895	// null. It is an error if a field in this list has a non-empty value.
27896	// This may be used to include null fields in Patch requests.
27897	NullFields []string `json:"-"`
27898}
27899
27900func (s *OriginAuthenticationMethod) MarshalJSON() ([]byte, error) {
27901	type NoMethod OriginAuthenticationMethod
27902	raw := NoMethod(*s)
27903	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27904}
27905
27906// OutlierDetection: Settings controlling the eviction of unhealthy
27907// hosts from the load balancing pool for the backend service.
27908type OutlierDetection struct {
27909	// BaseEjectionTime: The base time that a host is ejected for. The real
27910	// ejection time is equal to the base ejection time multiplied by the
27911	// number of times the host has been ejected. Defaults to 30000ms or
27912	// 30s.
27913	BaseEjectionTime *Duration `json:"baseEjectionTime,omitempty"`
27914
27915	// ConsecutiveErrors: Number of errors before a host is ejected from the
27916	// connection pool. When the backend host is accessed over HTTP, a 5xx
27917	// return code qualifies as an error. Defaults to 5.
27918	ConsecutiveErrors int64 `json:"consecutiveErrors,omitempty"`
27919
27920	// ConsecutiveGatewayFailure: The number of consecutive gateway failures
27921	// (502, 503, 504 status or connection errors that are mapped to one of
27922	// those status codes) before a consecutive gateway failure ejection
27923	// occurs. Defaults to 3.
27924	ConsecutiveGatewayFailure int64 `json:"consecutiveGatewayFailure,omitempty"`
27925
27926	// EnforcingConsecutiveErrors: The percentage chance that a host will be
27927	// actually ejected when an outlier status is detected through
27928	// consecutive 5xx. This setting can be used to disable ejection or to
27929	// ramp it up slowly. Defaults to 0.
27930	EnforcingConsecutiveErrors int64 `json:"enforcingConsecutiveErrors,omitempty"`
27931
27932	// EnforcingConsecutiveGatewayFailure: The percentage chance that a host
27933	// will be actually ejected when an outlier status is detected through
27934	// consecutive gateway failures. This setting can be used to disable
27935	// ejection or to ramp it up slowly. Defaults to 100.
27936	EnforcingConsecutiveGatewayFailure int64 `json:"enforcingConsecutiveGatewayFailure,omitempty"`
27937
27938	// EnforcingSuccessRate: The percentage chance that a host will be
27939	// actually ejected when an outlier status is detected through success
27940	// rate statistics. This setting can be used to disable ejection or to
27941	// ramp it up slowly. Defaults to 100.
27942	EnforcingSuccessRate int64 `json:"enforcingSuccessRate,omitempty"`
27943
27944	// Interval: Time interval between ejection analysis sweeps. This can
27945	// result in both new ejections as well as hosts being returned to
27946	// service. Defaults to 1 second.
27947	Interval *Duration `json:"interval,omitempty"`
27948
27949	// MaxEjectionPercent: Maximum percentage of hosts in the load balancing
27950	// pool for the backend service that can be ejected. Defaults to 50%.
27951	MaxEjectionPercent int64 `json:"maxEjectionPercent,omitempty"`
27952
27953	// SuccessRateMinimumHosts: The number of hosts in a cluster that must
27954	// have enough request volume to detect success rate outliers. If the
27955	// number of hosts is less than this setting, outlier detection via
27956	// success rate statistics is not performed for any host in the cluster.
27957	// Defaults to 5.
27958	SuccessRateMinimumHosts int64 `json:"successRateMinimumHosts,omitempty"`
27959
27960	// SuccessRateRequestVolume: The minimum number of total requests that
27961	// must be collected in one interval (as defined by the interval
27962	// duration above) to include this host in success rate based outlier
27963	// detection. If the volume is lower than this setting, outlier
27964	// detection via success rate statistics is not performed for that host.
27965	// Defaults to 100.
27966	SuccessRateRequestVolume int64 `json:"successRateRequestVolume,omitempty"`
27967
27968	// SuccessRateStdevFactor: This factor is used to determine the ejection
27969	// threshold for success rate outlier ejection. The ejection threshold
27970	// is the difference between the mean success rate, and the product of
27971	// this factor and the standard deviation of the mean success rate: mean
27972	// - (stdev * success_rate_stdev_factor). This factor is divided by a
27973	// thousand to get a double. That is, if the desired factor is 1.9, the
27974	// runtime value should be 1900. Defaults to 1900.
27975	SuccessRateStdevFactor int64 `json:"successRateStdevFactor,omitempty"`
27976
27977	// ForceSendFields is a list of field names (e.g. "BaseEjectionTime") to
27978	// unconditionally include in API requests. By default, fields with
27979	// empty values are omitted from API requests. However, any non-pointer,
27980	// non-interface field appearing in ForceSendFields will be sent to the
27981	// server regardless of whether the field is empty or not. This may be
27982	// used to include empty fields in Patch requests.
27983	ForceSendFields []string `json:"-"`
27984
27985	// NullFields is a list of field names (e.g. "BaseEjectionTime") to
27986	// include in API requests with the JSON null value. By default, fields
27987	// with empty values are omitted from API requests. However, any field
27988	// with an empty value appearing in NullFields will be sent to the
27989	// server as null. It is an error if a field in this list has a
27990	// non-empty value. This may be used to include null fields in Patch
27991	// requests.
27992	NullFields []string `json:"-"`
27993}
27994
27995func (s *OutlierDetection) MarshalJSON() ([]byte, error) {
27996	type NoMethod OutlierDetection
27997	raw := NoMethod(*s)
27998	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27999}
28000
28001// PacketIntervals: Next free: 7
28002type PacketIntervals struct {
28003	// AvgMs: Average observed inter-packet interval in milliseconds.
28004	AvgMs int64 `json:"avgMs,omitempty,string"`
28005
28006	// Duration: From how long ago in the past these intervals were
28007	// observed.
28008	//
28009	// Possible values:
28010	//   "DURATION_UNSPECIFIED"
28011	//   "HOUR"
28012	//   "MAX"
28013	//   "MINUTE"
28014	Duration string `json:"duration,omitempty"`
28015
28016	// MaxMs: Maximum observed inter-packet interval in milliseconds.
28017	MaxMs int64 `json:"maxMs,omitempty,string"`
28018
28019	// MinMs: Minimum observed inter-packet interval in milliseconds.
28020	MinMs int64 `json:"minMs,omitempty,string"`
28021
28022	// NumIntervals: Number of inter-packet intervals from which these
28023	// statistics were derived.
28024	NumIntervals int64 `json:"numIntervals,omitempty,string"`
28025
28026	// Type: The type of packets for which inter-packet intervals were
28027	// computed.
28028	//
28029	// Possible values:
28030	//   "LOOPBACK"
28031	//   "RECEIVE"
28032	//   "TRANSMIT"
28033	//   "TYPE_UNSPECIFIED"
28034	Type string `json:"type,omitempty"`
28035
28036	// ForceSendFields is a list of field names (e.g. "AvgMs") to
28037	// unconditionally include in API requests. By default, fields with
28038	// empty values are omitted from API requests. However, any non-pointer,
28039	// non-interface field appearing in ForceSendFields will be sent to the
28040	// server regardless of whether the field is empty or not. This may be
28041	// used to include empty fields in Patch requests.
28042	ForceSendFields []string `json:"-"`
28043
28044	// NullFields is a list of field names (e.g. "AvgMs") to include in API
28045	// requests with the JSON null value. By default, fields with empty
28046	// values are omitted from API requests. However, any field with an
28047	// empty value appearing in NullFields will be sent to the server as
28048	// null. It is an error if a field in this list has a non-empty value.
28049	// This may be used to include null fields in Patch requests.
28050	NullFields []string `json:"-"`
28051}
28052
28053func (s *PacketIntervals) MarshalJSON() ([]byte, error) {
28054	type NoMethod PacketIntervals
28055	raw := NoMethod(*s)
28056	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28057}
28058
28059// PacketMirroring: Represents a PacketMirroring resource.
28060type PacketMirroring struct {
28061	// CollectorIlb: The Forwarding Rule resource of type
28062	// loadBalancingScheme=INTERNAL that will be used as collector for
28063	// mirrored traffic. The specified forwarding rule must have
28064	// isMirroringCollector set to true.
28065	CollectorIlb *PacketMirroringForwardingRuleInfo `json:"collectorIlb,omitempty"`
28066
28067	// Collectors: PacketMirroring collectorInfos. Each collectorInfo
28068	// specifies a set of collector VM instances, preferably in the same
28069	// zone as the mirrored VM(s)
28070	Collectors *PacketMirroringCollectorInfo `json:"collectors,omitempty"`
28071
28072	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
28073	// format.
28074	CreationTimestamp string `json:"creationTimestamp,omitempty"`
28075
28076	// Description: An optional description of this resource. Provide this
28077	// property when you create the resource.
28078	Description string `json:"description,omitempty"`
28079
28080	// Enable: Indicates whether or not this packet mirroring takes effect.
28081	// If set to FALSE, this packet mirroring policy will not be enforced on
28082	// the network.
28083	//
28084	// The default is TRUE.
28085	//
28086	// Possible values:
28087	//   "FALSE"
28088	//   "TRUE"
28089	Enable string `json:"enable,omitempty"`
28090
28091	// Filter: Filter for mirrored traffic. If unspecified, all traffic is
28092	// mirrored.
28093	Filter *PacketMirroringFilter `json:"filter,omitempty"`
28094
28095	// Id: [Output Only] The unique identifier for the resource. This
28096	// identifier is defined by the server.
28097	Id uint64 `json:"id,omitempty,string"`
28098
28099	// Kind: [Output Only] Type of the resource. Always
28100	// compute#packetMirroring for packet mirrorings.
28101	Kind string `json:"kind,omitempty"`
28102
28103	// MirroredResources: PacketMirroring mirroredResourceInfos.
28104	// MirroredResourceInfo specifies a set of mirrored VM instances,
28105	// subnetworks and/or tags for which traffic from/to all VM instances
28106	// will be mirrored.
28107	MirroredResources *PacketMirroringMirroredResourceInfo `json:"mirroredResources,omitempty"`
28108
28109	// Name: Name of the resource; provided by the client when the resource
28110	// is created. The name must be 1-63 characters long, and comply with
28111	// RFC1035. Specifically, the name must be 1-63 characters long and
28112	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
28113	// the first character must be a lowercase letter, and all following
28114	// characters must be a dash, lowercase letter, or digit, except the
28115	// last character, which cannot be a dash.
28116	Name string `json:"name,omitempty"`
28117
28118	// Network: Specifies the mirrored VPC network. Only packets in this
28119	// network will be mirrored. All mirrored VMs should have a NIC in the
28120	// given network. All mirrored subnetworks should belong to the given
28121	// network.
28122	Network *PacketMirroringNetworkInfo `json:"network,omitempty"`
28123
28124	// PacketMatchers: PacketMirroring packetMatchers. Each packetMatcher
28125	// specifies a CIRD filter that will apply to the source or destination
28126	// IP in the IP header for the mirrored VM traffic.
28127	PacketMatchers []*PacketMirroringPacketMatcher `json:"packetMatchers,omitempty"`
28128
28129	// Priority: The priority of applying this configuration. Priority is
28130	// used to break ties in cases where there is more than one matching
28131	// rule. In the case of two rules that apply for a given Instance, the
28132	// one with the lowest-numbered priority value wins.
28133	//
28134	// Default value is 1000. Valid range is 0 through 65535.
28135	Priority int64 `json:"priority,omitempty"`
28136
28137	// Region: [Output Only] URI of the region where the packetMirroring
28138	// resides.
28139	Region string `json:"region,omitempty"`
28140
28141	// SelfLink: [Output Only] Server-defined URL for the resource.
28142	SelfLink string `json:"selfLink,omitempty"`
28143
28144	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
28145	// with the resource id.
28146	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
28147
28148	// ServerResponse contains the HTTP response code and headers from the
28149	// server.
28150	googleapi.ServerResponse `json:"-"`
28151
28152	// ForceSendFields is a list of field names (e.g. "CollectorIlb") to
28153	// unconditionally include in API requests. By default, fields with
28154	// empty values are omitted from API requests. However, any non-pointer,
28155	// non-interface field appearing in ForceSendFields will be sent to the
28156	// server regardless of whether the field is empty or not. This may be
28157	// used to include empty fields in Patch requests.
28158	ForceSendFields []string `json:"-"`
28159
28160	// NullFields is a list of field names (e.g. "CollectorIlb") to include
28161	// in API requests with the JSON null value. By default, fields with
28162	// empty values are omitted from API requests. However, any field with
28163	// an empty value appearing in NullFields will be sent to the server as
28164	// null. It is an error if a field in this list has a non-empty value.
28165	// This may be used to include null fields in Patch requests.
28166	NullFields []string `json:"-"`
28167}
28168
28169func (s *PacketMirroring) MarshalJSON() ([]byte, error) {
28170	type NoMethod PacketMirroring
28171	raw := NoMethod(*s)
28172	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28173}
28174
28175// PacketMirroringAggregatedList: Contains a list of packetMirrorings.
28176type PacketMirroringAggregatedList struct {
28177	// Id: [Output Only] Unique identifier for the resource; defined by the
28178	// server.
28179	Id string `json:"id,omitempty"`
28180
28181	// Items: A list of PacketMirroring resources.
28182	Items map[string]PacketMirroringsScopedList `json:"items,omitempty"`
28183
28184	// Kind: Type of resource.
28185	Kind string `json:"kind,omitempty"`
28186
28187	// NextPageToken: [Output Only] This token allows you to get the next
28188	// page of results for list requests. If the number of results is larger
28189	// than maxResults, use the nextPageToken as a value for the query
28190	// parameter pageToken in the next list request. Subsequent list
28191	// requests will have their own nextPageToken to continue paging through
28192	// the results.
28193	NextPageToken string `json:"nextPageToken,omitempty"`
28194
28195	// SelfLink: [Output Only] Server-defined URL for this resource.
28196	SelfLink string `json:"selfLink,omitempty"`
28197
28198	// Warning: [Output Only] Informational warning message.
28199	Warning *PacketMirroringAggregatedListWarning `json:"warning,omitempty"`
28200
28201	// ServerResponse contains the HTTP response code and headers from the
28202	// server.
28203	googleapi.ServerResponse `json:"-"`
28204
28205	// ForceSendFields is a list of field names (e.g. "Id") to
28206	// unconditionally include in API requests. By default, fields with
28207	// empty values are omitted from API requests. However, any non-pointer,
28208	// non-interface field appearing in ForceSendFields will be sent to the
28209	// server regardless of whether the field is empty or not. This may be
28210	// used to include empty fields in Patch requests.
28211	ForceSendFields []string `json:"-"`
28212
28213	// NullFields is a list of field names (e.g. "Id") to include in API
28214	// requests with the JSON null value. By default, fields with empty
28215	// values are omitted from API requests. However, any field with an
28216	// empty value appearing in NullFields will be sent to the server as
28217	// null. It is an error if a field in this list has a non-empty value.
28218	// This may be used to include null fields in Patch requests.
28219	NullFields []string `json:"-"`
28220}
28221
28222func (s *PacketMirroringAggregatedList) MarshalJSON() ([]byte, error) {
28223	type NoMethod PacketMirroringAggregatedList
28224	raw := NoMethod(*s)
28225	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28226}
28227
28228// PacketMirroringAggregatedListWarning: [Output Only] Informational
28229// warning message.
28230type PacketMirroringAggregatedListWarning struct {
28231	// Code: [Output Only] A warning code, if applicable. For example,
28232	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
28233	// the response.
28234	//
28235	// Possible values:
28236	//   "CLEANUP_FAILED"
28237	//   "DEPRECATED_RESOURCE_USED"
28238	//   "DEPRECATED_TYPE_USED"
28239	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
28240	//   "EXPERIMENTAL_TYPE_USED"
28241	//   "EXTERNAL_API_WARNING"
28242	//   "FIELD_VALUE_OVERRIDEN"
28243	//   "INJECTED_KERNELS_DEPRECATED"
28244	//   "MISSING_TYPE_DEPENDENCY"
28245	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
28246	//   "NEXT_HOP_CANNOT_IP_FORWARD"
28247	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
28248	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
28249	//   "NEXT_HOP_NOT_RUNNING"
28250	//   "NOT_CRITICAL_ERROR"
28251	//   "NO_RESULTS_ON_PAGE"
28252	//   "REQUIRED_TOS_AGREEMENT"
28253	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
28254	//   "RESOURCE_NOT_DELETED"
28255	//   "SCHEMA_VALIDATION_IGNORED"
28256	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
28257	//   "UNDECLARED_PROPERTIES"
28258	//   "UNREACHABLE"
28259	Code string `json:"code,omitempty"`
28260
28261	// Data: [Output Only] Metadata about this warning in key: value format.
28262	// For example:
28263	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
28264	Data []*PacketMirroringAggregatedListWarningData `json:"data,omitempty"`
28265
28266	// Message: [Output Only] A human-readable description of the warning
28267	// code.
28268	Message string `json:"message,omitempty"`
28269
28270	// ForceSendFields is a list of field names (e.g. "Code") to
28271	// unconditionally include in API requests. By default, fields with
28272	// empty values are omitted from API requests. However, any non-pointer,
28273	// non-interface field appearing in ForceSendFields will be sent to the
28274	// server regardless of whether the field is empty or not. This may be
28275	// used to include empty fields in Patch requests.
28276	ForceSendFields []string `json:"-"`
28277
28278	// NullFields is a list of field names (e.g. "Code") to include in API
28279	// requests with the JSON null value. By default, fields with empty
28280	// values are omitted from API requests. However, any field with an
28281	// empty value appearing in NullFields will be sent to the server as
28282	// null. It is an error if a field in this list has a non-empty value.
28283	// This may be used to include null fields in Patch requests.
28284	NullFields []string `json:"-"`
28285}
28286
28287func (s *PacketMirroringAggregatedListWarning) MarshalJSON() ([]byte, error) {
28288	type NoMethod PacketMirroringAggregatedListWarning
28289	raw := NoMethod(*s)
28290	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28291}
28292
28293type PacketMirroringAggregatedListWarningData struct {
28294	// Key: [Output Only] A key that provides more detail on the warning
28295	// being returned. For example, for warnings where there are no results
28296	// in a list request for a particular zone, this key might be scope and
28297	// the key value might be the zone name. Other examples might be a key
28298	// indicating a deprecated resource and a suggested replacement, or a
28299	// warning about invalid network settings (for example, if an instance
28300	// attempts to perform IP forwarding but is not enabled for IP
28301	// forwarding).
28302	Key string `json:"key,omitempty"`
28303
28304	// Value: [Output Only] A warning data value corresponding to the key.
28305	Value string `json:"value,omitempty"`
28306
28307	// ForceSendFields is a list of field names (e.g. "Key") to
28308	// unconditionally include in API requests. By default, fields with
28309	// empty values are omitted from API requests. However, any non-pointer,
28310	// non-interface field appearing in ForceSendFields will be sent to the
28311	// server regardless of whether the field is empty or not. This may be
28312	// used to include empty fields in Patch requests.
28313	ForceSendFields []string `json:"-"`
28314
28315	// NullFields is a list of field names (e.g. "Key") to include in API
28316	// requests with the JSON null value. By default, fields with empty
28317	// values are omitted from API requests. However, any field with an
28318	// empty value appearing in NullFields will be sent to the server as
28319	// null. It is an error if a field in this list has a non-empty value.
28320	// This may be used to include null fields in Patch requests.
28321	NullFields []string `json:"-"`
28322}
28323
28324func (s *PacketMirroringAggregatedListWarningData) MarshalJSON() ([]byte, error) {
28325	type NoMethod PacketMirroringAggregatedListWarningData
28326	raw := NoMethod(*s)
28327	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28328}
28329
28330type PacketMirroringCollectorInfo struct {
28331	// Instances: A set of virtual machines configured as destination of the
28332	// mirrored traffic. They must live in zones contained in the same
28333	// region as this packetMirroring.
28334	Instances []*PacketMirroringCollectorInfoInstanceInfo `json:"instances,omitempty"`
28335
28336	// ForceSendFields is a list of field names (e.g. "Instances") to
28337	// unconditionally include in API requests. By default, fields with
28338	// empty values are omitted from API requests. However, any non-pointer,
28339	// non-interface field appearing in ForceSendFields will be sent to the
28340	// server regardless of whether the field is empty or not. This may be
28341	// used to include empty fields in Patch requests.
28342	ForceSendFields []string `json:"-"`
28343
28344	// NullFields is a list of field names (e.g. "Instances") to include in
28345	// API requests with the JSON null value. By default, fields with empty
28346	// values are omitted from API requests. However, any field with an
28347	// empty value appearing in NullFields will be sent to the server as
28348	// null. It is an error if a field in this list has a non-empty value.
28349	// This may be used to include null fields in Patch requests.
28350	NullFields []string `json:"-"`
28351}
28352
28353func (s *PacketMirroringCollectorInfo) MarshalJSON() ([]byte, error) {
28354	type NoMethod PacketMirroringCollectorInfo
28355	raw := NoMethod(*s)
28356	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28357}
28358
28359type PacketMirroringCollectorInfoInstanceInfo struct {
28360	// Url: Resource URL to the virtual machine instance configured as
28361	// destination of the mirrored traffic.
28362	Url string `json:"url,omitempty"`
28363
28364	// ForceSendFields is a list of field names (e.g. "Url") to
28365	// unconditionally include in API requests. By default, fields with
28366	// empty values are omitted from API requests. However, any non-pointer,
28367	// non-interface field appearing in ForceSendFields will be sent to the
28368	// server regardless of whether the field is empty or not. This may be
28369	// used to include empty fields in Patch requests.
28370	ForceSendFields []string `json:"-"`
28371
28372	// NullFields is a list of field names (e.g. "Url") to include in API
28373	// requests with the JSON null value. By default, fields with empty
28374	// values are omitted from API requests. However, any field with an
28375	// empty value appearing in NullFields will be sent to the server as
28376	// null. It is an error if a field in this list has a non-empty value.
28377	// This may be used to include null fields in Patch requests.
28378	NullFields []string `json:"-"`
28379}
28380
28381func (s *PacketMirroringCollectorInfoInstanceInfo) MarshalJSON() ([]byte, error) {
28382	type NoMethod PacketMirroringCollectorInfoInstanceInfo
28383	raw := NoMethod(*s)
28384	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28385}
28386
28387type PacketMirroringFilter struct {
28388	// IPProtocols: Protocols that apply as filter on mirrored traffic. If
28389	// no protocols are specified, all traffic that matches the specified
28390	// CIDR ranges is mirrored. If neither cidrRanges nor IPProtocols is
28391	// specified, all traffic is mirrored.
28392	IPProtocols []string `json:"IPProtocols,omitempty"`
28393
28394	// CidrRanges: IP CIDR ranges that apply as filter on the source
28395	// (ingress) or destination (egress) IP in the IP header. Only IPv4 is
28396	// supported. If no ranges are specified, all traffic that matches the
28397	// specified IPProtocols is mirrored. If neither cidrRanges nor
28398	// IPProtocols is specified, all traffic is mirrored.
28399	CidrRanges []string `json:"cidrRanges,omitempty"`
28400
28401	// ForceSendFields is a list of field names (e.g. "IPProtocols") to
28402	// unconditionally include in API requests. By default, fields with
28403	// empty values are omitted from API requests. However, any non-pointer,
28404	// non-interface field appearing in ForceSendFields will be sent to the
28405	// server regardless of whether the field is empty or not. This may be
28406	// used to include empty fields in Patch requests.
28407	ForceSendFields []string `json:"-"`
28408
28409	// NullFields is a list of field names (e.g. "IPProtocols") to include
28410	// in API requests with the JSON null value. By default, fields with
28411	// empty values are omitted from API requests. However, any field with
28412	// an empty value appearing in NullFields will be sent to the server as
28413	// null. It is an error if a field in this list has a non-empty value.
28414	// This may be used to include null fields in Patch requests.
28415	NullFields []string `json:"-"`
28416}
28417
28418func (s *PacketMirroringFilter) MarshalJSON() ([]byte, error) {
28419	type NoMethod PacketMirroringFilter
28420	raw := NoMethod(*s)
28421	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28422}
28423
28424type PacketMirroringForwardingRuleInfo struct {
28425	// CanonicalUrl: [Output Only] Unique identifier for the forwarding
28426	// rule; defined by the server.
28427	CanonicalUrl string `json:"canonicalUrl,omitempty"`
28428
28429	// Url: Resource URL to the forwarding rule representing the ILB
28430	// configured as destination of the mirrored traffic.
28431	Url string `json:"url,omitempty"`
28432
28433	// ForceSendFields is a list of field names (e.g. "CanonicalUrl") to
28434	// unconditionally include in API requests. By default, fields with
28435	// empty values are omitted from API requests. However, any non-pointer,
28436	// non-interface field appearing in ForceSendFields will be sent to the
28437	// server regardless of whether the field is empty or not. This may be
28438	// used to include empty fields in Patch requests.
28439	ForceSendFields []string `json:"-"`
28440
28441	// NullFields is a list of field names (e.g. "CanonicalUrl") to include
28442	// in API requests with the JSON null value. By default, fields with
28443	// empty values are omitted from API requests. However, any field with
28444	// an empty value appearing in NullFields will be sent to the server as
28445	// null. It is an error if a field in this list has a non-empty value.
28446	// This may be used to include null fields in Patch requests.
28447	NullFields []string `json:"-"`
28448}
28449
28450func (s *PacketMirroringForwardingRuleInfo) MarshalJSON() ([]byte, error) {
28451	type NoMethod PacketMirroringForwardingRuleInfo
28452	raw := NoMethod(*s)
28453	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28454}
28455
28456// PacketMirroringList: Contains a list of PacketMirroring resources.
28457type PacketMirroringList struct {
28458	// Id: [Output Only] Unique identifier for the resource; defined by the
28459	// server.
28460	Id string `json:"id,omitempty"`
28461
28462	// Items: A list of PacketMirroring resources.
28463	Items []*PacketMirroring `json:"items,omitempty"`
28464
28465	// Kind: [Output Only] Type of resource. Always compute#packetMirroring
28466	// for packetMirrorings.
28467	Kind string `json:"kind,omitempty"`
28468
28469	// NextPageToken: [Output Only] This token allows you to get the next
28470	// page of results for list requests. If the number of results is larger
28471	// than maxResults, use the nextPageToken as a value for the query
28472	// parameter pageToken in the next list request. Subsequent list
28473	// requests will have their own nextPageToken to continue paging through
28474	// the results.
28475	NextPageToken string `json:"nextPageToken,omitempty"`
28476
28477	// SelfLink: [Output Only] Server-defined URL for this resource.
28478	SelfLink string `json:"selfLink,omitempty"`
28479
28480	// Warning: [Output Only] Informational warning message.
28481	Warning *PacketMirroringListWarning `json:"warning,omitempty"`
28482
28483	// ServerResponse contains the HTTP response code and headers from the
28484	// server.
28485	googleapi.ServerResponse `json:"-"`
28486
28487	// ForceSendFields is a list of field names (e.g. "Id") to
28488	// unconditionally include in API requests. By default, fields with
28489	// empty values are omitted from API requests. However, any non-pointer,
28490	// non-interface field appearing in ForceSendFields will be sent to the
28491	// server regardless of whether the field is empty or not. This may be
28492	// used to include empty fields in Patch requests.
28493	ForceSendFields []string `json:"-"`
28494
28495	// NullFields is a list of field names (e.g. "Id") to include in API
28496	// requests with the JSON null value. By default, fields with empty
28497	// values are omitted from API requests. However, any field with an
28498	// empty value appearing in NullFields will be sent to the server as
28499	// null. It is an error if a field in this list has a non-empty value.
28500	// This may be used to include null fields in Patch requests.
28501	NullFields []string `json:"-"`
28502}
28503
28504func (s *PacketMirroringList) MarshalJSON() ([]byte, error) {
28505	type NoMethod PacketMirroringList
28506	raw := NoMethod(*s)
28507	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28508}
28509
28510// PacketMirroringListWarning: [Output Only] Informational warning
28511// message.
28512type PacketMirroringListWarning struct {
28513	// Code: [Output Only] A warning code, if applicable. For example,
28514	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
28515	// the response.
28516	//
28517	// Possible values:
28518	//   "CLEANUP_FAILED"
28519	//   "DEPRECATED_RESOURCE_USED"
28520	//   "DEPRECATED_TYPE_USED"
28521	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
28522	//   "EXPERIMENTAL_TYPE_USED"
28523	//   "EXTERNAL_API_WARNING"
28524	//   "FIELD_VALUE_OVERRIDEN"
28525	//   "INJECTED_KERNELS_DEPRECATED"
28526	//   "MISSING_TYPE_DEPENDENCY"
28527	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
28528	//   "NEXT_HOP_CANNOT_IP_FORWARD"
28529	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
28530	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
28531	//   "NEXT_HOP_NOT_RUNNING"
28532	//   "NOT_CRITICAL_ERROR"
28533	//   "NO_RESULTS_ON_PAGE"
28534	//   "REQUIRED_TOS_AGREEMENT"
28535	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
28536	//   "RESOURCE_NOT_DELETED"
28537	//   "SCHEMA_VALIDATION_IGNORED"
28538	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
28539	//   "UNDECLARED_PROPERTIES"
28540	//   "UNREACHABLE"
28541	Code string `json:"code,omitempty"`
28542
28543	// Data: [Output Only] Metadata about this warning in key: value format.
28544	// For example:
28545	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
28546	Data []*PacketMirroringListWarningData `json:"data,omitempty"`
28547
28548	// Message: [Output Only] A human-readable description of the warning
28549	// code.
28550	Message string `json:"message,omitempty"`
28551
28552	// ForceSendFields is a list of field names (e.g. "Code") to
28553	// unconditionally include in API requests. By default, fields with
28554	// empty values are omitted from API requests. However, any non-pointer,
28555	// non-interface field appearing in ForceSendFields will be sent to the
28556	// server regardless of whether the field is empty or not. This may be
28557	// used to include empty fields in Patch requests.
28558	ForceSendFields []string `json:"-"`
28559
28560	// NullFields is a list of field names (e.g. "Code") to include in API
28561	// requests with the JSON null value. By default, fields with empty
28562	// values are omitted from API requests. However, any field with an
28563	// empty value appearing in NullFields will be sent to the server as
28564	// null. It is an error if a field in this list has a non-empty value.
28565	// This may be used to include null fields in Patch requests.
28566	NullFields []string `json:"-"`
28567}
28568
28569func (s *PacketMirroringListWarning) MarshalJSON() ([]byte, error) {
28570	type NoMethod PacketMirroringListWarning
28571	raw := NoMethod(*s)
28572	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28573}
28574
28575type PacketMirroringListWarningData struct {
28576	// Key: [Output Only] A key that provides more detail on the warning
28577	// being returned. For example, for warnings where there are no results
28578	// in a list request for a particular zone, this key might be scope and
28579	// the key value might be the zone name. Other examples might be a key
28580	// indicating a deprecated resource and a suggested replacement, or a
28581	// warning about invalid network settings (for example, if an instance
28582	// attempts to perform IP forwarding but is not enabled for IP
28583	// forwarding).
28584	Key string `json:"key,omitempty"`
28585
28586	// Value: [Output Only] A warning data value corresponding to the key.
28587	Value string `json:"value,omitempty"`
28588
28589	// ForceSendFields is a list of field names (e.g. "Key") to
28590	// unconditionally include in API requests. By default, fields with
28591	// empty values are omitted from API requests. However, any non-pointer,
28592	// non-interface field appearing in ForceSendFields will be sent to the
28593	// server regardless of whether the field is empty or not. This may be
28594	// used to include empty fields in Patch requests.
28595	ForceSendFields []string `json:"-"`
28596
28597	// NullFields is a list of field names (e.g. "Key") to include in API
28598	// requests with the JSON null value. By default, fields with empty
28599	// values are omitted from API requests. However, any field with an
28600	// empty value appearing in NullFields will be sent to the server as
28601	// null. It is an error if a field in this list has a non-empty value.
28602	// This may be used to include null fields in Patch requests.
28603	NullFields []string `json:"-"`
28604}
28605
28606func (s *PacketMirroringListWarningData) MarshalJSON() ([]byte, error) {
28607	type NoMethod PacketMirroringListWarningData
28608	raw := NoMethod(*s)
28609	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28610}
28611
28612type PacketMirroringMirroredResourceInfo struct {
28613	// Instances: A set of virtual machine instances that are being
28614	// mirrored. They must live in zones contained in the same region as
28615	// this packetMirroring.
28616	//
28617	// Note that this config will apply only to those network interfaces of
28618	// the Instances that belong to the network specified in this
28619	// packetMirroring.
28620	//
28621	// You may specify a maximum of 50 Instances.
28622	Instances []*PacketMirroringMirroredResourceInfoInstanceInfo `json:"instances,omitempty"`
28623
28624	// Subnetworks: A set of subnetworks for which traffic from/to all VM
28625	// instances will be mirrored. They must live in the same region as this
28626	// packetMirroring.
28627	//
28628	// You may specify a maximum of 5 subnetworks.
28629	Subnetworks []*PacketMirroringMirroredResourceInfoSubnetInfo `json:"subnetworks,omitempty"`
28630
28631	// Tags: A set of mirrored tags. Traffic from/to all VM instances that
28632	// have one or more of these tags will be mirrored.
28633	Tags []string `json:"tags,omitempty"`
28634
28635	// ForceSendFields is a list of field names (e.g. "Instances") to
28636	// unconditionally include in API requests. By default, fields with
28637	// empty values are omitted from API requests. However, any non-pointer,
28638	// non-interface field appearing in ForceSendFields will be sent to the
28639	// server regardless of whether the field is empty or not. This may be
28640	// used to include empty fields in Patch requests.
28641	ForceSendFields []string `json:"-"`
28642
28643	// NullFields is a list of field names (e.g. "Instances") to include in
28644	// API requests with the JSON null value. By default, fields with empty
28645	// values are omitted from API requests. However, any field with an
28646	// empty value appearing in NullFields will be sent to the server as
28647	// null. It is an error if a field in this list has a non-empty value.
28648	// This may be used to include null fields in Patch requests.
28649	NullFields []string `json:"-"`
28650}
28651
28652func (s *PacketMirroringMirroredResourceInfo) MarshalJSON() ([]byte, error) {
28653	type NoMethod PacketMirroringMirroredResourceInfo
28654	raw := NoMethod(*s)
28655	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28656}
28657
28658type PacketMirroringMirroredResourceInfoInstanceInfo struct {
28659	// CanonicalUrl: [Output Only] Unique identifier for the instance;
28660	// defined by the server.
28661	CanonicalUrl string `json:"canonicalUrl,omitempty"`
28662
28663	// Url: Resource URL to the virtual machine instance which is being
28664	// mirrored.
28665	Url string `json:"url,omitempty"`
28666
28667	// ForceSendFields is a list of field names (e.g. "CanonicalUrl") to
28668	// unconditionally include in API requests. By default, fields with
28669	// empty values are omitted from API requests. However, any non-pointer,
28670	// non-interface field appearing in ForceSendFields will be sent to the
28671	// server regardless of whether the field is empty or not. This may be
28672	// used to include empty fields in Patch requests.
28673	ForceSendFields []string `json:"-"`
28674
28675	// NullFields is a list of field names (e.g. "CanonicalUrl") to include
28676	// in API requests with the JSON null value. By default, fields with
28677	// empty values are omitted from API requests. However, any field with
28678	// an empty value appearing in NullFields will be sent to the server as
28679	// null. It is an error if a field in this list has a non-empty value.
28680	// This may be used to include null fields in Patch requests.
28681	NullFields []string `json:"-"`
28682}
28683
28684func (s *PacketMirroringMirroredResourceInfoInstanceInfo) MarshalJSON() ([]byte, error) {
28685	type NoMethod PacketMirroringMirroredResourceInfoInstanceInfo
28686	raw := NoMethod(*s)
28687	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28688}
28689
28690type PacketMirroringMirroredResourceInfoSubnetInfo struct {
28691	// CanonicalUrl: [Output Only] Unique identifier for the subnetwork;
28692	// defined by the server.
28693	CanonicalUrl string `json:"canonicalUrl,omitempty"`
28694
28695	// Url: Resource URL to the subnetwork for which traffic from/to all VM
28696	// instances will be mirrored.
28697	Url string `json:"url,omitempty"`
28698
28699	// ForceSendFields is a list of field names (e.g. "CanonicalUrl") to
28700	// unconditionally include in API requests. By default, fields with
28701	// empty values are omitted from API requests. However, any non-pointer,
28702	// non-interface field appearing in ForceSendFields will be sent to the
28703	// server regardless of whether the field is empty or not. This may be
28704	// used to include empty fields in Patch requests.
28705	ForceSendFields []string `json:"-"`
28706
28707	// NullFields is a list of field names (e.g. "CanonicalUrl") to include
28708	// in API requests with the JSON null value. By default, fields with
28709	// empty values are omitted from API requests. However, any field with
28710	// an empty value appearing in NullFields will be sent to the server as
28711	// null. It is an error if a field in this list has a non-empty value.
28712	// This may be used to include null fields in Patch requests.
28713	NullFields []string `json:"-"`
28714}
28715
28716func (s *PacketMirroringMirroredResourceInfoSubnetInfo) MarshalJSON() ([]byte, error) {
28717	type NoMethod PacketMirroringMirroredResourceInfoSubnetInfo
28718	raw := NoMethod(*s)
28719	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28720}
28721
28722type PacketMirroringNetworkInfo struct {
28723	// CanonicalUrl: [Output Only] Unique identifier for the network;
28724	// defined by the server.
28725	CanonicalUrl string `json:"canonicalUrl,omitempty"`
28726
28727	// Url: URL of the network resource.
28728	Url string `json:"url,omitempty"`
28729
28730	// ForceSendFields is a list of field names (e.g. "CanonicalUrl") to
28731	// unconditionally include in API requests. By default, fields with
28732	// empty values are omitted from API requests. However, any non-pointer,
28733	// non-interface field appearing in ForceSendFields will be sent to the
28734	// server regardless of whether the field is empty or not. This may be
28735	// used to include empty fields in Patch requests.
28736	ForceSendFields []string `json:"-"`
28737
28738	// NullFields is a list of field names (e.g. "CanonicalUrl") to include
28739	// in API requests with the JSON null value. By default, fields with
28740	// empty values are omitted from API requests. However, any field with
28741	// an empty value appearing in NullFields will be sent to the server as
28742	// null. It is an error if a field in this list has a non-empty value.
28743	// This may be used to include null fields in Patch requests.
28744	NullFields []string `json:"-"`
28745}
28746
28747func (s *PacketMirroringNetworkInfo) MarshalJSON() ([]byte, error) {
28748	type NoMethod PacketMirroringNetworkInfo
28749	raw := NoMethod(*s)
28750	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28751}
28752
28753type PacketMirroringPacketMatcher struct {
28754	// CidrRange: IP CIDR range that applies as filter on the source or
28755	// destination IP in the IP header. Only IPv4 is supported.
28756	CidrRange string `json:"cidrRange,omitempty"`
28757
28758	// ForceSendFields is a list of field names (e.g. "CidrRange") 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. "CidrRange") to include in
28767	// API 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 *PacketMirroringPacketMatcher) MarshalJSON() ([]byte, error) {
28776	type NoMethod PacketMirroringPacketMatcher
28777	raw := NoMethod(*s)
28778	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28779}
28780
28781type PacketMirroringsScopedList struct {
28782	// PacketMirrorings: A list of packetMirrorings contained in this scope.
28783	PacketMirrorings []*PacketMirroring `json:"packetMirrorings,omitempty"`
28784
28785	// Warning: Informational warning which replaces the list of
28786	// packetMirrorings when the list is empty.
28787	Warning *PacketMirroringsScopedListWarning `json:"warning,omitempty"`
28788
28789	// ForceSendFields is a list of field names (e.g. "PacketMirrorings") to
28790	// unconditionally include in API requests. By default, fields with
28791	// empty values are omitted from API requests. However, any non-pointer,
28792	// non-interface field appearing in ForceSendFields will be sent to the
28793	// server regardless of whether the field is empty or not. This may be
28794	// used to include empty fields in Patch requests.
28795	ForceSendFields []string `json:"-"`
28796
28797	// NullFields is a list of field names (e.g. "PacketMirrorings") to
28798	// include in API requests with the JSON null value. By default, fields
28799	// with empty values are omitted from API requests. However, any field
28800	// with an empty value appearing in NullFields will be sent to the
28801	// server as null. It is an error if a field in this list has a
28802	// non-empty value. This may be used to include null fields in Patch
28803	// requests.
28804	NullFields []string `json:"-"`
28805}
28806
28807func (s *PacketMirroringsScopedList) MarshalJSON() ([]byte, error) {
28808	type NoMethod PacketMirroringsScopedList
28809	raw := NoMethod(*s)
28810	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28811}
28812
28813// PacketMirroringsScopedListWarning: Informational warning which
28814// replaces the list of packetMirrorings when the list is empty.
28815type PacketMirroringsScopedListWarning struct {
28816	// Code: [Output Only] A warning code, if applicable. For example,
28817	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
28818	// the response.
28819	//
28820	// Possible values:
28821	//   "CLEANUP_FAILED"
28822	//   "DEPRECATED_RESOURCE_USED"
28823	//   "DEPRECATED_TYPE_USED"
28824	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
28825	//   "EXPERIMENTAL_TYPE_USED"
28826	//   "EXTERNAL_API_WARNING"
28827	//   "FIELD_VALUE_OVERRIDEN"
28828	//   "INJECTED_KERNELS_DEPRECATED"
28829	//   "MISSING_TYPE_DEPENDENCY"
28830	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
28831	//   "NEXT_HOP_CANNOT_IP_FORWARD"
28832	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
28833	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
28834	//   "NEXT_HOP_NOT_RUNNING"
28835	//   "NOT_CRITICAL_ERROR"
28836	//   "NO_RESULTS_ON_PAGE"
28837	//   "REQUIRED_TOS_AGREEMENT"
28838	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
28839	//   "RESOURCE_NOT_DELETED"
28840	//   "SCHEMA_VALIDATION_IGNORED"
28841	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
28842	//   "UNDECLARED_PROPERTIES"
28843	//   "UNREACHABLE"
28844	Code string `json:"code,omitempty"`
28845
28846	// Data: [Output Only] Metadata about this warning in key: value format.
28847	// For example:
28848	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
28849	Data []*PacketMirroringsScopedListWarningData `json:"data,omitempty"`
28850
28851	// Message: [Output Only] A human-readable description of the warning
28852	// code.
28853	Message string `json:"message,omitempty"`
28854
28855	// ForceSendFields is a list of field names (e.g. "Code") to
28856	// unconditionally include in API requests. By default, fields with
28857	// empty values are omitted from API requests. However, any non-pointer,
28858	// non-interface field appearing in ForceSendFields will be sent to the
28859	// server regardless of whether the field is empty or not. This may be
28860	// used to include empty fields in Patch requests.
28861	ForceSendFields []string `json:"-"`
28862
28863	// NullFields is a list of field names (e.g. "Code") to include in API
28864	// requests with the JSON null value. By default, fields with empty
28865	// values are omitted from API requests. However, any field with an
28866	// empty value appearing in NullFields will be sent to the server as
28867	// null. It is an error if a field in this list has a non-empty value.
28868	// This may be used to include null fields in Patch requests.
28869	NullFields []string `json:"-"`
28870}
28871
28872func (s *PacketMirroringsScopedListWarning) MarshalJSON() ([]byte, error) {
28873	type NoMethod PacketMirroringsScopedListWarning
28874	raw := NoMethod(*s)
28875	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28876}
28877
28878type PacketMirroringsScopedListWarningData struct {
28879	// Key: [Output Only] A key that provides more detail on the warning
28880	// being returned. For example, for warnings where there are no results
28881	// in a list request for a particular zone, this key might be scope and
28882	// the key value might be the zone name. Other examples might be a key
28883	// indicating a deprecated resource and a suggested replacement, or a
28884	// warning about invalid network settings (for example, if an instance
28885	// attempts to perform IP forwarding but is not enabled for IP
28886	// forwarding).
28887	Key string `json:"key,omitempty"`
28888
28889	// Value: [Output Only] A warning data value corresponding to the key.
28890	Value string `json:"value,omitempty"`
28891
28892	// ForceSendFields is a list of field names (e.g. "Key") to
28893	// unconditionally include in API requests. By default, fields with
28894	// empty values are omitted from API requests. However, any non-pointer,
28895	// non-interface field appearing in ForceSendFields will be sent to the
28896	// server regardless of whether the field is empty or not. This may be
28897	// used to include empty fields in Patch requests.
28898	ForceSendFields []string `json:"-"`
28899
28900	// NullFields is a list of field names (e.g. "Key") to include in API
28901	// requests with the JSON null value. By default, fields with empty
28902	// values are omitted from API requests. However, any field with an
28903	// empty value appearing in NullFields will be sent to the server as
28904	// null. It is an error if a field in this list has a non-empty value.
28905	// This may be used to include null fields in Patch requests.
28906	NullFields []string `json:"-"`
28907}
28908
28909func (s *PacketMirroringsScopedListWarningData) MarshalJSON() ([]byte, error) {
28910	type NoMethod PacketMirroringsScopedListWarningData
28911	raw := NoMethod(*s)
28912	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28913}
28914
28915// PathMatcher: A matcher for the path portion of the URL. The
28916// BackendService from the longest-matched rule will serve the URL. If
28917// no rule was matched, the default service will be used.
28918type PathMatcher struct {
28919	// DefaultRouteAction: defaultRouteAction takes effect when none of the
28920	// pathRules or routeRules match. The load balancer performs advanced
28921	// routing actions like URL rewrites, header transformations, etc. prior
28922	// to forwarding the request to the selected backend. If
28923	// defaultRouteAction specifies any weightedBackendServices,
28924	// defaultService must not be set. Conversely if defaultService is set,
28925	// defaultRouteAction cannot contain any  weightedBackendServices.
28926	// Only one of defaultRouteAction or defaultUrlRedirect must be set.
28927	DefaultRouteAction *HttpRouteAction `json:"defaultRouteAction,omitempty"`
28928
28929	// DefaultService: The full or partial URL to the BackendService
28930	// resource. This will be used if none of the pathRules or routeRules
28931	// defined by this PathMatcher are matched. For example, the following
28932	// are all valid URLs to a BackendService resource:
28933	// -
28934	// https://www.googleapis.com/compute/v1/projects/project/global/backendServices/backendService
28935	// - compute/v1/projects/project/global/backendServices/backendService
28936	//
28937	// - global/backendServices/backendService  If defaultRouteAction is
28938	// additionally specified, advanced routing actions like URL Rewrites,
28939	// etc. take effect prior to sending the request to the backend.
28940	// However, if defaultService is specified, defaultRouteAction cannot
28941	// contain any weightedBackendServices. Conversely, if
28942	// defaultRouteAction specifies any weightedBackendServices,
28943	// defaultService must not be specified.
28944	// Only one of defaultService, defaultUrlRedirect  or
28945	// defaultRouteAction.weightedBackendService must be set.
28946	// Authorization requires one or more of the following Google IAM
28947	// permissions on the specified resource default_service:
28948	// - compute.backendBuckets.use
28949	// - compute.backendServices.use
28950	DefaultService string `json:"defaultService,omitempty"`
28951
28952	// DefaultUrlRedirect: When when none of the specified pathRules or
28953	// routeRules match, the request is redirected to a URL specified by
28954	// defaultUrlRedirect.
28955	// If defaultUrlRedirect is specified, defaultService or
28956	// defaultRouteAction must not be set.
28957	DefaultUrlRedirect *HttpRedirectAction `json:"defaultUrlRedirect,omitempty"`
28958
28959	// Description: An optional description of this resource. Provide this
28960	// property when you create the resource.
28961	Description string `json:"description,omitempty"`
28962
28963	// HeaderAction: Specifies changes to request and response headers that
28964	// need to take effect for the selected backendService.
28965	// HeaderAction specified here are applied after the matching
28966	// HttpRouteRule HeaderAction and before the HeaderAction in the UrlMap
28967	HeaderAction *HttpHeaderAction `json:"headerAction,omitempty"`
28968
28969	// Name: The name to which this PathMatcher is referred by the HostRule.
28970	Name string `json:"name,omitempty"`
28971
28972	// PathRules: The list of path rules. Use this list instead of
28973	// routeRules when routing based on simple path matching is all that's
28974	// required. The order by which path rules are specified does not
28975	// matter. Matches are always done on the longest-path-first basis.
28976	// For example: a pathRule with a path /a/b/c/* will match before /a/b/*
28977	// irrespective of the order in which those paths appear in this
28978	// list.
28979	// Within a given pathMatcher, only one of pathRules or routeRules must
28980	// be set.
28981	PathRules []*PathRule `json:"pathRules,omitempty"`
28982
28983	// RouteRules: The list of ordered HTTP route rules. Use this list
28984	// instead of pathRules when advanced route matching and routing actions
28985	// are desired. The order of specifying routeRules matters: the first
28986	// rule that matches will cause its specified routing action to take
28987	// effect.
28988	// Within a given pathMatcher, only one of pathRules or routeRules must
28989	// be set.
28990	// routeRules are not supported in UrlMaps intended for External Load
28991	// balancers.
28992	RouteRules []*HttpRouteRule `json:"routeRules,omitempty"`
28993
28994	// ForceSendFields is a list of field names (e.g. "DefaultRouteAction")
28995	// to unconditionally include in API requests. By default, fields with
28996	// empty values are omitted from API requests. However, any non-pointer,
28997	// non-interface field appearing in ForceSendFields will be sent to the
28998	// server regardless of whether the field is empty or not. This may be
28999	// used to include empty fields in Patch requests.
29000	ForceSendFields []string `json:"-"`
29001
29002	// NullFields is a list of field names (e.g. "DefaultRouteAction") to
29003	// include in API requests with the JSON null value. By default, fields
29004	// with empty values are omitted from API requests. However, any field
29005	// with an empty value appearing in NullFields will be sent to the
29006	// server as null. It is an error if a field in this list has a
29007	// non-empty value. This may be used to include null fields in Patch
29008	// requests.
29009	NullFields []string `json:"-"`
29010}
29011
29012func (s *PathMatcher) MarshalJSON() ([]byte, error) {
29013	type NoMethod PathMatcher
29014	raw := NoMethod(*s)
29015	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29016}
29017
29018// PathRule: A path-matching rule for a URL. If matched, will use the
29019// specified BackendService to handle the traffic arriving at this URL.
29020type PathRule struct {
29021	// Paths: The list of path patterns to match. Each must start with / and
29022	// the only place a * is allowed is at the end following a /. The string
29023	// fed to the path matcher does not include any text after the first ?
29024	// or #, and those chars are not allowed here.
29025	Paths []string `json:"paths,omitempty"`
29026
29027	// RouteAction: In response to a matching path, the load balancer
29028	// performs advanced routing actions like URL rewrites, header
29029	// transformations, etc. prior to forwarding the request to the selected
29030	// backend. If routeAction specifies any  weightedBackendServices,
29031	// service must not be set. Conversely if service is set, routeAction
29032	// cannot contain any  weightedBackendServices.
29033	// Only one of routeAction or urlRedirect must be set.
29034	RouteAction *HttpRouteAction `json:"routeAction,omitempty"`
29035
29036	// Service: The full or partial URL of the backend service resource to
29037	// which traffic is directed if this rule is matched. If routeAction is
29038	// additionally specified, advanced routing actions like URL Rewrites,
29039	// etc. take effect prior to sending the request to the backend.
29040	// However, if service is specified, routeAction cannot contain any
29041	// weightedBackendService s. Conversely, if routeAction specifies any
29042	// weightedBackendServices, service must not be specified.
29043	// Only one of urlRedirect, service or
29044	// routeAction.weightedBackendService must be set.
29045	Service string `json:"service,omitempty"`
29046
29047	// UrlRedirect: When a path pattern is matched, the request is
29048	// redirected to a URL specified by urlRedirect.
29049	// If urlRedirect is specified, service or routeAction must not be set.
29050	UrlRedirect *HttpRedirectAction `json:"urlRedirect,omitempty"`
29051
29052	// ForceSendFields is a list of field names (e.g. "Paths") to
29053	// unconditionally include in API requests. By default, fields with
29054	// empty values are omitted from API requests. However, any non-pointer,
29055	// non-interface field appearing in ForceSendFields will be sent to the
29056	// server regardless of whether the field is empty or not. This may be
29057	// used to include empty fields in Patch requests.
29058	ForceSendFields []string `json:"-"`
29059
29060	// NullFields is a list of field names (e.g. "Paths") to include in API
29061	// requests with the JSON null value. By default, fields with empty
29062	// values are omitted from API requests. However, any field with an
29063	// empty value appearing in NullFields will be sent to the server as
29064	// null. It is an error if a field in this list has a non-empty value.
29065	// This may be used to include null fields in Patch requests.
29066	NullFields []string `json:"-"`
29067}
29068
29069func (s *PathRule) MarshalJSON() ([]byte, error) {
29070	type NoMethod PathRule
29071	raw := NoMethod(*s)
29072	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29073}
29074
29075// PeerAuthenticationMethod: Configuration for the peer authentication
29076// method.
29077type PeerAuthenticationMethod struct {
29078	// Mtls: Set if mTLS is used for peer authentication.
29079	Mtls *MutualTls `json:"mtls,omitempty"`
29080
29081	// ForceSendFields is a list of field names (e.g. "Mtls") to
29082	// unconditionally include in API requests. By default, fields with
29083	// empty values are omitted from API requests. However, any non-pointer,
29084	// non-interface field appearing in ForceSendFields will be sent to the
29085	// server regardless of whether the field is empty or not. This may be
29086	// used to include empty fields in Patch requests.
29087	ForceSendFields []string `json:"-"`
29088
29089	// NullFields is a list of field names (e.g. "Mtls") to include in API
29090	// requests with the JSON null value. By default, fields with empty
29091	// values are omitted from API requests. However, any field with an
29092	// empty value appearing in NullFields will be sent to the server as
29093	// null. It is an error if a field in this list has a non-empty value.
29094	// This may be used to include null fields in Patch requests.
29095	NullFields []string `json:"-"`
29096}
29097
29098func (s *PeerAuthenticationMethod) MarshalJSON() ([]byte, error) {
29099	type NoMethod PeerAuthenticationMethod
29100	raw := NoMethod(*s)
29101	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29102}
29103
29104type PerInstanceConfig struct {
29105	// Fingerprint: Fingerprint of this per-instance config. This field may
29106	// be used in optimistic locking. It will be ignored when inserting a
29107	// per-instance config. An up-to-date fingerprint must be provided in
29108	// order to update an existing per-instance config or the field needs to
29109	// be unset.
29110	Fingerprint string `json:"fingerprint,omitempty"`
29111
29112	// Name: The name of the per-instance config and the corresponding
29113	// instance. Serves as a merge key during UpdatePerInstanceConfigs
29114	// operation, i.e. if per-instance config with the same name exists then
29115	// it will be updated, otherwise a new one will be created for the VM
29116	// instance with the same name. An attempt to create a per-instance
29117	// config for a VM instance that either doesn't exist or is not part of
29118	// the group will result in a failure.
29119	Name string `json:"name,omitempty"`
29120
29121	// PreservedState: Intended preserved state for the given instance. Does
29122	// not contain state generated based on Stateful Policy.
29123	PreservedState *PreservedState `json:"preservedState,omitempty"`
29124
29125	// ForceSendFields is a list of field names (e.g. "Fingerprint") to
29126	// unconditionally include in API requests. By default, fields with
29127	// empty values are omitted from API requests. However, any non-pointer,
29128	// non-interface field appearing in ForceSendFields will be sent to the
29129	// server regardless of whether the field is empty or not. This may be
29130	// used to include empty fields in Patch requests.
29131	ForceSendFields []string `json:"-"`
29132
29133	// NullFields is a list of field names (e.g. "Fingerprint") to include
29134	// in API requests with the JSON null value. By default, fields with
29135	// empty values are omitted from API requests. However, any field with
29136	// an empty value appearing in NullFields will be sent to the server as
29137	// null. It is an error if a field in this list has a non-empty value.
29138	// This may be used to include null fields in Patch requests.
29139	NullFields []string `json:"-"`
29140}
29141
29142func (s *PerInstanceConfig) MarshalJSON() ([]byte, error) {
29143	type NoMethod PerInstanceConfig
29144	raw := NoMethod(*s)
29145	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29146}
29147
29148// Permission: All fields defined in a permission are ANDed.
29149type Permission struct {
29150	// Constraints: Extra custom constraints. The constraints are ANDed
29151	// together.
29152	Constraints []*PermissionConstraint `json:"constraints,omitempty"`
29153
29154	// Hosts: Used in Ingress or Egress Gateway cases to specify hosts that
29155	// the policy applies to. Exact match, prefix match, and suffix match
29156	// are supported.
29157	Hosts []string `json:"hosts,omitempty"`
29158
29159	// Methods: HTTP method.
29160	Methods []string `json:"methods,omitempty"`
29161
29162	// NotHosts: Negate of hosts. Specifies exclusions.
29163	NotHosts []string `json:"notHosts,omitempty"`
29164
29165	// NotMethods: Negate of methods. Specifies exclusions.
29166	NotMethods []string `json:"notMethods,omitempty"`
29167
29168	// NotPaths: Negate of paths. Specifies exclusions.
29169	NotPaths []string `json:"notPaths,omitempty"`
29170
29171	// NotPorts: Negate of ports. Specifies exclusions.
29172	NotPorts []string `json:"notPorts,omitempty"`
29173
29174	// Paths: HTTP request paths or gRPC methods. Exact match, prefix match,
29175	// and suffix match are supported.
29176	Paths []string `json:"paths,omitempty"`
29177
29178	// Ports: Port names or numbers.
29179	Ports []string `json:"ports,omitempty"`
29180
29181	// ForceSendFields is a list of field names (e.g. "Constraints") to
29182	// unconditionally include in API requests. By default, fields with
29183	// empty values are omitted from API requests. However, any non-pointer,
29184	// non-interface field appearing in ForceSendFields will be sent to the
29185	// server regardless of whether the field is empty or not. This may be
29186	// used to include empty fields in Patch requests.
29187	ForceSendFields []string `json:"-"`
29188
29189	// NullFields is a list of field names (e.g. "Constraints") to include
29190	// in API requests with the JSON null value. By default, fields with
29191	// empty values are omitted from API requests. However, any field with
29192	// an empty value appearing in NullFields will be sent to the server as
29193	// null. It is an error if a field in this list has a non-empty value.
29194	// This may be used to include null fields in Patch requests.
29195	NullFields []string `json:"-"`
29196}
29197
29198func (s *Permission) MarshalJSON() ([]byte, error) {
29199	type NoMethod Permission
29200	raw := NoMethod(*s)
29201	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29202}
29203
29204// PermissionConstraint: Custom constraint that specifies a key and a
29205// list of allowed values for Istio attributes.
29206type PermissionConstraint struct {
29207	// Key: Key of the constraint.
29208	Key string `json:"key,omitempty"`
29209
29210	// Values: A list of allowed values.
29211	Values []string `json:"values,omitempty"`
29212
29213	// ForceSendFields is a list of field names (e.g. "Key") to
29214	// unconditionally include in API requests. By default, fields with
29215	// empty values are omitted from API requests. However, any non-pointer,
29216	// non-interface field appearing in ForceSendFields will be sent to the
29217	// server regardless of whether the field is empty or not. This may be
29218	// used to include empty fields in Patch requests.
29219	ForceSendFields []string `json:"-"`
29220
29221	// NullFields is a list of field names (e.g. "Key") to include in API
29222	// requests with the JSON null value. By default, fields with empty
29223	// values are omitted from API requests. However, any field with an
29224	// empty value appearing in NullFields will be sent to the server as
29225	// null. It is an error if a field in this list has a non-empty value.
29226	// This may be used to include null fields in Patch requests.
29227	NullFields []string `json:"-"`
29228}
29229
29230func (s *PermissionConstraint) MarshalJSON() ([]byte, error) {
29231	type NoMethod PermissionConstraint
29232	raw := NoMethod(*s)
29233	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29234}
29235
29236// Policy: Defines an Identity and Access Management (IAM) policy. It is
29237// used to specify access control policies for Cloud Platform
29238// resources.
29239//
29240//
29241//
29242// A `Policy` is a collection of `bindings`. A `binding` binds one or
29243// more `members` to a single `role`. Members can be user accounts,
29244// service accounts, Google groups, and domains (such as G Suite). A
29245// `role` is a named list of permissions (defined by IAM or configured
29246// by users). A `binding` can optionally specify a `condition`, which is
29247// a logic expression that further constrains the role binding based on
29248// attributes about the request and/or target resource.
29249//
29250// **JSON Example**
29251//
29252// { "bindings": [ { "role": "roles/resourcemanager.organizationAdmin",
29253// "members": [ "user:mike@example.com", "group:admins@example.com",
29254// "domain:google.com",
29255// "serviceAccount:my-project-id@appspot.gserviceaccount.com" ] }, {
29256// "role": "roles/resourcemanager.organizationViewer", "members":
29257// ["user:eve@example.com"], "condition": { "title": "expirable access",
29258// "description": "Does not grant access after Sep 2020", "expression":
29259// "request.time < timestamp('2020-10-01T00:00:00.000Z')", } } ]
29260// }
29261//
29262// **YAML Example**
29263//
29264// bindings: - members: - user:mike@example.com -
29265// group:admins@example.com - domain:google.com -
29266// serviceAccount:my-project-id@appspot.gserviceaccount.com role:
29267// roles/resourcemanager.organizationAdmin - members: -
29268// user:eve@example.com role: roles/resourcemanager.organizationViewer
29269// condition: title: expirable access description: Does not grant access
29270// after Sep 2020 expression: request.time <
29271// timestamp('2020-10-01T00:00:00.000Z')
29272//
29273// For a description of IAM and its features, see the [IAM developer's
29274// guide](https://cloud.google.com/iam/docs).
29275type Policy struct {
29276	// AuditConfigs: Specifies cloud audit logging configuration for this
29277	// policy.
29278	AuditConfigs []*AuditConfig `json:"auditConfigs,omitempty"`
29279
29280	// Bindings: Associates a list of `members` to a `role`. Optionally may
29281	// specify a `condition` that determines when binding is in effect.
29282	// `bindings` with no members will result in an error.
29283	Bindings []*Binding `json:"bindings,omitempty"`
29284
29285	// Etag: `etag` is used for optimistic concurrency control as a way to
29286	// help prevent simultaneous updates of a policy from overwriting each
29287	// other. It is strongly suggested that systems make use of the `etag`
29288	// in the read-modify-write cycle to perform policy updates in order to
29289	// avoid race conditions: An `etag` is returned in the response to
29290	// `getIamPolicy`, and systems are expected to put that etag in the
29291	// request to `setIamPolicy` to ensure that their change will be applied
29292	// to the same version of the policy.
29293	//
29294	// If no `etag` is provided in the call to `setIamPolicy`, then the
29295	// existing policy is overwritten. Due to blind-set semantics of an
29296	// etag-less policy, 'setIamPolicy' will not fail even if either of
29297	// incoming or stored policy does not meet the version requirements.
29298	Etag string `json:"etag,omitempty"`
29299
29300	IamOwned bool `json:"iamOwned,omitempty"`
29301
29302	// Rules: If more than one rule is specified, the rules are applied in
29303	// the following manner: - All matching LOG rules are always applied. -
29304	// If any DENY/DENY_WITH_LOG rule matches, permission is denied. Logging
29305	// will be applied if one or more matching rule requires logging. -
29306	// Otherwise, if any ALLOW/ALLOW_WITH_LOG rule matches, permission is
29307	// granted. Logging will be applied if one or more matching rule
29308	// requires logging. - Otherwise, if no rule applies, permission is
29309	// denied.
29310	Rules []*Rule `json:"rules,omitempty"`
29311
29312	// Version: Specifies the format of the policy.
29313	//
29314	// Valid values are 0, 1, and 3. Requests specifying an invalid value
29315	// will be rejected.
29316	//
29317	// Operations affecting conditional bindings must specify version 3.
29318	// This can be either setting a conditional policy, modifying a
29319	// conditional binding, or removing a conditional binding from the
29320	// stored conditional policy. Operations on non-conditional policies may
29321	// specify any valid value or leave the field unset.
29322	//
29323	// If no etag is provided in the call to `setIamPolicy`, any version
29324	// compliance checks on the incoming and/or stored policy is skipped.
29325	Version int64 `json:"version,omitempty"`
29326
29327	// ServerResponse contains the HTTP response code and headers from the
29328	// server.
29329	googleapi.ServerResponse `json:"-"`
29330
29331	// ForceSendFields is a list of field names (e.g. "AuditConfigs") to
29332	// unconditionally include in API requests. By default, fields with
29333	// empty values are omitted from API requests. However, any non-pointer,
29334	// non-interface field appearing in ForceSendFields will be sent to the
29335	// server regardless of whether the field is empty or not. This may be
29336	// used to include empty fields in Patch requests.
29337	ForceSendFields []string `json:"-"`
29338
29339	// NullFields is a list of field names (e.g. "AuditConfigs") to include
29340	// in API requests with the JSON null value. By default, fields with
29341	// empty values are omitted from API requests. However, any field with
29342	// an empty value appearing in NullFields will be sent to the server as
29343	// null. It is an error if a field in this list has a non-empty value.
29344	// This may be used to include null fields in Patch requests.
29345	NullFields []string `json:"-"`
29346}
29347
29348func (s *Policy) MarshalJSON() ([]byte, error) {
29349	type NoMethod Policy
29350	raw := NoMethod(*s)
29351	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29352}
29353
29354type PreconfiguredWafSet struct {
29355	// ExpressionSets: List of entities that are currently supported for WAF
29356	// rules.
29357	ExpressionSets []*WafExpressionSet `json:"expressionSets,omitempty"`
29358
29359	// ForceSendFields is a list of field names (e.g. "ExpressionSets") to
29360	// unconditionally include in API requests. By default, fields with
29361	// empty values are omitted from API requests. However, any non-pointer,
29362	// non-interface field appearing in ForceSendFields will be sent to the
29363	// server regardless of whether the field is empty or not. This may be
29364	// used to include empty fields in Patch requests.
29365	ForceSendFields []string `json:"-"`
29366
29367	// NullFields is a list of field names (e.g. "ExpressionSets") to
29368	// include in API requests with the JSON null value. By default, fields
29369	// with empty values are omitted from API requests. However, any field
29370	// with an empty value appearing in NullFields will be sent to the
29371	// server as null. It is an error if a field in this list has a
29372	// non-empty value. This may be used to include null fields in Patch
29373	// requests.
29374	NullFields []string `json:"-"`
29375}
29376
29377func (s *PreconfiguredWafSet) MarshalJSON() ([]byte, error) {
29378	type NoMethod PreconfiguredWafSet
29379	raw := NoMethod(*s)
29380	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29381}
29382
29383// PreservedState: Preserved state for a given instance.
29384type PreservedState struct {
29385	// Disks: Preserved disks defined for this instance. This map is keyed
29386	// with the device names of the disks.
29387	Disks map[string]PreservedStatePreservedDisk `json:"disks,omitempty"`
29388
29389	// Metadata: Preserved metadata defined for this instance.
29390	Metadata map[string]string `json:"metadata,omitempty"`
29391
29392	// ForceSendFields is a list of field names (e.g. "Disks") to
29393	// unconditionally include in API requests. By default, fields with
29394	// empty values are omitted from API requests. However, any non-pointer,
29395	// non-interface field appearing in ForceSendFields will be sent to the
29396	// server regardless of whether the field is empty or not. This may be
29397	// used to include empty fields in Patch requests.
29398	ForceSendFields []string `json:"-"`
29399
29400	// NullFields is a list of field names (e.g. "Disks") to include in API
29401	// requests with the JSON null value. By default, fields with empty
29402	// values are omitted from API requests. However, any field with an
29403	// empty value appearing in NullFields will be sent to the server as
29404	// null. It is an error if a field in this list has a non-empty value.
29405	// This may be used to include null fields in Patch requests.
29406	NullFields []string `json:"-"`
29407}
29408
29409func (s *PreservedState) MarshalJSON() ([]byte, error) {
29410	type NoMethod PreservedState
29411	raw := NoMethod(*s)
29412	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29413}
29414
29415type PreservedStatePreservedDisk struct {
29416	// AutoDelete: These stateful disks will never be deleted during
29417	// autohealing, update, instance recreate operations. This flag is used
29418	// to configure if the disk should be deleted after it is no longer used
29419	// by the group, e.g. when the given instance or the whole MIG is
29420	// deleted. Note: disks attached in READ_ONLY mode cannot be
29421	// auto-deleted.
29422	//
29423	// Possible values:
29424	//   "NEVER"
29425	//   "ON_PERMANENT_INSTANCE_DELETION"
29426	AutoDelete string `json:"autoDelete,omitempty"`
29427
29428	// Mode: The mode in which to attach this disk, either READ_WRITE or
29429	// READ_ONLY. If not specified, the default is to attach the disk in
29430	// READ_WRITE mode.
29431	//
29432	// Possible values:
29433	//   "READ_ONLY"
29434	//   "READ_WRITE"
29435	Mode string `json:"mode,omitempty"`
29436
29437	// Source: The URL of the disk resource that is stateful and should be
29438	// attached to the VM instance.
29439	Source string `json:"source,omitempty"`
29440
29441	// ForceSendFields is a list of field names (e.g. "AutoDelete") to
29442	// unconditionally include in API requests. By default, fields with
29443	// empty values are omitted from API requests. However, any non-pointer,
29444	// non-interface field appearing in ForceSendFields will be sent to the
29445	// server regardless of whether the field is empty or not. This may be
29446	// used to include empty fields in Patch requests.
29447	ForceSendFields []string `json:"-"`
29448
29449	// NullFields is a list of field names (e.g. "AutoDelete") to include in
29450	// API requests with the JSON null value. By default, fields with empty
29451	// values are omitted from API requests. However, any field with an
29452	// empty value appearing in NullFields will be sent to the server as
29453	// null. It is an error if a field in this list has a non-empty value.
29454	// This may be used to include null fields in Patch requests.
29455	NullFields []string `json:"-"`
29456}
29457
29458func (s *PreservedStatePreservedDisk) MarshalJSON() ([]byte, error) {
29459	type NoMethod PreservedStatePreservedDisk
29460	raw := NoMethod(*s)
29461	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29462}
29463
29464// Principal: All fields defined in a principal are ANDed.
29465type Principal struct {
29466	// Condition: An expression to specify custom condition.
29467	Condition string `json:"condition,omitempty"`
29468
29469	// Groups: The groups the principal belongs to. Exact match, prefix
29470	// match, and suffix match are supported.
29471	Groups []string `json:"groups,omitempty"`
29472
29473	// Ips: IPv4 or IPv6 address or range (In CIDR format)
29474	Ips []string `json:"ips,omitempty"`
29475
29476	// Namespaces: The namespaces. Exact match, prefix match, and suffix
29477	// match are supported.
29478	Namespaces []string `json:"namespaces,omitempty"`
29479
29480	// NotGroups: Negate of groups. Specifies exclusions.
29481	NotGroups []string `json:"notGroups,omitempty"`
29482
29483	// NotIps: Negate of IPs. Specifies exclusions.
29484	NotIps []string `json:"notIps,omitempty"`
29485
29486	// NotNamespaces: Negate of namespaces. Specifies exclusions.
29487	NotNamespaces []string `json:"notNamespaces,omitempty"`
29488
29489	// NotUsers: Negate of users. Specifies exclusions.
29490	NotUsers []string `json:"notUsers,omitempty"`
29491
29492	// Properties: A map of Istio attribute to expected values. Exact match,
29493	// prefix match, and suffix match are supported for values. For example,
29494	// `request.headers[version]: "v1". The properties are ANDed together.
29495	Properties map[string]string `json:"properties,omitempty"`
29496
29497	// Users: The user names/IDs or service accounts. Exact match, prefix
29498	// match, and suffix match are supported.
29499	Users []string `json:"users,omitempty"`
29500
29501	// ForceSendFields is a list of field names (e.g. "Condition") to
29502	// unconditionally include in API requests. By default, fields with
29503	// empty values are omitted from API requests. However, any non-pointer,
29504	// non-interface field appearing in ForceSendFields will be sent to the
29505	// server regardless of whether the field is empty or not. This may be
29506	// used to include empty fields in Patch requests.
29507	ForceSendFields []string `json:"-"`
29508
29509	// NullFields is a list of field names (e.g. "Condition") to include in
29510	// API requests with the JSON null value. By default, fields with empty
29511	// values are omitted from API requests. However, any field with an
29512	// empty value appearing in NullFields will be sent to the server as
29513	// null. It is an error if a field in this list has a non-empty value.
29514	// This may be used to include null fields in Patch requests.
29515	NullFields []string `json:"-"`
29516}
29517
29518func (s *Principal) MarshalJSON() ([]byte, error) {
29519	type NoMethod Principal
29520	raw := NoMethod(*s)
29521	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29522}
29523
29524// Project: Represents a Project resource.
29525//
29526// A project is used to organize resources in a Google Cloud Platform
29527// environment. For more information, read about the  Resource
29528// Hierarchy. (== resource_for v1.projects ==) (== resource_for
29529// beta.projects ==)
29530type Project struct {
29531	// CommonInstanceMetadata: Metadata key/value pairs available to all
29532	// instances contained in this project. See Custom metadata for more
29533	// information.
29534	CommonInstanceMetadata *Metadata `json:"commonInstanceMetadata,omitempty"`
29535
29536	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
29537	// format.
29538	CreationTimestamp string `json:"creationTimestamp,omitempty"`
29539
29540	// DefaultNetworkTier: This signifies the default network tier used for
29541	// configuring resources of the project and can only take the following
29542	// values: PREMIUM, STANDARD. Initially the default network tier is
29543	// PREMIUM.
29544	//
29545	// Possible values:
29546	//   "PREMIUM"
29547	//   "SELECT"
29548	//   "STANDARD"
29549	DefaultNetworkTier string `json:"defaultNetworkTier,omitempty"`
29550
29551	// DefaultServiceAccount: [Output Only] Default service account used by
29552	// VMs running in this project.
29553	DefaultServiceAccount string `json:"defaultServiceAccount,omitempty"`
29554
29555	// Description: An optional textual description of the resource.
29556	Description string `json:"description,omitempty"`
29557
29558	// EnabledFeatures: Restricted features enabled for use on this project.
29559	EnabledFeatures []string `json:"enabledFeatures,omitempty"`
29560
29561	// Id: [Output Only] The unique identifier for the resource. This
29562	// identifier is defined by the server. This is not the project ID, and
29563	// is just a unique ID used by Compute Engine to identify resources.
29564	Id uint64 `json:"id,omitempty,string"`
29565
29566	// Kind: [Output Only] Type of the resource. Always compute#project for
29567	// projects.
29568	Kind string `json:"kind,omitempty"`
29569
29570	// Name: The project ID. For example: my-example-project. Use the
29571	// project ID to make requests to Compute Engine.
29572	Name string `json:"name,omitempty"`
29573
29574	// Quotas: [Output Only] Quotas assigned to this project.
29575	Quotas []*Quota `json:"quotas,omitempty"`
29576
29577	// SelfLink: [Output Only] Server-defined URL for the resource.
29578	SelfLink string `json:"selfLink,omitempty"`
29579
29580	// UsageExportLocation: The naming prefix for daily usage reports and
29581	// the Google Cloud Storage bucket where they are stored.
29582	UsageExportLocation *UsageExportLocation `json:"usageExportLocation,omitempty"`
29583
29584	// XpnProjectStatus: [Output Only] The role this project has in a shared
29585	// VPC configuration. Currently only HOST projects are differentiated.
29586	//
29587	// Possible values:
29588	//   "HOST"
29589	//   "UNSPECIFIED_XPN_PROJECT_STATUS"
29590	XpnProjectStatus string `json:"xpnProjectStatus,omitempty"`
29591
29592	// ServerResponse contains the HTTP response code and headers from the
29593	// server.
29594	googleapi.ServerResponse `json:"-"`
29595
29596	// ForceSendFields is a list of field names (e.g.
29597	// "CommonInstanceMetadata") to unconditionally include in API requests.
29598	// By default, fields with empty values are omitted from API requests.
29599	// However, any non-pointer, non-interface field appearing in
29600	// ForceSendFields will be sent to the server regardless of whether the
29601	// field is empty or not. This may be used to include empty fields in
29602	// Patch requests.
29603	ForceSendFields []string `json:"-"`
29604
29605	// NullFields is a list of field names (e.g. "CommonInstanceMetadata")
29606	// to include in API requests with the JSON null value. By default,
29607	// fields with empty values are omitted from API requests. However, any
29608	// field with an empty value appearing in NullFields will be sent to the
29609	// server as null. It is an error if a field in this list has a
29610	// non-empty value. This may be used to include null fields in Patch
29611	// requests.
29612	NullFields []string `json:"-"`
29613}
29614
29615func (s *Project) MarshalJSON() ([]byte, error) {
29616	type NoMethod Project
29617	raw := NoMethod(*s)
29618	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29619}
29620
29621type ProjectsDisableXpnResourceRequest struct {
29622	// XpnResource: Service resource (a.k.a service project) ID.
29623	XpnResource *XpnResourceId `json:"xpnResource,omitempty"`
29624
29625	// ForceSendFields is a list of field names (e.g. "XpnResource") to
29626	// unconditionally include in API requests. By default, fields with
29627	// empty values are omitted from API requests. However, any non-pointer,
29628	// non-interface field appearing in ForceSendFields will be sent to the
29629	// server regardless of whether the field is empty or not. This may be
29630	// used to include empty fields in Patch requests.
29631	ForceSendFields []string `json:"-"`
29632
29633	// NullFields is a list of field names (e.g. "XpnResource") to include
29634	// in API requests with the JSON null value. By default, fields with
29635	// empty values are omitted from API requests. However, any field with
29636	// an empty value appearing in NullFields will be sent to the server as
29637	// null. It is an error if a field in this list has a non-empty value.
29638	// This may be used to include null fields in Patch requests.
29639	NullFields []string `json:"-"`
29640}
29641
29642func (s *ProjectsDisableXpnResourceRequest) MarshalJSON() ([]byte, error) {
29643	type NoMethod ProjectsDisableXpnResourceRequest
29644	raw := NoMethod(*s)
29645	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29646}
29647
29648type ProjectsEnableXpnResourceRequest struct {
29649	// XpnResource: Service resource (a.k.a service project) ID.
29650	XpnResource *XpnResourceId `json:"xpnResource,omitempty"`
29651
29652	// ForceSendFields is a list of field names (e.g. "XpnResource") to
29653	// unconditionally include in API requests. By default, fields with
29654	// empty values are omitted from API requests. However, any non-pointer,
29655	// non-interface field appearing in ForceSendFields will be sent to the
29656	// server regardless of whether the field is empty or not. This may be
29657	// used to include empty fields in Patch requests.
29658	ForceSendFields []string `json:"-"`
29659
29660	// NullFields is a list of field names (e.g. "XpnResource") to include
29661	// in API requests with the JSON null value. By default, fields with
29662	// empty values are omitted from API requests. However, any field with
29663	// an empty value appearing in NullFields will be sent to the server as
29664	// null. It is an error if a field in this list has a non-empty value.
29665	// This may be used to include null fields in Patch requests.
29666	NullFields []string `json:"-"`
29667}
29668
29669func (s *ProjectsEnableXpnResourceRequest) MarshalJSON() ([]byte, error) {
29670	type NoMethod ProjectsEnableXpnResourceRequest
29671	raw := NoMethod(*s)
29672	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29673}
29674
29675type ProjectsGetXpnResources struct {
29676	// Kind: [Output Only] Type of resource. Always
29677	// compute#projectsGetXpnResources for lists of service resources (a.k.a
29678	// service projects)
29679	Kind string `json:"kind,omitempty"`
29680
29681	// NextPageToken: [Output Only] This token allows you to get the next
29682	// page of results for list requests. If the number of results is larger
29683	// than maxResults, use the nextPageToken as a value for the query
29684	// parameter pageToken in the next list request. Subsequent list
29685	// requests will have their own nextPageToken to continue paging through
29686	// the results.
29687	NextPageToken string `json:"nextPageToken,omitempty"`
29688
29689	// Resources: Service resources (a.k.a service projects) attached to
29690	// this project as their shared VPC host.
29691	Resources []*XpnResourceId `json:"resources,omitempty"`
29692
29693	// ServerResponse contains the HTTP response code and headers from the
29694	// server.
29695	googleapi.ServerResponse `json:"-"`
29696
29697	// ForceSendFields is a list of field names (e.g. "Kind") to
29698	// unconditionally include in API requests. By default, fields with
29699	// empty values are omitted from API requests. However, any non-pointer,
29700	// non-interface field appearing in ForceSendFields will be sent to the
29701	// server regardless of whether the field is empty or not. This may be
29702	// used to include empty fields in Patch requests.
29703	ForceSendFields []string `json:"-"`
29704
29705	// NullFields is a list of field names (e.g. "Kind") to include in API
29706	// requests with the JSON null value. By default, fields with empty
29707	// values are omitted from API requests. However, any field with an
29708	// empty value appearing in NullFields will be sent to the server as
29709	// null. It is an error if a field in this list has a non-empty value.
29710	// This may be used to include null fields in Patch requests.
29711	NullFields []string `json:"-"`
29712}
29713
29714func (s *ProjectsGetXpnResources) MarshalJSON() ([]byte, error) {
29715	type NoMethod ProjectsGetXpnResources
29716	raw := NoMethod(*s)
29717	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29718}
29719
29720type ProjectsListXpnHostsRequest struct {
29721	// Organization: Optional organization ID managed by Cloud Resource
29722	// Manager, for which to list shared VPC host projects. If not
29723	// specified, the organization will be inferred from the project.
29724	Organization string `json:"organization,omitempty"`
29725
29726	// ForceSendFields is a list of field names (e.g. "Organization") to
29727	// unconditionally include in API requests. By default, fields with
29728	// empty values are omitted from API requests. However, any non-pointer,
29729	// non-interface field appearing in ForceSendFields will be sent to the
29730	// server regardless of whether the field is empty or not. This may be
29731	// used to include empty fields in Patch requests.
29732	ForceSendFields []string `json:"-"`
29733
29734	// NullFields is a list of field names (e.g. "Organization") to include
29735	// in API requests with the JSON null value. By default, fields with
29736	// empty values are omitted from API requests. However, any field with
29737	// an empty value appearing in NullFields will be sent to the server as
29738	// null. It is an error if a field in this list has a non-empty value.
29739	// This may be used to include null fields in Patch requests.
29740	NullFields []string `json:"-"`
29741}
29742
29743func (s *ProjectsListXpnHostsRequest) MarshalJSON() ([]byte, error) {
29744	type NoMethod ProjectsListXpnHostsRequest
29745	raw := NoMethod(*s)
29746	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29747}
29748
29749type ProjectsSetDefaultNetworkTierRequest struct {
29750	// NetworkTier: Default network tier to be set.
29751	//
29752	// Possible values:
29753	//   "PREMIUM"
29754	//   "SELECT"
29755	//   "STANDARD"
29756	NetworkTier string `json:"networkTier,omitempty"`
29757
29758	// ForceSendFields is a list of field names (e.g. "NetworkTier") to
29759	// unconditionally include in API requests. By default, fields with
29760	// empty values are omitted from API requests. However, any non-pointer,
29761	// non-interface field appearing in ForceSendFields will be sent to the
29762	// server regardless of whether the field is empty or not. This may be
29763	// used to include empty fields in Patch requests.
29764	ForceSendFields []string `json:"-"`
29765
29766	// NullFields is a list of field names (e.g. "NetworkTier") to include
29767	// in API requests with the JSON null value. By default, fields with
29768	// empty values are omitted from API requests. However, any field with
29769	// an empty value appearing in NullFields will be sent to the server as
29770	// null. It is an error if a field in this list has a non-empty value.
29771	// This may be used to include null fields in Patch requests.
29772	NullFields []string `json:"-"`
29773}
29774
29775func (s *ProjectsSetDefaultNetworkTierRequest) MarshalJSON() ([]byte, error) {
29776	type NoMethod ProjectsSetDefaultNetworkTierRequest
29777	raw := NoMethod(*s)
29778	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29779}
29780
29781type ProjectsSetDefaultServiceAccountRequest struct {
29782	// Email: Email address of the service account.
29783	Email string `json:"email,omitempty"`
29784
29785	// ForceSendFields is a list of field names (e.g. "Email") to
29786	// unconditionally include in API requests. By default, fields with
29787	// empty values are omitted from API requests. However, any non-pointer,
29788	// non-interface field appearing in ForceSendFields will be sent to the
29789	// server regardless of whether the field is empty or not. This may be
29790	// used to include empty fields in Patch requests.
29791	ForceSendFields []string `json:"-"`
29792
29793	// NullFields is a list of field names (e.g. "Email") to include in API
29794	// requests with the JSON null value. By default, fields with empty
29795	// values are omitted from API requests. However, any field with an
29796	// empty value appearing in NullFields will be sent to the server as
29797	// null. It is an error if a field in this list has a non-empty value.
29798	// This may be used to include null fields in Patch requests.
29799	NullFields []string `json:"-"`
29800}
29801
29802func (s *ProjectsSetDefaultServiceAccountRequest) MarshalJSON() ([]byte, error) {
29803	type NoMethod ProjectsSetDefaultServiceAccountRequest
29804	raw := NoMethod(*s)
29805	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29806}
29807
29808// PublicAdvertisedPrefix: A public advertised prefix represents an
29809// aggregated IP prefix or netblock which customers bring to cloud. The
29810// IP prefix is a single unit of route advertisement and is announced
29811// globally to the internet.
29812type PublicAdvertisedPrefix struct {
29813	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
29814	// format.
29815	CreationTimestamp string `json:"creationTimestamp,omitempty"`
29816
29817	// Description: An optional description of this resource. Provide this
29818	// property when you create the resource.
29819	Description string `json:"description,omitempty"`
29820
29821	// DnsVerificationIp: The IPv4 address to be used for reverse DNS
29822	// verification.
29823	DnsVerificationIp string `json:"dnsVerificationIp,omitempty"`
29824
29825	// Fingerprint: Fingerprint of this resource. A hash of the contents
29826	// stored in this object. This field is used in optimistic locking. This
29827	// field will be ignored when inserting a new PublicAdvertisedPrefix. An
29828	// up-to-date fingerprint must be provided in order to update the
29829	// PublicAdvertisedPrefix, otherwise the request will fail with error
29830	// 412 conditionNotMet.
29831	//
29832	// To see the latest fingerprint, make a get() request to retrieve a
29833	// PublicAdvertisedPrefix.
29834	Fingerprint string `json:"fingerprint,omitempty"`
29835
29836	// Id: [Output Only] The unique identifier for the resource type. The
29837	// server generates this identifier.
29838	Id uint64 `json:"id,omitempty,string"`
29839
29840	// IpCidrRange: The IPv4 address range, in CIDR format, represented by
29841	// this public advertised prefix.
29842	IpCidrRange string `json:"ipCidrRange,omitempty"`
29843
29844	// Kind: [Output Only] Type of the resource. Always
29845	// compute#publicAdvertisedPrefix for public advertised prefixes.
29846	Kind string `json:"kind,omitempty"`
29847
29848	// Name: Name of the resource. Provided by the client when the resource
29849	// is created. The name must be 1-63 characters long, and comply with
29850	// RFC1035. Specifically, the name must be 1-63 characters long and
29851	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
29852	// the first character must be a lowercase letter, and all following
29853	// characters must be a dash, lowercase letter, or digit, except the
29854	// last character, which cannot be a dash.
29855	Name string `json:"name,omitempty"`
29856
29857	// PublicDelegatedPrefixs: [Output Only] The list of public delegated
29858	// prefixes that exist for this public advertised prefix.
29859	PublicDelegatedPrefixs []*PublicAdvertisedPrefixPublicDelegatedPrefix `json:"publicDelegatedPrefixs,omitempty"`
29860
29861	// SelfLink: [Output Only] Server-defined URL for the resource.
29862	SelfLink string `json:"selfLink,omitempty"`
29863
29864	// SelfLinkWithId: [Output Only] Server-defined URL with id for the
29865	// resource.
29866	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
29867
29868	// SharedSecret: [Output Only] The shared secret to be used for reverse
29869	// DNS verification.
29870	SharedSecret string `json:"sharedSecret,omitempty"`
29871
29872	// Status: The status of the public advertised prefix.
29873	//
29874	// Possible values:
29875	//   "INITIAL"
29876	//   "PREFIX_CONFIGURATION_COMPLETE"
29877	//   "PREFIX_CONFIGURATION_IN_PROGRESS"
29878	//   "PREFIX_REMOVAL_IN_PROGRESS"
29879	//   "PTR_CONFIGURED"
29880	//   "REVERSE_DNS_LOOKUP_FAILED"
29881	//   "VALIDATED"
29882	Status string `json:"status,omitempty"`
29883
29884	// ServerResponse contains the HTTP response code and headers from the
29885	// server.
29886	googleapi.ServerResponse `json:"-"`
29887
29888	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
29889	// to unconditionally include in API requests. By default, fields with
29890	// empty values are omitted from API requests. However, any non-pointer,
29891	// non-interface field appearing in ForceSendFields will be sent to the
29892	// server regardless of whether the field is empty or not. This may be
29893	// used to include empty fields in Patch requests.
29894	ForceSendFields []string `json:"-"`
29895
29896	// NullFields is a list of field names (e.g. "CreationTimestamp") to
29897	// include in API requests with the JSON null value. By default, fields
29898	// with empty values are omitted from API requests. However, any field
29899	// with an empty value appearing in NullFields will be sent to the
29900	// server as null. It is an error if a field in this list has a
29901	// non-empty value. This may be used to include null fields in Patch
29902	// requests.
29903	NullFields []string `json:"-"`
29904}
29905
29906func (s *PublicAdvertisedPrefix) MarshalJSON() ([]byte, error) {
29907	type NoMethod PublicAdvertisedPrefix
29908	raw := NoMethod(*s)
29909	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29910}
29911
29912type PublicAdvertisedPrefixList struct {
29913	// Id: [Output Only] Unique identifier for the resource; defined by the
29914	// server.
29915	Id string `json:"id,omitempty"`
29916
29917	// Items: A list of PublicAdvertisedPrefix resources.
29918	Items []*PublicAdvertisedPrefix `json:"items,omitempty"`
29919
29920	// Kind: [Output Only] Type of the resource. Always
29921	// compute#publicAdvertisedPrefix for public advertised prefixes.
29922	Kind string `json:"kind,omitempty"`
29923
29924	// NextPageToken: [Output Only] This token allows you to get the next
29925	// page of results for list requests. If the number of results is larger
29926	// than maxResults, use the nextPageToken as a value for the query
29927	// parameter pageToken in the next list request. Subsequent list
29928	// requests will have their own nextPageToken to continue paging through
29929	// the results.
29930	NextPageToken string `json:"nextPageToken,omitempty"`
29931
29932	// SelfLink: [Output Only] Server-defined URL for this resource.
29933	SelfLink string `json:"selfLink,omitempty"`
29934
29935	// Warning: [Output Only] Informational warning message.
29936	Warning *PublicAdvertisedPrefixListWarning `json:"warning,omitempty"`
29937
29938	// ServerResponse contains the HTTP response code and headers from the
29939	// server.
29940	googleapi.ServerResponse `json:"-"`
29941
29942	// ForceSendFields is a list of field names (e.g. "Id") to
29943	// unconditionally include in API requests. By default, fields with
29944	// empty values are omitted from API requests. However, any non-pointer,
29945	// non-interface field appearing in ForceSendFields will be sent to the
29946	// server regardless of whether the field is empty or not. This may be
29947	// used to include empty fields in Patch requests.
29948	ForceSendFields []string `json:"-"`
29949
29950	// NullFields is a list of field names (e.g. "Id") to include in API
29951	// requests with the JSON null value. By default, fields with empty
29952	// values are omitted from API requests. However, any field with an
29953	// empty value appearing in NullFields will be sent to the server as
29954	// null. It is an error if a field in this list has a non-empty value.
29955	// This may be used to include null fields in Patch requests.
29956	NullFields []string `json:"-"`
29957}
29958
29959func (s *PublicAdvertisedPrefixList) MarshalJSON() ([]byte, error) {
29960	type NoMethod PublicAdvertisedPrefixList
29961	raw := NoMethod(*s)
29962	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29963}
29964
29965// PublicAdvertisedPrefixListWarning: [Output Only] Informational
29966// warning message.
29967type PublicAdvertisedPrefixListWarning struct {
29968	// Code: [Output Only] A warning code, if applicable. For example,
29969	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
29970	// the response.
29971	//
29972	// Possible values:
29973	//   "CLEANUP_FAILED"
29974	//   "DEPRECATED_RESOURCE_USED"
29975	//   "DEPRECATED_TYPE_USED"
29976	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
29977	//   "EXPERIMENTAL_TYPE_USED"
29978	//   "EXTERNAL_API_WARNING"
29979	//   "FIELD_VALUE_OVERRIDEN"
29980	//   "INJECTED_KERNELS_DEPRECATED"
29981	//   "MISSING_TYPE_DEPENDENCY"
29982	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
29983	//   "NEXT_HOP_CANNOT_IP_FORWARD"
29984	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
29985	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
29986	//   "NEXT_HOP_NOT_RUNNING"
29987	//   "NOT_CRITICAL_ERROR"
29988	//   "NO_RESULTS_ON_PAGE"
29989	//   "REQUIRED_TOS_AGREEMENT"
29990	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
29991	//   "RESOURCE_NOT_DELETED"
29992	//   "SCHEMA_VALIDATION_IGNORED"
29993	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
29994	//   "UNDECLARED_PROPERTIES"
29995	//   "UNREACHABLE"
29996	Code string `json:"code,omitempty"`
29997
29998	// Data: [Output Only] Metadata about this warning in key: value format.
29999	// For example:
30000	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
30001	Data []*PublicAdvertisedPrefixListWarningData `json:"data,omitempty"`
30002
30003	// Message: [Output Only] A human-readable description of the warning
30004	// code.
30005	Message string `json:"message,omitempty"`
30006
30007	// ForceSendFields is a list of field names (e.g. "Code") to
30008	// unconditionally include in API requests. By default, fields with
30009	// empty values are omitted from API requests. However, any non-pointer,
30010	// non-interface field appearing in ForceSendFields will be sent to the
30011	// server regardless of whether the field is empty or not. This may be
30012	// used to include empty fields in Patch requests.
30013	ForceSendFields []string `json:"-"`
30014
30015	// NullFields is a list of field names (e.g. "Code") to include in API
30016	// requests with the JSON null value. By default, fields with empty
30017	// values are omitted from API requests. However, any field with an
30018	// empty value appearing in NullFields will be sent to the server as
30019	// null. It is an error if a field in this list has a non-empty value.
30020	// This may be used to include null fields in Patch requests.
30021	NullFields []string `json:"-"`
30022}
30023
30024func (s *PublicAdvertisedPrefixListWarning) MarshalJSON() ([]byte, error) {
30025	type NoMethod PublicAdvertisedPrefixListWarning
30026	raw := NoMethod(*s)
30027	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30028}
30029
30030type PublicAdvertisedPrefixListWarningData struct {
30031	// Key: [Output Only] A key that provides more detail on the warning
30032	// being returned. For example, for warnings where there are no results
30033	// in a list request for a particular zone, this key might be scope and
30034	// the key value might be the zone name. Other examples might be a key
30035	// indicating a deprecated resource and a suggested replacement, or a
30036	// warning about invalid network settings (for example, if an instance
30037	// attempts to perform IP forwarding but is not enabled for IP
30038	// forwarding).
30039	Key string `json:"key,omitempty"`
30040
30041	// Value: [Output Only] A warning data value corresponding to the key.
30042	Value string `json:"value,omitempty"`
30043
30044	// ForceSendFields is a list of field names (e.g. "Key") to
30045	// unconditionally include in API requests. By default, fields with
30046	// empty values are omitted from API requests. However, any non-pointer,
30047	// non-interface field appearing in ForceSendFields will be sent to the
30048	// server regardless of whether the field is empty or not. This may be
30049	// used to include empty fields in Patch requests.
30050	ForceSendFields []string `json:"-"`
30051
30052	// NullFields is a list of field names (e.g. "Key") to include in API
30053	// requests with the JSON null value. By default, fields with empty
30054	// values are omitted from API requests. However, any field with an
30055	// empty value appearing in NullFields will be sent to the server as
30056	// null. It is an error if a field in this list has a non-empty value.
30057	// This may be used to include null fields in Patch requests.
30058	NullFields []string `json:"-"`
30059}
30060
30061func (s *PublicAdvertisedPrefixListWarningData) MarshalJSON() ([]byte, error) {
30062	type NoMethod PublicAdvertisedPrefixListWarningData
30063	raw := NoMethod(*s)
30064	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30065}
30066
30067// PublicAdvertisedPrefixPublicDelegatedPrefix: Represents a CIDR range
30068// which can be used to assign addresses.
30069type PublicAdvertisedPrefixPublicDelegatedPrefix struct {
30070	// Name: The name of the public delegated prefix
30071	Name string `json:"name,omitempty"`
30072
30073	// Region: The region of the public delegated prefix if it is regional.
30074	// If absent, the prefix is global.
30075	Region string `json:"region,omitempty"`
30076
30077	// Status: The status of the public delegated prefix. Possible values
30078	// are: ACTIVE: The public delegated prefix is active DRAINED: The
30079	// public delegated prefix is drained.
30080	Status string `json:"status,omitempty"`
30081
30082	// ForceSendFields is a list of field names (e.g. "Name") to
30083	// unconditionally include in API requests. By default, fields with
30084	// empty values are omitted from API requests. However, any non-pointer,
30085	// non-interface field appearing in ForceSendFields will be sent to the
30086	// server regardless of whether the field is empty or not. This may be
30087	// used to include empty fields in Patch requests.
30088	ForceSendFields []string `json:"-"`
30089
30090	// NullFields is a list of field names (e.g. "Name") to include in API
30091	// requests with the JSON null value. By default, fields with empty
30092	// values are omitted from API requests. However, any field with an
30093	// empty value appearing in NullFields will be sent to the server as
30094	// null. It is an error if a field in this list has a non-empty value.
30095	// This may be used to include null fields in Patch requests.
30096	NullFields []string `json:"-"`
30097}
30098
30099func (s *PublicAdvertisedPrefixPublicDelegatedPrefix) MarshalJSON() ([]byte, error) {
30100	type NoMethod PublicAdvertisedPrefixPublicDelegatedPrefix
30101	raw := NoMethod(*s)
30102	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30103}
30104
30105// PublicDelegatedPrefix: A PublicDelegatedPrefix resource represents an
30106// IP block within a PublicAdvertisedPrefix that is configured within a
30107// single cloud scope (global or region). IPs in the block can be
30108// allocated to resources within that scope. Public delegated prefixes
30109// may be further broken up into smaller IP blocks in the same scope as
30110// the parent block.
30111type PublicDelegatedPrefix struct {
30112	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
30113	// format.
30114	CreationTimestamp string `json:"creationTimestamp,omitempty"`
30115
30116	// Description: An optional description of this resource. Provide this
30117	// property when you create the resource.
30118	Description string `json:"description,omitempty"`
30119
30120	// Fingerprint: Fingerprint of this resource. A hash of the contents
30121	// stored in this object. This field is used in optimistic locking. This
30122	// field will be ignored when inserting a new PublicDelegatedPrefix. An
30123	// up-to-date fingerprint must be provided in order to update the
30124	// PublicDelegatedPrefix, otherwise the request will fail with error 412
30125	// conditionNotMet.
30126	//
30127	// To see the latest fingerprint, make a get() request to retrieve a
30128	// PublicDelegatedPrefix.
30129	Fingerprint string `json:"fingerprint,omitempty"`
30130
30131	// Id: [Output Only] The unique identifier for the resource type. The
30132	// server generates this identifier.
30133	Id uint64 `json:"id,omitempty,string"`
30134
30135	// IpCidrRange: The IPv4 address range, in CIDR format, represented by
30136	// this public delegated prefix.
30137	IpCidrRange string `json:"ipCidrRange,omitempty"`
30138
30139	// Kind: [Output Only] Type of the resource. Always
30140	// compute#publicDelegatedPrefix for public delegated prefixes.
30141	Kind string `json:"kind,omitempty"`
30142
30143	// Name: Name of the resource. Provided by the client when the resource
30144	// is created. The name must be 1-63 characters long, and comply with
30145	// RFC1035. Specifically, the name must be 1-63 characters long and
30146	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
30147	// the first character must be a lowercase letter, and all following
30148	// characters must be a dash, lowercase letter, or digit, except the
30149	// last character, which cannot be a dash.
30150	Name string `json:"name,omitempty"`
30151
30152	// ParentPrefix: The URL of parent prefix. Either PublicAdvertisedPrefix
30153	// or PublicDelegatedPrefix.
30154	ParentPrefix string `json:"parentPrefix,omitempty"`
30155
30156	// PublicDelegatedSubPrefixs: The list of sub public delegated prefixes
30157	// that exist for this public delegated prefix.
30158	PublicDelegatedSubPrefixs []*PublicDelegatedPrefixPublicDelegatedSubPrefix `json:"publicDelegatedSubPrefixs,omitempty"`
30159
30160	// Region: [Output Only] URL of the region where the public delegated
30161	// prefix resides. This field applies only to the region resource. You
30162	// must specify this field as part of the HTTP request URL. It is not
30163	// settable as a field in the request body.
30164	Region string `json:"region,omitempty"`
30165
30166	// SelfLink: [Output Only] Server-defined URL for the resource.
30167	SelfLink string `json:"selfLink,omitempty"`
30168
30169	// SelfLinkWithId: [Output Only] Server-defined URL with id for the
30170	// resource.
30171	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
30172
30173	// Status: [Output Only] The status of the public delegated prefix.
30174	Status interface{} `json:"status,omitempty"`
30175
30176	// ServerResponse contains the HTTP response code and headers from the
30177	// server.
30178	googleapi.ServerResponse `json:"-"`
30179
30180	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
30181	// to unconditionally include in API requests. By default, fields with
30182	// empty values are omitted from API requests. However, any non-pointer,
30183	// non-interface field appearing in ForceSendFields will be sent to the
30184	// server regardless of whether the field is empty or not. This may be
30185	// used to include empty fields in Patch requests.
30186	ForceSendFields []string `json:"-"`
30187
30188	// NullFields is a list of field names (e.g. "CreationTimestamp") to
30189	// include in API requests with the JSON null value. By default, fields
30190	// with empty values are omitted from API requests. However, any field
30191	// with an empty value appearing in NullFields will be sent to the
30192	// server as null. It is an error if a field in this list has a
30193	// non-empty value. This may be used to include null fields in Patch
30194	// requests.
30195	NullFields []string `json:"-"`
30196}
30197
30198func (s *PublicDelegatedPrefix) MarshalJSON() ([]byte, error) {
30199	type NoMethod PublicDelegatedPrefix
30200	raw := NoMethod(*s)
30201	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30202}
30203
30204type PublicDelegatedPrefixAggregatedList struct {
30205	// Id: [Output Only] Unique identifier for the resource; defined by the
30206	// server.
30207	Id string `json:"id,omitempty"`
30208
30209	// Items: A list of PublicDelegatedPrefixesScopedList resources.
30210	Items map[string]PublicDelegatedPrefixesScopedList `json:"items,omitempty"`
30211
30212	// Kind: [Output Only] Type of the resource. Always
30213	// compute#publicDelegatedPrefixAggregatedList for aggregated lists of
30214	// public delegated prefixes.
30215	Kind string `json:"kind,omitempty"`
30216
30217	// NextPageToken: [Output Only] This token allows you to get the next
30218	// page of results for list requests. If the number of results is larger
30219	// than maxResults, use the nextPageToken as a value for the query
30220	// parameter pageToken in the next list request. Subsequent list
30221	// requests will have their own nextPageToken to continue paging through
30222	// the results.
30223	NextPageToken string `json:"nextPageToken,omitempty"`
30224
30225	// SelfLink: [Output Only] Server-defined URL for this resource.
30226	SelfLink string `json:"selfLink,omitempty"`
30227
30228	// Warning: [Output Only] Informational warning message.
30229	Warning *PublicDelegatedPrefixAggregatedListWarning `json:"warning,omitempty"`
30230
30231	// ServerResponse contains the HTTP response code and headers from the
30232	// server.
30233	googleapi.ServerResponse `json:"-"`
30234
30235	// ForceSendFields is a list of field names (e.g. "Id") to
30236	// unconditionally include in API requests. By default, fields with
30237	// empty values are omitted from API requests. However, any non-pointer,
30238	// non-interface field appearing in ForceSendFields will be sent to the
30239	// server regardless of whether the field is empty or not. This may be
30240	// used to include empty fields in Patch requests.
30241	ForceSendFields []string `json:"-"`
30242
30243	// NullFields is a list of field names (e.g. "Id") to include in API
30244	// requests with the JSON null value. By default, fields with empty
30245	// values are omitted from API requests. However, any field with an
30246	// empty value appearing in NullFields will be sent to the server as
30247	// null. It is an error if a field in this list has a non-empty value.
30248	// This may be used to include null fields in Patch requests.
30249	NullFields []string `json:"-"`
30250}
30251
30252func (s *PublicDelegatedPrefixAggregatedList) MarshalJSON() ([]byte, error) {
30253	type NoMethod PublicDelegatedPrefixAggregatedList
30254	raw := NoMethod(*s)
30255	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30256}
30257
30258// PublicDelegatedPrefixAggregatedListWarning: [Output Only]
30259// Informational warning message.
30260type PublicDelegatedPrefixAggregatedListWarning struct {
30261	// Code: [Output Only] A warning code, if applicable. For example,
30262	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
30263	// the response.
30264	//
30265	// Possible values:
30266	//   "CLEANUP_FAILED"
30267	//   "DEPRECATED_RESOURCE_USED"
30268	//   "DEPRECATED_TYPE_USED"
30269	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
30270	//   "EXPERIMENTAL_TYPE_USED"
30271	//   "EXTERNAL_API_WARNING"
30272	//   "FIELD_VALUE_OVERRIDEN"
30273	//   "INJECTED_KERNELS_DEPRECATED"
30274	//   "MISSING_TYPE_DEPENDENCY"
30275	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
30276	//   "NEXT_HOP_CANNOT_IP_FORWARD"
30277	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
30278	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
30279	//   "NEXT_HOP_NOT_RUNNING"
30280	//   "NOT_CRITICAL_ERROR"
30281	//   "NO_RESULTS_ON_PAGE"
30282	//   "REQUIRED_TOS_AGREEMENT"
30283	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
30284	//   "RESOURCE_NOT_DELETED"
30285	//   "SCHEMA_VALIDATION_IGNORED"
30286	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
30287	//   "UNDECLARED_PROPERTIES"
30288	//   "UNREACHABLE"
30289	Code string `json:"code,omitempty"`
30290
30291	// Data: [Output Only] Metadata about this warning in key: value format.
30292	// For example:
30293	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
30294	Data []*PublicDelegatedPrefixAggregatedListWarningData `json:"data,omitempty"`
30295
30296	// Message: [Output Only] A human-readable description of the warning
30297	// code.
30298	Message string `json:"message,omitempty"`
30299
30300	// ForceSendFields is a list of field names (e.g. "Code") to
30301	// unconditionally include in API requests. By default, fields with
30302	// empty values are omitted from API requests. However, any non-pointer,
30303	// non-interface field appearing in ForceSendFields will be sent to the
30304	// server regardless of whether the field is empty or not. This may be
30305	// used to include empty fields in Patch requests.
30306	ForceSendFields []string `json:"-"`
30307
30308	// NullFields is a list of field names (e.g. "Code") to include in API
30309	// requests with the JSON null value. By default, fields with empty
30310	// values are omitted from API requests. However, any field with an
30311	// empty value appearing in NullFields will be sent to the server as
30312	// null. It is an error if a field in this list has a non-empty value.
30313	// This may be used to include null fields in Patch requests.
30314	NullFields []string `json:"-"`
30315}
30316
30317func (s *PublicDelegatedPrefixAggregatedListWarning) MarshalJSON() ([]byte, error) {
30318	type NoMethod PublicDelegatedPrefixAggregatedListWarning
30319	raw := NoMethod(*s)
30320	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30321}
30322
30323type PublicDelegatedPrefixAggregatedListWarningData struct {
30324	// Key: [Output Only] A key that provides more detail on the warning
30325	// being returned. For example, for warnings where there are no results
30326	// in a list request for a particular zone, this key might be scope and
30327	// the key value might be the zone name. Other examples might be a key
30328	// indicating a deprecated resource and a suggested replacement, or a
30329	// warning about invalid network settings (for example, if an instance
30330	// attempts to perform IP forwarding but is not enabled for IP
30331	// forwarding).
30332	Key string `json:"key,omitempty"`
30333
30334	// Value: [Output Only] A warning data value corresponding to the key.
30335	Value string `json:"value,omitempty"`
30336
30337	// ForceSendFields is a list of field names (e.g. "Key") to
30338	// unconditionally include in API requests. By default, fields with
30339	// empty values are omitted from API requests. However, any non-pointer,
30340	// non-interface field appearing in ForceSendFields will be sent to the
30341	// server regardless of whether the field is empty or not. This may be
30342	// used to include empty fields in Patch requests.
30343	ForceSendFields []string `json:"-"`
30344
30345	// NullFields is a list of field names (e.g. "Key") to include in API
30346	// requests with the JSON null value. By default, fields with empty
30347	// values are omitted from API requests. However, any field with an
30348	// empty value appearing in NullFields will be sent to the server as
30349	// null. It is an error if a field in this list has a non-empty value.
30350	// This may be used to include null fields in Patch requests.
30351	NullFields []string `json:"-"`
30352}
30353
30354func (s *PublicDelegatedPrefixAggregatedListWarningData) MarshalJSON() ([]byte, error) {
30355	type NoMethod PublicDelegatedPrefixAggregatedListWarningData
30356	raw := NoMethod(*s)
30357	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30358}
30359
30360type PublicDelegatedPrefixList struct {
30361	// Id: [Output Only] Unique identifier for the resource; defined by the
30362	// server.
30363	Id string `json:"id,omitempty"`
30364
30365	// Items: A list of PublicDelegatedPrefix resources.
30366	Items []*PublicDelegatedPrefix `json:"items,omitempty"`
30367
30368	// Kind: [Output Only] Type of the resource. Always
30369	// compute#publicDelegatedPrefixList for public delegated prefixes.
30370	Kind string `json:"kind,omitempty"`
30371
30372	// NextPageToken: [Output Only] This token allows you to get the next
30373	// page of results for list requests. If the number of results is larger
30374	// than maxResults, use the nextPageToken as a value for the query
30375	// parameter pageToken in the next list request. Subsequent list
30376	// requests will have their own nextPageToken to continue paging through
30377	// the results.
30378	NextPageToken string `json:"nextPageToken,omitempty"`
30379
30380	// SelfLink: [Output Only] Server-defined URL for this resource.
30381	SelfLink string `json:"selfLink,omitempty"`
30382
30383	// Warning: [Output Only] Informational warning message.
30384	Warning *PublicDelegatedPrefixListWarning `json:"warning,omitempty"`
30385
30386	// ServerResponse contains the HTTP response code and headers from the
30387	// server.
30388	googleapi.ServerResponse `json:"-"`
30389
30390	// ForceSendFields is a list of field names (e.g. "Id") to
30391	// unconditionally include in API requests. By default, fields with
30392	// empty values are omitted from API requests. However, any non-pointer,
30393	// non-interface field appearing in ForceSendFields will be sent to the
30394	// server regardless of whether the field is empty or not. This may be
30395	// used to include empty fields in Patch requests.
30396	ForceSendFields []string `json:"-"`
30397
30398	// NullFields is a list of field names (e.g. "Id") to include in API
30399	// requests with the JSON null value. By default, fields with empty
30400	// values are omitted from API requests. However, any field with an
30401	// empty value appearing in NullFields will be sent to the server as
30402	// null. It is an error if a field in this list has a non-empty value.
30403	// This may be used to include null fields in Patch requests.
30404	NullFields []string `json:"-"`
30405}
30406
30407func (s *PublicDelegatedPrefixList) MarshalJSON() ([]byte, error) {
30408	type NoMethod PublicDelegatedPrefixList
30409	raw := NoMethod(*s)
30410	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30411}
30412
30413// PublicDelegatedPrefixListWarning: [Output Only] Informational warning
30414// message.
30415type PublicDelegatedPrefixListWarning struct {
30416	// Code: [Output Only] A warning code, if applicable. For example,
30417	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
30418	// the response.
30419	//
30420	// Possible values:
30421	//   "CLEANUP_FAILED"
30422	//   "DEPRECATED_RESOURCE_USED"
30423	//   "DEPRECATED_TYPE_USED"
30424	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
30425	//   "EXPERIMENTAL_TYPE_USED"
30426	//   "EXTERNAL_API_WARNING"
30427	//   "FIELD_VALUE_OVERRIDEN"
30428	//   "INJECTED_KERNELS_DEPRECATED"
30429	//   "MISSING_TYPE_DEPENDENCY"
30430	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
30431	//   "NEXT_HOP_CANNOT_IP_FORWARD"
30432	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
30433	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
30434	//   "NEXT_HOP_NOT_RUNNING"
30435	//   "NOT_CRITICAL_ERROR"
30436	//   "NO_RESULTS_ON_PAGE"
30437	//   "REQUIRED_TOS_AGREEMENT"
30438	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
30439	//   "RESOURCE_NOT_DELETED"
30440	//   "SCHEMA_VALIDATION_IGNORED"
30441	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
30442	//   "UNDECLARED_PROPERTIES"
30443	//   "UNREACHABLE"
30444	Code string `json:"code,omitempty"`
30445
30446	// Data: [Output Only] Metadata about this warning in key: value format.
30447	// For example:
30448	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
30449	Data []*PublicDelegatedPrefixListWarningData `json:"data,omitempty"`
30450
30451	// Message: [Output Only] A human-readable description of the warning
30452	// code.
30453	Message string `json:"message,omitempty"`
30454
30455	// ForceSendFields is a list of field names (e.g. "Code") to
30456	// unconditionally include in API requests. By default, fields with
30457	// empty values are omitted from API requests. However, any non-pointer,
30458	// non-interface field appearing in ForceSendFields will be sent to the
30459	// server regardless of whether the field is empty or not. This may be
30460	// used to include empty fields in Patch requests.
30461	ForceSendFields []string `json:"-"`
30462
30463	// NullFields is a list of field names (e.g. "Code") to include in API
30464	// requests with the JSON null value. By default, fields with empty
30465	// values are omitted from API requests. However, any field with an
30466	// empty value appearing in NullFields will be sent to the server as
30467	// null. It is an error if a field in this list has a non-empty value.
30468	// This may be used to include null fields in Patch requests.
30469	NullFields []string `json:"-"`
30470}
30471
30472func (s *PublicDelegatedPrefixListWarning) MarshalJSON() ([]byte, error) {
30473	type NoMethod PublicDelegatedPrefixListWarning
30474	raw := NoMethod(*s)
30475	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30476}
30477
30478type PublicDelegatedPrefixListWarningData struct {
30479	// Key: [Output Only] A key that provides more detail on the warning
30480	// being returned. For example, for warnings where there are no results
30481	// in a list request for a particular zone, this key might be scope and
30482	// the key value might be the zone name. Other examples might be a key
30483	// indicating a deprecated resource and a suggested replacement, or a
30484	// warning about invalid network settings (for example, if an instance
30485	// attempts to perform IP forwarding but is not enabled for IP
30486	// forwarding).
30487	Key string `json:"key,omitempty"`
30488
30489	// Value: [Output Only] A warning data value corresponding to the key.
30490	Value string `json:"value,omitempty"`
30491
30492	// ForceSendFields is a list of field names (e.g. "Key") to
30493	// unconditionally include in API requests. By default, fields with
30494	// empty values are omitted from API requests. However, any non-pointer,
30495	// non-interface field appearing in ForceSendFields will be sent to the
30496	// server regardless of whether the field is empty or not. This may be
30497	// used to include empty fields in Patch requests.
30498	ForceSendFields []string `json:"-"`
30499
30500	// NullFields is a list of field names (e.g. "Key") to include in API
30501	// requests with the JSON null value. By default, fields with empty
30502	// values are omitted from API requests. However, any field with an
30503	// empty value appearing in NullFields will be sent to the server as
30504	// null. It is an error if a field in this list has a non-empty value.
30505	// This may be used to include null fields in Patch requests.
30506	NullFields []string `json:"-"`
30507}
30508
30509func (s *PublicDelegatedPrefixListWarningData) MarshalJSON() ([]byte, error) {
30510	type NoMethod PublicDelegatedPrefixListWarningData
30511	raw := NoMethod(*s)
30512	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30513}
30514
30515// PublicDelegatedPrefixPublicDelegatedSubPrefix: Represents a sub
30516// PublicDelegatedPrefix.
30517type PublicDelegatedPrefixPublicDelegatedSubPrefix struct {
30518	// DelegateeProject: Name of the project scoping this
30519	// PublicDelegatedSubPrefix.
30520	DelegateeProject string `json:"delegateeProject,omitempty"`
30521
30522	// Description: An optional description of this resource. Provide this
30523	// property when you create the resource.
30524	Description string `json:"description,omitempty"`
30525
30526	// IpCidrRange: The IPv4 address range, in CIDR format, represented by
30527	// this sub public delegated prefix.
30528	IpCidrRange string `json:"ipCidrRange,omitempty"`
30529
30530	// IsAddress: Whether the sub prefix is delegated to create Address
30531	// resources in the delegatee project.
30532	IsAddress bool `json:"isAddress,omitempty"`
30533
30534	// Name: The name of the sub public delegated prefix.
30535	Name string `json:"name,omitempty"`
30536
30537	// Region: [Output Only] The region of the sub public delegated prefix
30538	// if it is regional. If absent, the sub prefix is global.
30539	Region string `json:"region,omitempty"`
30540
30541	// Status: [Output Only] The status of the sub public delegated prefix.
30542	Status interface{} `json:"status,omitempty"`
30543
30544	// ForceSendFields is a list of field names (e.g. "DelegateeProject") to
30545	// unconditionally include in API requests. By default, fields with
30546	// empty values are omitted from API requests. However, any non-pointer,
30547	// non-interface field appearing in ForceSendFields will be sent to the
30548	// server regardless of whether the field is empty or not. This may be
30549	// used to include empty fields in Patch requests.
30550	ForceSendFields []string `json:"-"`
30551
30552	// NullFields is a list of field names (e.g. "DelegateeProject") to
30553	// include in API requests with the JSON null value. By default, fields
30554	// with empty values are omitted from API requests. However, any field
30555	// with an empty value appearing in NullFields will be sent to the
30556	// server as null. It is an error if a field in this list has a
30557	// non-empty value. This may be used to include null fields in Patch
30558	// requests.
30559	NullFields []string `json:"-"`
30560}
30561
30562func (s *PublicDelegatedPrefixPublicDelegatedSubPrefix) MarshalJSON() ([]byte, error) {
30563	type NoMethod PublicDelegatedPrefixPublicDelegatedSubPrefix
30564	raw := NoMethod(*s)
30565	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30566}
30567
30568type PublicDelegatedPrefixesScopedList struct {
30569	// PublicDelegatedPrefixes: [Output Only] A list of
30570	// PublicDelegatedPrefixes contained in this scope.
30571	PublicDelegatedPrefixes []*PublicDelegatedPrefix `json:"publicDelegatedPrefixes,omitempty"`
30572
30573	// Warning: [Output Only] Informational warning which replaces the list
30574	// of public delegated prefixes when the list is empty.
30575	Warning *PublicDelegatedPrefixesScopedListWarning `json:"warning,omitempty"`
30576
30577	// ForceSendFields is a list of field names (e.g.
30578	// "PublicDelegatedPrefixes") to unconditionally include in API
30579	// requests. By default, fields with empty values are omitted from API
30580	// requests. However, any non-pointer, non-interface field appearing in
30581	// ForceSendFields will be sent to the server regardless of whether the
30582	// field is empty or not. This may be used to include empty fields in
30583	// Patch requests.
30584	ForceSendFields []string `json:"-"`
30585
30586	// NullFields is a list of field names (e.g. "PublicDelegatedPrefixes")
30587	// to include in API requests with the JSON null value. By default,
30588	// fields with empty values are omitted from API requests. However, any
30589	// field with an empty value appearing in NullFields will be sent to the
30590	// server as null. It is an error if a field in this list has a
30591	// non-empty value. This may be used to include null fields in Patch
30592	// requests.
30593	NullFields []string `json:"-"`
30594}
30595
30596func (s *PublicDelegatedPrefixesScopedList) MarshalJSON() ([]byte, error) {
30597	type NoMethod PublicDelegatedPrefixesScopedList
30598	raw := NoMethod(*s)
30599	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30600}
30601
30602// PublicDelegatedPrefixesScopedListWarning: [Output Only] Informational
30603// warning which replaces the list of public delegated prefixes when the
30604// list is empty.
30605type PublicDelegatedPrefixesScopedListWarning struct {
30606	// Code: [Output Only] A warning code, if applicable. For example,
30607	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
30608	// the response.
30609	//
30610	// Possible values:
30611	//   "CLEANUP_FAILED"
30612	//   "DEPRECATED_RESOURCE_USED"
30613	//   "DEPRECATED_TYPE_USED"
30614	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
30615	//   "EXPERIMENTAL_TYPE_USED"
30616	//   "EXTERNAL_API_WARNING"
30617	//   "FIELD_VALUE_OVERRIDEN"
30618	//   "INJECTED_KERNELS_DEPRECATED"
30619	//   "MISSING_TYPE_DEPENDENCY"
30620	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
30621	//   "NEXT_HOP_CANNOT_IP_FORWARD"
30622	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
30623	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
30624	//   "NEXT_HOP_NOT_RUNNING"
30625	//   "NOT_CRITICAL_ERROR"
30626	//   "NO_RESULTS_ON_PAGE"
30627	//   "REQUIRED_TOS_AGREEMENT"
30628	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
30629	//   "RESOURCE_NOT_DELETED"
30630	//   "SCHEMA_VALIDATION_IGNORED"
30631	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
30632	//   "UNDECLARED_PROPERTIES"
30633	//   "UNREACHABLE"
30634	Code string `json:"code,omitempty"`
30635
30636	// Data: [Output Only] Metadata about this warning in key: value format.
30637	// For example:
30638	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
30639	Data []*PublicDelegatedPrefixesScopedListWarningData `json:"data,omitempty"`
30640
30641	// Message: [Output Only] A human-readable description of the warning
30642	// code.
30643	Message string `json:"message,omitempty"`
30644
30645	// ForceSendFields is a list of field names (e.g. "Code") to
30646	// unconditionally include in API requests. By default, fields with
30647	// empty values are omitted from API requests. However, any non-pointer,
30648	// non-interface field appearing in ForceSendFields will be sent to the
30649	// server regardless of whether the field is empty or not. This may be
30650	// used to include empty fields in Patch requests.
30651	ForceSendFields []string `json:"-"`
30652
30653	// NullFields is a list of field names (e.g. "Code") to include in API
30654	// requests with the JSON null value. By default, fields with empty
30655	// values are omitted from API requests. However, any field with an
30656	// empty value appearing in NullFields will be sent to the server as
30657	// null. It is an error if a field in this list has a non-empty value.
30658	// This may be used to include null fields in Patch requests.
30659	NullFields []string `json:"-"`
30660}
30661
30662func (s *PublicDelegatedPrefixesScopedListWarning) MarshalJSON() ([]byte, error) {
30663	type NoMethod PublicDelegatedPrefixesScopedListWarning
30664	raw := NoMethod(*s)
30665	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30666}
30667
30668type PublicDelegatedPrefixesScopedListWarningData struct {
30669	// Key: [Output Only] A key that provides more detail on the warning
30670	// being returned. For example, for warnings where there are no results
30671	// in a list request for a particular zone, this key might be scope and
30672	// the key value might be the zone name. Other examples might be a key
30673	// indicating a deprecated resource and a suggested replacement, or a
30674	// warning about invalid network settings (for example, if an instance
30675	// attempts to perform IP forwarding but is not enabled for IP
30676	// forwarding).
30677	Key string `json:"key,omitempty"`
30678
30679	// Value: [Output Only] A warning data value corresponding to the key.
30680	Value string `json:"value,omitempty"`
30681
30682	// ForceSendFields is a list of field names (e.g. "Key") to
30683	// unconditionally include in API requests. By default, fields with
30684	// empty values are omitted from API requests. However, any non-pointer,
30685	// non-interface field appearing in ForceSendFields will be sent to the
30686	// server regardless of whether the field is empty or not. This may be
30687	// used to include empty fields in Patch requests.
30688	ForceSendFields []string `json:"-"`
30689
30690	// NullFields is a list of field names (e.g. "Key") to include in API
30691	// requests with the JSON null value. By default, fields with empty
30692	// values are omitted from API requests. However, any field with an
30693	// empty value appearing in NullFields will be sent to the server as
30694	// null. It is an error if a field in this list has a non-empty value.
30695	// This may be used to include null fields in Patch requests.
30696	NullFields []string `json:"-"`
30697}
30698
30699func (s *PublicDelegatedPrefixesScopedListWarningData) MarshalJSON() ([]byte, error) {
30700	type NoMethod PublicDelegatedPrefixesScopedListWarningData
30701	raw := NoMethod(*s)
30702	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30703}
30704
30705// Quota: A quotas entry.
30706type Quota struct {
30707	// Limit: [Output Only] Quota limit for this metric.
30708	Limit float64 `json:"limit,omitempty"`
30709
30710	// Metric: [Output Only] Name of the quota metric.
30711	//
30712	// Possible values:
30713	//   "ALIASES_PER_NETWORK_GLOBAL"
30714	//   "AMD_S9300_GPUS"
30715	//   "AUTOSCALERS"
30716	//   "BACKEND_BUCKETS"
30717	//   "BACKEND_SERVICES"
30718	//   "C2_CPUS"
30719	//   "COMMITMENTS"
30720	//   "COMMITTED_C2_CPUS"
30721	//   "COMMITTED_CPUS"
30722	//   "COMMITTED_LOCAL_SSD_TOTAL_GB"
30723	//   "COMMITTED_N2_CPUS"
30724	//   "COMMITTED_NVIDIA_K80_GPUS"
30725	//   "COMMITTED_NVIDIA_P100_GPUS"
30726	//   "COMMITTED_NVIDIA_P4_GPUS"
30727	//   "COMMITTED_NVIDIA_T4_GPUS"
30728	//   "COMMITTED_NVIDIA_V100_GPUS"
30729	//   "CPUS"
30730	//   "CPUS_ALL_REGIONS"
30731	//   "DISKS_TOTAL_GB"
30732	//   "EXTERNAL_VPN_GATEWAYS"
30733	//   "FIREWALLS"
30734	//   "FORWARDING_RULES"
30735	//   "GLOBAL_INTERNAL_ADDRESSES"
30736	//   "GPUS_ALL_REGIONS"
30737	//   "HEALTH_CHECKS"
30738	//   "IMAGES"
30739	//   "INSTANCES"
30740	//   "INSTANCES_PER_NETWORK_GLOBAL"
30741	//   "INSTANCE_GROUPS"
30742	//   "INSTANCE_GROUP_MANAGERS"
30743	//   "INSTANCE_TEMPLATES"
30744	//   "INTERCONNECTS"
30745	//   "INTERCONNECT_ATTACHMENTS_PER_REGION"
30746	//   "INTERCONNECT_ATTACHMENTS_TOTAL_MBPS"
30747	//   "INTERCONNECT_TOTAL_GBPS"
30748	//   "INTERNAL_ADDRESSES"
30749	//   "INTERNAL_FORWARDING_RULES_PER_NETWORK"
30750	//   "INTERNAL_FORWARDING_RULES_WITH_GLOBAL_ACCESS_PER_NETWORK"
30751	//   "INTERNAL_FORWARDING_RULES_WITH_TARGET_INSTANCE_PER_NETWORK"
30752	//   "INTERNAL_TARGET_INSTANCE_WITH_GLOBAL_ACCESS_PER_NETWORK"
30753	//   "IN_USE_ADDRESSES"
30754	//   "IN_USE_BACKUP_SCHEDULES"
30755	//   "IN_USE_MAINTENANCE_WINDOWS"
30756	//   "IN_USE_SNAPSHOT_SCHEDULES"
30757	//   "LOCAL_SSD_TOTAL_GB"
30758	//   "MACHINE_IMAGES"
30759	//   "N2_CPUS"
30760	//   "NETWORKS"
30761	//   "NETWORK_ENDPOINT_GROUPS"
30762	//   "NVIDIA_K80_GPUS"
30763	//   "NVIDIA_P100_GPUS"
30764	//   "NVIDIA_P100_VWS_GPUS"
30765	//   "NVIDIA_P4_GPUS"
30766	//   "NVIDIA_P4_VWS_GPUS"
30767	//   "NVIDIA_T4_GPUS"
30768	//   "NVIDIA_T4_VWS_GPUS"
30769	//   "NVIDIA_V100_GPUS"
30770	//   "PREEMPTIBLE_CPUS"
30771	//   "PREEMPTIBLE_LOCAL_SSD_GB"
30772	//   "PREEMPTIBLE_NVIDIA_K80_GPUS"
30773	//   "PREEMPTIBLE_NVIDIA_P100_GPUS"
30774	//   "PREEMPTIBLE_NVIDIA_P100_VWS_GPUS"
30775	//   "PREEMPTIBLE_NVIDIA_P4_GPUS"
30776	//   "PREEMPTIBLE_NVIDIA_P4_VWS_GPUS"
30777	//   "PREEMPTIBLE_NVIDIA_T4_GPUS"
30778	//   "PREEMPTIBLE_NVIDIA_T4_VWS_GPUS"
30779	//   "PREEMPTIBLE_NVIDIA_V100_GPUS"
30780	//   "PRIVATE_V6_ACCESS_SUBNETWORKS"
30781	//   "REGIONAL_AUTOSCALERS"
30782	//   "REGIONAL_INSTANCE_GROUP_MANAGERS"
30783	//   "RESERVATIONS"
30784	//   "RESOURCE_POLICIES"
30785	//   "ROUTERS"
30786	//   "ROUTES"
30787	//   "SECURITY_POLICIES"
30788	//   "SECURITY_POLICY_CEVAL_RULES"
30789	//   "SECURITY_POLICY_RULES"
30790	//   "SNAPSHOTS"
30791	//   "SSD_TOTAL_GB"
30792	//   "SSL_CERTIFICATES"
30793	//   "STATIC_ADDRESSES"
30794	//   "SUBNETWORKS"
30795	//   "TARGET_HTTPS_PROXIES"
30796	//   "TARGET_HTTP_PROXIES"
30797	//   "TARGET_INSTANCES"
30798	//   "TARGET_POOLS"
30799	//   "TARGET_SSL_PROXIES"
30800	//   "TARGET_TCP_PROXIES"
30801	//   "TARGET_VPN_GATEWAYS"
30802	//   "URL_MAPS"
30803	//   "VPN_GATEWAYS"
30804	//   "VPN_TUNNELS"
30805	//   "XPN_SERVICE_PROJECTS"
30806	Metric string `json:"metric,omitempty"`
30807
30808	// Owner: [Output Only] Owning resource. This is the resource on which
30809	// this quota is applied.
30810	Owner string `json:"owner,omitempty"`
30811
30812	// Usage: [Output Only] Current usage of this metric.
30813	Usage float64 `json:"usage,omitempty"`
30814
30815	// ForceSendFields is a list of field names (e.g. "Limit") to
30816	// unconditionally include in API requests. By default, fields with
30817	// empty values are omitted from API requests. However, any non-pointer,
30818	// non-interface field appearing in ForceSendFields will be sent to the
30819	// server regardless of whether the field is empty or not. This may be
30820	// used to include empty fields in Patch requests.
30821	ForceSendFields []string `json:"-"`
30822
30823	// NullFields is a list of field names (e.g. "Limit") to include in API
30824	// requests with the JSON null value. By default, fields with empty
30825	// values are omitted from API requests. However, any field with an
30826	// empty value appearing in NullFields will be sent to the server as
30827	// null. It is an error if a field in this list has a non-empty value.
30828	// This may be used to include null fields in Patch requests.
30829	NullFields []string `json:"-"`
30830}
30831
30832func (s *Quota) MarshalJSON() ([]byte, error) {
30833	type NoMethod Quota
30834	raw := NoMethod(*s)
30835	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30836}
30837
30838func (s *Quota) UnmarshalJSON(data []byte) error {
30839	type NoMethod Quota
30840	var s1 struct {
30841		Limit gensupport.JSONFloat64 `json:"limit"`
30842		Usage gensupport.JSONFloat64 `json:"usage"`
30843		*NoMethod
30844	}
30845	s1.NoMethod = (*NoMethod)(s)
30846	if err := json.Unmarshal(data, &s1); err != nil {
30847		return err
30848	}
30849	s.Limit = float64(s1.Limit)
30850	s.Usage = float64(s1.Usage)
30851	return nil
30852}
30853
30854type RbacPolicy struct {
30855	// Name: Name of the RbacPolicy.
30856	Name string `json:"name,omitempty"`
30857
30858	// Permissions: The list of permissions.
30859	Permissions []*Permission `json:"permissions,omitempty"`
30860
30861	// Principals: The list of principals.
30862	Principals []*Principal `json:"principals,omitempty"`
30863
30864	// ForceSendFields is a list of field names (e.g. "Name") to
30865	// unconditionally include in API requests. By default, fields with
30866	// empty values are omitted from API requests. However, any non-pointer,
30867	// non-interface field appearing in ForceSendFields will be sent to the
30868	// server regardless of whether the field is empty or not. This may be
30869	// used to include empty fields in Patch requests.
30870	ForceSendFields []string `json:"-"`
30871
30872	// NullFields is a list of field names (e.g. "Name") to include in API
30873	// requests with the JSON null value. By default, fields with empty
30874	// values are omitted from API requests. However, any field with an
30875	// empty value appearing in NullFields will be sent to the server as
30876	// null. It is an error if a field in this list has a non-empty value.
30877	// This may be used to include null fields in Patch requests.
30878	NullFields []string `json:"-"`
30879}
30880
30881func (s *RbacPolicy) MarshalJSON() ([]byte, error) {
30882	type NoMethod RbacPolicy
30883	raw := NoMethod(*s)
30884	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30885}
30886
30887// Reference: Represents a reference to a resource.
30888type Reference struct {
30889	// Kind: [Output Only] Type of the resource. Always compute#reference
30890	// for references.
30891	Kind string `json:"kind,omitempty"`
30892
30893	// ReferenceType: A description of the reference type with no implied
30894	// semantics. Possible values include:
30895	// - MEMBER_OF
30896	ReferenceType string `json:"referenceType,omitempty"`
30897
30898	// Referrer: URL of the resource which refers to the target.
30899	Referrer string `json:"referrer,omitempty"`
30900
30901	// Target: URL of the resource to which this reference points.
30902	Target string `json:"target,omitempty"`
30903
30904	// ForceSendFields is a list of field names (e.g. "Kind") to
30905	// unconditionally include in API requests. By default, fields with
30906	// empty values are omitted from API requests. However, any non-pointer,
30907	// non-interface field appearing in ForceSendFields will be sent to the
30908	// server regardless of whether the field is empty or not. This may be
30909	// used to include empty fields in Patch requests.
30910	ForceSendFields []string `json:"-"`
30911
30912	// NullFields is a list of field names (e.g. "Kind") to include in API
30913	// requests with the JSON null value. By default, fields with empty
30914	// values are omitted from API requests. However, any field with an
30915	// empty value appearing in NullFields will be sent to the server as
30916	// null. It is an error if a field in this list has a non-empty value.
30917	// This may be used to include null fields in Patch requests.
30918	NullFields []string `json:"-"`
30919}
30920
30921func (s *Reference) MarshalJSON() ([]byte, error) {
30922	type NoMethod Reference
30923	raw := NoMethod(*s)
30924	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30925}
30926
30927// Region: Represents a Region resource.
30928//
30929// A region is a geographical area where a resource is located. For more
30930// information, read Regions and Zones. (== resource_for beta.regions
30931// ==) (== resource_for v1.regions ==)
30932type Region struct {
30933	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
30934	// format.
30935	CreationTimestamp string `json:"creationTimestamp,omitempty"`
30936
30937	// Deprecated: [Output Only] The deprecation status associated with this
30938	// region.
30939	Deprecated *DeprecationStatus `json:"deprecated,omitempty"`
30940
30941	// Description: [Output Only] Textual description of the resource.
30942	Description string `json:"description,omitempty"`
30943
30944	// Id: [Output Only] The unique identifier for the resource. This
30945	// identifier is defined by the server.
30946	Id uint64 `json:"id,omitempty,string"`
30947
30948	// Kind: [Output Only] Type of the resource. Always compute#region for
30949	// regions.
30950	Kind string `json:"kind,omitempty"`
30951
30952	// Name: [Output Only] Name of the resource.
30953	Name string `json:"name,omitempty"`
30954
30955	// Quotas: [Output Only] Quotas assigned to this region.
30956	Quotas []*Quota `json:"quotas,omitempty"`
30957
30958	// SelfLink: [Output Only] Server-defined URL for the resource.
30959	SelfLink string `json:"selfLink,omitempty"`
30960
30961	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
30962	// with the resource id.
30963	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
30964
30965	// Status: [Output Only] Status of the region, either UP or DOWN.
30966	//
30967	// Possible values:
30968	//   "DOWN"
30969	//   "UP"
30970	Status string `json:"status,omitempty"`
30971
30972	// Zones: [Output Only] A list of zones available in this region, in the
30973	// form of resource URLs.
30974	Zones []string `json:"zones,omitempty"`
30975
30976	// ServerResponse contains the HTTP response code and headers from the
30977	// server.
30978	googleapi.ServerResponse `json:"-"`
30979
30980	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
30981	// to unconditionally include in API requests. By default, fields with
30982	// empty values are omitted from API requests. However, any non-pointer,
30983	// non-interface field appearing in ForceSendFields will be sent to the
30984	// server regardless of whether the field is empty or not. This may be
30985	// used to include empty fields in Patch requests.
30986	ForceSendFields []string `json:"-"`
30987
30988	// NullFields is a list of field names (e.g. "CreationTimestamp") to
30989	// include in API requests with the JSON null value. By default, fields
30990	// with empty values are omitted from API requests. However, any field
30991	// with an empty value appearing in NullFields will be sent to the
30992	// server as null. It is an error if a field in this list has a
30993	// non-empty value. This may be used to include null fields in Patch
30994	// requests.
30995	NullFields []string `json:"-"`
30996}
30997
30998func (s *Region) MarshalJSON() ([]byte, error) {
30999	type NoMethod Region
31000	raw := NoMethod(*s)
31001	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31002}
31003
31004// RegionAutoscalerList: Contains a list of autoscalers.
31005type RegionAutoscalerList struct {
31006	// Id: [Output Only] Unique identifier for the resource; defined by the
31007	// server.
31008	Id string `json:"id,omitempty"`
31009
31010	// Items: A list of Autoscaler resources.
31011	Items []*Autoscaler `json:"items,omitempty"`
31012
31013	// Kind: Type of resource.
31014	Kind string `json:"kind,omitempty"`
31015
31016	// NextPageToken: [Output Only] This token allows you to get the next
31017	// page of results for list requests. If the number of results is larger
31018	// than maxResults, use the nextPageToken as a value for the query
31019	// parameter pageToken in the next list request. Subsequent list
31020	// requests will have their own nextPageToken to continue paging through
31021	// the results.
31022	NextPageToken string `json:"nextPageToken,omitempty"`
31023
31024	// SelfLink: [Output Only] Server-defined URL for this resource.
31025	SelfLink string `json:"selfLink,omitempty"`
31026
31027	// Warning: [Output Only] Informational warning message.
31028	Warning *RegionAutoscalerListWarning `json:"warning,omitempty"`
31029
31030	// ServerResponse contains the HTTP response code and headers from the
31031	// server.
31032	googleapi.ServerResponse `json:"-"`
31033
31034	// ForceSendFields is a list of field names (e.g. "Id") to
31035	// unconditionally include in API requests. By default, fields with
31036	// empty values are omitted from API requests. However, any non-pointer,
31037	// non-interface field appearing in ForceSendFields will be sent to the
31038	// server regardless of whether the field is empty or not. This may be
31039	// used to include empty fields in Patch requests.
31040	ForceSendFields []string `json:"-"`
31041
31042	// NullFields is a list of field names (e.g. "Id") to include in API
31043	// requests with the JSON null value. By default, fields with empty
31044	// values are omitted from API requests. However, any field with an
31045	// empty value appearing in NullFields will be sent to the server as
31046	// null. It is an error if a field in this list has a non-empty value.
31047	// This may be used to include null fields in Patch requests.
31048	NullFields []string `json:"-"`
31049}
31050
31051func (s *RegionAutoscalerList) MarshalJSON() ([]byte, error) {
31052	type NoMethod RegionAutoscalerList
31053	raw := NoMethod(*s)
31054	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31055}
31056
31057// RegionAutoscalerListWarning: [Output Only] Informational warning
31058// message.
31059type RegionAutoscalerListWarning struct {
31060	// Code: [Output Only] A warning code, if applicable. For example,
31061	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
31062	// the response.
31063	//
31064	// Possible values:
31065	//   "CLEANUP_FAILED"
31066	//   "DEPRECATED_RESOURCE_USED"
31067	//   "DEPRECATED_TYPE_USED"
31068	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
31069	//   "EXPERIMENTAL_TYPE_USED"
31070	//   "EXTERNAL_API_WARNING"
31071	//   "FIELD_VALUE_OVERRIDEN"
31072	//   "INJECTED_KERNELS_DEPRECATED"
31073	//   "MISSING_TYPE_DEPENDENCY"
31074	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
31075	//   "NEXT_HOP_CANNOT_IP_FORWARD"
31076	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
31077	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
31078	//   "NEXT_HOP_NOT_RUNNING"
31079	//   "NOT_CRITICAL_ERROR"
31080	//   "NO_RESULTS_ON_PAGE"
31081	//   "REQUIRED_TOS_AGREEMENT"
31082	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
31083	//   "RESOURCE_NOT_DELETED"
31084	//   "SCHEMA_VALIDATION_IGNORED"
31085	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
31086	//   "UNDECLARED_PROPERTIES"
31087	//   "UNREACHABLE"
31088	Code string `json:"code,omitempty"`
31089
31090	// Data: [Output Only] Metadata about this warning in key: value format.
31091	// For example:
31092	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
31093	Data []*RegionAutoscalerListWarningData `json:"data,omitempty"`
31094
31095	// Message: [Output Only] A human-readable description of the warning
31096	// code.
31097	Message string `json:"message,omitempty"`
31098
31099	// ForceSendFields is a list of field names (e.g. "Code") to
31100	// unconditionally include in API requests. By default, fields with
31101	// empty values are omitted from API requests. However, any non-pointer,
31102	// non-interface field appearing in ForceSendFields will be sent to the
31103	// server regardless of whether the field is empty or not. This may be
31104	// used to include empty fields in Patch requests.
31105	ForceSendFields []string `json:"-"`
31106
31107	// NullFields is a list of field names (e.g. "Code") to include in API
31108	// requests with the JSON null value. By default, fields with empty
31109	// values are omitted from API requests. However, any field with an
31110	// empty value appearing in NullFields will be sent to the server as
31111	// null. It is an error if a field in this list has a non-empty value.
31112	// This may be used to include null fields in Patch requests.
31113	NullFields []string `json:"-"`
31114}
31115
31116func (s *RegionAutoscalerListWarning) MarshalJSON() ([]byte, error) {
31117	type NoMethod RegionAutoscalerListWarning
31118	raw := NoMethod(*s)
31119	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31120}
31121
31122type RegionAutoscalerListWarningData struct {
31123	// Key: [Output Only] A key that provides more detail on the warning
31124	// being returned. For example, for warnings where there are no results
31125	// in a list request for a particular zone, this key might be scope and
31126	// the key value might be the zone name. Other examples might be a key
31127	// indicating a deprecated resource and a suggested replacement, or a
31128	// warning about invalid network settings (for example, if an instance
31129	// attempts to perform IP forwarding but is not enabled for IP
31130	// forwarding).
31131	Key string `json:"key,omitempty"`
31132
31133	// Value: [Output Only] A warning data value corresponding to the key.
31134	Value string `json:"value,omitempty"`
31135
31136	// ForceSendFields is a list of field names (e.g. "Key") to
31137	// unconditionally include in API requests. By default, fields with
31138	// empty values are omitted from API requests. However, any non-pointer,
31139	// non-interface field appearing in ForceSendFields will be sent to the
31140	// server regardless of whether the field is empty or not. This may be
31141	// used to include empty fields in Patch requests.
31142	ForceSendFields []string `json:"-"`
31143
31144	// NullFields is a list of field names (e.g. "Key") to include in API
31145	// requests with the JSON null value. By default, fields with empty
31146	// values are omitted from API requests. However, any field with an
31147	// empty value appearing in NullFields will be sent to the server as
31148	// null. It is an error if a field in this list has a non-empty value.
31149	// This may be used to include null fields in Patch requests.
31150	NullFields []string `json:"-"`
31151}
31152
31153func (s *RegionAutoscalerListWarningData) MarshalJSON() ([]byte, error) {
31154	type NoMethod RegionAutoscalerListWarningData
31155	raw := NoMethod(*s)
31156	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31157}
31158
31159type RegionCommitmentsUpdateReservationsRequest struct {
31160	// Reservations: List of two reservations to transfer GPUs and local SSD
31161	// between.
31162	Reservations []*Reservation `json:"reservations,omitempty"`
31163
31164	// ForceSendFields is a list of field names (e.g. "Reservations") to
31165	// unconditionally include in API requests. By default, fields with
31166	// empty values are omitted from API requests. However, any non-pointer,
31167	// non-interface field appearing in ForceSendFields will be sent to the
31168	// server regardless of whether the field is empty or not. This may be
31169	// used to include empty fields in Patch requests.
31170	ForceSendFields []string `json:"-"`
31171
31172	// NullFields is a list of field names (e.g. "Reservations") to include
31173	// in API requests with the JSON null value. By default, fields with
31174	// empty values are omitted from API requests. However, any field with
31175	// an empty value appearing in NullFields will be sent to the server as
31176	// null. It is an error if a field in this list has a non-empty value.
31177	// This may be used to include null fields in Patch requests.
31178	NullFields []string `json:"-"`
31179}
31180
31181func (s *RegionCommitmentsUpdateReservationsRequest) MarshalJSON() ([]byte, error) {
31182	type NoMethod RegionCommitmentsUpdateReservationsRequest
31183	raw := NoMethod(*s)
31184	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31185}
31186
31187type RegionDiskTypeList struct {
31188	// Id: [Output Only] Unique identifier for the resource; defined by the
31189	// server.
31190	Id string `json:"id,omitempty"`
31191
31192	// Items: A list of DiskType resources.
31193	Items []*DiskType `json:"items,omitempty"`
31194
31195	// Kind: [Output Only] Type of resource. Always
31196	// compute#regionDiskTypeList for region disk types.
31197	Kind string `json:"kind,omitempty"`
31198
31199	// NextPageToken: [Output Only] This token allows you to get the next
31200	// page of results for list requests. If the number of results is larger
31201	// than maxResults, use the nextPageToken as a value for the query
31202	// parameter pageToken in the next list request. Subsequent list
31203	// requests will have their own nextPageToken to continue paging through
31204	// the results.
31205	NextPageToken string `json:"nextPageToken,omitempty"`
31206
31207	// SelfLink: [Output Only] Server-defined URL for this resource.
31208	SelfLink string `json:"selfLink,omitempty"`
31209
31210	// Warning: [Output Only] Informational warning message.
31211	Warning *RegionDiskTypeListWarning `json:"warning,omitempty"`
31212
31213	// ServerResponse contains the HTTP response code and headers from the
31214	// server.
31215	googleapi.ServerResponse `json:"-"`
31216
31217	// ForceSendFields is a list of field names (e.g. "Id") to
31218	// unconditionally include in API requests. By default, fields with
31219	// empty values are omitted from API requests. However, any non-pointer,
31220	// non-interface field appearing in ForceSendFields will be sent to the
31221	// server regardless of whether the field is empty or not. This may be
31222	// used to include empty fields in Patch requests.
31223	ForceSendFields []string `json:"-"`
31224
31225	// NullFields is a list of field names (e.g. "Id") to include in API
31226	// requests with the JSON null value. By default, fields with empty
31227	// values are omitted from API requests. However, any field with an
31228	// empty value appearing in NullFields will be sent to the server as
31229	// null. It is an error if a field in this list has a non-empty value.
31230	// This may be used to include null fields in Patch requests.
31231	NullFields []string `json:"-"`
31232}
31233
31234func (s *RegionDiskTypeList) MarshalJSON() ([]byte, error) {
31235	type NoMethod RegionDiskTypeList
31236	raw := NoMethod(*s)
31237	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31238}
31239
31240// RegionDiskTypeListWarning: [Output Only] Informational warning
31241// message.
31242type RegionDiskTypeListWarning struct {
31243	// Code: [Output Only] A warning code, if applicable. For example,
31244	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
31245	// the response.
31246	//
31247	// Possible values:
31248	//   "CLEANUP_FAILED"
31249	//   "DEPRECATED_RESOURCE_USED"
31250	//   "DEPRECATED_TYPE_USED"
31251	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
31252	//   "EXPERIMENTAL_TYPE_USED"
31253	//   "EXTERNAL_API_WARNING"
31254	//   "FIELD_VALUE_OVERRIDEN"
31255	//   "INJECTED_KERNELS_DEPRECATED"
31256	//   "MISSING_TYPE_DEPENDENCY"
31257	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
31258	//   "NEXT_HOP_CANNOT_IP_FORWARD"
31259	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
31260	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
31261	//   "NEXT_HOP_NOT_RUNNING"
31262	//   "NOT_CRITICAL_ERROR"
31263	//   "NO_RESULTS_ON_PAGE"
31264	//   "REQUIRED_TOS_AGREEMENT"
31265	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
31266	//   "RESOURCE_NOT_DELETED"
31267	//   "SCHEMA_VALIDATION_IGNORED"
31268	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
31269	//   "UNDECLARED_PROPERTIES"
31270	//   "UNREACHABLE"
31271	Code string `json:"code,omitempty"`
31272
31273	// Data: [Output Only] Metadata about this warning in key: value format.
31274	// For example:
31275	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
31276	Data []*RegionDiskTypeListWarningData `json:"data,omitempty"`
31277
31278	// Message: [Output Only] A human-readable description of the warning
31279	// code.
31280	Message string `json:"message,omitempty"`
31281
31282	// ForceSendFields is a list of field names (e.g. "Code") to
31283	// unconditionally include in API requests. By default, fields with
31284	// empty values are omitted from API requests. However, any non-pointer,
31285	// non-interface field appearing in ForceSendFields will be sent to the
31286	// server regardless of whether the field is empty or not. This may be
31287	// used to include empty fields in Patch requests.
31288	ForceSendFields []string `json:"-"`
31289
31290	// NullFields is a list of field names (e.g. "Code") to include in API
31291	// requests with the JSON null value. By default, fields with empty
31292	// values are omitted from API requests. However, any field with an
31293	// empty value appearing in NullFields will be sent to the server as
31294	// null. It is an error if a field in this list has a non-empty value.
31295	// This may be used to include null fields in Patch requests.
31296	NullFields []string `json:"-"`
31297}
31298
31299func (s *RegionDiskTypeListWarning) MarshalJSON() ([]byte, error) {
31300	type NoMethod RegionDiskTypeListWarning
31301	raw := NoMethod(*s)
31302	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31303}
31304
31305type RegionDiskTypeListWarningData struct {
31306	// Key: [Output Only] A key that provides more detail on the warning
31307	// being returned. For example, for warnings where there are no results
31308	// in a list request for a particular zone, this key might be scope and
31309	// the key value might be the zone name. Other examples might be a key
31310	// indicating a deprecated resource and a suggested replacement, or a
31311	// warning about invalid network settings (for example, if an instance
31312	// attempts to perform IP forwarding but is not enabled for IP
31313	// forwarding).
31314	Key string `json:"key,omitempty"`
31315
31316	// Value: [Output Only] A warning data value corresponding to the key.
31317	Value string `json:"value,omitempty"`
31318
31319	// ForceSendFields is a list of field names (e.g. "Key") to
31320	// unconditionally include in API requests. By default, fields with
31321	// empty values are omitted from API requests. However, any non-pointer,
31322	// non-interface field appearing in ForceSendFields will be sent to the
31323	// server regardless of whether the field is empty or not. This may be
31324	// used to include empty fields in Patch requests.
31325	ForceSendFields []string `json:"-"`
31326
31327	// NullFields is a list of field names (e.g. "Key") to include in API
31328	// requests with the JSON null value. By default, fields with empty
31329	// values are omitted from API requests. However, any field with an
31330	// empty value appearing in NullFields will be sent to the server as
31331	// null. It is an error if a field in this list has a non-empty value.
31332	// This may be used to include null fields in Patch requests.
31333	NullFields []string `json:"-"`
31334}
31335
31336func (s *RegionDiskTypeListWarningData) MarshalJSON() ([]byte, error) {
31337	type NoMethod RegionDiskTypeListWarningData
31338	raw := NoMethod(*s)
31339	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31340}
31341
31342type RegionDisksAddResourcePoliciesRequest struct {
31343	// ResourcePolicies: Resource policies to be added to this disk.
31344	ResourcePolicies []string `json:"resourcePolicies,omitempty"`
31345
31346	// ForceSendFields is a list of field names (e.g. "ResourcePolicies") to
31347	// unconditionally include in API requests. By default, fields with
31348	// empty values are omitted from API requests. However, any non-pointer,
31349	// non-interface field appearing in ForceSendFields will be sent to the
31350	// server regardless of whether the field is empty or not. This may be
31351	// used to include empty fields in Patch requests.
31352	ForceSendFields []string `json:"-"`
31353
31354	// NullFields is a list of field names (e.g. "ResourcePolicies") to
31355	// include in API requests with the JSON null value. By default, fields
31356	// with empty values are omitted from API requests. However, any field
31357	// with an empty value appearing in NullFields will be sent to the
31358	// server as null. It is an error if a field in this list has a
31359	// non-empty value. This may be used to include null fields in Patch
31360	// requests.
31361	NullFields []string `json:"-"`
31362}
31363
31364func (s *RegionDisksAddResourcePoliciesRequest) MarshalJSON() ([]byte, error) {
31365	type NoMethod RegionDisksAddResourcePoliciesRequest
31366	raw := NoMethod(*s)
31367	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31368}
31369
31370type RegionDisksRemoveResourcePoliciesRequest struct {
31371	// ResourcePolicies: Resource policies to be removed from this disk.
31372	ResourcePolicies []string `json:"resourcePolicies,omitempty"`
31373
31374	// ForceSendFields is a list of field names (e.g. "ResourcePolicies") to
31375	// unconditionally include in API requests. By default, fields with
31376	// empty values are omitted from API requests. However, any non-pointer,
31377	// non-interface field appearing in ForceSendFields will be sent to the
31378	// server regardless of whether the field is empty or not. This may be
31379	// used to include empty fields in Patch requests.
31380	ForceSendFields []string `json:"-"`
31381
31382	// NullFields is a list of field names (e.g. "ResourcePolicies") to
31383	// include in API requests with the JSON null value. By default, fields
31384	// with empty values are omitted from API requests. However, any field
31385	// with an empty value appearing in NullFields will be sent to the
31386	// server as null. It is an error if a field in this list has a
31387	// non-empty value. This may be used to include null fields in Patch
31388	// requests.
31389	NullFields []string `json:"-"`
31390}
31391
31392func (s *RegionDisksRemoveResourcePoliciesRequest) MarshalJSON() ([]byte, error) {
31393	type NoMethod RegionDisksRemoveResourcePoliciesRequest
31394	raw := NoMethod(*s)
31395	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31396}
31397
31398type RegionDisksResizeRequest struct {
31399	// SizeGb: The new size of the regional persistent disk, which is
31400	// specified in GB.
31401	SizeGb int64 `json:"sizeGb,omitempty,string"`
31402
31403	// ForceSendFields is a list of field names (e.g. "SizeGb") to
31404	// unconditionally include in API requests. By default, fields with
31405	// empty values are omitted from API requests. However, any non-pointer,
31406	// non-interface field appearing in ForceSendFields will be sent to the
31407	// server regardless of whether the field is empty or not. This may be
31408	// used to include empty fields in Patch requests.
31409	ForceSendFields []string `json:"-"`
31410
31411	// NullFields is a list of field names (e.g. "SizeGb") to include in API
31412	// requests with the JSON null value. By default, fields with empty
31413	// values are omitted from API requests. However, any field with an
31414	// empty value appearing in NullFields will be sent to the server as
31415	// null. It is an error if a field in this list has a non-empty value.
31416	// This may be used to include null fields in Patch requests.
31417	NullFields []string `json:"-"`
31418}
31419
31420func (s *RegionDisksResizeRequest) MarshalJSON() ([]byte, error) {
31421	type NoMethod RegionDisksResizeRequest
31422	raw := NoMethod(*s)
31423	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31424}
31425
31426// RegionInstanceGroupList: Contains a list of InstanceGroup resources.
31427type RegionInstanceGroupList struct {
31428	// Id: [Output Only] Unique identifier for the resource; defined by the
31429	// server.
31430	Id string `json:"id,omitempty"`
31431
31432	// Items: A list of InstanceGroup resources.
31433	Items []*InstanceGroup `json:"items,omitempty"`
31434
31435	// Kind: The resource type.
31436	Kind string `json:"kind,omitempty"`
31437
31438	// NextPageToken: [Output Only] This token allows you to get the next
31439	// page of results for list requests. If the number of results is larger
31440	// than maxResults, use the nextPageToken as a value for the query
31441	// parameter pageToken in the next list request. Subsequent list
31442	// requests will have their own nextPageToken to continue paging through
31443	// the results.
31444	NextPageToken string `json:"nextPageToken,omitempty"`
31445
31446	// SelfLink: [Output Only] Server-defined URL for this resource.
31447	SelfLink string `json:"selfLink,omitempty"`
31448
31449	// Warning: [Output Only] Informational warning message.
31450	Warning *RegionInstanceGroupListWarning `json:"warning,omitempty"`
31451
31452	// ServerResponse contains the HTTP response code and headers from the
31453	// server.
31454	googleapi.ServerResponse `json:"-"`
31455
31456	// ForceSendFields is a list of field names (e.g. "Id") to
31457	// unconditionally include in API requests. By default, fields with
31458	// empty values are omitted from API requests. However, any non-pointer,
31459	// non-interface field appearing in ForceSendFields will be sent to the
31460	// server regardless of whether the field is empty or not. This may be
31461	// used to include empty fields in Patch requests.
31462	ForceSendFields []string `json:"-"`
31463
31464	// NullFields is a list of field names (e.g. "Id") to include in API
31465	// requests with the JSON null value. By default, fields with empty
31466	// values are omitted from API requests. However, any field with an
31467	// empty value appearing in NullFields will be sent to the server as
31468	// null. It is an error if a field in this list has a non-empty value.
31469	// This may be used to include null fields in Patch requests.
31470	NullFields []string `json:"-"`
31471}
31472
31473func (s *RegionInstanceGroupList) MarshalJSON() ([]byte, error) {
31474	type NoMethod RegionInstanceGroupList
31475	raw := NoMethod(*s)
31476	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31477}
31478
31479// RegionInstanceGroupListWarning: [Output Only] Informational warning
31480// message.
31481type RegionInstanceGroupListWarning struct {
31482	// Code: [Output Only] A warning code, if applicable. For example,
31483	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
31484	// the response.
31485	//
31486	// Possible values:
31487	//   "CLEANUP_FAILED"
31488	//   "DEPRECATED_RESOURCE_USED"
31489	//   "DEPRECATED_TYPE_USED"
31490	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
31491	//   "EXPERIMENTAL_TYPE_USED"
31492	//   "EXTERNAL_API_WARNING"
31493	//   "FIELD_VALUE_OVERRIDEN"
31494	//   "INJECTED_KERNELS_DEPRECATED"
31495	//   "MISSING_TYPE_DEPENDENCY"
31496	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
31497	//   "NEXT_HOP_CANNOT_IP_FORWARD"
31498	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
31499	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
31500	//   "NEXT_HOP_NOT_RUNNING"
31501	//   "NOT_CRITICAL_ERROR"
31502	//   "NO_RESULTS_ON_PAGE"
31503	//   "REQUIRED_TOS_AGREEMENT"
31504	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
31505	//   "RESOURCE_NOT_DELETED"
31506	//   "SCHEMA_VALIDATION_IGNORED"
31507	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
31508	//   "UNDECLARED_PROPERTIES"
31509	//   "UNREACHABLE"
31510	Code string `json:"code,omitempty"`
31511
31512	// Data: [Output Only] Metadata about this warning in key: value format.
31513	// For example:
31514	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
31515	Data []*RegionInstanceGroupListWarningData `json:"data,omitempty"`
31516
31517	// Message: [Output Only] A human-readable description of the warning
31518	// code.
31519	Message string `json:"message,omitempty"`
31520
31521	// ForceSendFields is a list of field names (e.g. "Code") to
31522	// unconditionally include in API requests. By default, fields with
31523	// empty values are omitted from API requests. However, any non-pointer,
31524	// non-interface field appearing in ForceSendFields will be sent to the
31525	// server regardless of whether the field is empty or not. This may be
31526	// used to include empty fields in Patch requests.
31527	ForceSendFields []string `json:"-"`
31528
31529	// NullFields is a list of field names (e.g. "Code") to include in API
31530	// requests with the JSON null value. By default, fields with empty
31531	// values are omitted from API requests. However, any field with an
31532	// empty value appearing in NullFields will be sent to the server as
31533	// null. It is an error if a field in this list has a non-empty value.
31534	// This may be used to include null fields in Patch requests.
31535	NullFields []string `json:"-"`
31536}
31537
31538func (s *RegionInstanceGroupListWarning) MarshalJSON() ([]byte, error) {
31539	type NoMethod RegionInstanceGroupListWarning
31540	raw := NoMethod(*s)
31541	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31542}
31543
31544type RegionInstanceGroupListWarningData struct {
31545	// Key: [Output Only] A key that provides more detail on the warning
31546	// being returned. For example, for warnings where there are no results
31547	// in a list request for a particular zone, this key might be scope and
31548	// the key value might be the zone name. Other examples might be a key
31549	// indicating a deprecated resource and a suggested replacement, or a
31550	// warning about invalid network settings (for example, if an instance
31551	// attempts to perform IP forwarding but is not enabled for IP
31552	// forwarding).
31553	Key string `json:"key,omitempty"`
31554
31555	// Value: [Output Only] A warning data value corresponding to the key.
31556	Value string `json:"value,omitempty"`
31557
31558	// ForceSendFields is a list of field names (e.g. "Key") to
31559	// unconditionally include in API requests. By default, fields with
31560	// empty values are omitted from API requests. However, any non-pointer,
31561	// non-interface field appearing in ForceSendFields will be sent to the
31562	// server regardless of whether the field is empty or not. This may be
31563	// used to include empty fields in Patch requests.
31564	ForceSendFields []string `json:"-"`
31565
31566	// NullFields is a list of field names (e.g. "Key") to include in API
31567	// requests with the JSON null value. By default, fields with empty
31568	// values are omitted from API requests. However, any field with an
31569	// empty value appearing in NullFields will be sent to the server as
31570	// null. It is an error if a field in this list has a non-empty value.
31571	// This may be used to include null fields in Patch requests.
31572	NullFields []string `json:"-"`
31573}
31574
31575func (s *RegionInstanceGroupListWarningData) MarshalJSON() ([]byte, error) {
31576	type NoMethod RegionInstanceGroupListWarningData
31577	raw := NoMethod(*s)
31578	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31579}
31580
31581// RegionInstanceGroupManagerDeleteInstanceConfigReq:
31582// RegionInstanceGroupManagers.deletePerInstanceConfigs
31583type RegionInstanceGroupManagerDeleteInstanceConfigReq struct {
31584	// Names: The list of instance names for which we want to delete
31585	// per-instance configs on this managed instance group.
31586	Names []string `json:"names,omitempty"`
31587
31588	// ForceSendFields is a list of field names (e.g. "Names") to
31589	// unconditionally include in API requests. By default, fields with
31590	// empty values are omitted from API requests. However, any non-pointer,
31591	// non-interface field appearing in ForceSendFields will be sent to the
31592	// server regardless of whether the field is empty or not. This may be
31593	// used to include empty fields in Patch requests.
31594	ForceSendFields []string `json:"-"`
31595
31596	// NullFields is a list of field names (e.g. "Names") to include in API
31597	// requests with the JSON null value. By default, fields with empty
31598	// values are omitted from API requests. However, any field with an
31599	// empty value appearing in NullFields will be sent to the server as
31600	// null. It is an error if a field in this list has a non-empty value.
31601	// This may be used to include null fields in Patch requests.
31602	NullFields []string `json:"-"`
31603}
31604
31605func (s *RegionInstanceGroupManagerDeleteInstanceConfigReq) MarshalJSON() ([]byte, error) {
31606	type NoMethod RegionInstanceGroupManagerDeleteInstanceConfigReq
31607	raw := NoMethod(*s)
31608	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31609}
31610
31611// RegionInstanceGroupManagerList: Contains a list of managed instance
31612// groups.
31613type RegionInstanceGroupManagerList struct {
31614	// Id: [Output Only] Unique identifier for the resource; defined by the
31615	// server.
31616	Id string `json:"id,omitempty"`
31617
31618	// Items: A list of InstanceGroupManager resources.
31619	Items []*InstanceGroupManager `json:"items,omitempty"`
31620
31621	// Kind: [Output Only] The resource type, which is always
31622	// compute#instanceGroupManagerList for a list of managed instance
31623	// groups that exist in th regional scope.
31624	Kind string `json:"kind,omitempty"`
31625
31626	// NextPageToken: [Output Only] This token allows you to get the next
31627	// page of results for list requests. If the number of results is larger
31628	// than maxResults, use the nextPageToken as a value for the query
31629	// parameter pageToken in the next list request. Subsequent list
31630	// requests will have their own nextPageToken to continue paging through
31631	// the results.
31632	NextPageToken string `json:"nextPageToken,omitempty"`
31633
31634	// SelfLink: [Output Only] Server-defined URL for this resource.
31635	SelfLink string `json:"selfLink,omitempty"`
31636
31637	// Warning: [Output Only] Informational warning message.
31638	Warning *RegionInstanceGroupManagerListWarning `json:"warning,omitempty"`
31639
31640	// ServerResponse contains the HTTP response code and headers from the
31641	// server.
31642	googleapi.ServerResponse `json:"-"`
31643
31644	// ForceSendFields is a list of field names (e.g. "Id") to
31645	// unconditionally include in API requests. By default, fields with
31646	// empty values are omitted from API requests. However, any non-pointer,
31647	// non-interface field appearing in ForceSendFields will be sent to the
31648	// server regardless of whether the field is empty or not. This may be
31649	// used to include empty fields in Patch requests.
31650	ForceSendFields []string `json:"-"`
31651
31652	// NullFields is a list of field names (e.g. "Id") to include in API
31653	// requests with the JSON null value. By default, fields with empty
31654	// values are omitted from API requests. However, any field with an
31655	// empty value appearing in NullFields will be sent to the server as
31656	// null. It is an error if a field in this list has a non-empty value.
31657	// This may be used to include null fields in Patch requests.
31658	NullFields []string `json:"-"`
31659}
31660
31661func (s *RegionInstanceGroupManagerList) MarshalJSON() ([]byte, error) {
31662	type NoMethod RegionInstanceGroupManagerList
31663	raw := NoMethod(*s)
31664	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31665}
31666
31667// RegionInstanceGroupManagerListWarning: [Output Only] Informational
31668// warning message.
31669type RegionInstanceGroupManagerListWarning struct {
31670	// Code: [Output Only] A warning code, if applicable. For example,
31671	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
31672	// the response.
31673	//
31674	// Possible values:
31675	//   "CLEANUP_FAILED"
31676	//   "DEPRECATED_RESOURCE_USED"
31677	//   "DEPRECATED_TYPE_USED"
31678	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
31679	//   "EXPERIMENTAL_TYPE_USED"
31680	//   "EXTERNAL_API_WARNING"
31681	//   "FIELD_VALUE_OVERRIDEN"
31682	//   "INJECTED_KERNELS_DEPRECATED"
31683	//   "MISSING_TYPE_DEPENDENCY"
31684	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
31685	//   "NEXT_HOP_CANNOT_IP_FORWARD"
31686	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
31687	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
31688	//   "NEXT_HOP_NOT_RUNNING"
31689	//   "NOT_CRITICAL_ERROR"
31690	//   "NO_RESULTS_ON_PAGE"
31691	//   "REQUIRED_TOS_AGREEMENT"
31692	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
31693	//   "RESOURCE_NOT_DELETED"
31694	//   "SCHEMA_VALIDATION_IGNORED"
31695	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
31696	//   "UNDECLARED_PROPERTIES"
31697	//   "UNREACHABLE"
31698	Code string `json:"code,omitempty"`
31699
31700	// Data: [Output Only] Metadata about this warning in key: value format.
31701	// For example:
31702	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
31703	Data []*RegionInstanceGroupManagerListWarningData `json:"data,omitempty"`
31704
31705	// Message: [Output Only] A human-readable description of the warning
31706	// code.
31707	Message string `json:"message,omitempty"`
31708
31709	// ForceSendFields is a list of field names (e.g. "Code") to
31710	// unconditionally include in API requests. By default, fields with
31711	// empty values are omitted from API requests. However, any non-pointer,
31712	// non-interface field appearing in ForceSendFields will be sent to the
31713	// server regardless of whether the field is empty or not. This may be
31714	// used to include empty fields in Patch requests.
31715	ForceSendFields []string `json:"-"`
31716
31717	// NullFields is a list of field names (e.g. "Code") to include in API
31718	// requests with the JSON null value. By default, fields with empty
31719	// values are omitted from API requests. However, any field with an
31720	// empty value appearing in NullFields will be sent to the server as
31721	// null. It is an error if a field in this list has a non-empty value.
31722	// This may be used to include null fields in Patch requests.
31723	NullFields []string `json:"-"`
31724}
31725
31726func (s *RegionInstanceGroupManagerListWarning) MarshalJSON() ([]byte, error) {
31727	type NoMethod RegionInstanceGroupManagerListWarning
31728	raw := NoMethod(*s)
31729	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31730}
31731
31732type RegionInstanceGroupManagerListWarningData struct {
31733	// Key: [Output Only] A key that provides more detail on the warning
31734	// being returned. For example, for warnings where there are no results
31735	// in a list request for a particular zone, this key might be scope and
31736	// the key value might be the zone name. Other examples might be a key
31737	// indicating a deprecated resource and a suggested replacement, or a
31738	// warning about invalid network settings (for example, if an instance
31739	// attempts to perform IP forwarding but is not enabled for IP
31740	// forwarding).
31741	Key string `json:"key,omitempty"`
31742
31743	// Value: [Output Only] A warning data value corresponding to the key.
31744	Value string `json:"value,omitempty"`
31745
31746	// ForceSendFields is a list of field names (e.g. "Key") to
31747	// unconditionally include in API requests. By default, fields with
31748	// empty values are omitted from API requests. However, any non-pointer,
31749	// non-interface field appearing in ForceSendFields will be sent to the
31750	// server regardless of whether the field is empty or not. This may be
31751	// used to include empty fields in Patch requests.
31752	ForceSendFields []string `json:"-"`
31753
31754	// NullFields is a list of field names (e.g. "Key") to include in API
31755	// requests with the JSON null value. By default, fields with empty
31756	// values are omitted from API requests. However, any field with an
31757	// empty value appearing in NullFields will be sent to the server as
31758	// null. It is an error if a field in this list has a non-empty value.
31759	// This may be used to include null fields in Patch requests.
31760	NullFields []string `json:"-"`
31761}
31762
31763func (s *RegionInstanceGroupManagerListWarningData) MarshalJSON() ([]byte, error) {
31764	type NoMethod RegionInstanceGroupManagerListWarningData
31765	raw := NoMethod(*s)
31766	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31767}
31768
31769// RegionInstanceGroupManagerPatchInstanceConfigReq:
31770// RegionInstanceGroupManagers.patchPerInstanceConfigs
31771type RegionInstanceGroupManagerPatchInstanceConfigReq struct {
31772	// PerInstanceConfigs: The list of per-instance configs to insert or
31773	// patch on this managed instance group.
31774	PerInstanceConfigs []*PerInstanceConfig `json:"perInstanceConfigs,omitempty"`
31775
31776	// ForceSendFields is a list of field names (e.g. "PerInstanceConfigs")
31777	// to unconditionally include in API requests. By default, fields with
31778	// empty values are omitted from API requests. However, any non-pointer,
31779	// non-interface field appearing in ForceSendFields will be sent to the
31780	// server regardless of whether the field is empty or not. This may be
31781	// used to include empty fields in Patch requests.
31782	ForceSendFields []string `json:"-"`
31783
31784	// NullFields is a list of field names (e.g. "PerInstanceConfigs") to
31785	// include in API requests with the JSON null value. By default, fields
31786	// with empty values are omitted from API requests. However, any field
31787	// with an empty value appearing in NullFields will be sent to the
31788	// server as null. It is an error if a field in this list has a
31789	// non-empty value. This may be used to include null fields in Patch
31790	// requests.
31791	NullFields []string `json:"-"`
31792}
31793
31794func (s *RegionInstanceGroupManagerPatchInstanceConfigReq) MarshalJSON() ([]byte, error) {
31795	type NoMethod RegionInstanceGroupManagerPatchInstanceConfigReq
31796	raw := NoMethod(*s)
31797	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31798}
31799
31800// RegionInstanceGroupManagerUpdateInstanceConfigReq:
31801// RegionInstanceGroupManagers.updatePerInstanceConfigs
31802type RegionInstanceGroupManagerUpdateInstanceConfigReq struct {
31803	// PerInstanceConfigs: The list of per-instance configs to insert or
31804	// patch on this managed instance group.
31805	PerInstanceConfigs []*PerInstanceConfig `json:"perInstanceConfigs,omitempty"`
31806
31807	// ForceSendFields is a list of field names (e.g. "PerInstanceConfigs")
31808	// to unconditionally include in API requests. By default, fields with
31809	// empty values are omitted from API requests. However, any non-pointer,
31810	// non-interface field appearing in ForceSendFields will be sent to the
31811	// server regardless of whether the field is empty or not. This may be
31812	// used to include empty fields in Patch requests.
31813	ForceSendFields []string `json:"-"`
31814
31815	// NullFields is a list of field names (e.g. "PerInstanceConfigs") to
31816	// include in API requests with the JSON null value. By default, fields
31817	// with empty values are omitted from API requests. However, any field
31818	// with an empty value appearing in NullFields will be sent to the
31819	// server as null. It is an error if a field in this list has a
31820	// non-empty value. This may be used to include null fields in Patch
31821	// requests.
31822	NullFields []string `json:"-"`
31823}
31824
31825func (s *RegionInstanceGroupManagerUpdateInstanceConfigReq) MarshalJSON() ([]byte, error) {
31826	type NoMethod RegionInstanceGroupManagerUpdateInstanceConfigReq
31827	raw := NoMethod(*s)
31828	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31829}
31830
31831type RegionInstanceGroupManagersAbandonInstancesRequest struct {
31832	// Instances: The URLs of one or more instances to abandon. This can be
31833	// a full URL or a partial URL, such as
31834	// zones/[ZONE]/instances/[INSTANCE_NAME].
31835	Instances []string `json:"instances,omitempty"`
31836
31837	// ForceSendFields is a list of field names (e.g. "Instances") to
31838	// unconditionally include in API requests. By default, fields with
31839	// empty values are omitted from API requests. However, any non-pointer,
31840	// non-interface field appearing in ForceSendFields will be sent to the
31841	// server regardless of whether the field is empty or not. This may be
31842	// used to include empty fields in Patch requests.
31843	ForceSendFields []string `json:"-"`
31844
31845	// NullFields is a list of field names (e.g. "Instances") to include in
31846	// API requests with the JSON null value. By default, fields with empty
31847	// values are omitted from API requests. However, any field with an
31848	// empty value appearing in NullFields will be sent to the server as
31849	// null. It is an error if a field in this list has a non-empty value.
31850	// This may be used to include null fields in Patch requests.
31851	NullFields []string `json:"-"`
31852}
31853
31854func (s *RegionInstanceGroupManagersAbandonInstancesRequest) MarshalJSON() ([]byte, error) {
31855	type NoMethod RegionInstanceGroupManagersAbandonInstancesRequest
31856	raw := NoMethod(*s)
31857	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31858}
31859
31860// RegionInstanceGroupManagersApplyUpdatesRequest:
31861// InstanceGroupManagers.applyUpdatesToInstances
31862type RegionInstanceGroupManagersApplyUpdatesRequest struct {
31863	// Instances: The list of URLs of one or more instances for which you
31864	// want to apply updates. Each URL can be a full URL or a partial URL,
31865	// such as zones/[ZONE]/instances/[INSTANCE_NAME].
31866	Instances []string `json:"instances,omitempty"`
31867
31868	// MaximalAction: The maximal action that should be performed on the
31869	// instances. By default REPLACE. This field is deprecated, please use
31870	// most_disruptive_allowed_action.
31871	//
31872	// Possible values:
31873	//   "NONE"
31874	//   "REFRESH"
31875	//   "REPLACE"
31876	//   "RESTART"
31877	MaximalAction string `json:"maximalAction,omitempty"`
31878
31879	// MinimalAction: The minimal action that you want to perform on each
31880	// instance during the update:
31881	// - REPLACE: At minimum, delete the instance and create it again.
31882	// - RESTART: Stop the instance and start it again.
31883	// - REFRESH: Do not stop the instance.
31884	// - NONE: Do not disrupt the instance at all.  By default, the minimum
31885	// action is NONE. If your update requires a more disruptive action than
31886	// you set with this flag, the necessary action is performed to execute
31887	// the update.
31888	//
31889	// Possible values:
31890	//   "NONE"
31891	//   "REFRESH"
31892	//   "REPLACE"
31893	//   "RESTART"
31894	MinimalAction string `json:"minimalAction,omitempty"`
31895
31896	// MostDisruptiveAllowedAction: The most disruptive action that you want
31897	// to perform on each instance during the update:
31898	// - REPLACE: Delete the instance and create it again.
31899	// - RESTART: Stop the instance and start it again.
31900	// - REFRESH: Do not stop the instance.
31901	// - NONE: Do not disrupt the instance at all.  By default, the most
31902	// disruptive allowed action is REPLACE. If your update requires a more
31903	// disruptive action than you set with this flag, the update request
31904	// will fail.
31905	//
31906	// Possible values:
31907	//   "NONE"
31908	//   "REFRESH"
31909	//   "REPLACE"
31910	//   "RESTART"
31911	MostDisruptiveAllowedAction string `json:"mostDisruptiveAllowedAction,omitempty"`
31912
31913	// ForceSendFields is a list of field names (e.g. "Instances") to
31914	// unconditionally include in API requests. By default, fields with
31915	// empty values are omitted from API requests. However, any non-pointer,
31916	// non-interface field appearing in ForceSendFields will be sent to the
31917	// server regardless of whether the field is empty or not. This may be
31918	// used to include empty fields in Patch requests.
31919	ForceSendFields []string `json:"-"`
31920
31921	// NullFields is a list of field names (e.g. "Instances") to include in
31922	// API requests with the JSON null value. By default, fields with empty
31923	// values are omitted from API requests. However, any field with an
31924	// empty value appearing in NullFields will be sent to the server as
31925	// null. It is an error if a field in this list has a non-empty value.
31926	// This may be used to include null fields in Patch requests.
31927	NullFields []string `json:"-"`
31928}
31929
31930func (s *RegionInstanceGroupManagersApplyUpdatesRequest) MarshalJSON() ([]byte, error) {
31931	type NoMethod RegionInstanceGroupManagersApplyUpdatesRequest
31932	raw := NoMethod(*s)
31933	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31934}
31935
31936// RegionInstanceGroupManagersCreateInstancesRequest:
31937// RegionInstanceGroupManagers.createInstances
31938type RegionInstanceGroupManagersCreateInstancesRequest struct {
31939	// Instances: [Required] List of specifications of per-instance configs.
31940	Instances []*PerInstanceConfig `json:"instances,omitempty"`
31941
31942	// ForceSendFields is a list of field names (e.g. "Instances") to
31943	// unconditionally include in API requests. By default, fields with
31944	// empty values are omitted from API requests. However, any non-pointer,
31945	// non-interface field appearing in ForceSendFields will be sent to the
31946	// server regardless of whether the field is empty or not. This may be
31947	// used to include empty fields in Patch requests.
31948	ForceSendFields []string `json:"-"`
31949
31950	// NullFields is a list of field names (e.g. "Instances") to include in
31951	// API requests with the JSON null value. By default, fields with empty
31952	// values are omitted from API requests. However, any field with an
31953	// empty value appearing in NullFields will be sent to the server as
31954	// null. It is an error if a field in this list has a non-empty value.
31955	// This may be used to include null fields in Patch requests.
31956	NullFields []string `json:"-"`
31957}
31958
31959func (s *RegionInstanceGroupManagersCreateInstancesRequest) MarshalJSON() ([]byte, error) {
31960	type NoMethod RegionInstanceGroupManagersCreateInstancesRequest
31961	raw := NoMethod(*s)
31962	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31963}
31964
31965type RegionInstanceGroupManagersDeleteInstancesRequest struct {
31966	// Instances: The URLs of one or more instances to delete. This can be a
31967	// full URL or a partial URL, such as
31968	// zones/[ZONE]/instances/[INSTANCE_NAME].
31969	Instances []string `json:"instances,omitempty"`
31970
31971	// ForceSendFields is a list of field names (e.g. "Instances") to
31972	// unconditionally include in API requests. By default, fields with
31973	// empty values are omitted from API requests. However, any non-pointer,
31974	// non-interface field appearing in ForceSendFields will be sent to the
31975	// server regardless of whether the field is empty or not. This may be
31976	// used to include empty fields in Patch requests.
31977	ForceSendFields []string `json:"-"`
31978
31979	// NullFields is a list of field names (e.g. "Instances") to include in
31980	// API requests with the JSON null value. By default, fields with empty
31981	// values are omitted from API requests. However, any field with an
31982	// empty value appearing in NullFields will be sent to the server as
31983	// null. It is an error if a field in this list has a non-empty value.
31984	// This may be used to include null fields in Patch requests.
31985	NullFields []string `json:"-"`
31986}
31987
31988func (s *RegionInstanceGroupManagersDeleteInstancesRequest) MarshalJSON() ([]byte, error) {
31989	type NoMethod RegionInstanceGroupManagersDeleteInstancesRequest
31990	raw := NoMethod(*s)
31991	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31992}
31993
31994type RegionInstanceGroupManagersListErrorsResponse struct {
31995	// Items: [Output Only] The list of errors of the managed instance
31996	// group.
31997	Items []*InstanceManagedByIgmError `json:"items,omitempty"`
31998
31999	// NextPageToken: [Output Only] This token allows you to get the next
32000	// page of results for list requests. If the number of results is larger
32001	// than maxResults, use the nextPageToken as a value for the query
32002	// parameter pageToken in the next list request. Subsequent list
32003	// requests will have their own nextPageToken to continue paging through
32004	// the results.
32005	NextPageToken string `json:"nextPageToken,omitempty"`
32006
32007	// ServerResponse contains the HTTP response code and headers from the
32008	// server.
32009	googleapi.ServerResponse `json:"-"`
32010
32011	// ForceSendFields is a list of field names (e.g. "Items") to
32012	// unconditionally include in API requests. By default, fields with
32013	// empty values are omitted from API requests. However, any non-pointer,
32014	// non-interface field appearing in ForceSendFields will be sent to the
32015	// server regardless of whether the field is empty or not. This may be
32016	// used to include empty fields in Patch requests.
32017	ForceSendFields []string `json:"-"`
32018
32019	// NullFields is a list of field names (e.g. "Items") to include in API
32020	// requests with the JSON null value. By default, fields with empty
32021	// values are omitted from API requests. However, any field with an
32022	// empty value appearing in NullFields will be sent to the server as
32023	// null. It is an error if a field in this list has a non-empty value.
32024	// This may be used to include null fields in Patch requests.
32025	NullFields []string `json:"-"`
32026}
32027
32028func (s *RegionInstanceGroupManagersListErrorsResponse) MarshalJSON() ([]byte, error) {
32029	type NoMethod RegionInstanceGroupManagersListErrorsResponse
32030	raw := NoMethod(*s)
32031	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32032}
32033
32034type RegionInstanceGroupManagersListInstanceConfigsResp struct {
32035	// Items: [Output Only] The list of PerInstanceConfig.
32036	Items []*PerInstanceConfig `json:"items,omitempty"`
32037
32038	// NextPageToken: [Output Only] This token allows you to get the next
32039	// page of results for list requests. If the number of results is larger
32040	// than maxResults, use the nextPageToken as a value for the query
32041	// parameter pageToken in the next list request. Subsequent list
32042	// requests will have their own nextPageToken to continue paging through
32043	// the results.
32044	NextPageToken string `json:"nextPageToken,omitempty"`
32045
32046	// Warning: [Output Only] Informational warning message.
32047	Warning *RegionInstanceGroupManagersListInstanceConfigsRespWarning `json:"warning,omitempty"`
32048
32049	// ServerResponse contains the HTTP response code and headers from the
32050	// server.
32051	googleapi.ServerResponse `json:"-"`
32052
32053	// ForceSendFields is a list of field names (e.g. "Items") to
32054	// unconditionally include in API requests. By default, fields with
32055	// empty values are omitted from API requests. However, any non-pointer,
32056	// non-interface field appearing in ForceSendFields will be sent to the
32057	// server regardless of whether the field is empty or not. This may be
32058	// used to include empty fields in Patch requests.
32059	ForceSendFields []string `json:"-"`
32060
32061	// NullFields is a list of field names (e.g. "Items") to include in API
32062	// requests with the JSON null value. By default, fields with empty
32063	// values are omitted from API requests. However, any field with an
32064	// empty value appearing in NullFields will be sent to the server as
32065	// null. It is an error if a field in this list has a non-empty value.
32066	// This may be used to include null fields in Patch requests.
32067	NullFields []string `json:"-"`
32068}
32069
32070func (s *RegionInstanceGroupManagersListInstanceConfigsResp) MarshalJSON() ([]byte, error) {
32071	type NoMethod RegionInstanceGroupManagersListInstanceConfigsResp
32072	raw := NoMethod(*s)
32073	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32074}
32075
32076// RegionInstanceGroupManagersListInstanceConfigsRespWarning: [Output
32077// Only] Informational warning message.
32078type RegionInstanceGroupManagersListInstanceConfigsRespWarning struct {
32079	// Code: [Output Only] A warning code, if applicable. For example,
32080	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
32081	// the response.
32082	//
32083	// Possible values:
32084	//   "CLEANUP_FAILED"
32085	//   "DEPRECATED_RESOURCE_USED"
32086	//   "DEPRECATED_TYPE_USED"
32087	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
32088	//   "EXPERIMENTAL_TYPE_USED"
32089	//   "EXTERNAL_API_WARNING"
32090	//   "FIELD_VALUE_OVERRIDEN"
32091	//   "INJECTED_KERNELS_DEPRECATED"
32092	//   "MISSING_TYPE_DEPENDENCY"
32093	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
32094	//   "NEXT_HOP_CANNOT_IP_FORWARD"
32095	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
32096	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
32097	//   "NEXT_HOP_NOT_RUNNING"
32098	//   "NOT_CRITICAL_ERROR"
32099	//   "NO_RESULTS_ON_PAGE"
32100	//   "REQUIRED_TOS_AGREEMENT"
32101	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
32102	//   "RESOURCE_NOT_DELETED"
32103	//   "SCHEMA_VALIDATION_IGNORED"
32104	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
32105	//   "UNDECLARED_PROPERTIES"
32106	//   "UNREACHABLE"
32107	Code string `json:"code,omitempty"`
32108
32109	// Data: [Output Only] Metadata about this warning in key: value format.
32110	// For example:
32111	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
32112	Data []*RegionInstanceGroupManagersListInstanceConfigsRespWarningData `json:"data,omitempty"`
32113
32114	// Message: [Output Only] A human-readable description of the warning
32115	// code.
32116	Message string `json:"message,omitempty"`
32117
32118	// ForceSendFields is a list of field names (e.g. "Code") to
32119	// unconditionally include in API requests. By default, fields with
32120	// empty values are omitted from API requests. However, any non-pointer,
32121	// non-interface field appearing in ForceSendFields will be sent to the
32122	// server regardless of whether the field is empty or not. This may be
32123	// used to include empty fields in Patch requests.
32124	ForceSendFields []string `json:"-"`
32125
32126	// NullFields is a list of field names (e.g. "Code") to include in API
32127	// requests with the JSON null value. By default, fields with empty
32128	// values are omitted from API requests. However, any field with an
32129	// empty value appearing in NullFields will be sent to the server as
32130	// null. It is an error if a field in this list has a non-empty value.
32131	// This may be used to include null fields in Patch requests.
32132	NullFields []string `json:"-"`
32133}
32134
32135func (s *RegionInstanceGroupManagersListInstanceConfigsRespWarning) MarshalJSON() ([]byte, error) {
32136	type NoMethod RegionInstanceGroupManagersListInstanceConfigsRespWarning
32137	raw := NoMethod(*s)
32138	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32139}
32140
32141type RegionInstanceGroupManagersListInstanceConfigsRespWarningData struct {
32142	// Key: [Output Only] A key that provides more detail on the warning
32143	// being returned. For example, for warnings where there are no results
32144	// in a list request for a particular zone, this key might be scope and
32145	// the key value might be the zone name. Other examples might be a key
32146	// indicating a deprecated resource and a suggested replacement, or a
32147	// warning about invalid network settings (for example, if an instance
32148	// attempts to perform IP forwarding but is not enabled for IP
32149	// forwarding).
32150	Key string `json:"key,omitempty"`
32151
32152	// Value: [Output Only] A warning data value corresponding to the key.
32153	Value string `json:"value,omitempty"`
32154
32155	// ForceSendFields is a list of field names (e.g. "Key") to
32156	// unconditionally include in API requests. By default, fields with
32157	// empty values are omitted from API requests. However, any non-pointer,
32158	// non-interface field appearing in ForceSendFields will be sent to the
32159	// server regardless of whether the field is empty or not. This may be
32160	// used to include empty fields in Patch requests.
32161	ForceSendFields []string `json:"-"`
32162
32163	// NullFields is a list of field names (e.g. "Key") to include in API
32164	// requests with the JSON null value. By default, fields with empty
32165	// values are omitted from API requests. However, any field with an
32166	// empty value appearing in NullFields will be sent to the server as
32167	// null. It is an error if a field in this list has a non-empty value.
32168	// This may be used to include null fields in Patch requests.
32169	NullFields []string `json:"-"`
32170}
32171
32172func (s *RegionInstanceGroupManagersListInstanceConfigsRespWarningData) MarshalJSON() ([]byte, error) {
32173	type NoMethod RegionInstanceGroupManagersListInstanceConfigsRespWarningData
32174	raw := NoMethod(*s)
32175	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32176}
32177
32178type RegionInstanceGroupManagersListInstancesResponse struct {
32179	// ManagedInstances: A list of managed instances.
32180	ManagedInstances []*ManagedInstance `json:"managedInstances,omitempty"`
32181
32182	// NextPageToken: [Output Only] This token allows you to get the next
32183	// page of results for list requests. If the number of results is larger
32184	// than maxResults, use the nextPageToken as a value for the query
32185	// parameter pageToken in the next list request. Subsequent list
32186	// requests will have their own nextPageToken to continue paging through
32187	// the results.
32188	NextPageToken string `json:"nextPageToken,omitempty"`
32189
32190	// ServerResponse contains the HTTP response code and headers from the
32191	// server.
32192	googleapi.ServerResponse `json:"-"`
32193
32194	// ForceSendFields is a list of field names (e.g. "ManagedInstances") to
32195	// unconditionally include in API requests. By default, fields with
32196	// empty values are omitted from API requests. However, any non-pointer,
32197	// non-interface field appearing in ForceSendFields will be sent to the
32198	// server regardless of whether the field is empty or not. This may be
32199	// used to include empty fields in Patch requests.
32200	ForceSendFields []string `json:"-"`
32201
32202	// NullFields is a list of field names (e.g. "ManagedInstances") to
32203	// include in API requests with the JSON null value. By default, fields
32204	// with empty values are omitted from API requests. However, any field
32205	// with an empty value appearing in NullFields will be sent to the
32206	// server as null. It is an error if a field in this list has a
32207	// non-empty value. This may be used to include null fields in Patch
32208	// requests.
32209	NullFields []string `json:"-"`
32210}
32211
32212func (s *RegionInstanceGroupManagersListInstancesResponse) MarshalJSON() ([]byte, error) {
32213	type NoMethod RegionInstanceGroupManagersListInstancesResponse
32214	raw := NoMethod(*s)
32215	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32216}
32217
32218type RegionInstanceGroupManagersRecreateRequest struct {
32219	// Instances: The URLs of one or more instances to recreate. This can be
32220	// a full URL or a partial URL, such as
32221	// zones/[ZONE]/instances/[INSTANCE_NAME].
32222	Instances []string `json:"instances,omitempty"`
32223
32224	// ForceSendFields is a list of field names (e.g. "Instances") to
32225	// unconditionally include in API requests. By default, fields with
32226	// empty values are omitted from API requests. However, any non-pointer,
32227	// non-interface field appearing in ForceSendFields will be sent to the
32228	// server regardless of whether the field is empty or not. This may be
32229	// used to include empty fields in Patch requests.
32230	ForceSendFields []string `json:"-"`
32231
32232	// NullFields is a list of field names (e.g. "Instances") to include in
32233	// API requests with the JSON null value. By default, fields with empty
32234	// values are omitted from API requests. However, any field with an
32235	// empty value appearing in NullFields will be sent to the server as
32236	// null. It is an error if a field in this list has a non-empty value.
32237	// This may be used to include null fields in Patch requests.
32238	NullFields []string `json:"-"`
32239}
32240
32241func (s *RegionInstanceGroupManagersRecreateRequest) MarshalJSON() ([]byte, error) {
32242	type NoMethod RegionInstanceGroupManagersRecreateRequest
32243	raw := NoMethod(*s)
32244	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32245}
32246
32247type RegionInstanceGroupManagersSetAutoHealingRequest struct {
32248	AutoHealingPolicies []*InstanceGroupManagerAutoHealingPolicy `json:"autoHealingPolicies,omitempty"`
32249
32250	// ForceSendFields is a list of field names (e.g. "AutoHealingPolicies")
32251	// to unconditionally include in API requests. By default, fields with
32252	// empty values are omitted from API requests. However, any non-pointer,
32253	// non-interface field appearing in ForceSendFields will be sent to the
32254	// server regardless of whether the field is empty or not. This may be
32255	// used to include empty fields in Patch requests.
32256	ForceSendFields []string `json:"-"`
32257
32258	// NullFields is a list of field names (e.g. "AutoHealingPolicies") to
32259	// include in API requests with the JSON null value. By default, fields
32260	// with empty values are omitted from API requests. However, any field
32261	// with an empty value appearing in NullFields will be sent to the
32262	// server as null. It is an error if a field in this list has a
32263	// non-empty value. This may be used to include null fields in Patch
32264	// requests.
32265	NullFields []string `json:"-"`
32266}
32267
32268func (s *RegionInstanceGroupManagersSetAutoHealingRequest) MarshalJSON() ([]byte, error) {
32269	type NoMethod RegionInstanceGroupManagersSetAutoHealingRequest
32270	raw := NoMethod(*s)
32271	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32272}
32273
32274type RegionInstanceGroupManagersSetTargetPoolsRequest struct {
32275	// Fingerprint: Fingerprint of the target pools information, which is a
32276	// hash of the contents. This field is used for optimistic locking when
32277	// you update the target pool entries. This field is optional.
32278	Fingerprint string `json:"fingerprint,omitempty"`
32279
32280	// TargetPools: The URL of all TargetPool resources to which instances
32281	// in the instanceGroup field are added. The target pools automatically
32282	// apply to all of the instances in the managed instance group.
32283	TargetPools []string `json:"targetPools,omitempty"`
32284
32285	// ForceSendFields is a list of field names (e.g. "Fingerprint") to
32286	// unconditionally include in API requests. By default, fields with
32287	// empty values are omitted from API requests. However, any non-pointer,
32288	// non-interface field appearing in ForceSendFields will be sent to the
32289	// server regardless of whether the field is empty or not. This may be
32290	// used to include empty fields in Patch requests.
32291	ForceSendFields []string `json:"-"`
32292
32293	// NullFields is a list of field names (e.g. "Fingerprint") to include
32294	// in API requests with the JSON null value. By default, fields with
32295	// empty values are omitted from API requests. However, any field with
32296	// an empty value appearing in NullFields will be sent to the server as
32297	// null. It is an error if a field in this list has a non-empty value.
32298	// This may be used to include null fields in Patch requests.
32299	NullFields []string `json:"-"`
32300}
32301
32302func (s *RegionInstanceGroupManagersSetTargetPoolsRequest) MarshalJSON() ([]byte, error) {
32303	type NoMethod RegionInstanceGroupManagersSetTargetPoolsRequest
32304	raw := NoMethod(*s)
32305	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32306}
32307
32308type RegionInstanceGroupManagersSetTemplateRequest struct {
32309	// InstanceTemplate: URL of the InstanceTemplate resource from which all
32310	// new instances will be created.
32311	InstanceTemplate string `json:"instanceTemplate,omitempty"`
32312
32313	// ForceSendFields is a list of field names (e.g. "InstanceTemplate") to
32314	// unconditionally include in API requests. By default, fields with
32315	// empty values are omitted from API requests. However, any non-pointer,
32316	// non-interface field appearing in ForceSendFields will be sent to the
32317	// server regardless of whether the field is empty or not. This may be
32318	// used to include empty fields in Patch requests.
32319	ForceSendFields []string `json:"-"`
32320
32321	// NullFields is a list of field names (e.g. "InstanceTemplate") to
32322	// include in API requests with the JSON null value. By default, fields
32323	// with empty values are omitted from API requests. However, any field
32324	// with an empty value appearing in NullFields will be sent to the
32325	// server as null. It is an error if a field in this list has a
32326	// non-empty value. This may be used to include null fields in Patch
32327	// requests.
32328	NullFields []string `json:"-"`
32329}
32330
32331func (s *RegionInstanceGroupManagersSetTemplateRequest) MarshalJSON() ([]byte, error) {
32332	type NoMethod RegionInstanceGroupManagersSetTemplateRequest
32333	raw := NoMethod(*s)
32334	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32335}
32336
32337type RegionInstanceGroupsListInstances struct {
32338	// Id: [Output Only] Unique identifier for the resource; defined by the
32339	// server.
32340	Id string `json:"id,omitempty"`
32341
32342	// Items: A list of InstanceWithNamedPorts resources.
32343	Items []*InstanceWithNamedPorts `json:"items,omitempty"`
32344
32345	// Kind: The resource type.
32346	Kind string `json:"kind,omitempty"`
32347
32348	// NextPageToken: [Output Only] This token allows you to get the next
32349	// page of results for list requests. If the number of results is larger
32350	// than maxResults, use the nextPageToken as a value for the query
32351	// parameter pageToken in the next list request. Subsequent list
32352	// requests will have their own nextPageToken to continue paging through
32353	// the results.
32354	NextPageToken string `json:"nextPageToken,omitempty"`
32355
32356	// SelfLink: [Output Only] Server-defined URL for this resource.
32357	SelfLink string `json:"selfLink,omitempty"`
32358
32359	// Warning: [Output Only] Informational warning message.
32360	Warning *RegionInstanceGroupsListInstancesWarning `json:"warning,omitempty"`
32361
32362	// ServerResponse contains the HTTP response code and headers from the
32363	// server.
32364	googleapi.ServerResponse `json:"-"`
32365
32366	// ForceSendFields is a list of field names (e.g. "Id") to
32367	// unconditionally include in API requests. By default, fields with
32368	// empty values are omitted from API requests. However, any non-pointer,
32369	// non-interface field appearing in ForceSendFields will be sent to the
32370	// server regardless of whether the field is empty or not. This may be
32371	// used to include empty fields in Patch requests.
32372	ForceSendFields []string `json:"-"`
32373
32374	// NullFields is a list of field names (e.g. "Id") to include in API
32375	// requests with the JSON null value. By default, fields with empty
32376	// values are omitted from API requests. However, any field with an
32377	// empty value appearing in NullFields will be sent to the server as
32378	// null. It is an error if a field in this list has a non-empty value.
32379	// This may be used to include null fields in Patch requests.
32380	NullFields []string `json:"-"`
32381}
32382
32383func (s *RegionInstanceGroupsListInstances) MarshalJSON() ([]byte, error) {
32384	type NoMethod RegionInstanceGroupsListInstances
32385	raw := NoMethod(*s)
32386	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32387}
32388
32389// RegionInstanceGroupsListInstancesWarning: [Output Only] Informational
32390// warning message.
32391type RegionInstanceGroupsListInstancesWarning struct {
32392	// Code: [Output Only] A warning code, if applicable. For example,
32393	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
32394	// the response.
32395	//
32396	// Possible values:
32397	//   "CLEANUP_FAILED"
32398	//   "DEPRECATED_RESOURCE_USED"
32399	//   "DEPRECATED_TYPE_USED"
32400	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
32401	//   "EXPERIMENTAL_TYPE_USED"
32402	//   "EXTERNAL_API_WARNING"
32403	//   "FIELD_VALUE_OVERRIDEN"
32404	//   "INJECTED_KERNELS_DEPRECATED"
32405	//   "MISSING_TYPE_DEPENDENCY"
32406	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
32407	//   "NEXT_HOP_CANNOT_IP_FORWARD"
32408	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
32409	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
32410	//   "NEXT_HOP_NOT_RUNNING"
32411	//   "NOT_CRITICAL_ERROR"
32412	//   "NO_RESULTS_ON_PAGE"
32413	//   "REQUIRED_TOS_AGREEMENT"
32414	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
32415	//   "RESOURCE_NOT_DELETED"
32416	//   "SCHEMA_VALIDATION_IGNORED"
32417	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
32418	//   "UNDECLARED_PROPERTIES"
32419	//   "UNREACHABLE"
32420	Code string `json:"code,omitempty"`
32421
32422	// Data: [Output Only] Metadata about this warning in key: value format.
32423	// For example:
32424	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
32425	Data []*RegionInstanceGroupsListInstancesWarningData `json:"data,omitempty"`
32426
32427	// Message: [Output Only] A human-readable description of the warning
32428	// code.
32429	Message string `json:"message,omitempty"`
32430
32431	// ForceSendFields is a list of field names (e.g. "Code") to
32432	// unconditionally include in API requests. By default, fields with
32433	// empty values are omitted from API requests. However, any non-pointer,
32434	// non-interface field appearing in ForceSendFields will be sent to the
32435	// server regardless of whether the field is empty or not. This may be
32436	// used to include empty fields in Patch requests.
32437	ForceSendFields []string `json:"-"`
32438
32439	// NullFields is a list of field names (e.g. "Code") to include in API
32440	// requests with the JSON null value. By default, fields with empty
32441	// values are omitted from API requests. However, any field with an
32442	// empty value appearing in NullFields will be sent to the server as
32443	// null. It is an error if a field in this list has a non-empty value.
32444	// This may be used to include null fields in Patch requests.
32445	NullFields []string `json:"-"`
32446}
32447
32448func (s *RegionInstanceGroupsListInstancesWarning) MarshalJSON() ([]byte, error) {
32449	type NoMethod RegionInstanceGroupsListInstancesWarning
32450	raw := NoMethod(*s)
32451	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32452}
32453
32454type RegionInstanceGroupsListInstancesWarningData struct {
32455	// Key: [Output Only] A key that provides more detail on the warning
32456	// being returned. For example, for warnings where there are no results
32457	// in a list request for a particular zone, this key might be scope and
32458	// the key value might be the zone name. Other examples might be a key
32459	// indicating a deprecated resource and a suggested replacement, or a
32460	// warning about invalid network settings (for example, if an instance
32461	// attempts to perform IP forwarding but is not enabled for IP
32462	// forwarding).
32463	Key string `json:"key,omitempty"`
32464
32465	// Value: [Output Only] A warning data value corresponding to the key.
32466	Value string `json:"value,omitempty"`
32467
32468	// ForceSendFields is a list of field names (e.g. "Key") to
32469	// unconditionally include in API requests. By default, fields with
32470	// empty values are omitted from API requests. However, any non-pointer,
32471	// non-interface field appearing in ForceSendFields will be sent to the
32472	// server regardless of whether the field is empty or not. This may be
32473	// used to include empty fields in Patch requests.
32474	ForceSendFields []string `json:"-"`
32475
32476	// NullFields is a list of field names (e.g. "Key") to include in API
32477	// requests with the JSON null value. By default, fields with empty
32478	// values are omitted from API requests. However, any field with an
32479	// empty value appearing in NullFields will be sent to the server as
32480	// null. It is an error if a field in this list has a non-empty value.
32481	// This may be used to include null fields in Patch requests.
32482	NullFields []string `json:"-"`
32483}
32484
32485func (s *RegionInstanceGroupsListInstancesWarningData) MarshalJSON() ([]byte, error) {
32486	type NoMethod RegionInstanceGroupsListInstancesWarningData
32487	raw := NoMethod(*s)
32488	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32489}
32490
32491type RegionInstanceGroupsListInstancesRequest struct {
32492	// InstanceState: Instances in which state should be returned. Valid
32493	// options are: 'ALL', 'RUNNING'. By default, it lists all instances.
32494	//
32495	// Possible values:
32496	//   "ALL"
32497	//   "RUNNING"
32498	InstanceState string `json:"instanceState,omitempty"`
32499
32500	// PortName: Name of port user is interested in. It is optional. If it
32501	// is set, only information about this ports will be returned. If it is
32502	// not set, all the named ports will be returned. Always lists all
32503	// instances.
32504	PortName string `json:"portName,omitempty"`
32505
32506	// ForceSendFields is a list of field names (e.g. "InstanceState") to
32507	// unconditionally include in API requests. By default, fields with
32508	// empty values are omitted from API requests. However, any non-pointer,
32509	// non-interface field appearing in ForceSendFields will be sent to the
32510	// server regardless of whether the field is empty or not. This may be
32511	// used to include empty fields in Patch requests.
32512	ForceSendFields []string `json:"-"`
32513
32514	// NullFields is a list of field names (e.g. "InstanceState") to include
32515	// in API requests with the JSON null value. By default, fields with
32516	// empty values are omitted from API requests. However, any field with
32517	// an empty value appearing in NullFields will be sent to the server as
32518	// null. It is an error if a field in this list has a non-empty value.
32519	// This may be used to include null fields in Patch requests.
32520	NullFields []string `json:"-"`
32521}
32522
32523func (s *RegionInstanceGroupsListInstancesRequest) MarshalJSON() ([]byte, error) {
32524	type NoMethod RegionInstanceGroupsListInstancesRequest
32525	raw := NoMethod(*s)
32526	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32527}
32528
32529type RegionInstanceGroupsSetNamedPortsRequest struct {
32530	// Fingerprint: The fingerprint of the named ports information for this
32531	// instance group. Use this optional property to prevent conflicts when
32532	// multiple users change the named ports settings concurrently. Obtain
32533	// the fingerprint with the instanceGroups.get method. Then, include the
32534	// fingerprint in your request to ensure that you do not overwrite
32535	// changes that were applied from another concurrent request.
32536	Fingerprint string `json:"fingerprint,omitempty"`
32537
32538	// NamedPorts: The list of named ports to set for this instance group.
32539	NamedPorts []*NamedPort `json:"namedPorts,omitempty"`
32540
32541	// ForceSendFields is a list of field names (e.g. "Fingerprint") to
32542	// unconditionally include in API requests. By default, fields with
32543	// empty values are omitted from API requests. However, any non-pointer,
32544	// non-interface field appearing in ForceSendFields will be sent to the
32545	// server regardless of whether the field is empty or not. This may be
32546	// used to include empty fields in Patch requests.
32547	ForceSendFields []string `json:"-"`
32548
32549	// NullFields is a list of field names (e.g. "Fingerprint") to include
32550	// in API requests with the JSON null value. By default, fields with
32551	// empty values are omitted from API requests. However, any field with
32552	// an empty value appearing in NullFields will be sent to the server as
32553	// null. It is an error if a field in this list has a non-empty value.
32554	// This may be used to include null fields in Patch requests.
32555	NullFields []string `json:"-"`
32556}
32557
32558func (s *RegionInstanceGroupsSetNamedPortsRequest) MarshalJSON() ([]byte, error) {
32559	type NoMethod RegionInstanceGroupsSetNamedPortsRequest
32560	raw := NoMethod(*s)
32561	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32562}
32563
32564// RegionList: Contains a list of region resources.
32565type RegionList struct {
32566	// Id: [Output Only] Unique identifier for the resource; defined by the
32567	// server.
32568	Id string `json:"id,omitempty"`
32569
32570	// Items: A list of Region resources.
32571	Items []*Region `json:"items,omitempty"`
32572
32573	// Kind: [Output Only] Type of resource. Always compute#regionList for
32574	// lists of regions.
32575	Kind string `json:"kind,omitempty"`
32576
32577	// NextPageToken: [Output Only] This token allows you to get the next
32578	// page of results for list requests. If the number of results is larger
32579	// than maxResults, use the nextPageToken as a value for the query
32580	// parameter pageToken in the next list request. Subsequent list
32581	// requests will have their own nextPageToken to continue paging through
32582	// the results.
32583	NextPageToken string `json:"nextPageToken,omitempty"`
32584
32585	// SelfLink: [Output Only] Server-defined URL for this resource.
32586	SelfLink string `json:"selfLink,omitempty"`
32587
32588	// Warning: [Output Only] Informational warning message.
32589	Warning *RegionListWarning `json:"warning,omitempty"`
32590
32591	// ServerResponse contains the HTTP response code and headers from the
32592	// server.
32593	googleapi.ServerResponse `json:"-"`
32594
32595	// ForceSendFields is a list of field names (e.g. "Id") to
32596	// unconditionally include in API requests. By default, fields with
32597	// empty values are omitted from API requests. However, any non-pointer,
32598	// non-interface field appearing in ForceSendFields will be sent to the
32599	// server regardless of whether the field is empty or not. This may be
32600	// used to include empty fields in Patch requests.
32601	ForceSendFields []string `json:"-"`
32602
32603	// NullFields is a list of field names (e.g. "Id") to include in API
32604	// requests with the JSON null value. By default, fields with empty
32605	// values are omitted from API requests. However, any field with an
32606	// empty value appearing in NullFields will be sent to the server as
32607	// null. It is an error if a field in this list has a non-empty value.
32608	// This may be used to include null fields in Patch requests.
32609	NullFields []string `json:"-"`
32610}
32611
32612func (s *RegionList) MarshalJSON() ([]byte, error) {
32613	type NoMethod RegionList
32614	raw := NoMethod(*s)
32615	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32616}
32617
32618// RegionListWarning: [Output Only] Informational warning message.
32619type RegionListWarning struct {
32620	// Code: [Output Only] A warning code, if applicable. For example,
32621	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
32622	// the response.
32623	//
32624	// Possible values:
32625	//   "CLEANUP_FAILED"
32626	//   "DEPRECATED_RESOURCE_USED"
32627	//   "DEPRECATED_TYPE_USED"
32628	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
32629	//   "EXPERIMENTAL_TYPE_USED"
32630	//   "EXTERNAL_API_WARNING"
32631	//   "FIELD_VALUE_OVERRIDEN"
32632	//   "INJECTED_KERNELS_DEPRECATED"
32633	//   "MISSING_TYPE_DEPENDENCY"
32634	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
32635	//   "NEXT_HOP_CANNOT_IP_FORWARD"
32636	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
32637	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
32638	//   "NEXT_HOP_NOT_RUNNING"
32639	//   "NOT_CRITICAL_ERROR"
32640	//   "NO_RESULTS_ON_PAGE"
32641	//   "REQUIRED_TOS_AGREEMENT"
32642	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
32643	//   "RESOURCE_NOT_DELETED"
32644	//   "SCHEMA_VALIDATION_IGNORED"
32645	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
32646	//   "UNDECLARED_PROPERTIES"
32647	//   "UNREACHABLE"
32648	Code string `json:"code,omitempty"`
32649
32650	// Data: [Output Only] Metadata about this warning in key: value format.
32651	// For example:
32652	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
32653	Data []*RegionListWarningData `json:"data,omitempty"`
32654
32655	// Message: [Output Only] A human-readable description of the warning
32656	// code.
32657	Message string `json:"message,omitempty"`
32658
32659	// ForceSendFields is a list of field names (e.g. "Code") to
32660	// unconditionally include in API requests. By default, fields with
32661	// empty values are omitted from API requests. However, any non-pointer,
32662	// non-interface field appearing in ForceSendFields will be sent to the
32663	// server regardless of whether the field is empty or not. This may be
32664	// used to include empty fields in Patch requests.
32665	ForceSendFields []string `json:"-"`
32666
32667	// NullFields is a list of field names (e.g. "Code") to include in API
32668	// requests with the JSON null value. By default, fields with empty
32669	// values are omitted from API requests. However, any field with an
32670	// empty value appearing in NullFields will be sent to the server as
32671	// null. It is an error if a field in this list has a non-empty value.
32672	// This may be used to include null fields in Patch requests.
32673	NullFields []string `json:"-"`
32674}
32675
32676func (s *RegionListWarning) MarshalJSON() ([]byte, error) {
32677	type NoMethod RegionListWarning
32678	raw := NoMethod(*s)
32679	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32680}
32681
32682type RegionListWarningData struct {
32683	// Key: [Output Only] A key that provides more detail on the warning
32684	// being returned. For example, for warnings where there are no results
32685	// in a list request for a particular zone, this key might be scope and
32686	// the key value might be the zone name. Other examples might be a key
32687	// indicating a deprecated resource and a suggested replacement, or a
32688	// warning about invalid network settings (for example, if an instance
32689	// attempts to perform IP forwarding but is not enabled for IP
32690	// forwarding).
32691	Key string `json:"key,omitempty"`
32692
32693	// Value: [Output Only] A warning data value corresponding to the key.
32694	Value string `json:"value,omitempty"`
32695
32696	// ForceSendFields is a list of field names (e.g. "Key") to
32697	// unconditionally include in API requests. By default, fields with
32698	// empty values are omitted from API requests. However, any non-pointer,
32699	// non-interface field appearing in ForceSendFields will be sent to the
32700	// server regardless of whether the field is empty or not. This may be
32701	// used to include empty fields in Patch requests.
32702	ForceSendFields []string `json:"-"`
32703
32704	// NullFields is a list of field names (e.g. "Key") to include in API
32705	// requests with the JSON null value. By default, fields with empty
32706	// values are omitted from API requests. However, any field with an
32707	// empty value appearing in NullFields will be sent to the server as
32708	// null. It is an error if a field in this list has a non-empty value.
32709	// This may be used to include null fields in Patch requests.
32710	NullFields []string `json:"-"`
32711}
32712
32713func (s *RegionListWarningData) MarshalJSON() ([]byte, error) {
32714	type NoMethod RegionListWarningData
32715	raw := NoMethod(*s)
32716	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32717}
32718
32719type RegionSetLabelsRequest struct {
32720	// LabelFingerprint: The fingerprint of the previous set of labels for
32721	// this resource, used to detect conflicts. The fingerprint is initially
32722	// generated by Compute Engine and changes after every request to modify
32723	// or update labels. You must always provide an up-to-date fingerprint
32724	// hash in order to update or change labels. Make a get() request to the
32725	// resource to get the latest fingerprint.
32726	LabelFingerprint string `json:"labelFingerprint,omitempty"`
32727
32728	// Labels: The labels to set for this resource.
32729	Labels map[string]string `json:"labels,omitempty"`
32730
32731	// ForceSendFields is a list of field names (e.g. "LabelFingerprint") to
32732	// unconditionally include in API requests. By default, fields with
32733	// empty values are omitted from API requests. However, any non-pointer,
32734	// non-interface field appearing in ForceSendFields will be sent to the
32735	// server regardless of whether the field is empty or not. This may be
32736	// used to include empty fields in Patch requests.
32737	ForceSendFields []string `json:"-"`
32738
32739	// NullFields is a list of field names (e.g. "LabelFingerprint") to
32740	// include in API requests with the JSON null value. By default, fields
32741	// with empty values are omitted from API requests. However, any field
32742	// with an empty value appearing in NullFields will be sent to the
32743	// server as null. It is an error if a field in this list has a
32744	// non-empty value. This may be used to include null fields in Patch
32745	// requests.
32746	NullFields []string `json:"-"`
32747}
32748
32749func (s *RegionSetLabelsRequest) MarshalJSON() ([]byte, error) {
32750	type NoMethod RegionSetLabelsRequest
32751	raw := NoMethod(*s)
32752	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32753}
32754
32755type RegionSetPolicyRequest struct {
32756	// Bindings: Flatten Policy to create a backwacd compatible wire-format.
32757	// Deprecated. Use 'policy' to specify bindings.
32758	Bindings []*Binding `json:"bindings,omitempty"`
32759
32760	// Etag: Flatten Policy to create a backward compatible wire-format.
32761	// Deprecated. Use 'policy' to specify the etag.
32762	Etag string `json:"etag,omitempty"`
32763
32764	// Policy: REQUIRED: The complete policy to be applied to the
32765	// 'resource'. The size of the policy is limited to a few 10s of KB. An
32766	// empty policy is in general a valid policy but certain services (like
32767	// Projects) might reject them.
32768	Policy *Policy `json:"policy,omitempty"`
32769
32770	// ForceSendFields is a list of field names (e.g. "Bindings") to
32771	// unconditionally include in API requests. By default, fields with
32772	// empty values are omitted from API requests. However, any non-pointer,
32773	// non-interface field appearing in ForceSendFields will be sent to the
32774	// server regardless of whether the field is empty or not. This may be
32775	// used to include empty fields in Patch requests.
32776	ForceSendFields []string `json:"-"`
32777
32778	// NullFields is a list of field names (e.g. "Bindings") to include in
32779	// API requests with the JSON null value. By default, fields with empty
32780	// values are omitted from API requests. However, any field with an
32781	// empty value appearing in NullFields will be sent to the server as
32782	// null. It is an error if a field in this list has a non-empty value.
32783	// This may be used to include null fields in Patch requests.
32784	NullFields []string `json:"-"`
32785}
32786
32787func (s *RegionSetPolicyRequest) MarshalJSON() ([]byte, error) {
32788	type NoMethod RegionSetPolicyRequest
32789	raw := NoMethod(*s)
32790	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32791}
32792
32793type RegionTargetHttpsProxiesSetSslCertificatesRequest struct {
32794	// SslCertificates: New set of SslCertificate resources to associate
32795	// with this TargetHttpsProxy resource. Currently exactly one
32796	// SslCertificate resource must be specified.
32797	SslCertificates []string `json:"sslCertificates,omitempty"`
32798
32799	// ForceSendFields is a list of field names (e.g. "SslCertificates") to
32800	// unconditionally include in API requests. By default, fields with
32801	// empty values are omitted from API requests. However, any non-pointer,
32802	// non-interface field appearing in ForceSendFields will be sent to the
32803	// server regardless of whether the field is empty or not. This may be
32804	// used to include empty fields in Patch requests.
32805	ForceSendFields []string `json:"-"`
32806
32807	// NullFields is a list of field names (e.g. "SslCertificates") to
32808	// include in API requests with the JSON null value. By default, fields
32809	// with empty values are omitted from API requests. However, any field
32810	// with an empty value appearing in NullFields will be sent to the
32811	// server as null. It is an error if a field in this list has a
32812	// non-empty value. This may be used to include null fields in Patch
32813	// requests.
32814	NullFields []string `json:"-"`
32815}
32816
32817func (s *RegionTargetHttpsProxiesSetSslCertificatesRequest) MarshalJSON() ([]byte, error) {
32818	type NoMethod RegionTargetHttpsProxiesSetSslCertificatesRequest
32819	raw := NoMethod(*s)
32820	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32821}
32822
32823type RegionUrlMapsValidateRequest struct {
32824	// Resource: Content of the UrlMap to be validated.
32825	Resource *UrlMap `json:"resource,omitempty"`
32826
32827	// ForceSendFields is a list of field names (e.g. "Resource") to
32828	// unconditionally include in API requests. By default, fields with
32829	// empty values are omitted from API requests. However, any non-pointer,
32830	// non-interface field appearing in ForceSendFields will be sent to the
32831	// server regardless of whether the field is empty or not. This may be
32832	// used to include empty fields in Patch requests.
32833	ForceSendFields []string `json:"-"`
32834
32835	// NullFields is a list of field names (e.g. "Resource") to include in
32836	// API requests with the JSON null value. By default, fields with empty
32837	// values are omitted from API requests. However, any field with an
32838	// empty value appearing in NullFields will be sent to the server as
32839	// null. It is an error if a field in this list has a non-empty value.
32840	// This may be used to include null fields in Patch requests.
32841	NullFields []string `json:"-"`
32842}
32843
32844func (s *RegionUrlMapsValidateRequest) MarshalJSON() ([]byte, error) {
32845	type NoMethod RegionUrlMapsValidateRequest
32846	raw := NoMethod(*s)
32847	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32848}
32849
32850// RequestMirrorPolicy: A policy that specifies how requests intended
32851// for the route's backends are shadowed to a separate mirrored backend
32852// service. Loadbalancer does not wait for responses from the shadow
32853// service. Prior to sending traffic to the shadow service, the host /
32854// authority header is suffixed with -shadow.
32855type RequestMirrorPolicy struct {
32856	// BackendService: The full or partial URL to the BackendService
32857	// resource being mirrored to.
32858	BackendService string `json:"backendService,omitempty"`
32859
32860	// ForceSendFields is a list of field names (e.g. "BackendService") to
32861	// unconditionally include in API requests. By default, fields with
32862	// empty values are omitted from API requests. However, any non-pointer,
32863	// non-interface field appearing in ForceSendFields will be sent to the
32864	// server regardless of whether the field is empty or not. This may be
32865	// used to include empty fields in Patch requests.
32866	ForceSendFields []string `json:"-"`
32867
32868	// NullFields is a list of field names (e.g. "BackendService") to
32869	// include in API requests with the JSON null value. By default, fields
32870	// with empty values are omitted from API requests. However, any field
32871	// with an empty value appearing in NullFields will be sent to the
32872	// server as null. It is an error if a field in this list has a
32873	// non-empty value. This may be used to include null fields in Patch
32874	// requests.
32875	NullFields []string `json:"-"`
32876}
32877
32878func (s *RequestMirrorPolicy) MarshalJSON() ([]byte, error) {
32879	type NoMethod RequestMirrorPolicy
32880	raw := NoMethod(*s)
32881	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32882}
32883
32884// Reservation: Represents a reservation resource. A reservation ensures
32885// that capacity is held in a specific zone even if the reserved VMs are
32886// not running. For more information, read  Reserving zonal resources.
32887// (== resource_for beta.reservations ==) (== resource_for
32888// v1.reservations ==)
32889type Reservation struct {
32890	// Commitment: [Output Only] Full or partial URL to a parent commitment.
32891	// This field displays for reservations that are tied to a commitment.
32892	Commitment string `json:"commitment,omitempty"`
32893
32894	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
32895	// format.
32896	CreationTimestamp string `json:"creationTimestamp,omitempty"`
32897
32898	// Description: An optional description of this resource. Provide this
32899	// property when you create the resource.
32900	Description string `json:"description,omitempty"`
32901
32902	// Id: [Output Only] The unique identifier for the resource. This
32903	// identifier is defined by the server.
32904	Id uint64 `json:"id,omitempty,string"`
32905
32906	// Kind: [Output Only] Type of the resource. Always compute#reservations
32907	// for reservations.
32908	Kind string `json:"kind,omitempty"`
32909
32910	// Name: The name of the resource, provided by the client when initially
32911	// creating the resource. The resource name must be 1-63 characters
32912	// long, and comply with RFC1035. Specifically, the name must be 1-63
32913	// characters long and match the regular expression
32914	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
32915	// a lowercase letter, and all following characters must be a dash,
32916	// lowercase letter, or digit, except the last character, which cannot
32917	// be a dash.
32918	Name string `json:"name,omitempty"`
32919
32920	// SelfLink: [Output Only] Server-defined fully-qualified URL for this
32921	// resource.
32922	SelfLink string `json:"selfLink,omitempty"`
32923
32924	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
32925	// with the resource id.
32926	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
32927
32928	// SpecificReservation: Reservation for instances with specific machine
32929	// shapes.
32930	SpecificReservation *AllocationSpecificSKUReservation `json:"specificReservation,omitempty"`
32931
32932	// SpecificReservationRequired: Indicates whether the reservation can be
32933	// consumed by VMs with affinity for "any" reservation. If the field is
32934	// set, then only VMs that target the reservation by name can consume
32935	// from this reservation.
32936	SpecificReservationRequired bool `json:"specificReservationRequired,omitempty"`
32937
32938	// Status: [Output Only] The status of the reservation.
32939	//
32940	// Possible values:
32941	//   "CREATING"
32942	//   "DELETING"
32943	//   "INVALID"
32944	//   "READY"
32945	//   "UPDATING"
32946	Status string `json:"status,omitempty"`
32947
32948	// Zone: Zone in which the reservation resides. A zone must be provided
32949	// if the reservation is created within a commitment.
32950	Zone string `json:"zone,omitempty"`
32951
32952	// ServerResponse contains the HTTP response code and headers from the
32953	// server.
32954	googleapi.ServerResponse `json:"-"`
32955
32956	// ForceSendFields is a list of field names (e.g. "Commitment") to
32957	// unconditionally include in API requests. By default, fields with
32958	// empty values are omitted from API requests. However, any non-pointer,
32959	// non-interface field appearing in ForceSendFields will be sent to the
32960	// server regardless of whether the field is empty or not. This may be
32961	// used to include empty fields in Patch requests.
32962	ForceSendFields []string `json:"-"`
32963
32964	// NullFields is a list of field names (e.g. "Commitment") to include in
32965	// API requests with the JSON null value. By default, fields with empty
32966	// values are omitted from API requests. However, any field with an
32967	// empty value appearing in NullFields will be sent to the server as
32968	// null. It is an error if a field in this list has a non-empty value.
32969	// This may be used to include null fields in Patch requests.
32970	NullFields []string `json:"-"`
32971}
32972
32973func (s *Reservation) MarshalJSON() ([]byte, error) {
32974	type NoMethod Reservation
32975	raw := NoMethod(*s)
32976	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32977}
32978
32979// ReservationAffinity: Specifies the reservations that this instance
32980// can consume from.
32981type ReservationAffinity struct {
32982	// ConsumeReservationType: Specifies the type of reservation from which
32983	// this instance can consume resources: ANY_RESERVATION (default),
32984	// SPECIFIC_RESERVATION, or NO_RESERVATION. See  Consuming reserved
32985	// instances for examples.
32986	//
32987	// Possible values:
32988	//   "ANY_RESERVATION"
32989	//   "NO_RESERVATION"
32990	//   "SPECIFIC_RESERVATION"
32991	//   "UNSPECIFIED"
32992	ConsumeReservationType string `json:"consumeReservationType,omitempty"`
32993
32994	// Key: Corresponds to the label key of a reservation resource. To
32995	// target a SPECIFIC_RESERVATION by name, specify
32996	// googleapis.com/reservation-name as the key and specify the name of
32997	// your reservation as its value.
32998	Key string `json:"key,omitempty"`
32999
33000	// Values: Corresponds to the label values of a reservation resource.
33001	Values []string `json:"values,omitempty"`
33002
33003	// ForceSendFields is a list of field names (e.g.
33004	// "ConsumeReservationType") to unconditionally include in API requests.
33005	// By default, fields with empty values are omitted from API requests.
33006	// However, any non-pointer, non-interface field appearing in
33007	// ForceSendFields will be sent to the server regardless of whether the
33008	// field is empty or not. This may be used to include empty fields in
33009	// Patch requests.
33010	ForceSendFields []string `json:"-"`
33011
33012	// NullFields is a list of field names (e.g. "ConsumeReservationType")
33013	// to include in API requests with the JSON null value. By default,
33014	// fields with empty values are omitted from API requests. However, any
33015	// field with an empty value appearing in NullFields will be sent to the
33016	// server as null. It is an error if a field in this list has a
33017	// non-empty value. This may be used to include null fields in Patch
33018	// requests.
33019	NullFields []string `json:"-"`
33020}
33021
33022func (s *ReservationAffinity) MarshalJSON() ([]byte, error) {
33023	type NoMethod ReservationAffinity
33024	raw := NoMethod(*s)
33025	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33026}
33027
33028// ReservationAggregatedList: Contains a list of reservations.
33029type ReservationAggregatedList struct {
33030	// Id: [Output Only] Unique identifier for the resource; defined by the
33031	// server.
33032	Id string `json:"id,omitempty"`
33033
33034	// Items: A list of Allocation resources.
33035	Items map[string]ReservationsScopedList `json:"items,omitempty"`
33036
33037	// Kind: Type of resource.
33038	Kind string `json:"kind,omitempty"`
33039
33040	// NextPageToken: [Output Only] This token allows you to get the next
33041	// page of results for list requests. If the number of results is larger
33042	// than maxResults, use the nextPageToken as a value for the query
33043	// parameter pageToken in the next list request. Subsequent list
33044	// requests will have their own nextPageToken to continue paging through
33045	// the results.
33046	NextPageToken string `json:"nextPageToken,omitempty"`
33047
33048	// SelfLink: [Output Only] Server-defined URL for this resource.
33049	SelfLink string `json:"selfLink,omitempty"`
33050
33051	// Warning: [Output Only] Informational warning message.
33052	Warning *ReservationAggregatedListWarning `json:"warning,omitempty"`
33053
33054	// ServerResponse contains the HTTP response code and headers from the
33055	// server.
33056	googleapi.ServerResponse `json:"-"`
33057
33058	// ForceSendFields is a list of field names (e.g. "Id") to
33059	// unconditionally include in API requests. By default, fields with
33060	// empty values are omitted from API requests. However, any non-pointer,
33061	// non-interface field appearing in ForceSendFields will be sent to the
33062	// server regardless of whether the field is empty or not. This may be
33063	// used to include empty fields in Patch requests.
33064	ForceSendFields []string `json:"-"`
33065
33066	// NullFields is a list of field names (e.g. "Id") to include in API
33067	// requests with the JSON null value. By default, fields with empty
33068	// values are omitted from API requests. However, any field with an
33069	// empty value appearing in NullFields will be sent to the server as
33070	// null. It is an error if a field in this list has a non-empty value.
33071	// This may be used to include null fields in Patch requests.
33072	NullFields []string `json:"-"`
33073}
33074
33075func (s *ReservationAggregatedList) MarshalJSON() ([]byte, error) {
33076	type NoMethod ReservationAggregatedList
33077	raw := NoMethod(*s)
33078	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33079}
33080
33081// ReservationAggregatedListWarning: [Output Only] Informational warning
33082// message.
33083type ReservationAggregatedListWarning struct {
33084	// Code: [Output Only] A warning code, if applicable. For example,
33085	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
33086	// the response.
33087	//
33088	// Possible values:
33089	//   "CLEANUP_FAILED"
33090	//   "DEPRECATED_RESOURCE_USED"
33091	//   "DEPRECATED_TYPE_USED"
33092	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
33093	//   "EXPERIMENTAL_TYPE_USED"
33094	//   "EXTERNAL_API_WARNING"
33095	//   "FIELD_VALUE_OVERRIDEN"
33096	//   "INJECTED_KERNELS_DEPRECATED"
33097	//   "MISSING_TYPE_DEPENDENCY"
33098	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
33099	//   "NEXT_HOP_CANNOT_IP_FORWARD"
33100	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
33101	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
33102	//   "NEXT_HOP_NOT_RUNNING"
33103	//   "NOT_CRITICAL_ERROR"
33104	//   "NO_RESULTS_ON_PAGE"
33105	//   "REQUIRED_TOS_AGREEMENT"
33106	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
33107	//   "RESOURCE_NOT_DELETED"
33108	//   "SCHEMA_VALIDATION_IGNORED"
33109	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
33110	//   "UNDECLARED_PROPERTIES"
33111	//   "UNREACHABLE"
33112	Code string `json:"code,omitempty"`
33113
33114	// Data: [Output Only] Metadata about this warning in key: value format.
33115	// For example:
33116	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
33117	Data []*ReservationAggregatedListWarningData `json:"data,omitempty"`
33118
33119	// Message: [Output Only] A human-readable description of the warning
33120	// code.
33121	Message string `json:"message,omitempty"`
33122
33123	// ForceSendFields is a list of field names (e.g. "Code") to
33124	// unconditionally include in API requests. By default, fields with
33125	// empty values are omitted from API requests. However, any non-pointer,
33126	// non-interface field appearing in ForceSendFields will be sent to the
33127	// server regardless of whether the field is empty or not. This may be
33128	// used to include empty fields in Patch requests.
33129	ForceSendFields []string `json:"-"`
33130
33131	// NullFields is a list of field names (e.g. "Code") to include in API
33132	// requests with the JSON null value. By default, fields with empty
33133	// values are omitted from API requests. However, any field with an
33134	// empty value appearing in NullFields will be sent to the server as
33135	// null. It is an error if a field in this list has a non-empty value.
33136	// This may be used to include null fields in Patch requests.
33137	NullFields []string `json:"-"`
33138}
33139
33140func (s *ReservationAggregatedListWarning) MarshalJSON() ([]byte, error) {
33141	type NoMethod ReservationAggregatedListWarning
33142	raw := NoMethod(*s)
33143	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33144}
33145
33146type ReservationAggregatedListWarningData struct {
33147	// Key: [Output Only] A key that provides more detail on the warning
33148	// being returned. For example, for warnings where there are no results
33149	// in a list request for a particular zone, this key might be scope and
33150	// the key value might be the zone name. Other examples might be a key
33151	// indicating a deprecated resource and a suggested replacement, or a
33152	// warning about invalid network settings (for example, if an instance
33153	// attempts to perform IP forwarding but is not enabled for IP
33154	// forwarding).
33155	Key string `json:"key,omitempty"`
33156
33157	// Value: [Output Only] A warning data value corresponding to the key.
33158	Value string `json:"value,omitempty"`
33159
33160	// ForceSendFields is a list of field names (e.g. "Key") to
33161	// unconditionally include in API requests. By default, fields with
33162	// empty values are omitted from API requests. However, any non-pointer,
33163	// non-interface field appearing in ForceSendFields will be sent to the
33164	// server regardless of whether the field is empty or not. This may be
33165	// used to include empty fields in Patch requests.
33166	ForceSendFields []string `json:"-"`
33167
33168	// NullFields is a list of field names (e.g. "Key") to include in API
33169	// requests with the JSON null value. By default, fields with empty
33170	// values are omitted from API requests. However, any field with an
33171	// empty value appearing in NullFields will be sent to the server as
33172	// null. It is an error if a field in this list has a non-empty value.
33173	// This may be used to include null fields in Patch requests.
33174	NullFields []string `json:"-"`
33175}
33176
33177func (s *ReservationAggregatedListWarningData) MarshalJSON() ([]byte, error) {
33178	type NoMethod ReservationAggregatedListWarningData
33179	raw := NoMethod(*s)
33180	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33181}
33182
33183type ReservationList struct {
33184	// Id: [Output Only] The unique identifier for the resource. This
33185	// identifier is defined by the server.
33186	Id string `json:"id,omitempty"`
33187
33188	// Items: [Output Only] A list of Allocation resources.
33189	Items []*Reservation `json:"items,omitempty"`
33190
33191	// Kind: [Output Only] Type of resource.Always compute#reservationsList
33192	// for listsof reservations
33193	Kind string `json:"kind,omitempty"`
33194
33195	// NextPageToken: [Output Only] This token allows you to get the next
33196	// page of results for list requests. If the number of results is larger
33197	// than maxResults, use the nextPageToken as a value for the query
33198	// parameter pageToken in the next list request. Subsequent list
33199	// requests will have their own nextPageToken to continue paging through
33200	// the results.
33201	NextPageToken string `json:"nextPageToken,omitempty"`
33202
33203	// SelfLink: [Output Only] Server-defined URL for this resource.
33204	SelfLink string `json:"selfLink,omitempty"`
33205
33206	// Warning: [Output Only] Informational warning message.
33207	Warning *ReservationListWarning `json:"warning,omitempty"`
33208
33209	// ServerResponse contains the HTTP response code and headers from the
33210	// server.
33211	googleapi.ServerResponse `json:"-"`
33212
33213	// ForceSendFields is a list of field names (e.g. "Id") to
33214	// unconditionally include in API requests. By default, fields with
33215	// empty values are omitted from API requests. However, any non-pointer,
33216	// non-interface field appearing in ForceSendFields will be sent to the
33217	// server regardless of whether the field is empty or not. This may be
33218	// used to include empty fields in Patch requests.
33219	ForceSendFields []string `json:"-"`
33220
33221	// NullFields is a list of field names (e.g. "Id") to include in API
33222	// requests with the JSON null value. By default, fields with empty
33223	// values are omitted from API requests. However, any field with an
33224	// empty value appearing in NullFields will be sent to the server as
33225	// null. It is an error if a field in this list has a non-empty value.
33226	// This may be used to include null fields in Patch requests.
33227	NullFields []string `json:"-"`
33228}
33229
33230func (s *ReservationList) MarshalJSON() ([]byte, error) {
33231	type NoMethod ReservationList
33232	raw := NoMethod(*s)
33233	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33234}
33235
33236// ReservationListWarning: [Output Only] Informational warning message.
33237type ReservationListWarning struct {
33238	// Code: [Output Only] A warning code, if applicable. For example,
33239	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
33240	// the response.
33241	//
33242	// Possible values:
33243	//   "CLEANUP_FAILED"
33244	//   "DEPRECATED_RESOURCE_USED"
33245	//   "DEPRECATED_TYPE_USED"
33246	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
33247	//   "EXPERIMENTAL_TYPE_USED"
33248	//   "EXTERNAL_API_WARNING"
33249	//   "FIELD_VALUE_OVERRIDEN"
33250	//   "INJECTED_KERNELS_DEPRECATED"
33251	//   "MISSING_TYPE_DEPENDENCY"
33252	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
33253	//   "NEXT_HOP_CANNOT_IP_FORWARD"
33254	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
33255	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
33256	//   "NEXT_HOP_NOT_RUNNING"
33257	//   "NOT_CRITICAL_ERROR"
33258	//   "NO_RESULTS_ON_PAGE"
33259	//   "REQUIRED_TOS_AGREEMENT"
33260	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
33261	//   "RESOURCE_NOT_DELETED"
33262	//   "SCHEMA_VALIDATION_IGNORED"
33263	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
33264	//   "UNDECLARED_PROPERTIES"
33265	//   "UNREACHABLE"
33266	Code string `json:"code,omitempty"`
33267
33268	// Data: [Output Only] Metadata about this warning in key: value format.
33269	// For example:
33270	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
33271	Data []*ReservationListWarningData `json:"data,omitempty"`
33272
33273	// Message: [Output Only] A human-readable description of the warning
33274	// code.
33275	Message string `json:"message,omitempty"`
33276
33277	// ForceSendFields is a list of field names (e.g. "Code") to
33278	// unconditionally include in API requests. By default, fields with
33279	// empty values are omitted from API requests. However, any non-pointer,
33280	// non-interface field appearing in ForceSendFields will be sent to the
33281	// server regardless of whether the field is empty or not. This may be
33282	// used to include empty fields in Patch requests.
33283	ForceSendFields []string `json:"-"`
33284
33285	// NullFields is a list of field names (e.g. "Code") to include in API
33286	// requests with the JSON null value. By default, fields with empty
33287	// values are omitted from API requests. However, any field with an
33288	// empty value appearing in NullFields will be sent to the server as
33289	// null. It is an error if a field in this list has a non-empty value.
33290	// This may be used to include null fields in Patch requests.
33291	NullFields []string `json:"-"`
33292}
33293
33294func (s *ReservationListWarning) MarshalJSON() ([]byte, error) {
33295	type NoMethod ReservationListWarning
33296	raw := NoMethod(*s)
33297	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33298}
33299
33300type ReservationListWarningData struct {
33301	// Key: [Output Only] A key that provides more detail on the warning
33302	// being returned. For example, for warnings where there are no results
33303	// in a list request for a particular zone, this key might be scope and
33304	// the key value might be the zone name. Other examples might be a key
33305	// indicating a deprecated resource and a suggested replacement, or a
33306	// warning about invalid network settings (for example, if an instance
33307	// attempts to perform IP forwarding but is not enabled for IP
33308	// forwarding).
33309	Key string `json:"key,omitempty"`
33310
33311	// Value: [Output Only] A warning data value corresponding to the key.
33312	Value string `json:"value,omitempty"`
33313
33314	// ForceSendFields is a list of field names (e.g. "Key") to
33315	// unconditionally include in API requests. By default, fields with
33316	// empty values are omitted from API requests. However, any non-pointer,
33317	// non-interface field appearing in ForceSendFields will be sent to the
33318	// server regardless of whether the field is empty or not. This may be
33319	// used to include empty fields in Patch requests.
33320	ForceSendFields []string `json:"-"`
33321
33322	// NullFields is a list of field names (e.g. "Key") to include in API
33323	// requests with the JSON null value. By default, fields with empty
33324	// values are omitted from API requests. However, any field with an
33325	// empty value appearing in NullFields will be sent to the server as
33326	// null. It is an error if a field in this list has a non-empty value.
33327	// This may be used to include null fields in Patch requests.
33328	NullFields []string `json:"-"`
33329}
33330
33331func (s *ReservationListWarningData) MarshalJSON() ([]byte, error) {
33332	type NoMethod ReservationListWarningData
33333	raw := NoMethod(*s)
33334	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33335}
33336
33337type ReservationsResizeRequest struct {
33338	// SpecificSkuCount: Number of allocated resources can be resized with
33339	// minimum = 1 and maximum = 1000.
33340	SpecificSkuCount int64 `json:"specificSkuCount,omitempty,string"`
33341
33342	// ForceSendFields is a list of field names (e.g. "SpecificSkuCount") to
33343	// unconditionally include in API requests. By default, fields with
33344	// empty values are omitted from API requests. However, any non-pointer,
33345	// non-interface field appearing in ForceSendFields will be sent to the
33346	// server regardless of whether the field is empty or not. This may be
33347	// used to include empty fields in Patch requests.
33348	ForceSendFields []string `json:"-"`
33349
33350	// NullFields is a list of field names (e.g. "SpecificSkuCount") to
33351	// include in API requests with the JSON null value. By default, fields
33352	// with empty values are omitted from API requests. However, any field
33353	// with an empty value appearing in NullFields will be sent to the
33354	// server as null. It is an error if a field in this list has a
33355	// non-empty value. This may be used to include null fields in Patch
33356	// requests.
33357	NullFields []string `json:"-"`
33358}
33359
33360func (s *ReservationsResizeRequest) MarshalJSON() ([]byte, error) {
33361	type NoMethod ReservationsResizeRequest
33362	raw := NoMethod(*s)
33363	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33364}
33365
33366type ReservationsScopedList struct {
33367	// Reservations: A list of reservations contained in this scope.
33368	Reservations []*Reservation `json:"reservations,omitempty"`
33369
33370	// Warning: Informational warning which replaces the list of
33371	// reservations when the list is empty.
33372	Warning *ReservationsScopedListWarning `json:"warning,omitempty"`
33373
33374	// ForceSendFields is a list of field names (e.g. "Reservations") 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. "Reservations") to include
33383	// in API requests with the JSON null value. By default, fields with
33384	// empty values are omitted from API requests. However, any field with
33385	// an 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 *ReservationsScopedList) MarshalJSON() ([]byte, error) {
33392	type NoMethod ReservationsScopedList
33393	raw := NoMethod(*s)
33394	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33395}
33396
33397// ReservationsScopedListWarning: Informational warning which replaces
33398// the list of reservations when the list is empty.
33399type ReservationsScopedListWarning struct {
33400	// Code: [Output Only] A warning code, if applicable. For example,
33401	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
33402	// the response.
33403	//
33404	// Possible values:
33405	//   "CLEANUP_FAILED"
33406	//   "DEPRECATED_RESOURCE_USED"
33407	//   "DEPRECATED_TYPE_USED"
33408	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
33409	//   "EXPERIMENTAL_TYPE_USED"
33410	//   "EXTERNAL_API_WARNING"
33411	//   "FIELD_VALUE_OVERRIDEN"
33412	//   "INJECTED_KERNELS_DEPRECATED"
33413	//   "MISSING_TYPE_DEPENDENCY"
33414	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
33415	//   "NEXT_HOP_CANNOT_IP_FORWARD"
33416	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
33417	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
33418	//   "NEXT_HOP_NOT_RUNNING"
33419	//   "NOT_CRITICAL_ERROR"
33420	//   "NO_RESULTS_ON_PAGE"
33421	//   "REQUIRED_TOS_AGREEMENT"
33422	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
33423	//   "RESOURCE_NOT_DELETED"
33424	//   "SCHEMA_VALIDATION_IGNORED"
33425	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
33426	//   "UNDECLARED_PROPERTIES"
33427	//   "UNREACHABLE"
33428	Code string `json:"code,omitempty"`
33429
33430	// Data: [Output Only] Metadata about this warning in key: value format.
33431	// For example:
33432	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
33433	Data []*ReservationsScopedListWarningData `json:"data,omitempty"`
33434
33435	// Message: [Output Only] A human-readable description of the warning
33436	// code.
33437	Message string `json:"message,omitempty"`
33438
33439	// ForceSendFields is a list of field names (e.g. "Code") to
33440	// unconditionally include in API requests. By default, fields with
33441	// empty values are omitted from API requests. However, any non-pointer,
33442	// non-interface field appearing in ForceSendFields will be sent to the
33443	// server regardless of whether the field is empty or not. This may be
33444	// used to include empty fields in Patch requests.
33445	ForceSendFields []string `json:"-"`
33446
33447	// NullFields is a list of field names (e.g. "Code") to include in API
33448	// requests with the JSON null value. By default, fields with empty
33449	// values are omitted from API requests. However, any field with an
33450	// empty value appearing in NullFields will be sent to the server as
33451	// null. It is an error if a field in this list has a non-empty value.
33452	// This may be used to include null fields in Patch requests.
33453	NullFields []string `json:"-"`
33454}
33455
33456func (s *ReservationsScopedListWarning) MarshalJSON() ([]byte, error) {
33457	type NoMethod ReservationsScopedListWarning
33458	raw := NoMethod(*s)
33459	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33460}
33461
33462type ReservationsScopedListWarningData struct {
33463	// Key: [Output Only] A key that provides more detail on the warning
33464	// being returned. For example, for warnings where there are no results
33465	// in a list request for a particular zone, this key might be scope and
33466	// the key value might be the zone name. Other examples might be a key
33467	// indicating a deprecated resource and a suggested replacement, or a
33468	// warning about invalid network settings (for example, if an instance
33469	// attempts to perform IP forwarding but is not enabled for IP
33470	// forwarding).
33471	Key string `json:"key,omitempty"`
33472
33473	// Value: [Output Only] A warning data value corresponding to the key.
33474	Value string `json:"value,omitempty"`
33475
33476	// ForceSendFields is a list of field names (e.g. "Key") to
33477	// unconditionally include in API requests. By default, fields with
33478	// empty values are omitted from API requests. However, any non-pointer,
33479	// non-interface field appearing in ForceSendFields will be sent to the
33480	// server regardless of whether the field is empty or not. This may be
33481	// used to include empty fields in Patch requests.
33482	ForceSendFields []string `json:"-"`
33483
33484	// NullFields is a list of field names (e.g. "Key") to include in API
33485	// requests with the JSON null value. By default, fields with empty
33486	// values are omitted from API requests. However, any field with an
33487	// empty value appearing in NullFields will be sent to the server as
33488	// null. It is an error if a field in this list has a non-empty value.
33489	// This may be used to include null fields in Patch requests.
33490	NullFields []string `json:"-"`
33491}
33492
33493func (s *ReservationsScopedListWarningData) MarshalJSON() ([]byte, error) {
33494	type NoMethod ReservationsScopedListWarningData
33495	raw := NoMethod(*s)
33496	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33497}
33498
33499// ResourceCommitment: Commitment for a particular resource (a
33500// Commitment is composed of one or more of these).
33501type ResourceCommitment struct {
33502	// AcceleratorType: Name of the accelerator type resource. Applicable
33503	// only when the type is ACCELERATOR.
33504	AcceleratorType string `json:"acceleratorType,omitempty"`
33505
33506	// Amount: The amount of the resource purchased (in a type-dependent
33507	// unit, such as bytes). For vCPUs, this can just be an integer. For
33508	// memory, this must be provided in MB. Memory must be a multiple of 256
33509	// MB, with up to 6.5GB of memory per every vCPU.
33510	Amount int64 `json:"amount,omitempty,string"`
33511
33512	// Type: Type of resource for which this commitment applies. Possible
33513	// values are VCPU and MEMORY
33514	//
33515	// Possible values:
33516	//   "ACCELERATOR"
33517	//   "LOCAL_SSD"
33518	//   "MEMORY"
33519	//   "UNSPECIFIED"
33520	//   "VCPU"
33521	Type string `json:"type,omitempty"`
33522
33523	// ForceSendFields is a list of field names (e.g. "AcceleratorType") to
33524	// unconditionally include in API requests. By default, fields with
33525	// empty values are omitted from API requests. However, any non-pointer,
33526	// non-interface field appearing in ForceSendFields will be sent to the
33527	// server regardless of whether the field is empty or not. This may be
33528	// used to include empty fields in Patch requests.
33529	ForceSendFields []string `json:"-"`
33530
33531	// NullFields is a list of field names (e.g. "AcceleratorType") to
33532	// include in API requests with the JSON null value. By default, fields
33533	// with empty values are omitted from API requests. However, any field
33534	// with an empty value appearing in NullFields will be sent to the
33535	// server as null. It is an error if a field in this list has a
33536	// non-empty value. This may be used to include null fields in Patch
33537	// requests.
33538	NullFields []string `json:"-"`
33539}
33540
33541func (s *ResourceCommitment) MarshalJSON() ([]byte, error) {
33542	type NoMethod ResourceCommitment
33543	raw := NoMethod(*s)
33544	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33545}
33546
33547type ResourceGroupReference struct {
33548	// Group: A URI referencing one of the instance groups or network
33549	// endpoint groups listed in the backend service.
33550	Group string `json:"group,omitempty"`
33551
33552	// ForceSendFields is a list of field names (e.g. "Group") to
33553	// unconditionally include in API requests. By default, fields with
33554	// empty values are omitted from API requests. However, any non-pointer,
33555	// non-interface field appearing in ForceSendFields will be sent to the
33556	// server regardless of whether the field is empty or not. This may be
33557	// used to include empty fields in Patch requests.
33558	ForceSendFields []string `json:"-"`
33559
33560	// NullFields is a list of field names (e.g. "Group") to include in API
33561	// requests with the JSON null value. By default, fields with empty
33562	// values are omitted from API requests. However, any field with an
33563	// empty value appearing in NullFields will be sent to the server as
33564	// null. It is an error if a field in this list has a non-empty value.
33565	// This may be used to include null fields in Patch requests.
33566	NullFields []string `json:"-"`
33567}
33568
33569func (s *ResourceGroupReference) MarshalJSON() ([]byte, error) {
33570	type NoMethod ResourceGroupReference
33571	raw := NoMethod(*s)
33572	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33573}
33574
33575type ResourcePoliciesScopedList struct {
33576	// ResourcePolicies: A list of resourcePolicies contained in this scope.
33577	ResourcePolicies []*ResourcePolicy `json:"resourcePolicies,omitempty"`
33578
33579	// Warning: Informational warning which replaces the list of
33580	// resourcePolicies when the list is empty.
33581	Warning *ResourcePoliciesScopedListWarning `json:"warning,omitempty"`
33582
33583	// ForceSendFields is a list of field names (e.g. "ResourcePolicies") to
33584	// unconditionally include in API requests. By default, fields with
33585	// empty values are omitted from API requests. However, any non-pointer,
33586	// non-interface field appearing in ForceSendFields will be sent to the
33587	// server regardless of whether the field is empty or not. This may be
33588	// used to include empty fields in Patch requests.
33589	ForceSendFields []string `json:"-"`
33590
33591	// NullFields is a list of field names (e.g. "ResourcePolicies") to
33592	// include in API requests with the JSON null value. By default, fields
33593	// with empty values are omitted from API requests. However, any field
33594	// with an empty value appearing in NullFields will be sent to the
33595	// server as null. It is an error if a field in this list has a
33596	// non-empty value. This may be used to include null fields in Patch
33597	// requests.
33598	NullFields []string `json:"-"`
33599}
33600
33601func (s *ResourcePoliciesScopedList) MarshalJSON() ([]byte, error) {
33602	type NoMethod ResourcePoliciesScopedList
33603	raw := NoMethod(*s)
33604	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33605}
33606
33607// ResourcePoliciesScopedListWarning: Informational warning which
33608// replaces the list of resourcePolicies when the list is empty.
33609type ResourcePoliciesScopedListWarning struct {
33610	// Code: [Output Only] A warning code, if applicable. For example,
33611	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
33612	// the response.
33613	//
33614	// Possible values:
33615	//   "CLEANUP_FAILED"
33616	//   "DEPRECATED_RESOURCE_USED"
33617	//   "DEPRECATED_TYPE_USED"
33618	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
33619	//   "EXPERIMENTAL_TYPE_USED"
33620	//   "EXTERNAL_API_WARNING"
33621	//   "FIELD_VALUE_OVERRIDEN"
33622	//   "INJECTED_KERNELS_DEPRECATED"
33623	//   "MISSING_TYPE_DEPENDENCY"
33624	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
33625	//   "NEXT_HOP_CANNOT_IP_FORWARD"
33626	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
33627	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
33628	//   "NEXT_HOP_NOT_RUNNING"
33629	//   "NOT_CRITICAL_ERROR"
33630	//   "NO_RESULTS_ON_PAGE"
33631	//   "REQUIRED_TOS_AGREEMENT"
33632	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
33633	//   "RESOURCE_NOT_DELETED"
33634	//   "SCHEMA_VALIDATION_IGNORED"
33635	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
33636	//   "UNDECLARED_PROPERTIES"
33637	//   "UNREACHABLE"
33638	Code string `json:"code,omitempty"`
33639
33640	// Data: [Output Only] Metadata about this warning in key: value format.
33641	// For example:
33642	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
33643	Data []*ResourcePoliciesScopedListWarningData `json:"data,omitempty"`
33644
33645	// Message: [Output Only] A human-readable description of the warning
33646	// code.
33647	Message string `json:"message,omitempty"`
33648
33649	// ForceSendFields is a list of field names (e.g. "Code") to
33650	// unconditionally include in API requests. By default, fields with
33651	// empty values are omitted from API requests. However, any non-pointer,
33652	// non-interface field appearing in ForceSendFields will be sent to the
33653	// server regardless of whether the field is empty or not. This may be
33654	// used to include empty fields in Patch requests.
33655	ForceSendFields []string `json:"-"`
33656
33657	// NullFields is a list of field names (e.g. "Code") to include in API
33658	// requests with the JSON null value. By default, fields with empty
33659	// values are omitted from API requests. However, any field with an
33660	// empty value appearing in NullFields will be sent to the server as
33661	// null. It is an error if a field in this list has a non-empty value.
33662	// This may be used to include null fields in Patch requests.
33663	NullFields []string `json:"-"`
33664}
33665
33666func (s *ResourcePoliciesScopedListWarning) MarshalJSON() ([]byte, error) {
33667	type NoMethod ResourcePoliciesScopedListWarning
33668	raw := NoMethod(*s)
33669	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33670}
33671
33672type ResourcePoliciesScopedListWarningData struct {
33673	// Key: [Output Only] A key that provides more detail on the warning
33674	// being returned. For example, for warnings where there are no results
33675	// in a list request for a particular zone, this key might be scope and
33676	// the key value might be the zone name. Other examples might be a key
33677	// indicating a deprecated resource and a suggested replacement, or a
33678	// warning about invalid network settings (for example, if an instance
33679	// attempts to perform IP forwarding but is not enabled for IP
33680	// forwarding).
33681	Key string `json:"key,omitempty"`
33682
33683	// Value: [Output Only] A warning data value corresponding to the key.
33684	Value string `json:"value,omitempty"`
33685
33686	// ForceSendFields is a list of field names (e.g. "Key") to
33687	// unconditionally include in API requests. By default, fields with
33688	// empty values are omitted from API requests. However, any non-pointer,
33689	// non-interface field appearing in ForceSendFields will be sent to the
33690	// server regardless of whether the field is empty or not. This may be
33691	// used to include empty fields in Patch requests.
33692	ForceSendFields []string `json:"-"`
33693
33694	// NullFields is a list of field names (e.g. "Key") to include in API
33695	// requests with the JSON null value. By default, fields with empty
33696	// values are omitted from API requests. However, any field with an
33697	// empty value appearing in NullFields will be sent to the server as
33698	// null. It is an error if a field in this list has a non-empty value.
33699	// This may be used to include null fields in Patch requests.
33700	NullFields []string `json:"-"`
33701}
33702
33703func (s *ResourcePoliciesScopedListWarningData) MarshalJSON() ([]byte, error) {
33704	type NoMethod ResourcePoliciesScopedListWarningData
33705	raw := NoMethod(*s)
33706	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33707}
33708
33709type ResourcePolicy struct {
33710	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
33711	// format.
33712	CreationTimestamp string `json:"creationTimestamp,omitempty"`
33713
33714	Description string `json:"description,omitempty"`
33715
33716	// GroupPlacementPolicy: Resource policy for instacnes for placement
33717	// configuration.
33718	GroupPlacementPolicy *ResourcePolicyGroupPlacementPolicy `json:"groupPlacementPolicy,omitempty"`
33719
33720	// Id: [Output Only] The unique identifier for the resource. This
33721	// identifier is defined by the server.
33722	Id uint64 `json:"id,omitempty,string"`
33723
33724	// Kind: [Output Only] Type of the resource. Always
33725	// compute#resource_policies for resource policies.
33726	Kind string `json:"kind,omitempty"`
33727
33728	// Name: The name of the resource, provided by the client when initially
33729	// creating the resource. The resource name must be 1-63 characters
33730	// long, and comply with RFC1035. Specifically, the name must be 1-63
33731	// characters long and match the regular expression
33732	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
33733	// a lowercase letter, and all following characters must be a dash,
33734	// lowercase letter, or digit, except the last character, which cannot
33735	// be a dash.
33736	Name string `json:"name,omitempty"`
33737
33738	Region string `json:"region,omitempty"`
33739
33740	// SelfLink: [Output Only] Server-defined fully-qualified URL for this
33741	// resource.
33742	SelfLink string `json:"selfLink,omitempty"`
33743
33744	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
33745	// with the resource id.
33746	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
33747
33748	// SnapshotSchedulePolicy: Resource policy for persistent disks for
33749	// creating snapshots.
33750	SnapshotSchedulePolicy *ResourcePolicySnapshotSchedulePolicy `json:"snapshotSchedulePolicy,omitempty"`
33751
33752	// Status: [Output Only] The status of resource policy creation.
33753	//
33754	// Possible values:
33755	//   "CREATING"
33756	//   "DELETING"
33757	//   "INVALID"
33758	//   "READY"
33759	Status string `json:"status,omitempty"`
33760
33761	// VmMaintenancePolicy: Resource policy applicable to VMs for
33762	// infrastructure maintenance.
33763	VmMaintenancePolicy *ResourcePolicyVmMaintenancePolicy `json:"vmMaintenancePolicy,omitempty"`
33764
33765	// ServerResponse contains the HTTP response code and headers from the
33766	// server.
33767	googleapi.ServerResponse `json:"-"`
33768
33769	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
33770	// to unconditionally include in API requests. By default, fields with
33771	// empty values are omitted from API requests. However, any non-pointer,
33772	// non-interface field appearing in ForceSendFields will be sent to the
33773	// server regardless of whether the field is empty or not. This may be
33774	// used to include empty fields in Patch requests.
33775	ForceSendFields []string `json:"-"`
33776
33777	// NullFields is a list of field names (e.g. "CreationTimestamp") to
33778	// include in API requests with the JSON null value. By default, fields
33779	// with empty values are omitted from API requests. However, any field
33780	// with an empty value appearing in NullFields will be sent to the
33781	// server as null. It is an error if a field in this list has a
33782	// non-empty value. This may be used to include null fields in Patch
33783	// requests.
33784	NullFields []string `json:"-"`
33785}
33786
33787func (s *ResourcePolicy) MarshalJSON() ([]byte, error) {
33788	type NoMethod ResourcePolicy
33789	raw := NoMethod(*s)
33790	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33791}
33792
33793// ResourcePolicyAggregatedList: Contains a list of resourcePolicies.
33794type ResourcePolicyAggregatedList struct {
33795	Etag string `json:"etag,omitempty"`
33796
33797	// Id: [Output Only] Unique identifier for the resource; defined by the
33798	// server.
33799	Id string `json:"id,omitempty"`
33800
33801	// Items: A list of ResourcePolicy resources.
33802	Items map[string]ResourcePoliciesScopedList `json:"items,omitempty"`
33803
33804	// Kind: Type of resource.
33805	Kind string `json:"kind,omitempty"`
33806
33807	// NextPageToken: [Output Only] This token allows you to get the next
33808	// page of results for list requests. If the number of results is larger
33809	// than maxResults, use the nextPageToken as a value for the query
33810	// parameter pageToken in the next list request. Subsequent list
33811	// requests will have their own nextPageToken to continue paging through
33812	// the results.
33813	NextPageToken string `json:"nextPageToken,omitempty"`
33814
33815	// SelfLink: [Output Only] Server-defined URL for this resource.
33816	SelfLink string `json:"selfLink,omitempty"`
33817
33818	// Warning: [Output Only] Informational warning message.
33819	Warning *ResourcePolicyAggregatedListWarning `json:"warning,omitempty"`
33820
33821	// ServerResponse contains the HTTP response code and headers from the
33822	// server.
33823	googleapi.ServerResponse `json:"-"`
33824
33825	// ForceSendFields is a list of field names (e.g. "Etag") to
33826	// unconditionally include in API requests. By default, fields with
33827	// empty values are omitted from API requests. However, any non-pointer,
33828	// non-interface field appearing in ForceSendFields will be sent to the
33829	// server regardless of whether the field is empty or not. This may be
33830	// used to include empty fields in Patch requests.
33831	ForceSendFields []string `json:"-"`
33832
33833	// NullFields is a list of field names (e.g. "Etag") to include in API
33834	// requests with the JSON null value. By default, fields with empty
33835	// values are omitted from API requests. However, any field with an
33836	// empty value appearing in NullFields will be sent to the server as
33837	// null. It is an error if a field in this list has a non-empty value.
33838	// This may be used to include null fields in Patch requests.
33839	NullFields []string `json:"-"`
33840}
33841
33842func (s *ResourcePolicyAggregatedList) MarshalJSON() ([]byte, error) {
33843	type NoMethod ResourcePolicyAggregatedList
33844	raw := NoMethod(*s)
33845	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33846}
33847
33848// ResourcePolicyAggregatedListWarning: [Output Only] Informational
33849// warning message.
33850type ResourcePolicyAggregatedListWarning struct {
33851	// Code: [Output Only] A warning code, if applicable. For example,
33852	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
33853	// the response.
33854	//
33855	// Possible values:
33856	//   "CLEANUP_FAILED"
33857	//   "DEPRECATED_RESOURCE_USED"
33858	//   "DEPRECATED_TYPE_USED"
33859	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
33860	//   "EXPERIMENTAL_TYPE_USED"
33861	//   "EXTERNAL_API_WARNING"
33862	//   "FIELD_VALUE_OVERRIDEN"
33863	//   "INJECTED_KERNELS_DEPRECATED"
33864	//   "MISSING_TYPE_DEPENDENCY"
33865	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
33866	//   "NEXT_HOP_CANNOT_IP_FORWARD"
33867	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
33868	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
33869	//   "NEXT_HOP_NOT_RUNNING"
33870	//   "NOT_CRITICAL_ERROR"
33871	//   "NO_RESULTS_ON_PAGE"
33872	//   "REQUIRED_TOS_AGREEMENT"
33873	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
33874	//   "RESOURCE_NOT_DELETED"
33875	//   "SCHEMA_VALIDATION_IGNORED"
33876	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
33877	//   "UNDECLARED_PROPERTIES"
33878	//   "UNREACHABLE"
33879	Code string `json:"code,omitempty"`
33880
33881	// Data: [Output Only] Metadata about this warning in key: value format.
33882	// For example:
33883	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
33884	Data []*ResourcePolicyAggregatedListWarningData `json:"data,omitempty"`
33885
33886	// Message: [Output Only] A human-readable description of the warning
33887	// code.
33888	Message string `json:"message,omitempty"`
33889
33890	// ForceSendFields is a list of field names (e.g. "Code") to
33891	// unconditionally include in API requests. By default, fields with
33892	// empty values are omitted from API requests. However, any non-pointer,
33893	// non-interface field appearing in ForceSendFields will be sent to the
33894	// server regardless of whether the field is empty or not. This may be
33895	// used to include empty fields in Patch requests.
33896	ForceSendFields []string `json:"-"`
33897
33898	// NullFields is a list of field names (e.g. "Code") to include in API
33899	// requests with the JSON null value. By default, fields with empty
33900	// values are omitted from API requests. However, any field with an
33901	// empty value appearing in NullFields will be sent to the server as
33902	// null. It is an error if a field in this list has a non-empty value.
33903	// This may be used to include null fields in Patch requests.
33904	NullFields []string `json:"-"`
33905}
33906
33907func (s *ResourcePolicyAggregatedListWarning) MarshalJSON() ([]byte, error) {
33908	type NoMethod ResourcePolicyAggregatedListWarning
33909	raw := NoMethod(*s)
33910	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33911}
33912
33913type ResourcePolicyAggregatedListWarningData struct {
33914	// Key: [Output Only] A key that provides more detail on the warning
33915	// being returned. For example, for warnings where there are no results
33916	// in a list request for a particular zone, this key might be scope and
33917	// the key value might be the zone name. Other examples might be a key
33918	// indicating a deprecated resource and a suggested replacement, or a
33919	// warning about invalid network settings (for example, if an instance
33920	// attempts to perform IP forwarding but is not enabled for IP
33921	// forwarding).
33922	Key string `json:"key,omitempty"`
33923
33924	// Value: [Output Only] A warning data value corresponding to the key.
33925	Value string `json:"value,omitempty"`
33926
33927	// ForceSendFields is a list of field names (e.g. "Key") to
33928	// unconditionally include in API requests. By default, fields with
33929	// empty values are omitted from API requests. However, any non-pointer,
33930	// non-interface field appearing in ForceSendFields will be sent to the
33931	// server regardless of whether the field is empty or not. This may be
33932	// used to include empty fields in Patch requests.
33933	ForceSendFields []string `json:"-"`
33934
33935	// NullFields is a list of field names (e.g. "Key") to include in API
33936	// requests with the JSON null value. By default, fields with empty
33937	// values are omitted from API requests. However, any field with an
33938	// empty value appearing in NullFields will be sent to the server as
33939	// null. It is an error if a field in this list has a non-empty value.
33940	// This may be used to include null fields in Patch requests.
33941	NullFields []string `json:"-"`
33942}
33943
33944func (s *ResourcePolicyAggregatedListWarningData) MarshalJSON() ([]byte, error) {
33945	type NoMethod ResourcePolicyAggregatedListWarningData
33946	raw := NoMethod(*s)
33947	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33948}
33949
33950// ResourcePolicyDailyCycle: Time window specified for daily operations.
33951type ResourcePolicyDailyCycle struct {
33952	// DaysInCycle: Defines a schedule that runs every nth day of the month.
33953	DaysInCycle int64 `json:"daysInCycle,omitempty"`
33954
33955	// Duration: [Output only] A predetermined duration for the window,
33956	// automatically chosen to be the smallest possible in the given
33957	// scenario.
33958	Duration string `json:"duration,omitempty"`
33959
33960	// StartTime: Start time of the window. This must be in UTC format that
33961	// resolves to one of 00:00, 04:00, 08:00, 12:00, 16:00, or 20:00. For
33962	// example, both 13:00-5 and 08:00 are valid.
33963	StartTime string `json:"startTime,omitempty"`
33964
33965	// ForceSendFields is a list of field names (e.g. "DaysInCycle") to
33966	// unconditionally include in API requests. By default, fields with
33967	// empty values are omitted from API requests. However, any non-pointer,
33968	// non-interface field appearing in ForceSendFields will be sent to the
33969	// server regardless of whether the field is empty or not. This may be
33970	// used to include empty fields in Patch requests.
33971	ForceSendFields []string `json:"-"`
33972
33973	// NullFields is a list of field names (e.g. "DaysInCycle") to include
33974	// in API requests with the JSON null value. By default, fields with
33975	// empty values are omitted from API requests. However, any field with
33976	// an empty value appearing in NullFields will be sent to the server as
33977	// null. It is an error if a field in this list has a non-empty value.
33978	// This may be used to include null fields in Patch requests.
33979	NullFields []string `json:"-"`
33980}
33981
33982func (s *ResourcePolicyDailyCycle) MarshalJSON() ([]byte, error) {
33983	type NoMethod ResourcePolicyDailyCycle
33984	raw := NoMethod(*s)
33985	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33986}
33987
33988// ResourcePolicyGroupPlacementPolicy: A GroupPlacementPolicy specifies
33989// resource placement configuration. It specifies the failure bucket
33990// separation as well as network locality
33991type ResourcePolicyGroupPlacementPolicy struct {
33992	// AvailabilityDomainCount: The number of availability domains instances
33993	// will be spread across. If two instances are in different availability
33994	// domain, they will not be put in the same low latency network
33995	AvailabilityDomainCount int64 `json:"availabilityDomainCount,omitempty"`
33996
33997	// Distribution: Distribution specifies how the instances are placed at
33998	// host level. If set to SPREAD, no two instances will be put on the
33999	// same host
34000	//
34001	// Possible values:
34002	//   "SPREAD"
34003	//   "UNSPECIFIED"
34004	Distribution string `json:"distribution,omitempty"`
34005
34006	// Locality: Specifies network locality
34007	//
34008	// Possible values:
34009	//   "BEST_EFFORT"
34010	//   "STRICT"
34011	//   "UNSPECIFIED_LOCALITY"
34012	Locality string `json:"locality,omitempty"`
34013
34014	// Style: Specifies instances to hosts placement relationship
34015	//
34016	// Possible values:
34017	//   "COMPACT"
34018	//   "FULLY_SPREAD"
34019	//   "UNSPECIFIED_PLACEMENT_TYPE"
34020	Style string `json:"style,omitempty"`
34021
34022	// VmCount: Number of vms in this placement group
34023	VmCount int64 `json:"vmCount,omitempty"`
34024
34025	// ForceSendFields is a list of field names (e.g.
34026	// "AvailabilityDomainCount") to unconditionally include in API
34027	// requests. By default, fields with empty values are omitted from API
34028	// requests. However, any non-pointer, non-interface field appearing in
34029	// ForceSendFields will be sent to the server regardless of whether the
34030	// field is empty or not. This may be used to include empty fields in
34031	// Patch requests.
34032	ForceSendFields []string `json:"-"`
34033
34034	// NullFields is a list of field names (e.g. "AvailabilityDomainCount")
34035	// to include in API requests with the JSON null value. By default,
34036	// fields with empty values are omitted from API requests. However, any
34037	// field with an empty value appearing in NullFields will be sent to the
34038	// server as null. It is an error if a field in this list has a
34039	// non-empty value. This may be used to include null fields in Patch
34040	// requests.
34041	NullFields []string `json:"-"`
34042}
34043
34044func (s *ResourcePolicyGroupPlacementPolicy) MarshalJSON() ([]byte, error) {
34045	type NoMethod ResourcePolicyGroupPlacementPolicy
34046	raw := NoMethod(*s)
34047	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34048}
34049
34050// ResourcePolicyHourlyCycle: Time window specified for hourly
34051// operations.
34052type ResourcePolicyHourlyCycle struct {
34053	// Duration: [Output only] Duration of the time window, automatically
34054	// chosen to be smallest possible in the given scenario.
34055	Duration string `json:"duration,omitempty"`
34056
34057	// HoursInCycle: Allows to define schedule that runs every nth hour.
34058	HoursInCycle int64 `json:"hoursInCycle,omitempty"`
34059
34060	// StartTime: Time within the window to start the operations. It must be
34061	// in format "HH:MM", where HH : [00-23] and MM : [00-00] GMT.
34062	StartTime string `json:"startTime,omitempty"`
34063
34064	// ForceSendFields is a list of field names (e.g. "Duration") to
34065	// unconditionally include in API requests. By default, fields with
34066	// empty values are omitted from API requests. However, any non-pointer,
34067	// non-interface field appearing in ForceSendFields will be sent to the
34068	// server regardless of whether the field is empty or not. This may be
34069	// used to include empty fields in Patch requests.
34070	ForceSendFields []string `json:"-"`
34071
34072	// NullFields is a list of field names (e.g. "Duration") to include in
34073	// API requests with the JSON null value. By default, fields with empty
34074	// values are omitted from API requests. However, any field with an
34075	// empty value appearing in NullFields will be sent to the server as
34076	// null. It is an error if a field in this list has a non-empty value.
34077	// This may be used to include null fields in Patch requests.
34078	NullFields []string `json:"-"`
34079}
34080
34081func (s *ResourcePolicyHourlyCycle) MarshalJSON() ([]byte, error) {
34082	type NoMethod ResourcePolicyHourlyCycle
34083	raw := NoMethod(*s)
34084	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34085}
34086
34087type ResourcePolicyList struct {
34088	Etag string `json:"etag,omitempty"`
34089
34090	// Id: [Output Only] The unique identifier for the resource. This
34091	// identifier is defined by the server.
34092	Id string `json:"id,omitempty"`
34093
34094	// Items: [Output Only] A list of ResourcePolicy resources.
34095	Items []*ResourcePolicy `json:"items,omitempty"`
34096
34097	// Kind: [Output Only] Type of resource.Always
34098	// compute#resourcePoliciesList for listsof resourcePolicies
34099	Kind string `json:"kind,omitempty"`
34100
34101	// NextPageToken: [Output Only] This token allows you to get the next
34102	// page of results for list requests. If the number of results is larger
34103	// than maxResults, use the nextPageToken as a value for the query
34104	// parameter pageToken in the next list request. Subsequent list
34105	// requests will have their own nextPageToken to continue paging through
34106	// the results.
34107	NextPageToken string `json:"nextPageToken,omitempty"`
34108
34109	// SelfLink: [Output Only] Server-defined URL for this resource.
34110	SelfLink string `json:"selfLink,omitempty"`
34111
34112	// Warning: [Output Only] Informational warning message.
34113	Warning *ResourcePolicyListWarning `json:"warning,omitempty"`
34114
34115	// ServerResponse contains the HTTP response code and headers from the
34116	// server.
34117	googleapi.ServerResponse `json:"-"`
34118
34119	// ForceSendFields is a list of field names (e.g. "Etag") to
34120	// unconditionally include in API requests. By default, fields with
34121	// empty values are omitted from API requests. However, any non-pointer,
34122	// non-interface field appearing in ForceSendFields will be sent to the
34123	// server regardless of whether the field is empty or not. This may be
34124	// used to include empty fields in Patch requests.
34125	ForceSendFields []string `json:"-"`
34126
34127	// NullFields is a list of field names (e.g. "Etag") to include in API
34128	// requests with the JSON null value. By default, fields with empty
34129	// values are omitted from API requests. However, any field with an
34130	// empty value appearing in NullFields will be sent to the server as
34131	// null. It is an error if a field in this list has a non-empty value.
34132	// This may be used to include null fields in Patch requests.
34133	NullFields []string `json:"-"`
34134}
34135
34136func (s *ResourcePolicyList) MarshalJSON() ([]byte, error) {
34137	type NoMethod ResourcePolicyList
34138	raw := NoMethod(*s)
34139	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34140}
34141
34142// ResourcePolicyListWarning: [Output Only] Informational warning
34143// message.
34144type ResourcePolicyListWarning struct {
34145	// Code: [Output Only] A warning code, if applicable. For example,
34146	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
34147	// the response.
34148	//
34149	// Possible values:
34150	//   "CLEANUP_FAILED"
34151	//   "DEPRECATED_RESOURCE_USED"
34152	//   "DEPRECATED_TYPE_USED"
34153	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
34154	//   "EXPERIMENTAL_TYPE_USED"
34155	//   "EXTERNAL_API_WARNING"
34156	//   "FIELD_VALUE_OVERRIDEN"
34157	//   "INJECTED_KERNELS_DEPRECATED"
34158	//   "MISSING_TYPE_DEPENDENCY"
34159	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
34160	//   "NEXT_HOP_CANNOT_IP_FORWARD"
34161	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
34162	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
34163	//   "NEXT_HOP_NOT_RUNNING"
34164	//   "NOT_CRITICAL_ERROR"
34165	//   "NO_RESULTS_ON_PAGE"
34166	//   "REQUIRED_TOS_AGREEMENT"
34167	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
34168	//   "RESOURCE_NOT_DELETED"
34169	//   "SCHEMA_VALIDATION_IGNORED"
34170	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
34171	//   "UNDECLARED_PROPERTIES"
34172	//   "UNREACHABLE"
34173	Code string `json:"code,omitempty"`
34174
34175	// Data: [Output Only] Metadata about this warning in key: value format.
34176	// For example:
34177	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
34178	Data []*ResourcePolicyListWarningData `json:"data,omitempty"`
34179
34180	// Message: [Output Only] A human-readable description of the warning
34181	// code.
34182	Message string `json:"message,omitempty"`
34183
34184	// ForceSendFields is a list of field names (e.g. "Code") to
34185	// unconditionally include in API requests. By default, fields with
34186	// empty values are omitted from API requests. However, any non-pointer,
34187	// non-interface field appearing in ForceSendFields will be sent to the
34188	// server regardless of whether the field is empty or not. This may be
34189	// used to include empty fields in Patch requests.
34190	ForceSendFields []string `json:"-"`
34191
34192	// NullFields is a list of field names (e.g. "Code") to include in API
34193	// requests with the JSON null value. By default, fields with empty
34194	// values are omitted from API requests. However, any field with an
34195	// empty value appearing in NullFields will be sent to the server as
34196	// null. It is an error if a field in this list has a non-empty value.
34197	// This may be used to include null fields in Patch requests.
34198	NullFields []string `json:"-"`
34199}
34200
34201func (s *ResourcePolicyListWarning) MarshalJSON() ([]byte, error) {
34202	type NoMethod ResourcePolicyListWarning
34203	raw := NoMethod(*s)
34204	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34205}
34206
34207type ResourcePolicyListWarningData struct {
34208	// Key: [Output Only] A key that provides more detail on the warning
34209	// being returned. For example, for warnings where there are no results
34210	// in a list request for a particular zone, this key might be scope and
34211	// the key value might be the zone name. Other examples might be a key
34212	// indicating a deprecated resource and a suggested replacement, or a
34213	// warning about invalid network settings (for example, if an instance
34214	// attempts to perform IP forwarding but is not enabled for IP
34215	// forwarding).
34216	Key string `json:"key,omitempty"`
34217
34218	// Value: [Output Only] A warning data value corresponding to the key.
34219	Value string `json:"value,omitempty"`
34220
34221	// ForceSendFields is a list of field names (e.g. "Key") to
34222	// unconditionally include in API requests. By default, fields with
34223	// empty values are omitted from API requests. However, any non-pointer,
34224	// non-interface field appearing in ForceSendFields will be sent to the
34225	// server regardless of whether the field is empty or not. This may be
34226	// used to include empty fields in Patch requests.
34227	ForceSendFields []string `json:"-"`
34228
34229	// NullFields is a list of field names (e.g. "Key") to include in API
34230	// requests with the JSON null value. By default, fields with empty
34231	// values are omitted from API requests. However, any field with an
34232	// empty value appearing in NullFields will be sent to the server as
34233	// null. It is an error if a field in this list has a non-empty value.
34234	// This may be used to include null fields in Patch requests.
34235	NullFields []string `json:"-"`
34236}
34237
34238func (s *ResourcePolicyListWarningData) MarshalJSON() ([]byte, error) {
34239	type NoMethod ResourcePolicyListWarningData
34240	raw := NoMethod(*s)
34241	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34242}
34243
34244// ResourcePolicySnapshotSchedulePolicy: A snapshot schedule policy
34245// specifies when and how frequently snapshots are to be created for the
34246// target disk. Also specifies how many and how long these scheduled
34247// snapshots should be retained.
34248type ResourcePolicySnapshotSchedulePolicy struct {
34249	// RetentionPolicy: Retention policy applied to snapshots created by
34250	// this resource policy.
34251	RetentionPolicy *ResourcePolicySnapshotSchedulePolicyRetentionPolicy `json:"retentionPolicy,omitempty"`
34252
34253	// Schedule: A Vm Maintenance Policy specifies what kind of
34254	// infrastructure maintenance we are allowed to perform on this VM and
34255	// when. Schedule that is applied to disks covered by this policy.
34256	Schedule *ResourcePolicySnapshotSchedulePolicySchedule `json:"schedule,omitempty"`
34257
34258	// SnapshotProperties: Properties with which snapshots are created such
34259	// as labels, encryption keys.
34260	SnapshotProperties *ResourcePolicySnapshotSchedulePolicySnapshotProperties `json:"snapshotProperties,omitempty"`
34261
34262	// ForceSendFields is a list of field names (e.g. "RetentionPolicy") to
34263	// unconditionally include in API requests. By default, fields with
34264	// empty values are omitted from API requests. However, any non-pointer,
34265	// non-interface field appearing in ForceSendFields will be sent to the
34266	// server regardless of whether the field is empty or not. This may be
34267	// used to include empty fields in Patch requests.
34268	ForceSendFields []string `json:"-"`
34269
34270	// NullFields is a list of field names (e.g. "RetentionPolicy") to
34271	// include in API requests with the JSON null value. By default, fields
34272	// with empty values are omitted from API requests. However, any field
34273	// with an empty value appearing in NullFields will be sent to the
34274	// server as null. It is an error if a field in this list has a
34275	// non-empty value. This may be used to include null fields in Patch
34276	// requests.
34277	NullFields []string `json:"-"`
34278}
34279
34280func (s *ResourcePolicySnapshotSchedulePolicy) MarshalJSON() ([]byte, error) {
34281	type NoMethod ResourcePolicySnapshotSchedulePolicy
34282	raw := NoMethod(*s)
34283	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34284}
34285
34286// ResourcePolicySnapshotSchedulePolicyRetentionPolicy: Policy for
34287// retention of scheduled snapshots.
34288type ResourcePolicySnapshotSchedulePolicyRetentionPolicy struct {
34289	// MaxRetentionDays: Maximum age of the snapshot that is allowed to be
34290	// kept.
34291	MaxRetentionDays int64 `json:"maxRetentionDays,omitempty"`
34292
34293	// OnPolicySwitch: Specifies the behavior to apply to existing,
34294	// scheduled snapshots snapshots if the policy is changed.
34295	//
34296	// Possible values:
34297	//   "DO_NOT_RETROACTIVELY_APPLY"
34298	//   "RETROACTIVELY_APPLY"
34299	//   "UNSPECIFIED_ON_POLICY_SWITCH"
34300	OnPolicySwitch string `json:"onPolicySwitch,omitempty"`
34301
34302	// OnSourceDiskDelete: Specifies the behavior to apply to scheduled
34303	// snapshots when the source disk is deleted.
34304	//
34305	// Possible values:
34306	//   "APPLY_RETENTION_POLICY"
34307	//   "KEEP_AUTO_SNAPSHOTS"
34308	//   "UNSPECIFIED_ON_SOURCE_DISK_DELETE"
34309	OnSourceDiskDelete string `json:"onSourceDiskDelete,omitempty"`
34310
34311	// ForceSendFields is a list of field names (e.g. "MaxRetentionDays") to
34312	// unconditionally include in API requests. By default, fields with
34313	// empty values are omitted from API requests. However, any non-pointer,
34314	// non-interface field appearing in ForceSendFields will be sent to the
34315	// server regardless of whether the field is empty or not. This may be
34316	// used to include empty fields in Patch requests.
34317	ForceSendFields []string `json:"-"`
34318
34319	// NullFields is a list of field names (e.g. "MaxRetentionDays") to
34320	// include in API requests with the JSON null value. By default, fields
34321	// with empty values are omitted from API requests. However, any field
34322	// with an empty value appearing in NullFields will be sent to the
34323	// server as null. It is an error if a field in this list has a
34324	// non-empty value. This may be used to include null fields in Patch
34325	// requests.
34326	NullFields []string `json:"-"`
34327}
34328
34329func (s *ResourcePolicySnapshotSchedulePolicyRetentionPolicy) MarshalJSON() ([]byte, error) {
34330	type NoMethod ResourcePolicySnapshotSchedulePolicyRetentionPolicy
34331	raw := NoMethod(*s)
34332	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34333}
34334
34335// ResourcePolicySnapshotSchedulePolicySchedule: A schedule for disks
34336// where the schedueled operations are performed.
34337type ResourcePolicySnapshotSchedulePolicySchedule struct {
34338	DailySchedule *ResourcePolicyDailyCycle `json:"dailySchedule,omitempty"`
34339
34340	HourlySchedule *ResourcePolicyHourlyCycle `json:"hourlySchedule,omitempty"`
34341
34342	WeeklySchedule *ResourcePolicyWeeklyCycle `json:"weeklySchedule,omitempty"`
34343
34344	// ForceSendFields is a list of field names (e.g. "DailySchedule") to
34345	// unconditionally include in API requests. By default, fields with
34346	// empty values are omitted from API requests. However, any non-pointer,
34347	// non-interface field appearing in ForceSendFields will be sent to the
34348	// server regardless of whether the field is empty or not. This may be
34349	// used to include empty fields in Patch requests.
34350	ForceSendFields []string `json:"-"`
34351
34352	// NullFields is a list of field names (e.g. "DailySchedule") to include
34353	// in API requests with the JSON null value. By default, fields with
34354	// empty values are omitted from API requests. However, any field with
34355	// an empty value appearing in NullFields will be sent to the server as
34356	// null. It is an error if a field in this list has a non-empty value.
34357	// This may be used to include null fields in Patch requests.
34358	NullFields []string `json:"-"`
34359}
34360
34361func (s *ResourcePolicySnapshotSchedulePolicySchedule) MarshalJSON() ([]byte, error) {
34362	type NoMethod ResourcePolicySnapshotSchedulePolicySchedule
34363	raw := NoMethod(*s)
34364	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34365}
34366
34367// ResourcePolicySnapshotSchedulePolicySnapshotProperties: Specified
34368// snapshot properties for scheduled snapshots created by this policy.
34369type ResourcePolicySnapshotSchedulePolicySnapshotProperties struct {
34370	// GuestFlush: Indication to perform a ?guest aware? snapshot.
34371	GuestFlush bool `json:"guestFlush,omitempty"`
34372
34373	// Labels: Labels to apply to scheduled snapshots. These can be later
34374	// modified by the setLabels method. Label values may be empty.
34375	Labels map[string]string `json:"labels,omitempty"`
34376
34377	// StorageLocations: Cloud Storage bucket storage location of the auto
34378	// snapshot (regional or multi-regional).
34379	StorageLocations []string `json:"storageLocations,omitempty"`
34380
34381	// ForceSendFields is a list of field names (e.g. "GuestFlush") to
34382	// unconditionally include in API requests. By default, fields with
34383	// empty values are omitted from API requests. However, any non-pointer,
34384	// non-interface field appearing in ForceSendFields will be sent to the
34385	// server regardless of whether the field is empty or not. This may be
34386	// used to include empty fields in Patch requests.
34387	ForceSendFields []string `json:"-"`
34388
34389	// NullFields is a list of field names (e.g. "GuestFlush") to include in
34390	// API requests with the JSON null value. By default, fields with empty
34391	// values are omitted from API requests. However, any field with an
34392	// empty value appearing in NullFields will be sent to the server as
34393	// null. It is an error if a field in this list has a non-empty value.
34394	// This may be used to include null fields in Patch requests.
34395	NullFields []string `json:"-"`
34396}
34397
34398func (s *ResourcePolicySnapshotSchedulePolicySnapshotProperties) MarshalJSON() ([]byte, error) {
34399	type NoMethod ResourcePolicySnapshotSchedulePolicySnapshotProperties
34400	raw := NoMethod(*s)
34401	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34402}
34403
34404type ResourcePolicyVmMaintenancePolicy struct {
34405	ConcurrencyControlGroup *ResourcePolicyVmMaintenancePolicyConcurrencyControl `json:"concurrencyControlGroup,omitempty"`
34406
34407	// MaintenanceWindow: Maintenance windows that are applied to VMs
34408	// covered by this policy.
34409	MaintenanceWindow *ResourcePolicyVmMaintenancePolicyMaintenanceWindow `json:"maintenanceWindow,omitempty"`
34410
34411	// ForceSendFields is a list of field names (e.g.
34412	// "ConcurrencyControlGroup") to unconditionally include in API
34413	// requests. By default, fields with empty values are omitted from API
34414	// requests. However, any non-pointer, non-interface field appearing in
34415	// ForceSendFields will be sent to the server regardless of whether the
34416	// field is empty or not. This may be used to include empty fields in
34417	// Patch requests.
34418	ForceSendFields []string `json:"-"`
34419
34420	// NullFields is a list of field names (e.g. "ConcurrencyControlGroup")
34421	// to include in API requests with the JSON null value. By default,
34422	// fields with empty values are omitted from API requests. However, any
34423	// field with an empty value appearing in NullFields will be sent to the
34424	// server as null. It is an error if a field in this list has a
34425	// non-empty value. This may be used to include null fields in Patch
34426	// requests.
34427	NullFields []string `json:"-"`
34428}
34429
34430func (s *ResourcePolicyVmMaintenancePolicy) MarshalJSON() ([]byte, error) {
34431	type NoMethod ResourcePolicyVmMaintenancePolicy
34432	raw := NoMethod(*s)
34433	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34434}
34435
34436// ResourcePolicyVmMaintenancePolicyConcurrencyControl: A concurrency
34437// control configuration. Defines a group config that, when attached to
34438// an instance, recognizes that instance as part of a group of instances
34439// where only up the concurrency_limit of instances in that group can
34440// undergo simultaneous maintenance. For more information:
34441// go/concurrency-control-design-doc
34442type ResourcePolicyVmMaintenancePolicyConcurrencyControl struct {
34443	ConcurrencyLimit int64 `json:"concurrencyLimit,omitempty"`
34444
34445	// ForceSendFields is a list of field names (e.g. "ConcurrencyLimit") to
34446	// unconditionally include in API requests. By default, fields with
34447	// empty values are omitted from API requests. However, any non-pointer,
34448	// non-interface field appearing in ForceSendFields will be sent to the
34449	// server regardless of whether the field is empty or not. This may be
34450	// used to include empty fields in Patch requests.
34451	ForceSendFields []string `json:"-"`
34452
34453	// NullFields is a list of field names (e.g. "ConcurrencyLimit") to
34454	// include in API requests with the JSON null value. By default, fields
34455	// with empty values are omitted from API requests. However, any field
34456	// with an empty value appearing in NullFields will be sent to the
34457	// server as null. It is an error if a field in this list has a
34458	// non-empty value. This may be used to include null fields in Patch
34459	// requests.
34460	NullFields []string `json:"-"`
34461}
34462
34463func (s *ResourcePolicyVmMaintenancePolicyConcurrencyControl) MarshalJSON() ([]byte, error) {
34464	type NoMethod ResourcePolicyVmMaintenancePolicyConcurrencyControl
34465	raw := NoMethod(*s)
34466	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34467}
34468
34469// ResourcePolicyVmMaintenancePolicyMaintenanceWindow: A maintenance
34470// window for VMs. When set, we restrict our maintenance operations to
34471// this window.
34472type ResourcePolicyVmMaintenancePolicyMaintenanceWindow struct {
34473	DailyMaintenanceWindow *ResourcePolicyDailyCycle `json:"dailyMaintenanceWindow,omitempty"`
34474
34475	// ForceSendFields is a list of field names (e.g.
34476	// "DailyMaintenanceWindow") to unconditionally include in API requests.
34477	// By default, fields with empty values are omitted from API requests.
34478	// However, any non-pointer, non-interface field appearing in
34479	// ForceSendFields will be sent to the server regardless of whether the
34480	// field is empty or not. This may be used to include empty fields in
34481	// Patch requests.
34482	ForceSendFields []string `json:"-"`
34483
34484	// NullFields is a list of field names (e.g. "DailyMaintenanceWindow")
34485	// to include in API requests with the JSON null value. By default,
34486	// fields with empty values are omitted from API requests. However, any
34487	// field with an empty value appearing in NullFields will be sent to the
34488	// server as null. It is an error if a field in this list has a
34489	// non-empty value. This may be used to include null fields in Patch
34490	// requests.
34491	NullFields []string `json:"-"`
34492}
34493
34494func (s *ResourcePolicyVmMaintenancePolicyMaintenanceWindow) MarshalJSON() ([]byte, error) {
34495	type NoMethod ResourcePolicyVmMaintenancePolicyMaintenanceWindow
34496	raw := NoMethod(*s)
34497	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34498}
34499
34500// ResourcePolicyWeeklyCycle: Time window specified for weekly
34501// operations.
34502type ResourcePolicyWeeklyCycle struct {
34503	// DayOfWeeks: Up to 7 intervals/windows, one for each day of the week.
34504	DayOfWeeks []*ResourcePolicyWeeklyCycleDayOfWeek `json:"dayOfWeeks,omitempty"`
34505
34506	// ForceSendFields is a list of field names (e.g. "DayOfWeeks") to
34507	// unconditionally include in API requests. By default, fields with
34508	// empty values are omitted from API requests. However, any non-pointer,
34509	// non-interface field appearing in ForceSendFields will be sent to the
34510	// server regardless of whether the field is empty or not. This may be
34511	// used to include empty fields in Patch requests.
34512	ForceSendFields []string `json:"-"`
34513
34514	// NullFields is a list of field names (e.g. "DayOfWeeks") to include in
34515	// API requests with the JSON null value. By default, fields with empty
34516	// values are omitted from API requests. However, any field with an
34517	// empty value appearing in NullFields will be sent to the server as
34518	// null. It is an error if a field in this list has a non-empty value.
34519	// This may be used to include null fields in Patch requests.
34520	NullFields []string `json:"-"`
34521}
34522
34523func (s *ResourcePolicyWeeklyCycle) MarshalJSON() ([]byte, error) {
34524	type NoMethod ResourcePolicyWeeklyCycle
34525	raw := NoMethod(*s)
34526	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34527}
34528
34529type ResourcePolicyWeeklyCycleDayOfWeek struct {
34530	// Day: Allows to define schedule that runs specified day of the week.
34531	//
34532	// Possible values:
34533	//   "FRIDAY"
34534	//   "INVALID"
34535	//   "MONDAY"
34536	//   "SATURDAY"
34537	//   "SUNDAY"
34538	//   "THURSDAY"
34539	//   "TUESDAY"
34540	//   "WEDNESDAY"
34541	Day string `json:"day,omitempty"`
34542
34543	// Duration: [Output only] Duration of the time window, automatically
34544	// chosen to be smallest possible in the given scenario.
34545	Duration string `json:"duration,omitempty"`
34546
34547	// StartTime: Time within the window to start the operations. It must be
34548	// in format "HH:MM", where HH : [00-23] and MM : [00-00] GMT.
34549	StartTime string `json:"startTime,omitempty"`
34550
34551	// ForceSendFields is a list of field names (e.g. "Day") to
34552	// unconditionally include in API requests. By default, fields with
34553	// empty values are omitted from API requests. However, any non-pointer,
34554	// non-interface field appearing in ForceSendFields will be sent to the
34555	// server regardless of whether the field is empty or not. This may be
34556	// used to include empty fields in Patch requests.
34557	ForceSendFields []string `json:"-"`
34558
34559	// NullFields is a list of field names (e.g. "Day") to include in API
34560	// requests with the JSON null value. By default, fields with empty
34561	// values are omitted from API requests. However, any field with an
34562	// empty value appearing in NullFields will be sent to the server as
34563	// null. It is an error if a field in this list has a non-empty value.
34564	// This may be used to include null fields in Patch requests.
34565	NullFields []string `json:"-"`
34566}
34567
34568func (s *ResourcePolicyWeeklyCycleDayOfWeek) MarshalJSON() ([]byte, error) {
34569	type NoMethod ResourcePolicyWeeklyCycleDayOfWeek
34570	raw := NoMethod(*s)
34571	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34572}
34573
34574// Route: Represents a Route resource.
34575//
34576// A route defines a path from VM instances in the VPC network to a
34577// specific destination. This destination can be inside or outside the
34578// VPC network. For more information, read the Routes overview. (==
34579// resource_for beta.routes ==) (== resource_for v1.routes ==)
34580type Route struct {
34581	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
34582	// format.
34583	CreationTimestamp string `json:"creationTimestamp,omitempty"`
34584
34585	// Description: An optional description of this resource. Provide this
34586	// field when you create the resource.
34587	Description string `json:"description,omitempty"`
34588
34589	// DestRange: The destination range of outgoing packets that this route
34590	// applies to. Only IPv4 is supported.
34591	DestRange string `json:"destRange,omitempty"`
34592
34593	// Id: [Output Only] The unique identifier for the resource. This
34594	// identifier is defined by the server.
34595	Id uint64 `json:"id,omitempty,string"`
34596
34597	// Kind: [Output Only] Type of this resource. Always compute#routes for
34598	// Route resources.
34599	Kind string `json:"kind,omitempty"`
34600
34601	// Name: Name of the resource. Provided by the client when the resource
34602	// is created. The name must be 1-63 characters long, and comply with
34603	// RFC1035. Specifically, the name must be 1-63 characters long and
34604	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?`. The first
34605	// character must be a lowercase letter, and all following characters
34606	// (except for the last character) must be a dash, lowercase letter, or
34607	// digit. The last character must be a lowercase letter or digit.
34608	Name string `json:"name,omitempty"`
34609
34610	// Network: Fully-qualified URL of the network that this route applies
34611	// to.
34612	Network string `json:"network,omitempty"`
34613
34614	// NextHopGateway: The URL to a gateway that should handle matching
34615	// packets. You can only specify the internet gateway using a full or
34616	// partial valid URL:
34617	// projects/project/global/gateways/default-internet-gateway
34618	NextHopGateway string `json:"nextHopGateway,omitempty"`
34619
34620	// NextHopIlb: The URL to a forwarding rule of type
34621	// loadBalancingScheme=INTERNAL that should handle matching packets. You
34622	// can only specify the forwarding rule as a partial or full URL. For
34623	// example, the following are all valid URLs:
34624	// -
34625	// https://www.googleapis.com/compute/v1/projects/project/regions/region/forwardingRules/forwardingRule
34626	// - regions/region/forwardingRules/forwardingRule
34627	NextHopIlb string `json:"nextHopIlb,omitempty"`
34628
34629	// NextHopInstance: The URL to an instance that should handle matching
34630	// packets. You can specify this as a full or partial URL. For
34631	// example:
34632	// https://www.googleapis.com/compute/v1/projects/project/zones/
34633	// zone/instances/
34634	NextHopInstance string `json:"nextHopInstance,omitempty"`
34635
34636	// NextHopInterconnectAttachment: [Output Only] The URL to an
34637	// InterconnectAttachment which is the next hop for the route. This
34638	// field will only be populated for the dynamic routes generated by
34639	// Cloud Router with a linked interconnectAttachment.
34640	NextHopInterconnectAttachment string `json:"nextHopInterconnectAttachment,omitempty"`
34641
34642	// NextHopIp: The network IP address of an instance that should handle
34643	// matching packets. Only IPv4 is supported.
34644	NextHopIp string `json:"nextHopIp,omitempty"`
34645
34646	// NextHopNetwork: The URL of the local network if it should handle
34647	// matching packets.
34648	NextHopNetwork string `json:"nextHopNetwork,omitempty"`
34649
34650	// NextHopPeering: [Output Only] The network peering name that should
34651	// handle matching packets, which should conform to RFC1035.
34652	NextHopPeering string `json:"nextHopPeering,omitempty"`
34653
34654	// NextHopVpnTunnel: The URL to a VpnTunnel that should handle matching
34655	// packets.
34656	NextHopVpnTunnel string `json:"nextHopVpnTunnel,omitempty"`
34657
34658	// Priority: The priority of this route. Priority is used to break ties
34659	// in cases where there is more than one matching route of equal prefix
34660	// length. In cases where multiple routes have equal prefix length, the
34661	// one with the lowest-numbered priority value wins. The default value
34662	// is `1000`. The priority value must be from `0` to `65535`, inclusive.
34663	Priority int64 `json:"priority,omitempty"`
34664
34665	// SelfLink: [Output Only] Server-defined fully-qualified URL for this
34666	// resource.
34667	SelfLink string `json:"selfLink,omitempty"`
34668
34669	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
34670	// with the resource id.
34671	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
34672
34673	// Tags: A list of instance tags to which this route applies.
34674	Tags []string `json:"tags,omitempty"`
34675
34676	// Warnings: [Output Only] If potential misconfigurations are detected
34677	// for this route, this field will be populated with warning messages.
34678	Warnings []*RouteWarnings `json:"warnings,omitempty"`
34679
34680	// ServerResponse contains the HTTP response code and headers from the
34681	// server.
34682	googleapi.ServerResponse `json:"-"`
34683
34684	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
34685	// to unconditionally include in API requests. By default, fields with
34686	// empty values are omitted from API requests. However, any non-pointer,
34687	// non-interface field appearing in ForceSendFields will be sent to the
34688	// server regardless of whether the field is empty or not. This may be
34689	// used to include empty fields in Patch requests.
34690	ForceSendFields []string `json:"-"`
34691
34692	// NullFields is a list of field names (e.g. "CreationTimestamp") to
34693	// include in API requests with the JSON null value. By default, fields
34694	// with empty values are omitted from API requests. However, any field
34695	// with an empty value appearing in NullFields will be sent to the
34696	// server as null. It is an error if a field in this list has a
34697	// non-empty value. This may be used to include null fields in Patch
34698	// requests.
34699	NullFields []string `json:"-"`
34700}
34701
34702func (s *Route) MarshalJSON() ([]byte, error) {
34703	type NoMethod Route
34704	raw := NoMethod(*s)
34705	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34706}
34707
34708type RouteWarnings struct {
34709	// Code: [Output Only] A warning code, if applicable. For example,
34710	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
34711	// the response.
34712	//
34713	// Possible values:
34714	//   "CLEANUP_FAILED"
34715	//   "DEPRECATED_RESOURCE_USED"
34716	//   "DEPRECATED_TYPE_USED"
34717	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
34718	//   "EXPERIMENTAL_TYPE_USED"
34719	//   "EXTERNAL_API_WARNING"
34720	//   "FIELD_VALUE_OVERRIDEN"
34721	//   "INJECTED_KERNELS_DEPRECATED"
34722	//   "MISSING_TYPE_DEPENDENCY"
34723	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
34724	//   "NEXT_HOP_CANNOT_IP_FORWARD"
34725	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
34726	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
34727	//   "NEXT_HOP_NOT_RUNNING"
34728	//   "NOT_CRITICAL_ERROR"
34729	//   "NO_RESULTS_ON_PAGE"
34730	//   "REQUIRED_TOS_AGREEMENT"
34731	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
34732	//   "RESOURCE_NOT_DELETED"
34733	//   "SCHEMA_VALIDATION_IGNORED"
34734	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
34735	//   "UNDECLARED_PROPERTIES"
34736	//   "UNREACHABLE"
34737	Code string `json:"code,omitempty"`
34738
34739	// Data: [Output Only] Metadata about this warning in key: value format.
34740	// For example:
34741	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
34742	Data []*RouteWarningsData `json:"data,omitempty"`
34743
34744	// Message: [Output Only] A human-readable description of the warning
34745	// code.
34746	Message string `json:"message,omitempty"`
34747
34748	// ForceSendFields is a list of field names (e.g. "Code") to
34749	// unconditionally include in API requests. By default, fields with
34750	// empty values are omitted from API requests. However, any non-pointer,
34751	// non-interface field appearing in ForceSendFields will be sent to the
34752	// server regardless of whether the field is empty or not. This may be
34753	// used to include empty fields in Patch requests.
34754	ForceSendFields []string `json:"-"`
34755
34756	// NullFields is a list of field names (e.g. "Code") to include in API
34757	// requests with the JSON null value. By default, fields with empty
34758	// values are omitted from API requests. However, any field with an
34759	// empty value appearing in NullFields will be sent to the server as
34760	// null. It is an error if a field in this list has a non-empty value.
34761	// This may be used to include null fields in Patch requests.
34762	NullFields []string `json:"-"`
34763}
34764
34765func (s *RouteWarnings) MarshalJSON() ([]byte, error) {
34766	type NoMethod RouteWarnings
34767	raw := NoMethod(*s)
34768	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34769}
34770
34771type RouteWarningsData struct {
34772	// Key: [Output Only] A key that provides more detail on the warning
34773	// being returned. For example, for warnings where there are no results
34774	// in a list request for a particular zone, this key might be scope and
34775	// the key value might be the zone name. Other examples might be a key
34776	// indicating a deprecated resource and a suggested replacement, or a
34777	// warning about invalid network settings (for example, if an instance
34778	// attempts to perform IP forwarding but is not enabled for IP
34779	// forwarding).
34780	Key string `json:"key,omitempty"`
34781
34782	// Value: [Output Only] A warning data value corresponding to the key.
34783	Value string `json:"value,omitempty"`
34784
34785	// ForceSendFields is a list of field names (e.g. "Key") to
34786	// unconditionally include in API requests. By default, fields with
34787	// empty values are omitted from API requests. However, any non-pointer,
34788	// non-interface field appearing in ForceSendFields will be sent to the
34789	// server regardless of whether the field is empty or not. This may be
34790	// used to include empty fields in Patch requests.
34791	ForceSendFields []string `json:"-"`
34792
34793	// NullFields is a list of field names (e.g. "Key") to include in API
34794	// requests with the JSON null value. By default, fields with empty
34795	// values are omitted from API requests. However, any field with an
34796	// empty value appearing in NullFields will be sent to the server as
34797	// null. It is an error if a field in this list has a non-empty value.
34798	// This may be used to include null fields in Patch requests.
34799	NullFields []string `json:"-"`
34800}
34801
34802func (s *RouteWarningsData) MarshalJSON() ([]byte, error) {
34803	type NoMethod RouteWarningsData
34804	raw := NoMethod(*s)
34805	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34806}
34807
34808// RouteList: Contains a list of Route resources.
34809type RouteList struct {
34810	// Id: [Output Only] Unique identifier for the resource; defined by the
34811	// server.
34812	Id string `json:"id,omitempty"`
34813
34814	// Items: A list of Route resources.
34815	Items []*Route `json:"items,omitempty"`
34816
34817	// Kind: Type of resource.
34818	Kind string `json:"kind,omitempty"`
34819
34820	// NextPageToken: [Output Only] This token allows you to get the next
34821	// page of results for list requests. If the number of results is larger
34822	// than maxResults, use the nextPageToken as a value for the query
34823	// parameter pageToken in the next list request. Subsequent list
34824	// requests will have their own nextPageToken to continue paging through
34825	// the results.
34826	NextPageToken string `json:"nextPageToken,omitempty"`
34827
34828	// SelfLink: [Output Only] Server-defined URL for this resource.
34829	SelfLink string `json:"selfLink,omitempty"`
34830
34831	// Warning: [Output Only] Informational warning message.
34832	Warning *RouteListWarning `json:"warning,omitempty"`
34833
34834	// ServerResponse contains the HTTP response code and headers from the
34835	// server.
34836	googleapi.ServerResponse `json:"-"`
34837
34838	// ForceSendFields is a list of field names (e.g. "Id") to
34839	// unconditionally include in API requests. By default, fields with
34840	// empty values are omitted from API requests. However, any non-pointer,
34841	// non-interface field appearing in ForceSendFields will be sent to the
34842	// server regardless of whether the field is empty or not. This may be
34843	// used to include empty fields in Patch requests.
34844	ForceSendFields []string `json:"-"`
34845
34846	// NullFields is a list of field names (e.g. "Id") to include in API
34847	// requests with the JSON null value. By default, fields with empty
34848	// values are omitted from API requests. However, any field with an
34849	// empty value appearing in NullFields will be sent to the server as
34850	// null. It is an error if a field in this list has a non-empty value.
34851	// This may be used to include null fields in Patch requests.
34852	NullFields []string `json:"-"`
34853}
34854
34855func (s *RouteList) MarshalJSON() ([]byte, error) {
34856	type NoMethod RouteList
34857	raw := NoMethod(*s)
34858	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34859}
34860
34861// RouteListWarning: [Output Only] Informational warning message.
34862type RouteListWarning struct {
34863	// Code: [Output Only] A warning code, if applicable. For example,
34864	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
34865	// the response.
34866	//
34867	// Possible values:
34868	//   "CLEANUP_FAILED"
34869	//   "DEPRECATED_RESOURCE_USED"
34870	//   "DEPRECATED_TYPE_USED"
34871	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
34872	//   "EXPERIMENTAL_TYPE_USED"
34873	//   "EXTERNAL_API_WARNING"
34874	//   "FIELD_VALUE_OVERRIDEN"
34875	//   "INJECTED_KERNELS_DEPRECATED"
34876	//   "MISSING_TYPE_DEPENDENCY"
34877	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
34878	//   "NEXT_HOP_CANNOT_IP_FORWARD"
34879	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
34880	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
34881	//   "NEXT_HOP_NOT_RUNNING"
34882	//   "NOT_CRITICAL_ERROR"
34883	//   "NO_RESULTS_ON_PAGE"
34884	//   "REQUIRED_TOS_AGREEMENT"
34885	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
34886	//   "RESOURCE_NOT_DELETED"
34887	//   "SCHEMA_VALIDATION_IGNORED"
34888	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
34889	//   "UNDECLARED_PROPERTIES"
34890	//   "UNREACHABLE"
34891	Code string `json:"code,omitempty"`
34892
34893	// Data: [Output Only] Metadata about this warning in key: value format.
34894	// For example:
34895	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
34896	Data []*RouteListWarningData `json:"data,omitempty"`
34897
34898	// Message: [Output Only] A human-readable description of the warning
34899	// code.
34900	Message string `json:"message,omitempty"`
34901
34902	// ForceSendFields is a list of field names (e.g. "Code") to
34903	// unconditionally include in API requests. By default, fields with
34904	// empty values are omitted from API requests. However, any non-pointer,
34905	// non-interface field appearing in ForceSendFields will be sent to the
34906	// server regardless of whether the field is empty or not. This may be
34907	// used to include empty fields in Patch requests.
34908	ForceSendFields []string `json:"-"`
34909
34910	// NullFields is a list of field names (e.g. "Code") to include in API
34911	// requests with the JSON null value. By default, fields with empty
34912	// values are omitted from API requests. However, any field with an
34913	// empty value appearing in NullFields will be sent to the server as
34914	// null. It is an error if a field in this list has a non-empty value.
34915	// This may be used to include null fields in Patch requests.
34916	NullFields []string `json:"-"`
34917}
34918
34919func (s *RouteListWarning) MarshalJSON() ([]byte, error) {
34920	type NoMethod RouteListWarning
34921	raw := NoMethod(*s)
34922	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34923}
34924
34925type RouteListWarningData struct {
34926	// Key: [Output Only] A key that provides more detail on the warning
34927	// being returned. For example, for warnings where there are no results
34928	// in a list request for a particular zone, this key might be scope and
34929	// the key value might be the zone name. Other examples might be a key
34930	// indicating a deprecated resource and a suggested replacement, or a
34931	// warning about invalid network settings (for example, if an instance
34932	// attempts to perform IP forwarding but is not enabled for IP
34933	// forwarding).
34934	Key string `json:"key,omitempty"`
34935
34936	// Value: [Output Only] A warning data value corresponding to the key.
34937	Value string `json:"value,omitempty"`
34938
34939	// ForceSendFields is a list of field names (e.g. "Key") to
34940	// unconditionally include in API requests. By default, fields with
34941	// empty values are omitted from API requests. However, any non-pointer,
34942	// non-interface field appearing in ForceSendFields will be sent to the
34943	// server regardless of whether the field is empty or not. This may be
34944	// used to include empty fields in Patch requests.
34945	ForceSendFields []string `json:"-"`
34946
34947	// NullFields is a list of field names (e.g. "Key") to include in API
34948	// requests with the JSON null value. By default, fields with empty
34949	// values are omitted from API requests. However, any field with an
34950	// empty value appearing in NullFields will be sent to the server as
34951	// null. It is an error if a field in this list has a non-empty value.
34952	// This may be used to include null fields in Patch requests.
34953	NullFields []string `json:"-"`
34954}
34955
34956func (s *RouteListWarningData) MarshalJSON() ([]byte, error) {
34957	type NoMethod RouteListWarningData
34958	raw := NoMethod(*s)
34959	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34960}
34961
34962// Router: Represents a Cloud Router resource.
34963//
34964// For more information about Cloud Router, read the the Cloud Router
34965// overview.
34966type Router struct {
34967	// Bgp: BGP information specific to this router.
34968	Bgp *RouterBgp `json:"bgp,omitempty"`
34969
34970	// BgpPeers: BGP information that must be configured into the routing
34971	// stack to establish BGP peering. This information must specify the
34972	// peer ASN and either the interface name, IP address, or peer IP
34973	// address. Please refer to RFC4273.
34974	BgpPeers []*RouterBgpPeer `json:"bgpPeers,omitempty"`
34975
34976	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
34977	// format.
34978	CreationTimestamp string `json:"creationTimestamp,omitempty"`
34979
34980	// Description: An optional description of this resource. Provide this
34981	// property when you create the resource.
34982	Description string `json:"description,omitempty"`
34983
34984	// Id: [Output Only] The unique identifier for the resource. This
34985	// identifier is defined by the server.
34986	Id uint64 `json:"id,omitempty,string"`
34987
34988	// Interfaces: Router interfaces. Each interface requires either one
34989	// linked resource, (for example, linkedVpnTunnel), or IP address and IP
34990	// address range (for example, ipRange), or both.
34991	Interfaces []*RouterInterface `json:"interfaces,omitempty"`
34992
34993	// Kind: [Output Only] Type of resource. Always compute#router for
34994	// routers.
34995	Kind string `json:"kind,omitempty"`
34996
34997	// Name: Name of the resource. Provided by the client when the resource
34998	// is created. The name must be 1-63 characters long, and comply with
34999	// RFC1035. Specifically, the name must be 1-63 characters long and
35000	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
35001	// the first character must be a lowercase letter, and all following
35002	// characters must be a dash, lowercase letter, or digit, except the
35003	// last character, which cannot be a dash.
35004	Name string `json:"name,omitempty"`
35005
35006	// Nats: A list of NAT services created in this router.
35007	Nats []*RouterNat `json:"nats,omitempty"`
35008
35009	// Network: URI of the network to which this router belongs.
35010	Network string `json:"network,omitempty"`
35011
35012	// Region: [Output Only] URI of the region where the router resides. You
35013	// must specify this field as part of the HTTP request URL. It is not
35014	// settable as a field in the request body.
35015	Region string `json:"region,omitempty"`
35016
35017	// SelfLink: [Output Only] Server-defined URL for the resource.
35018	SelfLink string `json:"selfLink,omitempty"`
35019
35020	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
35021	// with the resource id.
35022	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
35023
35024	// ServerResponse contains the HTTP response code and headers from the
35025	// server.
35026	googleapi.ServerResponse `json:"-"`
35027
35028	// ForceSendFields is a list of field names (e.g. "Bgp") to
35029	// unconditionally include in API requests. By default, fields with
35030	// empty values are omitted from API requests. However, any non-pointer,
35031	// non-interface field appearing in ForceSendFields will be sent to the
35032	// server regardless of whether the field is empty or not. This may be
35033	// used to include empty fields in Patch requests.
35034	ForceSendFields []string `json:"-"`
35035
35036	// NullFields is a list of field names (e.g. "Bgp") to include in API
35037	// requests with the JSON null value. By default, fields with empty
35038	// values are omitted from API requests. However, any field with an
35039	// empty value appearing in NullFields will be sent to the server as
35040	// null. It is an error if a field in this list has a non-empty value.
35041	// This may be used to include null fields in Patch requests.
35042	NullFields []string `json:"-"`
35043}
35044
35045func (s *Router) MarshalJSON() ([]byte, error) {
35046	type NoMethod Router
35047	raw := NoMethod(*s)
35048	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35049}
35050
35051// RouterAdvertisedIpRange: Description-tagged IP ranges for the router
35052// to advertise.
35053type RouterAdvertisedIpRange struct {
35054	// Description: User-specified description for the IP range.
35055	Description string `json:"description,omitempty"`
35056
35057	// Range: The IP range to advertise. The value must be a CIDR-formatted
35058	// string.
35059	Range string `json:"range,omitempty"`
35060
35061	// ForceSendFields is a list of field names (e.g. "Description") 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. "Description") to include
35070	// in API requests with the JSON null value. By default, fields with
35071	// empty values are omitted from API requests. However, any field with
35072	// an 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 *RouterAdvertisedIpRange) MarshalJSON() ([]byte, error) {
35079	type NoMethod RouterAdvertisedIpRange
35080	raw := NoMethod(*s)
35081	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35082}
35083
35084// RouterAggregatedList: Contains a list of routers.
35085type RouterAggregatedList struct {
35086	// Id: [Output Only] Unique identifier for the resource; defined by the
35087	// server.
35088	Id string `json:"id,omitempty"`
35089
35090	// Items: A list of Router resources.
35091	Items map[string]RoutersScopedList `json:"items,omitempty"`
35092
35093	// Kind: Type of resource.
35094	Kind string `json:"kind,omitempty"`
35095
35096	// NextPageToken: [Output Only] This token allows you to get the next
35097	// page of results for list requests. If the number of results is larger
35098	// than maxResults, use the nextPageToken as a value for the query
35099	// parameter pageToken in the next list request. Subsequent list
35100	// requests will have their own nextPageToken to continue paging through
35101	// the results.
35102	NextPageToken string `json:"nextPageToken,omitempty"`
35103
35104	// SelfLink: [Output Only] Server-defined URL for this resource.
35105	SelfLink string `json:"selfLink,omitempty"`
35106
35107	// Warning: [Output Only] Informational warning message.
35108	Warning *RouterAggregatedListWarning `json:"warning,omitempty"`
35109
35110	// ServerResponse contains the HTTP response code and headers from the
35111	// server.
35112	googleapi.ServerResponse `json:"-"`
35113
35114	// ForceSendFields is a list of field names (e.g. "Id") to
35115	// unconditionally include in API requests. By default, fields with
35116	// empty values are omitted from API requests. However, any non-pointer,
35117	// non-interface field appearing in ForceSendFields will be sent to the
35118	// server regardless of whether the field is empty or not. This may be
35119	// used to include empty fields in Patch requests.
35120	ForceSendFields []string `json:"-"`
35121
35122	// NullFields is a list of field names (e.g. "Id") to include in API
35123	// requests with the JSON null value. By default, fields with empty
35124	// values are omitted from API requests. However, any field with an
35125	// empty value appearing in NullFields will be sent to the server as
35126	// null. It is an error if a field in this list has a non-empty value.
35127	// This may be used to include null fields in Patch requests.
35128	NullFields []string `json:"-"`
35129}
35130
35131func (s *RouterAggregatedList) MarshalJSON() ([]byte, error) {
35132	type NoMethod RouterAggregatedList
35133	raw := NoMethod(*s)
35134	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35135}
35136
35137// RouterAggregatedListWarning: [Output Only] Informational warning
35138// message.
35139type RouterAggregatedListWarning struct {
35140	// Code: [Output Only] A warning code, if applicable. For example,
35141	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
35142	// the response.
35143	//
35144	// Possible values:
35145	//   "CLEANUP_FAILED"
35146	//   "DEPRECATED_RESOURCE_USED"
35147	//   "DEPRECATED_TYPE_USED"
35148	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
35149	//   "EXPERIMENTAL_TYPE_USED"
35150	//   "EXTERNAL_API_WARNING"
35151	//   "FIELD_VALUE_OVERRIDEN"
35152	//   "INJECTED_KERNELS_DEPRECATED"
35153	//   "MISSING_TYPE_DEPENDENCY"
35154	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
35155	//   "NEXT_HOP_CANNOT_IP_FORWARD"
35156	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
35157	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
35158	//   "NEXT_HOP_NOT_RUNNING"
35159	//   "NOT_CRITICAL_ERROR"
35160	//   "NO_RESULTS_ON_PAGE"
35161	//   "REQUIRED_TOS_AGREEMENT"
35162	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
35163	//   "RESOURCE_NOT_DELETED"
35164	//   "SCHEMA_VALIDATION_IGNORED"
35165	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
35166	//   "UNDECLARED_PROPERTIES"
35167	//   "UNREACHABLE"
35168	Code string `json:"code,omitempty"`
35169
35170	// Data: [Output Only] Metadata about this warning in key: value format.
35171	// For example:
35172	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
35173	Data []*RouterAggregatedListWarningData `json:"data,omitempty"`
35174
35175	// Message: [Output Only] A human-readable description of the warning
35176	// code.
35177	Message string `json:"message,omitempty"`
35178
35179	// ForceSendFields is a list of field names (e.g. "Code") to
35180	// unconditionally include in API requests. By default, fields with
35181	// empty values are omitted from API requests. However, any non-pointer,
35182	// non-interface field appearing in ForceSendFields will be sent to the
35183	// server regardless of whether the field is empty or not. This may be
35184	// used to include empty fields in Patch requests.
35185	ForceSendFields []string `json:"-"`
35186
35187	// NullFields is a list of field names (e.g. "Code") to include in API
35188	// requests with the JSON null value. By default, fields with empty
35189	// values are omitted from API requests. However, any field with an
35190	// empty value appearing in NullFields will be sent to the server as
35191	// null. It is an error if a field in this list has a non-empty value.
35192	// This may be used to include null fields in Patch requests.
35193	NullFields []string `json:"-"`
35194}
35195
35196func (s *RouterAggregatedListWarning) MarshalJSON() ([]byte, error) {
35197	type NoMethod RouterAggregatedListWarning
35198	raw := NoMethod(*s)
35199	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35200}
35201
35202type RouterAggregatedListWarningData struct {
35203	// Key: [Output Only] A key that provides more detail on the warning
35204	// being returned. For example, for warnings where there are no results
35205	// in a list request for a particular zone, this key might be scope and
35206	// the key value might be the zone name. Other examples might be a key
35207	// indicating a deprecated resource and a suggested replacement, or a
35208	// warning about invalid network settings (for example, if an instance
35209	// attempts to perform IP forwarding but is not enabled for IP
35210	// forwarding).
35211	Key string `json:"key,omitempty"`
35212
35213	// Value: [Output Only] A warning data value corresponding to the key.
35214	Value string `json:"value,omitempty"`
35215
35216	// ForceSendFields is a list of field names (e.g. "Key") to
35217	// unconditionally include in API requests. By default, fields with
35218	// empty values are omitted from API requests. However, any non-pointer,
35219	// non-interface field appearing in ForceSendFields will be sent to the
35220	// server regardless of whether the field is empty or not. This may be
35221	// used to include empty fields in Patch requests.
35222	ForceSendFields []string `json:"-"`
35223
35224	// NullFields is a list of field names (e.g. "Key") to include in API
35225	// requests with the JSON null value. By default, fields with empty
35226	// values are omitted from API requests. However, any field with an
35227	// empty value appearing in NullFields will be sent to the server as
35228	// null. It is an error if a field in this list has a non-empty value.
35229	// This may be used to include null fields in Patch requests.
35230	NullFields []string `json:"-"`
35231}
35232
35233func (s *RouterAggregatedListWarningData) MarshalJSON() ([]byte, error) {
35234	type NoMethod RouterAggregatedListWarningData
35235	raw := NoMethod(*s)
35236	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35237}
35238
35239type RouterBgp struct {
35240	// AdvertiseMode: User-specified flag to indicate which mode to use for
35241	// advertisement. The options are DEFAULT or CUSTOM.
35242	//
35243	// Possible values:
35244	//   "CUSTOM"
35245	//   "DEFAULT"
35246	AdvertiseMode string `json:"advertiseMode,omitempty"`
35247
35248	// AdvertisedGroups: User-specified list of prefix groups to advertise
35249	// in custom mode. This field can only be populated if advertise_mode is
35250	// CUSTOM and is advertised to all peers of the router. These groups
35251	// will be advertised in addition to any specified prefixes. Leave this
35252	// field blank to advertise no custom groups.
35253	//
35254	// Possible values:
35255	//   "ALL_PEER_VPC_SUBNETS"
35256	//   "ALL_SUBNETS"
35257	//   "ALL_VPC_SUBNETS"
35258	AdvertisedGroups []string `json:"advertisedGroups,omitempty"`
35259
35260	// AdvertisedIpRanges: User-specified list of individual IP ranges to
35261	// advertise in custom mode. This field can only be populated if
35262	// advertise_mode is CUSTOM and is advertised to all peers of the
35263	// router. These IP ranges will be advertised in addition to any
35264	// specified groups. Leave this field blank to advertise no custom IP
35265	// ranges.
35266	AdvertisedIpRanges []*RouterAdvertisedIpRange `json:"advertisedIpRanges,omitempty"`
35267
35268	// Asn: Local BGP Autonomous System Number (ASN). Must be an RFC6996
35269	// private ASN, either 16-bit or 32-bit. The value will be fixed for
35270	// this router resource. All VPN tunnels that link to this router will
35271	// have the same local ASN.
35272	Asn int64 `json:"asn,omitempty"`
35273
35274	// KeepaliveInterval: The interval in seconds between BGP keepalive
35275	// messages that are sent to the peer. Hold time is three times the
35276	// interval at which keepalive messages are sent, and the hold time is
35277	// the maximum number of seconds allowed to elapse between successive
35278	// keepalive messages that BGP receives from a peer. BGP will use the
35279	// smaller of either the local hold time value or the peer?s hold time
35280	// value as the hold time for the BGP connection between the two peers.
35281	// If set, this value must be between 1 and 120. The default is 20.
35282	KeepaliveInterval int64 `json:"keepaliveInterval,omitempty"`
35283
35284	// ForceSendFields is a list of field names (e.g. "AdvertiseMode") to
35285	// unconditionally include in API requests. By default, fields with
35286	// empty values are omitted from API requests. However, any non-pointer,
35287	// non-interface field appearing in ForceSendFields will be sent to the
35288	// server regardless of whether the field is empty or not. This may be
35289	// used to include empty fields in Patch requests.
35290	ForceSendFields []string `json:"-"`
35291
35292	// NullFields is a list of field names (e.g. "AdvertiseMode") to include
35293	// in API requests with the JSON null value. By default, fields with
35294	// empty values are omitted from API requests. However, any field with
35295	// an empty value appearing in NullFields will be sent to the server as
35296	// null. It is an error if a field in this list has a non-empty value.
35297	// This may be used to include null fields in Patch requests.
35298	NullFields []string `json:"-"`
35299}
35300
35301func (s *RouterBgp) MarshalJSON() ([]byte, error) {
35302	type NoMethod RouterBgp
35303	raw := NoMethod(*s)
35304	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35305}
35306
35307type RouterBgpPeer struct {
35308	// AdvertiseMode: User-specified flag to indicate which mode to use for
35309	// advertisement.
35310	//
35311	// Possible values:
35312	//   "CUSTOM"
35313	//   "DEFAULT"
35314	AdvertiseMode string `json:"advertiseMode,omitempty"`
35315
35316	// AdvertisedGroups: User-specified list of prefix groups to advertise
35317	// in custom mode, which can take one of the following options:
35318	// - ALL_SUBNETS: Advertises all available subnets, including peer VPC
35319	// subnets.
35320	// - ALL_VPC_SUBNETS: Advertises the router's own VPC subnets.
35321	// - ALL_PEER_VPC_SUBNETS: Advertises peer subnets of the router's VPC
35322	// network. Note that this field can only be populated if advertise_mode
35323	// is CUSTOM and overrides the list defined for the router (in the "bgp"
35324	// message). These groups are advertised in addition to any specified
35325	// prefixes. Leave this field blank to advertise no custom groups.
35326	//
35327	// Possible values:
35328	//   "ALL_PEER_VPC_SUBNETS"
35329	//   "ALL_SUBNETS"
35330	//   "ALL_VPC_SUBNETS"
35331	AdvertisedGroups []string `json:"advertisedGroups,omitempty"`
35332
35333	// AdvertisedIpRanges: User-specified list of individual IP ranges to
35334	// advertise in custom mode. This field can only be populated if
35335	// advertise_mode is CUSTOM and overrides the list defined for the
35336	// router (in the "bgp" message). These IP ranges are advertised in
35337	// addition to any specified groups. Leave this field blank to advertise
35338	// no custom IP ranges.
35339	AdvertisedIpRanges []*RouterAdvertisedIpRange `json:"advertisedIpRanges,omitempty"`
35340
35341	// AdvertisedRoutePriority: The priority of routes advertised to this
35342	// BGP peer. Where there is more than one matching route of maximum
35343	// length, the routes with the lowest priority value win.
35344	AdvertisedRoutePriority int64 `json:"advertisedRoutePriority,omitempty"`
35345
35346	// Bfd: BFD configuration for the BGP peering.
35347	Bfd *RouterBgpPeerBfd `json:"bfd,omitempty"`
35348
35349	// Enable: The status of the BGP peer connection. If set to FALSE, any
35350	// active session with the peer is terminated and all associated routing
35351	// information is removed. If set to TRUE, the peer connection can be
35352	// established with routing information. The default is TRUE.
35353	//
35354	// Possible values:
35355	//   "FALSE"
35356	//   "TRUE"
35357	Enable string `json:"enable,omitempty"`
35358
35359	// InterfaceName: Name of the interface the BGP peer is associated with.
35360	InterfaceName string `json:"interfaceName,omitempty"`
35361
35362	// IpAddress: IP address of the interface inside Google Cloud Platform.
35363	// Only IPv4 is supported.
35364	IpAddress string `json:"ipAddress,omitempty"`
35365
35366	// ManagementType: [Output Only] The resource that configures and
35367	// manages this BGP peer.
35368	// - MANAGED_BY_USER is the default value and can be managed by you or
35369	// other users
35370	// - MANAGED_BY_ATTACHMENT is a BGP peer that is configured and managed
35371	// by Cloud Interconnect, specifically by an InterconnectAttachment of
35372	// type PARTNER. Google automatically creates, updates, and deletes this
35373	// type of BGP peer when the PARTNER InterconnectAttachment is created,
35374	// updated, or deleted.
35375	//
35376	// Possible values:
35377	//   "MANAGED_BY_ATTACHMENT"
35378	//   "MANAGED_BY_USER"
35379	ManagementType string `json:"managementType,omitempty"`
35380
35381	// Name: Name of this BGP peer. The name must be 1-63 characters long,
35382	// and comply with RFC1035. Specifically, the name must be 1-63
35383	// characters long and match the regular expression
35384	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
35385	// a lowercase letter, and all following characters must be a dash,
35386	// lowercase letter, or digit, except the last character, which cannot
35387	// be a dash.
35388	Name string `json:"name,omitempty"`
35389
35390	// PeerAsn: Peer BGP Autonomous System Number (ASN). Each BGP interface
35391	// may use a different value.
35392	PeerAsn int64 `json:"peerAsn,omitempty"`
35393
35394	// PeerIpAddress: IP address of the BGP interface outside Google Cloud
35395	// Platform. Only IPv4 is supported.
35396	PeerIpAddress string `json:"peerIpAddress,omitempty"`
35397
35398	// ForceSendFields is a list of field names (e.g. "AdvertiseMode") to
35399	// unconditionally include in API requests. By default, fields with
35400	// empty values are omitted from API requests. However, any non-pointer,
35401	// non-interface field appearing in ForceSendFields will be sent to the
35402	// server regardless of whether the field is empty or not. This may be
35403	// used to include empty fields in Patch requests.
35404	ForceSendFields []string `json:"-"`
35405
35406	// NullFields is a list of field names (e.g. "AdvertiseMode") to include
35407	// in API requests with the JSON null value. By default, fields with
35408	// empty values are omitted from API requests. However, any field with
35409	// an empty value appearing in NullFields will be sent to the server as
35410	// null. It is an error if a field in this list has a non-empty value.
35411	// This may be used to include null fields in Patch requests.
35412	NullFields []string `json:"-"`
35413}
35414
35415func (s *RouterBgpPeer) MarshalJSON() ([]byte, error) {
35416	type NoMethod RouterBgpPeer
35417	raw := NoMethod(*s)
35418	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35419}
35420
35421type RouterBgpPeerBfd struct {
35422	// MinReceiveInterval: The minimum interval, in milliseconds, between
35423	// BFD control packets received from the peer router. The actual value
35424	// is negotiated between the two routers and is equal to the greater of
35425	// this value and the transmit interval of the other router. If set,
35426	// this value must be between 100 and 30000. The default is 300.
35427	MinReceiveInterval int64 `json:"minReceiveInterval,omitempty"`
35428
35429	// MinTransmitInterval: The minimum interval, in milliseconds, between
35430	// BFD control packets transmitted to the peer router. The actual value
35431	// is negotiated between the two routers and is equal to the greater of
35432	// this value and the corresponding receive interval of the other
35433	// router. If set, this value must be between 100 and 30000. The default
35434	// is 300.
35435	MinTransmitInterval int64 `json:"minTransmitInterval,omitempty"`
35436
35437	// Mode: The BFD session initialization mode for this BGP peer. If set
35438	// to ACTIVE, the Cloud Router will initiate the BFD session for this
35439	// BGP peer. If set to PASSIVE, the Cloud Router will wait for the peer
35440	// router to initiate the BFD session for this BGP peer. If set to
35441	// DISABLED, BFD is disabled for this BGP peer. The default is PASSIVE.
35442	//
35443	// Possible values:
35444	//   "ACTIVE"
35445	//   "DISABLED"
35446	//   "PASSIVE"
35447	Mode string `json:"mode,omitempty"`
35448
35449	// Multiplier: The number of consecutive BFD packets that must be missed
35450	// before BFD declares that a peer is unavailable. If set, the value
35451	// must be a value between 2 and 16. The default is 3.
35452	Multiplier int64 `json:"multiplier,omitempty"`
35453
35454	// PacketMode: The BFD packet mode for this BGP peer. If set to
35455	// CONTROL_AND_ECHO, BFD echo mode is enabled for this BGP peer. In this
35456	// mode, if the peer router also has BFD echo mode enabled, BFD echo
35457	// packets will be sent to the other router. If the peer router does not
35458	// have BFD echo mode enabled, only control packets will be sent. If set
35459	// to CONTROL_ONLY, BFD echo mode is disabled for this BGP peer. If this
35460	// router and the peer router have a multihop connection, this should be
35461	// set to CONTROL_ONLY as BFD echo mode is only supported on singlehop
35462	// connections. The default is CONTROL_AND_ECHO.
35463	//
35464	// Possible values:
35465	//   "CONTROL_AND_ECHO"
35466	//   "CONTROL_ONLY"
35467	PacketMode string `json:"packetMode,omitempty"`
35468
35469	// SessionInitializationMode: The BFD session initialization mode for
35470	// this BGP peer. If set to ACTIVE, the Cloud Router will initiate the
35471	// BFD session for this BGP peer. If set to PASSIVE, the Cloud Router
35472	// will wait for the peer router to initiate the BFD session for this
35473	// BGP peer. If set to DISABLED, BFD is disabled for this BGP peer. The
35474	// default is PASSIVE.
35475	//
35476	// Possible values:
35477	//   "ACTIVE"
35478	//   "DISABLED"
35479	//   "PASSIVE"
35480	SessionInitializationMode string `json:"sessionInitializationMode,omitempty"`
35481
35482	// SlowTimerInterval: The minimum interval, in milliseconds, between BFD
35483	// control packets transmitted to and received from the peer router when
35484	// BFD echo mode is enabled on both routers. The actual transmit and
35485	// receive intervals are negotiated between the two routers and are
35486	// equal to the greater of this value and the corresponding interval on
35487	// the other router. If set, this value must be between 1000 and 30000.
35488	// The default is 5000.
35489	SlowTimerInterval int64 `json:"slowTimerInterval,omitempty"`
35490
35491	// ForceSendFields is a list of field names (e.g. "MinReceiveInterval")
35492	// to unconditionally include in API requests. By default, fields with
35493	// empty values are omitted from API requests. However, any non-pointer,
35494	// non-interface field appearing in ForceSendFields will be sent to the
35495	// server regardless of whether the field is empty or not. This may be
35496	// used to include empty fields in Patch requests.
35497	ForceSendFields []string `json:"-"`
35498
35499	// NullFields is a list of field names (e.g. "MinReceiveInterval") to
35500	// include in API requests with the JSON null value. By default, fields
35501	// with empty values are omitted from API requests. However, any field
35502	// with an empty value appearing in NullFields will be sent to the
35503	// server as null. It is an error if a field in this list has a
35504	// non-empty value. This may be used to include null fields in Patch
35505	// requests.
35506	NullFields []string `json:"-"`
35507}
35508
35509func (s *RouterBgpPeerBfd) MarshalJSON() ([]byte, error) {
35510	type NoMethod RouterBgpPeerBfd
35511	raw := NoMethod(*s)
35512	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35513}
35514
35515type RouterInterface struct {
35516	// IpRange: IP address and range of the interface. The IP range must be
35517	// in the RFC3927 link-local IP address space. The value must be a
35518	// CIDR-formatted string, for example: 169.254.0.1/30. NOTE: Do not
35519	// truncate the address as it represents the IP address of the
35520	// interface.
35521	IpRange string `json:"ipRange,omitempty"`
35522
35523	// LinkedInterconnectAttachment: URI of the linked Interconnect
35524	// attachment. It must be in the same region as the router. Each
35525	// interface can have one linked resource, which can be either be a VPN
35526	// tunnel or an Interconnect attachment.
35527	LinkedInterconnectAttachment string `json:"linkedInterconnectAttachment,omitempty"`
35528
35529	// LinkedVpnTunnel: URI of the linked VPN tunnel, which must be in the
35530	// same region as the router. Each interface can have one linked
35531	// resource, which can be either a VPN tunnel or an Interconnect
35532	// attachment.
35533	LinkedVpnTunnel string `json:"linkedVpnTunnel,omitempty"`
35534
35535	// ManagementType: [Output Only] The resource that configures and
35536	// manages this interface.
35537	// - MANAGED_BY_USER is the default value and can be managed directly by
35538	// users.
35539	// - MANAGED_BY_ATTACHMENT is an interface that is configured and
35540	// managed by Cloud Interconnect, specifically, by an
35541	// InterconnectAttachment of type PARTNER. Google automatically creates,
35542	// updates, and deletes this type of interface when the PARTNER
35543	// InterconnectAttachment is created, updated, or deleted.
35544	//
35545	// Possible values:
35546	//   "MANAGED_BY_ATTACHMENT"
35547	//   "MANAGED_BY_USER"
35548	ManagementType string `json:"managementType,omitempty"`
35549
35550	// Name: Name of this interface entry. The name must be 1-63 characters
35551	// long, and comply with RFC1035. Specifically, the name must be 1-63
35552	// characters long and match the regular expression
35553	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
35554	// a lowercase letter, and all following characters must be a dash,
35555	// lowercase letter, or digit, except the last character, which cannot
35556	// be a dash.
35557	Name string `json:"name,omitempty"`
35558
35559	// ForceSendFields is a list of field names (e.g. "IpRange") to
35560	// unconditionally include in API requests. By default, fields with
35561	// empty values are omitted from API requests. However, any non-pointer,
35562	// non-interface field appearing in ForceSendFields will be sent to the
35563	// server regardless of whether the field is empty or not. This may be
35564	// used to include empty fields in Patch requests.
35565	ForceSendFields []string `json:"-"`
35566
35567	// NullFields is a list of field names (e.g. "IpRange") to include in
35568	// API requests with the JSON null value. By default, fields with empty
35569	// values are omitted from API requests. However, any field with an
35570	// empty value appearing in NullFields will be sent to the server as
35571	// null. It is an error if a field in this list has a non-empty value.
35572	// This may be used to include null fields in Patch requests.
35573	NullFields []string `json:"-"`
35574}
35575
35576func (s *RouterInterface) MarshalJSON() ([]byte, error) {
35577	type NoMethod RouterInterface
35578	raw := NoMethod(*s)
35579	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35580}
35581
35582// RouterList: Contains a list of Router resources.
35583type RouterList struct {
35584	// Id: [Output Only] Unique identifier for the resource; defined by the
35585	// server.
35586	Id string `json:"id,omitempty"`
35587
35588	// Items: A list of Router resources.
35589	Items []*Router `json:"items,omitempty"`
35590
35591	// Kind: [Output Only] Type of resource. Always compute#router for
35592	// routers.
35593	Kind string `json:"kind,omitempty"`
35594
35595	// NextPageToken: [Output Only] This token allows you to get the next
35596	// page of results for list requests. If the number of results is larger
35597	// than maxResults, use the nextPageToken as a value for the query
35598	// parameter pageToken in the next list request. Subsequent list
35599	// requests will have their own nextPageToken to continue paging through
35600	// the results.
35601	NextPageToken string `json:"nextPageToken,omitempty"`
35602
35603	// SelfLink: [Output Only] Server-defined URL for this resource.
35604	SelfLink string `json:"selfLink,omitempty"`
35605
35606	// Warning: [Output Only] Informational warning message.
35607	Warning *RouterListWarning `json:"warning,omitempty"`
35608
35609	// ServerResponse contains the HTTP response code and headers from the
35610	// server.
35611	googleapi.ServerResponse `json:"-"`
35612
35613	// ForceSendFields is a list of field names (e.g. "Id") to
35614	// unconditionally include in API requests. By default, fields with
35615	// empty values are omitted from API requests. However, any non-pointer,
35616	// non-interface field appearing in ForceSendFields will be sent to the
35617	// server regardless of whether the field is empty or not. This may be
35618	// used to include empty fields in Patch requests.
35619	ForceSendFields []string `json:"-"`
35620
35621	// NullFields is a list of field names (e.g. "Id") to include in API
35622	// requests with the JSON null value. By default, fields with empty
35623	// values are omitted from API requests. However, any field with an
35624	// empty value appearing in NullFields will be sent to the server as
35625	// null. It is an error if a field in this list has a non-empty value.
35626	// This may be used to include null fields in Patch requests.
35627	NullFields []string `json:"-"`
35628}
35629
35630func (s *RouterList) MarshalJSON() ([]byte, error) {
35631	type NoMethod RouterList
35632	raw := NoMethod(*s)
35633	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35634}
35635
35636// RouterListWarning: [Output Only] Informational warning message.
35637type RouterListWarning struct {
35638	// Code: [Output Only] A warning code, if applicable. For example,
35639	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
35640	// the response.
35641	//
35642	// Possible values:
35643	//   "CLEANUP_FAILED"
35644	//   "DEPRECATED_RESOURCE_USED"
35645	//   "DEPRECATED_TYPE_USED"
35646	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
35647	//   "EXPERIMENTAL_TYPE_USED"
35648	//   "EXTERNAL_API_WARNING"
35649	//   "FIELD_VALUE_OVERRIDEN"
35650	//   "INJECTED_KERNELS_DEPRECATED"
35651	//   "MISSING_TYPE_DEPENDENCY"
35652	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
35653	//   "NEXT_HOP_CANNOT_IP_FORWARD"
35654	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
35655	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
35656	//   "NEXT_HOP_NOT_RUNNING"
35657	//   "NOT_CRITICAL_ERROR"
35658	//   "NO_RESULTS_ON_PAGE"
35659	//   "REQUIRED_TOS_AGREEMENT"
35660	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
35661	//   "RESOURCE_NOT_DELETED"
35662	//   "SCHEMA_VALIDATION_IGNORED"
35663	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
35664	//   "UNDECLARED_PROPERTIES"
35665	//   "UNREACHABLE"
35666	Code string `json:"code,omitempty"`
35667
35668	// Data: [Output Only] Metadata about this warning in key: value format.
35669	// For example:
35670	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
35671	Data []*RouterListWarningData `json:"data,omitempty"`
35672
35673	// Message: [Output Only] A human-readable description of the warning
35674	// code.
35675	Message string `json:"message,omitempty"`
35676
35677	// ForceSendFields is a list of field names (e.g. "Code") to
35678	// unconditionally include in API requests. By default, fields with
35679	// empty values are omitted from API requests. However, any non-pointer,
35680	// non-interface field appearing in ForceSendFields will be sent to the
35681	// server regardless of whether the field is empty or not. This may be
35682	// used to include empty fields in Patch requests.
35683	ForceSendFields []string `json:"-"`
35684
35685	// NullFields is a list of field names (e.g. "Code") to include in API
35686	// requests with the JSON null value. By default, fields with empty
35687	// values are omitted from API requests. However, any field with an
35688	// empty value appearing in NullFields will be sent to the server as
35689	// null. It is an error if a field in this list has a non-empty value.
35690	// This may be used to include null fields in Patch requests.
35691	NullFields []string `json:"-"`
35692}
35693
35694func (s *RouterListWarning) MarshalJSON() ([]byte, error) {
35695	type NoMethod RouterListWarning
35696	raw := NoMethod(*s)
35697	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35698}
35699
35700type RouterListWarningData struct {
35701	// Key: [Output Only] A key that provides more detail on the warning
35702	// being returned. For example, for warnings where there are no results
35703	// in a list request for a particular zone, this key might be scope and
35704	// the key value might be the zone name. Other examples might be a key
35705	// indicating a deprecated resource and a suggested replacement, or a
35706	// warning about invalid network settings (for example, if an instance
35707	// attempts to perform IP forwarding but is not enabled for IP
35708	// forwarding).
35709	Key string `json:"key,omitempty"`
35710
35711	// Value: [Output Only] A warning data value corresponding to the key.
35712	Value string `json:"value,omitempty"`
35713
35714	// ForceSendFields is a list of field names (e.g. "Key") to
35715	// unconditionally include in API requests. By default, fields with
35716	// empty values are omitted from API requests. However, any non-pointer,
35717	// non-interface field appearing in ForceSendFields will be sent to the
35718	// server regardless of whether the field is empty or not. This may be
35719	// used to include empty fields in Patch requests.
35720	ForceSendFields []string `json:"-"`
35721
35722	// NullFields is a list of field names (e.g. "Key") to include in API
35723	// requests with the JSON null value. By default, fields with empty
35724	// values are omitted from API requests. However, any field with an
35725	// empty value appearing in NullFields will be sent to the server as
35726	// null. It is an error if a field in this list has a non-empty value.
35727	// This may be used to include null fields in Patch requests.
35728	NullFields []string `json:"-"`
35729}
35730
35731func (s *RouterListWarningData) MarshalJSON() ([]byte, error) {
35732	type NoMethod RouterListWarningData
35733	raw := NoMethod(*s)
35734	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35735}
35736
35737// RouterNat: Represents a Nat resource. It enables the VMs within the
35738// specified subnetworks to access Internet without external IP
35739// addresses. It specifies a list of subnetworks (and the ranges within)
35740// that want to use NAT. Customers can also provide the external IPs
35741// that would be used for NAT. GCP would auto-allocate ephemeral IPs if
35742// no external IPs are provided.
35743type RouterNat struct {
35744	// DrainNatIps: A list of URLs of the IP resources to be drained. These
35745	// IPs must be valid static external IPs that have been assigned to the
35746	// NAT. These IPs should be used for updating/patching a NAT only.
35747	DrainNatIps []string `json:"drainNatIps,omitempty"`
35748
35749	// IcmpIdleTimeoutSec: Timeout (in seconds) for ICMP connections.
35750	// Defaults to 30s if not set.
35751	IcmpIdleTimeoutSec int64 `json:"icmpIdleTimeoutSec,omitempty"`
35752
35753	// LogConfig: Configure logging on this NAT.
35754	LogConfig *RouterNatLogConfig `json:"logConfig,omitempty"`
35755
35756	// MinPortsPerVm: Minimum number of ports allocated to a VM from this
35757	// NAT config. If not set, a default number of ports is allocated to a
35758	// VM. This is rounded up to the nearest power of 2. For example, if the
35759	// value of this field is 50, at least 64 ports are allocated to a VM.
35760	MinPortsPerVm int64 `json:"minPortsPerVm,omitempty"`
35761
35762	// Name: Unique name of this Nat service. The name must be 1-63
35763	// characters long and comply with RFC1035.
35764	Name string `json:"name,omitempty"`
35765
35766	// NatIpAllocateOption: Specify the NatIpAllocateOption, which can take
35767	// one of the following values:
35768	// - MANUAL_ONLY: Uses only Nat IP addresses provided by customers. When
35769	// there are not enough specified Nat IPs, the Nat service fails for new
35770	// VMs.
35771	// - AUTO_ONLY: Nat IPs are allocated by Google Cloud Platform;
35772	// customers can't specify any Nat IPs. When choosing AUTO_ONLY, then
35773	// nat_ip should be empty.
35774	//
35775	// Possible values:
35776	//   "AUTO_ONLY"
35777	//   "MANUAL_ONLY"
35778	NatIpAllocateOption string `json:"natIpAllocateOption,omitempty"`
35779
35780	// NatIps: A list of URLs of the IP resources used for this Nat service.
35781	// These IP addresses must be valid static external IP addresses
35782	// assigned to the project.
35783	NatIps []string `json:"natIps,omitempty"`
35784
35785	// SourceSubnetworkIpRangesToNat: Specify the Nat option, which can take
35786	// one of the following values:
35787	// - ALL_SUBNETWORKS_ALL_IP_RANGES: All of the IP ranges in every
35788	// Subnetwork are allowed to Nat.
35789	// - ALL_SUBNETWORKS_ALL_PRIMARY_IP_RANGES: All of the primary IP ranges
35790	// in every Subnetwork are allowed to Nat.
35791	// - LIST_OF_SUBNETWORKS: A list of Subnetworks are allowed to Nat
35792	// (specified in the field subnetwork below) The default is
35793	// SUBNETWORK_IP_RANGE_TO_NAT_OPTION_UNSPECIFIED. Note that if this
35794	// field contains ALL_SUBNETWORKS_ALL_IP_RANGES or
35795	// ALL_SUBNETWORKS_ALL_PRIMARY_IP_RANGES, then there should not be any
35796	// other Router.Nat section in any Router for this network in this
35797	// region.
35798	//
35799	// Possible values:
35800	//   "ALL_SUBNETWORKS_ALL_IP_RANGES"
35801	//   "ALL_SUBNETWORKS_ALL_PRIMARY_IP_RANGES"
35802	//   "LIST_OF_SUBNETWORKS"
35803	SourceSubnetworkIpRangesToNat string `json:"sourceSubnetworkIpRangesToNat,omitempty"`
35804
35805	// Subnetworks: A list of Subnetwork resources whose traffic should be
35806	// translated by NAT Gateway. It is used only when LIST_OF_SUBNETWORKS
35807	// is selected for the SubnetworkIpRangeToNatOption above.
35808	Subnetworks []*RouterNatSubnetworkToNat `json:"subnetworks,omitempty"`
35809
35810	// TcpEstablishedIdleTimeoutSec: Timeout (in seconds) for TCP
35811	// established connections. Defaults to 1200s if not set.
35812	TcpEstablishedIdleTimeoutSec int64 `json:"tcpEstablishedIdleTimeoutSec,omitempty"`
35813
35814	// TcpTransitoryIdleTimeoutSec: Timeout (in seconds) for TCP transitory
35815	// connections. Defaults to 30s if not set.
35816	TcpTransitoryIdleTimeoutSec int64 `json:"tcpTransitoryIdleTimeoutSec,omitempty"`
35817
35818	// UdpIdleTimeoutSec: Timeout (in seconds) for UDP connections. Defaults
35819	// to 30s if not set.
35820	UdpIdleTimeoutSec int64 `json:"udpIdleTimeoutSec,omitempty"`
35821
35822	// ForceSendFields is a list of field names (e.g. "DrainNatIps") to
35823	// unconditionally include in API requests. By default, fields with
35824	// empty values are omitted from API requests. However, any non-pointer,
35825	// non-interface field appearing in ForceSendFields will be sent to the
35826	// server regardless of whether the field is empty or not. This may be
35827	// used to include empty fields in Patch requests.
35828	ForceSendFields []string `json:"-"`
35829
35830	// NullFields is a list of field names (e.g. "DrainNatIps") to include
35831	// in API requests with the JSON null value. By default, fields with
35832	// empty values are omitted from API requests. However, any field with
35833	// an empty value appearing in NullFields will be sent to the server as
35834	// null. It is an error if a field in this list has a non-empty value.
35835	// This may be used to include null fields in Patch requests.
35836	NullFields []string `json:"-"`
35837}
35838
35839func (s *RouterNat) MarshalJSON() ([]byte, error) {
35840	type NoMethod RouterNat
35841	raw := NoMethod(*s)
35842	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35843}
35844
35845// RouterNatLogConfig: Configuration of logging on a NAT.
35846type RouterNatLogConfig struct {
35847	// Enable: Indicates whether or not to export logs. This is false by
35848	// default.
35849	Enable bool `json:"enable,omitempty"`
35850
35851	// Filter: Specify the desired filtering of logs on this NAT. If
35852	// unspecified, logs are exported for all connections handled by this
35853	// NAT. This option can take one of the following values:
35854	// - ERRORS_ONLY: Export logs only for connection failures.
35855	// - TRANSLATIONS_ONLY: Export logs only for successful connections.
35856	// - ALL: Export logs for all connections, successful and unsuccessful.
35857	//
35858	// Possible values:
35859	//   "ALL"
35860	//   "ERRORS_ONLY"
35861	//   "TRANSLATIONS_ONLY"
35862	Filter string `json:"filter,omitempty"`
35863
35864	// ForceSendFields is a list of field names (e.g. "Enable") to
35865	// unconditionally include in API requests. By default, fields with
35866	// empty values are omitted from API requests. However, any non-pointer,
35867	// non-interface field appearing in ForceSendFields will be sent to the
35868	// server regardless of whether the field is empty or not. This may be
35869	// used to include empty fields in Patch requests.
35870	ForceSendFields []string `json:"-"`
35871
35872	// NullFields is a list of field names (e.g. "Enable") to include in API
35873	// requests with the JSON null value. By default, fields with empty
35874	// values are omitted from API requests. However, any field with an
35875	// empty value appearing in NullFields will be sent to the server as
35876	// null. It is an error if a field in this list has a non-empty value.
35877	// This may be used to include null fields in Patch requests.
35878	NullFields []string `json:"-"`
35879}
35880
35881func (s *RouterNatLogConfig) MarshalJSON() ([]byte, error) {
35882	type NoMethod RouterNatLogConfig
35883	raw := NoMethod(*s)
35884	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35885}
35886
35887// RouterNatSubnetworkToNat: Defines the IP ranges that want to use NAT
35888// for a subnetwork.
35889type RouterNatSubnetworkToNat struct {
35890	// Name: URL for the subnetwork resource that will use NAT.
35891	Name string `json:"name,omitempty"`
35892
35893	// SecondaryIpRangeNames: A list of the secondary ranges of the
35894	// Subnetwork that are allowed to use NAT. This can be populated only if
35895	// "LIST_OF_SECONDARY_IP_RANGES" is one of the values in
35896	// source_ip_ranges_to_nat.
35897	SecondaryIpRangeNames []string `json:"secondaryIpRangeNames,omitempty"`
35898
35899	// SourceIpRangesToNat: Specify the options for NAT ranges in the
35900	// Subnetwork. All options of a single value are valid except
35901	// NAT_IP_RANGE_OPTION_UNSPECIFIED. The only valid option with multiple
35902	// values is: ["PRIMARY_IP_RANGE", "LIST_OF_SECONDARY_IP_RANGES"]
35903	// Default: [ALL_IP_RANGES]
35904	//
35905	// Possible values:
35906	//   "ALL_IP_RANGES"
35907	//   "LIST_OF_SECONDARY_IP_RANGES"
35908	//   "PRIMARY_IP_RANGE"
35909	SourceIpRangesToNat []string `json:"sourceIpRangesToNat,omitempty"`
35910
35911	// ForceSendFields is a list of field names (e.g. "Name") to
35912	// unconditionally include in API requests. By default, fields with
35913	// empty values are omitted from API requests. However, any non-pointer,
35914	// non-interface field appearing in ForceSendFields will be sent to the
35915	// server regardless of whether the field is empty or not. This may be
35916	// used to include empty fields in Patch requests.
35917	ForceSendFields []string `json:"-"`
35918
35919	// NullFields is a list of field names (e.g. "Name") to include in API
35920	// requests with the JSON null value. By default, fields with empty
35921	// values are omitted from API requests. However, any field with an
35922	// empty value appearing in NullFields will be sent to the server as
35923	// null. It is an error if a field in this list has a non-empty value.
35924	// This may be used to include null fields in Patch requests.
35925	NullFields []string `json:"-"`
35926}
35927
35928func (s *RouterNatSubnetworkToNat) MarshalJSON() ([]byte, error) {
35929	type NoMethod RouterNatSubnetworkToNat
35930	raw := NoMethod(*s)
35931	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35932}
35933
35934type RouterStatus struct {
35935	// BestRoutes: Best routes for this router's network.
35936	BestRoutes []*Route `json:"bestRoutes,omitempty"`
35937
35938	// BestRoutesForRouter: Best routes learned by this router.
35939	BestRoutesForRouter []*Route `json:"bestRoutesForRouter,omitempty"`
35940
35941	BgpPeerStatus []*RouterStatusBgpPeerStatus `json:"bgpPeerStatus,omitempty"`
35942
35943	NatStatus []*RouterStatusNatStatus `json:"natStatus,omitempty"`
35944
35945	// Network: URI of the network to which this router belongs.
35946	Network string `json:"network,omitempty"`
35947
35948	// ForceSendFields is a list of field names (e.g. "BestRoutes") to
35949	// unconditionally include in API requests. By default, fields with
35950	// empty values are omitted from API requests. However, any non-pointer,
35951	// non-interface field appearing in ForceSendFields will be sent to the
35952	// server regardless of whether the field is empty or not. This may be
35953	// used to include empty fields in Patch requests.
35954	ForceSendFields []string `json:"-"`
35955
35956	// NullFields is a list of field names (e.g. "BestRoutes") to include in
35957	// API requests with the JSON null value. By default, fields with empty
35958	// values are omitted from API requests. However, any field with an
35959	// empty value appearing in NullFields will be sent to the server as
35960	// null. It is an error if a field in this list has a non-empty value.
35961	// This may be used to include null fields in Patch requests.
35962	NullFields []string `json:"-"`
35963}
35964
35965func (s *RouterStatus) MarshalJSON() ([]byte, error) {
35966	type NoMethod RouterStatus
35967	raw := NoMethod(*s)
35968	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35969}
35970
35971type RouterStatusBgpPeerStatus struct {
35972	// AdvertisedRoutes: Routes that were advertised to the remote BGP peer
35973	AdvertisedRoutes []*Route `json:"advertisedRoutes,omitempty"`
35974
35975	BfdStatus *BfdStatus `json:"bfdStatus,omitempty"`
35976
35977	// IpAddress: IP address of the local BGP interface.
35978	IpAddress string `json:"ipAddress,omitempty"`
35979
35980	// LinkedVpnTunnel: URL of the VPN tunnel that this BGP peer controls.
35981	LinkedVpnTunnel string `json:"linkedVpnTunnel,omitempty"`
35982
35983	// Name: Name of this BGP peer. Unique within the Routers resource.
35984	Name string `json:"name,omitempty"`
35985
35986	// NumLearnedRoutes: Number of routes learned from the remote BGP Peer.
35987	NumLearnedRoutes int64 `json:"numLearnedRoutes,omitempty"`
35988
35989	// PeerIpAddress: IP address of the remote BGP interface.
35990	PeerIpAddress string `json:"peerIpAddress,omitempty"`
35991
35992	// State: BGP state as specified in RFC1771.
35993	State string `json:"state,omitempty"`
35994
35995	// Status: Status of the BGP peer: {UP, DOWN}
35996	//
35997	// Possible values:
35998	//   "DOWN"
35999	//   "UNKNOWN"
36000	//   "UP"
36001	Status string `json:"status,omitempty"`
36002
36003	// Uptime: Time this session has been up. Format: 14 years, 51 weeks, 6
36004	// days, 23 hours, 59 minutes, 59 seconds
36005	Uptime string `json:"uptime,omitempty"`
36006
36007	// UptimeSeconds: Time this session has been up, in seconds. Format: 145
36008	UptimeSeconds string `json:"uptimeSeconds,omitempty"`
36009
36010	// ForceSendFields is a list of field names (e.g. "AdvertisedRoutes") to
36011	// unconditionally include in API requests. By default, fields with
36012	// empty values are omitted from API requests. However, any non-pointer,
36013	// non-interface field appearing in ForceSendFields will be sent to the
36014	// server regardless of whether the field is empty or not. This may be
36015	// used to include empty fields in Patch requests.
36016	ForceSendFields []string `json:"-"`
36017
36018	// NullFields is a list of field names (e.g. "AdvertisedRoutes") to
36019	// include in API requests with the JSON null value. By default, fields
36020	// with empty values are omitted from API requests. However, any field
36021	// with an empty value appearing in NullFields will be sent to the
36022	// server as null. It is an error if a field in this list has a
36023	// non-empty value. This may be used to include null fields in Patch
36024	// requests.
36025	NullFields []string `json:"-"`
36026}
36027
36028func (s *RouterStatusBgpPeerStatus) MarshalJSON() ([]byte, error) {
36029	type NoMethod RouterStatusBgpPeerStatus
36030	raw := NoMethod(*s)
36031	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36032}
36033
36034// RouterStatusNatStatus: Status of a NAT contained in this router. Next
36035// tag: 9
36036type RouterStatusNatStatus struct {
36037	// AutoAllocatedNatIps: A list of IPs auto-allocated for NAT. Example:
36038	// ["1.1.1.1", "129.2.16.89"]
36039	AutoAllocatedNatIps []string `json:"autoAllocatedNatIps,omitempty"`
36040
36041	// DrainAutoAllocatedNatIps: A list of IPs auto-allocated for NAT that
36042	// are in drain mode. Example: ["1.1.1.1", "179.12.26.133"].
36043	DrainAutoAllocatedNatIps []string `json:"drainAutoAllocatedNatIps,omitempty"`
36044
36045	// DrainUserAllocatedNatIps: A list of IPs user-allocated for NAT that
36046	// are in drain mode. Example: ["1.1.1.1", "179.12.26.133"].
36047	DrainUserAllocatedNatIps []string `json:"drainUserAllocatedNatIps,omitempty"`
36048
36049	// MinExtraNatIpsNeeded: The number of extra IPs to allocate. This will
36050	// be greater than 0 only if user-specified IPs are NOT enough to allow
36051	// all configured VMs to use NAT. This value is meaningful only when
36052	// auto-allocation of NAT IPs is *not* used.
36053	MinExtraNatIpsNeeded int64 `json:"minExtraNatIpsNeeded,omitempty"`
36054
36055	// Name: Unique name of this NAT.
36056	Name string `json:"name,omitempty"`
36057
36058	// NumVmEndpointsWithNatMappings: Number of VM endpoints (i.e., Nics)
36059	// that can use NAT.
36060	NumVmEndpointsWithNatMappings int64 `json:"numVmEndpointsWithNatMappings,omitempty"`
36061
36062	// UserAllocatedNatIpResources: A list of fully qualified URLs of
36063	// reserved IP address resources.
36064	UserAllocatedNatIpResources []string `json:"userAllocatedNatIpResources,omitempty"`
36065
36066	// UserAllocatedNatIps: A list of IPs user-allocated for NAT. They will
36067	// be raw IP strings like "179.12.26.133".
36068	UserAllocatedNatIps []string `json:"userAllocatedNatIps,omitempty"`
36069
36070	// ForceSendFields is a list of field names (e.g. "AutoAllocatedNatIps")
36071	// to 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. "AutoAllocatedNatIps") to
36079	// include in API requests with the JSON null value. By default, fields
36080	// with empty values are omitted from API requests. However, any field
36081	// with an empty value appearing in NullFields will be sent to the
36082	// server as null. It is an error if a field in this list has a
36083	// non-empty value. This may be used to include null fields in Patch
36084	// requests.
36085	NullFields []string `json:"-"`
36086}
36087
36088func (s *RouterStatusNatStatus) MarshalJSON() ([]byte, error) {
36089	type NoMethod RouterStatusNatStatus
36090	raw := NoMethod(*s)
36091	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36092}
36093
36094type RouterStatusResponse struct {
36095	// Kind: Type of resource.
36096	Kind string `json:"kind,omitempty"`
36097
36098	Result *RouterStatus `json:"result,omitempty"`
36099
36100	// ServerResponse contains the HTTP response code and headers from the
36101	// server.
36102	googleapi.ServerResponse `json:"-"`
36103
36104	// ForceSendFields is a list of field names (e.g. "Kind") to
36105	// unconditionally include in API requests. By default, fields with
36106	// empty values are omitted from API requests. However, any non-pointer,
36107	// non-interface field appearing in ForceSendFields will be sent to the
36108	// server regardless of whether the field is empty or not. This may be
36109	// used to include empty fields in Patch requests.
36110	ForceSendFields []string `json:"-"`
36111
36112	// NullFields is a list of field names (e.g. "Kind") to include in API
36113	// requests with the JSON null value. By default, fields with empty
36114	// values are omitted from API requests. However, any field with an
36115	// empty value appearing in NullFields will be sent to the server as
36116	// null. It is an error if a field in this list has a non-empty value.
36117	// This may be used to include null fields in Patch requests.
36118	NullFields []string `json:"-"`
36119}
36120
36121func (s *RouterStatusResponse) MarshalJSON() ([]byte, error) {
36122	type NoMethod RouterStatusResponse
36123	raw := NoMethod(*s)
36124	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36125}
36126
36127type RoutersPreviewResponse struct {
36128	// Resource: Preview of given router.
36129	Resource *Router `json:"resource,omitempty"`
36130
36131	// ServerResponse contains the HTTP response code and headers from the
36132	// server.
36133	googleapi.ServerResponse `json:"-"`
36134
36135	// ForceSendFields is a list of field names (e.g. "Resource") to
36136	// unconditionally include in API requests. By default, fields with
36137	// empty values are omitted from API requests. However, any non-pointer,
36138	// non-interface field appearing in ForceSendFields will be sent to the
36139	// server regardless of whether the field is empty or not. This may be
36140	// used to include empty fields in Patch requests.
36141	ForceSendFields []string `json:"-"`
36142
36143	// NullFields is a list of field names (e.g. "Resource") to include in
36144	// API requests with the JSON null value. By default, fields with empty
36145	// values are omitted from API requests. However, any field with an
36146	// empty value appearing in NullFields will be sent to the server as
36147	// null. It is an error if a field in this list has a non-empty value.
36148	// This may be used to include null fields in Patch requests.
36149	NullFields []string `json:"-"`
36150}
36151
36152func (s *RoutersPreviewResponse) MarshalJSON() ([]byte, error) {
36153	type NoMethod RoutersPreviewResponse
36154	raw := NoMethod(*s)
36155	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36156}
36157
36158type RoutersScopedList struct {
36159	// Routers: A list of routers contained in this scope.
36160	Routers []*Router `json:"routers,omitempty"`
36161
36162	// Warning: Informational warning which replaces the list of routers
36163	// when the list is empty.
36164	Warning *RoutersScopedListWarning `json:"warning,omitempty"`
36165
36166	// ForceSendFields is a list of field names (e.g. "Routers") to
36167	// unconditionally include in API requests. By default, fields with
36168	// empty values are omitted from API requests. However, any non-pointer,
36169	// non-interface field appearing in ForceSendFields will be sent to the
36170	// server regardless of whether the field is empty or not. This may be
36171	// used to include empty fields in Patch requests.
36172	ForceSendFields []string `json:"-"`
36173
36174	// NullFields is a list of field names (e.g. "Routers") to include in
36175	// API requests with the JSON null value. By default, fields with empty
36176	// values are omitted from API requests. However, any field with an
36177	// empty value appearing in NullFields will be sent to the server as
36178	// null. It is an error if a field in this list has a non-empty value.
36179	// This may be used to include null fields in Patch requests.
36180	NullFields []string `json:"-"`
36181}
36182
36183func (s *RoutersScopedList) MarshalJSON() ([]byte, error) {
36184	type NoMethod RoutersScopedList
36185	raw := NoMethod(*s)
36186	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36187}
36188
36189// RoutersScopedListWarning: Informational warning which replaces the
36190// list of routers when the list is empty.
36191type RoutersScopedListWarning struct {
36192	// Code: [Output Only] A warning code, if applicable. For example,
36193	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
36194	// the response.
36195	//
36196	// Possible values:
36197	//   "CLEANUP_FAILED"
36198	//   "DEPRECATED_RESOURCE_USED"
36199	//   "DEPRECATED_TYPE_USED"
36200	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
36201	//   "EXPERIMENTAL_TYPE_USED"
36202	//   "EXTERNAL_API_WARNING"
36203	//   "FIELD_VALUE_OVERRIDEN"
36204	//   "INJECTED_KERNELS_DEPRECATED"
36205	//   "MISSING_TYPE_DEPENDENCY"
36206	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
36207	//   "NEXT_HOP_CANNOT_IP_FORWARD"
36208	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
36209	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
36210	//   "NEXT_HOP_NOT_RUNNING"
36211	//   "NOT_CRITICAL_ERROR"
36212	//   "NO_RESULTS_ON_PAGE"
36213	//   "REQUIRED_TOS_AGREEMENT"
36214	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
36215	//   "RESOURCE_NOT_DELETED"
36216	//   "SCHEMA_VALIDATION_IGNORED"
36217	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
36218	//   "UNDECLARED_PROPERTIES"
36219	//   "UNREACHABLE"
36220	Code string `json:"code,omitempty"`
36221
36222	// Data: [Output Only] Metadata about this warning in key: value format.
36223	// For example:
36224	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
36225	Data []*RoutersScopedListWarningData `json:"data,omitempty"`
36226
36227	// Message: [Output Only] A human-readable description of the warning
36228	// code.
36229	Message string `json:"message,omitempty"`
36230
36231	// ForceSendFields is a list of field names (e.g. "Code") to
36232	// unconditionally include in API requests. By default, fields with
36233	// empty values are omitted from API requests. However, any non-pointer,
36234	// non-interface field appearing in ForceSendFields will be sent to the
36235	// server regardless of whether the field is empty or not. This may be
36236	// used to include empty fields in Patch requests.
36237	ForceSendFields []string `json:"-"`
36238
36239	// NullFields is a list of field names (e.g. "Code") to include in API
36240	// requests with the JSON null value. By default, fields with empty
36241	// values are omitted from API requests. However, any field with an
36242	// empty value appearing in NullFields will be sent to the server as
36243	// null. It is an error if a field in this list has a non-empty value.
36244	// This may be used to include null fields in Patch requests.
36245	NullFields []string `json:"-"`
36246}
36247
36248func (s *RoutersScopedListWarning) MarshalJSON() ([]byte, error) {
36249	type NoMethod RoutersScopedListWarning
36250	raw := NoMethod(*s)
36251	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36252}
36253
36254type RoutersScopedListWarningData struct {
36255	// Key: [Output Only] A key that provides more detail on the warning
36256	// being returned. For example, for warnings where there are no results
36257	// in a list request for a particular zone, this key might be scope and
36258	// the key value might be the zone name. Other examples might be a key
36259	// indicating a deprecated resource and a suggested replacement, or a
36260	// warning about invalid network settings (for example, if an instance
36261	// attempts to perform IP forwarding but is not enabled for IP
36262	// forwarding).
36263	Key string `json:"key,omitempty"`
36264
36265	// Value: [Output Only] A warning data value corresponding to the key.
36266	Value string `json:"value,omitempty"`
36267
36268	// ForceSendFields is a list of field names (e.g. "Key") to
36269	// unconditionally include in API requests. By default, fields with
36270	// empty values are omitted from API requests. However, any non-pointer,
36271	// non-interface field appearing in ForceSendFields will be sent to the
36272	// server regardless of whether the field is empty or not. This may be
36273	// used to include empty fields in Patch requests.
36274	ForceSendFields []string `json:"-"`
36275
36276	// NullFields is a list of field names (e.g. "Key") to include in API
36277	// requests with the JSON null value. By default, fields with empty
36278	// values are omitted from API requests. However, any field with an
36279	// empty value appearing in NullFields will be sent to the server as
36280	// null. It is an error if a field in this list has a non-empty value.
36281	// This may be used to include null fields in Patch requests.
36282	NullFields []string `json:"-"`
36283}
36284
36285func (s *RoutersScopedListWarningData) MarshalJSON() ([]byte, error) {
36286	type NoMethod RoutersScopedListWarningData
36287	raw := NoMethod(*s)
36288	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36289}
36290
36291// Rule: A rule to be applied in a Policy.
36292type Rule struct {
36293	// Action: Required
36294	//
36295	// Possible values:
36296	//   "ALLOW"
36297	//   "ALLOW_WITH_LOG"
36298	//   "DENY"
36299	//   "DENY_WITH_LOG"
36300	//   "LOG"
36301	//   "NO_ACTION"
36302	Action string `json:"action,omitempty"`
36303
36304	// Conditions: Additional restrictions that must be met. All conditions
36305	// must pass for the rule to match.
36306	Conditions []*Condition `json:"conditions,omitempty"`
36307
36308	// Description: Human-readable description of the rule.
36309	Description string `json:"description,omitempty"`
36310
36311	// Ins: If one or more 'in' clauses are specified, the rule matches if
36312	// the PRINCIPAL/AUTHORITY_SELECTOR is in at least one of these entries.
36313	Ins []string `json:"ins,omitempty"`
36314
36315	// LogConfigs: The config returned to callers of
36316	// tech.iam.IAM.CheckPolicy for any entries that match the LOG action.
36317	LogConfigs []*LogConfig `json:"logConfigs,omitempty"`
36318
36319	// NotIns: If one or more 'not_in' clauses are specified, the rule
36320	// matches if the PRINCIPAL/AUTHORITY_SELECTOR is in none of the
36321	// entries.
36322	NotIns []string `json:"notIns,omitempty"`
36323
36324	// Permissions: A permission is a string of form '..' (e.g.,
36325	// 'storage.buckets.list'). A value of '*' matches all permissions, and
36326	// a verb part of '*' (e.g., 'storage.buckets.*') matches all verbs.
36327	Permissions []string `json:"permissions,omitempty"`
36328
36329	// ForceSendFields is a list of field names (e.g. "Action") to
36330	// unconditionally include in API requests. By default, fields with
36331	// empty values are omitted from API requests. However, any non-pointer,
36332	// non-interface field appearing in ForceSendFields will be sent to the
36333	// server regardless of whether the field is empty or not. This may be
36334	// used to include empty fields in Patch requests.
36335	ForceSendFields []string `json:"-"`
36336
36337	// NullFields is a list of field names (e.g. "Action") to include in API
36338	// requests with the JSON null value. By default, fields with empty
36339	// values are omitted from API requests. However, any field with an
36340	// empty value appearing in NullFields will be sent to the server as
36341	// null. It is an error if a field in this list has a non-empty value.
36342	// This may be used to include null fields in Patch requests.
36343	NullFields []string `json:"-"`
36344}
36345
36346func (s *Rule) MarshalJSON() ([]byte, error) {
36347	type NoMethod Rule
36348	raw := NoMethod(*s)
36349	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36350}
36351
36352type SSLHealthCheck struct {
36353	// Port: The TCP port number for the health check request. The default
36354	// value is 443. Valid values are 1 through 65535.
36355	Port int64 `json:"port,omitempty"`
36356
36357	// PortName: Port name as defined in InstanceGroup#NamedPort#name. If
36358	// both port and port_name are defined, port takes precedence.
36359	PortName string `json:"portName,omitempty"`
36360
36361	// PortSpecification: Specifies how port is selected for health
36362	// checking, can be one of following values:
36363	// USE_FIXED_PORT: The port number in
36364	// port
36365	// is used for health checking.
36366	// USE_NAMED_PORT: The
36367	// portName
36368	// is used for health checking.
36369	// USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for
36370	// each network endpoint is used for health checking. For other
36371	// backends, the port or named port specified in the Backend Service is
36372	// used for health checking.
36373	//
36374	//
36375	// If not specified, SSL health check follows behavior specified
36376	// in
36377	// port
36378	// and
36379	// portName
36380	// fields.
36381	//
36382	// Possible values:
36383	//   "USE_FIXED_PORT"
36384	//   "USE_NAMED_PORT"
36385	//   "USE_SERVING_PORT"
36386	PortSpecification string `json:"portSpecification,omitempty"`
36387
36388	// ProxyHeader: Specifies the type of proxy header to append before
36389	// sending data to the backend, either NONE or PROXY_V1. The default is
36390	// NONE.
36391	//
36392	// Possible values:
36393	//   "NONE"
36394	//   "PROXY_V1"
36395	ProxyHeader string `json:"proxyHeader,omitempty"`
36396
36397	// Request: The application data to send once the SSL connection has
36398	// been established (default value is empty). If both request and
36399	// response are empty, the connection establishment alone will indicate
36400	// health. The request data can only be ASCII.
36401	Request string `json:"request,omitempty"`
36402
36403	// Response: The bytes to match against the beginning of the response
36404	// data. If left empty (the default value), any response will indicate
36405	// health. The response data can only be ASCII.
36406	Response string `json:"response,omitempty"`
36407
36408	// ForceSendFields is a list of field names (e.g. "Port") to
36409	// unconditionally include in API requests. By default, fields with
36410	// empty values are omitted from API requests. However, any non-pointer,
36411	// non-interface field appearing in ForceSendFields will be sent to the
36412	// server regardless of whether the field is empty or not. This may be
36413	// used to include empty fields in Patch requests.
36414	ForceSendFields []string `json:"-"`
36415
36416	// NullFields is a list of field names (e.g. "Port") to include in API
36417	// requests with the JSON null value. By default, fields with empty
36418	// values are omitted from API requests. However, any field with an
36419	// empty value appearing in NullFields will be sent to the server as
36420	// null. It is an error if a field in this list has a non-empty value.
36421	// This may be used to include null fields in Patch requests.
36422	NullFields []string `json:"-"`
36423}
36424
36425func (s *SSLHealthCheck) MarshalJSON() ([]byte, error) {
36426	type NoMethod SSLHealthCheck
36427	raw := NoMethod(*s)
36428	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36429}
36430
36431// SavedAttachedDisk: An instance-attached disk resource.
36432type SavedAttachedDisk struct {
36433	// AutoDelete: Specifies whether the disk will be auto-deleted when the
36434	// instance is deleted (but not when the disk is detached from the
36435	// instance).
36436	AutoDelete bool `json:"autoDelete,omitempty"`
36437
36438	// Boot: Indicates that this is a boot disk. The virtual machine will
36439	// use the first partition of the disk for its root filesystem.
36440	Boot bool `json:"boot,omitempty"`
36441
36442	// DeviceName: Specifies the name of the disk attached to the source
36443	// instance.
36444	DeviceName string `json:"deviceName,omitempty"`
36445
36446	// DiskEncryptionKey: The encryption key for the disk.
36447	DiskEncryptionKey *CustomerEncryptionKey `json:"diskEncryptionKey,omitempty"`
36448
36449	// DiskSizeGb: The size of the disk in base-2 GB.
36450	DiskSizeGb int64 `json:"diskSizeGb,omitempty,string"`
36451
36452	// GuestOsFeatures: A list of features to enable on the guest operating
36453	// system. Applicable only for bootable images. Read  Enabling guest
36454	// operating system features to see a list of available options.
36455	GuestOsFeatures []*GuestOsFeature `json:"guestOsFeatures,omitempty"`
36456
36457	// Index: Specifies zero-based index of the disk that is attached to the
36458	// source instance.
36459	Index int64 `json:"index,omitempty"`
36460
36461	// Interface: Specifies the disk interface to use for attaching this
36462	// disk, which is either SCSI or NVME.
36463	//
36464	// Possible values:
36465	//   "NVDIMM"
36466	//   "NVME"
36467	//   "SCSI"
36468	Interface string `json:"interface,omitempty"`
36469
36470	// Kind: [Output Only] Type of the resource. Always compute#attachedDisk
36471	// for attached disks.
36472	Kind string `json:"kind,omitempty"`
36473
36474	// Licenses: [Output Only] Any valid publicly visible licenses.
36475	Licenses []string `json:"licenses,omitempty"`
36476
36477	// Mode: The mode in which this disk is attached to the source instance,
36478	// either READ_WRITE or READ_ONLY.
36479	//
36480	// Possible values:
36481	//   "READ_ONLY"
36482	//   "READ_WRITE"
36483	Mode string `json:"mode,omitempty"`
36484
36485	// Source: Specifies a URL of the disk attached to the source instance.
36486	Source string `json:"source,omitempty"`
36487
36488	// StorageBytes: [Output Only] A size of the storage used by the disk's
36489	// snapshot by this machine image.
36490	StorageBytes int64 `json:"storageBytes,omitempty,string"`
36491
36492	// StorageBytesStatus: [Output Only] An indicator whether storageBytes
36493	// is in a stable state or it is being adjusted as a result of shared
36494	// storage reallocation. This status can either be UPDATING, meaning the
36495	// size of the snapshot is being updated, or UP_TO_DATE, meaning the
36496	// size of the snapshot is up-to-date.
36497	//
36498	// Possible values:
36499	//   "UPDATING"
36500	//   "UP_TO_DATE"
36501	StorageBytesStatus string `json:"storageBytesStatus,omitempty"`
36502
36503	// Type: Specifies the type of the attached disk, either SCRATCH or
36504	// PERSISTENT.
36505	//
36506	// Possible values:
36507	//   "PERSISTENT"
36508	//   "SCRATCH"
36509	Type string `json:"type,omitempty"`
36510
36511	// ForceSendFields is a list of field names (e.g. "AutoDelete") to
36512	// unconditionally include in API requests. By default, fields with
36513	// empty values are omitted from API requests. However, any non-pointer,
36514	// non-interface field appearing in ForceSendFields will be sent to the
36515	// server regardless of whether the field is empty or not. This may be
36516	// used to include empty fields in Patch requests.
36517	ForceSendFields []string `json:"-"`
36518
36519	// NullFields is a list of field names (e.g. "AutoDelete") to include in
36520	// API requests with the JSON null value. By default, fields with empty
36521	// values are omitted from API requests. However, any field with an
36522	// empty value appearing in NullFields will be sent to the server as
36523	// null. It is an error if a field in this list has a non-empty value.
36524	// This may be used to include null fields in Patch requests.
36525	NullFields []string `json:"-"`
36526}
36527
36528func (s *SavedAttachedDisk) MarshalJSON() ([]byte, error) {
36529	type NoMethod SavedAttachedDisk
36530	raw := NoMethod(*s)
36531	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36532}
36533
36534// Scheduling: Sets the scheduling options for an Instance. NextID: 9
36535type Scheduling struct {
36536	// AutomaticRestart: Specifies whether the instance should be
36537	// automatically restarted if it is terminated by Compute Engine (not
36538	// terminated by a user). You can only set the automatic restart option
36539	// for standard instances. Preemptible instances cannot be automatically
36540	// restarted.
36541	//
36542	// By default, this is set to true so an instance is automatically
36543	// restarted if it is terminated by Compute Engine.
36544	AutomaticRestart *bool `json:"automaticRestart,omitempty"`
36545
36546	// LatencyTolerant: Defines whether the instance is tolerant of higher
36547	// cpu latency. This can only be set during instance creation, or when
36548	// the instance is not currently running. It must not be set if the
36549	// preemptible option is also set.
36550	LatencyTolerant bool `json:"latencyTolerant,omitempty"`
36551
36552	// LocationHint: An opaque location hint used to place the instance
36553	// close to other resources. This field is for use by internal tools
36554	// that use the public API.
36555	LocationHint string `json:"locationHint,omitempty"`
36556
36557	// MinNodeCpus: The minimum number of virtual CPUs this instance will
36558	// consume when running on a sole-tenant node.
36559	MinNodeCpus int64 `json:"minNodeCpus,omitempty"`
36560
36561	// NodeAffinities: A set of node affinity and anti-affinity
36562	// configurations. Refer to Configuring node affinity for more
36563	// information.
36564	NodeAffinities []*SchedulingNodeAffinity `json:"nodeAffinities,omitempty"`
36565
36566	// OnHostMaintenance: Defines the maintenance behavior for this
36567	// instance. For standard instances, the default behavior is MIGRATE.
36568	// For preemptible instances, the default and only possible behavior is
36569	// TERMINATE. For more information, see Setting Instance Scheduling
36570	// Options.
36571	//
36572	// Possible values:
36573	//   "MIGRATE"
36574	//   "TERMINATE"
36575	OnHostMaintenance string `json:"onHostMaintenance,omitempty"`
36576
36577	// Preemptible: Defines whether the instance is preemptible. This can
36578	// only be set during instance creation, it cannot be set or changed
36579	// after the instance has been created.
36580	Preemptible bool `json:"preemptible,omitempty"`
36581
36582	// ForceSendFields is a list of field names (e.g. "AutomaticRestart") to
36583	// unconditionally include in API requests. By default, fields with
36584	// empty values are omitted from API requests. However, any non-pointer,
36585	// non-interface field appearing in ForceSendFields will be sent to the
36586	// server regardless of whether the field is empty or not. This may be
36587	// used to include empty fields in Patch requests.
36588	ForceSendFields []string `json:"-"`
36589
36590	// NullFields is a list of field names (e.g. "AutomaticRestart") to
36591	// include in API requests with the JSON null value. By default, fields
36592	// with empty values are omitted from API requests. However, any field
36593	// with an empty value appearing in NullFields will be sent to the
36594	// server as null. It is an error if a field in this list has a
36595	// non-empty value. This may be used to include null fields in Patch
36596	// requests.
36597	NullFields []string `json:"-"`
36598}
36599
36600func (s *Scheduling) MarshalJSON() ([]byte, error) {
36601	type NoMethod Scheduling
36602	raw := NoMethod(*s)
36603	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36604}
36605
36606// SchedulingNodeAffinity: Node Affinity: the configuration of desired
36607// nodes onto which this Instance could be scheduled.
36608type SchedulingNodeAffinity struct {
36609	// Key: Corresponds to the label key of Node resource.
36610	Key string `json:"key,omitempty"`
36611
36612	// Operator: Defines the operation of node selection. Valid operators
36613	// are IN for affinity and NOT_IN for anti-affinity.
36614	//
36615	// Possible values:
36616	//   "IN"
36617	//   "NOT_IN"
36618	//   "OPERATOR_UNSPECIFIED"
36619	Operator string `json:"operator,omitempty"`
36620
36621	// Values: Corresponds to the label values of Node resource.
36622	Values []string `json:"values,omitempty"`
36623
36624	// ForceSendFields is a list of field names (e.g. "Key") to
36625	// unconditionally include in API requests. By default, fields with
36626	// empty values are omitted from API requests. However, any non-pointer,
36627	// non-interface field appearing in ForceSendFields will be sent to the
36628	// server regardless of whether the field is empty or not. This may be
36629	// used to include empty fields in Patch requests.
36630	ForceSendFields []string `json:"-"`
36631
36632	// NullFields is a list of field names (e.g. "Key") to include in API
36633	// requests with the JSON null value. By default, fields with empty
36634	// values are omitted from API requests. However, any field with an
36635	// empty value appearing in NullFields will be sent to the server as
36636	// null. It is an error if a field in this list has a non-empty value.
36637	// This may be used to include null fields in Patch requests.
36638	NullFields []string `json:"-"`
36639}
36640
36641func (s *SchedulingNodeAffinity) MarshalJSON() ([]byte, error) {
36642	type NoMethod SchedulingNodeAffinity
36643	raw := NoMethod(*s)
36644	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36645}
36646
36647// SdsConfig: The configuration to access the SDS server.
36648type SdsConfig struct {
36649	// GrpcServiceConfig: The configuration to access the SDS server over
36650	// GRPC.
36651	GrpcServiceConfig *GrpcServiceConfig `json:"grpcServiceConfig,omitempty"`
36652
36653	// ForceSendFields is a list of field names (e.g. "GrpcServiceConfig")
36654	// to unconditionally include in API requests. By default, fields with
36655	// empty values are omitted from API requests. However, any non-pointer,
36656	// non-interface field appearing in ForceSendFields will be sent to the
36657	// server regardless of whether the field is empty or not. This may be
36658	// used to include empty fields in Patch requests.
36659	ForceSendFields []string `json:"-"`
36660
36661	// NullFields is a list of field names (e.g. "GrpcServiceConfig") to
36662	// include in API requests with the JSON null value. By default, fields
36663	// with empty values are omitted from API requests. However, any field
36664	// with an empty value appearing in NullFields will be sent to the
36665	// server as null. It is an error if a field in this list has a
36666	// non-empty value. This may be used to include null fields in Patch
36667	// requests.
36668	NullFields []string `json:"-"`
36669}
36670
36671func (s *SdsConfig) MarshalJSON() ([]byte, error) {
36672	type NoMethod SdsConfig
36673	raw := NoMethod(*s)
36674	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36675}
36676
36677type SecurityPoliciesListPreconfiguredExpressionSetsResponse struct {
36678	PreconfiguredExpressionSets *SecurityPoliciesWafConfig `json:"preconfiguredExpressionSets,omitempty"`
36679
36680	// ServerResponse contains the HTTP response code and headers from the
36681	// server.
36682	googleapi.ServerResponse `json:"-"`
36683
36684	// ForceSendFields is a list of field names (e.g.
36685	// "PreconfiguredExpressionSets") to unconditionally include in API
36686	// requests. By default, fields with empty values are omitted from API
36687	// requests. However, any non-pointer, non-interface field appearing in
36688	// ForceSendFields will be sent to the server regardless of whether the
36689	// field is empty or not. This may be used to include empty fields in
36690	// Patch requests.
36691	ForceSendFields []string `json:"-"`
36692
36693	// NullFields is a list of field names (e.g.
36694	// "PreconfiguredExpressionSets") to include in API requests with the
36695	// JSON null value. By default, fields with empty values are omitted
36696	// from API requests. However, any field with an empty value appearing
36697	// in NullFields will be sent to the server as null. It is an error if a
36698	// field in this list has a non-empty value. This may be used to include
36699	// null fields in Patch requests.
36700	NullFields []string `json:"-"`
36701}
36702
36703func (s *SecurityPoliciesListPreconfiguredExpressionSetsResponse) MarshalJSON() ([]byte, error) {
36704	type NoMethod SecurityPoliciesListPreconfiguredExpressionSetsResponse
36705	raw := NoMethod(*s)
36706	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36707}
36708
36709type SecurityPoliciesWafConfig struct {
36710	WafRules *PreconfiguredWafSet `json:"wafRules,omitempty"`
36711
36712	// ForceSendFields is a list of field names (e.g. "WafRules") to
36713	// unconditionally include in API requests. By default, fields with
36714	// empty values are omitted from API requests. However, any non-pointer,
36715	// non-interface field appearing in ForceSendFields will be sent to the
36716	// server regardless of whether the field is empty or not. This may be
36717	// used to include empty fields in Patch requests.
36718	ForceSendFields []string `json:"-"`
36719
36720	// NullFields is a list of field names (e.g. "WafRules") to include in
36721	// API requests with the JSON null value. By default, fields with empty
36722	// values are omitted from API requests. However, any field with an
36723	// empty value appearing in NullFields will be sent to the server as
36724	// null. It is an error if a field in this list has a non-empty value.
36725	// This may be used to include null fields in Patch requests.
36726	NullFields []string `json:"-"`
36727}
36728
36729func (s *SecurityPoliciesWafConfig) MarshalJSON() ([]byte, error) {
36730	type NoMethod SecurityPoliciesWafConfig
36731	raw := NoMethod(*s)
36732	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36733}
36734
36735// SecurityPolicy: Represents a Cloud Armor Security Policy
36736// resource.
36737//
36738// Only external backend services that use load balancers can reference
36739// a Security Policy. For more information, read  Cloud Armor Security
36740// Policy Concepts. (== resource_for v1.securityPolicies ==) (==
36741// resource_for beta.securityPolicies ==)
36742type SecurityPolicy struct {
36743	// Associations: A list of assocations that belong to this policy.
36744	Associations []*SecurityPolicyAssociation `json:"associations,omitempty"`
36745
36746	CloudArmorConfig *SecurityPolicyCloudArmorConfig `json:"cloudArmorConfig,omitempty"`
36747
36748	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
36749	// format.
36750	CreationTimestamp string `json:"creationTimestamp,omitempty"`
36751
36752	// Description: An optional description of this resource. Provide this
36753	// property when you create the resource.
36754	Description string `json:"description,omitempty"`
36755
36756	// Fingerprint: Specifies a fingerprint for this resource, which is
36757	// essentially a hash of the metadata's contents and used for optimistic
36758	// locking. The fingerprint is initially generated by Compute Engine and
36759	// changes after every request to modify or update metadata. You must
36760	// always provide an up-to-date fingerprint hash in order to update or
36761	// change metadata, otherwise the request will fail with error 412
36762	// conditionNotMet.
36763	//
36764	// To see the latest fingerprint, make get() request to the security
36765	// policy.
36766	Fingerprint string `json:"fingerprint,omitempty"`
36767
36768	// Id: [Output Only] The unique identifier for the resource. This
36769	// identifier is defined by the server.
36770	Id uint64 `json:"id,omitempty,string"`
36771
36772	// Kind: [Output only] Type of the resource. Always
36773	// compute#securityPolicyfor security policies
36774	Kind string `json:"kind,omitempty"`
36775
36776	// LabelFingerprint: A fingerprint for the labels being applied to this
36777	// security policy, which is essentially a hash of the labels set used
36778	// for optimistic locking. The fingerprint is initially generated by
36779	// Compute Engine and changes after every request to modify or update
36780	// labels. You must always provide an up-to-date fingerprint hash in
36781	// order to update or change labels.
36782	//
36783	// To see the latest fingerprint, make get() request to the security
36784	// policy.
36785	LabelFingerprint string `json:"labelFingerprint,omitempty"`
36786
36787	// Labels: Labels to apply to this security policy resource. These can
36788	// be later modified by the setLabels method. Each label key/value must
36789	// comply with RFC1035. Label values may be empty.
36790	Labels map[string]string `json:"labels,omitempty"`
36791
36792	// Name: Name of the resource. Provided by the client when the resource
36793	// is created. The name must be 1-63 characters long, and comply with
36794	// RFC1035. Specifically, the name must be 1-63 characters long and
36795	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
36796	// the first character must be a lowercase letter, and all following
36797	// characters must be a dash, lowercase letter, or digit, except the
36798	// last character, which cannot be a dash.
36799	Name string `json:"name,omitempty"`
36800
36801	// RuleTupleCount: [Output Only] Total count of all security policy rule
36802	// tuples. A security policy can not exceed a set number of tuples.
36803	RuleTupleCount int64 `json:"ruleTupleCount,omitempty"`
36804
36805	// Rules: A list of rules that belong to this policy. There must always
36806	// be a default rule (rule with priority 2147483647 and match "*"). If
36807	// no rules are provided when creating a security policy, a default rule
36808	// with action "allow" will be added.
36809	Rules []*SecurityPolicyRule `json:"rules,omitempty"`
36810
36811	// SelfLink: [Output Only] Server-defined URL for the resource.
36812	SelfLink string `json:"selfLink,omitempty"`
36813
36814	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
36815	// with the resource id.
36816	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
36817
36818	// Type: The type indicates the intended use of the security policy.
36819	// CLOUD_ARMOR policies apply to backend services. FIREWALL policies
36820	// apply to organizations.
36821	//
36822	// Possible values:
36823	//   "CLOUD_ARMOR"
36824	//   "FIREWALL"
36825	Type string `json:"type,omitempty"`
36826
36827	// ServerResponse contains the HTTP response code and headers from the
36828	// server.
36829	googleapi.ServerResponse `json:"-"`
36830
36831	// ForceSendFields is a list of field names (e.g. "Associations") to
36832	// unconditionally include in API requests. By default, fields with
36833	// empty values are omitted from API requests. However, any non-pointer,
36834	// non-interface field appearing in ForceSendFields will be sent to the
36835	// server regardless of whether the field is empty or not. This may be
36836	// used to include empty fields in Patch requests.
36837	ForceSendFields []string `json:"-"`
36838
36839	// NullFields is a list of field names (e.g. "Associations") to include
36840	// in API requests with the JSON null value. By default, fields with
36841	// empty values are omitted from API requests. However, any field with
36842	// an empty value appearing in NullFields will be sent to the server as
36843	// null. It is an error if a field in this list has a non-empty value.
36844	// This may be used to include null fields in Patch requests.
36845	NullFields []string `json:"-"`
36846}
36847
36848func (s *SecurityPolicy) MarshalJSON() ([]byte, error) {
36849	type NoMethod SecurityPolicy
36850	raw := NoMethod(*s)
36851	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36852}
36853
36854type SecurityPolicyAssociation struct {
36855	// AttachmentId: The resource that the security policy is attached to.
36856	AttachmentId string `json:"attachmentId,omitempty"`
36857
36858	// Name: The name for an association.
36859	Name string `json:"name,omitempty"`
36860
36861	// SecurityPolicyId: [Output Only] The security policy ID of the
36862	// association.
36863	SecurityPolicyId string `json:"securityPolicyId,omitempty"`
36864
36865	// ServerResponse contains the HTTP response code and headers from the
36866	// server.
36867	googleapi.ServerResponse `json:"-"`
36868
36869	// ForceSendFields is a list of field names (e.g. "AttachmentId") to
36870	// unconditionally include in API requests. By default, fields with
36871	// empty values are omitted from API requests. However, any non-pointer,
36872	// non-interface field appearing in ForceSendFields will be sent to the
36873	// server regardless of whether the field is empty or not. This may be
36874	// used to include empty fields in Patch requests.
36875	ForceSendFields []string `json:"-"`
36876
36877	// NullFields is a list of field names (e.g. "AttachmentId") to include
36878	// in API requests with the JSON null value. By default, fields with
36879	// empty values are omitted from API requests. However, any field with
36880	// an empty value appearing in NullFields will be sent to the server as
36881	// null. It is an error if a field in this list has a non-empty value.
36882	// This may be used to include null fields in Patch requests.
36883	NullFields []string `json:"-"`
36884}
36885
36886func (s *SecurityPolicyAssociation) MarshalJSON() ([]byte, error) {
36887	type NoMethod SecurityPolicyAssociation
36888	raw := NoMethod(*s)
36889	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36890}
36891
36892// SecurityPolicyCloudArmorConfig: Configuration options for Cloud
36893// Armor.
36894type SecurityPolicyCloudArmorConfig struct {
36895	// EnableMl: If set to true, enables Cloud Armor Machine Learning.
36896	EnableMl bool `json:"enableMl,omitempty"`
36897
36898	// ForceSendFields is a list of field names (e.g. "EnableMl") to
36899	// unconditionally include in API requests. By default, fields with
36900	// empty values are omitted from API requests. However, any non-pointer,
36901	// non-interface field appearing in ForceSendFields will be sent to the
36902	// server regardless of whether the field is empty or not. This may be
36903	// used to include empty fields in Patch requests.
36904	ForceSendFields []string `json:"-"`
36905
36906	// NullFields is a list of field names (e.g. "EnableMl") to include in
36907	// API requests with the JSON null value. By default, fields with empty
36908	// values are omitted from API requests. However, any field with an
36909	// empty value appearing in NullFields will be sent to the server as
36910	// null. It is an error if a field in this list has a non-empty value.
36911	// This may be used to include null fields in Patch requests.
36912	NullFields []string `json:"-"`
36913}
36914
36915func (s *SecurityPolicyCloudArmorConfig) MarshalJSON() ([]byte, error) {
36916	type NoMethod SecurityPolicyCloudArmorConfig
36917	raw := NoMethod(*s)
36918	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36919}
36920
36921type SecurityPolicyList struct {
36922	// Id: [Output Only] Unique identifier for the resource; defined by the
36923	// server.
36924	Id string `json:"id,omitempty"`
36925
36926	// Items: A list of SecurityPolicy resources.
36927	Items []*SecurityPolicy `json:"items,omitempty"`
36928
36929	// Kind: [Output Only] Type of resource. Always
36930	// compute#securityPolicyList for listsof securityPolicies
36931	Kind string `json:"kind,omitempty"`
36932
36933	// NextPageToken: [Output Only] This token allows you to get the next
36934	// page of results for list requests. If the number of results is larger
36935	// than maxResults, use the nextPageToken as a value for the query
36936	// parameter pageToken in the next list request. Subsequent list
36937	// requests will have their own nextPageToken to continue paging through
36938	// the results.
36939	NextPageToken string `json:"nextPageToken,omitempty"`
36940
36941	// Warning: [Output Only] Informational warning message.
36942	Warning *SecurityPolicyListWarning `json:"warning,omitempty"`
36943
36944	// ServerResponse contains the HTTP response code and headers from the
36945	// server.
36946	googleapi.ServerResponse `json:"-"`
36947
36948	// ForceSendFields is a list of field names (e.g. "Id") to
36949	// unconditionally include in API requests. By default, fields with
36950	// empty values are omitted from API requests. However, any non-pointer,
36951	// non-interface field appearing in ForceSendFields will be sent to the
36952	// server regardless of whether the field is empty or not. This may be
36953	// used to include empty fields in Patch requests.
36954	ForceSendFields []string `json:"-"`
36955
36956	// NullFields is a list of field names (e.g. "Id") to include in API
36957	// requests with the JSON null value. By default, fields with empty
36958	// values are omitted from API requests. However, any field with an
36959	// empty value appearing in NullFields will be sent to the server as
36960	// null. It is an error if a field in this list has a non-empty value.
36961	// This may be used to include null fields in Patch requests.
36962	NullFields []string `json:"-"`
36963}
36964
36965func (s *SecurityPolicyList) MarshalJSON() ([]byte, error) {
36966	type NoMethod SecurityPolicyList
36967	raw := NoMethod(*s)
36968	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36969}
36970
36971// SecurityPolicyListWarning: [Output Only] Informational warning
36972// message.
36973type SecurityPolicyListWarning struct {
36974	// Code: [Output Only] A warning code, if applicable. For example,
36975	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
36976	// the response.
36977	//
36978	// Possible values:
36979	//   "CLEANUP_FAILED"
36980	//   "DEPRECATED_RESOURCE_USED"
36981	//   "DEPRECATED_TYPE_USED"
36982	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
36983	//   "EXPERIMENTAL_TYPE_USED"
36984	//   "EXTERNAL_API_WARNING"
36985	//   "FIELD_VALUE_OVERRIDEN"
36986	//   "INJECTED_KERNELS_DEPRECATED"
36987	//   "MISSING_TYPE_DEPENDENCY"
36988	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
36989	//   "NEXT_HOP_CANNOT_IP_FORWARD"
36990	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
36991	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
36992	//   "NEXT_HOP_NOT_RUNNING"
36993	//   "NOT_CRITICAL_ERROR"
36994	//   "NO_RESULTS_ON_PAGE"
36995	//   "REQUIRED_TOS_AGREEMENT"
36996	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
36997	//   "RESOURCE_NOT_DELETED"
36998	//   "SCHEMA_VALIDATION_IGNORED"
36999	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
37000	//   "UNDECLARED_PROPERTIES"
37001	//   "UNREACHABLE"
37002	Code string `json:"code,omitempty"`
37003
37004	// Data: [Output Only] Metadata about this warning in key: value format.
37005	// For example:
37006	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
37007	Data []*SecurityPolicyListWarningData `json:"data,omitempty"`
37008
37009	// Message: [Output Only] A human-readable description of the warning
37010	// code.
37011	Message string `json:"message,omitempty"`
37012
37013	// ForceSendFields is a list of field names (e.g. "Code") to
37014	// unconditionally include in API requests. By default, fields with
37015	// empty values are omitted from API requests. However, any non-pointer,
37016	// non-interface field appearing in ForceSendFields will be sent to the
37017	// server regardless of whether the field is empty or not. This may be
37018	// used to include empty fields in Patch requests.
37019	ForceSendFields []string `json:"-"`
37020
37021	// NullFields is a list of field names (e.g. "Code") to include in API
37022	// requests with the JSON null value. By default, fields with empty
37023	// values are omitted from API requests. However, any field with an
37024	// empty value appearing in NullFields will be sent to the server as
37025	// null. It is an error if a field in this list has a non-empty value.
37026	// This may be used to include null fields in Patch requests.
37027	NullFields []string `json:"-"`
37028}
37029
37030func (s *SecurityPolicyListWarning) MarshalJSON() ([]byte, error) {
37031	type NoMethod SecurityPolicyListWarning
37032	raw := NoMethod(*s)
37033	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37034}
37035
37036type SecurityPolicyListWarningData struct {
37037	// Key: [Output Only] A key that provides more detail on the warning
37038	// being returned. For example, for warnings where there are no results
37039	// in a list request for a particular zone, this key might be scope and
37040	// the key value might be the zone name. Other examples might be a key
37041	// indicating a deprecated resource and a suggested replacement, or a
37042	// warning about invalid network settings (for example, if an instance
37043	// attempts to perform IP forwarding but is not enabled for IP
37044	// forwarding).
37045	Key string `json:"key,omitempty"`
37046
37047	// Value: [Output Only] A warning data value corresponding to the key.
37048	Value string `json:"value,omitempty"`
37049
37050	// ForceSendFields is a list of field names (e.g. "Key") to
37051	// unconditionally include in API requests. By default, fields with
37052	// empty values are omitted from API requests. However, any non-pointer,
37053	// non-interface field appearing in ForceSendFields will be sent to the
37054	// server regardless of whether the field is empty or not. This may be
37055	// used to include empty fields in Patch requests.
37056	ForceSendFields []string `json:"-"`
37057
37058	// NullFields is a list of field names (e.g. "Key") to include in API
37059	// requests with the JSON null value. By default, fields with empty
37060	// values are omitted from API requests. However, any field with an
37061	// empty value appearing in NullFields will be sent to the server as
37062	// null. It is an error if a field in this list has a non-empty value.
37063	// This may be used to include null fields in Patch requests.
37064	NullFields []string `json:"-"`
37065}
37066
37067func (s *SecurityPolicyListWarningData) MarshalJSON() ([]byte, error) {
37068	type NoMethod SecurityPolicyListWarningData
37069	raw := NoMethod(*s)
37070	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37071}
37072
37073type SecurityPolicyReference struct {
37074	SecurityPolicy string `json:"securityPolicy,omitempty"`
37075
37076	// ForceSendFields is a list of field names (e.g. "SecurityPolicy") to
37077	// unconditionally include in API requests. By default, fields with
37078	// empty values are omitted from API requests. However, any non-pointer,
37079	// non-interface field appearing in ForceSendFields will be sent to the
37080	// server regardless of whether the field is empty or not. This may be
37081	// used to include empty fields in Patch requests.
37082	ForceSendFields []string `json:"-"`
37083
37084	// NullFields is a list of field names (e.g. "SecurityPolicy") to
37085	// include in API requests with the JSON null value. By default, fields
37086	// with empty values are omitted from API requests. However, any field
37087	// with an empty value appearing in NullFields will be sent to the
37088	// server as null. It is an error if a field in this list has a
37089	// non-empty value. This may be used to include null fields in Patch
37090	// requests.
37091	NullFields []string `json:"-"`
37092}
37093
37094func (s *SecurityPolicyReference) MarshalJSON() ([]byte, error) {
37095	type NoMethod SecurityPolicyReference
37096	raw := NoMethod(*s)
37097	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37098}
37099
37100// SecurityPolicyRule: Represents a rule that describes one or more
37101// match conditions along with the action to be taken when traffic
37102// matches this condition (allow or deny).
37103type SecurityPolicyRule struct {
37104	// Action: The Action to preform when the client connection triggers the
37105	// rule. Can currently be either "allow" or "deny()" where valid values
37106	// for status are 403, 404, and 502.
37107	Action string `json:"action,omitempty"`
37108
37109	// Description: An optional description of this resource. Provide this
37110	// property when you create the resource.
37111	Description string `json:"description,omitempty"`
37112
37113	// Direction: The direction in which this rule applies. This field may
37114	// only be specified when versioned_expr is set to FIREWALL.
37115	//
37116	// Possible values:
37117	//   "EGRESS"
37118	//   "INGRESS"
37119	Direction string `json:"direction,omitempty"`
37120
37121	// EnableLogging: Denotes whether to enable logging for a particular
37122	// rule. If logging is enabled, logs will be exported to the configured
37123	// export destination in Stackdriver. Logs may be exported to BigQuery
37124	// or Pub/Sub. Note: you cannot enable logging on "goto_next"
37125	// rules.
37126	//
37127	// This field may only be specified when the versioned_expr is set to
37128	// FIREWALL.
37129	EnableLogging bool `json:"enableLogging,omitempty"`
37130
37131	// Kind: [Output only] Type of the resource. Always
37132	// compute#securityPolicyRule for security policy rules
37133	Kind string `json:"kind,omitempty"`
37134
37135	// Match: A match condition that incoming traffic is evaluated against.
37136	// If it evaluates to true, the corresponding ?action? is enforced.
37137	Match *SecurityPolicyRuleMatcher `json:"match,omitempty"`
37138
37139	// Preview: If set to true, the specified action is not enforced.
37140	Preview bool `json:"preview,omitempty"`
37141
37142	// Priority: An integer indicating the priority of a rule in the list.
37143	// The priority must be a positive value between 0 and 2147483647. Rules
37144	// are evaluated from highest to lowest priority where 0 is the highest
37145	// priority and 2147483647 is the lowest prority.
37146	Priority int64 `json:"priority,omitempty"`
37147
37148	// RateLimitOptions: Must be specified if the action is
37149	// "rate_based_blacklist" or "throttle". Cannot be specified for any
37150	// other actions.
37151	RateLimitOptions *SecurityPolicyRuleRateLimitOptions `json:"rateLimitOptions,omitempty"`
37152
37153	// RuleTupleCount: [Output Only] Calculation of the complexity of a
37154	// single firewall security policy rule.
37155	RuleTupleCount int64 `json:"ruleTupleCount,omitempty"`
37156
37157	// TargetResources: A list of network resource URLs to which this rule
37158	// applies. This field allows you to control which network?s VMs get
37159	// this rule. If this field is left blank, all VMs within the
37160	// organization will receive the rule.
37161	//
37162	// This field may only be specified when versioned_expr is set to
37163	// FIREWALL.
37164	TargetResources []string `json:"targetResources,omitempty"`
37165
37166	// ServerResponse contains the HTTP response code and headers from the
37167	// server.
37168	googleapi.ServerResponse `json:"-"`
37169
37170	// ForceSendFields is a list of field names (e.g. "Action") to
37171	// unconditionally include in API requests. By default, fields with
37172	// empty values are omitted from API requests. However, any non-pointer,
37173	// non-interface field appearing in ForceSendFields will be sent to the
37174	// server regardless of whether the field is empty or not. This may be
37175	// used to include empty fields in Patch requests.
37176	ForceSendFields []string `json:"-"`
37177
37178	// NullFields is a list of field names (e.g. "Action") to include in API
37179	// requests with the JSON null value. By default, fields with empty
37180	// values are omitted from API requests. However, any field with an
37181	// empty value appearing in NullFields will be sent to the server as
37182	// null. It is an error if a field in this list has a non-empty value.
37183	// This may be used to include null fields in Patch requests.
37184	NullFields []string `json:"-"`
37185}
37186
37187func (s *SecurityPolicyRule) MarshalJSON() ([]byte, error) {
37188	type NoMethod SecurityPolicyRule
37189	raw := NoMethod(*s)
37190	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37191}
37192
37193// SecurityPolicyRuleMatcher: Represents a match condition that incoming
37194// traffic is evaluated against. Exactly one field must be specified.
37195type SecurityPolicyRuleMatcher struct {
37196	// Config: The configuration options available when specifying
37197	// versioned_expr. This field must be specified if versioned_expr is
37198	// specified and cannot be specified if versioned_expr is not specified.
37199	Config *SecurityPolicyRuleMatcherConfig `json:"config,omitempty"`
37200
37201	// Expr: User defined CEVAL expression. A CEVAL expression is used to
37202	// specify match criteria such as origin.ip, source.region_code and
37203	// contents in the request header.
37204	Expr *Expr `json:"expr,omitempty"`
37205
37206	// VersionedExpr: Preconfigured versioned expression. If this field is
37207	// specified, config must also be specified. Available preconfigured
37208	// expressions along with their requirements are: SRC_IPS_V1 - must
37209	// specify the corresponding src_ip_range field in config.
37210	//
37211	// Possible values:
37212	//   "FIREWALL"
37213	//   "SRC_IPS_V1"
37214	VersionedExpr string `json:"versionedExpr,omitempty"`
37215
37216	// ForceSendFields is a list of field names (e.g. "Config") to
37217	// unconditionally include in API requests. By default, fields with
37218	// empty values are omitted from API requests. However, any non-pointer,
37219	// non-interface field appearing in ForceSendFields will be sent to the
37220	// server regardless of whether the field is empty or not. This may be
37221	// used to include empty fields in Patch requests.
37222	ForceSendFields []string `json:"-"`
37223
37224	// NullFields is a list of field names (e.g. "Config") to include in API
37225	// requests with the JSON null value. By default, fields with empty
37226	// values are omitted from API requests. However, any field with an
37227	// empty value appearing in NullFields will be sent to the server as
37228	// null. It is an error if a field in this list has a non-empty value.
37229	// This may be used to include null fields in Patch requests.
37230	NullFields []string `json:"-"`
37231}
37232
37233func (s *SecurityPolicyRuleMatcher) MarshalJSON() ([]byte, error) {
37234	type NoMethod SecurityPolicyRuleMatcher
37235	raw := NoMethod(*s)
37236	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37237}
37238
37239type SecurityPolicyRuleMatcherConfig struct {
37240	// DestIpRanges: CIDR IP address range.
37241	//
37242	// This field may only be specified when versioned_expr is set to
37243	// FIREWALL.
37244	DestIpRanges []string `json:"destIpRanges,omitempty"`
37245
37246	// DestPorts: Pairs of IP protocols and ports that the rule should
37247	// match.
37248	//
37249	// This field may only be specified when versioned_expr is set to
37250	// FIREWALL.
37251	DestPorts []*SecurityPolicyRuleMatcherConfigDestinationPort `json:"destPorts,omitempty"`
37252
37253	// SrcIpRanges: CIDR IP address range.
37254	SrcIpRanges []string `json:"srcIpRanges,omitempty"`
37255
37256	// ForceSendFields is a list of field names (e.g. "DestIpRanges") to
37257	// unconditionally include in API requests. By default, fields with
37258	// empty values are omitted from API requests. However, any non-pointer,
37259	// non-interface field appearing in ForceSendFields will be sent to the
37260	// server regardless of whether the field is empty or not. This may be
37261	// used to include empty fields in Patch requests.
37262	ForceSendFields []string `json:"-"`
37263
37264	// NullFields is a list of field names (e.g. "DestIpRanges") to include
37265	// in API requests with the JSON null value. By default, fields with
37266	// empty values are omitted from API requests. However, any field with
37267	// an empty value appearing in NullFields will be sent to the server as
37268	// null. It is an error if a field in this list has a non-empty value.
37269	// This may be used to include null fields in Patch requests.
37270	NullFields []string `json:"-"`
37271}
37272
37273func (s *SecurityPolicyRuleMatcherConfig) MarshalJSON() ([]byte, error) {
37274	type NoMethod SecurityPolicyRuleMatcherConfig
37275	raw := NoMethod(*s)
37276	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37277}
37278
37279type SecurityPolicyRuleMatcherConfigDestinationPort struct {
37280	// IpProtocol: The IP protocol to which this rule applies. The protocol
37281	// type is required when creating a firewall rule. This value can either
37282	// be one of the following well known protocol strings (tcp, udp, icmp,
37283	// esp, ah, ipip, sctp), or the IP protocol number.
37284	IpProtocol string `json:"ipProtocol,omitempty"`
37285
37286	// Ports: An optional list of ports to which this rule applies. This
37287	// field is only applicable for UDP or TCP protocol. Each entry must be
37288	// either an integer or a range. If not specified, this rule applies to
37289	// connections through any port.
37290	//
37291	// Example inputs include: ["22"], ["80","443"], and
37292	// ["12345-12349"].
37293	//
37294	// This field may only be specified when versioned_expr is set to
37295	// FIREWALL.
37296	Ports []string `json:"ports,omitempty"`
37297
37298	// ForceSendFields is a list of field names (e.g. "IpProtocol") to
37299	// unconditionally include in API requests. By default, fields with
37300	// empty values are omitted from API requests. However, any non-pointer,
37301	// non-interface field appearing in ForceSendFields will be sent to the
37302	// server regardless of whether the field is empty or not. This may be
37303	// used to include empty fields in Patch requests.
37304	ForceSendFields []string `json:"-"`
37305
37306	// NullFields is a list of field names (e.g. "IpProtocol") to include in
37307	// API requests with the JSON null value. By default, fields with empty
37308	// values are omitted from API requests. However, any field with an
37309	// empty value appearing in NullFields will be sent to the server as
37310	// null. It is an error if a field in this list has a non-empty value.
37311	// This may be used to include null fields in Patch requests.
37312	NullFields []string `json:"-"`
37313}
37314
37315func (s *SecurityPolicyRuleMatcherConfigDestinationPort) MarshalJSON() ([]byte, error) {
37316	type NoMethod SecurityPolicyRuleMatcherConfigDestinationPort
37317	raw := NoMethod(*s)
37318	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37319}
37320
37321type SecurityPolicyRuleRateLimitOptions struct {
37322	// BlockDuration: Can only be specifed if the action for the rule is
37323	// "rate_based_blacklist" If specified, determines the time (in seconds)
37324	// the traffic will continue to be blocked by the rate limit after the
37325	// rate falls below the threshold. The default value is 0 seconds.
37326	BlockDuration int64 `json:"blockDuration,omitempty"`
37327
37328	// ConformAction: Action to take when requests are under the given
37329	// threshold. When requests are throttled, this is also the action for
37330	// all requests which are not dropped. Valid options are "allow",
37331	// "fairshare", and "drop_overload".
37332	ConformAction string `json:"conformAction,omitempty"`
37333
37334	// EnforceOnKey: Determines the key to enforce the threshold_rps limit
37335	// on. If key is "IP", each IP has this limit enforced separately,
37336	// whereas "ALL_IPs" means a single limit is applied to all requests
37337	// matching this rule.
37338	//
37339	// Possible values:
37340	//   "ALL_IPS"
37341	//   "IP"
37342	EnforceOnKey string `json:"enforceOnKey,omitempty"`
37343
37344	// ExceedAction: When a request is denied, returns the HTTP response
37345	// code specified. Valid options are "deny()" where valid values for
37346	// status are 403, 404, 429, and 502.
37347	ExceedAction string `json:"exceedAction,omitempty"`
37348
37349	// ThresholdRps: Rate in requests per second at which to begin
37350	// ratelimiting.
37351	ThresholdRps int64 `json:"thresholdRps,omitempty"`
37352
37353	// ForceSendFields is a list of field names (e.g. "BlockDuration") to
37354	// unconditionally include in API requests. By default, fields with
37355	// empty values are omitted from API requests. However, any non-pointer,
37356	// non-interface field appearing in ForceSendFields will be sent to the
37357	// server regardless of whether the field is empty or not. This may be
37358	// used to include empty fields in Patch requests.
37359	ForceSendFields []string `json:"-"`
37360
37361	// NullFields is a list of field names (e.g. "BlockDuration") to include
37362	// in API requests with the JSON null value. By default, fields with
37363	// empty values are omitted from API requests. However, any field with
37364	// an empty value appearing in NullFields will be sent to the server as
37365	// null. It is an error if a field in this list has a non-empty value.
37366	// This may be used to include null fields in Patch requests.
37367	NullFields []string `json:"-"`
37368}
37369
37370func (s *SecurityPolicyRuleRateLimitOptions) MarshalJSON() ([]byte, error) {
37371	type NoMethod SecurityPolicyRuleRateLimitOptions
37372	raw := NoMethod(*s)
37373	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37374}
37375
37376// SecuritySettings: The authentication and authorization settings for a
37377// BackendService.
37378type SecuritySettings struct {
37379	// AuthenticationPolicy: Authentication policy defines what
37380	// authentication methods can be accepted on backends, and if
37381	// authenticated, which method/certificate will set the request
37382	// principal.
37383	AuthenticationPolicy *AuthenticationPolicy `json:"authenticationPolicy,omitempty"`
37384
37385	// AuthorizationConfig: Authorization config defines the Role Based
37386	// Access Control (RBAC) config.
37387	AuthorizationConfig *AuthorizationConfig `json:"authorizationConfig,omitempty"`
37388
37389	// ClientTlsSettings: TLS Settings for the backend service.
37390	ClientTlsSettings *ClientTlsSettings `json:"clientTlsSettings,omitempty"`
37391
37392	// ForceSendFields is a list of field names (e.g.
37393	// "AuthenticationPolicy") to unconditionally include in API requests.
37394	// By default, fields with empty values are omitted from API requests.
37395	// However, any non-pointer, non-interface field appearing in
37396	// ForceSendFields will be sent to the server regardless of whether the
37397	// field is empty or not. This may be used to include empty fields in
37398	// Patch requests.
37399	ForceSendFields []string `json:"-"`
37400
37401	// NullFields is a list of field names (e.g. "AuthenticationPolicy") to
37402	// include in API requests with the JSON null value. By default, fields
37403	// with empty values are omitted from API requests. However, any field
37404	// with an empty value appearing in NullFields will be sent to the
37405	// server as null. It is an error if a field in this list has a
37406	// non-empty value. This may be used to include null fields in Patch
37407	// requests.
37408	NullFields []string `json:"-"`
37409}
37410
37411func (s *SecuritySettings) MarshalJSON() ([]byte, error) {
37412	type NoMethod SecuritySettings
37413	raw := NoMethod(*s)
37414	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37415}
37416
37417// SerialPortOutput: An instance's serial console output.
37418type SerialPortOutput struct {
37419	// Contents: [Output Only] The contents of the console output.
37420	Contents string `json:"contents,omitempty"`
37421
37422	// Kind: [Output Only] Type of the resource. Always
37423	// compute#serialPortOutput for serial port output.
37424	Kind string `json:"kind,omitempty"`
37425
37426	// Next: [Output Only] The position of the next byte of content from the
37427	// serial console output. Use this value in the next request as the
37428	// start parameter.
37429	Next int64 `json:"next,omitempty,string"`
37430
37431	// SelfLink: [Output Only] Server-defined URL for this resource.
37432	SelfLink string `json:"selfLink,omitempty"`
37433
37434	// Start: The starting byte position of the output that was returned.
37435	// This should match the start parameter sent with the request. If the
37436	// serial console output exceeds the size of the buffer, older output
37437	// will be overwritten by newer content and the start values will be
37438	// mismatched.
37439	Start int64 `json:"start,omitempty,string"`
37440
37441	// ServerResponse contains the HTTP response code and headers from the
37442	// server.
37443	googleapi.ServerResponse `json:"-"`
37444
37445	// ForceSendFields is a list of field names (e.g. "Contents") to
37446	// unconditionally include in API requests. By default, fields with
37447	// empty values are omitted from API requests. However, any non-pointer,
37448	// non-interface field appearing in ForceSendFields will be sent to the
37449	// server regardless of whether the field is empty or not. This may be
37450	// used to include empty fields in Patch requests.
37451	ForceSendFields []string `json:"-"`
37452
37453	// NullFields is a list of field names (e.g. "Contents") to include in
37454	// API requests with the JSON null value. By default, fields with empty
37455	// values are omitted from API requests. However, any field with an
37456	// empty value appearing in NullFields will be sent to the server as
37457	// null. It is an error if a field in this list has a non-empty value.
37458	// This may be used to include null fields in Patch requests.
37459	NullFields []string `json:"-"`
37460}
37461
37462func (s *SerialPortOutput) MarshalJSON() ([]byte, error) {
37463	type NoMethod SerialPortOutput
37464	raw := NoMethod(*s)
37465	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37466}
37467
37468type ServerBinding struct {
37469	// Possible values:
37470	//   "RESTART_NODE_ON_ANY_SERVER"
37471	//   "RESTART_NODE_ON_MINIMAL_SERVERS"
37472	//   "SERVER_BINDING_TYPE_UNSPECIFIED"
37473	Type string `json:"type,omitempty"`
37474
37475	// ForceSendFields is a list of field names (e.g. "Type") to
37476	// unconditionally include in API requests. By default, fields with
37477	// empty values are omitted from API requests. However, any non-pointer,
37478	// non-interface field appearing in ForceSendFields will be sent to the
37479	// server regardless of whether the field is empty or not. This may be
37480	// used to include empty fields in Patch requests.
37481	ForceSendFields []string `json:"-"`
37482
37483	// NullFields is a list of field names (e.g. "Type") to include in API
37484	// requests with the JSON null value. By default, fields with empty
37485	// values are omitted from API requests. However, any field with an
37486	// empty value appearing in NullFields will be sent to the server as
37487	// null. It is an error if a field in this list has a non-empty value.
37488	// This may be used to include null fields in Patch requests.
37489	NullFields []string `json:"-"`
37490}
37491
37492func (s *ServerBinding) MarshalJSON() ([]byte, error) {
37493	type NoMethod ServerBinding
37494	raw := NoMethod(*s)
37495	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37496}
37497
37498// ServerTlsSettings: The TLS settings for the server.
37499type ServerTlsSettings struct {
37500	// ProxyTlsContext: Configures the mechanism to obtain security
37501	// certificates and identity information.
37502	ProxyTlsContext *TlsContext `json:"proxyTlsContext,omitempty"`
37503
37504	// SubjectAltNames: A list of alternate names to verify the subject
37505	// identity in the certificate presented by the client.
37506	SubjectAltNames []string `json:"subjectAltNames,omitempty"`
37507
37508	// TlsMode: Indicates whether connections should be secured using TLS.
37509	// The value of this field determines how TLS is enforced. This field
37510	// can be set to one of the following:
37511	// - SIMPLE Secure connections with standard TLS semantics.
37512	// - MUTUAL Secure connections to the backends using mutual TLS by
37513	// presenting client certificates for authentication.
37514	//
37515	// Possible values:
37516	//   "INVALID"
37517	//   "MUTUAL"
37518	//   "SIMPLE"
37519	TlsMode string `json:"tlsMode,omitempty"`
37520
37521	// ForceSendFields is a list of field names (e.g. "ProxyTlsContext") to
37522	// unconditionally include in API requests. By default, fields with
37523	// empty values are omitted from API requests. However, any non-pointer,
37524	// non-interface field appearing in ForceSendFields will be sent to the
37525	// server regardless of whether the field is empty or not. This may be
37526	// used to include empty fields in Patch requests.
37527	ForceSendFields []string `json:"-"`
37528
37529	// NullFields is a list of field names (e.g. "ProxyTlsContext") to
37530	// include in API requests with the JSON null value. By default, fields
37531	// with empty values are omitted from API requests. However, any field
37532	// with an empty value appearing in NullFields will be sent to the
37533	// server as null. It is an error if a field in this list has a
37534	// non-empty value. This may be used to include null fields in Patch
37535	// requests.
37536	NullFields []string `json:"-"`
37537}
37538
37539func (s *ServerTlsSettings) MarshalJSON() ([]byte, error) {
37540	type NoMethod ServerTlsSettings
37541	raw := NoMethod(*s)
37542	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37543}
37544
37545// ServiceAccount: A service account.
37546type ServiceAccount struct {
37547	// Email: Email address of the service account.
37548	Email string `json:"email,omitempty"`
37549
37550	// Scopes: The list of scopes to be made available for this service
37551	// account.
37552	Scopes []string `json:"scopes,omitempty"`
37553
37554	// ForceSendFields is a list of field names (e.g. "Email") to
37555	// unconditionally include in API requests. By default, fields with
37556	// empty values are omitted from API requests. However, any non-pointer,
37557	// non-interface field appearing in ForceSendFields will be sent to the
37558	// server regardless of whether the field is empty or not. This may be
37559	// used to include empty fields in Patch requests.
37560	ForceSendFields []string `json:"-"`
37561
37562	// NullFields is a list of field names (e.g. "Email") to include in API
37563	// requests with the JSON null value. By default, fields with empty
37564	// values are omitted from API requests. However, any field with an
37565	// empty value appearing in NullFields will be sent to the server as
37566	// null. It is an error if a field in this list has a non-empty value.
37567	// This may be used to include null fields in Patch requests.
37568	NullFields []string `json:"-"`
37569}
37570
37571func (s *ServiceAccount) MarshalJSON() ([]byte, error) {
37572	type NoMethod ServiceAccount
37573	raw := NoMethod(*s)
37574	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37575}
37576
37577// ShieldedInstanceConfig: A set of Shielded Instance options.
37578type ShieldedInstanceConfig struct {
37579	// EnableIntegrityMonitoring: Defines whether the instance has integrity
37580	// monitoring enabled.
37581	EnableIntegrityMonitoring bool `json:"enableIntegrityMonitoring,omitempty"`
37582
37583	// EnableSecureBoot: Defines whether the instance has Secure Boot
37584	// enabled.
37585	EnableSecureBoot bool `json:"enableSecureBoot,omitempty"`
37586
37587	// EnableVtpm: Defines whether the instance has the vTPM enabled.
37588	EnableVtpm bool `json:"enableVtpm,omitempty"`
37589
37590	// ForceSendFields is a list of field names (e.g.
37591	// "EnableIntegrityMonitoring") to unconditionally include in API
37592	// requests. By default, fields with empty values are omitted from API
37593	// requests. However, any non-pointer, non-interface field appearing in
37594	// ForceSendFields will be sent to the server regardless of whether the
37595	// field is empty or not. This may be used to include empty fields in
37596	// Patch requests.
37597	ForceSendFields []string `json:"-"`
37598
37599	// NullFields is a list of field names (e.g.
37600	// "EnableIntegrityMonitoring") to include in API requests with the JSON
37601	// null value. By default, fields with empty values are omitted from API
37602	// requests. However, any field with an empty value appearing in
37603	// NullFields will be sent to the server as null. It is an error if a
37604	// field in this list has a non-empty value. This may be used to include
37605	// null fields in Patch requests.
37606	NullFields []string `json:"-"`
37607}
37608
37609func (s *ShieldedInstanceConfig) MarshalJSON() ([]byte, error) {
37610	type NoMethod ShieldedInstanceConfig
37611	raw := NoMethod(*s)
37612	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37613}
37614
37615// ShieldedInstanceIdentity: A shielded Instance identity entry.
37616type ShieldedInstanceIdentity struct {
37617	// EncryptionKey: An Endorsement Key (EK) made by the RSA 2048 algorithm
37618	// issued to the Shielded Instance's vTPM.
37619	EncryptionKey *ShieldedInstanceIdentityEntry `json:"encryptionKey,omitempty"`
37620
37621	// Kind: [Output Only] Type of the resource. Always
37622	// compute#shieldedInstanceIdentity for shielded Instance identity
37623	// entry.
37624	Kind string `json:"kind,omitempty"`
37625
37626	// SigningKey: An Attestation Key (AK) made by the RSA 2048 algorithm
37627	// issued to the Shielded Instance's vTPM.
37628	SigningKey *ShieldedInstanceIdentityEntry `json:"signingKey,omitempty"`
37629
37630	// ServerResponse contains the HTTP response code and headers from the
37631	// server.
37632	googleapi.ServerResponse `json:"-"`
37633
37634	// ForceSendFields is a list of field names (e.g. "EncryptionKey") to
37635	// unconditionally include in API requests. By default, fields with
37636	// empty values are omitted from API requests. However, any non-pointer,
37637	// non-interface field appearing in ForceSendFields will be sent to the
37638	// server regardless of whether the field is empty or not. This may be
37639	// used to include empty fields in Patch requests.
37640	ForceSendFields []string `json:"-"`
37641
37642	// NullFields is a list of field names (e.g. "EncryptionKey") to include
37643	// in API requests with the JSON null value. By default, fields with
37644	// empty values are omitted from API requests. However, any field with
37645	// an empty value appearing in NullFields will be sent to the server as
37646	// null. It is an error if a field in this list has a non-empty value.
37647	// This may be used to include null fields in Patch requests.
37648	NullFields []string `json:"-"`
37649}
37650
37651func (s *ShieldedInstanceIdentity) MarshalJSON() ([]byte, error) {
37652	type NoMethod ShieldedInstanceIdentity
37653	raw := NoMethod(*s)
37654	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37655}
37656
37657// ShieldedInstanceIdentityEntry: A Shielded Instance Identity Entry.
37658type ShieldedInstanceIdentityEntry struct {
37659	// EkCert: A PEM-encoded X.509 certificate. This field can be empty.
37660	EkCert string `json:"ekCert,omitempty"`
37661
37662	// EkPub: A PEM-encoded public key.
37663	EkPub string `json:"ekPub,omitempty"`
37664
37665	// ForceSendFields is a list of field names (e.g. "EkCert") to
37666	// unconditionally include in API requests. By default, fields with
37667	// empty values are omitted from API requests. However, any non-pointer,
37668	// non-interface field appearing in ForceSendFields will be sent to the
37669	// server regardless of whether the field is empty or not. This may be
37670	// used to include empty fields in Patch requests.
37671	ForceSendFields []string `json:"-"`
37672
37673	// NullFields is a list of field names (e.g. "EkCert") to include in API
37674	// requests with the JSON null value. By default, fields with empty
37675	// values are omitted from API requests. However, any field with an
37676	// empty value appearing in NullFields will be sent to the server as
37677	// null. It is an error if a field in this list has a non-empty value.
37678	// This may be used to include null fields in Patch requests.
37679	NullFields []string `json:"-"`
37680}
37681
37682func (s *ShieldedInstanceIdentityEntry) MarshalJSON() ([]byte, error) {
37683	type NoMethod ShieldedInstanceIdentityEntry
37684	raw := NoMethod(*s)
37685	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37686}
37687
37688// ShieldedInstanceIntegrityPolicy: The policy describes the baseline
37689// against which Instance boot integrity is measured.
37690type ShieldedInstanceIntegrityPolicy struct {
37691	// UpdateAutoLearnPolicy: Updates the integrity policy baseline using
37692	// the measurements from the VM instance's most recent boot.
37693	UpdateAutoLearnPolicy bool `json:"updateAutoLearnPolicy,omitempty"`
37694
37695	// ForceSendFields is a list of field names (e.g.
37696	// "UpdateAutoLearnPolicy") to unconditionally include in API requests.
37697	// By default, fields with empty values are omitted from API requests.
37698	// However, any non-pointer, non-interface field appearing in
37699	// ForceSendFields will be sent to the server regardless of whether the
37700	// field is empty or not. This may be used to include empty fields in
37701	// Patch requests.
37702	ForceSendFields []string `json:"-"`
37703
37704	// NullFields is a list of field names (e.g. "UpdateAutoLearnPolicy") to
37705	// include in API requests with the JSON null value. By default, fields
37706	// with empty values are omitted from API requests. However, any field
37707	// with an empty value appearing in NullFields will be sent to the
37708	// server as null. It is an error if a field in this list has a
37709	// non-empty value. This may be used to include null fields in Patch
37710	// requests.
37711	NullFields []string `json:"-"`
37712}
37713
37714func (s *ShieldedInstanceIntegrityPolicy) MarshalJSON() ([]byte, error) {
37715	type NoMethod ShieldedInstanceIntegrityPolicy
37716	raw := NoMethod(*s)
37717	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37718}
37719
37720// ShieldedVmConfig: A set of Shielded VM options.
37721type ShieldedVmConfig struct {
37722	// EnableIntegrityMonitoring: Defines whether the instance has integrity
37723	// monitoring enabled.
37724	EnableIntegrityMonitoring bool `json:"enableIntegrityMonitoring,omitempty"`
37725
37726	// EnableSecureBoot: Defines whether the instance has Secure Boot
37727	// enabled.
37728	EnableSecureBoot bool `json:"enableSecureBoot,omitempty"`
37729
37730	// EnableVtpm: Defines whether the instance has the vTPM enabled.
37731	EnableVtpm bool `json:"enableVtpm,omitempty"`
37732
37733	// ForceSendFields is a list of field names (e.g.
37734	// "EnableIntegrityMonitoring") to unconditionally include in API
37735	// requests. By default, fields with empty values are omitted from API
37736	// requests. However, any non-pointer, non-interface field appearing in
37737	// ForceSendFields will be sent to the server regardless of whether the
37738	// field is empty or not. This may be used to include empty fields in
37739	// Patch requests.
37740	ForceSendFields []string `json:"-"`
37741
37742	// NullFields is a list of field names (e.g.
37743	// "EnableIntegrityMonitoring") to include in API requests with the JSON
37744	// null value. By default, fields with empty values are omitted from API
37745	// requests. However, any field with an empty value appearing in
37746	// NullFields will be sent to the server as null. It is an error if a
37747	// field in this list has a non-empty value. This may be used to include
37748	// null fields in Patch requests.
37749	NullFields []string `json:"-"`
37750}
37751
37752func (s *ShieldedVmConfig) MarshalJSON() ([]byte, error) {
37753	type NoMethod ShieldedVmConfig
37754	raw := NoMethod(*s)
37755	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37756}
37757
37758// ShieldedVmIdentity: A shielded VM identity entry.
37759type ShieldedVmIdentity struct {
37760	// EncryptionKey: An Endorsement Key (EK) issued to the Shielded VM's
37761	// vTPM.
37762	EncryptionKey *ShieldedVmIdentityEntry `json:"encryptionKey,omitempty"`
37763
37764	// Kind: [Output Only] Type of the resource. Always
37765	// compute#shieldedVmIdentity for shielded VM identity entry.
37766	Kind string `json:"kind,omitempty"`
37767
37768	// SigningKey: An Attestation Key (AK) issued to the Shielded VM's vTPM.
37769	SigningKey *ShieldedVmIdentityEntry `json:"signingKey,omitempty"`
37770
37771	// ServerResponse contains the HTTP response code and headers from the
37772	// server.
37773	googleapi.ServerResponse `json:"-"`
37774
37775	// ForceSendFields is a list of field names (e.g. "EncryptionKey") to
37776	// unconditionally include in API requests. By default, fields with
37777	// empty values are omitted from API requests. However, any non-pointer,
37778	// non-interface field appearing in ForceSendFields will be sent to the
37779	// server regardless of whether the field is empty or not. This may be
37780	// used to include empty fields in Patch requests.
37781	ForceSendFields []string `json:"-"`
37782
37783	// NullFields is a list of field names (e.g. "EncryptionKey") to include
37784	// in API requests with the JSON null value. By default, fields with
37785	// empty values are omitted from API requests. However, any field with
37786	// an empty value appearing in NullFields will be sent to the server as
37787	// null. It is an error if a field in this list has a non-empty value.
37788	// This may be used to include null fields in Patch requests.
37789	NullFields []string `json:"-"`
37790}
37791
37792func (s *ShieldedVmIdentity) MarshalJSON() ([]byte, error) {
37793	type NoMethod ShieldedVmIdentity
37794	raw := NoMethod(*s)
37795	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37796}
37797
37798// ShieldedVmIdentityEntry: A Shielded Instance Identity Entry.
37799type ShieldedVmIdentityEntry struct {
37800	// EkCert: A PEM-encoded X.509 certificate. This field can be empty.
37801	EkCert string `json:"ekCert,omitempty"`
37802
37803	// EkPub: A PEM-encoded public key.
37804	EkPub string `json:"ekPub,omitempty"`
37805
37806	// ForceSendFields is a list of field names (e.g. "EkCert") to
37807	// unconditionally include in API requests. By default, fields with
37808	// empty values are omitted from API requests. However, any non-pointer,
37809	// non-interface field appearing in ForceSendFields will be sent to the
37810	// server regardless of whether the field is empty or not. This may be
37811	// used to include empty fields in Patch requests.
37812	ForceSendFields []string `json:"-"`
37813
37814	// NullFields is a list of field names (e.g. "EkCert") to include in API
37815	// requests with the JSON null value. By default, fields with empty
37816	// values are omitted from API requests. However, any field with an
37817	// empty value appearing in NullFields will be sent to the server as
37818	// null. It is an error if a field in this list has a non-empty value.
37819	// This may be used to include null fields in Patch requests.
37820	NullFields []string `json:"-"`
37821}
37822
37823func (s *ShieldedVmIdentityEntry) MarshalJSON() ([]byte, error) {
37824	type NoMethod ShieldedVmIdentityEntry
37825	raw := NoMethod(*s)
37826	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37827}
37828
37829// ShieldedVmIntegrityPolicy: The policy describes the baseline against
37830// which VM instance boot integrity is measured.
37831type ShieldedVmIntegrityPolicy struct {
37832	// UpdateAutoLearnPolicy: Updates the integrity policy baseline using
37833	// the measurements from the VM instance's most recent boot.
37834	UpdateAutoLearnPolicy bool `json:"updateAutoLearnPolicy,omitempty"`
37835
37836	// ForceSendFields is a list of field names (e.g.
37837	// "UpdateAutoLearnPolicy") to unconditionally include in API requests.
37838	// By default, fields with empty values are omitted from API requests.
37839	// However, any non-pointer, non-interface field appearing in
37840	// ForceSendFields will be sent to the server regardless of whether the
37841	// field is empty or not. This may be used to include empty fields in
37842	// Patch requests.
37843	ForceSendFields []string `json:"-"`
37844
37845	// NullFields is a list of field names (e.g. "UpdateAutoLearnPolicy") to
37846	// include in API requests with the JSON null value. By default, fields
37847	// with empty values are omitted from API requests. However, any field
37848	// with an empty value appearing in NullFields will be sent to the
37849	// server as null. It is an error if a field in this list has a
37850	// non-empty value. This may be used to include null fields in Patch
37851	// requests.
37852	NullFields []string `json:"-"`
37853}
37854
37855func (s *ShieldedVmIntegrityPolicy) MarshalJSON() ([]byte, error) {
37856	type NoMethod ShieldedVmIntegrityPolicy
37857	raw := NoMethod(*s)
37858	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37859}
37860
37861// SignedUrlKey: Represents a customer-supplied Signing Key used by
37862// Cloud CDN Signed URLs
37863type SignedUrlKey struct {
37864	// KeyName: Name of the key. The name must be 1-63 characters long, and
37865	// comply with RFC1035. Specifically, the name must be 1-63 characters
37866	// long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?`
37867	// which means the first character must be a lowercase letter, and all
37868	// following characters must be a dash, lowercase letter, or digit,
37869	// except the last character, which cannot be a dash.
37870	KeyName string `json:"keyName,omitempty"`
37871
37872	// KeyValue: 128-bit key value used for signing the URL. The key value
37873	// must be a valid RFC 4648 Section 5 base64url encoded string.
37874	KeyValue string `json:"keyValue,omitempty"`
37875
37876	// ForceSendFields is a list of field names (e.g. "KeyName") to
37877	// unconditionally include in API requests. By default, fields with
37878	// empty values are omitted from API requests. However, any non-pointer,
37879	// non-interface field appearing in ForceSendFields will be sent to the
37880	// server regardless of whether the field is empty or not. This may be
37881	// used to include empty fields in Patch requests.
37882	ForceSendFields []string `json:"-"`
37883
37884	// NullFields is a list of field names (e.g. "KeyName") to include in
37885	// API requests with the JSON null value. By default, fields with empty
37886	// values are omitted from API requests. However, any field with an
37887	// empty value appearing in NullFields will be sent to the server as
37888	// null. It is an error if a field in this list has a non-empty value.
37889	// This may be used to include null fields in Patch requests.
37890	NullFields []string `json:"-"`
37891}
37892
37893func (s *SignedUrlKey) MarshalJSON() ([]byte, error) {
37894	type NoMethod SignedUrlKey
37895	raw := NoMethod(*s)
37896	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37897}
37898
37899// Snapshot: Represents a Persistent Disk Snapshot resource.
37900//
37901// You can use snapshots to back up data on a regular interval. For more
37902// information, read  Creating persistent disk snapshots. (==
37903// resource_for beta.snapshots ==) (== resource_for v1.snapshots ==)
37904type Snapshot struct {
37905	// AutoCreated: [Output Only] Set to true if snapshots are automatically
37906	// created by applying resource policy on the target disk.
37907	AutoCreated bool `json:"autoCreated,omitempty"`
37908
37909	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
37910	// format.
37911	CreationTimestamp string `json:"creationTimestamp,omitempty"`
37912
37913	// Description: An optional description of this resource. Provide this
37914	// property when you create the resource.
37915	Description string `json:"description,omitempty"`
37916
37917	// DiskSizeGb: [Output Only] Size of the source disk, specified in GB.
37918	DiskSizeGb int64 `json:"diskSizeGb,omitempty,string"`
37919
37920	// GuestOsFeatures: [Output Only] A list of features to enable on the
37921	// guest operating system. Applicable only for bootable images. Read
37922	// Enabling guest operating system features to see a list of available
37923	// options.
37924	GuestOsFeatures []*GuestOsFeature `json:"guestOsFeatures,omitempty"`
37925
37926	// Id: [Output Only] The unique identifier for the resource. This
37927	// identifier is defined by the server.
37928	Id uint64 `json:"id,omitempty,string"`
37929
37930	// Kind: [Output Only] Type of the resource. Always compute#snapshot for
37931	// Snapshot resources.
37932	Kind string `json:"kind,omitempty"`
37933
37934	// LabelFingerprint: A fingerprint for the labels being applied to this
37935	// snapshot, which is essentially a hash of the labels set used for
37936	// optimistic locking. The fingerprint is initially generated by Compute
37937	// Engine and changes after every request to modify or update labels.
37938	// You must always provide an up-to-date fingerprint hash in order to
37939	// update or change labels, otherwise the request will fail with error
37940	// 412 conditionNotMet.
37941	//
37942	// To see the latest fingerprint, make a get() request to retrieve a
37943	// snapshot.
37944	LabelFingerprint string `json:"labelFingerprint,omitempty"`
37945
37946	// Labels: Labels to apply to this snapshot. These can be later modified
37947	// by the setLabels method. Label values may be empty.
37948	Labels map[string]string `json:"labels,omitempty"`
37949
37950	// LicenseCodes: [Output Only] Integer license codes indicating which
37951	// licenses are attached to this snapshot.
37952	LicenseCodes googleapi.Int64s `json:"licenseCodes,omitempty"`
37953
37954	// Licenses: [Output Only] A list of public visible licenses that apply
37955	// to this snapshot. This can be because the original image had licenses
37956	// attached (such as a Windows image).
37957	Licenses []string `json:"licenses,omitempty"`
37958
37959	// Name: Name of the resource; provided by the client when the resource
37960	// is created. The name must be 1-63 characters long, and comply with
37961	// RFC1035. Specifically, the name must be 1-63 characters long and
37962	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
37963	// the first character must be a lowercase letter, and all following
37964	// characters must be a dash, lowercase letter, or digit, except the
37965	// last character, which cannot be a dash.
37966	Name string `json:"name,omitempty"`
37967
37968	// SelfLink: [Output Only] Server-defined URL for the resource.
37969	SelfLink string `json:"selfLink,omitempty"`
37970
37971	// SelfLinkWithId: [Output Only] Server-defined URL for this resource's
37972	// resource id.
37973	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
37974
37975	// SnapshotEncryptionKey: Encrypts the snapshot using a
37976	// customer-supplied encryption key.
37977	//
37978	// After you encrypt a snapshot using a customer-supplied key, you must
37979	// provide the same key if you use the snapshot later. For example, you
37980	// must provide the encryption key when you create a disk from the
37981	// encrypted snapshot in a future request.
37982	//
37983	// Customer-supplied encryption keys do not protect access to metadata
37984	// of the snapshot.
37985	//
37986	// If you do not provide an encryption key when creating the snapshot,
37987	// then the snapshot will be encrypted using an automatically generated
37988	// key and you do not need to provide a key to use the snapshot later.
37989	SnapshotEncryptionKey *CustomerEncryptionKey `json:"snapshotEncryptionKey,omitempty"`
37990
37991	// SourceDisk: [Output Only] The source disk used to create this
37992	// snapshot.
37993	SourceDisk string `json:"sourceDisk,omitempty"`
37994
37995	// SourceDiskEncryptionKey: The customer-supplied encryption key of the
37996	// source disk. Required if the source disk is protected by a
37997	// customer-supplied encryption key.
37998	SourceDiskEncryptionKey *CustomerEncryptionKey `json:"sourceDiskEncryptionKey,omitempty"`
37999
38000	// SourceDiskId: [Output Only] The ID value of the disk used to create
38001	// this snapshot. This value may be used to determine whether the
38002	// snapshot was taken from the current or a previous instance of a given
38003	// disk name.
38004	SourceDiskId string `json:"sourceDiskId,omitempty"`
38005
38006	// Status: [Output Only] The status of the snapshot. This can be
38007	// CREATING, DELETING, FAILED, READY, or UPLOADING.
38008	//
38009	// Possible values:
38010	//   "CREATING"
38011	//   "DELETING"
38012	//   "FAILED"
38013	//   "READY"
38014	//   "UPLOADING"
38015	Status string `json:"status,omitempty"`
38016
38017	// StorageBytes: [Output Only] A size of the storage used by the
38018	// snapshot. As snapshots share storage, this number is expected to
38019	// change with snapshot creation/deletion.
38020	StorageBytes int64 `json:"storageBytes,omitempty,string"`
38021
38022	// StorageBytesStatus: [Output Only] An indicator whether storageBytes
38023	// is in a stable state or it is being adjusted as a result of shared
38024	// storage reallocation. This status can either be UPDATING, meaning the
38025	// size of the snapshot is being updated, or UP_TO_DATE, meaning the
38026	// size of the snapshot is up-to-date.
38027	//
38028	// Possible values:
38029	//   "UPDATING"
38030	//   "UP_TO_DATE"
38031	StorageBytesStatus string `json:"storageBytesStatus,omitempty"`
38032
38033	// StorageLocations: Cloud Storage bucket storage location of the
38034	// snapshot (regional or multi-regional).
38035	StorageLocations []string `json:"storageLocations,omitempty"`
38036
38037	// ServerResponse contains the HTTP response code and headers from the
38038	// server.
38039	googleapi.ServerResponse `json:"-"`
38040
38041	// ForceSendFields is a list of field names (e.g. "AutoCreated") to
38042	// unconditionally include in API requests. By default, fields with
38043	// empty values are omitted from API requests. However, any non-pointer,
38044	// non-interface field appearing in ForceSendFields will be sent to the
38045	// server regardless of whether the field is empty or not. This may be
38046	// used to include empty fields in Patch requests.
38047	ForceSendFields []string `json:"-"`
38048
38049	// NullFields is a list of field names (e.g. "AutoCreated") to include
38050	// in API requests with the JSON null value. By default, fields with
38051	// empty values are omitted from API requests. However, any field with
38052	// an empty value appearing in NullFields will be sent to the server as
38053	// null. It is an error if a field in this list has a non-empty value.
38054	// This may be used to include null fields in Patch requests.
38055	NullFields []string `json:"-"`
38056}
38057
38058func (s *Snapshot) MarshalJSON() ([]byte, error) {
38059	type NoMethod Snapshot
38060	raw := NoMethod(*s)
38061	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38062}
38063
38064// SnapshotList: Contains a list of Snapshot resources.
38065type SnapshotList struct {
38066	// Id: [Output Only] Unique identifier for the resource; defined by the
38067	// server.
38068	Id string `json:"id,omitempty"`
38069
38070	// Items: A list of Snapshot resources.
38071	Items []*Snapshot `json:"items,omitempty"`
38072
38073	// Kind: Type of resource.
38074	Kind string `json:"kind,omitempty"`
38075
38076	// NextPageToken: [Output Only] This token allows you to get the next
38077	// page of results for list requests. If the number of results is larger
38078	// than maxResults, use the nextPageToken as a value for the query
38079	// parameter pageToken in the next list request. Subsequent list
38080	// requests will have their own nextPageToken to continue paging through
38081	// the results.
38082	NextPageToken string `json:"nextPageToken,omitempty"`
38083
38084	// SelfLink: [Output Only] Server-defined URL for this resource.
38085	SelfLink string `json:"selfLink,omitempty"`
38086
38087	// Warning: [Output Only] Informational warning message.
38088	Warning *SnapshotListWarning `json:"warning,omitempty"`
38089
38090	// ServerResponse contains the HTTP response code and headers from the
38091	// server.
38092	googleapi.ServerResponse `json:"-"`
38093
38094	// ForceSendFields is a list of field names (e.g. "Id") to
38095	// unconditionally include in API requests. By default, fields with
38096	// empty values are omitted from API requests. However, any non-pointer,
38097	// non-interface field appearing in ForceSendFields will be sent to the
38098	// server regardless of whether the field is empty or not. This may be
38099	// used to include empty fields in Patch requests.
38100	ForceSendFields []string `json:"-"`
38101
38102	// NullFields is a list of field names (e.g. "Id") to include in API
38103	// requests with the JSON null value. By default, fields with empty
38104	// values are omitted from API requests. However, any field with an
38105	// empty value appearing in NullFields will be sent to the server as
38106	// null. It is an error if a field in this list has a non-empty value.
38107	// This may be used to include null fields in Patch requests.
38108	NullFields []string `json:"-"`
38109}
38110
38111func (s *SnapshotList) MarshalJSON() ([]byte, error) {
38112	type NoMethod SnapshotList
38113	raw := NoMethod(*s)
38114	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38115}
38116
38117// SnapshotListWarning: [Output Only] Informational warning message.
38118type SnapshotListWarning struct {
38119	// Code: [Output Only] A warning code, if applicable. For example,
38120	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
38121	// the response.
38122	//
38123	// Possible values:
38124	//   "CLEANUP_FAILED"
38125	//   "DEPRECATED_RESOURCE_USED"
38126	//   "DEPRECATED_TYPE_USED"
38127	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
38128	//   "EXPERIMENTAL_TYPE_USED"
38129	//   "EXTERNAL_API_WARNING"
38130	//   "FIELD_VALUE_OVERRIDEN"
38131	//   "INJECTED_KERNELS_DEPRECATED"
38132	//   "MISSING_TYPE_DEPENDENCY"
38133	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
38134	//   "NEXT_HOP_CANNOT_IP_FORWARD"
38135	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
38136	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
38137	//   "NEXT_HOP_NOT_RUNNING"
38138	//   "NOT_CRITICAL_ERROR"
38139	//   "NO_RESULTS_ON_PAGE"
38140	//   "REQUIRED_TOS_AGREEMENT"
38141	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
38142	//   "RESOURCE_NOT_DELETED"
38143	//   "SCHEMA_VALIDATION_IGNORED"
38144	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
38145	//   "UNDECLARED_PROPERTIES"
38146	//   "UNREACHABLE"
38147	Code string `json:"code,omitempty"`
38148
38149	// Data: [Output Only] Metadata about this warning in key: value format.
38150	// For example:
38151	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
38152	Data []*SnapshotListWarningData `json:"data,omitempty"`
38153
38154	// Message: [Output Only] A human-readable description of the warning
38155	// code.
38156	Message string `json:"message,omitempty"`
38157
38158	// ForceSendFields is a list of field names (e.g. "Code") to
38159	// unconditionally include in API requests. By default, fields with
38160	// empty values are omitted from API requests. However, any non-pointer,
38161	// non-interface field appearing in ForceSendFields will be sent to the
38162	// server regardless of whether the field is empty or not. This may be
38163	// used to include empty fields in Patch requests.
38164	ForceSendFields []string `json:"-"`
38165
38166	// NullFields is a list of field names (e.g. "Code") to include in API
38167	// requests with the JSON null value. By default, fields with empty
38168	// values are omitted from API requests. However, any field with an
38169	// empty value appearing in NullFields will be sent to the server as
38170	// null. It is an error if a field in this list has a non-empty value.
38171	// This may be used to include null fields in Patch requests.
38172	NullFields []string `json:"-"`
38173}
38174
38175func (s *SnapshotListWarning) MarshalJSON() ([]byte, error) {
38176	type NoMethod SnapshotListWarning
38177	raw := NoMethod(*s)
38178	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38179}
38180
38181type SnapshotListWarningData struct {
38182	// Key: [Output Only] A key that provides more detail on the warning
38183	// being returned. For example, for warnings where there are no results
38184	// in a list request for a particular zone, this key might be scope and
38185	// the key value might be the zone name. Other examples might be a key
38186	// indicating a deprecated resource and a suggested replacement, or a
38187	// warning about invalid network settings (for example, if an instance
38188	// attempts to perform IP forwarding but is not enabled for IP
38189	// forwarding).
38190	Key string `json:"key,omitempty"`
38191
38192	// Value: [Output Only] A warning data value corresponding to the key.
38193	Value string `json:"value,omitempty"`
38194
38195	// ForceSendFields is a list of field names (e.g. "Key") to
38196	// unconditionally include in API requests. By default, fields with
38197	// empty values are omitted from API requests. However, any non-pointer,
38198	// non-interface field appearing in ForceSendFields will be sent to the
38199	// server regardless of whether the field is empty or not. This may be
38200	// used to include empty fields in Patch requests.
38201	ForceSendFields []string `json:"-"`
38202
38203	// NullFields is a list of field names (e.g. "Key") to include in API
38204	// requests with the JSON null value. By default, fields with empty
38205	// values are omitted from API requests. However, any field with an
38206	// empty value appearing in NullFields will be sent to the server as
38207	// null. It is an error if a field in this list has a non-empty value.
38208	// This may be used to include null fields in Patch requests.
38209	NullFields []string `json:"-"`
38210}
38211
38212func (s *SnapshotListWarningData) MarshalJSON() ([]byte, error) {
38213	type NoMethod SnapshotListWarningData
38214	raw := NoMethod(*s)
38215	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38216}
38217
38218type SourceDiskEncryptionKey struct {
38219	// DiskEncryptionKey: The customer-supplied encryption key of the source
38220	// disk. Required if the source disk is protected by a customer-supplied
38221	// encryption key.
38222	DiskEncryptionKey *CustomerEncryptionKey `json:"diskEncryptionKey,omitempty"`
38223
38224	// SourceDisk: URL of the disk attached to the source instance. This can
38225	// be a full or valid partial URL. For example, the following are valid
38226	// values:
38227	// -
38228	// https://www.googleapis.com/compute/v1/projects/project/zones/zone/disks/disk
38229	// - projects/project/zones/zone/disks/disk
38230	// - zones/zone/disks/disk
38231	SourceDisk string `json:"sourceDisk,omitempty"`
38232
38233	// ForceSendFields is a list of field names (e.g. "DiskEncryptionKey")
38234	// to unconditionally include in API requests. By default, fields with
38235	// empty values are omitted from API requests. However, any non-pointer,
38236	// non-interface field appearing in ForceSendFields will be sent to the
38237	// server regardless of whether the field is empty or not. This may be
38238	// used to include empty fields in Patch requests.
38239	ForceSendFields []string `json:"-"`
38240
38241	// NullFields is a list of field names (e.g. "DiskEncryptionKey") to
38242	// include in API requests with the JSON null value. By default, fields
38243	// with empty values are omitted from API requests. However, any field
38244	// with an empty value appearing in NullFields will be sent to the
38245	// server as null. It is an error if a field in this list has a
38246	// non-empty value. This may be used to include null fields in Patch
38247	// requests.
38248	NullFields []string `json:"-"`
38249}
38250
38251func (s *SourceDiskEncryptionKey) MarshalJSON() ([]byte, error) {
38252	type NoMethod SourceDiskEncryptionKey
38253	raw := NoMethod(*s)
38254	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38255}
38256
38257// SourceInstanceParams: A specification of the parameters to use when
38258// creating the instance template from a source instance.
38259type SourceInstanceParams struct {
38260	// DiskConfigs: Attached disks configuration. If not provided, defaults
38261	// are applied: For boot disk and any other R/W disks, new custom images
38262	// will be created from each disk. For read-only disks, they will be
38263	// attached in read-only mode. Local SSD disks will be created as blank
38264	// volumes.
38265	DiskConfigs []*DiskInstantiationConfig `json:"diskConfigs,omitempty"`
38266
38267	// ForceSendFields is a list of field names (e.g. "DiskConfigs") to
38268	// unconditionally include in API requests. By default, fields with
38269	// empty values are omitted from API requests. However, any non-pointer,
38270	// non-interface field appearing in ForceSendFields will be sent to the
38271	// server regardless of whether the field is empty or not. This may be
38272	// used to include empty fields in Patch requests.
38273	ForceSendFields []string `json:"-"`
38274
38275	// NullFields is a list of field names (e.g. "DiskConfigs") to include
38276	// in API requests with the JSON null value. By default, fields with
38277	// empty values are omitted from API requests. However, any field with
38278	// an empty value appearing in NullFields will be sent to the server as
38279	// null. It is an error if a field in this list has a non-empty value.
38280	// This may be used to include null fields in Patch requests.
38281	NullFields []string `json:"-"`
38282}
38283
38284func (s *SourceInstanceParams) MarshalJSON() ([]byte, error) {
38285	type NoMethod SourceInstanceParams
38286	raw := NoMethod(*s)
38287	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38288}
38289
38290type SourceInstanceProperties struct {
38291	// CanIpForward: Enables instances created based on this machine image
38292	// to send packets with source IP addresses other than their own and
38293	// receive packets with destination IP addresses other than their own.
38294	// If these instances will be used as an IP gateway or it will be set as
38295	// the next-hop in a Route resource, specify true. If unsure, leave this
38296	// set to false. See the Enable IP forwarding documentation for more
38297	// information.
38298	CanIpForward bool `json:"canIpForward,omitempty"`
38299
38300	// DeletionProtection: Whether the instance created from this machine
38301	// image should be protected against deletion.
38302	DeletionProtection bool `json:"deletionProtection,omitempty"`
38303
38304	// Description: An optional text description for the instances that are
38305	// created from this machine image.
38306	Description string `json:"description,omitempty"`
38307
38308	// Disks: An array of disks that are associated with the instances that
38309	// are created from this machine image.
38310	Disks []*SavedAttachedDisk `json:"disks,omitempty"`
38311
38312	// GuestAccelerators: A list of guest accelerator cards' type and count
38313	// to use for instances created from this machine image.
38314	GuestAccelerators []*AcceleratorConfig `json:"guestAccelerators,omitempty"`
38315
38316	// Labels: Labels to apply to instances that are created from this
38317	// machine image.
38318	Labels map[string]string `json:"labels,omitempty"`
38319
38320	// MachineType: The machine type to use for instances that are created
38321	// from this machine image.
38322	MachineType string `json:"machineType,omitempty"`
38323
38324	// Metadata: The metadata key/value pairs to assign to instances that
38325	// are created from this machine image. These pairs can consist of
38326	// custom metadata or predefined keys. See Project and instance metadata
38327	// for more information.
38328	Metadata *Metadata `json:"metadata,omitempty"`
38329
38330	// MinCpuPlatform: Minimum cpu/platform to be used by instances created
38331	// from this machine image. The instance may be scheduled on the
38332	// specified or newer cpu/platform. Applicable values are the friendly
38333	// names of CPU platforms, such as minCpuPlatform: "Intel Haswell" or
38334	// minCpuPlatform: "Intel Sandy Bridge". For more information, read
38335	// Specifying a Minimum CPU Platform.
38336	MinCpuPlatform string `json:"minCpuPlatform,omitempty"`
38337
38338	// NetworkInterfaces: An array of network access configurations for this
38339	// interface.
38340	NetworkInterfaces []*NetworkInterface `json:"networkInterfaces,omitempty"`
38341
38342	// Scheduling: Specifies the scheduling options for the instances that
38343	// are created from this machine image.
38344	Scheduling *Scheduling `json:"scheduling,omitempty"`
38345
38346	// ServiceAccounts: A list of service accounts with specified scopes.
38347	// Access tokens for these service accounts are available to the
38348	// instances that are created from this machine image. Use metadata
38349	// queries to obtain the access tokens for these instances.
38350	ServiceAccounts []*ServiceAccount `json:"serviceAccounts,omitempty"`
38351
38352	// Tags: A list of tags to apply to the instances that are created from
38353	// this machine image. The tags identify valid sources or targets for
38354	// network firewalls. The setTags method can modify this list of tags.
38355	// Each tag within the list must comply with RFC1035.
38356	Tags *Tags `json:"tags,omitempty"`
38357
38358	// ForceSendFields is a list of field names (e.g. "CanIpForward") to
38359	// unconditionally include in API requests. By default, fields with
38360	// empty values are omitted from API requests. However, any non-pointer,
38361	// non-interface field appearing in ForceSendFields will be sent to the
38362	// server regardless of whether the field is empty or not. This may be
38363	// used to include empty fields in Patch requests.
38364	ForceSendFields []string `json:"-"`
38365
38366	// NullFields is a list of field names (e.g. "CanIpForward") to include
38367	// in API requests with the JSON null value. By default, fields with
38368	// empty values are omitted from API requests. However, any field with
38369	// an empty value appearing in NullFields will be sent to the server as
38370	// null. It is an error if a field in this list has a non-empty value.
38371	// This may be used to include null fields in Patch requests.
38372	NullFields []string `json:"-"`
38373}
38374
38375func (s *SourceInstanceProperties) MarshalJSON() ([]byte, error) {
38376	type NoMethod SourceInstanceProperties
38377	raw := NoMethod(*s)
38378	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38379}
38380
38381// SslCertificate: Represents an SSL Certificate resource.
38382//
38383// This SSL certificate resource also contains a private key. You can
38384// use SSL keys and certificates to secure connections to a load
38385// balancer. For more information, read  Creating and Using SSL
38386// Certificates. (== resource_for beta.sslCertificates ==) (==
38387// resource_for v1.sslCertificates ==)
38388type SslCertificate struct {
38389	// Certificate: A local certificate file. The certificate must be in PEM
38390	// format. The certificate chain must be no greater than 5 certs long.
38391	// The chain must include at least one intermediate cert.
38392	Certificate string `json:"certificate,omitempty"`
38393
38394	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
38395	// format.
38396	CreationTimestamp string `json:"creationTimestamp,omitempty"`
38397
38398	// Description: An optional description of this resource. Provide this
38399	// property when you create the resource.
38400	Description string `json:"description,omitempty"`
38401
38402	// ExpireTime: [Output Only] Expire time of the certificate. RFC3339
38403	ExpireTime string `json:"expireTime,omitempty"`
38404
38405	// Id: [Output Only] The unique identifier for the resource. This
38406	// identifier is defined by the server.
38407	Id uint64 `json:"id,omitempty,string"`
38408
38409	// Kind: [Output Only] Type of the resource. Always
38410	// compute#sslCertificate for SSL certificates.
38411	Kind string `json:"kind,omitempty"`
38412
38413	// Managed: Configuration and status of a managed SSL certificate.
38414	Managed *SslCertificateManagedSslCertificate `json:"managed,omitempty"`
38415
38416	// Name: Name of the resource. Provided by the client when the resource
38417	// is created. The name must be 1-63 characters long, and comply with
38418	// RFC1035. Specifically, the name must be 1-63 characters long and
38419	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
38420	// the first character must be a lowercase letter, and all following
38421	// characters must be a dash, lowercase letter, or digit, except the
38422	// last character, which cannot be a dash.
38423	Name string `json:"name,omitempty"`
38424
38425	// PrivateKey: A write-only private key in PEM format. Only insert
38426	// requests will include this field.
38427	PrivateKey string `json:"privateKey,omitempty"`
38428
38429	// Region: [Output Only] URL of the region where the regional SSL
38430	// Certificate resides. This field is not applicable to global SSL
38431	// Certificate.
38432	Region string `json:"region,omitempty"`
38433
38434	// SelfLink: [Output only] Server-defined URL for the resource.
38435	SelfLink string `json:"selfLink,omitempty"`
38436
38437	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
38438	// with the resource id.
38439	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
38440
38441	// SelfManaged: Configuration and status of a self-managed SSL
38442	// certificate.
38443	SelfManaged *SslCertificateSelfManagedSslCertificate `json:"selfManaged,omitempty"`
38444
38445	// SubjectAlternativeNames: [Output Only] Domains associated with the
38446	// certificate via Subject Alternative Name.
38447	SubjectAlternativeNames []string `json:"subjectAlternativeNames,omitempty"`
38448
38449	// Type: (Optional) Specifies the type of SSL certificate, either
38450	// "SELF_MANAGED" or "MANAGED". If not specified, the certificate is
38451	// self-managed and the fields certificate and private_key are used.
38452	//
38453	// Possible values:
38454	//   "MANAGED"
38455	//   "SELF_MANAGED"
38456	//   "TYPE_UNSPECIFIED"
38457	Type string `json:"type,omitempty"`
38458
38459	// ServerResponse contains the HTTP response code and headers from the
38460	// server.
38461	googleapi.ServerResponse `json:"-"`
38462
38463	// ForceSendFields is a list of field names (e.g. "Certificate") to
38464	// unconditionally include in API requests. By default, fields with
38465	// empty values are omitted from API requests. However, any non-pointer,
38466	// non-interface field appearing in ForceSendFields will be sent to the
38467	// server regardless of whether the field is empty or not. This may be
38468	// used to include empty fields in Patch requests.
38469	ForceSendFields []string `json:"-"`
38470
38471	// NullFields is a list of field names (e.g. "Certificate") to include
38472	// in API requests with the JSON null value. By default, fields with
38473	// empty values are omitted from API requests. However, any field with
38474	// an empty value appearing in NullFields will be sent to the server as
38475	// null. It is an error if a field in this list has a non-empty value.
38476	// This may be used to include null fields in Patch requests.
38477	NullFields []string `json:"-"`
38478}
38479
38480func (s *SslCertificate) MarshalJSON() ([]byte, error) {
38481	type NoMethod SslCertificate
38482	raw := NoMethod(*s)
38483	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38484}
38485
38486type SslCertificateAggregatedList struct {
38487	// Id: [Output Only] Unique identifier for the resource; defined by the
38488	// server.
38489	Id string `json:"id,omitempty"`
38490
38491	// Items: A list of SslCertificatesScopedList resources.
38492	Items map[string]SslCertificatesScopedList `json:"items,omitempty"`
38493
38494	// Kind: [Output Only] Type of resource. Always
38495	// compute#sslCertificateAggregatedList for lists of SSL Certificates.
38496	Kind string `json:"kind,omitempty"`
38497
38498	// NextPageToken: [Output Only] This token allows you to get the next
38499	// page of results for list requests. If the number of results is larger
38500	// than maxResults, use the nextPageToken as a value for the query
38501	// parameter pageToken in the next list request. Subsequent list
38502	// requests will have their own nextPageToken to continue paging through
38503	// the results.
38504	NextPageToken string `json:"nextPageToken,omitempty"`
38505
38506	// SelfLink: [Output Only] Server-defined URL for this resource.
38507	SelfLink string `json:"selfLink,omitempty"`
38508
38509	// Warning: [Output Only] Informational warning message.
38510	Warning *SslCertificateAggregatedListWarning `json:"warning,omitempty"`
38511
38512	// ServerResponse contains the HTTP response code and headers from the
38513	// server.
38514	googleapi.ServerResponse `json:"-"`
38515
38516	// ForceSendFields is a list of field names (e.g. "Id") to
38517	// unconditionally include in API requests. By default, fields with
38518	// empty values are omitted from API requests. However, any non-pointer,
38519	// non-interface field appearing in ForceSendFields will be sent to the
38520	// server regardless of whether the field is empty or not. This may be
38521	// used to include empty fields in Patch requests.
38522	ForceSendFields []string `json:"-"`
38523
38524	// NullFields is a list of field names (e.g. "Id") to include in API
38525	// requests with the JSON null value. By default, fields with empty
38526	// values are omitted from API requests. However, any field with an
38527	// empty value appearing in NullFields will be sent to the server as
38528	// null. It is an error if a field in this list has a non-empty value.
38529	// This may be used to include null fields in Patch requests.
38530	NullFields []string `json:"-"`
38531}
38532
38533func (s *SslCertificateAggregatedList) MarshalJSON() ([]byte, error) {
38534	type NoMethod SslCertificateAggregatedList
38535	raw := NoMethod(*s)
38536	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38537}
38538
38539// SslCertificateAggregatedListWarning: [Output Only] Informational
38540// warning message.
38541type SslCertificateAggregatedListWarning struct {
38542	// Code: [Output Only] A warning code, if applicable. For example,
38543	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
38544	// the response.
38545	//
38546	// Possible values:
38547	//   "CLEANUP_FAILED"
38548	//   "DEPRECATED_RESOURCE_USED"
38549	//   "DEPRECATED_TYPE_USED"
38550	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
38551	//   "EXPERIMENTAL_TYPE_USED"
38552	//   "EXTERNAL_API_WARNING"
38553	//   "FIELD_VALUE_OVERRIDEN"
38554	//   "INJECTED_KERNELS_DEPRECATED"
38555	//   "MISSING_TYPE_DEPENDENCY"
38556	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
38557	//   "NEXT_HOP_CANNOT_IP_FORWARD"
38558	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
38559	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
38560	//   "NEXT_HOP_NOT_RUNNING"
38561	//   "NOT_CRITICAL_ERROR"
38562	//   "NO_RESULTS_ON_PAGE"
38563	//   "REQUIRED_TOS_AGREEMENT"
38564	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
38565	//   "RESOURCE_NOT_DELETED"
38566	//   "SCHEMA_VALIDATION_IGNORED"
38567	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
38568	//   "UNDECLARED_PROPERTIES"
38569	//   "UNREACHABLE"
38570	Code string `json:"code,omitempty"`
38571
38572	// Data: [Output Only] Metadata about this warning in key: value format.
38573	// For example:
38574	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
38575	Data []*SslCertificateAggregatedListWarningData `json:"data,omitempty"`
38576
38577	// Message: [Output Only] A human-readable description of the warning
38578	// code.
38579	Message string `json:"message,omitempty"`
38580
38581	// ForceSendFields is a list of field names (e.g. "Code") to
38582	// unconditionally include in API requests. By default, fields with
38583	// empty values are omitted from API requests. However, any non-pointer,
38584	// non-interface field appearing in ForceSendFields will be sent to the
38585	// server regardless of whether the field is empty or not. This may be
38586	// used to include empty fields in Patch requests.
38587	ForceSendFields []string `json:"-"`
38588
38589	// NullFields is a list of field names (e.g. "Code") to include in API
38590	// requests with the JSON null value. By default, fields with empty
38591	// values are omitted from API requests. However, any field with an
38592	// empty value appearing in NullFields will be sent to the server as
38593	// null. It is an error if a field in this list has a non-empty value.
38594	// This may be used to include null fields in Patch requests.
38595	NullFields []string `json:"-"`
38596}
38597
38598func (s *SslCertificateAggregatedListWarning) MarshalJSON() ([]byte, error) {
38599	type NoMethod SslCertificateAggregatedListWarning
38600	raw := NoMethod(*s)
38601	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38602}
38603
38604type SslCertificateAggregatedListWarningData struct {
38605	// Key: [Output Only] A key that provides more detail on the warning
38606	// being returned. For example, for warnings where there are no results
38607	// in a list request for a particular zone, this key might be scope and
38608	// the key value might be the zone name. Other examples might be a key
38609	// indicating a deprecated resource and a suggested replacement, or a
38610	// warning about invalid network settings (for example, if an instance
38611	// attempts to perform IP forwarding but is not enabled for IP
38612	// forwarding).
38613	Key string `json:"key,omitempty"`
38614
38615	// Value: [Output Only] A warning data value corresponding to the key.
38616	Value string `json:"value,omitempty"`
38617
38618	// ForceSendFields is a list of field names (e.g. "Key") to
38619	// unconditionally include in API requests. By default, fields with
38620	// empty values are omitted from API requests. However, any non-pointer,
38621	// non-interface field appearing in ForceSendFields will be sent to the
38622	// server regardless of whether the field is empty or not. This may be
38623	// used to include empty fields in Patch requests.
38624	ForceSendFields []string `json:"-"`
38625
38626	// NullFields is a list of field names (e.g. "Key") to include in API
38627	// requests with the JSON null value. By default, fields with empty
38628	// values are omitted from API requests. However, any field with an
38629	// empty value appearing in NullFields will be sent to the server as
38630	// null. It is an error if a field in this list has a non-empty value.
38631	// This may be used to include null fields in Patch requests.
38632	NullFields []string `json:"-"`
38633}
38634
38635func (s *SslCertificateAggregatedListWarningData) MarshalJSON() ([]byte, error) {
38636	type NoMethod SslCertificateAggregatedListWarningData
38637	raw := NoMethod(*s)
38638	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38639}
38640
38641// SslCertificateList: Contains a list of SslCertificate resources.
38642type SslCertificateList struct {
38643	// Id: [Output Only] Unique identifier for the resource; defined by the
38644	// server.
38645	Id string `json:"id,omitempty"`
38646
38647	// Items: A list of SslCertificate resources.
38648	Items []*SslCertificate `json:"items,omitempty"`
38649
38650	// Kind: Type of resource.
38651	Kind string `json:"kind,omitempty"`
38652
38653	// NextPageToken: [Output Only] This token allows you to get the next
38654	// page of results for list requests. If the number of results is larger
38655	// than maxResults, use the nextPageToken as a value for the query
38656	// parameter pageToken in the next list request. Subsequent list
38657	// requests will have their own nextPageToken to continue paging through
38658	// the results.
38659	NextPageToken string `json:"nextPageToken,omitempty"`
38660
38661	// SelfLink: [Output Only] Server-defined URL for this resource.
38662	SelfLink string `json:"selfLink,omitempty"`
38663
38664	// Warning: [Output Only] Informational warning message.
38665	Warning *SslCertificateListWarning `json:"warning,omitempty"`
38666
38667	// ServerResponse contains the HTTP response code and headers from the
38668	// server.
38669	googleapi.ServerResponse `json:"-"`
38670
38671	// ForceSendFields is a list of field names (e.g. "Id") to
38672	// unconditionally include in API requests. By default, fields with
38673	// empty values are omitted from API requests. However, any non-pointer,
38674	// non-interface field appearing in ForceSendFields will be sent to the
38675	// server regardless of whether the field is empty or not. This may be
38676	// used to include empty fields in Patch requests.
38677	ForceSendFields []string `json:"-"`
38678
38679	// NullFields is a list of field names (e.g. "Id") to include in API
38680	// requests with the JSON null value. By default, fields with empty
38681	// values are omitted from API requests. However, any field with an
38682	// empty value appearing in NullFields will be sent to the server as
38683	// null. It is an error if a field in this list has a non-empty value.
38684	// This may be used to include null fields in Patch requests.
38685	NullFields []string `json:"-"`
38686}
38687
38688func (s *SslCertificateList) MarshalJSON() ([]byte, error) {
38689	type NoMethod SslCertificateList
38690	raw := NoMethod(*s)
38691	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38692}
38693
38694// SslCertificateListWarning: [Output Only] Informational warning
38695// message.
38696type SslCertificateListWarning struct {
38697	// Code: [Output Only] A warning code, if applicable. For example,
38698	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
38699	// the response.
38700	//
38701	// Possible values:
38702	//   "CLEANUP_FAILED"
38703	//   "DEPRECATED_RESOURCE_USED"
38704	//   "DEPRECATED_TYPE_USED"
38705	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
38706	//   "EXPERIMENTAL_TYPE_USED"
38707	//   "EXTERNAL_API_WARNING"
38708	//   "FIELD_VALUE_OVERRIDEN"
38709	//   "INJECTED_KERNELS_DEPRECATED"
38710	//   "MISSING_TYPE_DEPENDENCY"
38711	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
38712	//   "NEXT_HOP_CANNOT_IP_FORWARD"
38713	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
38714	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
38715	//   "NEXT_HOP_NOT_RUNNING"
38716	//   "NOT_CRITICAL_ERROR"
38717	//   "NO_RESULTS_ON_PAGE"
38718	//   "REQUIRED_TOS_AGREEMENT"
38719	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
38720	//   "RESOURCE_NOT_DELETED"
38721	//   "SCHEMA_VALIDATION_IGNORED"
38722	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
38723	//   "UNDECLARED_PROPERTIES"
38724	//   "UNREACHABLE"
38725	Code string `json:"code,omitempty"`
38726
38727	// Data: [Output Only] Metadata about this warning in key: value format.
38728	// For example:
38729	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
38730	Data []*SslCertificateListWarningData `json:"data,omitempty"`
38731
38732	// Message: [Output Only] A human-readable description of the warning
38733	// code.
38734	Message string `json:"message,omitempty"`
38735
38736	// ForceSendFields is a list of field names (e.g. "Code") to
38737	// unconditionally include in API requests. By default, fields with
38738	// empty values are omitted from API requests. However, any non-pointer,
38739	// non-interface field appearing in ForceSendFields will be sent to the
38740	// server regardless of whether the field is empty or not. This may be
38741	// used to include empty fields in Patch requests.
38742	ForceSendFields []string `json:"-"`
38743
38744	// NullFields is a list of field names (e.g. "Code") to include in API
38745	// requests with the JSON null value. By default, fields with empty
38746	// values are omitted from API requests. However, any field with an
38747	// empty value appearing in NullFields will be sent to the server as
38748	// null. It is an error if a field in this list has a non-empty value.
38749	// This may be used to include null fields in Patch requests.
38750	NullFields []string `json:"-"`
38751}
38752
38753func (s *SslCertificateListWarning) MarshalJSON() ([]byte, error) {
38754	type NoMethod SslCertificateListWarning
38755	raw := NoMethod(*s)
38756	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38757}
38758
38759type SslCertificateListWarningData struct {
38760	// Key: [Output Only] A key that provides more detail on the warning
38761	// being returned. For example, for warnings where there are no results
38762	// in a list request for a particular zone, this key might be scope and
38763	// the key value might be the zone name. Other examples might be a key
38764	// indicating a deprecated resource and a suggested replacement, or a
38765	// warning about invalid network settings (for example, if an instance
38766	// attempts to perform IP forwarding but is not enabled for IP
38767	// forwarding).
38768	Key string `json:"key,omitempty"`
38769
38770	// Value: [Output Only] A warning data value corresponding to the key.
38771	Value string `json:"value,omitempty"`
38772
38773	// ForceSendFields is a list of field names (e.g. "Key") to
38774	// unconditionally include in API requests. By default, fields with
38775	// empty values are omitted from API requests. However, any non-pointer,
38776	// non-interface field appearing in ForceSendFields will be sent to the
38777	// server regardless of whether the field is empty or not. This may be
38778	// used to include empty fields in Patch requests.
38779	ForceSendFields []string `json:"-"`
38780
38781	// NullFields is a list of field names (e.g. "Key") to include in API
38782	// requests with the JSON null value. By default, fields with empty
38783	// values are omitted from API requests. However, any field with an
38784	// empty value appearing in NullFields will be sent to the server as
38785	// null. It is an error if a field in this list has a non-empty value.
38786	// This may be used to include null fields in Patch requests.
38787	NullFields []string `json:"-"`
38788}
38789
38790func (s *SslCertificateListWarningData) MarshalJSON() ([]byte, error) {
38791	type NoMethod SslCertificateListWarningData
38792	raw := NoMethod(*s)
38793	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38794}
38795
38796// SslCertificateManagedSslCertificate: Configuration and status of a
38797// managed SSL certificate.
38798type SslCertificateManagedSslCertificate struct {
38799	// DomainStatus: [Output only] Detailed statuses of the domains
38800	// specified for managed certificate resource.
38801	DomainStatus map[string]string `json:"domainStatus,omitempty"`
38802
38803	// Domains: The domains for which a managed SSL certificate will be
38804	// generated. Currently only single-domain certs are supported.
38805	Domains []string `json:"domains,omitempty"`
38806
38807	// Status: [Output only] Status of the managed certificate resource.
38808	//
38809	// Possible values:
38810	//   "ACTIVE"
38811	//   "MANAGED_CERTIFICATE_STATUS_UNSPECIFIED"
38812	//   "PROVISIONING"
38813	//   "PROVISIONING_FAILED"
38814	//   "PROVISIONING_FAILED_PERMANENTLY"
38815	//   "RENEWAL_FAILED"
38816	Status string `json:"status,omitempty"`
38817
38818	// ForceSendFields is a list of field names (e.g. "DomainStatus") to
38819	// unconditionally include in API requests. By default, fields with
38820	// empty values are omitted from API requests. However, any non-pointer,
38821	// non-interface field appearing in ForceSendFields will be sent to the
38822	// server regardless of whether the field is empty or not. This may be
38823	// used to include empty fields in Patch requests.
38824	ForceSendFields []string `json:"-"`
38825
38826	// NullFields is a list of field names (e.g. "DomainStatus") to include
38827	// in API requests with the JSON null value. By default, fields with
38828	// empty values are omitted from API requests. However, any field with
38829	// an empty value appearing in NullFields will be sent to the server as
38830	// null. It is an error if a field in this list has a non-empty value.
38831	// This may be used to include null fields in Patch requests.
38832	NullFields []string `json:"-"`
38833}
38834
38835func (s *SslCertificateManagedSslCertificate) MarshalJSON() ([]byte, error) {
38836	type NoMethod SslCertificateManagedSslCertificate
38837	raw := NoMethod(*s)
38838	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38839}
38840
38841// SslCertificateSelfManagedSslCertificate: Configuration and status of
38842// a self-managed SSL certificate.
38843type SslCertificateSelfManagedSslCertificate struct {
38844	// Certificate: A local certificate file. The certificate must be in PEM
38845	// format. The certificate chain must be no greater than 5 certs long.
38846	// The chain must include at least one intermediate cert.
38847	Certificate string `json:"certificate,omitempty"`
38848
38849	// PrivateKey: A write-only private key in PEM format. Only insert
38850	// requests will include this field.
38851	PrivateKey string `json:"privateKey,omitempty"`
38852
38853	// ForceSendFields is a list of field names (e.g. "Certificate") to
38854	// unconditionally include in API requests. By default, fields with
38855	// empty values are omitted from API requests. However, any non-pointer,
38856	// non-interface field appearing in ForceSendFields will be sent to the
38857	// server regardless of whether the field is empty or not. This may be
38858	// used to include empty fields in Patch requests.
38859	ForceSendFields []string `json:"-"`
38860
38861	// NullFields is a list of field names (e.g. "Certificate") to include
38862	// in API requests with the JSON null value. By default, fields with
38863	// empty values are omitted from API requests. However, any field with
38864	// an empty value appearing in NullFields will be sent to the server as
38865	// null. It is an error if a field in this list has a non-empty value.
38866	// This may be used to include null fields in Patch requests.
38867	NullFields []string `json:"-"`
38868}
38869
38870func (s *SslCertificateSelfManagedSslCertificate) MarshalJSON() ([]byte, error) {
38871	type NoMethod SslCertificateSelfManagedSslCertificate
38872	raw := NoMethod(*s)
38873	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38874}
38875
38876type SslCertificatesScopedList struct {
38877	// SslCertificates: List of SslCertificates contained in this scope.
38878	SslCertificates []*SslCertificate `json:"sslCertificates,omitempty"`
38879
38880	// Warning: Informational warning which replaces the list of backend
38881	// services when the list is empty.
38882	Warning *SslCertificatesScopedListWarning `json:"warning,omitempty"`
38883
38884	// ForceSendFields is a list of field names (e.g. "SslCertificates") to
38885	// unconditionally include in API requests. By default, fields with
38886	// empty values are omitted from API requests. However, any non-pointer,
38887	// non-interface field appearing in ForceSendFields will be sent to the
38888	// server regardless of whether the field is empty or not. This may be
38889	// used to include empty fields in Patch requests.
38890	ForceSendFields []string `json:"-"`
38891
38892	// NullFields is a list of field names (e.g. "SslCertificates") to
38893	// include in API requests with the JSON null value. By default, fields
38894	// with empty values are omitted from API requests. However, any field
38895	// with an empty value appearing in NullFields will be sent to the
38896	// server as null. It is an error if a field in this list has a
38897	// non-empty value. This may be used to include null fields in Patch
38898	// requests.
38899	NullFields []string `json:"-"`
38900}
38901
38902func (s *SslCertificatesScopedList) MarshalJSON() ([]byte, error) {
38903	type NoMethod SslCertificatesScopedList
38904	raw := NoMethod(*s)
38905	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38906}
38907
38908// SslCertificatesScopedListWarning: Informational warning which
38909// replaces the list of backend services when the list is empty.
38910type SslCertificatesScopedListWarning struct {
38911	// Code: [Output Only] A warning code, if applicable. For example,
38912	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
38913	// the response.
38914	//
38915	// Possible values:
38916	//   "CLEANUP_FAILED"
38917	//   "DEPRECATED_RESOURCE_USED"
38918	//   "DEPRECATED_TYPE_USED"
38919	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
38920	//   "EXPERIMENTAL_TYPE_USED"
38921	//   "EXTERNAL_API_WARNING"
38922	//   "FIELD_VALUE_OVERRIDEN"
38923	//   "INJECTED_KERNELS_DEPRECATED"
38924	//   "MISSING_TYPE_DEPENDENCY"
38925	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
38926	//   "NEXT_HOP_CANNOT_IP_FORWARD"
38927	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
38928	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
38929	//   "NEXT_HOP_NOT_RUNNING"
38930	//   "NOT_CRITICAL_ERROR"
38931	//   "NO_RESULTS_ON_PAGE"
38932	//   "REQUIRED_TOS_AGREEMENT"
38933	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
38934	//   "RESOURCE_NOT_DELETED"
38935	//   "SCHEMA_VALIDATION_IGNORED"
38936	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
38937	//   "UNDECLARED_PROPERTIES"
38938	//   "UNREACHABLE"
38939	Code string `json:"code,omitempty"`
38940
38941	// Data: [Output Only] Metadata about this warning in key: value format.
38942	// For example:
38943	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
38944	Data []*SslCertificatesScopedListWarningData `json:"data,omitempty"`
38945
38946	// Message: [Output Only] A human-readable description of the warning
38947	// code.
38948	Message string `json:"message,omitempty"`
38949
38950	// ForceSendFields is a list of field names (e.g. "Code") 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. "Code") 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 *SslCertificatesScopedListWarning) MarshalJSON() ([]byte, error) {
38968	type NoMethod SslCertificatesScopedListWarning
38969	raw := NoMethod(*s)
38970	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38971}
38972
38973type SslCertificatesScopedListWarningData struct {
38974	// Key: [Output Only] A key that provides more detail on the warning
38975	// being returned. For example, for warnings where there are no results
38976	// in a list request for a particular zone, this key might be scope and
38977	// the key value might be the zone name. Other examples might be a key
38978	// indicating a deprecated resource and a suggested replacement, or a
38979	// warning about invalid network settings (for example, if an instance
38980	// attempts to perform IP forwarding but is not enabled for IP
38981	// forwarding).
38982	Key string `json:"key,omitempty"`
38983
38984	// Value: [Output Only] A warning data value corresponding to the key.
38985	Value string `json:"value,omitempty"`
38986
38987	// ForceSendFields is a list of field names (e.g. "Key") to
38988	// unconditionally include in API requests. By default, fields with
38989	// empty values are omitted from API requests. However, any non-pointer,
38990	// non-interface field appearing in ForceSendFields will be sent to the
38991	// server regardless of whether the field is empty or not. This may be
38992	// used to include empty fields in Patch requests.
38993	ForceSendFields []string `json:"-"`
38994
38995	// NullFields is a list of field names (e.g. "Key") to include in API
38996	// requests with the JSON null value. By default, fields with empty
38997	// values are omitted from API requests. However, any field with an
38998	// empty value appearing in NullFields will be sent to the server as
38999	// null. It is an error if a field in this list has a non-empty value.
39000	// This may be used to include null fields in Patch requests.
39001	NullFields []string `json:"-"`
39002}
39003
39004func (s *SslCertificatesScopedListWarningData) MarshalJSON() ([]byte, error) {
39005	type NoMethod SslCertificatesScopedListWarningData
39006	raw := NoMethod(*s)
39007	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39008}
39009
39010type SslPoliciesList struct {
39011	// Id: [Output Only] Unique identifier for the resource; defined by the
39012	// server.
39013	Id string `json:"id,omitempty"`
39014
39015	// Items: A list of SslPolicy resources.
39016	Items []*SslPolicy `json:"items,omitempty"`
39017
39018	// Kind: [Output Only] Type of the resource. Always
39019	// compute#sslPoliciesList for lists of sslPolicies.
39020	Kind string `json:"kind,omitempty"`
39021
39022	// NextPageToken: [Output Only] This token allows you to get the next
39023	// page of results for list requests. If the number of results is larger
39024	// than maxResults, use the nextPageToken as a value for the query
39025	// parameter pageToken in the next list request. Subsequent list
39026	// requests will have their own nextPageToken to continue paging through
39027	// the results.
39028	NextPageToken string `json:"nextPageToken,omitempty"`
39029
39030	// SelfLink: [Output Only] Server-defined URL for this resource.
39031	SelfLink string `json:"selfLink,omitempty"`
39032
39033	// Warning: [Output Only] Informational warning message.
39034	Warning *SslPoliciesListWarning `json:"warning,omitempty"`
39035
39036	// ServerResponse contains the HTTP response code and headers from the
39037	// server.
39038	googleapi.ServerResponse `json:"-"`
39039
39040	// ForceSendFields is a list of field names (e.g. "Id") to
39041	// unconditionally include in API requests. By default, fields with
39042	// empty values are omitted from API requests. However, any non-pointer,
39043	// non-interface field appearing in ForceSendFields will be sent to the
39044	// server regardless of whether the field is empty or not. This may be
39045	// used to include empty fields in Patch requests.
39046	ForceSendFields []string `json:"-"`
39047
39048	// NullFields is a list of field names (e.g. "Id") to include in API
39049	// requests with the JSON null value. By default, fields with empty
39050	// values are omitted from API requests. However, any field with an
39051	// empty value appearing in NullFields will be sent to the server as
39052	// null. It is an error if a field in this list has a non-empty value.
39053	// This may be used to include null fields in Patch requests.
39054	NullFields []string `json:"-"`
39055}
39056
39057func (s *SslPoliciesList) MarshalJSON() ([]byte, error) {
39058	type NoMethod SslPoliciesList
39059	raw := NoMethod(*s)
39060	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39061}
39062
39063// SslPoliciesListWarning: [Output Only] Informational warning message.
39064type SslPoliciesListWarning struct {
39065	// Code: [Output Only] A warning code, if applicable. For example,
39066	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
39067	// the response.
39068	//
39069	// Possible values:
39070	//   "CLEANUP_FAILED"
39071	//   "DEPRECATED_RESOURCE_USED"
39072	//   "DEPRECATED_TYPE_USED"
39073	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
39074	//   "EXPERIMENTAL_TYPE_USED"
39075	//   "EXTERNAL_API_WARNING"
39076	//   "FIELD_VALUE_OVERRIDEN"
39077	//   "INJECTED_KERNELS_DEPRECATED"
39078	//   "MISSING_TYPE_DEPENDENCY"
39079	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
39080	//   "NEXT_HOP_CANNOT_IP_FORWARD"
39081	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
39082	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
39083	//   "NEXT_HOP_NOT_RUNNING"
39084	//   "NOT_CRITICAL_ERROR"
39085	//   "NO_RESULTS_ON_PAGE"
39086	//   "REQUIRED_TOS_AGREEMENT"
39087	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
39088	//   "RESOURCE_NOT_DELETED"
39089	//   "SCHEMA_VALIDATION_IGNORED"
39090	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
39091	//   "UNDECLARED_PROPERTIES"
39092	//   "UNREACHABLE"
39093	Code string `json:"code,omitempty"`
39094
39095	// Data: [Output Only] Metadata about this warning in key: value format.
39096	// For example:
39097	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
39098	Data []*SslPoliciesListWarningData `json:"data,omitempty"`
39099
39100	// Message: [Output Only] A human-readable description of the warning
39101	// code.
39102	Message string `json:"message,omitempty"`
39103
39104	// ForceSendFields is a list of field names (e.g. "Code") to
39105	// unconditionally include in API requests. By default, fields with
39106	// empty values are omitted from API requests. However, any non-pointer,
39107	// non-interface field appearing in ForceSendFields will be sent to the
39108	// server regardless of whether the field is empty or not. This may be
39109	// used to include empty fields in Patch requests.
39110	ForceSendFields []string `json:"-"`
39111
39112	// NullFields is a list of field names (e.g. "Code") to include in API
39113	// requests with the JSON null value. By default, fields with empty
39114	// values are omitted from API requests. However, any field with an
39115	// empty value appearing in NullFields will be sent to the server as
39116	// null. It is an error if a field in this list has a non-empty value.
39117	// This may be used to include null fields in Patch requests.
39118	NullFields []string `json:"-"`
39119}
39120
39121func (s *SslPoliciesListWarning) MarshalJSON() ([]byte, error) {
39122	type NoMethod SslPoliciesListWarning
39123	raw := NoMethod(*s)
39124	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39125}
39126
39127type SslPoliciesListWarningData struct {
39128	// Key: [Output Only] A key that provides more detail on the warning
39129	// being returned. For example, for warnings where there are no results
39130	// in a list request for a particular zone, this key might be scope and
39131	// the key value might be the zone name. Other examples might be a key
39132	// indicating a deprecated resource and a suggested replacement, or a
39133	// warning about invalid network settings (for example, if an instance
39134	// attempts to perform IP forwarding but is not enabled for IP
39135	// forwarding).
39136	Key string `json:"key,omitempty"`
39137
39138	// Value: [Output Only] A warning data value corresponding to the key.
39139	Value string `json:"value,omitempty"`
39140
39141	// ForceSendFields is a list of field names (e.g. "Key") to
39142	// unconditionally include in API requests. By default, fields with
39143	// empty values are omitted from API requests. However, any non-pointer,
39144	// non-interface field appearing in ForceSendFields will be sent to the
39145	// server regardless of whether the field is empty or not. This may be
39146	// used to include empty fields in Patch requests.
39147	ForceSendFields []string `json:"-"`
39148
39149	// NullFields is a list of field names (e.g. "Key") to include in API
39150	// requests with the JSON null value. By default, fields with empty
39151	// values are omitted from API requests. However, any field with an
39152	// empty value appearing in NullFields will be sent to the server as
39153	// null. It is an error if a field in this list has a non-empty value.
39154	// This may be used to include null fields in Patch requests.
39155	NullFields []string `json:"-"`
39156}
39157
39158func (s *SslPoliciesListWarningData) MarshalJSON() ([]byte, error) {
39159	type NoMethod SslPoliciesListWarningData
39160	raw := NoMethod(*s)
39161	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39162}
39163
39164type SslPoliciesListAvailableFeaturesResponse struct {
39165	Features []string `json:"features,omitempty"`
39166
39167	// ServerResponse contains the HTTP response code and headers from the
39168	// server.
39169	googleapi.ServerResponse `json:"-"`
39170
39171	// ForceSendFields is a list of field names (e.g. "Features") to
39172	// unconditionally include in API requests. By default, fields with
39173	// empty values are omitted from API requests. However, any non-pointer,
39174	// non-interface field appearing in ForceSendFields will be sent to the
39175	// server regardless of whether the field is empty or not. This may be
39176	// used to include empty fields in Patch requests.
39177	ForceSendFields []string `json:"-"`
39178
39179	// NullFields is a list of field names (e.g. "Features") to include in
39180	// API requests with the JSON null value. By default, fields with empty
39181	// values are omitted from API requests. However, any field with an
39182	// empty value appearing in NullFields will be sent to the server as
39183	// null. It is an error if a field in this list has a non-empty value.
39184	// This may be used to include null fields in Patch requests.
39185	NullFields []string `json:"-"`
39186}
39187
39188func (s *SslPoliciesListAvailableFeaturesResponse) MarshalJSON() ([]byte, error) {
39189	type NoMethod SslPoliciesListAvailableFeaturesResponse
39190	raw := NoMethod(*s)
39191	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39192}
39193
39194// SslPolicy: Represents a Cloud Armor Security Policy resource.
39195//
39196// Only external backend services used by HTTP or HTTPS load balancers
39197// can reference a Security Policy. For more information, read read
39198// Cloud Armor Security Policy Concepts. (== resource_for
39199// beta.sslPolicies ==) (== resource_for v1.sslPolicies ==)
39200type SslPolicy struct {
39201	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
39202	// format.
39203	CreationTimestamp string `json:"creationTimestamp,omitempty"`
39204
39205	// CustomFeatures: A list of features enabled when the selected profile
39206	// is CUSTOM. The
39207	// - method returns the set of features that can be specified in this
39208	// list. This field must be empty if the profile is not CUSTOM.
39209	CustomFeatures []string `json:"customFeatures,omitempty"`
39210
39211	// Description: An optional description of this resource. Provide this
39212	// property when you create the resource.
39213	Description string `json:"description,omitempty"`
39214
39215	// EnabledFeatures: [Output Only] The list of features enabled in the
39216	// SSL policy.
39217	EnabledFeatures []string `json:"enabledFeatures,omitempty"`
39218
39219	// Fingerprint: Fingerprint of this resource. A hash of the contents
39220	// stored in this object. This field is used in optimistic locking. This
39221	// field will be ignored when inserting a SslPolicy. An up-to-date
39222	// fingerprint must be provided in order to update the SslPolicy,
39223	// otherwise the request will fail with error 412 conditionNotMet.
39224	//
39225	// To see the latest fingerprint, make a get() request to retrieve an
39226	// SslPolicy.
39227	Fingerprint string `json:"fingerprint,omitempty"`
39228
39229	// Id: [Output Only] The unique identifier for the resource. This
39230	// identifier is defined by the server.
39231	Id uint64 `json:"id,omitempty,string"`
39232
39233	// Kind: [Output only] Type of the resource. Always compute#sslPolicyfor
39234	// SSL policies.
39235	Kind string `json:"kind,omitempty"`
39236
39237	// MinTlsVersion: The minimum version of SSL protocol that can be used
39238	// by the clients to establish a connection with the load balancer. This
39239	// can be one of TLS_1_0, TLS_1_1, TLS_1_2.
39240	//
39241	// Possible values:
39242	//   "TLS_1_0"
39243	//   "TLS_1_1"
39244	//   "TLS_1_2"
39245	MinTlsVersion string `json:"minTlsVersion,omitempty"`
39246
39247	// Name: Name of the resource. The name must be 1-63 characters long,
39248	// and comply with RFC1035. Specifically, the name must be 1-63
39249	// characters long and match the regular expression
39250	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
39251	// a lowercase letter, and all following characters must be a dash,
39252	// lowercase letter, or digit, except the last character, which cannot
39253	// be a dash.
39254	Name string `json:"name,omitempty"`
39255
39256	// Profile: Profile specifies the set of SSL features that can be used
39257	// by the load balancer when negotiating SSL with clients. This can be
39258	// one of COMPATIBLE, MODERN, RESTRICTED, or CUSTOM. If using CUSTOM,
39259	// the set of SSL features to enable must be specified in the
39260	// customFeatures field.
39261	//
39262	// Possible values:
39263	//   "COMPATIBLE"
39264	//   "CUSTOM"
39265	//   "MODERN"
39266	//   "RESTRICTED"
39267	Profile string `json:"profile,omitempty"`
39268
39269	// SelfLink: [Output Only] Server-defined URL for the resource.
39270	SelfLink string `json:"selfLink,omitempty"`
39271
39272	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
39273	// with the resource id.
39274	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
39275
39276	// TlsSettings: Security settings for the proxy. This field is only
39277	// applicable to a global backend service with the loadBalancingScheme
39278	// set to INTERNAL_SELF_MANAGED.
39279	TlsSettings *ServerTlsSettings `json:"tlsSettings,omitempty"`
39280
39281	// Warnings: [Output Only] If potential misconfigurations are detected
39282	// for this SSL policy, this field will be populated with warning
39283	// messages.
39284	Warnings []*SslPolicyWarnings `json:"warnings,omitempty"`
39285
39286	// ServerResponse contains the HTTP response code and headers from the
39287	// server.
39288	googleapi.ServerResponse `json:"-"`
39289
39290	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
39291	// to unconditionally include in API requests. By default, fields with
39292	// empty values are omitted from API requests. However, any non-pointer,
39293	// non-interface field appearing in ForceSendFields will be sent to the
39294	// server regardless of whether the field is empty or not. This may be
39295	// used to include empty fields in Patch requests.
39296	ForceSendFields []string `json:"-"`
39297
39298	// NullFields is a list of field names (e.g. "CreationTimestamp") to
39299	// include in API requests with the JSON null value. By default, fields
39300	// with empty values are omitted from API requests. However, any field
39301	// with an empty value appearing in NullFields will be sent to the
39302	// server as null. It is an error if a field in this list has a
39303	// non-empty value. This may be used to include null fields in Patch
39304	// requests.
39305	NullFields []string `json:"-"`
39306}
39307
39308func (s *SslPolicy) MarshalJSON() ([]byte, error) {
39309	type NoMethod SslPolicy
39310	raw := NoMethod(*s)
39311	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39312}
39313
39314type SslPolicyWarnings struct {
39315	// Code: [Output Only] A warning code, if applicable. For example,
39316	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
39317	// the response.
39318	//
39319	// Possible values:
39320	//   "CLEANUP_FAILED"
39321	//   "DEPRECATED_RESOURCE_USED"
39322	//   "DEPRECATED_TYPE_USED"
39323	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
39324	//   "EXPERIMENTAL_TYPE_USED"
39325	//   "EXTERNAL_API_WARNING"
39326	//   "FIELD_VALUE_OVERRIDEN"
39327	//   "INJECTED_KERNELS_DEPRECATED"
39328	//   "MISSING_TYPE_DEPENDENCY"
39329	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
39330	//   "NEXT_HOP_CANNOT_IP_FORWARD"
39331	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
39332	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
39333	//   "NEXT_HOP_NOT_RUNNING"
39334	//   "NOT_CRITICAL_ERROR"
39335	//   "NO_RESULTS_ON_PAGE"
39336	//   "REQUIRED_TOS_AGREEMENT"
39337	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
39338	//   "RESOURCE_NOT_DELETED"
39339	//   "SCHEMA_VALIDATION_IGNORED"
39340	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
39341	//   "UNDECLARED_PROPERTIES"
39342	//   "UNREACHABLE"
39343	Code string `json:"code,omitempty"`
39344
39345	// Data: [Output Only] Metadata about this warning in key: value format.
39346	// For example:
39347	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
39348	Data []*SslPolicyWarningsData `json:"data,omitempty"`
39349
39350	// Message: [Output Only] A human-readable description of the warning
39351	// code.
39352	Message string `json:"message,omitempty"`
39353
39354	// ForceSendFields is a list of field names (e.g. "Code") to
39355	// unconditionally include in API requests. By default, fields with
39356	// empty values are omitted from API requests. However, any non-pointer,
39357	// non-interface field appearing in ForceSendFields will be sent to the
39358	// server regardless of whether the field is empty or not. This may be
39359	// used to include empty fields in Patch requests.
39360	ForceSendFields []string `json:"-"`
39361
39362	// NullFields is a list of field names (e.g. "Code") to include in API
39363	// requests with the JSON null value. By default, fields with empty
39364	// values are omitted from API requests. However, any field with an
39365	// empty value appearing in NullFields will be sent to the server as
39366	// null. It is an error if a field in this list has a non-empty value.
39367	// This may be used to include null fields in Patch requests.
39368	NullFields []string `json:"-"`
39369}
39370
39371func (s *SslPolicyWarnings) MarshalJSON() ([]byte, error) {
39372	type NoMethod SslPolicyWarnings
39373	raw := NoMethod(*s)
39374	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39375}
39376
39377type SslPolicyWarningsData struct {
39378	// Key: [Output Only] A key that provides more detail on the warning
39379	// being returned. For example, for warnings where there are no results
39380	// in a list request for a particular zone, this key might be scope and
39381	// the key value might be the zone name. Other examples might be a key
39382	// indicating a deprecated resource and a suggested replacement, or a
39383	// warning about invalid network settings (for example, if an instance
39384	// attempts to perform IP forwarding but is not enabled for IP
39385	// forwarding).
39386	Key string `json:"key,omitempty"`
39387
39388	// Value: [Output Only] A warning data value corresponding to the key.
39389	Value string `json:"value,omitempty"`
39390
39391	// ForceSendFields is a list of field names (e.g. "Key") to
39392	// unconditionally include in API requests. By default, fields with
39393	// empty values are omitted from API requests. However, any non-pointer,
39394	// non-interface field appearing in ForceSendFields will be sent to the
39395	// server regardless of whether the field is empty or not. This may be
39396	// used to include empty fields in Patch requests.
39397	ForceSendFields []string `json:"-"`
39398
39399	// NullFields is a list of field names (e.g. "Key") to include in API
39400	// requests with the JSON null value. By default, fields with empty
39401	// values are omitted from API requests. However, any field with an
39402	// empty value appearing in NullFields will be sent to the server as
39403	// null. It is an error if a field in this list has a non-empty value.
39404	// This may be used to include null fields in Patch requests.
39405	NullFields []string `json:"-"`
39406}
39407
39408func (s *SslPolicyWarningsData) MarshalJSON() ([]byte, error) {
39409	type NoMethod SslPolicyWarningsData
39410	raw := NoMethod(*s)
39411	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39412}
39413
39414type SslPolicyReference struct {
39415	// SslPolicy: URL of the SSL policy resource. Set this to empty string
39416	// to clear any existing SSL policy associated with the target proxy
39417	// resource.
39418	SslPolicy string `json:"sslPolicy,omitempty"`
39419
39420	// ForceSendFields is a list of field names (e.g. "SslPolicy") 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. "SslPolicy") to include in
39429	// API 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 *SslPolicyReference) MarshalJSON() ([]byte, error) {
39438	type NoMethod SslPolicyReference
39439	raw := NoMethod(*s)
39440	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39441}
39442
39443type StatefulPolicy struct {
39444	PreservedState *StatefulPolicyPreservedState `json:"preservedState,omitempty"`
39445
39446	// ForceSendFields is a list of field names (e.g. "PreservedState") to
39447	// unconditionally include in API requests. By default, fields with
39448	// empty values are omitted from API requests. However, any non-pointer,
39449	// non-interface field appearing in ForceSendFields will be sent to the
39450	// server regardless of whether the field is empty or not. This may be
39451	// used to include empty fields in Patch requests.
39452	ForceSendFields []string `json:"-"`
39453
39454	// NullFields is a list of field names (e.g. "PreservedState") to
39455	// include in API requests with the JSON null value. By default, fields
39456	// with empty values are omitted from API requests. However, any field
39457	// with an empty value appearing in NullFields will be sent to the
39458	// server as null. It is an error if a field in this list has a
39459	// non-empty value. This may be used to include null fields in Patch
39460	// requests.
39461	NullFields []string `json:"-"`
39462}
39463
39464func (s *StatefulPolicy) MarshalJSON() ([]byte, error) {
39465	type NoMethod StatefulPolicy
39466	raw := NoMethod(*s)
39467	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39468}
39469
39470// StatefulPolicyPreservedState: Configuration of preserved resources.
39471type StatefulPolicyPreservedState struct {
39472	// Disks: Disks created on the instances that will be preserved on
39473	// instance delete, update, etc. This map is keyed with the device names
39474	// of the disks.
39475	Disks map[string]StatefulPolicyPreservedStateDiskDevice `json:"disks,omitempty"`
39476
39477	// ForceSendFields is a list of field names (e.g. "Disks") to
39478	// unconditionally include in API requests. By default, fields with
39479	// empty values are omitted from API requests. However, any non-pointer,
39480	// non-interface field appearing in ForceSendFields will be sent to the
39481	// server regardless of whether the field is empty or not. This may be
39482	// used to include empty fields in Patch requests.
39483	ForceSendFields []string `json:"-"`
39484
39485	// NullFields is a list of field names (e.g. "Disks") to include in API
39486	// requests with the JSON null value. By default, fields with empty
39487	// values are omitted from API requests. However, any field with an
39488	// empty value appearing in NullFields will be sent to the server as
39489	// null. It is an error if a field in this list has a non-empty value.
39490	// This may be used to include null fields in Patch requests.
39491	NullFields []string `json:"-"`
39492}
39493
39494func (s *StatefulPolicyPreservedState) MarshalJSON() ([]byte, error) {
39495	type NoMethod StatefulPolicyPreservedState
39496	raw := NoMethod(*s)
39497	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39498}
39499
39500type StatefulPolicyPreservedStateDiskDevice struct {
39501	// AutoDelete: These stateful disks will never be deleted during
39502	// autohealing, update or VM instance recreate operations. This flag is
39503	// used to configure if the disk should be deleted after it is no longer
39504	// used by the group, e.g. when the given instance or the whole group is
39505	// deleted. Note: disks attached in READ_ONLY mode cannot be
39506	// auto-deleted.
39507	//
39508	// Possible values:
39509	//   "NEVER"
39510	//   "ON_PERMANENT_INSTANCE_DELETION"
39511	AutoDelete string `json:"autoDelete,omitempty"`
39512
39513	// ForceSendFields is a list of field names (e.g. "AutoDelete") to
39514	// unconditionally include in API requests. By default, fields with
39515	// empty values are omitted from API requests. However, any non-pointer,
39516	// non-interface field appearing in ForceSendFields will be sent to the
39517	// server regardless of whether the field is empty or not. This may be
39518	// used to include empty fields in Patch requests.
39519	ForceSendFields []string `json:"-"`
39520
39521	// NullFields is a list of field names (e.g. "AutoDelete") to include in
39522	// API requests with the JSON null value. By default, fields with empty
39523	// values are omitted from API requests. However, any field with an
39524	// empty value appearing in NullFields will be sent to the server as
39525	// null. It is an error if a field in this list has a non-empty value.
39526	// This may be used to include null fields in Patch requests.
39527	NullFields []string `json:"-"`
39528}
39529
39530func (s *StatefulPolicyPreservedStateDiskDevice) MarshalJSON() ([]byte, error) {
39531	type NoMethod StatefulPolicyPreservedStateDiskDevice
39532	raw := NoMethod(*s)
39533	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39534}
39535
39536// Subnetwork: Represents a Subnetwork resource.
39537//
39538// A subnetwork (also known as a subnet) is a logical partition of a
39539// Virtual Private Cloud network with one primary IP range and zero or
39540// more secondary IP ranges. For more information, read  Virtual Private
39541// Cloud (VPC) Network. (== resource_for beta.subnetworks ==) (==
39542// resource_for v1.subnetworks ==)
39543type Subnetwork struct {
39544	// AggregationInterval: Can only be specified if VPC flow logging for
39545	// this subnetwork is enabled. Sets the aggregation interval for
39546	// collecting flow logs. Increasing the interval time reduces the amount
39547	// of generated flow logs for long-lasting connections. Default is an
39548	// interval of 5 seconds per connection. Valid values: INTERVAL_5_SEC,
39549	// INTERVAL_30_SEC, INTERVAL_1_MIN, INTERVAL_5_MIN, INTERVAL_10_MIN,
39550	// INTERVAL_15_MIN.
39551	//
39552	// Possible values:
39553	//   "INTERVAL_10_MIN"
39554	//   "INTERVAL_15_MIN"
39555	//   "INTERVAL_1_MIN"
39556	//   "INTERVAL_30_SEC"
39557	//   "INTERVAL_5_MIN"
39558	//   "INTERVAL_5_SEC"
39559	AggregationInterval string `json:"aggregationInterval,omitempty"`
39560
39561	// AllowSubnetCidrRoutesOverlap: Whether this subnetwork can conflict
39562	// with static routes. Setting this to true allows this subnetwork's
39563	// primary and secondary ranges to conflict with routes that have
39564	// already been configured on the corresponding network. Static routes
39565	// will take precedence over the subnetwork route if the route prefix
39566	// length is at least as large as the subnetwork prefix length.
39567	//
39568	// Also, packets destined to IPs within subnetwork may contain
39569	// private/sensitive data and are prevented from leaving the virtual
39570	// network. Setting this field to true will disable this feature.
39571	//
39572	// The default value is false and applies to all existing subnetworks
39573	// and automatically created subnetworks.
39574	//
39575	// This field cannot be set to true at resource creation time.
39576	AllowSubnetCidrRoutesOverlap bool `json:"allowSubnetCidrRoutesOverlap,omitempty"`
39577
39578	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
39579	// format.
39580	CreationTimestamp string `json:"creationTimestamp,omitempty"`
39581
39582	// Description: An optional description of this resource. Provide this
39583	// property when you create the resource. This field can be set only at
39584	// resource creation time.
39585	Description string `json:"description,omitempty"`
39586
39587	// EnableFlowLogs: Whether to enable flow logging for this subnetwork.
39588	// If this field is not explicitly set, it will not appear in get
39589	// listings. If not set the default behavior is to disable flow logging.
39590	EnableFlowLogs bool `json:"enableFlowLogs,omitempty"`
39591
39592	// EnablePrivateV6Access: Deprecated in favor of enable in
39593	// PrivateIpv6GoogleAccess. Whether the VMs in this subnet can directly
39594	// access Google services via internal IPv6 addresses. This field can be
39595	// both set at resource creation time and updated using patch.
39596	EnablePrivateV6Access bool `json:"enablePrivateV6Access,omitempty"`
39597
39598	// Fingerprint: Fingerprint of this resource. A hash of the contents
39599	// stored in this object. This field is used in optimistic locking. This
39600	// field will be ignored when inserting a Subnetwork. An up-to-date
39601	// fingerprint must be provided in order to update the Subnetwork,
39602	// otherwise the request will fail with error 412 conditionNotMet.
39603	//
39604	// To see the latest fingerprint, make a get() request to retrieve a
39605	// Subnetwork.
39606	Fingerprint string `json:"fingerprint,omitempty"`
39607
39608	// FlowSampling: Can only be specified if VPC flow logging for this
39609	// subnetwork is enabled. The value of the field must be in [0, 1]. Set
39610	// the sampling rate of VPC flow logs within the subnetwork where 1.0
39611	// means all collected logs are reported and 0.0 means no logs are
39612	// reported. Default is 0.5, which means half of all collected logs are
39613	// reported.
39614	FlowSampling float64 `json:"flowSampling,omitempty"`
39615
39616	// GatewayAddress: [Output Only] The gateway address for default routes
39617	// to reach destination addresses outside this subnetwork.
39618	GatewayAddress string `json:"gatewayAddress,omitempty"`
39619
39620	// Id: [Output Only] The unique identifier for the resource. This
39621	// identifier is defined by the server.
39622	Id uint64 `json:"id,omitempty,string"`
39623
39624	// IpCidrRange: The range of internal addresses that are owned by this
39625	// subnetwork. Provide this property when you create the subnetwork. For
39626	// example, 10.0.0.0/8 or 192.168.0.0/16. Ranges must be unique and
39627	// non-overlapping within a network. Only IPv4 is supported. This field
39628	// can be set only at resource creation time.
39629	IpCidrRange string `json:"ipCidrRange,omitempty"`
39630
39631	// Ipv6CidrRange: [Output Only] The range of internal IPv6 addresses
39632	// that are owned by this subnetwork.
39633	Ipv6CidrRange string `json:"ipv6CidrRange,omitempty"`
39634
39635	// Kind: [Output Only] Type of the resource. Always compute#subnetwork
39636	// for Subnetwork resources.
39637	Kind string `json:"kind,omitempty"`
39638
39639	// LogConfig: This field denotes the VPC flow logging options for this
39640	// subnetwork. If logging is enabled, logs are exported to Stackdriver.
39641	LogConfig *SubnetworkLogConfig `json:"logConfig,omitempty"`
39642
39643	// Metadata: Can only be specified if VPC flow logging for this
39644	// subnetwork is enabled. Configures whether metadata fields should be
39645	// added to the reported VPC flow logs. Default is INCLUDE_ALL_METADATA.
39646	//
39647	// Possible values:
39648	//   "EXCLUDE_ALL_METADATA"
39649	//   "INCLUDE_ALL_METADATA"
39650	Metadata string `json:"metadata,omitempty"`
39651
39652	// Name: The name of the resource, provided by the client when initially
39653	// creating the resource. The name must be 1-63 characters long, and
39654	// comply with RFC1035. Specifically, the name must be 1-63 characters
39655	// long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?`
39656	// which means the first character must be a lowercase letter, and all
39657	// following characters must be a dash, lowercase letter, or digit,
39658	// except the last character, which cannot be a dash.
39659	Name string `json:"name,omitempty"`
39660
39661	// Network: The URL of the network to which this subnetwork belongs,
39662	// provided by the client when initially creating the subnetwork. Only
39663	// networks that are in the distributed mode can have subnetworks. This
39664	// field can be set only at resource creation time.
39665	Network string `json:"network,omitempty"`
39666
39667	// PrivateIpGoogleAccess: Whether the VMs in this subnet can access
39668	// Google services without assigned external IP addresses. This field
39669	// can be both set at resource creation time and updated using
39670	// setPrivateIpGoogleAccess.
39671	PrivateIpGoogleAccess bool `json:"privateIpGoogleAccess,omitempty"`
39672
39673	// PrivateIpv6GoogleAccess: The private IPv6 google access type for the
39674	// VMs in this subnet. This is an expanded field of
39675	// enablePrivateV6Access. If both fields are set,
39676	// privateIpv6GoogleAccess will take priority.
39677	//
39678	// This field can be both set at resource creation time and updated
39679	// using patch.
39680	//
39681	// Possible values:
39682	//   "DISABLE_GOOGLE_ACCESS"
39683	//   "ENABLE_BIDIRECTIONAL_ACCESS_TO_GOOGLE"
39684	//   "ENABLE_OUTBOUND_VM_ACCESS_TO_GOOGLE"
39685	//   "ENABLE_OUTBOUND_VM_ACCESS_TO_GOOGLE_FOR_SERVICE_ACCOUNTS"
39686	PrivateIpv6GoogleAccess string `json:"privateIpv6GoogleAccess,omitempty"`
39687
39688	// PrivateIpv6GoogleAccessServiceAccounts: The service accounts can be
39689	// used to selectively turn on Private IPv6 Google Access only on the
39690	// VMs primary service account matching the value. This value only takes
39691	// effect when PrivateIpv6GoogleAccess is
39692	// ENABLE_OUTBOUND_VM_ACCESS_TO_GOOGLE_FOR_SERVICE_ACCOUNTS or
39693	// ENABLE_BIDIRECTIONAL_ACCESS_TO_GOOGLE_FOR_SERVICE_ACCOUNTS.
39694	PrivateIpv6GoogleAccessServiceAccounts []string `json:"privateIpv6GoogleAccessServiceAccounts,omitempty"`
39695
39696	// Purpose: The purpose of the resource. This field can be either
39697	// PRIVATE_RFC_1918 or INTERNAL_HTTPS_LOAD_BALANCER. A subnetwork with
39698	// purpose set to INTERNAL_HTTPS_LOAD_BALANCER is a user-created
39699	// subnetwork that is reserved for Internal HTTP(S) Load Balancing. If
39700	// unspecified, the purpose defaults to PRIVATE_RFC_1918.
39701	//
39702	// Possible values:
39703	//   "AGGREGATE"
39704	//   "INTERNAL_HTTPS_LOAD_BALANCER"
39705	//   "PRIVATE"
39706	//   "PRIVATE_RFC_1918"
39707	Purpose string `json:"purpose,omitempty"`
39708
39709	// RangeType: The type of IP CIDR range to associate with this
39710	// subnetwork. The default is RFC_1918. When creating a subnetwork in
39711	// non-RFC 1918 range, this field must be set to NON_RFC_1918.
39712	//
39713	// Possible values:
39714	//   "NON_RFC_1918"
39715	//   "RFC_1918"
39716	RangeType string `json:"rangeType,omitempty"`
39717
39718	// Region: URL of the region where the Subnetwork resides. This field
39719	// can be set only at resource creation time.
39720	Region string `json:"region,omitempty"`
39721
39722	// Role: The role of subnetwork. Currenly, this field is only used when
39723	// purpose = INTERNAL_HTTPS_LOAD_BALANCER. The value can be set to
39724	// ACTIVE or BACKUP. An ACTIVE subnetwork is one that is currently being
39725	// used for Internal HTTP(S) Load Balancing. A BACKUP subnetwork is one
39726	// that is ready to be promoted to ACTIVE or is currently draining. This
39727	// field can be updated with a patch request.
39728	//
39729	// Possible values:
39730	//   "ACTIVE"
39731	//   "BACKUP"
39732	Role string `json:"role,omitempty"`
39733
39734	// SecondaryIpRanges: An array of configurations for secondary IP ranges
39735	// for VM instances contained in this subnetwork. The primary IP of such
39736	// VM must belong to the primary ipCidrRange of the subnetwork. The
39737	// alias IPs may belong to either primary or secondary ranges. This
39738	// field can be updated with a patch request.
39739	SecondaryIpRanges []*SubnetworkSecondaryRange `json:"secondaryIpRanges,omitempty"`
39740
39741	// SelfLink: [Output Only] Server-defined URL for the resource.
39742	SelfLink string `json:"selfLink,omitempty"`
39743
39744	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
39745	// with the resource id.
39746	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
39747
39748	// State: [Output Only] The state of the subnetwork, which can be one of
39749	// READY or DRAINING. A subnetwork that is READY is ready to be used.
39750	// The state of DRAINING is only applicable to subnetworks that have the
39751	// purpose set to INTERNAL_HTTPS_LOAD_BALANCER and indicates that
39752	// connections to the load balancer are being drained. A subnetwork that
39753	// is draining cannot be used or modified until it reaches a status of
39754	// READY.
39755	//
39756	// Possible values:
39757	//   "DRAINING"
39758	//   "READY"
39759	State string `json:"state,omitempty"`
39760
39761	// ServerResponse contains the HTTP response code and headers from the
39762	// server.
39763	googleapi.ServerResponse `json:"-"`
39764
39765	// ForceSendFields is a list of field names (e.g. "AggregationInterval")
39766	// to unconditionally include in API requests. By default, fields with
39767	// empty values are omitted from API requests. However, any non-pointer,
39768	// non-interface field appearing in ForceSendFields will be sent to the
39769	// server regardless of whether the field is empty or not. This may be
39770	// used to include empty fields in Patch requests.
39771	ForceSendFields []string `json:"-"`
39772
39773	// NullFields is a list of field names (e.g. "AggregationInterval") to
39774	// include in API requests with the JSON null value. By default, fields
39775	// with empty values are omitted from API requests. However, any field
39776	// with an empty value appearing in NullFields will be sent to the
39777	// server as null. It is an error if a field in this list has a
39778	// non-empty value. This may be used to include null fields in Patch
39779	// requests.
39780	NullFields []string `json:"-"`
39781}
39782
39783func (s *Subnetwork) MarshalJSON() ([]byte, error) {
39784	type NoMethod Subnetwork
39785	raw := NoMethod(*s)
39786	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39787}
39788
39789func (s *Subnetwork) UnmarshalJSON(data []byte) error {
39790	type NoMethod Subnetwork
39791	var s1 struct {
39792		FlowSampling gensupport.JSONFloat64 `json:"flowSampling"`
39793		*NoMethod
39794	}
39795	s1.NoMethod = (*NoMethod)(s)
39796	if err := json.Unmarshal(data, &s1); err != nil {
39797		return err
39798	}
39799	s.FlowSampling = float64(s1.FlowSampling)
39800	return nil
39801}
39802
39803type SubnetworkAggregatedList struct {
39804	// Id: [Output Only] Unique identifier for the resource; defined by the
39805	// server.
39806	Id string `json:"id,omitempty"`
39807
39808	// Items: A list of SubnetworksScopedList resources.
39809	Items map[string]SubnetworksScopedList `json:"items,omitempty"`
39810
39811	// Kind: [Output Only] Type of resource. Always
39812	// compute#subnetworkAggregatedList for aggregated lists of subnetworks.
39813	Kind string `json:"kind,omitempty"`
39814
39815	// NextPageToken: [Output Only] This token allows you to get the next
39816	// page of results for list requests. If the number of results is larger
39817	// than maxResults, use the nextPageToken as a value for the query
39818	// parameter pageToken in the next list request. Subsequent list
39819	// requests will have their own nextPageToken to continue paging through
39820	// the results.
39821	NextPageToken string `json:"nextPageToken,omitempty"`
39822
39823	// SelfLink: [Output Only] Server-defined URL for this resource.
39824	SelfLink string `json:"selfLink,omitempty"`
39825
39826	// Warning: [Output Only] Informational warning message.
39827	Warning *SubnetworkAggregatedListWarning `json:"warning,omitempty"`
39828
39829	// ServerResponse contains the HTTP response code and headers from the
39830	// server.
39831	googleapi.ServerResponse `json:"-"`
39832
39833	// ForceSendFields is a list of field names (e.g. "Id") to
39834	// unconditionally include in API requests. By default, fields with
39835	// empty values are omitted from API requests. However, any non-pointer,
39836	// non-interface field appearing in ForceSendFields will be sent to the
39837	// server regardless of whether the field is empty or not. This may be
39838	// used to include empty fields in Patch requests.
39839	ForceSendFields []string `json:"-"`
39840
39841	// NullFields is a list of field names (e.g. "Id") to include in API
39842	// requests with the JSON null value. By default, fields with empty
39843	// values are omitted from API requests. However, any field with an
39844	// empty value appearing in NullFields will be sent to the server as
39845	// null. It is an error if a field in this list has a non-empty value.
39846	// This may be used to include null fields in Patch requests.
39847	NullFields []string `json:"-"`
39848}
39849
39850func (s *SubnetworkAggregatedList) MarshalJSON() ([]byte, error) {
39851	type NoMethod SubnetworkAggregatedList
39852	raw := NoMethod(*s)
39853	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39854}
39855
39856// SubnetworkAggregatedListWarning: [Output Only] Informational warning
39857// message.
39858type SubnetworkAggregatedListWarning struct {
39859	// Code: [Output Only] A warning code, if applicable. For example,
39860	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
39861	// the response.
39862	//
39863	// Possible values:
39864	//   "CLEANUP_FAILED"
39865	//   "DEPRECATED_RESOURCE_USED"
39866	//   "DEPRECATED_TYPE_USED"
39867	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
39868	//   "EXPERIMENTAL_TYPE_USED"
39869	//   "EXTERNAL_API_WARNING"
39870	//   "FIELD_VALUE_OVERRIDEN"
39871	//   "INJECTED_KERNELS_DEPRECATED"
39872	//   "MISSING_TYPE_DEPENDENCY"
39873	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
39874	//   "NEXT_HOP_CANNOT_IP_FORWARD"
39875	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
39876	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
39877	//   "NEXT_HOP_NOT_RUNNING"
39878	//   "NOT_CRITICAL_ERROR"
39879	//   "NO_RESULTS_ON_PAGE"
39880	//   "REQUIRED_TOS_AGREEMENT"
39881	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
39882	//   "RESOURCE_NOT_DELETED"
39883	//   "SCHEMA_VALIDATION_IGNORED"
39884	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
39885	//   "UNDECLARED_PROPERTIES"
39886	//   "UNREACHABLE"
39887	Code string `json:"code,omitempty"`
39888
39889	// Data: [Output Only] Metadata about this warning in key: value format.
39890	// For example:
39891	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
39892	Data []*SubnetworkAggregatedListWarningData `json:"data,omitempty"`
39893
39894	// Message: [Output Only] A human-readable description of the warning
39895	// code.
39896	Message string `json:"message,omitempty"`
39897
39898	// ForceSendFields is a list of field names (e.g. "Code") to
39899	// unconditionally include in API requests. By default, fields with
39900	// empty values are omitted from API requests. However, any non-pointer,
39901	// non-interface field appearing in ForceSendFields will be sent to the
39902	// server regardless of whether the field is empty or not. This may be
39903	// used to include empty fields in Patch requests.
39904	ForceSendFields []string `json:"-"`
39905
39906	// NullFields is a list of field names (e.g. "Code") to include in API
39907	// requests with the JSON null value. By default, fields with empty
39908	// values are omitted from API requests. However, any field with an
39909	// empty value appearing in NullFields will be sent to the server as
39910	// null. It is an error if a field in this list has a non-empty value.
39911	// This may be used to include null fields in Patch requests.
39912	NullFields []string `json:"-"`
39913}
39914
39915func (s *SubnetworkAggregatedListWarning) MarshalJSON() ([]byte, error) {
39916	type NoMethod SubnetworkAggregatedListWarning
39917	raw := NoMethod(*s)
39918	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39919}
39920
39921type SubnetworkAggregatedListWarningData struct {
39922	// Key: [Output Only] A key that provides more detail on the warning
39923	// being returned. For example, for warnings where there are no results
39924	// in a list request for a particular zone, this key might be scope and
39925	// the key value might be the zone name. Other examples might be a key
39926	// indicating a deprecated resource and a suggested replacement, or a
39927	// warning about invalid network settings (for example, if an instance
39928	// attempts to perform IP forwarding but is not enabled for IP
39929	// forwarding).
39930	Key string `json:"key,omitempty"`
39931
39932	// Value: [Output Only] A warning data value corresponding to the key.
39933	Value string `json:"value,omitempty"`
39934
39935	// ForceSendFields is a list of field names (e.g. "Key") to
39936	// unconditionally include in API requests. By default, fields with
39937	// empty values are omitted from API requests. However, any non-pointer,
39938	// non-interface field appearing in ForceSendFields will be sent to the
39939	// server regardless of whether the field is empty or not. This may be
39940	// used to include empty fields in Patch requests.
39941	ForceSendFields []string `json:"-"`
39942
39943	// NullFields is a list of field names (e.g. "Key") to include in API
39944	// requests with the JSON null value. By default, fields with empty
39945	// values are omitted from API requests. However, any field with an
39946	// empty value appearing in NullFields will be sent to the server as
39947	// null. It is an error if a field in this list has a non-empty value.
39948	// This may be used to include null fields in Patch requests.
39949	NullFields []string `json:"-"`
39950}
39951
39952func (s *SubnetworkAggregatedListWarningData) MarshalJSON() ([]byte, error) {
39953	type NoMethod SubnetworkAggregatedListWarningData
39954	raw := NoMethod(*s)
39955	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39956}
39957
39958// SubnetworkList: Contains a list of Subnetwork resources.
39959type SubnetworkList struct {
39960	// Id: [Output Only] Unique identifier for the resource; defined by the
39961	// server.
39962	Id string `json:"id,omitempty"`
39963
39964	// Items: A list of Subnetwork resources.
39965	Items []*Subnetwork `json:"items,omitempty"`
39966
39967	// Kind: [Output Only] Type of resource. Always compute#subnetworkList
39968	// for lists of subnetworks.
39969	Kind string `json:"kind,omitempty"`
39970
39971	// NextPageToken: [Output Only] This token allows you to get the next
39972	// page of results for list requests. If the number of results is larger
39973	// than maxResults, use the nextPageToken as a value for the query
39974	// parameter pageToken in the next list request. Subsequent list
39975	// requests will have their own nextPageToken to continue paging through
39976	// the results.
39977	NextPageToken string `json:"nextPageToken,omitempty"`
39978
39979	// SelfLink: [Output Only] Server-defined URL for this resource.
39980	SelfLink string `json:"selfLink,omitempty"`
39981
39982	// Warning: [Output Only] Informational warning message.
39983	Warning *SubnetworkListWarning `json:"warning,omitempty"`
39984
39985	// ServerResponse contains the HTTP response code and headers from the
39986	// server.
39987	googleapi.ServerResponse `json:"-"`
39988
39989	// ForceSendFields is a list of field names (e.g. "Id") to
39990	// unconditionally include in API requests. By default, fields with
39991	// empty values are omitted from API requests. However, any non-pointer,
39992	// non-interface field appearing in ForceSendFields will be sent to the
39993	// server regardless of whether the field is empty or not. This may be
39994	// used to include empty fields in Patch requests.
39995	ForceSendFields []string `json:"-"`
39996
39997	// NullFields is a list of field names (e.g. "Id") to include in API
39998	// requests with the JSON null value. By default, fields with empty
39999	// values are omitted from API requests. However, any field with an
40000	// empty value appearing in NullFields will be sent to the server as
40001	// null. It is an error if a field in this list has a non-empty value.
40002	// This may be used to include null fields in Patch requests.
40003	NullFields []string `json:"-"`
40004}
40005
40006func (s *SubnetworkList) MarshalJSON() ([]byte, error) {
40007	type NoMethod SubnetworkList
40008	raw := NoMethod(*s)
40009	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40010}
40011
40012// SubnetworkListWarning: [Output Only] Informational warning message.
40013type SubnetworkListWarning struct {
40014	// Code: [Output Only] A warning code, if applicable. For example,
40015	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
40016	// the response.
40017	//
40018	// Possible values:
40019	//   "CLEANUP_FAILED"
40020	//   "DEPRECATED_RESOURCE_USED"
40021	//   "DEPRECATED_TYPE_USED"
40022	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
40023	//   "EXPERIMENTAL_TYPE_USED"
40024	//   "EXTERNAL_API_WARNING"
40025	//   "FIELD_VALUE_OVERRIDEN"
40026	//   "INJECTED_KERNELS_DEPRECATED"
40027	//   "MISSING_TYPE_DEPENDENCY"
40028	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
40029	//   "NEXT_HOP_CANNOT_IP_FORWARD"
40030	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
40031	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
40032	//   "NEXT_HOP_NOT_RUNNING"
40033	//   "NOT_CRITICAL_ERROR"
40034	//   "NO_RESULTS_ON_PAGE"
40035	//   "REQUIRED_TOS_AGREEMENT"
40036	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
40037	//   "RESOURCE_NOT_DELETED"
40038	//   "SCHEMA_VALIDATION_IGNORED"
40039	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
40040	//   "UNDECLARED_PROPERTIES"
40041	//   "UNREACHABLE"
40042	Code string `json:"code,omitempty"`
40043
40044	// Data: [Output Only] Metadata about this warning in key: value format.
40045	// For example:
40046	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
40047	Data []*SubnetworkListWarningData `json:"data,omitempty"`
40048
40049	// Message: [Output Only] A human-readable description of the warning
40050	// code.
40051	Message string `json:"message,omitempty"`
40052
40053	// ForceSendFields is a list of field names (e.g. "Code") to
40054	// unconditionally include in API requests. By default, fields with
40055	// empty values are omitted from API requests. However, any non-pointer,
40056	// non-interface field appearing in ForceSendFields will be sent to the
40057	// server regardless of whether the field is empty or not. This may be
40058	// used to include empty fields in Patch requests.
40059	ForceSendFields []string `json:"-"`
40060
40061	// NullFields is a list of field names (e.g. "Code") to include in API
40062	// requests with the JSON null value. By default, fields with empty
40063	// values are omitted from API requests. However, any field with an
40064	// empty value appearing in NullFields will be sent to the server as
40065	// null. It is an error if a field in this list has a non-empty value.
40066	// This may be used to include null fields in Patch requests.
40067	NullFields []string `json:"-"`
40068}
40069
40070func (s *SubnetworkListWarning) MarshalJSON() ([]byte, error) {
40071	type NoMethod SubnetworkListWarning
40072	raw := NoMethod(*s)
40073	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40074}
40075
40076type SubnetworkListWarningData struct {
40077	// Key: [Output Only] A key that provides more detail on the warning
40078	// being returned. For example, for warnings where there are no results
40079	// in a list request for a particular zone, this key might be scope and
40080	// the key value might be the zone name. Other examples might be a key
40081	// indicating a deprecated resource and a suggested replacement, or a
40082	// warning about invalid network settings (for example, if an instance
40083	// attempts to perform IP forwarding but is not enabled for IP
40084	// forwarding).
40085	Key string `json:"key,omitempty"`
40086
40087	// Value: [Output Only] A warning data value corresponding to the key.
40088	Value string `json:"value,omitempty"`
40089
40090	// ForceSendFields is a list of field names (e.g. "Key") to
40091	// unconditionally include in API requests. By default, fields with
40092	// empty values are omitted from API requests. However, any non-pointer,
40093	// non-interface field appearing in ForceSendFields will be sent to the
40094	// server regardless of whether the field is empty or not. This may be
40095	// used to include empty fields in Patch requests.
40096	ForceSendFields []string `json:"-"`
40097
40098	// NullFields is a list of field names (e.g. "Key") to include in API
40099	// requests with the JSON null value. By default, fields with empty
40100	// values are omitted from API requests. However, any field with an
40101	// empty value appearing in NullFields will be sent to the server as
40102	// null. It is an error if a field in this list has a non-empty value.
40103	// This may be used to include null fields in Patch requests.
40104	NullFields []string `json:"-"`
40105}
40106
40107func (s *SubnetworkListWarningData) MarshalJSON() ([]byte, error) {
40108	type NoMethod SubnetworkListWarningData
40109	raw := NoMethod(*s)
40110	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40111}
40112
40113// SubnetworkLogConfig: The available logging options for this
40114// subnetwork.
40115type SubnetworkLogConfig struct {
40116	// AggregationInterval: Can only be specified if VPC flow logging for
40117	// this subnetwork is enabled. Toggles the aggregation interval for
40118	// collecting flow logs. Increasing the interval time will reduce the
40119	// amount of generated flow logs for long lasting connections. Default
40120	// is an interval of 5 seconds per connection.
40121	//
40122	// Possible values:
40123	//   "INTERVAL_10_MIN"
40124	//   "INTERVAL_15_MIN"
40125	//   "INTERVAL_1_MIN"
40126	//   "INTERVAL_30_SEC"
40127	//   "INTERVAL_5_MIN"
40128	//   "INTERVAL_5_SEC"
40129	AggregationInterval string `json:"aggregationInterval,omitempty"`
40130
40131	// Enable: Whether to enable flow logging for this subnetwork. If this
40132	// field is not explicitly set, it will not appear in get listings. If
40133	// not set the default behavior is to disable flow logging.
40134	Enable bool `json:"enable,omitempty"`
40135
40136	// FilterExpr: Can only be specified if VPC flow logs for this
40137	// subnetwork is enabled. Export filter used to define which VPC flow
40138	// logs should be logged.
40139	FilterExpr string `json:"filterExpr,omitempty"`
40140
40141	// FlowSampling: Can only be specified if VPC flow logging for this
40142	// subnetwork is enabled. The value of the field must be in [0, 1]. Set
40143	// the sampling rate of VPC flow logs within the subnetwork where 1.0
40144	// means all collected logs are reported and 0.0 means no logs are
40145	// reported. Default is 0.5, which means half of all collected logs are
40146	// reported.
40147	FlowSampling float64 `json:"flowSampling,omitempty"`
40148
40149	// Metadata: Can only be specified if VPC flow logs for this subnetwork
40150	// is enabled. Configures whether all, none or a subset of metadata
40151	// fields should be added to the reported VPC flow logs. Default is
40152	// INCLUDE_ALL_METADATA.
40153	//
40154	// Possible values:
40155	//   "CUSTOM_METADATA"
40156	//   "EXCLUDE_ALL_METADATA"
40157	//   "INCLUDE_ALL_METADATA"
40158	Metadata string `json:"metadata,omitempty"`
40159
40160	// MetadataFields: Can only be specified if VPC flow logs for this
40161	// subnetwork is enabled and "metadata" was set to CUSTOM_METADATA.
40162	MetadataFields []string `json:"metadataFields,omitempty"`
40163
40164	// ForceSendFields is a list of field names (e.g. "AggregationInterval")
40165	// to unconditionally include in API requests. By default, fields with
40166	// empty values are omitted from API requests. However, any non-pointer,
40167	// non-interface field appearing in ForceSendFields will be sent to the
40168	// server regardless of whether the field is empty or not. This may be
40169	// used to include empty fields in Patch requests.
40170	ForceSendFields []string `json:"-"`
40171
40172	// NullFields is a list of field names (e.g. "AggregationInterval") to
40173	// include in API requests with the JSON null value. By default, fields
40174	// with empty values are omitted from API requests. However, any field
40175	// with an empty value appearing in NullFields will be sent to the
40176	// server as null. It is an error if a field in this list has a
40177	// non-empty value. This may be used to include null fields in Patch
40178	// requests.
40179	NullFields []string `json:"-"`
40180}
40181
40182func (s *SubnetworkLogConfig) MarshalJSON() ([]byte, error) {
40183	type NoMethod SubnetworkLogConfig
40184	raw := NoMethod(*s)
40185	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40186}
40187
40188func (s *SubnetworkLogConfig) UnmarshalJSON(data []byte) error {
40189	type NoMethod SubnetworkLogConfig
40190	var s1 struct {
40191		FlowSampling gensupport.JSONFloat64 `json:"flowSampling"`
40192		*NoMethod
40193	}
40194	s1.NoMethod = (*NoMethod)(s)
40195	if err := json.Unmarshal(data, &s1); err != nil {
40196		return err
40197	}
40198	s.FlowSampling = float64(s1.FlowSampling)
40199	return nil
40200}
40201
40202// SubnetworkSecondaryRange: Represents a secondary IP range of a
40203// subnetwork.
40204type SubnetworkSecondaryRange struct {
40205	// IpCidrRange: The range of IP addresses belonging to this subnetwork
40206	// secondary range. Provide this property when you create the
40207	// subnetwork. Ranges must be unique and non-overlapping with all
40208	// primary and secondary IP ranges within a network. Only IPv4 is
40209	// supported.
40210	IpCidrRange string `json:"ipCidrRange,omitempty"`
40211
40212	// RangeName: The name associated with this subnetwork secondary range,
40213	// used when adding an alias IP range to a VM instance. The name must be
40214	// 1-63 characters long, and comply with RFC1035. The name must be
40215	// unique within the subnetwork.
40216	RangeName string `json:"rangeName,omitempty"`
40217
40218	// RangeType: The type of IP CIDR range to associate with this
40219	// subnetwork secondary range. The default is RFC_1918. When creating a
40220	// subnetwork in non-RFC 1918 range, this field must be set to
40221	// NON_RFC_1918.
40222	//
40223	// Possible values:
40224	//   "NON_RFC_1918"
40225	//   "RFC_1918"
40226	RangeType string `json:"rangeType,omitempty"`
40227
40228	// ForceSendFields is a list of field names (e.g. "IpCidrRange") to
40229	// unconditionally include in API requests. By default, fields with
40230	// empty values are omitted from API requests. However, any non-pointer,
40231	// non-interface field appearing in ForceSendFields will be sent to the
40232	// server regardless of whether the field is empty or not. This may be
40233	// used to include empty fields in Patch requests.
40234	ForceSendFields []string `json:"-"`
40235
40236	// NullFields is a list of field names (e.g. "IpCidrRange") to include
40237	// in API requests with the JSON null value. By default, fields with
40238	// empty values are omitted from API requests. However, any field with
40239	// an empty value appearing in NullFields will be sent to the server as
40240	// null. It is an error if a field in this list has a non-empty value.
40241	// This may be used to include null fields in Patch requests.
40242	NullFields []string `json:"-"`
40243}
40244
40245func (s *SubnetworkSecondaryRange) MarshalJSON() ([]byte, error) {
40246	type NoMethod SubnetworkSecondaryRange
40247	raw := NoMethod(*s)
40248	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40249}
40250
40251type SubnetworksExpandIpCidrRangeRequest struct {
40252	// IpCidrRange: The IP (in CIDR format or netmask) of internal addresses
40253	// that are legal on this Subnetwork. This range should be disjoint from
40254	// other subnetworks within this network. This range can only be larger
40255	// than (i.e. a superset of) the range previously defined before the
40256	// update.
40257	IpCidrRange string `json:"ipCidrRange,omitempty"`
40258
40259	// RangeType: The type of IP CIDR range to associate with this
40260	// subnetwork. The default is RFC_1918. When expanding to a non-RFC 1918
40261	// range, this field must be be set to NON_RFC_1918.
40262	//
40263	// Possible values:
40264	//   "NON_RFC_1918"
40265	//   "RFC_1918"
40266	RangeType string `json:"rangeType,omitempty"`
40267
40268	// ForceSendFields is a list of field names (e.g. "IpCidrRange") 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. "IpCidrRange") to include
40277	// in API requests with the JSON null value. By default, fields with
40278	// empty values are omitted from API requests. However, any field with
40279	// an 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 *SubnetworksExpandIpCidrRangeRequest) MarshalJSON() ([]byte, error) {
40286	type NoMethod SubnetworksExpandIpCidrRangeRequest
40287	raw := NoMethod(*s)
40288	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40289}
40290
40291type SubnetworksScopedList struct {
40292	// Subnetworks: A list of subnetworks contained in this scope.
40293	Subnetworks []*Subnetwork `json:"subnetworks,omitempty"`
40294
40295	// Warning: An informational warning that appears when the list of
40296	// addresses is empty.
40297	Warning *SubnetworksScopedListWarning `json:"warning,omitempty"`
40298
40299	// ForceSendFields is a list of field names (e.g. "Subnetworks") to
40300	// unconditionally include in API requests. By default, fields with
40301	// empty values are omitted from API requests. However, any non-pointer,
40302	// non-interface field appearing in ForceSendFields will be sent to the
40303	// server regardless of whether the field is empty or not. This may be
40304	// used to include empty fields in Patch requests.
40305	ForceSendFields []string `json:"-"`
40306
40307	// NullFields is a list of field names (e.g. "Subnetworks") to include
40308	// in API requests with the JSON null value. By default, fields with
40309	// empty values are omitted from API requests. However, any field with
40310	// an empty value appearing in NullFields will be sent to the server as
40311	// null. It is an error if a field in this list has a non-empty value.
40312	// This may be used to include null fields in Patch requests.
40313	NullFields []string `json:"-"`
40314}
40315
40316func (s *SubnetworksScopedList) MarshalJSON() ([]byte, error) {
40317	type NoMethod SubnetworksScopedList
40318	raw := NoMethod(*s)
40319	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40320}
40321
40322// SubnetworksScopedListWarning: An informational warning that appears
40323// when the list of addresses is empty.
40324type SubnetworksScopedListWarning struct {
40325	// Code: [Output Only] A warning code, if applicable. For example,
40326	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
40327	// the response.
40328	//
40329	// Possible values:
40330	//   "CLEANUP_FAILED"
40331	//   "DEPRECATED_RESOURCE_USED"
40332	//   "DEPRECATED_TYPE_USED"
40333	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
40334	//   "EXPERIMENTAL_TYPE_USED"
40335	//   "EXTERNAL_API_WARNING"
40336	//   "FIELD_VALUE_OVERRIDEN"
40337	//   "INJECTED_KERNELS_DEPRECATED"
40338	//   "MISSING_TYPE_DEPENDENCY"
40339	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
40340	//   "NEXT_HOP_CANNOT_IP_FORWARD"
40341	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
40342	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
40343	//   "NEXT_HOP_NOT_RUNNING"
40344	//   "NOT_CRITICAL_ERROR"
40345	//   "NO_RESULTS_ON_PAGE"
40346	//   "REQUIRED_TOS_AGREEMENT"
40347	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
40348	//   "RESOURCE_NOT_DELETED"
40349	//   "SCHEMA_VALIDATION_IGNORED"
40350	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
40351	//   "UNDECLARED_PROPERTIES"
40352	//   "UNREACHABLE"
40353	Code string `json:"code,omitempty"`
40354
40355	// Data: [Output Only] Metadata about this warning in key: value format.
40356	// For example:
40357	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
40358	Data []*SubnetworksScopedListWarningData `json:"data,omitempty"`
40359
40360	// Message: [Output Only] A human-readable description of the warning
40361	// code.
40362	Message string `json:"message,omitempty"`
40363
40364	// ForceSendFields is a list of field names (e.g. "Code") to
40365	// unconditionally include in API requests. By default, fields with
40366	// empty values are omitted from API requests. However, any non-pointer,
40367	// non-interface field appearing in ForceSendFields will be sent to the
40368	// server regardless of whether the field is empty or not. This may be
40369	// used to include empty fields in Patch requests.
40370	ForceSendFields []string `json:"-"`
40371
40372	// NullFields is a list of field names (e.g. "Code") to include in API
40373	// requests with the JSON null value. By default, fields with empty
40374	// values are omitted from API requests. However, any field with an
40375	// empty value appearing in NullFields will be sent to the server as
40376	// null. It is an error if a field in this list has a non-empty value.
40377	// This may be used to include null fields in Patch requests.
40378	NullFields []string `json:"-"`
40379}
40380
40381func (s *SubnetworksScopedListWarning) MarshalJSON() ([]byte, error) {
40382	type NoMethod SubnetworksScopedListWarning
40383	raw := NoMethod(*s)
40384	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40385}
40386
40387type SubnetworksScopedListWarningData struct {
40388	// Key: [Output Only] A key that provides more detail on the warning
40389	// being returned. For example, for warnings where there are no results
40390	// in a list request for a particular zone, this key might be scope and
40391	// the key value might be the zone name. Other examples might be a key
40392	// indicating a deprecated resource and a suggested replacement, or a
40393	// warning about invalid network settings (for example, if an instance
40394	// attempts to perform IP forwarding but is not enabled for IP
40395	// forwarding).
40396	Key string `json:"key,omitempty"`
40397
40398	// Value: [Output Only] A warning data value corresponding to the key.
40399	Value string `json:"value,omitempty"`
40400
40401	// ForceSendFields is a list of field names (e.g. "Key") to
40402	// unconditionally include in API requests. By default, fields with
40403	// empty values are omitted from API requests. However, any non-pointer,
40404	// non-interface field appearing in ForceSendFields will be sent to the
40405	// server regardless of whether the field is empty or not. This may be
40406	// used to include empty fields in Patch requests.
40407	ForceSendFields []string `json:"-"`
40408
40409	// NullFields is a list of field names (e.g. "Key") to include in API
40410	// requests with the JSON null value. By default, fields with empty
40411	// values are omitted from API requests. However, any field with an
40412	// empty value appearing in NullFields will be sent to the server as
40413	// null. It is an error if a field in this list has a non-empty value.
40414	// This may be used to include null fields in Patch requests.
40415	NullFields []string `json:"-"`
40416}
40417
40418func (s *SubnetworksScopedListWarningData) MarshalJSON() ([]byte, error) {
40419	type NoMethod SubnetworksScopedListWarningData
40420	raw := NoMethod(*s)
40421	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40422}
40423
40424type SubnetworksSetPrivateIpGoogleAccessRequest struct {
40425	PrivateIpGoogleAccess bool `json:"privateIpGoogleAccess,omitempty"`
40426
40427	// ForceSendFields is a list of field names (e.g.
40428	// "PrivateIpGoogleAccess") to unconditionally include in API requests.
40429	// By default, fields with empty values are omitted from API requests.
40430	// However, any non-pointer, non-interface field appearing in
40431	// ForceSendFields will be sent to the server regardless of whether the
40432	// field is empty or not. This may be used to include empty fields in
40433	// Patch requests.
40434	ForceSendFields []string `json:"-"`
40435
40436	// NullFields is a list of field names (e.g. "PrivateIpGoogleAccess") to
40437	// include in API requests with the JSON null value. By default, fields
40438	// with empty values are omitted from API requests. However, any field
40439	// with an empty value appearing in NullFields will be sent to the
40440	// server as null. It is an error if a field in this list has a
40441	// non-empty value. This may be used to include null fields in Patch
40442	// requests.
40443	NullFields []string `json:"-"`
40444}
40445
40446func (s *SubnetworksSetPrivateIpGoogleAccessRequest) MarshalJSON() ([]byte, error) {
40447	type NoMethod SubnetworksSetPrivateIpGoogleAccessRequest
40448	raw := NoMethod(*s)
40449	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40450}
40451
40452type TCPHealthCheck struct {
40453	// Port: The TCP port number for the health check request. The default
40454	// value is 80. Valid values are 1 through 65535.
40455	Port int64 `json:"port,omitempty"`
40456
40457	// PortName: Port name as defined in InstanceGroup#NamedPort#name. If
40458	// both port and port_name are defined, port takes precedence.
40459	PortName string `json:"portName,omitempty"`
40460
40461	// PortSpecification: Specifies how port is selected for health
40462	// checking, can be one of following values:
40463	// USE_FIXED_PORT: The port number in
40464	// port
40465	// is used for health checking.
40466	// USE_NAMED_PORT: The
40467	// portName
40468	// is used for health checking.
40469	// USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for
40470	// each network endpoint is used for health checking. For other
40471	// backends, the port or named port specified in the Backend Service is
40472	// used for health checking.
40473	//
40474	//
40475	// If not specified, TCP health check follows behavior specified
40476	// in
40477	// port
40478	// and
40479	// portName
40480	// fields.
40481	//
40482	// Possible values:
40483	//   "USE_FIXED_PORT"
40484	//   "USE_NAMED_PORT"
40485	//   "USE_SERVING_PORT"
40486	PortSpecification string `json:"portSpecification,omitempty"`
40487
40488	// ProxyHeader: Specifies the type of proxy header to append before
40489	// sending data to the backend, either NONE or PROXY_V1. The default is
40490	// NONE.
40491	//
40492	// Possible values:
40493	//   "NONE"
40494	//   "PROXY_V1"
40495	ProxyHeader string `json:"proxyHeader,omitempty"`
40496
40497	// Request: The application data to send once the TCP connection has
40498	// been established (default value is empty). If both request and
40499	// response are empty, the connection establishment alone will indicate
40500	// health. The request data can only be ASCII.
40501	Request string `json:"request,omitempty"`
40502
40503	// Response: The bytes to match against the beginning of the response
40504	// data. If left empty (the default value), any response will indicate
40505	// health. The response data can only be ASCII.
40506	Response string `json:"response,omitempty"`
40507
40508	// ForceSendFields is a list of field names (e.g. "Port") to
40509	// unconditionally include in API requests. By default, fields with
40510	// empty values are omitted from API requests. However, any non-pointer,
40511	// non-interface field appearing in ForceSendFields will be sent to the
40512	// server regardless of whether the field is empty or not. This may be
40513	// used to include empty fields in Patch requests.
40514	ForceSendFields []string `json:"-"`
40515
40516	// NullFields is a list of field names (e.g. "Port") to include in API
40517	// requests with the JSON null value. By default, fields with empty
40518	// values are omitted from API requests. However, any field with an
40519	// empty value appearing in NullFields will be sent to the server as
40520	// null. It is an error if a field in this list has a non-empty value.
40521	// This may be used to include null fields in Patch requests.
40522	NullFields []string `json:"-"`
40523}
40524
40525func (s *TCPHealthCheck) MarshalJSON() ([]byte, error) {
40526	type NoMethod TCPHealthCheck
40527	raw := NoMethod(*s)
40528	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40529}
40530
40531// Tags: A set of instance tags.
40532type Tags struct {
40533	// Fingerprint: Specifies a fingerprint for this request, which is
40534	// essentially a hash of the tags' contents and used for optimistic
40535	// locking. The fingerprint is initially generated by Compute Engine and
40536	// changes after every request to modify or update tags. You must always
40537	// provide an up-to-date fingerprint hash in order to update or change
40538	// tags.
40539	//
40540	// To see the latest fingerprint, make get() request to the instance.
40541	Fingerprint string `json:"fingerprint,omitempty"`
40542
40543	// Items: An array of tags. Each tag must be 1-63 characters long, and
40544	// comply with RFC1035.
40545	Items []string `json:"items,omitempty"`
40546
40547	// ForceSendFields is a list of field names (e.g. "Fingerprint") 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. "Fingerprint") 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 *Tags) MarshalJSON() ([]byte, error) {
40565	type NoMethod Tags
40566	raw := NoMethod(*s)
40567	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40568}
40569
40570type TargetHttpProxiesScopedList struct {
40571	// TargetHttpProxies: A list of TargetHttpProxies contained in this
40572	// scope.
40573	TargetHttpProxies []*TargetHttpProxy `json:"targetHttpProxies,omitempty"`
40574
40575	// Warning: Informational warning which replaces the list of backend
40576	// services when the list is empty.
40577	Warning *TargetHttpProxiesScopedListWarning `json:"warning,omitempty"`
40578
40579	// ForceSendFields is a list of field names (e.g. "TargetHttpProxies")
40580	// to unconditionally include in API requests. By default, fields with
40581	// empty values are omitted from API requests. However, any non-pointer,
40582	// non-interface field appearing in ForceSendFields will be sent to the
40583	// server regardless of whether the field is empty or not. This may be
40584	// used to include empty fields in Patch requests.
40585	ForceSendFields []string `json:"-"`
40586
40587	// NullFields is a list of field names (e.g. "TargetHttpProxies") to
40588	// include in API requests with the JSON null value. By default, fields
40589	// with empty values are omitted from API requests. However, any field
40590	// with an empty value appearing in NullFields will be sent to the
40591	// server as null. It is an error if a field in this list has a
40592	// non-empty value. This may be used to include null fields in Patch
40593	// requests.
40594	NullFields []string `json:"-"`
40595}
40596
40597func (s *TargetHttpProxiesScopedList) MarshalJSON() ([]byte, error) {
40598	type NoMethod TargetHttpProxiesScopedList
40599	raw := NoMethod(*s)
40600	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40601}
40602
40603// TargetHttpProxiesScopedListWarning: Informational warning which
40604// replaces the list of backend services when the list is empty.
40605type TargetHttpProxiesScopedListWarning struct {
40606	// Code: [Output Only] A warning code, if applicable. For example,
40607	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
40608	// the response.
40609	//
40610	// Possible values:
40611	//   "CLEANUP_FAILED"
40612	//   "DEPRECATED_RESOURCE_USED"
40613	//   "DEPRECATED_TYPE_USED"
40614	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
40615	//   "EXPERIMENTAL_TYPE_USED"
40616	//   "EXTERNAL_API_WARNING"
40617	//   "FIELD_VALUE_OVERRIDEN"
40618	//   "INJECTED_KERNELS_DEPRECATED"
40619	//   "MISSING_TYPE_DEPENDENCY"
40620	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
40621	//   "NEXT_HOP_CANNOT_IP_FORWARD"
40622	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
40623	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
40624	//   "NEXT_HOP_NOT_RUNNING"
40625	//   "NOT_CRITICAL_ERROR"
40626	//   "NO_RESULTS_ON_PAGE"
40627	//   "REQUIRED_TOS_AGREEMENT"
40628	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
40629	//   "RESOURCE_NOT_DELETED"
40630	//   "SCHEMA_VALIDATION_IGNORED"
40631	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
40632	//   "UNDECLARED_PROPERTIES"
40633	//   "UNREACHABLE"
40634	Code string `json:"code,omitempty"`
40635
40636	// Data: [Output Only] Metadata about this warning in key: value format.
40637	// For example:
40638	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
40639	Data []*TargetHttpProxiesScopedListWarningData `json:"data,omitempty"`
40640
40641	// Message: [Output Only] A human-readable description of the warning
40642	// code.
40643	Message string `json:"message,omitempty"`
40644
40645	// ForceSendFields is a list of field names (e.g. "Code") to
40646	// unconditionally include in API requests. By default, fields with
40647	// empty values are omitted from API requests. However, any non-pointer,
40648	// non-interface field appearing in ForceSendFields will be sent to the
40649	// server regardless of whether the field is empty or not. This may be
40650	// used to include empty fields in Patch requests.
40651	ForceSendFields []string `json:"-"`
40652
40653	// NullFields is a list of field names (e.g. "Code") to include in API
40654	// requests with the JSON null value. By default, fields with empty
40655	// values are omitted from API requests. However, any field with an
40656	// empty value appearing in NullFields will be sent to the server as
40657	// null. It is an error if a field in this list has a non-empty value.
40658	// This may be used to include null fields in Patch requests.
40659	NullFields []string `json:"-"`
40660}
40661
40662func (s *TargetHttpProxiesScopedListWarning) MarshalJSON() ([]byte, error) {
40663	type NoMethod TargetHttpProxiesScopedListWarning
40664	raw := NoMethod(*s)
40665	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40666}
40667
40668type TargetHttpProxiesScopedListWarningData struct {
40669	// Key: [Output Only] A key that provides more detail on the warning
40670	// being returned. For example, for warnings where there are no results
40671	// in a list request for a particular zone, this key might be scope and
40672	// the key value might be the zone name. Other examples might be a key
40673	// indicating a deprecated resource and a suggested replacement, or a
40674	// warning about invalid network settings (for example, if an instance
40675	// attempts to perform IP forwarding but is not enabled for IP
40676	// forwarding).
40677	Key string `json:"key,omitempty"`
40678
40679	// Value: [Output Only] A warning data value corresponding to the key.
40680	Value string `json:"value,omitempty"`
40681
40682	// ForceSendFields is a list of field names (e.g. "Key") to
40683	// unconditionally include in API requests. By default, fields with
40684	// empty values are omitted from API requests. However, any non-pointer,
40685	// non-interface field appearing in ForceSendFields will be sent to the
40686	// server regardless of whether the field is empty or not. This may be
40687	// used to include empty fields in Patch requests.
40688	ForceSendFields []string `json:"-"`
40689
40690	// NullFields is a list of field names (e.g. "Key") to include in API
40691	// requests with the JSON null value. By default, fields with empty
40692	// values are omitted from API requests. However, any field with an
40693	// empty value appearing in NullFields will be sent to the server as
40694	// null. It is an error if a field in this list has a non-empty value.
40695	// This may be used to include null fields in Patch requests.
40696	NullFields []string `json:"-"`
40697}
40698
40699func (s *TargetHttpProxiesScopedListWarningData) MarshalJSON() ([]byte, error) {
40700	type NoMethod TargetHttpProxiesScopedListWarningData
40701	raw := NoMethod(*s)
40702	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40703}
40704
40705// TargetHttpProxy: Represents a Target HTTP Proxy resource.
40706//
40707// A target HTTP proxy is a component of certain types of load
40708// balancers. Global forwarding rules reference a target HTTP proxy, and
40709// the target proxy then references a URL map. For more information,
40710// read Using Target Proxies. (== resource_for beta.targetHttpProxies
40711// ==) (== resource_for v1.targetHttpProxies ==)
40712type TargetHttpProxy struct {
40713	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
40714	// format.
40715	CreationTimestamp string `json:"creationTimestamp,omitempty"`
40716
40717	// Description: An optional description of this resource. Provide this
40718	// property when you create the resource.
40719	Description string `json:"description,omitempty"`
40720
40721	// Id: [Output Only] The unique identifier for the resource. This
40722	// identifier is defined by the server.
40723	Id uint64 `json:"id,omitempty,string"`
40724
40725	// Kind: [Output Only] Type of resource. Always compute#targetHttpProxy
40726	// for target HTTP proxies.
40727	Kind string `json:"kind,omitempty"`
40728
40729	// Name: Name of the resource. Provided by the client when the resource
40730	// is created. The name must be 1-63 characters long, and comply with
40731	// RFC1035. Specifically, the name must be 1-63 characters long and
40732	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
40733	// the first character must be a lowercase letter, and all following
40734	// characters must be a dash, lowercase letter, or digit, except the
40735	// last character, which cannot be a dash.
40736	Name string `json:"name,omitempty"`
40737
40738	// ProxyBind: This field only applies when the loadBalancingScheme is
40739	// INTERNAL_SELF_MANAGED. When set to true the Envoy binds on the IP
40740	// address specified by the forwarding rule. Default is false.
40741	ProxyBind bool `json:"proxyBind,omitempty"`
40742
40743	// Region: [Output Only] URL of the region where the regional Target
40744	// HTTP Proxy resides. This field is not applicable to global Target
40745	// HTTP Proxies.
40746	Region string `json:"region,omitempty"`
40747
40748	// SelfLink: [Output Only] Server-defined URL for the resource.
40749	SelfLink string `json:"selfLink,omitempty"`
40750
40751	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
40752	// with the resource id.
40753	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
40754
40755	// UrlMap: URL to the UrlMap resource that defines the mapping from URL
40756	// to the BackendService.
40757	UrlMap string `json:"urlMap,omitempty"`
40758
40759	// ServerResponse contains the HTTP response code and headers from the
40760	// server.
40761	googleapi.ServerResponse `json:"-"`
40762
40763	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
40764	// to unconditionally include in API requests. By default, fields with
40765	// empty values are omitted from API requests. However, any non-pointer,
40766	// non-interface field appearing in ForceSendFields will be sent to the
40767	// server regardless of whether the field is empty or not. This may be
40768	// used to include empty fields in Patch requests.
40769	ForceSendFields []string `json:"-"`
40770
40771	// NullFields is a list of field names (e.g. "CreationTimestamp") to
40772	// include in API requests with the JSON null value. By default, fields
40773	// with empty values are omitted from API requests. However, any field
40774	// with an empty value appearing in NullFields will be sent to the
40775	// server as null. It is an error if a field in this list has a
40776	// non-empty value. This may be used to include null fields in Patch
40777	// requests.
40778	NullFields []string `json:"-"`
40779}
40780
40781func (s *TargetHttpProxy) MarshalJSON() ([]byte, error) {
40782	type NoMethod TargetHttpProxy
40783	raw := NoMethod(*s)
40784	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40785}
40786
40787type TargetHttpProxyAggregatedList struct {
40788	// Id: [Output Only] Unique identifier for the resource; defined by the
40789	// server.
40790	Id string `json:"id,omitempty"`
40791
40792	// Items: A list of TargetHttpProxiesScopedList resources.
40793	Items map[string]TargetHttpProxiesScopedList `json:"items,omitempty"`
40794
40795	// Kind: [Output Only] Type of resource. Always
40796	// compute#targetHttpProxyAggregatedList for lists of Target HTTP
40797	// Proxies.
40798	Kind string `json:"kind,omitempty"`
40799
40800	// NextPageToken: [Output Only] This token allows you to get the next
40801	// page of results for list requests. If the number of results is larger
40802	// than maxResults, use the nextPageToken as a value for the query
40803	// parameter pageToken in the next list request. Subsequent list
40804	// requests will have their own nextPageToken to continue paging through
40805	// the results.
40806	NextPageToken string `json:"nextPageToken,omitempty"`
40807
40808	// SelfLink: [Output Only] Server-defined URL for this resource.
40809	SelfLink string `json:"selfLink,omitempty"`
40810
40811	// Warning: [Output Only] Informational warning message.
40812	Warning *TargetHttpProxyAggregatedListWarning `json:"warning,omitempty"`
40813
40814	// ServerResponse contains the HTTP response code and headers from the
40815	// server.
40816	googleapi.ServerResponse `json:"-"`
40817
40818	// ForceSendFields is a list of field names (e.g. "Id") to
40819	// unconditionally include in API requests. By default, fields with
40820	// empty values are omitted from API requests. However, any non-pointer,
40821	// non-interface field appearing in ForceSendFields will be sent to the
40822	// server regardless of whether the field is empty or not. This may be
40823	// used to include empty fields in Patch requests.
40824	ForceSendFields []string `json:"-"`
40825
40826	// NullFields is a list of field names (e.g. "Id") to include in API
40827	// requests with the JSON null value. By default, fields with empty
40828	// values are omitted from API requests. However, any field with an
40829	// empty value appearing in NullFields will be sent to the server as
40830	// null. It is an error if a field in this list has a non-empty value.
40831	// This may be used to include null fields in Patch requests.
40832	NullFields []string `json:"-"`
40833}
40834
40835func (s *TargetHttpProxyAggregatedList) MarshalJSON() ([]byte, error) {
40836	type NoMethod TargetHttpProxyAggregatedList
40837	raw := NoMethod(*s)
40838	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40839}
40840
40841// TargetHttpProxyAggregatedListWarning: [Output Only] Informational
40842// warning message.
40843type TargetHttpProxyAggregatedListWarning struct {
40844	// Code: [Output Only] A warning code, if applicable. For example,
40845	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
40846	// the response.
40847	//
40848	// Possible values:
40849	//   "CLEANUP_FAILED"
40850	//   "DEPRECATED_RESOURCE_USED"
40851	//   "DEPRECATED_TYPE_USED"
40852	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
40853	//   "EXPERIMENTAL_TYPE_USED"
40854	//   "EXTERNAL_API_WARNING"
40855	//   "FIELD_VALUE_OVERRIDEN"
40856	//   "INJECTED_KERNELS_DEPRECATED"
40857	//   "MISSING_TYPE_DEPENDENCY"
40858	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
40859	//   "NEXT_HOP_CANNOT_IP_FORWARD"
40860	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
40861	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
40862	//   "NEXT_HOP_NOT_RUNNING"
40863	//   "NOT_CRITICAL_ERROR"
40864	//   "NO_RESULTS_ON_PAGE"
40865	//   "REQUIRED_TOS_AGREEMENT"
40866	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
40867	//   "RESOURCE_NOT_DELETED"
40868	//   "SCHEMA_VALIDATION_IGNORED"
40869	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
40870	//   "UNDECLARED_PROPERTIES"
40871	//   "UNREACHABLE"
40872	Code string `json:"code,omitempty"`
40873
40874	// Data: [Output Only] Metadata about this warning in key: value format.
40875	// For example:
40876	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
40877	Data []*TargetHttpProxyAggregatedListWarningData `json:"data,omitempty"`
40878
40879	// Message: [Output Only] A human-readable description of the warning
40880	// code.
40881	Message string `json:"message,omitempty"`
40882
40883	// ForceSendFields is a list of field names (e.g. "Code") to
40884	// unconditionally include in API requests. By default, fields with
40885	// empty values are omitted from API requests. However, any non-pointer,
40886	// non-interface field appearing in ForceSendFields will be sent to the
40887	// server regardless of whether the field is empty or not. This may be
40888	// used to include empty fields in Patch requests.
40889	ForceSendFields []string `json:"-"`
40890
40891	// NullFields is a list of field names (e.g. "Code") to include in API
40892	// requests with the JSON null value. By default, fields with empty
40893	// values are omitted from API requests. However, any field with an
40894	// empty value appearing in NullFields will be sent to the server as
40895	// null. It is an error if a field in this list has a non-empty value.
40896	// This may be used to include null fields in Patch requests.
40897	NullFields []string `json:"-"`
40898}
40899
40900func (s *TargetHttpProxyAggregatedListWarning) MarshalJSON() ([]byte, error) {
40901	type NoMethod TargetHttpProxyAggregatedListWarning
40902	raw := NoMethod(*s)
40903	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40904}
40905
40906type TargetHttpProxyAggregatedListWarningData struct {
40907	// Key: [Output Only] A key that provides more detail on the warning
40908	// being returned. For example, for warnings where there are no results
40909	// in a list request for a particular zone, this key might be scope and
40910	// the key value might be the zone name. Other examples might be a key
40911	// indicating a deprecated resource and a suggested replacement, or a
40912	// warning about invalid network settings (for example, if an instance
40913	// attempts to perform IP forwarding but is not enabled for IP
40914	// forwarding).
40915	Key string `json:"key,omitempty"`
40916
40917	// Value: [Output Only] A warning data value corresponding to the key.
40918	Value string `json:"value,omitempty"`
40919
40920	// ForceSendFields is a list of field names (e.g. "Key") to
40921	// unconditionally include in API requests. By default, fields with
40922	// empty values are omitted from API requests. However, any non-pointer,
40923	// non-interface field appearing in ForceSendFields will be sent to the
40924	// server regardless of whether the field is empty or not. This may be
40925	// used to include empty fields in Patch requests.
40926	ForceSendFields []string `json:"-"`
40927
40928	// NullFields is a list of field names (e.g. "Key") to include in API
40929	// requests with the JSON null value. By default, fields with empty
40930	// values are omitted from API requests. However, any field with an
40931	// empty value appearing in NullFields will be sent to the server as
40932	// null. It is an error if a field in this list has a non-empty value.
40933	// This may be used to include null fields in Patch requests.
40934	NullFields []string `json:"-"`
40935}
40936
40937func (s *TargetHttpProxyAggregatedListWarningData) MarshalJSON() ([]byte, error) {
40938	type NoMethod TargetHttpProxyAggregatedListWarningData
40939	raw := NoMethod(*s)
40940	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40941}
40942
40943// TargetHttpProxyList: A list of TargetHttpProxy resources.
40944type TargetHttpProxyList struct {
40945	// Id: [Output Only] Unique identifier for the resource; defined by the
40946	// server.
40947	Id string `json:"id,omitempty"`
40948
40949	// Items: A list of TargetHttpProxy resources.
40950	Items []*TargetHttpProxy `json:"items,omitempty"`
40951
40952	// Kind: Type of resource. Always compute#targetHttpProxyList for lists
40953	// of target HTTP proxies.
40954	Kind string `json:"kind,omitempty"`
40955
40956	// NextPageToken: [Output Only] This token allows you to get the next
40957	// page of results for list requests. If the number of results is larger
40958	// than maxResults, use the nextPageToken as a value for the query
40959	// parameter pageToken in the next list request. Subsequent list
40960	// requests will have their own nextPageToken to continue paging through
40961	// the results.
40962	NextPageToken string `json:"nextPageToken,omitempty"`
40963
40964	// SelfLink: [Output Only] Server-defined URL for this resource.
40965	SelfLink string `json:"selfLink,omitempty"`
40966
40967	// Warning: [Output Only] Informational warning message.
40968	Warning *TargetHttpProxyListWarning `json:"warning,omitempty"`
40969
40970	// ServerResponse contains the HTTP response code and headers from the
40971	// server.
40972	googleapi.ServerResponse `json:"-"`
40973
40974	// ForceSendFields is a list of field names (e.g. "Id") to
40975	// unconditionally include in API requests. By default, fields with
40976	// empty values are omitted from API requests. However, any non-pointer,
40977	// non-interface field appearing in ForceSendFields will be sent to the
40978	// server regardless of whether the field is empty or not. This may be
40979	// used to include empty fields in Patch requests.
40980	ForceSendFields []string `json:"-"`
40981
40982	// NullFields is a list of field names (e.g. "Id") to include in API
40983	// requests with the JSON null value. By default, fields with empty
40984	// values are omitted from API requests. However, any field with an
40985	// empty value appearing in NullFields will be sent to the server as
40986	// null. It is an error if a field in this list has a non-empty value.
40987	// This may be used to include null fields in Patch requests.
40988	NullFields []string `json:"-"`
40989}
40990
40991func (s *TargetHttpProxyList) MarshalJSON() ([]byte, error) {
40992	type NoMethod TargetHttpProxyList
40993	raw := NoMethod(*s)
40994	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40995}
40996
40997// TargetHttpProxyListWarning: [Output Only] Informational warning
40998// message.
40999type TargetHttpProxyListWarning struct {
41000	// Code: [Output Only] A warning code, if applicable. For example,
41001	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
41002	// the response.
41003	//
41004	// Possible values:
41005	//   "CLEANUP_FAILED"
41006	//   "DEPRECATED_RESOURCE_USED"
41007	//   "DEPRECATED_TYPE_USED"
41008	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
41009	//   "EXPERIMENTAL_TYPE_USED"
41010	//   "EXTERNAL_API_WARNING"
41011	//   "FIELD_VALUE_OVERRIDEN"
41012	//   "INJECTED_KERNELS_DEPRECATED"
41013	//   "MISSING_TYPE_DEPENDENCY"
41014	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
41015	//   "NEXT_HOP_CANNOT_IP_FORWARD"
41016	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
41017	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
41018	//   "NEXT_HOP_NOT_RUNNING"
41019	//   "NOT_CRITICAL_ERROR"
41020	//   "NO_RESULTS_ON_PAGE"
41021	//   "REQUIRED_TOS_AGREEMENT"
41022	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
41023	//   "RESOURCE_NOT_DELETED"
41024	//   "SCHEMA_VALIDATION_IGNORED"
41025	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
41026	//   "UNDECLARED_PROPERTIES"
41027	//   "UNREACHABLE"
41028	Code string `json:"code,omitempty"`
41029
41030	// Data: [Output Only] Metadata about this warning in key: value format.
41031	// For example:
41032	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
41033	Data []*TargetHttpProxyListWarningData `json:"data,omitempty"`
41034
41035	// Message: [Output Only] A human-readable description of the warning
41036	// code.
41037	Message string `json:"message,omitempty"`
41038
41039	// ForceSendFields is a list of field names (e.g. "Code") to
41040	// unconditionally include in API requests. By default, fields with
41041	// empty values are omitted from API requests. However, any non-pointer,
41042	// non-interface field appearing in ForceSendFields will be sent to the
41043	// server regardless of whether the field is empty or not. This may be
41044	// used to include empty fields in Patch requests.
41045	ForceSendFields []string `json:"-"`
41046
41047	// NullFields is a list of field names (e.g. "Code") to include in API
41048	// requests with the JSON null value. By default, fields with empty
41049	// values are omitted from API requests. However, any field with an
41050	// empty value appearing in NullFields will be sent to the server as
41051	// null. It is an error if a field in this list has a non-empty value.
41052	// This may be used to include null fields in Patch requests.
41053	NullFields []string `json:"-"`
41054}
41055
41056func (s *TargetHttpProxyListWarning) MarshalJSON() ([]byte, error) {
41057	type NoMethod TargetHttpProxyListWarning
41058	raw := NoMethod(*s)
41059	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41060}
41061
41062type TargetHttpProxyListWarningData struct {
41063	// Key: [Output Only] A key that provides more detail on the warning
41064	// being returned. For example, for warnings where there are no results
41065	// in a list request for a particular zone, this key might be scope and
41066	// the key value might be the zone name. Other examples might be a key
41067	// indicating a deprecated resource and a suggested replacement, or a
41068	// warning about invalid network settings (for example, if an instance
41069	// attempts to perform IP forwarding but is not enabled for IP
41070	// forwarding).
41071	Key string `json:"key,omitempty"`
41072
41073	// Value: [Output Only] A warning data value corresponding to the key.
41074	Value string `json:"value,omitempty"`
41075
41076	// ForceSendFields is a list of field names (e.g. "Key") to
41077	// unconditionally include in API requests. By default, fields with
41078	// empty values are omitted from API requests. However, any non-pointer,
41079	// non-interface field appearing in ForceSendFields will be sent to the
41080	// server regardless of whether the field is empty or not. This may be
41081	// used to include empty fields in Patch requests.
41082	ForceSendFields []string `json:"-"`
41083
41084	// NullFields is a list of field names (e.g. "Key") to include in API
41085	// requests with the JSON null value. By default, fields with empty
41086	// values are omitted from API requests. However, any field with an
41087	// empty value appearing in NullFields will be sent to the server as
41088	// null. It is an error if a field in this list has a non-empty value.
41089	// This may be used to include null fields in Patch requests.
41090	NullFields []string `json:"-"`
41091}
41092
41093func (s *TargetHttpProxyListWarningData) MarshalJSON() ([]byte, error) {
41094	type NoMethod TargetHttpProxyListWarningData
41095	raw := NoMethod(*s)
41096	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41097}
41098
41099type TargetHttpsProxiesScopedList struct {
41100	// TargetHttpsProxies: A list of TargetHttpsProxies contained in this
41101	// scope.
41102	TargetHttpsProxies []*TargetHttpsProxy `json:"targetHttpsProxies,omitempty"`
41103
41104	// Warning: Informational warning which replaces the list of backend
41105	// services when the list is empty.
41106	Warning *TargetHttpsProxiesScopedListWarning `json:"warning,omitempty"`
41107
41108	// ForceSendFields is a list of field names (e.g. "TargetHttpsProxies")
41109	// to unconditionally include in API requests. By default, fields with
41110	// empty values are omitted from API requests. However, any non-pointer,
41111	// non-interface field appearing in ForceSendFields will be sent to the
41112	// server regardless of whether the field is empty or not. This may be
41113	// used to include empty fields in Patch requests.
41114	ForceSendFields []string `json:"-"`
41115
41116	// NullFields is a list of field names (e.g. "TargetHttpsProxies") to
41117	// include in API requests with the JSON null value. By default, fields
41118	// with empty values are omitted from API requests. However, any field
41119	// with an empty value appearing in NullFields will be sent to the
41120	// server as null. It is an error if a field in this list has a
41121	// non-empty value. This may be used to include null fields in Patch
41122	// requests.
41123	NullFields []string `json:"-"`
41124}
41125
41126func (s *TargetHttpsProxiesScopedList) MarshalJSON() ([]byte, error) {
41127	type NoMethod TargetHttpsProxiesScopedList
41128	raw := NoMethod(*s)
41129	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41130}
41131
41132// TargetHttpsProxiesScopedListWarning: Informational warning which
41133// replaces the list of backend services when the list is empty.
41134type TargetHttpsProxiesScopedListWarning struct {
41135	// Code: [Output Only] A warning code, if applicable. For example,
41136	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
41137	// the response.
41138	//
41139	// Possible values:
41140	//   "CLEANUP_FAILED"
41141	//   "DEPRECATED_RESOURCE_USED"
41142	//   "DEPRECATED_TYPE_USED"
41143	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
41144	//   "EXPERIMENTAL_TYPE_USED"
41145	//   "EXTERNAL_API_WARNING"
41146	//   "FIELD_VALUE_OVERRIDEN"
41147	//   "INJECTED_KERNELS_DEPRECATED"
41148	//   "MISSING_TYPE_DEPENDENCY"
41149	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
41150	//   "NEXT_HOP_CANNOT_IP_FORWARD"
41151	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
41152	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
41153	//   "NEXT_HOP_NOT_RUNNING"
41154	//   "NOT_CRITICAL_ERROR"
41155	//   "NO_RESULTS_ON_PAGE"
41156	//   "REQUIRED_TOS_AGREEMENT"
41157	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
41158	//   "RESOURCE_NOT_DELETED"
41159	//   "SCHEMA_VALIDATION_IGNORED"
41160	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
41161	//   "UNDECLARED_PROPERTIES"
41162	//   "UNREACHABLE"
41163	Code string `json:"code,omitempty"`
41164
41165	// Data: [Output Only] Metadata about this warning in key: value format.
41166	// For example:
41167	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
41168	Data []*TargetHttpsProxiesScopedListWarningData `json:"data,omitempty"`
41169
41170	// Message: [Output Only] A human-readable description of the warning
41171	// code.
41172	Message string `json:"message,omitempty"`
41173
41174	// ForceSendFields is a list of field names (e.g. "Code") to
41175	// unconditionally include in API requests. By default, fields with
41176	// empty values are omitted from API requests. However, any non-pointer,
41177	// non-interface field appearing in ForceSendFields will be sent to the
41178	// server regardless of whether the field is empty or not. This may be
41179	// used to include empty fields in Patch requests.
41180	ForceSendFields []string `json:"-"`
41181
41182	// NullFields is a list of field names (e.g. "Code") to include in API
41183	// requests with the JSON null value. By default, fields with empty
41184	// values are omitted from API requests. However, any field with an
41185	// empty value appearing in NullFields will be sent to the server as
41186	// null. It is an error if a field in this list has a non-empty value.
41187	// This may be used to include null fields in Patch requests.
41188	NullFields []string `json:"-"`
41189}
41190
41191func (s *TargetHttpsProxiesScopedListWarning) MarshalJSON() ([]byte, error) {
41192	type NoMethod TargetHttpsProxiesScopedListWarning
41193	raw := NoMethod(*s)
41194	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41195}
41196
41197type TargetHttpsProxiesScopedListWarningData struct {
41198	// Key: [Output Only] A key that provides more detail on the warning
41199	// being returned. For example, for warnings where there are no results
41200	// in a list request for a particular zone, this key might be scope and
41201	// the key value might be the zone name. Other examples might be a key
41202	// indicating a deprecated resource and a suggested replacement, or a
41203	// warning about invalid network settings (for example, if an instance
41204	// attempts to perform IP forwarding but is not enabled for IP
41205	// forwarding).
41206	Key string `json:"key,omitempty"`
41207
41208	// Value: [Output Only] A warning data value corresponding to the key.
41209	Value string `json:"value,omitempty"`
41210
41211	// ForceSendFields is a list of field names (e.g. "Key") to
41212	// unconditionally include in API requests. By default, fields with
41213	// empty values are omitted from API requests. However, any non-pointer,
41214	// non-interface field appearing in ForceSendFields will be sent to the
41215	// server regardless of whether the field is empty or not. This may be
41216	// used to include empty fields in Patch requests.
41217	ForceSendFields []string `json:"-"`
41218
41219	// NullFields is a list of field names (e.g. "Key") to include in API
41220	// requests with the JSON null value. By default, fields with empty
41221	// values are omitted from API requests. However, any field with an
41222	// empty value appearing in NullFields will be sent to the server as
41223	// null. It is an error if a field in this list has a non-empty value.
41224	// This may be used to include null fields in Patch requests.
41225	NullFields []string `json:"-"`
41226}
41227
41228func (s *TargetHttpsProxiesScopedListWarningData) MarshalJSON() ([]byte, error) {
41229	type NoMethod TargetHttpsProxiesScopedListWarningData
41230	raw := NoMethod(*s)
41231	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41232}
41233
41234type TargetHttpsProxiesSetQuicOverrideRequest struct {
41235	// QuicOverride: QUIC policy for the TargetHttpsProxy resource.
41236	//
41237	// Possible values:
41238	//   "DISABLE"
41239	//   "ENABLE"
41240	//   "NONE"
41241	QuicOverride string `json:"quicOverride,omitempty"`
41242
41243	// ForceSendFields is a list of field names (e.g. "QuicOverride") to
41244	// unconditionally include in API requests. By default, fields with
41245	// empty values are omitted from API requests. However, any non-pointer,
41246	// non-interface field appearing in ForceSendFields will be sent to the
41247	// server regardless of whether the field is empty or not. This may be
41248	// used to include empty fields in Patch requests.
41249	ForceSendFields []string `json:"-"`
41250
41251	// NullFields is a list of field names (e.g. "QuicOverride") to include
41252	// in API requests with the JSON null value. By default, fields with
41253	// empty values are omitted from API requests. However, any field with
41254	// an empty value appearing in NullFields will be sent to the server as
41255	// null. It is an error if a field in this list has a non-empty value.
41256	// This may be used to include null fields in Patch requests.
41257	NullFields []string `json:"-"`
41258}
41259
41260func (s *TargetHttpsProxiesSetQuicOverrideRequest) MarshalJSON() ([]byte, error) {
41261	type NoMethod TargetHttpsProxiesSetQuicOverrideRequest
41262	raw := NoMethod(*s)
41263	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41264}
41265
41266type TargetHttpsProxiesSetSslCertificatesRequest struct {
41267	// SslCertificates: New set of SslCertificate resources to associate
41268	// with this TargetHttpsProxy resource. Currently exactly one
41269	// SslCertificate resource must be specified.
41270	SslCertificates []string `json:"sslCertificates,omitempty"`
41271
41272	// ForceSendFields is a list of field names (e.g. "SslCertificates") to
41273	// unconditionally include in API requests. By default, fields with
41274	// empty values are omitted from API requests. However, any non-pointer,
41275	// non-interface field appearing in ForceSendFields will be sent to the
41276	// server regardless of whether the field is empty or not. This may be
41277	// used to include empty fields in Patch requests.
41278	ForceSendFields []string `json:"-"`
41279
41280	// NullFields is a list of field names (e.g. "SslCertificates") to
41281	// include in API requests with the JSON null value. By default, fields
41282	// with empty values are omitted from API requests. However, any field
41283	// with an empty value appearing in NullFields will be sent to the
41284	// server as null. It is an error if a field in this list has a
41285	// non-empty value. This may be used to include null fields in Patch
41286	// requests.
41287	NullFields []string `json:"-"`
41288}
41289
41290func (s *TargetHttpsProxiesSetSslCertificatesRequest) MarshalJSON() ([]byte, error) {
41291	type NoMethod TargetHttpsProxiesSetSslCertificatesRequest
41292	raw := NoMethod(*s)
41293	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41294}
41295
41296// TargetHttpsProxy: Represents a Target HTTPS Proxy resource.
41297//
41298// A target HTTPS proxy is a component of certain types of load
41299// balancers. Global forwarding rules reference a target HTTPS proxy,
41300// and the target proxy then references a URL map. For more information,
41301// read Using Target Proxies. (== resource_for beta.targetHttpsProxies
41302// ==) (== resource_for v1.targetHttpsProxies ==)
41303type TargetHttpsProxy struct {
41304	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
41305	// format.
41306	CreationTimestamp string `json:"creationTimestamp,omitempty"`
41307
41308	// Description: An optional description of this resource. Provide this
41309	// property when you create the resource.
41310	Description string `json:"description,omitempty"`
41311
41312	// Id: [Output Only] The unique identifier for the resource. This
41313	// identifier is defined by the server.
41314	Id uint64 `json:"id,omitempty,string"`
41315
41316	// Kind: [Output Only] Type of resource. Always compute#targetHttpsProxy
41317	// for target HTTPS proxies.
41318	Kind string `json:"kind,omitempty"`
41319
41320	// Name: Name of the resource. Provided by the client when the resource
41321	// is created. The name must be 1-63 characters long, and comply with
41322	// RFC1035. Specifically, the name must be 1-63 characters long and
41323	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
41324	// the first character must be a lowercase letter, and all following
41325	// characters must be a dash, lowercase letter, or digit, except the
41326	// last character, which cannot be a dash.
41327	Name string `json:"name,omitempty"`
41328
41329	// ProxyBind: This field only applies when the loadBalancingScheme is
41330	// INTERNAL_SELF_MANAGED. When set to true the Envoy binds on the IP
41331	// address specified by the forwarding rule. Default is false.
41332	ProxyBind bool `json:"proxyBind,omitempty"`
41333
41334	// QuicOverride: Specifies the QUIC override policy for this
41335	// TargetHttpsProxy resource. This setting determines whether the load
41336	// balancer attempts to negotiate QUIC with clients. You can specify
41337	// NONE, ENABLE, or DISABLE.
41338	// - When quic-override is set to NONE, Google manages whether QUIC is
41339	// used.
41340	// - When quic-override is set to ENABLE, the load balancer uses QUIC
41341	// when possible.
41342	// - When quic-override is set to DISABLE, the load balancer doesn't use
41343	// QUIC.
41344	// - If the quic-override flag is not specified, NONE is implied.
41345	// -
41346	//
41347	// Possible values:
41348	//   "DISABLE"
41349	//   "ENABLE"
41350	//   "NONE"
41351	QuicOverride string `json:"quicOverride,omitempty"`
41352
41353	// Region: [Output Only] URL of the region where the regional
41354	// TargetHttpsProxy resides. This field is not applicable to global
41355	// TargetHttpsProxies.
41356	Region string `json:"region,omitempty"`
41357
41358	// SelfLink: [Output Only] Server-defined URL for the resource.
41359	SelfLink string `json:"selfLink,omitempty"`
41360
41361	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
41362	// with the resource id.
41363	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
41364
41365	// SslCertificates: URLs to SslCertificate resources that are used to
41366	// authenticate connections between users and the load balancer. At
41367	// least one SSL certificate must be specified. Currently, you may
41368	// specify up to 15 SSL certificates.
41369	SslCertificates []string `json:"sslCertificates,omitempty"`
41370
41371	// SslPolicy: URL of SslPolicy resource that will be associated with the
41372	// TargetHttpsProxy resource. If not set, the TargetHttpsProxy resource
41373	// has no SSL policy configured.
41374	SslPolicy string `json:"sslPolicy,omitempty"`
41375
41376	// UrlMap: A fully-qualified or valid partial URL to the UrlMap resource
41377	// that defines the mapping from URL to the BackendService. For example,
41378	// the following are all valid URLs for specifying a URL map:
41379	// -
41380	// https://www.googleapis.compute/v1/projects/project/global/urlMaps/url-map
41381	// - projects/project/global/urlMaps/url-map
41382	// - global/urlMaps/url-map
41383	UrlMap string `json:"urlMap,omitempty"`
41384
41385	// ServerResponse contains the HTTP response code and headers from the
41386	// server.
41387	googleapi.ServerResponse `json:"-"`
41388
41389	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
41390	// to unconditionally include in API requests. By default, fields with
41391	// empty values are omitted from API requests. However, any non-pointer,
41392	// non-interface field appearing in ForceSendFields will be sent to the
41393	// server regardless of whether the field is empty or not. This may be
41394	// used to include empty fields in Patch requests.
41395	ForceSendFields []string `json:"-"`
41396
41397	// NullFields is a list of field names (e.g. "CreationTimestamp") to
41398	// include in API requests with the JSON null value. By default, fields
41399	// with empty values are omitted from API requests. However, any field
41400	// with an empty value appearing in NullFields will be sent to the
41401	// server as null. It is an error if a field in this list has a
41402	// non-empty value. This may be used to include null fields in Patch
41403	// requests.
41404	NullFields []string `json:"-"`
41405}
41406
41407func (s *TargetHttpsProxy) MarshalJSON() ([]byte, error) {
41408	type NoMethod TargetHttpsProxy
41409	raw := NoMethod(*s)
41410	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41411}
41412
41413type TargetHttpsProxyAggregatedList struct {
41414	// Id: [Output Only] Unique identifier for the resource; defined by the
41415	// server.
41416	Id string `json:"id,omitempty"`
41417
41418	// Items: A list of TargetHttpsProxiesScopedList resources.
41419	Items map[string]TargetHttpsProxiesScopedList `json:"items,omitempty"`
41420
41421	// Kind: [Output Only] Type of resource. Always
41422	// compute#targetHttpsProxyAggregatedList for lists of Target HTTP
41423	// Proxies.
41424	Kind string `json:"kind,omitempty"`
41425
41426	// NextPageToken: [Output Only] This token allows you to get the next
41427	// page of results for list requests. If the number of results is larger
41428	// than maxResults, use the nextPageToken as a value for the query
41429	// parameter pageToken in the next list request. Subsequent list
41430	// requests will have their own nextPageToken to continue paging through
41431	// the results.
41432	NextPageToken string `json:"nextPageToken,omitempty"`
41433
41434	// SelfLink: [Output Only] Server-defined URL for this resource.
41435	SelfLink string `json:"selfLink,omitempty"`
41436
41437	// Warning: [Output Only] Informational warning message.
41438	Warning *TargetHttpsProxyAggregatedListWarning `json:"warning,omitempty"`
41439
41440	// ServerResponse contains the HTTP response code and headers from the
41441	// server.
41442	googleapi.ServerResponse `json:"-"`
41443
41444	// ForceSendFields is a list of field names (e.g. "Id") to
41445	// unconditionally include in API requests. By default, fields with
41446	// empty values are omitted from API requests. However, any non-pointer,
41447	// non-interface field appearing in ForceSendFields will be sent to the
41448	// server regardless of whether the field is empty or not. This may be
41449	// used to include empty fields in Patch requests.
41450	ForceSendFields []string `json:"-"`
41451
41452	// NullFields is a list of field names (e.g. "Id") to include in API
41453	// requests with the JSON null value. By default, fields with empty
41454	// values are omitted from API requests. However, any field with an
41455	// empty value appearing in NullFields will be sent to the server as
41456	// null. It is an error if a field in this list has a non-empty value.
41457	// This may be used to include null fields in Patch requests.
41458	NullFields []string `json:"-"`
41459}
41460
41461func (s *TargetHttpsProxyAggregatedList) MarshalJSON() ([]byte, error) {
41462	type NoMethod TargetHttpsProxyAggregatedList
41463	raw := NoMethod(*s)
41464	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41465}
41466
41467// TargetHttpsProxyAggregatedListWarning: [Output Only] Informational
41468// warning message.
41469type TargetHttpsProxyAggregatedListWarning struct {
41470	// Code: [Output Only] A warning code, if applicable. For example,
41471	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
41472	// the response.
41473	//
41474	// Possible values:
41475	//   "CLEANUP_FAILED"
41476	//   "DEPRECATED_RESOURCE_USED"
41477	//   "DEPRECATED_TYPE_USED"
41478	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
41479	//   "EXPERIMENTAL_TYPE_USED"
41480	//   "EXTERNAL_API_WARNING"
41481	//   "FIELD_VALUE_OVERRIDEN"
41482	//   "INJECTED_KERNELS_DEPRECATED"
41483	//   "MISSING_TYPE_DEPENDENCY"
41484	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
41485	//   "NEXT_HOP_CANNOT_IP_FORWARD"
41486	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
41487	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
41488	//   "NEXT_HOP_NOT_RUNNING"
41489	//   "NOT_CRITICAL_ERROR"
41490	//   "NO_RESULTS_ON_PAGE"
41491	//   "REQUIRED_TOS_AGREEMENT"
41492	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
41493	//   "RESOURCE_NOT_DELETED"
41494	//   "SCHEMA_VALIDATION_IGNORED"
41495	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
41496	//   "UNDECLARED_PROPERTIES"
41497	//   "UNREACHABLE"
41498	Code string `json:"code,omitempty"`
41499
41500	// Data: [Output Only] Metadata about this warning in key: value format.
41501	// For example:
41502	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
41503	Data []*TargetHttpsProxyAggregatedListWarningData `json:"data,omitempty"`
41504
41505	// Message: [Output Only] A human-readable description of the warning
41506	// code.
41507	Message string `json:"message,omitempty"`
41508
41509	// ForceSendFields is a list of field names (e.g. "Code") to
41510	// unconditionally include in API requests. By default, fields with
41511	// empty values are omitted from API requests. However, any non-pointer,
41512	// non-interface field appearing in ForceSendFields will be sent to the
41513	// server regardless of whether the field is empty or not. This may be
41514	// used to include empty fields in Patch requests.
41515	ForceSendFields []string `json:"-"`
41516
41517	// NullFields is a list of field names (e.g. "Code") to include in API
41518	// requests with the JSON null value. By default, fields with empty
41519	// values are omitted from API requests. However, any field with an
41520	// empty value appearing in NullFields will be sent to the server as
41521	// null. It is an error if a field in this list has a non-empty value.
41522	// This may be used to include null fields in Patch requests.
41523	NullFields []string `json:"-"`
41524}
41525
41526func (s *TargetHttpsProxyAggregatedListWarning) MarshalJSON() ([]byte, error) {
41527	type NoMethod TargetHttpsProxyAggregatedListWarning
41528	raw := NoMethod(*s)
41529	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41530}
41531
41532type TargetHttpsProxyAggregatedListWarningData struct {
41533	// Key: [Output Only] A key that provides more detail on the warning
41534	// being returned. For example, for warnings where there are no results
41535	// in a list request for a particular zone, this key might be scope and
41536	// the key value might be the zone name. Other examples might be a key
41537	// indicating a deprecated resource and a suggested replacement, or a
41538	// warning about invalid network settings (for example, if an instance
41539	// attempts to perform IP forwarding but is not enabled for IP
41540	// forwarding).
41541	Key string `json:"key,omitempty"`
41542
41543	// Value: [Output Only] A warning data value corresponding to the key.
41544	Value string `json:"value,omitempty"`
41545
41546	// ForceSendFields is a list of field names (e.g. "Key") to
41547	// unconditionally include in API requests. By default, fields with
41548	// empty values are omitted from API requests. However, any non-pointer,
41549	// non-interface field appearing in ForceSendFields will be sent to the
41550	// server regardless of whether the field is empty or not. This may be
41551	// used to include empty fields in Patch requests.
41552	ForceSendFields []string `json:"-"`
41553
41554	// NullFields is a list of field names (e.g. "Key") to include in API
41555	// requests with the JSON null value. By default, fields with empty
41556	// values are omitted from API requests. However, any field with an
41557	// empty value appearing in NullFields will be sent to the server as
41558	// null. It is an error if a field in this list has a non-empty value.
41559	// This may be used to include null fields in Patch requests.
41560	NullFields []string `json:"-"`
41561}
41562
41563func (s *TargetHttpsProxyAggregatedListWarningData) MarshalJSON() ([]byte, error) {
41564	type NoMethod TargetHttpsProxyAggregatedListWarningData
41565	raw := NoMethod(*s)
41566	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41567}
41568
41569// TargetHttpsProxyList: Contains a list of TargetHttpsProxy resources.
41570type TargetHttpsProxyList struct {
41571	// Id: [Output Only] Unique identifier for the resource; defined by the
41572	// server.
41573	Id string `json:"id,omitempty"`
41574
41575	// Items: A list of TargetHttpsProxy resources.
41576	Items []*TargetHttpsProxy `json:"items,omitempty"`
41577
41578	// Kind: Type of resource. Always compute#targetHttpsProxyList for lists
41579	// of target HTTPS proxies.
41580	Kind string `json:"kind,omitempty"`
41581
41582	// NextPageToken: [Output Only] This token allows you to get the next
41583	// page of results for list requests. If the number of results is larger
41584	// than maxResults, use the nextPageToken as a value for the query
41585	// parameter pageToken in the next list request. Subsequent list
41586	// requests will have their own nextPageToken to continue paging through
41587	// the results.
41588	NextPageToken string `json:"nextPageToken,omitempty"`
41589
41590	// SelfLink: [Output Only] Server-defined URL for this resource.
41591	SelfLink string `json:"selfLink,omitempty"`
41592
41593	// Warning: [Output Only] Informational warning message.
41594	Warning *TargetHttpsProxyListWarning `json:"warning,omitempty"`
41595
41596	// ServerResponse contains the HTTP response code and headers from the
41597	// server.
41598	googleapi.ServerResponse `json:"-"`
41599
41600	// ForceSendFields is a list of field names (e.g. "Id") to
41601	// unconditionally include in API requests. By default, fields with
41602	// empty values are omitted from API requests. However, any non-pointer,
41603	// non-interface field appearing in ForceSendFields will be sent to the
41604	// server regardless of whether the field is empty or not. This may be
41605	// used to include empty fields in Patch requests.
41606	ForceSendFields []string `json:"-"`
41607
41608	// NullFields is a list of field names (e.g. "Id") to include in API
41609	// requests with the JSON null value. By default, fields with empty
41610	// values are omitted from API requests. However, any field with an
41611	// empty value appearing in NullFields will be sent to the server as
41612	// null. It is an error if a field in this list has a non-empty value.
41613	// This may be used to include null fields in Patch requests.
41614	NullFields []string `json:"-"`
41615}
41616
41617func (s *TargetHttpsProxyList) MarshalJSON() ([]byte, error) {
41618	type NoMethod TargetHttpsProxyList
41619	raw := NoMethod(*s)
41620	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41621}
41622
41623// TargetHttpsProxyListWarning: [Output Only] Informational warning
41624// message.
41625type TargetHttpsProxyListWarning struct {
41626	// Code: [Output Only] A warning code, if applicable. For example,
41627	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
41628	// the response.
41629	//
41630	// Possible values:
41631	//   "CLEANUP_FAILED"
41632	//   "DEPRECATED_RESOURCE_USED"
41633	//   "DEPRECATED_TYPE_USED"
41634	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
41635	//   "EXPERIMENTAL_TYPE_USED"
41636	//   "EXTERNAL_API_WARNING"
41637	//   "FIELD_VALUE_OVERRIDEN"
41638	//   "INJECTED_KERNELS_DEPRECATED"
41639	//   "MISSING_TYPE_DEPENDENCY"
41640	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
41641	//   "NEXT_HOP_CANNOT_IP_FORWARD"
41642	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
41643	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
41644	//   "NEXT_HOP_NOT_RUNNING"
41645	//   "NOT_CRITICAL_ERROR"
41646	//   "NO_RESULTS_ON_PAGE"
41647	//   "REQUIRED_TOS_AGREEMENT"
41648	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
41649	//   "RESOURCE_NOT_DELETED"
41650	//   "SCHEMA_VALIDATION_IGNORED"
41651	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
41652	//   "UNDECLARED_PROPERTIES"
41653	//   "UNREACHABLE"
41654	Code string `json:"code,omitempty"`
41655
41656	// Data: [Output Only] Metadata about this warning in key: value format.
41657	// For example:
41658	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
41659	Data []*TargetHttpsProxyListWarningData `json:"data,omitempty"`
41660
41661	// Message: [Output Only] A human-readable description of the warning
41662	// code.
41663	Message string `json:"message,omitempty"`
41664
41665	// ForceSendFields is a list of field names (e.g. "Code") to
41666	// unconditionally include in API requests. By default, fields with
41667	// empty values are omitted from API requests. However, any non-pointer,
41668	// non-interface field appearing in ForceSendFields will be sent to the
41669	// server regardless of whether the field is empty or not. This may be
41670	// used to include empty fields in Patch requests.
41671	ForceSendFields []string `json:"-"`
41672
41673	// NullFields is a list of field names (e.g. "Code") to include in API
41674	// requests with the JSON null value. By default, fields with empty
41675	// values are omitted from API requests. However, any field with an
41676	// empty value appearing in NullFields will be sent to the server as
41677	// null. It is an error if a field in this list has a non-empty value.
41678	// This may be used to include null fields in Patch requests.
41679	NullFields []string `json:"-"`
41680}
41681
41682func (s *TargetHttpsProxyListWarning) MarshalJSON() ([]byte, error) {
41683	type NoMethod TargetHttpsProxyListWarning
41684	raw := NoMethod(*s)
41685	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41686}
41687
41688type TargetHttpsProxyListWarningData struct {
41689	// Key: [Output Only] A key that provides more detail on the warning
41690	// being returned. For example, for warnings where there are no results
41691	// in a list request for a particular zone, this key might be scope and
41692	// the key value might be the zone name. Other examples might be a key
41693	// indicating a deprecated resource and a suggested replacement, or a
41694	// warning about invalid network settings (for example, if an instance
41695	// attempts to perform IP forwarding but is not enabled for IP
41696	// forwarding).
41697	Key string `json:"key,omitempty"`
41698
41699	// Value: [Output Only] A warning data value corresponding to the key.
41700	Value string `json:"value,omitempty"`
41701
41702	// ForceSendFields is a list of field names (e.g. "Key") to
41703	// unconditionally include in API requests. By default, fields with
41704	// empty values are omitted from API requests. However, any non-pointer,
41705	// non-interface field appearing in ForceSendFields will be sent to the
41706	// server regardless of whether the field is empty or not. This may be
41707	// used to include empty fields in Patch requests.
41708	ForceSendFields []string `json:"-"`
41709
41710	// NullFields is a list of field names (e.g. "Key") to include in API
41711	// requests with the JSON null value. By default, fields with empty
41712	// values are omitted from API requests. However, any field with an
41713	// empty value appearing in NullFields will be sent to the server as
41714	// null. It is an error if a field in this list has a non-empty value.
41715	// This may be used to include null fields in Patch requests.
41716	NullFields []string `json:"-"`
41717}
41718
41719func (s *TargetHttpsProxyListWarningData) MarshalJSON() ([]byte, error) {
41720	type NoMethod TargetHttpsProxyListWarningData
41721	raw := NoMethod(*s)
41722	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41723}
41724
41725// TargetInstance: Represents a Target Instance resource.
41726//
41727// You can use a target instance to handle traffic for one or more
41728// forwarding rules, which is ideal for forwarding protocol traffic that
41729// is managed by a single source. For example, ESP, AH, TCP, or UDP. For
41730// more information, read Target instances. (== resource_for
41731// beta.targetInstances ==) (== resource_for v1.targetInstances ==)
41732type TargetInstance struct {
41733	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
41734	// format.
41735	CreationTimestamp string `json:"creationTimestamp,omitempty"`
41736
41737	// Description: An optional description of this resource. Provide this
41738	// property when you create the resource.
41739	Description string `json:"description,omitempty"`
41740
41741	// Id: [Output Only] The unique identifier for the resource. This
41742	// identifier is defined by the server.
41743	Id uint64 `json:"id,omitempty,string"`
41744
41745	// Instance: A URL to the virtual machine instance that handles traffic
41746	// for this target instance. When creating a target instance, you can
41747	// provide the fully-qualified URL or a valid partial URL to the desired
41748	// virtual machine. For example, the following are all valid URLs:
41749	// -
41750	// https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/instance
41751	// - projects/project/zones/zone/instances/instance
41752	// - zones/zone/instances/instance
41753	Instance string `json:"instance,omitempty"`
41754
41755	// Kind: [Output Only] The type of the resource. Always
41756	// compute#targetInstance for target instances.
41757	Kind string `json:"kind,omitempty"`
41758
41759	// Name: Name of the resource. Provided by the client when the resource
41760	// is created. The name must be 1-63 characters long, and comply with
41761	// RFC1035. Specifically, the name must be 1-63 characters long and
41762	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
41763	// the first character must be a lowercase letter, and all following
41764	// characters must be a dash, lowercase letter, or digit, except the
41765	// last character, which cannot be a dash.
41766	Name string `json:"name,omitempty"`
41767
41768	// NatPolicy: NAT option controlling how IPs are NAT'ed to the instance.
41769	// Currently only NO_NAT (default value) is supported.
41770	//
41771	// Possible values:
41772	//   "NO_NAT"
41773	NatPolicy string `json:"natPolicy,omitempty"`
41774
41775	// SelfLink: [Output Only] Server-defined URL for the resource.
41776	SelfLink string `json:"selfLink,omitempty"`
41777
41778	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
41779	// with the resource id.
41780	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
41781
41782	// Zone: [Output Only] URL of the zone where the target instance
41783	// resides. You must specify this field as part of the HTTP request URL.
41784	// It is not settable as a field in the request body.
41785	Zone string `json:"zone,omitempty"`
41786
41787	// ServerResponse contains the HTTP response code and headers from the
41788	// server.
41789	googleapi.ServerResponse `json:"-"`
41790
41791	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
41792	// to unconditionally include in API requests. By default, fields with
41793	// empty values are omitted from API requests. However, any non-pointer,
41794	// non-interface field appearing in ForceSendFields will be sent to the
41795	// server regardless of whether the field is empty or not. This may be
41796	// used to include empty fields in Patch requests.
41797	ForceSendFields []string `json:"-"`
41798
41799	// NullFields is a list of field names (e.g. "CreationTimestamp") to
41800	// include in API requests with the JSON null value. By default, fields
41801	// with empty values are omitted from API requests. However, any field
41802	// with an empty value appearing in NullFields will be sent to the
41803	// server as null. It is an error if a field in this list has a
41804	// non-empty value. This may be used to include null fields in Patch
41805	// requests.
41806	NullFields []string `json:"-"`
41807}
41808
41809func (s *TargetInstance) MarshalJSON() ([]byte, error) {
41810	type NoMethod TargetInstance
41811	raw := NoMethod(*s)
41812	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41813}
41814
41815type TargetInstanceAggregatedList struct {
41816	// Id: [Output Only] Unique identifier for the resource; defined by the
41817	// server.
41818	Id string `json:"id,omitempty"`
41819
41820	// Items: A list of TargetInstance resources.
41821	Items map[string]TargetInstancesScopedList `json:"items,omitempty"`
41822
41823	// Kind: Type of resource.
41824	Kind string `json:"kind,omitempty"`
41825
41826	// NextPageToken: [Output Only] This token allows you to get the next
41827	// page of results for list requests. If the number of results is larger
41828	// than maxResults, use the nextPageToken as a value for the query
41829	// parameter pageToken in the next list request. Subsequent list
41830	// requests will have their own nextPageToken to continue paging through
41831	// the results.
41832	NextPageToken string `json:"nextPageToken,omitempty"`
41833
41834	// SelfLink: [Output Only] Server-defined URL for this resource.
41835	SelfLink string `json:"selfLink,omitempty"`
41836
41837	// Warning: [Output Only] Informational warning message.
41838	Warning *TargetInstanceAggregatedListWarning `json:"warning,omitempty"`
41839
41840	// ServerResponse contains the HTTP response code and headers from the
41841	// server.
41842	googleapi.ServerResponse `json:"-"`
41843
41844	// ForceSendFields is a list of field names (e.g. "Id") to
41845	// unconditionally include in API requests. By default, fields with
41846	// empty values are omitted from API requests. However, any non-pointer,
41847	// non-interface field appearing in ForceSendFields will be sent to the
41848	// server regardless of whether the field is empty or not. This may be
41849	// used to include empty fields in Patch requests.
41850	ForceSendFields []string `json:"-"`
41851
41852	// NullFields is a list of field names (e.g. "Id") to include in API
41853	// requests with the JSON null value. By default, fields with empty
41854	// values are omitted from API requests. However, any field with an
41855	// empty value appearing in NullFields will be sent to the server as
41856	// null. It is an error if a field in this list has a non-empty value.
41857	// This may be used to include null fields in Patch requests.
41858	NullFields []string `json:"-"`
41859}
41860
41861func (s *TargetInstanceAggregatedList) MarshalJSON() ([]byte, error) {
41862	type NoMethod TargetInstanceAggregatedList
41863	raw := NoMethod(*s)
41864	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41865}
41866
41867// TargetInstanceAggregatedListWarning: [Output Only] Informational
41868// warning message.
41869type TargetInstanceAggregatedListWarning struct {
41870	// Code: [Output Only] A warning code, if applicable. For example,
41871	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
41872	// the response.
41873	//
41874	// Possible values:
41875	//   "CLEANUP_FAILED"
41876	//   "DEPRECATED_RESOURCE_USED"
41877	//   "DEPRECATED_TYPE_USED"
41878	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
41879	//   "EXPERIMENTAL_TYPE_USED"
41880	//   "EXTERNAL_API_WARNING"
41881	//   "FIELD_VALUE_OVERRIDEN"
41882	//   "INJECTED_KERNELS_DEPRECATED"
41883	//   "MISSING_TYPE_DEPENDENCY"
41884	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
41885	//   "NEXT_HOP_CANNOT_IP_FORWARD"
41886	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
41887	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
41888	//   "NEXT_HOP_NOT_RUNNING"
41889	//   "NOT_CRITICAL_ERROR"
41890	//   "NO_RESULTS_ON_PAGE"
41891	//   "REQUIRED_TOS_AGREEMENT"
41892	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
41893	//   "RESOURCE_NOT_DELETED"
41894	//   "SCHEMA_VALIDATION_IGNORED"
41895	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
41896	//   "UNDECLARED_PROPERTIES"
41897	//   "UNREACHABLE"
41898	Code string `json:"code,omitempty"`
41899
41900	// Data: [Output Only] Metadata about this warning in key: value format.
41901	// For example:
41902	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
41903	Data []*TargetInstanceAggregatedListWarningData `json:"data,omitempty"`
41904
41905	// Message: [Output Only] A human-readable description of the warning
41906	// code.
41907	Message string `json:"message,omitempty"`
41908
41909	// ForceSendFields is a list of field names (e.g. "Code") to
41910	// unconditionally include in API requests. By default, fields with
41911	// empty values are omitted from API requests. However, any non-pointer,
41912	// non-interface field appearing in ForceSendFields will be sent to the
41913	// server regardless of whether the field is empty or not. This may be
41914	// used to include empty fields in Patch requests.
41915	ForceSendFields []string `json:"-"`
41916
41917	// NullFields is a list of field names (e.g. "Code") to include in API
41918	// requests with the JSON null value. By default, fields with empty
41919	// values are omitted from API requests. However, any field with an
41920	// empty value appearing in NullFields will be sent to the server as
41921	// null. It is an error if a field in this list has a non-empty value.
41922	// This may be used to include null fields in Patch requests.
41923	NullFields []string `json:"-"`
41924}
41925
41926func (s *TargetInstanceAggregatedListWarning) MarshalJSON() ([]byte, error) {
41927	type NoMethod TargetInstanceAggregatedListWarning
41928	raw := NoMethod(*s)
41929	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41930}
41931
41932type TargetInstanceAggregatedListWarningData struct {
41933	// Key: [Output Only] A key that provides more detail on the warning
41934	// being returned. For example, for warnings where there are no results
41935	// in a list request for a particular zone, this key might be scope and
41936	// the key value might be the zone name. Other examples might be a key
41937	// indicating a deprecated resource and a suggested replacement, or a
41938	// warning about invalid network settings (for example, if an instance
41939	// attempts to perform IP forwarding but is not enabled for IP
41940	// forwarding).
41941	Key string `json:"key,omitempty"`
41942
41943	// Value: [Output Only] A warning data value corresponding to the key.
41944	Value string `json:"value,omitempty"`
41945
41946	// ForceSendFields is a list of field names (e.g. "Key") to
41947	// unconditionally include in API requests. By default, fields with
41948	// empty values are omitted from API requests. However, any non-pointer,
41949	// non-interface field appearing in ForceSendFields will be sent to the
41950	// server regardless of whether the field is empty or not. This may be
41951	// used to include empty fields in Patch requests.
41952	ForceSendFields []string `json:"-"`
41953
41954	// NullFields is a list of field names (e.g. "Key") to include in API
41955	// requests with the JSON null value. By default, fields with empty
41956	// values are omitted from API requests. However, any field with an
41957	// empty value appearing in NullFields will be sent to the server as
41958	// null. It is an error if a field in this list has a non-empty value.
41959	// This may be used to include null fields in Patch requests.
41960	NullFields []string `json:"-"`
41961}
41962
41963func (s *TargetInstanceAggregatedListWarningData) MarshalJSON() ([]byte, error) {
41964	type NoMethod TargetInstanceAggregatedListWarningData
41965	raw := NoMethod(*s)
41966	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41967}
41968
41969// TargetInstanceList: Contains a list of TargetInstance resources.
41970type TargetInstanceList struct {
41971	// Id: [Output Only] Unique identifier for the resource; defined by the
41972	// server.
41973	Id string `json:"id,omitempty"`
41974
41975	// Items: A list of TargetInstance resources.
41976	Items []*TargetInstance `json:"items,omitempty"`
41977
41978	// Kind: Type of resource.
41979	Kind string `json:"kind,omitempty"`
41980
41981	// NextPageToken: [Output Only] This token allows you to get the next
41982	// page of results for list requests. If the number of results is larger
41983	// than maxResults, use the nextPageToken as a value for the query
41984	// parameter pageToken in the next list request. Subsequent list
41985	// requests will have their own nextPageToken to continue paging through
41986	// the results.
41987	NextPageToken string `json:"nextPageToken,omitempty"`
41988
41989	// SelfLink: [Output Only] Server-defined URL for this resource.
41990	SelfLink string `json:"selfLink,omitempty"`
41991
41992	// Warning: [Output Only] Informational warning message.
41993	Warning *TargetInstanceListWarning `json:"warning,omitempty"`
41994
41995	// ServerResponse contains the HTTP response code and headers from the
41996	// server.
41997	googleapi.ServerResponse `json:"-"`
41998
41999	// ForceSendFields is a list of field names (e.g. "Id") 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. "Id") 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 *TargetInstanceList) MarshalJSON() ([]byte, error) {
42017	type NoMethod TargetInstanceList
42018	raw := NoMethod(*s)
42019	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42020}
42021
42022// TargetInstanceListWarning: [Output Only] Informational warning
42023// message.
42024type TargetInstanceListWarning struct {
42025	// Code: [Output Only] A warning code, if applicable. For example,
42026	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
42027	// the response.
42028	//
42029	// Possible values:
42030	//   "CLEANUP_FAILED"
42031	//   "DEPRECATED_RESOURCE_USED"
42032	//   "DEPRECATED_TYPE_USED"
42033	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
42034	//   "EXPERIMENTAL_TYPE_USED"
42035	//   "EXTERNAL_API_WARNING"
42036	//   "FIELD_VALUE_OVERRIDEN"
42037	//   "INJECTED_KERNELS_DEPRECATED"
42038	//   "MISSING_TYPE_DEPENDENCY"
42039	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
42040	//   "NEXT_HOP_CANNOT_IP_FORWARD"
42041	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
42042	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
42043	//   "NEXT_HOP_NOT_RUNNING"
42044	//   "NOT_CRITICAL_ERROR"
42045	//   "NO_RESULTS_ON_PAGE"
42046	//   "REQUIRED_TOS_AGREEMENT"
42047	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
42048	//   "RESOURCE_NOT_DELETED"
42049	//   "SCHEMA_VALIDATION_IGNORED"
42050	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
42051	//   "UNDECLARED_PROPERTIES"
42052	//   "UNREACHABLE"
42053	Code string `json:"code,omitempty"`
42054
42055	// Data: [Output Only] Metadata about this warning in key: value format.
42056	// For example:
42057	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
42058	Data []*TargetInstanceListWarningData `json:"data,omitempty"`
42059
42060	// Message: [Output Only] A human-readable description of the warning
42061	// code.
42062	Message string `json:"message,omitempty"`
42063
42064	// ForceSendFields is a list of field names (e.g. "Code") to
42065	// unconditionally include in API requests. By default, fields with
42066	// empty values are omitted from API requests. However, any non-pointer,
42067	// non-interface field appearing in ForceSendFields will be sent to the
42068	// server regardless of whether the field is empty or not. This may be
42069	// used to include empty fields in Patch requests.
42070	ForceSendFields []string `json:"-"`
42071
42072	// NullFields is a list of field names (e.g. "Code") to include in API
42073	// requests with the JSON null value. By default, fields with empty
42074	// values are omitted from API requests. However, any field with an
42075	// empty value appearing in NullFields will be sent to the server as
42076	// null. It is an error if a field in this list has a non-empty value.
42077	// This may be used to include null fields in Patch requests.
42078	NullFields []string `json:"-"`
42079}
42080
42081func (s *TargetInstanceListWarning) MarshalJSON() ([]byte, error) {
42082	type NoMethod TargetInstanceListWarning
42083	raw := NoMethod(*s)
42084	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42085}
42086
42087type TargetInstanceListWarningData struct {
42088	// Key: [Output Only] A key that provides more detail on the warning
42089	// being returned. For example, for warnings where there are no results
42090	// in a list request for a particular zone, this key might be scope and
42091	// the key value might be the zone name. Other examples might be a key
42092	// indicating a deprecated resource and a suggested replacement, or a
42093	// warning about invalid network settings (for example, if an instance
42094	// attempts to perform IP forwarding but is not enabled for IP
42095	// forwarding).
42096	Key string `json:"key,omitempty"`
42097
42098	// Value: [Output Only] A warning data value corresponding to the key.
42099	Value string `json:"value,omitempty"`
42100
42101	// ForceSendFields is a list of field names (e.g. "Key") to
42102	// unconditionally include in API requests. By default, fields with
42103	// empty values are omitted from API requests. However, any non-pointer,
42104	// non-interface field appearing in ForceSendFields will be sent to the
42105	// server regardless of whether the field is empty or not. This may be
42106	// used to include empty fields in Patch requests.
42107	ForceSendFields []string `json:"-"`
42108
42109	// NullFields is a list of field names (e.g. "Key") to include in API
42110	// requests with the JSON null value. By default, fields with empty
42111	// values are omitted from API requests. However, any field with an
42112	// empty value appearing in NullFields will be sent to the server as
42113	// null. It is an error if a field in this list has a non-empty value.
42114	// This may be used to include null fields in Patch requests.
42115	NullFields []string `json:"-"`
42116}
42117
42118func (s *TargetInstanceListWarningData) MarshalJSON() ([]byte, error) {
42119	type NoMethod TargetInstanceListWarningData
42120	raw := NoMethod(*s)
42121	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42122}
42123
42124type TargetInstancesScopedList struct {
42125	// TargetInstances: A list of target instances contained in this scope.
42126	TargetInstances []*TargetInstance `json:"targetInstances,omitempty"`
42127
42128	// Warning: Informational warning which replaces the list of addresses
42129	// when the list is empty.
42130	Warning *TargetInstancesScopedListWarning `json:"warning,omitempty"`
42131
42132	// ForceSendFields is a list of field names (e.g. "TargetInstances") to
42133	// unconditionally include in API requests. By default, fields with
42134	// empty values are omitted from API requests. However, any non-pointer,
42135	// non-interface field appearing in ForceSendFields will be sent to the
42136	// server regardless of whether the field is empty or not. This may be
42137	// used to include empty fields in Patch requests.
42138	ForceSendFields []string `json:"-"`
42139
42140	// NullFields is a list of field names (e.g. "TargetInstances") to
42141	// include in API requests with the JSON null value. By default, fields
42142	// with empty values are omitted from API requests. However, any field
42143	// with an empty value appearing in NullFields will be sent to the
42144	// server as null. It is an error if a field in this list has a
42145	// non-empty value. This may be used to include null fields in Patch
42146	// requests.
42147	NullFields []string `json:"-"`
42148}
42149
42150func (s *TargetInstancesScopedList) MarshalJSON() ([]byte, error) {
42151	type NoMethod TargetInstancesScopedList
42152	raw := NoMethod(*s)
42153	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42154}
42155
42156// TargetInstancesScopedListWarning: Informational warning which
42157// replaces the list of addresses when the list is empty.
42158type TargetInstancesScopedListWarning struct {
42159	// Code: [Output Only] A warning code, if applicable. For example,
42160	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
42161	// the response.
42162	//
42163	// Possible values:
42164	//   "CLEANUP_FAILED"
42165	//   "DEPRECATED_RESOURCE_USED"
42166	//   "DEPRECATED_TYPE_USED"
42167	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
42168	//   "EXPERIMENTAL_TYPE_USED"
42169	//   "EXTERNAL_API_WARNING"
42170	//   "FIELD_VALUE_OVERRIDEN"
42171	//   "INJECTED_KERNELS_DEPRECATED"
42172	//   "MISSING_TYPE_DEPENDENCY"
42173	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
42174	//   "NEXT_HOP_CANNOT_IP_FORWARD"
42175	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
42176	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
42177	//   "NEXT_HOP_NOT_RUNNING"
42178	//   "NOT_CRITICAL_ERROR"
42179	//   "NO_RESULTS_ON_PAGE"
42180	//   "REQUIRED_TOS_AGREEMENT"
42181	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
42182	//   "RESOURCE_NOT_DELETED"
42183	//   "SCHEMA_VALIDATION_IGNORED"
42184	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
42185	//   "UNDECLARED_PROPERTIES"
42186	//   "UNREACHABLE"
42187	Code string `json:"code,omitempty"`
42188
42189	// Data: [Output Only] Metadata about this warning in key: value format.
42190	// For example:
42191	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
42192	Data []*TargetInstancesScopedListWarningData `json:"data,omitempty"`
42193
42194	// Message: [Output Only] A human-readable description of the warning
42195	// code.
42196	Message string `json:"message,omitempty"`
42197
42198	// ForceSendFields is a list of field names (e.g. "Code") to
42199	// unconditionally include in API requests. By default, fields with
42200	// empty values are omitted from API requests. However, any non-pointer,
42201	// non-interface field appearing in ForceSendFields will be sent to the
42202	// server regardless of whether the field is empty or not. This may be
42203	// used to include empty fields in Patch requests.
42204	ForceSendFields []string `json:"-"`
42205
42206	// NullFields is a list of field names (e.g. "Code") to include in API
42207	// requests with the JSON null value. By default, fields with empty
42208	// values are omitted from API requests. However, any field with an
42209	// empty value appearing in NullFields will be sent to the server as
42210	// null. It is an error if a field in this list has a non-empty value.
42211	// This may be used to include null fields in Patch requests.
42212	NullFields []string `json:"-"`
42213}
42214
42215func (s *TargetInstancesScopedListWarning) MarshalJSON() ([]byte, error) {
42216	type NoMethod TargetInstancesScopedListWarning
42217	raw := NoMethod(*s)
42218	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42219}
42220
42221type TargetInstancesScopedListWarningData struct {
42222	// Key: [Output Only] A key that provides more detail on the warning
42223	// being returned. For example, for warnings where there are no results
42224	// in a list request for a particular zone, this key might be scope and
42225	// the key value might be the zone name. Other examples might be a key
42226	// indicating a deprecated resource and a suggested replacement, or a
42227	// warning about invalid network settings (for example, if an instance
42228	// attempts to perform IP forwarding but is not enabled for IP
42229	// forwarding).
42230	Key string `json:"key,omitempty"`
42231
42232	// Value: [Output Only] A warning data value corresponding to the key.
42233	Value string `json:"value,omitempty"`
42234
42235	// ForceSendFields is a list of field names (e.g. "Key") to
42236	// unconditionally include in API requests. By default, fields with
42237	// empty values are omitted from API requests. However, any non-pointer,
42238	// non-interface field appearing in ForceSendFields will be sent to the
42239	// server regardless of whether the field is empty or not. This may be
42240	// used to include empty fields in Patch requests.
42241	ForceSendFields []string `json:"-"`
42242
42243	// NullFields is a list of field names (e.g. "Key") to include in API
42244	// requests with the JSON null value. By default, fields with empty
42245	// values are omitted from API requests. However, any field with an
42246	// empty value appearing in NullFields will be sent to the server as
42247	// null. It is an error if a field in this list has a non-empty value.
42248	// This may be used to include null fields in Patch requests.
42249	NullFields []string `json:"-"`
42250}
42251
42252func (s *TargetInstancesScopedListWarningData) MarshalJSON() ([]byte, error) {
42253	type NoMethod TargetInstancesScopedListWarningData
42254	raw := NoMethod(*s)
42255	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42256}
42257
42258// TargetPool: Represents a Target Pool resource.
42259//
42260// Target pools are used for network TCP/UDP load balancing. A target
42261// pool references member instances, an associated legacy
42262// HttpHealthCheck resource, and, optionally, a backup target pool. For
42263// more information, read Using target pools. (== resource_for
42264// beta.targetPools ==) (== resource_for v1.targetPools ==)
42265type TargetPool struct {
42266	// BackupPool: This field is applicable only when the containing target
42267	// pool is serving a forwarding rule as the primary pool, and its
42268	// failoverRatio field is properly set to a value between [0,
42269	// 1].
42270	//
42271	// backupPool and failoverRatio together define the fallback behavior of
42272	// the primary target pool: if the ratio of the healthy instances in the
42273	// primary pool is at or below failoverRatio, traffic arriving at the
42274	// load-balanced IP will be directed to the backup pool.
42275	//
42276	// In case where failoverRatio and backupPool are not set, or all the
42277	// instances in the backup pool are unhealthy, the traffic will be
42278	// directed back to the primary pool in the "force" mode, where traffic
42279	// will be spread to the healthy instances with the best effort, or to
42280	// all instances when no instance is healthy.
42281	BackupPool string `json:"backupPool,omitempty"`
42282
42283	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
42284	// format.
42285	CreationTimestamp string `json:"creationTimestamp,omitempty"`
42286
42287	// Description: An optional description of this resource. Provide this
42288	// property when you create the resource.
42289	Description string `json:"description,omitempty"`
42290
42291	// FailoverRatio: This field is applicable only when the containing
42292	// target pool is serving a forwarding rule as the primary pool (i.e.,
42293	// not as a backup pool to some other target pool). The value of the
42294	// field must be in [0, 1].
42295	//
42296	// If set, backupPool must also be set. They together define the
42297	// fallback behavior of the primary target pool: if the ratio of the
42298	// healthy instances in the primary pool is at or below this number,
42299	// traffic arriving at the load-balanced IP will be directed to the
42300	// backup pool.
42301	//
42302	// In case where failoverRatio is not set or all the instances in the
42303	// backup pool are unhealthy, the traffic will be directed back to the
42304	// primary pool in the "force" mode, where traffic will be spread to the
42305	// healthy instances with the best effort, or to all instances when no
42306	// instance is healthy.
42307	FailoverRatio float64 `json:"failoverRatio,omitempty"`
42308
42309	// HealthChecks: The URL of the HttpHealthCheck resource. A member
42310	// instance in this pool is considered healthy if and only if the health
42311	// checks pass. An empty list means all member instances will be
42312	// considered healthy at all times. Only HttpHealthChecks are supported.
42313	// Only one health check may be specified.
42314	HealthChecks []string `json:"healthChecks,omitempty"`
42315
42316	// Id: [Output Only] The unique identifier for the resource. This
42317	// identifier is defined by the server.
42318	Id uint64 `json:"id,omitempty,string"`
42319
42320	// Instances: A list of resource URLs to the virtual machine instances
42321	// serving this pool. They must live in zones contained in the same
42322	// region as this pool.
42323	Instances []string `json:"instances,omitempty"`
42324
42325	// Kind: [Output Only] Type of the resource. Always compute#targetPool
42326	// for target pools.
42327	Kind string `json:"kind,omitempty"`
42328
42329	// Name: Name of the resource. Provided by the client when the resource
42330	// is created. The name must be 1-63 characters long, and comply with
42331	// RFC1035. Specifically, the name must be 1-63 characters long and
42332	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
42333	// the first character must be a lowercase letter, and all following
42334	// characters must be a dash, lowercase letter, or digit, except the
42335	// last character, which cannot be a dash.
42336	Name string `json:"name,omitempty"`
42337
42338	// Region: [Output Only] URL of the region where the target pool
42339	// resides.
42340	Region string `json:"region,omitempty"`
42341
42342	// SelfLink: [Output Only] Server-defined URL for the resource.
42343	SelfLink string `json:"selfLink,omitempty"`
42344
42345	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
42346	// with the resource id.
42347	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
42348
42349	// SessionAffinity: Session affinity option, must be one of the
42350	// following values:
42351	// NONE: Connections from the same client IP may go to any instance in
42352	// the pool.
42353	// CLIENT_IP: Connections from the same client IP will go to the same
42354	// instance in the pool while that instance remains
42355	// healthy.
42356	// CLIENT_IP_PROTO: Connections from the same client IP with the same IP
42357	// protocol will go to the same instance in the pool while that instance
42358	// remains healthy.
42359	//
42360	// Possible values:
42361	//   "CLIENT_IP"
42362	//   "CLIENT_IP_PORT_PROTO"
42363	//   "CLIENT_IP_PROTO"
42364	//   "GENERATED_COOKIE"
42365	//   "HEADER_FIELD"
42366	//   "HTTP_COOKIE"
42367	//   "NONE"
42368	SessionAffinity string `json:"sessionAffinity,omitempty"`
42369
42370	// ServerResponse contains the HTTP response code and headers from the
42371	// server.
42372	googleapi.ServerResponse `json:"-"`
42373
42374	// ForceSendFields is a list of field names (e.g. "BackupPool") to
42375	// unconditionally include in API requests. By default, fields with
42376	// empty values are omitted from API requests. However, any non-pointer,
42377	// non-interface field appearing in ForceSendFields will be sent to the
42378	// server regardless of whether the field is empty or not. This may be
42379	// used to include empty fields in Patch requests.
42380	ForceSendFields []string `json:"-"`
42381
42382	// NullFields is a list of field names (e.g. "BackupPool") to include in
42383	// API requests with the JSON null value. By default, fields with empty
42384	// values are omitted from API requests. However, any field with an
42385	// empty value appearing in NullFields will be sent to the server as
42386	// null. It is an error if a field in this list has a non-empty value.
42387	// This may be used to include null fields in Patch requests.
42388	NullFields []string `json:"-"`
42389}
42390
42391func (s *TargetPool) MarshalJSON() ([]byte, error) {
42392	type NoMethod TargetPool
42393	raw := NoMethod(*s)
42394	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42395}
42396
42397func (s *TargetPool) UnmarshalJSON(data []byte) error {
42398	type NoMethod TargetPool
42399	var s1 struct {
42400		FailoverRatio gensupport.JSONFloat64 `json:"failoverRatio"`
42401		*NoMethod
42402	}
42403	s1.NoMethod = (*NoMethod)(s)
42404	if err := json.Unmarshal(data, &s1); err != nil {
42405		return err
42406	}
42407	s.FailoverRatio = float64(s1.FailoverRatio)
42408	return nil
42409}
42410
42411type TargetPoolAggregatedList struct {
42412	// Id: [Output Only] Unique identifier for the resource; defined by the
42413	// server.
42414	Id string `json:"id,omitempty"`
42415
42416	// Items: A list of TargetPool resources.
42417	Items map[string]TargetPoolsScopedList `json:"items,omitempty"`
42418
42419	// Kind: [Output Only] Type of resource. Always
42420	// compute#targetPoolAggregatedList for aggregated lists of target
42421	// pools.
42422	Kind string `json:"kind,omitempty"`
42423
42424	// NextPageToken: [Output Only] This token allows you to get the next
42425	// page of results for list requests. If the number of results is larger
42426	// than maxResults, use the nextPageToken as a value for the query
42427	// parameter pageToken in the next list request. Subsequent list
42428	// requests will have their own nextPageToken to continue paging through
42429	// the results.
42430	NextPageToken string `json:"nextPageToken,omitempty"`
42431
42432	// SelfLink: [Output Only] Server-defined URL for this resource.
42433	SelfLink string `json:"selfLink,omitempty"`
42434
42435	// Warning: [Output Only] Informational warning message.
42436	Warning *TargetPoolAggregatedListWarning `json:"warning,omitempty"`
42437
42438	// ServerResponse contains the HTTP response code and headers from the
42439	// server.
42440	googleapi.ServerResponse `json:"-"`
42441
42442	// ForceSendFields is a list of field names (e.g. "Id") to
42443	// unconditionally include in API requests. By default, fields with
42444	// empty values are omitted from API requests. However, any non-pointer,
42445	// non-interface field appearing in ForceSendFields will be sent to the
42446	// server regardless of whether the field is empty or not. This may be
42447	// used to include empty fields in Patch requests.
42448	ForceSendFields []string `json:"-"`
42449
42450	// NullFields is a list of field names (e.g. "Id") to include in API
42451	// requests with the JSON null value. By default, fields with empty
42452	// values are omitted from API requests. However, any field with an
42453	// empty value appearing in NullFields will be sent to the server as
42454	// null. It is an error if a field in this list has a non-empty value.
42455	// This may be used to include null fields in Patch requests.
42456	NullFields []string `json:"-"`
42457}
42458
42459func (s *TargetPoolAggregatedList) MarshalJSON() ([]byte, error) {
42460	type NoMethod TargetPoolAggregatedList
42461	raw := NoMethod(*s)
42462	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42463}
42464
42465// TargetPoolAggregatedListWarning: [Output Only] Informational warning
42466// message.
42467type TargetPoolAggregatedListWarning struct {
42468	// Code: [Output Only] A warning code, if applicable. For example,
42469	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
42470	// the response.
42471	//
42472	// Possible values:
42473	//   "CLEANUP_FAILED"
42474	//   "DEPRECATED_RESOURCE_USED"
42475	//   "DEPRECATED_TYPE_USED"
42476	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
42477	//   "EXPERIMENTAL_TYPE_USED"
42478	//   "EXTERNAL_API_WARNING"
42479	//   "FIELD_VALUE_OVERRIDEN"
42480	//   "INJECTED_KERNELS_DEPRECATED"
42481	//   "MISSING_TYPE_DEPENDENCY"
42482	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
42483	//   "NEXT_HOP_CANNOT_IP_FORWARD"
42484	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
42485	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
42486	//   "NEXT_HOP_NOT_RUNNING"
42487	//   "NOT_CRITICAL_ERROR"
42488	//   "NO_RESULTS_ON_PAGE"
42489	//   "REQUIRED_TOS_AGREEMENT"
42490	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
42491	//   "RESOURCE_NOT_DELETED"
42492	//   "SCHEMA_VALIDATION_IGNORED"
42493	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
42494	//   "UNDECLARED_PROPERTIES"
42495	//   "UNREACHABLE"
42496	Code string `json:"code,omitempty"`
42497
42498	// Data: [Output Only] Metadata about this warning in key: value format.
42499	// For example:
42500	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
42501	Data []*TargetPoolAggregatedListWarningData `json:"data,omitempty"`
42502
42503	// Message: [Output Only] A human-readable description of the warning
42504	// code.
42505	Message string `json:"message,omitempty"`
42506
42507	// ForceSendFields is a list of field names (e.g. "Code") to
42508	// unconditionally include in API requests. By default, fields with
42509	// empty values are omitted from API requests. However, any non-pointer,
42510	// non-interface field appearing in ForceSendFields will be sent to the
42511	// server regardless of whether the field is empty or not. This may be
42512	// used to include empty fields in Patch requests.
42513	ForceSendFields []string `json:"-"`
42514
42515	// NullFields is a list of field names (e.g. "Code") to include in API
42516	// requests with the JSON null value. By default, fields with empty
42517	// values are omitted from API requests. However, any field with an
42518	// empty value appearing in NullFields will be sent to the server as
42519	// null. It is an error if a field in this list has a non-empty value.
42520	// This may be used to include null fields in Patch requests.
42521	NullFields []string `json:"-"`
42522}
42523
42524func (s *TargetPoolAggregatedListWarning) MarshalJSON() ([]byte, error) {
42525	type NoMethod TargetPoolAggregatedListWarning
42526	raw := NoMethod(*s)
42527	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42528}
42529
42530type TargetPoolAggregatedListWarningData struct {
42531	// Key: [Output Only] A key that provides more detail on the warning
42532	// being returned. For example, for warnings where there are no results
42533	// in a list request for a particular zone, this key might be scope and
42534	// the key value might be the zone name. Other examples might be a key
42535	// indicating a deprecated resource and a suggested replacement, or a
42536	// warning about invalid network settings (for example, if an instance
42537	// attempts to perform IP forwarding but is not enabled for IP
42538	// forwarding).
42539	Key string `json:"key,omitempty"`
42540
42541	// Value: [Output Only] A warning data value corresponding to the key.
42542	Value string `json:"value,omitempty"`
42543
42544	// ForceSendFields is a list of field names (e.g. "Key") to
42545	// unconditionally include in API requests. By default, fields with
42546	// empty values are omitted from API requests. However, any non-pointer,
42547	// non-interface field appearing in ForceSendFields will be sent to the
42548	// server regardless of whether the field is empty or not. This may be
42549	// used to include empty fields in Patch requests.
42550	ForceSendFields []string `json:"-"`
42551
42552	// NullFields is a list of field names (e.g. "Key") to include in API
42553	// requests with the JSON null value. By default, fields with empty
42554	// values are omitted from API requests. However, any field with an
42555	// empty value appearing in NullFields will be sent to the server as
42556	// null. It is an error if a field in this list has a non-empty value.
42557	// This may be used to include null fields in Patch requests.
42558	NullFields []string `json:"-"`
42559}
42560
42561func (s *TargetPoolAggregatedListWarningData) MarshalJSON() ([]byte, error) {
42562	type NoMethod TargetPoolAggregatedListWarningData
42563	raw := NoMethod(*s)
42564	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42565}
42566
42567type TargetPoolInstanceHealth struct {
42568	HealthStatus []*HealthStatus `json:"healthStatus,omitempty"`
42569
42570	// Kind: [Output Only] Type of resource. Always
42571	// compute#targetPoolInstanceHealth when checking the health of an
42572	// instance.
42573	Kind string `json:"kind,omitempty"`
42574
42575	// ServerResponse contains the HTTP response code and headers from the
42576	// server.
42577	googleapi.ServerResponse `json:"-"`
42578
42579	// ForceSendFields is a list of field names (e.g. "HealthStatus") to
42580	// unconditionally include in API requests. By default, fields with
42581	// empty values are omitted from API requests. However, any non-pointer,
42582	// non-interface field appearing in ForceSendFields will be sent to the
42583	// server regardless of whether the field is empty or not. This may be
42584	// used to include empty fields in Patch requests.
42585	ForceSendFields []string `json:"-"`
42586
42587	// NullFields is a list of field names (e.g. "HealthStatus") to include
42588	// in API requests with the JSON null value. By default, fields with
42589	// empty values are omitted from API requests. However, any field with
42590	// an empty value appearing in NullFields will be sent to the server as
42591	// null. It is an error if a field in this list has a non-empty value.
42592	// This may be used to include null fields in Patch requests.
42593	NullFields []string `json:"-"`
42594}
42595
42596func (s *TargetPoolInstanceHealth) MarshalJSON() ([]byte, error) {
42597	type NoMethod TargetPoolInstanceHealth
42598	raw := NoMethod(*s)
42599	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42600}
42601
42602// TargetPoolList: Contains a list of TargetPool resources.
42603type TargetPoolList struct {
42604	// Id: [Output Only] Unique identifier for the resource; defined by the
42605	// server.
42606	Id string `json:"id,omitempty"`
42607
42608	// Items: A list of TargetPool resources.
42609	Items []*TargetPool `json:"items,omitempty"`
42610
42611	// Kind: [Output Only] Type of resource. Always compute#targetPoolList
42612	// for lists of target pools.
42613	Kind string `json:"kind,omitempty"`
42614
42615	// NextPageToken: [Output Only] This token allows you to get the next
42616	// page of results for list requests. If the number of results is larger
42617	// than maxResults, use the nextPageToken as a value for the query
42618	// parameter pageToken in the next list request. Subsequent list
42619	// requests will have their own nextPageToken to continue paging through
42620	// the results.
42621	NextPageToken string `json:"nextPageToken,omitempty"`
42622
42623	// SelfLink: [Output Only] Server-defined URL for this resource.
42624	SelfLink string `json:"selfLink,omitempty"`
42625
42626	// Warning: [Output Only] Informational warning message.
42627	Warning *TargetPoolListWarning `json:"warning,omitempty"`
42628
42629	// ServerResponse contains the HTTP response code and headers from the
42630	// server.
42631	googleapi.ServerResponse `json:"-"`
42632
42633	// ForceSendFields is a list of field names (e.g. "Id") to
42634	// unconditionally include in API requests. By default, fields with
42635	// empty values are omitted from API requests. However, any non-pointer,
42636	// non-interface field appearing in ForceSendFields will be sent to the
42637	// server regardless of whether the field is empty or not. This may be
42638	// used to include empty fields in Patch requests.
42639	ForceSendFields []string `json:"-"`
42640
42641	// NullFields is a list of field names (e.g. "Id") to include in API
42642	// requests with the JSON null value. By default, fields with empty
42643	// values are omitted from API requests. However, any field with an
42644	// empty value appearing in NullFields will be sent to the server as
42645	// null. It is an error if a field in this list has a non-empty value.
42646	// This may be used to include null fields in Patch requests.
42647	NullFields []string `json:"-"`
42648}
42649
42650func (s *TargetPoolList) MarshalJSON() ([]byte, error) {
42651	type NoMethod TargetPoolList
42652	raw := NoMethod(*s)
42653	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42654}
42655
42656// TargetPoolListWarning: [Output Only] Informational warning message.
42657type TargetPoolListWarning struct {
42658	// Code: [Output Only] A warning code, if applicable. For example,
42659	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
42660	// the response.
42661	//
42662	// Possible values:
42663	//   "CLEANUP_FAILED"
42664	//   "DEPRECATED_RESOURCE_USED"
42665	//   "DEPRECATED_TYPE_USED"
42666	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
42667	//   "EXPERIMENTAL_TYPE_USED"
42668	//   "EXTERNAL_API_WARNING"
42669	//   "FIELD_VALUE_OVERRIDEN"
42670	//   "INJECTED_KERNELS_DEPRECATED"
42671	//   "MISSING_TYPE_DEPENDENCY"
42672	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
42673	//   "NEXT_HOP_CANNOT_IP_FORWARD"
42674	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
42675	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
42676	//   "NEXT_HOP_NOT_RUNNING"
42677	//   "NOT_CRITICAL_ERROR"
42678	//   "NO_RESULTS_ON_PAGE"
42679	//   "REQUIRED_TOS_AGREEMENT"
42680	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
42681	//   "RESOURCE_NOT_DELETED"
42682	//   "SCHEMA_VALIDATION_IGNORED"
42683	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
42684	//   "UNDECLARED_PROPERTIES"
42685	//   "UNREACHABLE"
42686	Code string `json:"code,omitempty"`
42687
42688	// Data: [Output Only] Metadata about this warning in key: value format.
42689	// For example:
42690	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
42691	Data []*TargetPoolListWarningData `json:"data,omitempty"`
42692
42693	// Message: [Output Only] A human-readable description of the warning
42694	// code.
42695	Message string `json:"message,omitempty"`
42696
42697	// ForceSendFields is a list of field names (e.g. "Code") to
42698	// unconditionally include in API requests. By default, fields with
42699	// empty values are omitted from API requests. However, any non-pointer,
42700	// non-interface field appearing in ForceSendFields will be sent to the
42701	// server regardless of whether the field is empty or not. This may be
42702	// used to include empty fields in Patch requests.
42703	ForceSendFields []string `json:"-"`
42704
42705	// NullFields is a list of field names (e.g. "Code") to include in API
42706	// requests with the JSON null value. By default, fields with empty
42707	// values are omitted from API requests. However, any field with an
42708	// empty value appearing in NullFields will be sent to the server as
42709	// null. It is an error if a field in this list has a non-empty value.
42710	// This may be used to include null fields in Patch requests.
42711	NullFields []string `json:"-"`
42712}
42713
42714func (s *TargetPoolListWarning) MarshalJSON() ([]byte, error) {
42715	type NoMethod TargetPoolListWarning
42716	raw := NoMethod(*s)
42717	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42718}
42719
42720type TargetPoolListWarningData struct {
42721	// Key: [Output Only] A key that provides more detail on the warning
42722	// being returned. For example, for warnings where there are no results
42723	// in a list request for a particular zone, this key might be scope and
42724	// the key value might be the zone name. Other examples might be a key
42725	// indicating a deprecated resource and a suggested replacement, or a
42726	// warning about invalid network settings (for example, if an instance
42727	// attempts to perform IP forwarding but is not enabled for IP
42728	// forwarding).
42729	Key string `json:"key,omitempty"`
42730
42731	// Value: [Output Only] A warning data value corresponding to the key.
42732	Value string `json:"value,omitempty"`
42733
42734	// ForceSendFields is a list of field names (e.g. "Key") to
42735	// unconditionally include in API requests. By default, fields with
42736	// empty values are omitted from API requests. However, any non-pointer,
42737	// non-interface field appearing in ForceSendFields will be sent to the
42738	// server regardless of whether the field is empty or not. This may be
42739	// used to include empty fields in Patch requests.
42740	ForceSendFields []string `json:"-"`
42741
42742	// NullFields is a list of field names (e.g. "Key") to include in API
42743	// requests with the JSON null value. By default, fields with empty
42744	// values are omitted from API requests. However, any field with an
42745	// empty value appearing in NullFields will be sent to the server as
42746	// null. It is an error if a field in this list has a non-empty value.
42747	// This may be used to include null fields in Patch requests.
42748	NullFields []string `json:"-"`
42749}
42750
42751func (s *TargetPoolListWarningData) MarshalJSON() ([]byte, error) {
42752	type NoMethod TargetPoolListWarningData
42753	raw := NoMethod(*s)
42754	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42755}
42756
42757type TargetPoolsAddHealthCheckRequest struct {
42758	// HealthChecks: The HttpHealthCheck to add to the target pool.
42759	HealthChecks []*HealthCheckReference `json:"healthChecks,omitempty"`
42760
42761	// ForceSendFields is a list of field names (e.g. "HealthChecks") to
42762	// unconditionally include in API requests. By default, fields with
42763	// empty values are omitted from API requests. However, any non-pointer,
42764	// non-interface field appearing in ForceSendFields will be sent to the
42765	// server regardless of whether the field is empty or not. This may be
42766	// used to include empty fields in Patch requests.
42767	ForceSendFields []string `json:"-"`
42768
42769	// NullFields is a list of field names (e.g. "HealthChecks") to include
42770	// in API requests with the JSON null value. By default, fields with
42771	// empty values are omitted from API requests. However, any field with
42772	// an empty value appearing in NullFields will be sent to the server as
42773	// null. It is an error if a field in this list has a non-empty value.
42774	// This may be used to include null fields in Patch requests.
42775	NullFields []string `json:"-"`
42776}
42777
42778func (s *TargetPoolsAddHealthCheckRequest) MarshalJSON() ([]byte, error) {
42779	type NoMethod TargetPoolsAddHealthCheckRequest
42780	raw := NoMethod(*s)
42781	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42782}
42783
42784type TargetPoolsAddInstanceRequest struct {
42785	// Instances: A full or partial URL to an instance to add to this target
42786	// pool. This can be a full or partial URL. For example, the following
42787	// are valid URLs:
42788	// -
42789	// https://www.googleapis.com/compute/v1/projects/project-id/zones/zone/instances/instance-name
42790	// - projects/project-id/zones/zone/instances/instance-name
42791	// - zones/zone/instances/instance-name
42792	Instances []*InstanceReference `json:"instances,omitempty"`
42793
42794	// ForceSendFields is a list of field names (e.g. "Instances") to
42795	// unconditionally include in API requests. By default, fields with
42796	// empty values are omitted from API requests. However, any non-pointer,
42797	// non-interface field appearing in ForceSendFields will be sent to the
42798	// server regardless of whether the field is empty or not. This may be
42799	// used to include empty fields in Patch requests.
42800	ForceSendFields []string `json:"-"`
42801
42802	// NullFields is a list of field names (e.g. "Instances") to include in
42803	// API requests with the JSON null value. By default, fields with empty
42804	// values are omitted from API requests. However, any field with an
42805	// empty value appearing in NullFields will be sent to the server as
42806	// null. It is an error if a field in this list has a non-empty value.
42807	// This may be used to include null fields in Patch requests.
42808	NullFields []string `json:"-"`
42809}
42810
42811func (s *TargetPoolsAddInstanceRequest) MarshalJSON() ([]byte, error) {
42812	type NoMethod TargetPoolsAddInstanceRequest
42813	raw := NoMethod(*s)
42814	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42815}
42816
42817type TargetPoolsRemoveHealthCheckRequest struct {
42818	// HealthChecks: Health check URL to be removed. This can be a full or
42819	// valid partial URL. For example, the following are valid URLs:
42820	// -
42821	// https://www.googleapis.com/compute/beta/projects/project/global/httpHealthChecks/health-check
42822	// - projects/project/global/httpHealthChecks/health-check
42823	// - global/httpHealthChecks/health-check
42824	HealthChecks []*HealthCheckReference `json:"healthChecks,omitempty"`
42825
42826	// ForceSendFields is a list of field names (e.g. "HealthChecks") to
42827	// unconditionally include in API requests. By default, fields with
42828	// empty values are omitted from API requests. However, any non-pointer,
42829	// non-interface field appearing in ForceSendFields will be sent to the
42830	// server regardless of whether the field is empty or not. This may be
42831	// used to include empty fields in Patch requests.
42832	ForceSendFields []string `json:"-"`
42833
42834	// NullFields is a list of field names (e.g. "HealthChecks") to include
42835	// in API requests with the JSON null value. By default, fields with
42836	// empty values are omitted from API requests. However, any field with
42837	// an empty value appearing in NullFields will be sent to the server as
42838	// null. It is an error if a field in this list has a non-empty value.
42839	// This may be used to include null fields in Patch requests.
42840	NullFields []string `json:"-"`
42841}
42842
42843func (s *TargetPoolsRemoveHealthCheckRequest) MarshalJSON() ([]byte, error) {
42844	type NoMethod TargetPoolsRemoveHealthCheckRequest
42845	raw := NoMethod(*s)
42846	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42847}
42848
42849type TargetPoolsRemoveInstanceRequest struct {
42850	// Instances: URLs of the instances to be removed from target pool.
42851	Instances []*InstanceReference `json:"instances,omitempty"`
42852
42853	// ForceSendFields is a list of field names (e.g. "Instances") to
42854	// unconditionally include in API requests. By default, fields with
42855	// empty values are omitted from API requests. However, any non-pointer,
42856	// non-interface field appearing in ForceSendFields will be sent to the
42857	// server regardless of whether the field is empty or not. This may be
42858	// used to include empty fields in Patch requests.
42859	ForceSendFields []string `json:"-"`
42860
42861	// NullFields is a list of field names (e.g. "Instances") to include in
42862	// API requests with the JSON null value. By default, fields with empty
42863	// values are omitted from API requests. However, any field with an
42864	// empty value appearing in NullFields will be sent to the server as
42865	// null. It is an error if a field in this list has a non-empty value.
42866	// This may be used to include null fields in Patch requests.
42867	NullFields []string `json:"-"`
42868}
42869
42870func (s *TargetPoolsRemoveInstanceRequest) MarshalJSON() ([]byte, error) {
42871	type NoMethod TargetPoolsRemoveInstanceRequest
42872	raw := NoMethod(*s)
42873	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42874}
42875
42876type TargetPoolsScopedList struct {
42877	// TargetPools: A list of target pools contained in this scope.
42878	TargetPools []*TargetPool `json:"targetPools,omitempty"`
42879
42880	// Warning: Informational warning which replaces the list of addresses
42881	// when the list is empty.
42882	Warning *TargetPoolsScopedListWarning `json:"warning,omitempty"`
42883
42884	// ForceSendFields is a list of field names (e.g. "TargetPools") to
42885	// unconditionally include in API requests. By default, fields with
42886	// empty values are omitted from API requests. However, any non-pointer,
42887	// non-interface field appearing in ForceSendFields will be sent to the
42888	// server regardless of whether the field is empty or not. This may be
42889	// used to include empty fields in Patch requests.
42890	ForceSendFields []string `json:"-"`
42891
42892	// NullFields is a list of field names (e.g. "TargetPools") to include
42893	// in API requests with the JSON null value. By default, fields with
42894	// empty values are omitted from API requests. However, any field with
42895	// an empty value appearing in NullFields will be sent to the server as
42896	// null. It is an error if a field in this list has a non-empty value.
42897	// This may be used to include null fields in Patch requests.
42898	NullFields []string `json:"-"`
42899}
42900
42901func (s *TargetPoolsScopedList) MarshalJSON() ([]byte, error) {
42902	type NoMethod TargetPoolsScopedList
42903	raw := NoMethod(*s)
42904	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42905}
42906
42907// TargetPoolsScopedListWarning: Informational warning which replaces
42908// the list of addresses when the list is empty.
42909type TargetPoolsScopedListWarning struct {
42910	// Code: [Output Only] A warning code, if applicable. For example,
42911	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
42912	// the response.
42913	//
42914	// Possible values:
42915	//   "CLEANUP_FAILED"
42916	//   "DEPRECATED_RESOURCE_USED"
42917	//   "DEPRECATED_TYPE_USED"
42918	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
42919	//   "EXPERIMENTAL_TYPE_USED"
42920	//   "EXTERNAL_API_WARNING"
42921	//   "FIELD_VALUE_OVERRIDEN"
42922	//   "INJECTED_KERNELS_DEPRECATED"
42923	//   "MISSING_TYPE_DEPENDENCY"
42924	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
42925	//   "NEXT_HOP_CANNOT_IP_FORWARD"
42926	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
42927	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
42928	//   "NEXT_HOP_NOT_RUNNING"
42929	//   "NOT_CRITICAL_ERROR"
42930	//   "NO_RESULTS_ON_PAGE"
42931	//   "REQUIRED_TOS_AGREEMENT"
42932	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
42933	//   "RESOURCE_NOT_DELETED"
42934	//   "SCHEMA_VALIDATION_IGNORED"
42935	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
42936	//   "UNDECLARED_PROPERTIES"
42937	//   "UNREACHABLE"
42938	Code string `json:"code,omitempty"`
42939
42940	// Data: [Output Only] Metadata about this warning in key: value format.
42941	// For example:
42942	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
42943	Data []*TargetPoolsScopedListWarningData `json:"data,omitempty"`
42944
42945	// Message: [Output Only] A human-readable description of the warning
42946	// code.
42947	Message string `json:"message,omitempty"`
42948
42949	// ForceSendFields is a list of field names (e.g. "Code") to
42950	// unconditionally include in API requests. By default, fields with
42951	// empty values are omitted from API requests. However, any non-pointer,
42952	// non-interface field appearing in ForceSendFields will be sent to the
42953	// server regardless of whether the field is empty or not. This may be
42954	// used to include empty fields in Patch requests.
42955	ForceSendFields []string `json:"-"`
42956
42957	// NullFields is a list of field names (e.g. "Code") to include in API
42958	// requests with the JSON null value. By default, fields with empty
42959	// values are omitted from API requests. However, any field with an
42960	// empty value appearing in NullFields will be sent to the server as
42961	// null. It is an error if a field in this list has a non-empty value.
42962	// This may be used to include null fields in Patch requests.
42963	NullFields []string `json:"-"`
42964}
42965
42966func (s *TargetPoolsScopedListWarning) MarshalJSON() ([]byte, error) {
42967	type NoMethod TargetPoolsScopedListWarning
42968	raw := NoMethod(*s)
42969	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42970}
42971
42972type TargetPoolsScopedListWarningData struct {
42973	// Key: [Output Only] A key that provides more detail on the warning
42974	// being returned. For example, for warnings where there are no results
42975	// in a list request for a particular zone, this key might be scope and
42976	// the key value might be the zone name. Other examples might be a key
42977	// indicating a deprecated resource and a suggested replacement, or a
42978	// warning about invalid network settings (for example, if an instance
42979	// attempts to perform IP forwarding but is not enabled for IP
42980	// forwarding).
42981	Key string `json:"key,omitempty"`
42982
42983	// Value: [Output Only] A warning data value corresponding to the key.
42984	Value string `json:"value,omitempty"`
42985
42986	// ForceSendFields is a list of field names (e.g. "Key") to
42987	// unconditionally include in API requests. By default, fields with
42988	// empty values are omitted from API requests. However, any non-pointer,
42989	// non-interface field appearing in ForceSendFields will be sent to the
42990	// server regardless of whether the field is empty or not. This may be
42991	// used to include empty fields in Patch requests.
42992	ForceSendFields []string `json:"-"`
42993
42994	// NullFields is a list of field names (e.g. "Key") to include in API
42995	// requests with the JSON null value. By default, fields with empty
42996	// values are omitted from API requests. However, any field with an
42997	// empty value appearing in NullFields will be sent to the server as
42998	// null. It is an error if a field in this list has a non-empty value.
42999	// This may be used to include null fields in Patch requests.
43000	NullFields []string `json:"-"`
43001}
43002
43003func (s *TargetPoolsScopedListWarningData) MarshalJSON() ([]byte, error) {
43004	type NoMethod TargetPoolsScopedListWarningData
43005	raw := NoMethod(*s)
43006	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43007}
43008
43009type TargetReference struct {
43010	Target string `json:"target,omitempty"`
43011
43012	// ForceSendFields is a list of field names (e.g. "Target") to
43013	// unconditionally include in API requests. By default, fields with
43014	// empty values are omitted from API requests. However, any non-pointer,
43015	// non-interface field appearing in ForceSendFields will be sent to the
43016	// server regardless of whether the field is empty or not. This may be
43017	// used to include empty fields in Patch requests.
43018	ForceSendFields []string `json:"-"`
43019
43020	// NullFields is a list of field names (e.g. "Target") to include in API
43021	// requests with the JSON null value. By default, fields with empty
43022	// values are omitted from API requests. However, any field with an
43023	// empty value appearing in NullFields will be sent to the server as
43024	// null. It is an error if a field in this list has a non-empty value.
43025	// This may be used to include null fields in Patch requests.
43026	NullFields []string `json:"-"`
43027}
43028
43029func (s *TargetReference) MarshalJSON() ([]byte, error) {
43030	type NoMethod TargetReference
43031	raw := NoMethod(*s)
43032	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43033}
43034
43035type TargetSslProxiesSetBackendServiceRequest struct {
43036	// Service: The URL of the new BackendService resource for the
43037	// targetSslProxy.
43038	Service string `json:"service,omitempty"`
43039
43040	// ForceSendFields is a list of field names (e.g. "Service") to
43041	// unconditionally include in API requests. By default, fields with
43042	// empty values are omitted from API requests. However, any non-pointer,
43043	// non-interface field appearing in ForceSendFields will be sent to the
43044	// server regardless of whether the field is empty or not. This may be
43045	// used to include empty fields in Patch requests.
43046	ForceSendFields []string `json:"-"`
43047
43048	// NullFields is a list of field names (e.g. "Service") to include in
43049	// API requests with the JSON null value. By default, fields with empty
43050	// values are omitted from API requests. However, any field with an
43051	// empty value appearing in NullFields will be sent to the server as
43052	// null. It is an error if a field in this list has a non-empty value.
43053	// This may be used to include null fields in Patch requests.
43054	NullFields []string `json:"-"`
43055}
43056
43057func (s *TargetSslProxiesSetBackendServiceRequest) MarshalJSON() ([]byte, error) {
43058	type NoMethod TargetSslProxiesSetBackendServiceRequest
43059	raw := NoMethod(*s)
43060	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43061}
43062
43063type TargetSslProxiesSetProxyHeaderRequest struct {
43064	// ProxyHeader: The new type of proxy header to append before sending
43065	// data to the backend. NONE or PROXY_V1 are allowed.
43066	//
43067	// Possible values:
43068	//   "NONE"
43069	//   "PROXY_V1"
43070	ProxyHeader string `json:"proxyHeader,omitempty"`
43071
43072	// ForceSendFields is a list of field names (e.g. "ProxyHeader") to
43073	// unconditionally include in API requests. By default, fields with
43074	// empty values are omitted from API requests. However, any non-pointer,
43075	// non-interface field appearing in ForceSendFields will be sent to the
43076	// server regardless of whether the field is empty or not. This may be
43077	// used to include empty fields in Patch requests.
43078	ForceSendFields []string `json:"-"`
43079
43080	// NullFields is a list of field names (e.g. "ProxyHeader") to include
43081	// in API requests with the JSON null value. By default, fields with
43082	// empty values are omitted from API requests. However, any field with
43083	// an empty value appearing in NullFields will be sent to the server as
43084	// null. It is an error if a field in this list has a non-empty value.
43085	// This may be used to include null fields in Patch requests.
43086	NullFields []string `json:"-"`
43087}
43088
43089func (s *TargetSslProxiesSetProxyHeaderRequest) MarshalJSON() ([]byte, error) {
43090	type NoMethod TargetSslProxiesSetProxyHeaderRequest
43091	raw := NoMethod(*s)
43092	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43093}
43094
43095type TargetSslProxiesSetSslCertificatesRequest struct {
43096	// SslCertificates: New set of URLs to SslCertificate resources to
43097	// associate with this TargetSslProxy. Currently exactly one ssl
43098	// certificate must be specified.
43099	SslCertificates []string `json:"sslCertificates,omitempty"`
43100
43101	// ForceSendFields is a list of field names (e.g. "SslCertificates") to
43102	// unconditionally include in API requests. By default, fields with
43103	// empty values are omitted from API requests. However, any non-pointer,
43104	// non-interface field appearing in ForceSendFields will be sent to the
43105	// server regardless of whether the field is empty or not. This may be
43106	// used to include empty fields in Patch requests.
43107	ForceSendFields []string `json:"-"`
43108
43109	// NullFields is a list of field names (e.g. "SslCertificates") to
43110	// include in API requests with the JSON null value. By default, fields
43111	// with empty values are omitted from API requests. However, any field
43112	// with an empty value appearing in NullFields will be sent to the
43113	// server as null. It is an error if a field in this list has a
43114	// non-empty value. This may be used to include null fields in Patch
43115	// requests.
43116	NullFields []string `json:"-"`
43117}
43118
43119func (s *TargetSslProxiesSetSslCertificatesRequest) MarshalJSON() ([]byte, error) {
43120	type NoMethod TargetSslProxiesSetSslCertificatesRequest
43121	raw := NoMethod(*s)
43122	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43123}
43124
43125// TargetSslProxy: Represents a Target SSL Proxy resource.
43126//
43127// A target SSL proxy is a component of a SSL Proxy load balancer.
43128// Global forwarding rules reference a target SSL proxy, and the target
43129// proxy then references an external backend service. For more
43130// information, read Using Target Proxies. (== resource_for
43131// beta.targetSslProxies ==) (== resource_for v1.targetSslProxies ==)
43132type TargetSslProxy struct {
43133	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
43134	// format.
43135	CreationTimestamp string `json:"creationTimestamp,omitempty"`
43136
43137	// Description: An optional description of this resource. Provide this
43138	// property when you create the resource.
43139	Description string `json:"description,omitempty"`
43140
43141	// Id: [Output Only] The unique identifier for the resource. This
43142	// identifier is defined by the server.
43143	Id uint64 `json:"id,omitempty,string"`
43144
43145	// Kind: [Output Only] Type of the resource. Always
43146	// compute#targetSslProxy for target SSL proxies.
43147	Kind string `json:"kind,omitempty"`
43148
43149	// Name: Name of the resource. Provided by the client when the resource
43150	// is created. The name must be 1-63 characters long, and comply with
43151	// RFC1035. Specifically, the name must be 1-63 characters long and
43152	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
43153	// the first character must be a lowercase letter, and all following
43154	// characters must be a dash, lowercase letter, or digit, except the
43155	// last character, which cannot be a dash.
43156	Name string `json:"name,omitempty"`
43157
43158	// ProxyHeader: Specifies the type of proxy header to append before
43159	// sending data to the backend, either NONE or PROXY_V1. The default is
43160	// NONE.
43161	//
43162	// Possible values:
43163	//   "NONE"
43164	//   "PROXY_V1"
43165	ProxyHeader string `json:"proxyHeader,omitempty"`
43166
43167	// SelfLink: [Output Only] Server-defined URL for the resource.
43168	SelfLink string `json:"selfLink,omitempty"`
43169
43170	// Service: URL to the BackendService resource.
43171	Service string `json:"service,omitempty"`
43172
43173	// SslCertificates: URLs to SslCertificate resources that are used to
43174	// authenticate connections to Backends. At least one SSL certificate
43175	// must be specified. Currently, you may specify up to 15 SSL
43176	// certificates.
43177	SslCertificates []string `json:"sslCertificates,omitempty"`
43178
43179	// SslPolicy: URL of SslPolicy resource that will be associated with the
43180	// TargetSslProxy resource. If not set, the TargetSslProxy resource will
43181	// not have any SSL policy configured.
43182	SslPolicy string `json:"sslPolicy,omitempty"`
43183
43184	// ServerResponse contains the HTTP response code and headers from the
43185	// server.
43186	googleapi.ServerResponse `json:"-"`
43187
43188	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
43189	// to unconditionally include in API requests. By default, fields with
43190	// empty values are omitted from API requests. However, any non-pointer,
43191	// non-interface field appearing in ForceSendFields will be sent to the
43192	// server regardless of whether the field is empty or not. This may be
43193	// used to include empty fields in Patch requests.
43194	ForceSendFields []string `json:"-"`
43195
43196	// NullFields is a list of field names (e.g. "CreationTimestamp") to
43197	// include in API requests with the JSON null value. By default, fields
43198	// with empty values are omitted from API requests. However, any field
43199	// with an empty value appearing in NullFields will be sent to the
43200	// server as null. It is an error if a field in this list has a
43201	// non-empty value. This may be used to include null fields in Patch
43202	// requests.
43203	NullFields []string `json:"-"`
43204}
43205
43206func (s *TargetSslProxy) MarshalJSON() ([]byte, error) {
43207	type NoMethod TargetSslProxy
43208	raw := NoMethod(*s)
43209	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43210}
43211
43212// TargetSslProxyList: Contains a list of TargetSslProxy resources.
43213type TargetSslProxyList struct {
43214	// Id: [Output Only] Unique identifier for the resource; defined by the
43215	// server.
43216	Id string `json:"id,omitempty"`
43217
43218	// Items: A list of TargetSslProxy resources.
43219	Items []*TargetSslProxy `json:"items,omitempty"`
43220
43221	// Kind: Type of resource.
43222	Kind string `json:"kind,omitempty"`
43223
43224	// NextPageToken: [Output Only] This token allows you to get the next
43225	// page of results for list requests. If the number of results is larger
43226	// than maxResults, use the nextPageToken as a value for the query
43227	// parameter pageToken in the next list request. Subsequent list
43228	// requests will have their own nextPageToken to continue paging through
43229	// the results.
43230	NextPageToken string `json:"nextPageToken,omitempty"`
43231
43232	// SelfLink: [Output Only] Server-defined URL for this resource.
43233	SelfLink string `json:"selfLink,omitempty"`
43234
43235	// Warning: [Output Only] Informational warning message.
43236	Warning *TargetSslProxyListWarning `json:"warning,omitempty"`
43237
43238	// ServerResponse contains the HTTP response code and headers from the
43239	// server.
43240	googleapi.ServerResponse `json:"-"`
43241
43242	// ForceSendFields is a list of field names (e.g. "Id") to
43243	// unconditionally include in API requests. By default, fields with
43244	// empty values are omitted from API requests. However, any non-pointer,
43245	// non-interface field appearing in ForceSendFields will be sent to the
43246	// server regardless of whether the field is empty or not. This may be
43247	// used to include empty fields in Patch requests.
43248	ForceSendFields []string `json:"-"`
43249
43250	// NullFields is a list of field names (e.g. "Id") to include in API
43251	// requests with the JSON null value. By default, fields with empty
43252	// values are omitted from API requests. However, any field with an
43253	// empty value appearing in NullFields will be sent to the server as
43254	// null. It is an error if a field in this list has a non-empty value.
43255	// This may be used to include null fields in Patch requests.
43256	NullFields []string `json:"-"`
43257}
43258
43259func (s *TargetSslProxyList) MarshalJSON() ([]byte, error) {
43260	type NoMethod TargetSslProxyList
43261	raw := NoMethod(*s)
43262	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43263}
43264
43265// TargetSslProxyListWarning: [Output Only] Informational warning
43266// message.
43267type TargetSslProxyListWarning struct {
43268	// Code: [Output Only] A warning code, if applicable. For example,
43269	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
43270	// the response.
43271	//
43272	// Possible values:
43273	//   "CLEANUP_FAILED"
43274	//   "DEPRECATED_RESOURCE_USED"
43275	//   "DEPRECATED_TYPE_USED"
43276	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
43277	//   "EXPERIMENTAL_TYPE_USED"
43278	//   "EXTERNAL_API_WARNING"
43279	//   "FIELD_VALUE_OVERRIDEN"
43280	//   "INJECTED_KERNELS_DEPRECATED"
43281	//   "MISSING_TYPE_DEPENDENCY"
43282	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
43283	//   "NEXT_HOP_CANNOT_IP_FORWARD"
43284	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
43285	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
43286	//   "NEXT_HOP_NOT_RUNNING"
43287	//   "NOT_CRITICAL_ERROR"
43288	//   "NO_RESULTS_ON_PAGE"
43289	//   "REQUIRED_TOS_AGREEMENT"
43290	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
43291	//   "RESOURCE_NOT_DELETED"
43292	//   "SCHEMA_VALIDATION_IGNORED"
43293	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
43294	//   "UNDECLARED_PROPERTIES"
43295	//   "UNREACHABLE"
43296	Code string `json:"code,omitempty"`
43297
43298	// Data: [Output Only] Metadata about this warning in key: value format.
43299	// For example:
43300	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
43301	Data []*TargetSslProxyListWarningData `json:"data,omitempty"`
43302
43303	// Message: [Output Only] A human-readable description of the warning
43304	// code.
43305	Message string `json:"message,omitempty"`
43306
43307	// ForceSendFields is a list of field names (e.g. "Code") to
43308	// unconditionally include in API requests. By default, fields with
43309	// empty values are omitted from API requests. However, any non-pointer,
43310	// non-interface field appearing in ForceSendFields will be sent to the
43311	// server regardless of whether the field is empty or not. This may be
43312	// used to include empty fields in Patch requests.
43313	ForceSendFields []string `json:"-"`
43314
43315	// NullFields is a list of field names (e.g. "Code") to include in API
43316	// requests with the JSON null value. By default, fields with empty
43317	// values are omitted from API requests. However, any field with an
43318	// empty value appearing in NullFields will be sent to the server as
43319	// null. It is an error if a field in this list has a non-empty value.
43320	// This may be used to include null fields in Patch requests.
43321	NullFields []string `json:"-"`
43322}
43323
43324func (s *TargetSslProxyListWarning) MarshalJSON() ([]byte, error) {
43325	type NoMethod TargetSslProxyListWarning
43326	raw := NoMethod(*s)
43327	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43328}
43329
43330type TargetSslProxyListWarningData struct {
43331	// Key: [Output Only] A key that provides more detail on the warning
43332	// being returned. For example, for warnings where there are no results
43333	// in a list request for a particular zone, this key might be scope and
43334	// the key value might be the zone name. Other examples might be a key
43335	// indicating a deprecated resource and a suggested replacement, or a
43336	// warning about invalid network settings (for example, if an instance
43337	// attempts to perform IP forwarding but is not enabled for IP
43338	// forwarding).
43339	Key string `json:"key,omitempty"`
43340
43341	// Value: [Output Only] A warning data value corresponding to the key.
43342	Value string `json:"value,omitempty"`
43343
43344	// ForceSendFields is a list of field names (e.g. "Key") to
43345	// unconditionally include in API requests. By default, fields with
43346	// empty values are omitted from API requests. However, any non-pointer,
43347	// non-interface field appearing in ForceSendFields will be sent to the
43348	// server regardless of whether the field is empty or not. This may be
43349	// used to include empty fields in Patch requests.
43350	ForceSendFields []string `json:"-"`
43351
43352	// NullFields is a list of field names (e.g. "Key") to include in API
43353	// requests with the JSON null value. By default, fields with empty
43354	// values are omitted from API requests. However, any field with an
43355	// empty value appearing in NullFields will be sent to the server as
43356	// null. It is an error if a field in this list has a non-empty value.
43357	// This may be used to include null fields in Patch requests.
43358	NullFields []string `json:"-"`
43359}
43360
43361func (s *TargetSslProxyListWarningData) MarshalJSON() ([]byte, error) {
43362	type NoMethod TargetSslProxyListWarningData
43363	raw := NoMethod(*s)
43364	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43365}
43366
43367type TargetTcpProxiesSetBackendServiceRequest struct {
43368	// Service: The URL of the new BackendService resource for the
43369	// targetTcpProxy.
43370	Service string `json:"service,omitempty"`
43371
43372	// ForceSendFields is a list of field names (e.g. "Service") to
43373	// unconditionally include in API requests. By default, fields with
43374	// empty values are omitted from API requests. However, any non-pointer,
43375	// non-interface field appearing in ForceSendFields will be sent to the
43376	// server regardless of whether the field is empty or not. This may be
43377	// used to include empty fields in Patch requests.
43378	ForceSendFields []string `json:"-"`
43379
43380	// NullFields is a list of field names (e.g. "Service") to include in
43381	// API requests with the JSON null value. By default, fields with empty
43382	// values are omitted from API requests. However, any field with an
43383	// empty value appearing in NullFields will be sent to the server as
43384	// null. It is an error if a field in this list has a non-empty value.
43385	// This may be used to include null fields in Patch requests.
43386	NullFields []string `json:"-"`
43387}
43388
43389func (s *TargetTcpProxiesSetBackendServiceRequest) MarshalJSON() ([]byte, error) {
43390	type NoMethod TargetTcpProxiesSetBackendServiceRequest
43391	raw := NoMethod(*s)
43392	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43393}
43394
43395type TargetTcpProxiesSetProxyHeaderRequest struct {
43396	// ProxyHeader: The new type of proxy header to append before sending
43397	// data to the backend. NONE or PROXY_V1 are allowed.
43398	//
43399	// Possible values:
43400	//   "NONE"
43401	//   "PROXY_V1"
43402	ProxyHeader string `json:"proxyHeader,omitempty"`
43403
43404	// ForceSendFields is a list of field names (e.g. "ProxyHeader") 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. "ProxyHeader") to include
43413	// in API requests with the JSON null value. By default, fields with
43414	// empty values are omitted from API requests. However, any field with
43415	// an empty value appearing in NullFields will be sent to the server as
43416	// null. It is an error if a field in this list has a non-empty value.
43417	// This may be used to include null fields in Patch requests.
43418	NullFields []string `json:"-"`
43419}
43420
43421func (s *TargetTcpProxiesSetProxyHeaderRequest) MarshalJSON() ([]byte, error) {
43422	type NoMethod TargetTcpProxiesSetProxyHeaderRequest
43423	raw := NoMethod(*s)
43424	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43425}
43426
43427// TargetTcpProxy: Represents a Target TCP Proxy resource.
43428//
43429// A target TCP proxy is a component of a TCP Proxy load balancer.
43430// Global forwarding rules reference target TCP proxy, and the target
43431// proxy then references an external backend service. For more
43432// information, read TCP Proxy Load Balancing Concepts. (== resource_for
43433// beta.targetTcpProxies ==) (== resource_for v1.targetTcpProxies ==)
43434type TargetTcpProxy struct {
43435	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
43436	// format.
43437	CreationTimestamp string `json:"creationTimestamp,omitempty"`
43438
43439	// Description: An optional description of this resource. Provide this
43440	// property when you create the resource.
43441	Description string `json:"description,omitempty"`
43442
43443	// Id: [Output Only] The unique identifier for the resource. This
43444	// identifier is defined by the server.
43445	Id uint64 `json:"id,omitempty,string"`
43446
43447	// Kind: [Output Only] Type of the resource. Always
43448	// compute#targetTcpProxy for target TCP proxies.
43449	Kind string `json:"kind,omitempty"`
43450
43451	// Name: Name of the resource. Provided by the client when the resource
43452	// is created. The name must be 1-63 characters long, and comply with
43453	// RFC1035. Specifically, the name must be 1-63 characters long and
43454	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
43455	// the first character must be a lowercase letter, and all following
43456	// characters must be a dash, lowercase letter, or digit, except the
43457	// last character, which cannot be a dash.
43458	Name string `json:"name,omitempty"`
43459
43460	// ProxyHeader: Specifies the type of proxy header to append before
43461	// sending data to the backend, either NONE or PROXY_V1. The default is
43462	// NONE.
43463	//
43464	// Possible values:
43465	//   "NONE"
43466	//   "PROXY_V1"
43467	ProxyHeader string `json:"proxyHeader,omitempty"`
43468
43469	// SelfLink: [Output Only] Server-defined URL for the resource.
43470	SelfLink string `json:"selfLink,omitempty"`
43471
43472	// Service: URL to the BackendService resource.
43473	Service string `json:"service,omitempty"`
43474
43475	// ServerResponse contains the HTTP response code and headers from the
43476	// server.
43477	googleapi.ServerResponse `json:"-"`
43478
43479	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
43480	// to unconditionally include in API requests. By default, fields with
43481	// empty values are omitted from API requests. However, any non-pointer,
43482	// non-interface field appearing in ForceSendFields will be sent to the
43483	// server regardless of whether the field is empty or not. This may be
43484	// used to include empty fields in Patch requests.
43485	ForceSendFields []string `json:"-"`
43486
43487	// NullFields is a list of field names (e.g. "CreationTimestamp") to
43488	// include in API requests with the JSON null value. By default, fields
43489	// with empty values are omitted from API requests. However, any field
43490	// with an empty value appearing in NullFields will be sent to the
43491	// server as null. It is an error if a field in this list has a
43492	// non-empty value. This may be used to include null fields in Patch
43493	// requests.
43494	NullFields []string `json:"-"`
43495}
43496
43497func (s *TargetTcpProxy) MarshalJSON() ([]byte, error) {
43498	type NoMethod TargetTcpProxy
43499	raw := NoMethod(*s)
43500	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43501}
43502
43503// TargetTcpProxyList: Contains a list of TargetTcpProxy resources.
43504type TargetTcpProxyList struct {
43505	// Id: [Output Only] Unique identifier for the resource; defined by the
43506	// server.
43507	Id string `json:"id,omitempty"`
43508
43509	// Items: A list of TargetTcpProxy resources.
43510	Items []*TargetTcpProxy `json:"items,omitempty"`
43511
43512	// Kind: Type of resource.
43513	Kind string `json:"kind,omitempty"`
43514
43515	// NextPageToken: [Output Only] This token allows you to get the next
43516	// page of results for list requests. If the number of results is larger
43517	// than maxResults, use the nextPageToken as a value for the query
43518	// parameter pageToken in the next list request. Subsequent list
43519	// requests will have their own nextPageToken to continue paging through
43520	// the results.
43521	NextPageToken string `json:"nextPageToken,omitempty"`
43522
43523	// SelfLink: [Output Only] Server-defined URL for this resource.
43524	SelfLink string `json:"selfLink,omitempty"`
43525
43526	// Warning: [Output Only] Informational warning message.
43527	Warning *TargetTcpProxyListWarning `json:"warning,omitempty"`
43528
43529	// ServerResponse contains the HTTP response code and headers from the
43530	// server.
43531	googleapi.ServerResponse `json:"-"`
43532
43533	// ForceSendFields is a list of field names (e.g. "Id") to
43534	// unconditionally include in API requests. By default, fields with
43535	// empty values are omitted from API requests. However, any non-pointer,
43536	// non-interface field appearing in ForceSendFields will be sent to the
43537	// server regardless of whether the field is empty or not. This may be
43538	// used to include empty fields in Patch requests.
43539	ForceSendFields []string `json:"-"`
43540
43541	// NullFields is a list of field names (e.g. "Id") to include in API
43542	// requests with the JSON null value. By default, fields with empty
43543	// values are omitted from API requests. However, any field with an
43544	// empty value appearing in NullFields will be sent to the server as
43545	// null. It is an error if a field in this list has a non-empty value.
43546	// This may be used to include null fields in Patch requests.
43547	NullFields []string `json:"-"`
43548}
43549
43550func (s *TargetTcpProxyList) MarshalJSON() ([]byte, error) {
43551	type NoMethod TargetTcpProxyList
43552	raw := NoMethod(*s)
43553	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43554}
43555
43556// TargetTcpProxyListWarning: [Output Only] Informational warning
43557// message.
43558type TargetTcpProxyListWarning struct {
43559	// Code: [Output Only] A warning code, if applicable. For example,
43560	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
43561	// the response.
43562	//
43563	// Possible values:
43564	//   "CLEANUP_FAILED"
43565	//   "DEPRECATED_RESOURCE_USED"
43566	//   "DEPRECATED_TYPE_USED"
43567	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
43568	//   "EXPERIMENTAL_TYPE_USED"
43569	//   "EXTERNAL_API_WARNING"
43570	//   "FIELD_VALUE_OVERRIDEN"
43571	//   "INJECTED_KERNELS_DEPRECATED"
43572	//   "MISSING_TYPE_DEPENDENCY"
43573	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
43574	//   "NEXT_HOP_CANNOT_IP_FORWARD"
43575	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
43576	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
43577	//   "NEXT_HOP_NOT_RUNNING"
43578	//   "NOT_CRITICAL_ERROR"
43579	//   "NO_RESULTS_ON_PAGE"
43580	//   "REQUIRED_TOS_AGREEMENT"
43581	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
43582	//   "RESOURCE_NOT_DELETED"
43583	//   "SCHEMA_VALIDATION_IGNORED"
43584	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
43585	//   "UNDECLARED_PROPERTIES"
43586	//   "UNREACHABLE"
43587	Code string `json:"code,omitempty"`
43588
43589	// Data: [Output Only] Metadata about this warning in key: value format.
43590	// For example:
43591	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
43592	Data []*TargetTcpProxyListWarningData `json:"data,omitempty"`
43593
43594	// Message: [Output Only] A human-readable description of the warning
43595	// code.
43596	Message string `json:"message,omitempty"`
43597
43598	// ForceSendFields is a list of field names (e.g. "Code") to
43599	// unconditionally include in API requests. By default, fields with
43600	// empty values are omitted from API requests. However, any non-pointer,
43601	// non-interface field appearing in ForceSendFields will be sent to the
43602	// server regardless of whether the field is empty or not. This may be
43603	// used to include empty fields in Patch requests.
43604	ForceSendFields []string `json:"-"`
43605
43606	// NullFields is a list of field names (e.g. "Code") to include in API
43607	// requests with the JSON null value. By default, fields with empty
43608	// values are omitted from API requests. However, any field with an
43609	// empty value appearing in NullFields will be sent to the server as
43610	// null. It is an error if a field in this list has a non-empty value.
43611	// This may be used to include null fields in Patch requests.
43612	NullFields []string `json:"-"`
43613}
43614
43615func (s *TargetTcpProxyListWarning) MarshalJSON() ([]byte, error) {
43616	type NoMethod TargetTcpProxyListWarning
43617	raw := NoMethod(*s)
43618	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43619}
43620
43621type TargetTcpProxyListWarningData struct {
43622	// Key: [Output Only] A key that provides more detail on the warning
43623	// being returned. For example, for warnings where there are no results
43624	// in a list request for a particular zone, this key might be scope and
43625	// the key value might be the zone name. Other examples might be a key
43626	// indicating a deprecated resource and a suggested replacement, or a
43627	// warning about invalid network settings (for example, if an instance
43628	// attempts to perform IP forwarding but is not enabled for IP
43629	// forwarding).
43630	Key string `json:"key,omitempty"`
43631
43632	// Value: [Output Only] A warning data value corresponding to the key.
43633	Value string `json:"value,omitempty"`
43634
43635	// ForceSendFields is a list of field names (e.g. "Key") to
43636	// unconditionally include in API requests. By default, fields with
43637	// empty values are omitted from API requests. However, any non-pointer,
43638	// non-interface field appearing in ForceSendFields will be sent to the
43639	// server regardless of whether the field is empty or not. This may be
43640	// used to include empty fields in Patch requests.
43641	ForceSendFields []string `json:"-"`
43642
43643	// NullFields is a list of field names (e.g. "Key") to include in API
43644	// requests with the JSON null value. By default, fields with empty
43645	// values are omitted from API requests. However, any field with an
43646	// empty value appearing in NullFields will be sent to the server as
43647	// null. It is an error if a field in this list has a non-empty value.
43648	// This may be used to include null fields in Patch requests.
43649	NullFields []string `json:"-"`
43650}
43651
43652func (s *TargetTcpProxyListWarningData) MarshalJSON() ([]byte, error) {
43653	type NoMethod TargetTcpProxyListWarningData
43654	raw := NoMethod(*s)
43655	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43656}
43657
43658// TargetVpnGateway: Represents a Target VPN Gateway resource.
43659//
43660// The target VPN gateway resource represents a Classic Cloud VPN
43661// gateway. For more information, read the the Cloud VPN Overview. (==
43662// resource_for beta.targetVpnGateways ==) (== resource_for
43663// v1.targetVpnGateways ==)
43664type TargetVpnGateway struct {
43665	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
43666	// format.
43667	CreationTimestamp string `json:"creationTimestamp,omitempty"`
43668
43669	// Description: An optional description of this resource. Provide this
43670	// property when you create the resource.
43671	Description string `json:"description,omitempty"`
43672
43673	// ForwardingRules: [Output Only] A list of URLs to the ForwardingRule
43674	// resources. ForwardingRules are created using
43675	// compute.forwardingRules.insert and associated with a VPN gateway.
43676	ForwardingRules []string `json:"forwardingRules,omitempty"`
43677
43678	// Id: [Output Only] The unique identifier for the resource. This
43679	// identifier is defined by the server.
43680	Id uint64 `json:"id,omitempty,string"`
43681
43682	// Kind: [Output Only] Type of resource. Always compute#targetVpnGateway
43683	// for target VPN gateways.
43684	Kind string `json:"kind,omitempty"`
43685
43686	// LabelFingerprint: A fingerprint for the labels being applied to this
43687	// TargetVpnGateway, which is essentially a hash of the labels set used
43688	// for optimistic locking. The fingerprint is initially generated by
43689	// Compute Engine and changes after every request to modify or update
43690	// labels. You must always provide an up-to-date fingerprint hash in
43691	// order to update or change labels, otherwise the request will fail
43692	// with error 412 conditionNotMet.
43693	//
43694	// To see the latest fingerprint, make a get() request to retrieve a
43695	// TargetVpnGateway.
43696	LabelFingerprint string `json:"labelFingerprint,omitempty"`
43697
43698	// Labels: Labels to apply to this TargetVpnGateway resource. These can
43699	// be later modified by the setLabels method. Each label key/value must
43700	// comply with RFC1035. Label values may be empty.
43701	Labels map[string]string `json:"labels,omitempty"`
43702
43703	// Name: Name of the resource. Provided by the client when the resource
43704	// is created. The name must be 1-63 characters long, and comply with
43705	// RFC1035. Specifically, the name must be 1-63 characters long and
43706	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
43707	// the first character must be a lowercase letter, and all following
43708	// characters must be a dash, lowercase letter, or digit, except the
43709	// last character, which cannot be a dash.
43710	Name string `json:"name,omitempty"`
43711
43712	// Network: URL of the network to which this VPN gateway is attached.
43713	// Provided by the client when the VPN gateway is created.
43714	Network string `json:"network,omitempty"`
43715
43716	// Region: [Output Only] URL of the region where the target VPN gateway
43717	// resides. You must specify this field as part of the HTTP request URL.
43718	// It is not settable as a field in the request body.
43719	Region string `json:"region,omitempty"`
43720
43721	// SelfLink: [Output Only] Server-defined URL for the resource.
43722	SelfLink string `json:"selfLink,omitempty"`
43723
43724	// Status: [Output Only] The status of the VPN gateway, which can be one
43725	// of the following: CREATING, READY, FAILED, or DELETING.
43726	//
43727	// Possible values:
43728	//   "CREATING"
43729	//   "DELETING"
43730	//   "FAILED"
43731	//   "READY"
43732	Status string `json:"status,omitempty"`
43733
43734	// Tunnels: [Output Only] A list of URLs to VpnTunnel resources.
43735	// VpnTunnels are created using the compute.vpntunnels.insert method and
43736	// associated with a VPN gateway.
43737	Tunnels []string `json:"tunnels,omitempty"`
43738
43739	// ServerResponse contains the HTTP response code and headers from the
43740	// server.
43741	googleapi.ServerResponse `json:"-"`
43742
43743	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
43744	// to unconditionally include in API requests. By default, fields with
43745	// empty values are omitted from API requests. However, any non-pointer,
43746	// non-interface field appearing in ForceSendFields will be sent to the
43747	// server regardless of whether the field is empty or not. This may be
43748	// used to include empty fields in Patch requests.
43749	ForceSendFields []string `json:"-"`
43750
43751	// NullFields is a list of field names (e.g. "CreationTimestamp") to
43752	// include in API requests with the JSON null value. By default, fields
43753	// with empty values are omitted from API requests. However, any field
43754	// with an empty value appearing in NullFields will be sent to the
43755	// server as null. It is an error if a field in this list has a
43756	// non-empty value. This may be used to include null fields in Patch
43757	// requests.
43758	NullFields []string `json:"-"`
43759}
43760
43761func (s *TargetVpnGateway) MarshalJSON() ([]byte, error) {
43762	type NoMethod TargetVpnGateway
43763	raw := NoMethod(*s)
43764	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43765}
43766
43767type TargetVpnGatewayAggregatedList struct {
43768	// Id: [Output Only] Unique identifier for the resource; defined by the
43769	// server.
43770	Id string `json:"id,omitempty"`
43771
43772	// Items: A list of TargetVpnGateway resources.
43773	Items map[string]TargetVpnGatewaysScopedList `json:"items,omitempty"`
43774
43775	// Kind: [Output Only] Type of resource. Always compute#targetVpnGateway
43776	// for target VPN gateways.
43777	Kind string `json:"kind,omitempty"`
43778
43779	// NextPageToken: [Output Only] This token allows you to get the next
43780	// page of results for list requests. If the number of results is larger
43781	// than maxResults, use the nextPageToken as a value for the query
43782	// parameter pageToken in the next list request. Subsequent list
43783	// requests will have their own nextPageToken to continue paging through
43784	// the results.
43785	NextPageToken string `json:"nextPageToken,omitempty"`
43786
43787	// SelfLink: [Output Only] Server-defined URL for this resource.
43788	SelfLink string `json:"selfLink,omitempty"`
43789
43790	// Warning: [Output Only] Informational warning message.
43791	Warning *TargetVpnGatewayAggregatedListWarning `json:"warning,omitempty"`
43792
43793	// ServerResponse contains the HTTP response code and headers from the
43794	// server.
43795	googleapi.ServerResponse `json:"-"`
43796
43797	// ForceSendFields is a list of field names (e.g. "Id") to
43798	// unconditionally include in API requests. By default, fields with
43799	// empty values are omitted from API requests. However, any non-pointer,
43800	// non-interface field appearing in ForceSendFields will be sent to the
43801	// server regardless of whether the field is empty or not. This may be
43802	// used to include empty fields in Patch requests.
43803	ForceSendFields []string `json:"-"`
43804
43805	// NullFields is a list of field names (e.g. "Id") to include in API
43806	// requests with the JSON null value. By default, fields with empty
43807	// values are omitted from API requests. However, any field with an
43808	// empty value appearing in NullFields will be sent to the server as
43809	// null. It is an error if a field in this list has a non-empty value.
43810	// This may be used to include null fields in Patch requests.
43811	NullFields []string `json:"-"`
43812}
43813
43814func (s *TargetVpnGatewayAggregatedList) MarshalJSON() ([]byte, error) {
43815	type NoMethod TargetVpnGatewayAggregatedList
43816	raw := NoMethod(*s)
43817	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43818}
43819
43820// TargetVpnGatewayAggregatedListWarning: [Output Only] Informational
43821// warning message.
43822type TargetVpnGatewayAggregatedListWarning struct {
43823	// Code: [Output Only] A warning code, if applicable. For example,
43824	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
43825	// the response.
43826	//
43827	// Possible values:
43828	//   "CLEANUP_FAILED"
43829	//   "DEPRECATED_RESOURCE_USED"
43830	//   "DEPRECATED_TYPE_USED"
43831	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
43832	//   "EXPERIMENTAL_TYPE_USED"
43833	//   "EXTERNAL_API_WARNING"
43834	//   "FIELD_VALUE_OVERRIDEN"
43835	//   "INJECTED_KERNELS_DEPRECATED"
43836	//   "MISSING_TYPE_DEPENDENCY"
43837	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
43838	//   "NEXT_HOP_CANNOT_IP_FORWARD"
43839	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
43840	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
43841	//   "NEXT_HOP_NOT_RUNNING"
43842	//   "NOT_CRITICAL_ERROR"
43843	//   "NO_RESULTS_ON_PAGE"
43844	//   "REQUIRED_TOS_AGREEMENT"
43845	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
43846	//   "RESOURCE_NOT_DELETED"
43847	//   "SCHEMA_VALIDATION_IGNORED"
43848	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
43849	//   "UNDECLARED_PROPERTIES"
43850	//   "UNREACHABLE"
43851	Code string `json:"code,omitempty"`
43852
43853	// Data: [Output Only] Metadata about this warning in key: value format.
43854	// For example:
43855	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
43856	Data []*TargetVpnGatewayAggregatedListWarningData `json:"data,omitempty"`
43857
43858	// Message: [Output Only] A human-readable description of the warning
43859	// code.
43860	Message string `json:"message,omitempty"`
43861
43862	// ForceSendFields is a list of field names (e.g. "Code") to
43863	// unconditionally include in API requests. By default, fields with
43864	// empty values are omitted from API requests. However, any non-pointer,
43865	// non-interface field appearing in ForceSendFields will be sent to the
43866	// server regardless of whether the field is empty or not. This may be
43867	// used to include empty fields in Patch requests.
43868	ForceSendFields []string `json:"-"`
43869
43870	// NullFields is a list of field names (e.g. "Code") to include in API
43871	// requests with the JSON null value. By default, fields with empty
43872	// values are omitted from API requests. However, any field with an
43873	// empty value appearing in NullFields will be sent to the server as
43874	// null. It is an error if a field in this list has a non-empty value.
43875	// This may be used to include null fields in Patch requests.
43876	NullFields []string `json:"-"`
43877}
43878
43879func (s *TargetVpnGatewayAggregatedListWarning) MarshalJSON() ([]byte, error) {
43880	type NoMethod TargetVpnGatewayAggregatedListWarning
43881	raw := NoMethod(*s)
43882	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43883}
43884
43885type TargetVpnGatewayAggregatedListWarningData struct {
43886	// Key: [Output Only] A key that provides more detail on the warning
43887	// being returned. For example, for warnings where there are no results
43888	// in a list request for a particular zone, this key might be scope and
43889	// the key value might be the zone name. Other examples might be a key
43890	// indicating a deprecated resource and a suggested replacement, or a
43891	// warning about invalid network settings (for example, if an instance
43892	// attempts to perform IP forwarding but is not enabled for IP
43893	// forwarding).
43894	Key string `json:"key,omitempty"`
43895
43896	// Value: [Output Only] A warning data value corresponding to the key.
43897	Value string `json:"value,omitempty"`
43898
43899	// ForceSendFields is a list of field names (e.g. "Key") to
43900	// unconditionally include in API requests. By default, fields with
43901	// empty values are omitted from API requests. However, any non-pointer,
43902	// non-interface field appearing in ForceSendFields will be sent to the
43903	// server regardless of whether the field is empty or not. This may be
43904	// used to include empty fields in Patch requests.
43905	ForceSendFields []string `json:"-"`
43906
43907	// NullFields is a list of field names (e.g. "Key") to include in API
43908	// requests with the JSON null value. By default, fields with empty
43909	// values are omitted from API requests. However, any field with an
43910	// empty value appearing in NullFields will be sent to the server as
43911	// null. It is an error if a field in this list has a non-empty value.
43912	// This may be used to include null fields in Patch requests.
43913	NullFields []string `json:"-"`
43914}
43915
43916func (s *TargetVpnGatewayAggregatedListWarningData) MarshalJSON() ([]byte, error) {
43917	type NoMethod TargetVpnGatewayAggregatedListWarningData
43918	raw := NoMethod(*s)
43919	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43920}
43921
43922// TargetVpnGatewayList: Contains a list of TargetVpnGateway resources.
43923type TargetVpnGatewayList struct {
43924	// Id: [Output Only] Unique identifier for the resource; defined by the
43925	// server.
43926	Id string `json:"id,omitempty"`
43927
43928	// Items: A list of TargetVpnGateway resources.
43929	Items []*TargetVpnGateway `json:"items,omitempty"`
43930
43931	// Kind: [Output Only] Type of resource. Always compute#targetVpnGateway
43932	// for target VPN gateways.
43933	Kind string `json:"kind,omitempty"`
43934
43935	// NextPageToken: [Output Only] This token allows you to get the next
43936	// page of results for list requests. If the number of results is larger
43937	// than maxResults, use the nextPageToken as a value for the query
43938	// parameter pageToken in the next list request. Subsequent list
43939	// requests will have their own nextPageToken to continue paging through
43940	// the results.
43941	NextPageToken string `json:"nextPageToken,omitempty"`
43942
43943	// SelfLink: [Output Only] Server-defined URL for this resource.
43944	SelfLink string `json:"selfLink,omitempty"`
43945
43946	// Warning: [Output Only] Informational warning message.
43947	Warning *TargetVpnGatewayListWarning `json:"warning,omitempty"`
43948
43949	// ServerResponse contains the HTTP response code and headers from the
43950	// server.
43951	googleapi.ServerResponse `json:"-"`
43952
43953	// ForceSendFields is a list of field names (e.g. "Id") to
43954	// unconditionally include in API requests. By default, fields with
43955	// empty values are omitted from API requests. However, any non-pointer,
43956	// non-interface field appearing in ForceSendFields will be sent to the
43957	// server regardless of whether the field is empty or not. This may be
43958	// used to include empty fields in Patch requests.
43959	ForceSendFields []string `json:"-"`
43960
43961	// NullFields is a list of field names (e.g. "Id") to include in API
43962	// requests with the JSON null value. By default, fields with empty
43963	// values are omitted from API requests. However, any field with an
43964	// empty value appearing in NullFields will be sent to the server as
43965	// null. It is an error if a field in this list has a non-empty value.
43966	// This may be used to include null fields in Patch requests.
43967	NullFields []string `json:"-"`
43968}
43969
43970func (s *TargetVpnGatewayList) MarshalJSON() ([]byte, error) {
43971	type NoMethod TargetVpnGatewayList
43972	raw := NoMethod(*s)
43973	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43974}
43975
43976// TargetVpnGatewayListWarning: [Output Only] Informational warning
43977// message.
43978type TargetVpnGatewayListWarning struct {
43979	// Code: [Output Only] A warning code, if applicable. For example,
43980	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
43981	// the response.
43982	//
43983	// Possible values:
43984	//   "CLEANUP_FAILED"
43985	//   "DEPRECATED_RESOURCE_USED"
43986	//   "DEPRECATED_TYPE_USED"
43987	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
43988	//   "EXPERIMENTAL_TYPE_USED"
43989	//   "EXTERNAL_API_WARNING"
43990	//   "FIELD_VALUE_OVERRIDEN"
43991	//   "INJECTED_KERNELS_DEPRECATED"
43992	//   "MISSING_TYPE_DEPENDENCY"
43993	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
43994	//   "NEXT_HOP_CANNOT_IP_FORWARD"
43995	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
43996	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
43997	//   "NEXT_HOP_NOT_RUNNING"
43998	//   "NOT_CRITICAL_ERROR"
43999	//   "NO_RESULTS_ON_PAGE"
44000	//   "REQUIRED_TOS_AGREEMENT"
44001	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
44002	//   "RESOURCE_NOT_DELETED"
44003	//   "SCHEMA_VALIDATION_IGNORED"
44004	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
44005	//   "UNDECLARED_PROPERTIES"
44006	//   "UNREACHABLE"
44007	Code string `json:"code,omitempty"`
44008
44009	// Data: [Output Only] Metadata about this warning in key: value format.
44010	// For example:
44011	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
44012	Data []*TargetVpnGatewayListWarningData `json:"data,omitempty"`
44013
44014	// Message: [Output Only] A human-readable description of the warning
44015	// code.
44016	Message string `json:"message,omitempty"`
44017
44018	// ForceSendFields is a list of field names (e.g. "Code") to
44019	// unconditionally include in API requests. By default, fields with
44020	// empty values are omitted from API requests. However, any non-pointer,
44021	// non-interface field appearing in ForceSendFields will be sent to the
44022	// server regardless of whether the field is empty or not. This may be
44023	// used to include empty fields in Patch requests.
44024	ForceSendFields []string `json:"-"`
44025
44026	// NullFields is a list of field names (e.g. "Code") to include in API
44027	// requests with the JSON null value. By default, fields with empty
44028	// values are omitted from API requests. However, any field with an
44029	// empty value appearing in NullFields will be sent to the server as
44030	// null. It is an error if a field in this list has a non-empty value.
44031	// This may be used to include null fields in Patch requests.
44032	NullFields []string `json:"-"`
44033}
44034
44035func (s *TargetVpnGatewayListWarning) MarshalJSON() ([]byte, error) {
44036	type NoMethod TargetVpnGatewayListWarning
44037	raw := NoMethod(*s)
44038	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44039}
44040
44041type TargetVpnGatewayListWarningData struct {
44042	// Key: [Output Only] A key that provides more detail on the warning
44043	// being returned. For example, for warnings where there are no results
44044	// in a list request for a particular zone, this key might be scope and
44045	// the key value might be the zone name. Other examples might be a key
44046	// indicating a deprecated resource and a suggested replacement, or a
44047	// warning about invalid network settings (for example, if an instance
44048	// attempts to perform IP forwarding but is not enabled for IP
44049	// forwarding).
44050	Key string `json:"key,omitempty"`
44051
44052	// Value: [Output Only] A warning data value corresponding to the key.
44053	Value string `json:"value,omitempty"`
44054
44055	// ForceSendFields is a list of field names (e.g. "Key") to
44056	// unconditionally include in API requests. By default, fields with
44057	// empty values are omitted from API requests. However, any non-pointer,
44058	// non-interface field appearing in ForceSendFields will be sent to the
44059	// server regardless of whether the field is empty or not. This may be
44060	// used to include empty fields in Patch requests.
44061	ForceSendFields []string `json:"-"`
44062
44063	// NullFields is a list of field names (e.g. "Key") to include in API
44064	// requests with the JSON null value. By default, fields with empty
44065	// values are omitted from API requests. However, any field with an
44066	// empty value appearing in NullFields will be sent to the server as
44067	// null. It is an error if a field in this list has a non-empty value.
44068	// This may be used to include null fields in Patch requests.
44069	NullFields []string `json:"-"`
44070}
44071
44072func (s *TargetVpnGatewayListWarningData) MarshalJSON() ([]byte, error) {
44073	type NoMethod TargetVpnGatewayListWarningData
44074	raw := NoMethod(*s)
44075	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44076}
44077
44078type TargetVpnGatewaysScopedList struct {
44079	// TargetVpnGateways: [Output Only] A list of target VPN gateways
44080	// contained in this scope.
44081	TargetVpnGateways []*TargetVpnGateway `json:"targetVpnGateways,omitempty"`
44082
44083	// Warning: [Output Only] Informational warning which replaces the list
44084	// of addresses when the list is empty.
44085	Warning *TargetVpnGatewaysScopedListWarning `json:"warning,omitempty"`
44086
44087	// ForceSendFields is a list of field names (e.g. "TargetVpnGateways")
44088	// to unconditionally include in API requests. By default, fields with
44089	// empty values are omitted from API requests. However, any non-pointer,
44090	// non-interface field appearing in ForceSendFields will be sent to the
44091	// server regardless of whether the field is empty or not. This may be
44092	// used to include empty fields in Patch requests.
44093	ForceSendFields []string `json:"-"`
44094
44095	// NullFields is a list of field names (e.g. "TargetVpnGateways") to
44096	// include in API requests with the JSON null value. By default, fields
44097	// with empty values are omitted from API requests. However, any field
44098	// with an empty value appearing in NullFields will be sent to the
44099	// server as null. It is an error if a field in this list has a
44100	// non-empty value. This may be used to include null fields in Patch
44101	// requests.
44102	NullFields []string `json:"-"`
44103}
44104
44105func (s *TargetVpnGatewaysScopedList) MarshalJSON() ([]byte, error) {
44106	type NoMethod TargetVpnGatewaysScopedList
44107	raw := NoMethod(*s)
44108	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44109}
44110
44111// TargetVpnGatewaysScopedListWarning: [Output Only] Informational
44112// warning which replaces the list of addresses when the list is empty.
44113type TargetVpnGatewaysScopedListWarning struct {
44114	// Code: [Output Only] A warning code, if applicable. For example,
44115	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
44116	// the response.
44117	//
44118	// Possible values:
44119	//   "CLEANUP_FAILED"
44120	//   "DEPRECATED_RESOURCE_USED"
44121	//   "DEPRECATED_TYPE_USED"
44122	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
44123	//   "EXPERIMENTAL_TYPE_USED"
44124	//   "EXTERNAL_API_WARNING"
44125	//   "FIELD_VALUE_OVERRIDEN"
44126	//   "INJECTED_KERNELS_DEPRECATED"
44127	//   "MISSING_TYPE_DEPENDENCY"
44128	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
44129	//   "NEXT_HOP_CANNOT_IP_FORWARD"
44130	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
44131	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
44132	//   "NEXT_HOP_NOT_RUNNING"
44133	//   "NOT_CRITICAL_ERROR"
44134	//   "NO_RESULTS_ON_PAGE"
44135	//   "REQUIRED_TOS_AGREEMENT"
44136	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
44137	//   "RESOURCE_NOT_DELETED"
44138	//   "SCHEMA_VALIDATION_IGNORED"
44139	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
44140	//   "UNDECLARED_PROPERTIES"
44141	//   "UNREACHABLE"
44142	Code string `json:"code,omitempty"`
44143
44144	// Data: [Output Only] Metadata about this warning in key: value format.
44145	// For example:
44146	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
44147	Data []*TargetVpnGatewaysScopedListWarningData `json:"data,omitempty"`
44148
44149	// Message: [Output Only] A human-readable description of the warning
44150	// code.
44151	Message string `json:"message,omitempty"`
44152
44153	// ForceSendFields is a list of field names (e.g. "Code") to
44154	// unconditionally include in API requests. By default, fields with
44155	// empty values are omitted from API requests. However, any non-pointer,
44156	// non-interface field appearing in ForceSendFields will be sent to the
44157	// server regardless of whether the field is empty or not. This may be
44158	// used to include empty fields in Patch requests.
44159	ForceSendFields []string `json:"-"`
44160
44161	// NullFields is a list of field names (e.g. "Code") to include in API
44162	// requests with the JSON null value. By default, fields with empty
44163	// values are omitted from API requests. However, any field with an
44164	// empty value appearing in NullFields will be sent to the server as
44165	// null. It is an error if a field in this list has a non-empty value.
44166	// This may be used to include null fields in Patch requests.
44167	NullFields []string `json:"-"`
44168}
44169
44170func (s *TargetVpnGatewaysScopedListWarning) MarshalJSON() ([]byte, error) {
44171	type NoMethod TargetVpnGatewaysScopedListWarning
44172	raw := NoMethod(*s)
44173	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44174}
44175
44176type TargetVpnGatewaysScopedListWarningData struct {
44177	// Key: [Output Only] A key that provides more detail on the warning
44178	// being returned. For example, for warnings where there are no results
44179	// in a list request for a particular zone, this key might be scope and
44180	// the key value might be the zone name. Other examples might be a key
44181	// indicating a deprecated resource and a suggested replacement, or a
44182	// warning about invalid network settings (for example, if an instance
44183	// attempts to perform IP forwarding but is not enabled for IP
44184	// forwarding).
44185	Key string `json:"key,omitempty"`
44186
44187	// Value: [Output Only] A warning data value corresponding to the key.
44188	Value string `json:"value,omitempty"`
44189
44190	// ForceSendFields is a list of field names (e.g. "Key") to
44191	// unconditionally include in API requests. By default, fields with
44192	// empty values are omitted from API requests. However, any non-pointer,
44193	// non-interface field appearing in ForceSendFields will be sent to the
44194	// server regardless of whether the field is empty or not. This may be
44195	// used to include empty fields in Patch requests.
44196	ForceSendFields []string `json:"-"`
44197
44198	// NullFields is a list of field names (e.g. "Key") to include in API
44199	// requests with the JSON null value. By default, fields with empty
44200	// values are omitted from API requests. However, any field with an
44201	// empty value appearing in NullFields will be sent to the server as
44202	// null. It is an error if a field in this list has a non-empty value.
44203	// This may be used to include null fields in Patch requests.
44204	NullFields []string `json:"-"`
44205}
44206
44207func (s *TargetVpnGatewaysScopedListWarningData) MarshalJSON() ([]byte, error) {
44208	type NoMethod TargetVpnGatewaysScopedListWarningData
44209	raw := NoMethod(*s)
44210	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44211}
44212
44213type TestFailure struct {
44214	ActualService string `json:"actualService,omitempty"`
44215
44216	ExpectedService string `json:"expectedService,omitempty"`
44217
44218	Host string `json:"host,omitempty"`
44219
44220	Path string `json:"path,omitempty"`
44221
44222	// ForceSendFields is a list of field names (e.g. "ActualService") to
44223	// unconditionally include in API requests. By default, fields with
44224	// empty values are omitted from API requests. However, any non-pointer,
44225	// non-interface field appearing in ForceSendFields will be sent to the
44226	// server regardless of whether the field is empty or not. This may be
44227	// used to include empty fields in Patch requests.
44228	ForceSendFields []string `json:"-"`
44229
44230	// NullFields is a list of field names (e.g. "ActualService") to include
44231	// in API requests with the JSON null value. By default, fields with
44232	// empty values are omitted from API requests. However, any field with
44233	// an empty value appearing in NullFields will be sent to the server as
44234	// null. It is an error if a field in this list has a non-empty value.
44235	// This may be used to include null fields in Patch requests.
44236	NullFields []string `json:"-"`
44237}
44238
44239func (s *TestFailure) MarshalJSON() ([]byte, error) {
44240	type NoMethod TestFailure
44241	raw := NoMethod(*s)
44242	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44243}
44244
44245type TestPermissionsRequest struct {
44246	// Permissions: The set of permissions to check for the 'resource'.
44247	// Permissions with wildcards (such as '*' or 'storage.*') are not
44248	// allowed.
44249	Permissions []string `json:"permissions,omitempty"`
44250
44251	// ForceSendFields is a list of field names (e.g. "Permissions") to
44252	// unconditionally include in API requests. By default, fields with
44253	// empty values are omitted from API requests. However, any non-pointer,
44254	// non-interface field appearing in ForceSendFields will be sent to the
44255	// server regardless of whether the field is empty or not. This may be
44256	// used to include empty fields in Patch requests.
44257	ForceSendFields []string `json:"-"`
44258
44259	// NullFields is a list of field names (e.g. "Permissions") to include
44260	// in API requests with the JSON null value. By default, fields with
44261	// empty values are omitted from API requests. However, any field with
44262	// an empty value appearing in NullFields will be sent to the server as
44263	// null. It is an error if a field in this list has a non-empty value.
44264	// This may be used to include null fields in Patch requests.
44265	NullFields []string `json:"-"`
44266}
44267
44268func (s *TestPermissionsRequest) MarshalJSON() ([]byte, error) {
44269	type NoMethod TestPermissionsRequest
44270	raw := NoMethod(*s)
44271	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44272}
44273
44274type TestPermissionsResponse struct {
44275	// Permissions: A subset of `TestPermissionsRequest.permissions` that
44276	// the caller is allowed.
44277	Permissions []string `json:"permissions,omitempty"`
44278
44279	// ServerResponse contains the HTTP response code and headers from the
44280	// server.
44281	googleapi.ServerResponse `json:"-"`
44282
44283	// ForceSendFields is a list of field names (e.g. "Permissions") to
44284	// unconditionally include in API requests. By default, fields with
44285	// empty values are omitted from API requests. However, any non-pointer,
44286	// non-interface field appearing in ForceSendFields will be sent to the
44287	// server regardless of whether the field is empty or not. This may be
44288	// used to include empty fields in Patch requests.
44289	ForceSendFields []string `json:"-"`
44290
44291	// NullFields is a list of field names (e.g. "Permissions") to include
44292	// in API requests with the JSON null value. By default, fields with
44293	// empty values are omitted from API requests. However, any field with
44294	// an empty value appearing in NullFields will be sent to the server as
44295	// null. It is an error if a field in this list has a non-empty value.
44296	// This may be used to include null fields in Patch requests.
44297	NullFields []string `json:"-"`
44298}
44299
44300func (s *TestPermissionsResponse) MarshalJSON() ([]byte, error) {
44301	type NoMethod TestPermissionsResponse
44302	raw := NoMethod(*s)
44303	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44304}
44305
44306// TlsCertificateContext: Defines the mechanism to obtain the client or
44307// server certificate.
44308type TlsCertificateContext struct {
44309	// CertificatePaths: Specifies the certificate and private key paths.
44310	// This field is applicable only if tlsCertificateSource is set to
44311	// USE_PATH.
44312	CertificatePaths *TlsCertificatePaths `json:"certificatePaths,omitempty"`
44313
44314	// CertificateSource: Defines how TLS certificates are obtained.
44315	//
44316	// Possible values:
44317	//   "INVALID"
44318	//   "USE_PATH"
44319	//   "USE_SDS"
44320	CertificateSource string `json:"certificateSource,omitempty"`
44321
44322	// SdsConfig: Specifies the config to retrieve certificates through SDS.
44323	// This field is applicable only if tlsCertificateSource is set to
44324	// USE_SDS.
44325	SdsConfig *SdsConfig `json:"sdsConfig,omitempty"`
44326
44327	// ForceSendFields is a list of field names (e.g. "CertificatePaths") to
44328	// unconditionally include in API requests. By default, fields with
44329	// empty values are omitted from API requests. However, any non-pointer,
44330	// non-interface field appearing in ForceSendFields will be sent to the
44331	// server regardless of whether the field is empty or not. This may be
44332	// used to include empty fields in Patch requests.
44333	ForceSendFields []string `json:"-"`
44334
44335	// NullFields is a list of field names (e.g. "CertificatePaths") to
44336	// include in API requests with the JSON null value. By default, fields
44337	// with empty values are omitted from API requests. However, any field
44338	// with an empty value appearing in NullFields will be sent to the
44339	// server as null. It is an error if a field in this list has a
44340	// non-empty value. This may be used to include null fields in Patch
44341	// requests.
44342	NullFields []string `json:"-"`
44343}
44344
44345func (s *TlsCertificateContext) MarshalJSON() ([]byte, error) {
44346	type NoMethod TlsCertificateContext
44347	raw := NoMethod(*s)
44348	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44349}
44350
44351// TlsCertificatePaths: The paths to the mounted TLS Certificates and
44352// private key.
44353type TlsCertificatePaths struct {
44354	// CertificatePath: The path to the file holding the client or server
44355	// TLS certificate to use.
44356	CertificatePath string `json:"certificatePath,omitempty"`
44357
44358	// PrivateKeyPath: The path to the file holding the client or server
44359	// private key.
44360	PrivateKeyPath string `json:"privateKeyPath,omitempty"`
44361
44362	// ForceSendFields is a list of field names (e.g. "CertificatePath") to
44363	// unconditionally include in API requests. By default, fields with
44364	// empty values are omitted from API requests. However, any non-pointer,
44365	// non-interface field appearing in ForceSendFields will be sent to the
44366	// server regardless of whether the field is empty or not. This may be
44367	// used to include empty fields in Patch requests.
44368	ForceSendFields []string `json:"-"`
44369
44370	// NullFields is a list of field names (e.g. "CertificatePath") to
44371	// include in API requests with the JSON null value. By default, fields
44372	// with empty values are omitted from API requests. However, any field
44373	// with an empty value appearing in NullFields will be sent to the
44374	// server as null. It is an error if a field in this list has a
44375	// non-empty value. This may be used to include null fields in Patch
44376	// requests.
44377	NullFields []string `json:"-"`
44378}
44379
44380func (s *TlsCertificatePaths) MarshalJSON() ([]byte, error) {
44381	type NoMethod TlsCertificatePaths
44382	raw := NoMethod(*s)
44383	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44384}
44385
44386// TlsContext: The TLS settings for the client or server.
44387type TlsContext struct {
44388	// CertificateContext: Defines the mechanism to obtain the client or
44389	// server certificate.
44390	CertificateContext *TlsCertificateContext `json:"certificateContext,omitempty"`
44391
44392	// ValidationContext: Defines the mechanism to obtain the Certificate
44393	// Authority certificate to validate the client/server certificate. If
44394	// omitted, the proxy will not validate the server or client
44395	// certificate.
44396	ValidationContext *TlsValidationContext `json:"validationContext,omitempty"`
44397
44398	// ForceSendFields is a list of field names (e.g. "CertificateContext")
44399	// to unconditionally include in API requests. By default, fields with
44400	// empty values are omitted from API requests. However, any non-pointer,
44401	// non-interface field appearing in ForceSendFields will be sent to the
44402	// server regardless of whether the field is empty or not. This may be
44403	// used to include empty fields in Patch requests.
44404	ForceSendFields []string `json:"-"`
44405
44406	// NullFields is a list of field names (e.g. "CertificateContext") to
44407	// include in API requests with the JSON null value. By default, fields
44408	// with empty values are omitted from API requests. However, any field
44409	// with an empty value appearing in NullFields will be sent to the
44410	// server as null. It is an error if a field in this list has a
44411	// non-empty value. This may be used to include null fields in Patch
44412	// requests.
44413	NullFields []string `json:"-"`
44414}
44415
44416func (s *TlsContext) MarshalJSON() ([]byte, error) {
44417	type NoMethod TlsContext
44418	raw := NoMethod(*s)
44419	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44420}
44421
44422// TlsValidationContext: Defines the mechanism to obtain the Certificate
44423// Authority certificate to validate the client/server certificate.
44424type TlsValidationContext struct {
44425	// CertificatePath: The path to the file holding the CA certificate to
44426	// validate the client or server certificate.
44427	CertificatePath string `json:"certificatePath,omitempty"`
44428
44429	// SdsConfig: Specifies the config to retrieve certificates through SDS.
44430	// This field is applicable only if tlsCertificateSource is set to
44431	// USE_SDS.
44432	SdsConfig *SdsConfig `json:"sdsConfig,omitempty"`
44433
44434	// ValidationSource: Defines how TLS certificates are obtained.
44435	//
44436	// Possible values:
44437	//   "INVALID"
44438	//   "USE_PATH"
44439	//   "USE_SDS"
44440	ValidationSource string `json:"validationSource,omitempty"`
44441
44442	// ForceSendFields is a list of field names (e.g. "CertificatePath") to
44443	// unconditionally include in API requests. By default, fields with
44444	// empty values are omitted from API requests. However, any non-pointer,
44445	// non-interface field appearing in ForceSendFields will be sent to the
44446	// server regardless of whether the field is empty or not. This may be
44447	// used to include empty fields in Patch requests.
44448	ForceSendFields []string `json:"-"`
44449
44450	// NullFields is a list of field names (e.g. "CertificatePath") to
44451	// include in API requests with the JSON null value. By default, fields
44452	// with empty values are omitted from API requests. However, any field
44453	// with an empty value appearing in NullFields will be sent to the
44454	// server as null. It is an error if a field in this list has a
44455	// non-empty value. This may be used to include null fields in Patch
44456	// requests.
44457	NullFields []string `json:"-"`
44458}
44459
44460func (s *TlsValidationContext) MarshalJSON() ([]byte, error) {
44461	type NoMethod TlsValidationContext
44462	raw := NoMethod(*s)
44463	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44464}
44465
44466type UDPHealthCheck struct {
44467	// Port: The UDP port number for the health check request. Valid values
44468	// are 1 through 65535.
44469	Port int64 `json:"port,omitempty"`
44470
44471	// PortName: Port name as defined in InstanceGroup#NamedPort#name. If
44472	// both port and port_name are defined, port takes precedence.
44473	PortName string `json:"portName,omitempty"`
44474
44475	// Request: Raw data of request to send in payload of UDP packet. It is
44476	// an error if this is empty. The request data can only be ASCII.
44477	Request string `json:"request,omitempty"`
44478
44479	// Response: The bytes to match against the beginning of the response
44480	// data. It is an error if this is empty. The response data can only be
44481	// ASCII.
44482	Response string `json:"response,omitempty"`
44483
44484	// ForceSendFields is a list of field names (e.g. "Port") to
44485	// unconditionally include in API requests. By default, fields with
44486	// empty values are omitted from API requests. However, any non-pointer,
44487	// non-interface field appearing in ForceSendFields will be sent to the
44488	// server regardless of whether the field is empty or not. This may be
44489	// used to include empty fields in Patch requests.
44490	ForceSendFields []string `json:"-"`
44491
44492	// NullFields is a list of field names (e.g. "Port") to include in API
44493	// requests with the JSON null value. By default, fields with empty
44494	// values are omitted from API requests. However, any field with an
44495	// empty value appearing in NullFields will be sent to the server as
44496	// null. It is an error if a field in this list has a non-empty value.
44497	// This may be used to include null fields in Patch requests.
44498	NullFields []string `json:"-"`
44499}
44500
44501func (s *UDPHealthCheck) MarshalJSON() ([]byte, error) {
44502	type NoMethod UDPHealthCheck
44503	raw := NoMethod(*s)
44504	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44505}
44506
44507// UrlMap: Represents a URL Map resource.
44508//
44509// A URL map resource is a component of certain types of load balancers.
44510// This resource defines mappings from host names and URL paths to
44511// either a backend service or a backend bucket.
44512//
44513// To use this resource, the backend service must have a
44514// loadBalancingScheme of either EXTERNAL, INTERNAL_SELF_MANAGED, or
44515// INTERNAL_MANAGED For more information, read URL Map Concepts.
44516type UrlMap struct {
44517	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
44518	// format.
44519	CreationTimestamp string `json:"creationTimestamp,omitempty"`
44520
44521	// DefaultRouteAction: defaultRouteAction takes effect when none of the
44522	// hostRules match. The load balancer performs advanced routing actions
44523	// like URL rewrites, header transformations, etc. prior to forwarding
44524	// the request to the selected backend. If defaultRouteAction specifies
44525	// any weightedBackendServices, defaultService must not be set.
44526	// Conversely if defaultService is set, defaultRouteAction cannot
44527	// contain any  weightedBackendServices.
44528	// Only one of defaultRouteAction or defaultUrlRedirect must be set.
44529	DefaultRouteAction *HttpRouteAction `json:"defaultRouteAction,omitempty"`
44530
44531	// DefaultService: The full or partial URL of the defaultService
44532	// resource to which traffic is directed if none of the hostRules match.
44533	// If defaultRouteAction is additionally specified, advanced routing
44534	// actions like URL Rewrites, etc. take effect prior to sending the
44535	// request to the backend. However, if defaultService is specified,
44536	// defaultRouteAction cannot contain any weightedBackendServices.
44537	// Conversely, if routeAction specifies any weightedBackendServices,
44538	// service must not be specified.
44539	// Only one of defaultService, defaultUrlRedirect  or
44540	// defaultRouteAction.weightedBackendService must be set.
44541	DefaultService string `json:"defaultService,omitempty"`
44542
44543	// DefaultUrlRedirect: When none of the specified hostRules match, the
44544	// request is redirected to a URL specified by defaultUrlRedirect.
44545	// If defaultUrlRedirect is specified, defaultService or
44546	// defaultRouteAction must not be set.
44547	DefaultUrlRedirect *HttpRedirectAction `json:"defaultUrlRedirect,omitempty"`
44548
44549	// Description: An optional description of this resource. Provide this
44550	// property when you create the resource.
44551	Description string `json:"description,omitempty"`
44552
44553	// Fingerprint: Fingerprint of this resource. A hash of the contents
44554	// stored in this object. This field is used in optimistic locking. This
44555	// field will be ignored when inserting a UrlMap. An up-to-date
44556	// fingerprint must be provided in order to update the UrlMap, otherwise
44557	// the request will fail with error 412 conditionNotMet.
44558	//
44559	// To see the latest fingerprint, make a get() request to retrieve a
44560	// UrlMap.
44561	Fingerprint string `json:"fingerprint,omitempty"`
44562
44563	// HeaderAction: Specifies changes to request and response headers that
44564	// need to take effect for the selected backendService.
44565	// The headerAction specified here take effect after headerAction
44566	// specified under pathMatcher.
44567	HeaderAction *HttpHeaderAction `json:"headerAction,omitempty"`
44568
44569	// HostRules: The list of HostRules to use against the URL.
44570	HostRules []*HostRule `json:"hostRules,omitempty"`
44571
44572	// Id: [Output Only] The unique identifier for the resource. This
44573	// identifier is defined by the server.
44574	Id uint64 `json:"id,omitempty,string"`
44575
44576	// Kind: [Output Only] Type of the resource. Always compute#urlMaps for
44577	// url maps.
44578	Kind string `json:"kind,omitempty"`
44579
44580	// Name: Name of the resource. Provided by the client when the resource
44581	// is created. The name must be 1-63 characters long, and comply with
44582	// RFC1035. Specifically, the name must be 1-63 characters long and
44583	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
44584	// the first character must be a lowercase letter, and all following
44585	// characters must be a dash, lowercase letter, or digit, except the
44586	// last character, which cannot be a dash.
44587	Name string `json:"name,omitempty"`
44588
44589	// PathMatchers: The list of named PathMatchers to use against the URL.
44590	PathMatchers []*PathMatcher `json:"pathMatchers,omitempty"`
44591
44592	// Region: [Output Only] URL of the region where the regional URL map
44593	// resides. This field is not applicable to global URL maps. You must
44594	// specify this field as part of the HTTP request URL. It is not
44595	// settable as a field in the request body.
44596	Region string `json:"region,omitempty"`
44597
44598	// SelfLink: [Output Only] Server-defined URL for the resource.
44599	SelfLink string `json:"selfLink,omitempty"`
44600
44601	// Tests: The list of expected URL mapping tests. Request to update this
44602	// UrlMap will succeed only if all of the test cases pass. You can
44603	// specify a maximum of 100 tests per UrlMap.
44604	Tests []*UrlMapTest `json:"tests,omitempty"`
44605
44606	// ServerResponse contains the HTTP response code and headers from the
44607	// server.
44608	googleapi.ServerResponse `json:"-"`
44609
44610	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
44611	// to unconditionally include in API requests. By default, fields with
44612	// empty values are omitted from API requests. However, any non-pointer,
44613	// non-interface field appearing in ForceSendFields will be sent to the
44614	// server regardless of whether the field is empty or not. This may be
44615	// used to include empty fields in Patch requests.
44616	ForceSendFields []string `json:"-"`
44617
44618	// NullFields is a list of field names (e.g. "CreationTimestamp") to
44619	// include in API requests with the JSON null value. By default, fields
44620	// with empty values are omitted from API requests. However, any field
44621	// with an empty value appearing in NullFields will be sent to the
44622	// server as null. It is an error if a field in this list has a
44623	// non-empty value. This may be used to include null fields in Patch
44624	// requests.
44625	NullFields []string `json:"-"`
44626}
44627
44628func (s *UrlMap) MarshalJSON() ([]byte, error) {
44629	type NoMethod UrlMap
44630	raw := NoMethod(*s)
44631	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44632}
44633
44634// UrlMapList: Contains a list of UrlMap resources.
44635type UrlMapList struct {
44636	// Id: [Output Only] Unique identifier for the resource; defined by the
44637	// server.
44638	Id string `json:"id,omitempty"`
44639
44640	// Items: A list of UrlMap resources.
44641	Items []*UrlMap `json:"items,omitempty"`
44642
44643	// Kind: Type of resource.
44644	Kind string `json:"kind,omitempty"`
44645
44646	// NextPageToken: [Output Only] This token allows you to get the next
44647	// page of results for list requests. If the number of results is larger
44648	// than maxResults, use the nextPageToken as a value for the query
44649	// parameter pageToken in the next list request. Subsequent list
44650	// requests will have their own nextPageToken to continue paging through
44651	// the results.
44652	NextPageToken string `json:"nextPageToken,omitempty"`
44653
44654	// SelfLink: [Output Only] Server-defined URL for this resource.
44655	SelfLink string `json:"selfLink,omitempty"`
44656
44657	// Warning: [Output Only] Informational warning message.
44658	Warning *UrlMapListWarning `json:"warning,omitempty"`
44659
44660	// ServerResponse contains the HTTP response code and headers from the
44661	// server.
44662	googleapi.ServerResponse `json:"-"`
44663
44664	// ForceSendFields is a list of field names (e.g. "Id") 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. "Id") to include in API
44673	// requests with the JSON null value. By default, fields with empty
44674	// values are omitted from API requests. However, any field with an
44675	// empty value appearing in NullFields will be sent to the server as
44676	// null. It is an error if a field in this list has a non-empty value.
44677	// This may be used to include null fields in Patch requests.
44678	NullFields []string `json:"-"`
44679}
44680
44681func (s *UrlMapList) MarshalJSON() ([]byte, error) {
44682	type NoMethod UrlMapList
44683	raw := NoMethod(*s)
44684	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44685}
44686
44687// UrlMapListWarning: [Output Only] Informational warning message.
44688type UrlMapListWarning struct {
44689	// Code: [Output Only] A warning code, if applicable. For example,
44690	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
44691	// the response.
44692	//
44693	// Possible values:
44694	//   "CLEANUP_FAILED"
44695	//   "DEPRECATED_RESOURCE_USED"
44696	//   "DEPRECATED_TYPE_USED"
44697	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
44698	//   "EXPERIMENTAL_TYPE_USED"
44699	//   "EXTERNAL_API_WARNING"
44700	//   "FIELD_VALUE_OVERRIDEN"
44701	//   "INJECTED_KERNELS_DEPRECATED"
44702	//   "MISSING_TYPE_DEPENDENCY"
44703	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
44704	//   "NEXT_HOP_CANNOT_IP_FORWARD"
44705	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
44706	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
44707	//   "NEXT_HOP_NOT_RUNNING"
44708	//   "NOT_CRITICAL_ERROR"
44709	//   "NO_RESULTS_ON_PAGE"
44710	//   "REQUIRED_TOS_AGREEMENT"
44711	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
44712	//   "RESOURCE_NOT_DELETED"
44713	//   "SCHEMA_VALIDATION_IGNORED"
44714	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
44715	//   "UNDECLARED_PROPERTIES"
44716	//   "UNREACHABLE"
44717	Code string `json:"code,omitempty"`
44718
44719	// Data: [Output Only] Metadata about this warning in key: value format.
44720	// For example:
44721	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
44722	Data []*UrlMapListWarningData `json:"data,omitempty"`
44723
44724	// Message: [Output Only] A human-readable description of the warning
44725	// code.
44726	Message string `json:"message,omitempty"`
44727
44728	// ForceSendFields is a list of field names (e.g. "Code") to
44729	// unconditionally include in API requests. By default, fields with
44730	// empty values are omitted from API requests. However, any non-pointer,
44731	// non-interface field appearing in ForceSendFields will be sent to the
44732	// server regardless of whether the field is empty or not. This may be
44733	// used to include empty fields in Patch requests.
44734	ForceSendFields []string `json:"-"`
44735
44736	// NullFields is a list of field names (e.g. "Code") to include in API
44737	// requests with the JSON null value. By default, fields with empty
44738	// values are omitted from API requests. However, any field with an
44739	// empty value appearing in NullFields will be sent to the server as
44740	// null. It is an error if a field in this list has a non-empty value.
44741	// This may be used to include null fields in Patch requests.
44742	NullFields []string `json:"-"`
44743}
44744
44745func (s *UrlMapListWarning) MarshalJSON() ([]byte, error) {
44746	type NoMethod UrlMapListWarning
44747	raw := NoMethod(*s)
44748	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44749}
44750
44751type UrlMapListWarningData struct {
44752	// Key: [Output Only] A key that provides more detail on the warning
44753	// being returned. For example, for warnings where there are no results
44754	// in a list request for a particular zone, this key might be scope and
44755	// the key value might be the zone name. Other examples might be a key
44756	// indicating a deprecated resource and a suggested replacement, or a
44757	// warning about invalid network settings (for example, if an instance
44758	// attempts to perform IP forwarding but is not enabled for IP
44759	// forwarding).
44760	Key string `json:"key,omitempty"`
44761
44762	// Value: [Output Only] A warning data value corresponding to the key.
44763	Value string `json:"value,omitempty"`
44764
44765	// ForceSendFields is a list of field names (e.g. "Key") to
44766	// unconditionally include in API requests. By default, fields with
44767	// empty values are omitted from API requests. However, any non-pointer,
44768	// non-interface field appearing in ForceSendFields will be sent to the
44769	// server regardless of whether the field is empty or not. This may be
44770	// used to include empty fields in Patch requests.
44771	ForceSendFields []string `json:"-"`
44772
44773	// NullFields is a list of field names (e.g. "Key") to include in API
44774	// requests with the JSON null value. By default, fields with empty
44775	// values are omitted from API requests. However, any field with an
44776	// empty value appearing in NullFields will be sent to the server as
44777	// null. It is an error if a field in this list has a non-empty value.
44778	// This may be used to include null fields in Patch requests.
44779	NullFields []string `json:"-"`
44780}
44781
44782func (s *UrlMapListWarningData) MarshalJSON() ([]byte, error) {
44783	type NoMethod UrlMapListWarningData
44784	raw := NoMethod(*s)
44785	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44786}
44787
44788type UrlMapReference struct {
44789	UrlMap string `json:"urlMap,omitempty"`
44790
44791	// ForceSendFields is a list of field names (e.g. "UrlMap") to
44792	// unconditionally include in API requests. By default, fields with
44793	// empty values are omitted from API requests. However, any non-pointer,
44794	// non-interface field appearing in ForceSendFields will be sent to the
44795	// server regardless of whether the field is empty or not. This may be
44796	// used to include empty fields in Patch requests.
44797	ForceSendFields []string `json:"-"`
44798
44799	// NullFields is a list of field names (e.g. "UrlMap") to include in API
44800	// requests with the JSON null value. By default, fields with empty
44801	// values are omitted from API requests. However, any field with an
44802	// empty value appearing in NullFields will be sent to the server as
44803	// null. It is an error if a field in this list has a non-empty value.
44804	// This may be used to include null fields in Patch requests.
44805	NullFields []string `json:"-"`
44806}
44807
44808func (s *UrlMapReference) MarshalJSON() ([]byte, error) {
44809	type NoMethod UrlMapReference
44810	raw := NoMethod(*s)
44811	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44812}
44813
44814// UrlMapTest: Message for the expected URL mappings.
44815type UrlMapTest struct {
44816	// BackendServiceWeight: The weight to use for the supplied host and
44817	// path when using advanced routing rules that involve traffic
44818	// splitting.
44819	BackendServiceWeight int64 `json:"backendServiceWeight,omitempty"`
44820
44821	// Description: Description of this test case.
44822	Description string `json:"description,omitempty"`
44823
44824	// ExpectedUrlRedirect: The expected URL that should be redirected to
44825	// for the host and path being tested.
44826	ExpectedUrlRedirect string `json:"expectedUrlRedirect,omitempty"`
44827
44828	// Host: Host portion of the URL.
44829	Host string `json:"host,omitempty"`
44830
44831	// Path: Path portion of the URL.
44832	Path string `json:"path,omitempty"`
44833
44834	// Service: Expected BackendService resource the given URL should be
44835	// mapped to.
44836	Service string `json:"service,omitempty"`
44837
44838	// ForceSendFields is a list of field names (e.g.
44839	// "BackendServiceWeight") to unconditionally include in API requests.
44840	// By default, fields with empty values are omitted from API requests.
44841	// However, any non-pointer, non-interface field appearing in
44842	// ForceSendFields will be sent to the server regardless of whether the
44843	// field is empty or not. This may be used to include empty fields in
44844	// Patch requests.
44845	ForceSendFields []string `json:"-"`
44846
44847	// NullFields is a list of field names (e.g. "BackendServiceWeight") to
44848	// include in API requests with the JSON null value. By default, fields
44849	// with empty values are omitted from API requests. However, any field
44850	// with an empty value appearing in NullFields will be sent to the
44851	// server as null. It is an error if a field in this list has a
44852	// non-empty value. This may be used to include null fields in Patch
44853	// requests.
44854	NullFields []string `json:"-"`
44855}
44856
44857func (s *UrlMapTest) MarshalJSON() ([]byte, error) {
44858	type NoMethod UrlMapTest
44859	raw := NoMethod(*s)
44860	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44861}
44862
44863// UrlMapValidationResult: Message representing the validation result
44864// for a UrlMap.
44865type UrlMapValidationResult struct {
44866	LoadErrors []string `json:"loadErrors,omitempty"`
44867
44868	// LoadSucceeded: Whether the given UrlMap can be successfully loaded.
44869	// If false, 'loadErrors' indicates the reasons.
44870	LoadSucceeded bool `json:"loadSucceeded,omitempty"`
44871
44872	TestFailures []*TestFailure `json:"testFailures,omitempty"`
44873
44874	// TestPassed: If successfully loaded, this field indicates whether the
44875	// test passed. If false, 'testFailures's indicate the reason of
44876	// failure.
44877	TestPassed bool `json:"testPassed,omitempty"`
44878
44879	// ForceSendFields is a list of field names (e.g. "LoadErrors") to
44880	// unconditionally include in API requests. By default, fields with
44881	// empty values are omitted from API requests. However, any non-pointer,
44882	// non-interface field appearing in ForceSendFields will be sent to the
44883	// server regardless of whether the field is empty or not. This may be
44884	// used to include empty fields in Patch requests.
44885	ForceSendFields []string `json:"-"`
44886
44887	// NullFields is a list of field names (e.g. "LoadErrors") to include in
44888	// API requests with the JSON null value. By default, fields with empty
44889	// values are omitted from API requests. However, any field with an
44890	// empty value appearing in NullFields will be sent to the server as
44891	// null. It is an error if a field in this list has a non-empty value.
44892	// This may be used to include null fields in Patch requests.
44893	NullFields []string `json:"-"`
44894}
44895
44896func (s *UrlMapValidationResult) MarshalJSON() ([]byte, error) {
44897	type NoMethod UrlMapValidationResult
44898	raw := NoMethod(*s)
44899	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44900}
44901
44902type UrlMapsAggregatedList struct {
44903	// Id: [Output Only] Unique identifier for the resource; defined by the
44904	// server.
44905	Id string `json:"id,omitempty"`
44906
44907	// Items: A list of UrlMapsScopedList resources.
44908	Items map[string]UrlMapsScopedList `json:"items,omitempty"`
44909
44910	// Kind: Type of resource.
44911	Kind string `json:"kind,omitempty"`
44912
44913	// NextPageToken: [Output Only] This token allows you to get the next
44914	// page of results for list requests. If the number of results is larger
44915	// than maxResults, use the nextPageToken as a value for the query
44916	// parameter pageToken in the next list request. Subsequent list
44917	// requests will have their own nextPageToken to continue paging through
44918	// the results.
44919	NextPageToken string `json:"nextPageToken,omitempty"`
44920
44921	// SelfLink: [Output Only] Server-defined URL for this resource.
44922	SelfLink string `json:"selfLink,omitempty"`
44923
44924	// Warning: [Output Only] Informational warning message.
44925	Warning *UrlMapsAggregatedListWarning `json:"warning,omitempty"`
44926
44927	// ServerResponse contains the HTTP response code and headers from the
44928	// server.
44929	googleapi.ServerResponse `json:"-"`
44930
44931	// ForceSendFields is a list of field names (e.g. "Id") to
44932	// unconditionally include in API requests. By default, fields with
44933	// empty values are omitted from API requests. However, any non-pointer,
44934	// non-interface field appearing in ForceSendFields will be sent to the
44935	// server regardless of whether the field is empty or not. This may be
44936	// used to include empty fields in Patch requests.
44937	ForceSendFields []string `json:"-"`
44938
44939	// NullFields is a list of field names (e.g. "Id") to include in API
44940	// requests with the JSON null value. By default, fields with empty
44941	// values are omitted from API requests. However, any field with an
44942	// empty value appearing in NullFields will be sent to the server as
44943	// null. It is an error if a field in this list has a non-empty value.
44944	// This may be used to include null fields in Patch requests.
44945	NullFields []string `json:"-"`
44946}
44947
44948func (s *UrlMapsAggregatedList) MarshalJSON() ([]byte, error) {
44949	type NoMethod UrlMapsAggregatedList
44950	raw := NoMethod(*s)
44951	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44952}
44953
44954// UrlMapsAggregatedListWarning: [Output Only] Informational warning
44955// message.
44956type UrlMapsAggregatedListWarning struct {
44957	// Code: [Output Only] A warning code, if applicable. For example,
44958	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
44959	// the response.
44960	//
44961	// Possible values:
44962	//   "CLEANUP_FAILED"
44963	//   "DEPRECATED_RESOURCE_USED"
44964	//   "DEPRECATED_TYPE_USED"
44965	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
44966	//   "EXPERIMENTAL_TYPE_USED"
44967	//   "EXTERNAL_API_WARNING"
44968	//   "FIELD_VALUE_OVERRIDEN"
44969	//   "INJECTED_KERNELS_DEPRECATED"
44970	//   "MISSING_TYPE_DEPENDENCY"
44971	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
44972	//   "NEXT_HOP_CANNOT_IP_FORWARD"
44973	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
44974	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
44975	//   "NEXT_HOP_NOT_RUNNING"
44976	//   "NOT_CRITICAL_ERROR"
44977	//   "NO_RESULTS_ON_PAGE"
44978	//   "REQUIRED_TOS_AGREEMENT"
44979	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
44980	//   "RESOURCE_NOT_DELETED"
44981	//   "SCHEMA_VALIDATION_IGNORED"
44982	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
44983	//   "UNDECLARED_PROPERTIES"
44984	//   "UNREACHABLE"
44985	Code string `json:"code,omitempty"`
44986
44987	// Data: [Output Only] Metadata about this warning in key: value format.
44988	// For example:
44989	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
44990	Data []*UrlMapsAggregatedListWarningData `json:"data,omitempty"`
44991
44992	// Message: [Output Only] A human-readable description of the warning
44993	// code.
44994	Message string `json:"message,omitempty"`
44995
44996	// ForceSendFields is a list of field names (e.g. "Code") to
44997	// unconditionally include in API requests. By default, fields with
44998	// empty values are omitted from API requests. However, any non-pointer,
44999	// non-interface field appearing in ForceSendFields will be sent to the
45000	// server regardless of whether the field is empty or not. This may be
45001	// used to include empty fields in Patch requests.
45002	ForceSendFields []string `json:"-"`
45003
45004	// NullFields is a list of field names (e.g. "Code") to include in API
45005	// requests with the JSON null value. By default, fields with empty
45006	// values are omitted from API requests. However, any field with an
45007	// empty value appearing in NullFields will be sent to the server as
45008	// null. It is an error if a field in this list has a non-empty value.
45009	// This may be used to include null fields in Patch requests.
45010	NullFields []string `json:"-"`
45011}
45012
45013func (s *UrlMapsAggregatedListWarning) MarshalJSON() ([]byte, error) {
45014	type NoMethod UrlMapsAggregatedListWarning
45015	raw := NoMethod(*s)
45016	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45017}
45018
45019type UrlMapsAggregatedListWarningData struct {
45020	// Key: [Output Only] A key that provides more detail on the warning
45021	// being returned. For example, for warnings where there are no results
45022	// in a list request for a particular zone, this key might be scope and
45023	// the key value might be the zone name. Other examples might be a key
45024	// indicating a deprecated resource and a suggested replacement, or a
45025	// warning about invalid network settings (for example, if an instance
45026	// attempts to perform IP forwarding but is not enabled for IP
45027	// forwarding).
45028	Key string `json:"key,omitempty"`
45029
45030	// Value: [Output Only] A warning data value corresponding to the key.
45031	Value string `json:"value,omitempty"`
45032
45033	// ForceSendFields is a list of field names (e.g. "Key") to
45034	// unconditionally include in API requests. By default, fields with
45035	// empty values are omitted from API requests. However, any non-pointer,
45036	// non-interface field appearing in ForceSendFields will be sent to the
45037	// server regardless of whether the field is empty or not. This may be
45038	// used to include empty fields in Patch requests.
45039	ForceSendFields []string `json:"-"`
45040
45041	// NullFields is a list of field names (e.g. "Key") to include in API
45042	// requests with the JSON null value. By default, fields with empty
45043	// values are omitted from API requests. However, any field with an
45044	// empty value appearing in NullFields will be sent to the server as
45045	// null. It is an error if a field in this list has a non-empty value.
45046	// This may be used to include null fields in Patch requests.
45047	NullFields []string `json:"-"`
45048}
45049
45050func (s *UrlMapsAggregatedListWarningData) MarshalJSON() ([]byte, error) {
45051	type NoMethod UrlMapsAggregatedListWarningData
45052	raw := NoMethod(*s)
45053	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45054}
45055
45056type UrlMapsScopedList struct {
45057	// UrlMaps: A list of UrlMaps contained in this scope.
45058	UrlMaps []*UrlMap `json:"urlMaps,omitempty"`
45059
45060	// Warning: Informational warning which replaces the list of backend
45061	// services when the list is empty.
45062	Warning *UrlMapsScopedListWarning `json:"warning,omitempty"`
45063
45064	// ForceSendFields is a list of field names (e.g. "UrlMaps") to
45065	// unconditionally include in API requests. By default, fields with
45066	// empty values are omitted from API requests. However, any non-pointer,
45067	// non-interface field appearing in ForceSendFields will be sent to the
45068	// server regardless of whether the field is empty or not. This may be
45069	// used to include empty fields in Patch requests.
45070	ForceSendFields []string `json:"-"`
45071
45072	// NullFields is a list of field names (e.g. "UrlMaps") to include in
45073	// API requests with the JSON null value. By default, fields with empty
45074	// values are omitted from API requests. However, any field with an
45075	// empty value appearing in NullFields will be sent to the server as
45076	// null. It is an error if a field in this list has a non-empty value.
45077	// This may be used to include null fields in Patch requests.
45078	NullFields []string `json:"-"`
45079}
45080
45081func (s *UrlMapsScopedList) MarshalJSON() ([]byte, error) {
45082	type NoMethod UrlMapsScopedList
45083	raw := NoMethod(*s)
45084	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45085}
45086
45087// UrlMapsScopedListWarning: Informational warning which replaces the
45088// list of backend services when the list is empty.
45089type UrlMapsScopedListWarning struct {
45090	// Code: [Output Only] A warning code, if applicable. For example,
45091	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
45092	// the response.
45093	//
45094	// Possible values:
45095	//   "CLEANUP_FAILED"
45096	//   "DEPRECATED_RESOURCE_USED"
45097	//   "DEPRECATED_TYPE_USED"
45098	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
45099	//   "EXPERIMENTAL_TYPE_USED"
45100	//   "EXTERNAL_API_WARNING"
45101	//   "FIELD_VALUE_OVERRIDEN"
45102	//   "INJECTED_KERNELS_DEPRECATED"
45103	//   "MISSING_TYPE_DEPENDENCY"
45104	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
45105	//   "NEXT_HOP_CANNOT_IP_FORWARD"
45106	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
45107	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
45108	//   "NEXT_HOP_NOT_RUNNING"
45109	//   "NOT_CRITICAL_ERROR"
45110	//   "NO_RESULTS_ON_PAGE"
45111	//   "REQUIRED_TOS_AGREEMENT"
45112	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
45113	//   "RESOURCE_NOT_DELETED"
45114	//   "SCHEMA_VALIDATION_IGNORED"
45115	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
45116	//   "UNDECLARED_PROPERTIES"
45117	//   "UNREACHABLE"
45118	Code string `json:"code,omitempty"`
45119
45120	// Data: [Output Only] Metadata about this warning in key: value format.
45121	// For example:
45122	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
45123	Data []*UrlMapsScopedListWarningData `json:"data,omitempty"`
45124
45125	// Message: [Output Only] A human-readable description of the warning
45126	// code.
45127	Message string `json:"message,omitempty"`
45128
45129	// ForceSendFields is a list of field names (e.g. "Code") to
45130	// unconditionally include in API requests. By default, fields with
45131	// empty values are omitted from API requests. However, any non-pointer,
45132	// non-interface field appearing in ForceSendFields will be sent to the
45133	// server regardless of whether the field is empty or not. This may be
45134	// used to include empty fields in Patch requests.
45135	ForceSendFields []string `json:"-"`
45136
45137	// NullFields is a list of field names (e.g. "Code") to include in API
45138	// requests with the JSON null value. By default, fields with empty
45139	// values are omitted from API requests. However, any field with an
45140	// empty value appearing in NullFields will be sent to the server as
45141	// null. It is an error if a field in this list has a non-empty value.
45142	// This may be used to include null fields in Patch requests.
45143	NullFields []string `json:"-"`
45144}
45145
45146func (s *UrlMapsScopedListWarning) MarshalJSON() ([]byte, error) {
45147	type NoMethod UrlMapsScopedListWarning
45148	raw := NoMethod(*s)
45149	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45150}
45151
45152type UrlMapsScopedListWarningData struct {
45153	// Key: [Output Only] A key that provides more detail on the warning
45154	// being returned. For example, for warnings where there are no results
45155	// in a list request for a particular zone, this key might be scope and
45156	// the key value might be the zone name. Other examples might be a key
45157	// indicating a deprecated resource and a suggested replacement, or a
45158	// warning about invalid network settings (for example, if an instance
45159	// attempts to perform IP forwarding but is not enabled for IP
45160	// forwarding).
45161	Key string `json:"key,omitempty"`
45162
45163	// Value: [Output Only] A warning data value corresponding to the key.
45164	Value string `json:"value,omitempty"`
45165
45166	// ForceSendFields is a list of field names (e.g. "Key") to
45167	// unconditionally include in API requests. By default, fields with
45168	// empty values are omitted from API requests. However, any non-pointer,
45169	// non-interface field appearing in ForceSendFields will be sent to the
45170	// server regardless of whether the field is empty or not. This may be
45171	// used to include empty fields in Patch requests.
45172	ForceSendFields []string `json:"-"`
45173
45174	// NullFields is a list of field names (e.g. "Key") to include in API
45175	// requests with the JSON null value. By default, fields with empty
45176	// values are omitted from API requests. However, any field with an
45177	// empty value appearing in NullFields will be sent to the server as
45178	// null. It is an error if a field in this list has a non-empty value.
45179	// This may be used to include null fields in Patch requests.
45180	NullFields []string `json:"-"`
45181}
45182
45183func (s *UrlMapsScopedListWarningData) MarshalJSON() ([]byte, error) {
45184	type NoMethod UrlMapsScopedListWarningData
45185	raw := NoMethod(*s)
45186	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45187}
45188
45189type UrlMapsValidateRequest struct {
45190	// Resource: Content of the UrlMap to be validated.
45191	Resource *UrlMap `json:"resource,omitempty"`
45192
45193	// ForceSendFields is a list of field names (e.g. "Resource") to
45194	// unconditionally include in API requests. By default, fields with
45195	// empty values are omitted from API requests. However, any non-pointer,
45196	// non-interface field appearing in ForceSendFields will be sent to the
45197	// server regardless of whether the field is empty or not. This may be
45198	// used to include empty fields in Patch requests.
45199	ForceSendFields []string `json:"-"`
45200
45201	// NullFields is a list of field names (e.g. "Resource") to include in
45202	// API requests with the JSON null value. By default, fields with empty
45203	// values are omitted from API requests. However, any field with an
45204	// empty value appearing in NullFields will be sent to the server as
45205	// null. It is an error if a field in this list has a non-empty value.
45206	// This may be used to include null fields in Patch requests.
45207	NullFields []string `json:"-"`
45208}
45209
45210func (s *UrlMapsValidateRequest) MarshalJSON() ([]byte, error) {
45211	type NoMethod UrlMapsValidateRequest
45212	raw := NoMethod(*s)
45213	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45214}
45215
45216type UrlMapsValidateResponse struct {
45217	Result *UrlMapValidationResult `json:"result,omitempty"`
45218
45219	// ServerResponse contains the HTTP response code and headers from the
45220	// server.
45221	googleapi.ServerResponse `json:"-"`
45222
45223	// ForceSendFields is a list of field names (e.g. "Result") to
45224	// unconditionally include in API requests. By default, fields with
45225	// empty values are omitted from API requests. However, any non-pointer,
45226	// non-interface field appearing in ForceSendFields will be sent to the
45227	// server regardless of whether the field is empty or not. This may be
45228	// used to include empty fields in Patch requests.
45229	ForceSendFields []string `json:"-"`
45230
45231	// NullFields is a list of field names (e.g. "Result") to include in API
45232	// requests with the JSON null value. By default, fields with empty
45233	// values are omitted from API requests. However, any field with an
45234	// empty value appearing in NullFields will be sent to the server as
45235	// null. It is an error if a field in this list has a non-empty value.
45236	// This may be used to include null fields in Patch requests.
45237	NullFields []string `json:"-"`
45238}
45239
45240func (s *UrlMapsValidateResponse) MarshalJSON() ([]byte, error) {
45241	type NoMethod UrlMapsValidateResponse
45242	raw := NoMethod(*s)
45243	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45244}
45245
45246// UrlRewrite: The spec for modifying the path before sending the
45247// request to the matched backend service.
45248type UrlRewrite struct {
45249	// HostRewrite: Prior to forwarding the request to the selected service,
45250	// the request's host header is replaced with contents of
45251	// hostRewrite.
45252	// The value must be between 1 and 255 characters.
45253	HostRewrite string `json:"hostRewrite,omitempty"`
45254
45255	// PathPrefixRewrite: Prior to forwarding the request to the selected
45256	// backend service, the matching portion of the request's path is
45257	// replaced by pathPrefixRewrite.
45258	// The value must be between 1 and 1024 characters.
45259	PathPrefixRewrite string `json:"pathPrefixRewrite,omitempty"`
45260
45261	// ForceSendFields is a list of field names (e.g. "HostRewrite") to
45262	// unconditionally include in API requests. By default, fields with
45263	// empty values are omitted from API requests. However, any non-pointer,
45264	// non-interface field appearing in ForceSendFields will be sent to the
45265	// server regardless of whether the field is empty or not. This may be
45266	// used to include empty fields in Patch requests.
45267	ForceSendFields []string `json:"-"`
45268
45269	// NullFields is a list of field names (e.g. "HostRewrite") to include
45270	// in API requests with the JSON null value. By default, fields with
45271	// empty values are omitted from API requests. However, any field with
45272	// an empty value appearing in NullFields will be sent to the server as
45273	// null. It is an error if a field in this list has a non-empty value.
45274	// This may be used to include null fields in Patch requests.
45275	NullFields []string `json:"-"`
45276}
45277
45278func (s *UrlRewrite) MarshalJSON() ([]byte, error) {
45279	type NoMethod UrlRewrite
45280	raw := NoMethod(*s)
45281	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45282}
45283
45284// UsableSubnetwork: Subnetwork which the current user has
45285// compute.subnetworks.use permission on.
45286type UsableSubnetwork struct {
45287	// IpCidrRange: The range of internal addresses that are owned by this
45288	// subnetwork.
45289	IpCidrRange string `json:"ipCidrRange,omitempty"`
45290
45291	// Network: Network URL.
45292	Network string `json:"network,omitempty"`
45293
45294	// SecondaryIpRanges: Secondary IP ranges.
45295	SecondaryIpRanges []*UsableSubnetworkSecondaryRange `json:"secondaryIpRanges,omitempty"`
45296
45297	// Subnetwork: Subnetwork URL.
45298	Subnetwork string `json:"subnetwork,omitempty"`
45299
45300	// ForceSendFields is a list of field names (e.g. "IpCidrRange") to
45301	// unconditionally include in API requests. By default, fields with
45302	// empty values are omitted from API requests. However, any non-pointer,
45303	// non-interface field appearing in ForceSendFields will be sent to the
45304	// server regardless of whether the field is empty or not. This may be
45305	// used to include empty fields in Patch requests.
45306	ForceSendFields []string `json:"-"`
45307
45308	// NullFields is a list of field names (e.g. "IpCidrRange") to include
45309	// in API requests with the JSON null value. By default, fields with
45310	// empty values are omitted from API requests. However, any field with
45311	// an empty value appearing in NullFields will be sent to the server as
45312	// null. It is an error if a field in this list has a non-empty value.
45313	// This may be used to include null fields in Patch requests.
45314	NullFields []string `json:"-"`
45315}
45316
45317func (s *UsableSubnetwork) MarshalJSON() ([]byte, error) {
45318	type NoMethod UsableSubnetwork
45319	raw := NoMethod(*s)
45320	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45321}
45322
45323// UsableSubnetworkSecondaryRange: Secondary IP range of a usable
45324// subnetwork.
45325type UsableSubnetworkSecondaryRange struct {
45326	// IpCidrRange: The range of IP addresses belonging to this subnetwork
45327	// secondary range.
45328	IpCidrRange string `json:"ipCidrRange,omitempty"`
45329
45330	// RangeName: The name associated with this subnetwork secondary range,
45331	// used when adding an alias IP range to a VM instance. The name must be
45332	// 1-63 characters long, and comply with RFC1035. The name must be
45333	// unique within the subnetwork.
45334	RangeName string `json:"rangeName,omitempty"`
45335
45336	// ForceSendFields is a list of field names (e.g. "IpCidrRange") to
45337	// unconditionally include in API requests. By default, fields with
45338	// empty values are omitted from API requests. However, any non-pointer,
45339	// non-interface field appearing in ForceSendFields will be sent to the
45340	// server regardless of whether the field is empty or not. This may be
45341	// used to include empty fields in Patch requests.
45342	ForceSendFields []string `json:"-"`
45343
45344	// NullFields is a list of field names (e.g. "IpCidrRange") to include
45345	// in API requests with the JSON null value. By default, fields with
45346	// empty values are omitted from API requests. However, any field with
45347	// an empty value appearing in NullFields will be sent to the server as
45348	// null. It is an error if a field in this list has a non-empty value.
45349	// This may be used to include null fields in Patch requests.
45350	NullFields []string `json:"-"`
45351}
45352
45353func (s *UsableSubnetworkSecondaryRange) MarshalJSON() ([]byte, error) {
45354	type NoMethod UsableSubnetworkSecondaryRange
45355	raw := NoMethod(*s)
45356	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45357}
45358
45359type UsableSubnetworksAggregatedList struct {
45360	// Id: [Output Only] The unique identifier for the resource. This
45361	// identifier is defined by the server.
45362	Id string `json:"id,omitempty"`
45363
45364	// Items: [Output] A list of usable subnetwork URLs.
45365	Items []*UsableSubnetwork `json:"items,omitempty"`
45366
45367	// Kind: [Output Only] Type of resource. Always
45368	// compute#usableSubnetworksAggregatedList for aggregated lists of
45369	// usable subnetworks.
45370	Kind string `json:"kind,omitempty"`
45371
45372	// NextPageToken: [Output Only] This token allows you to get the next
45373	// page of results for list requests. If the number of results is larger
45374	// than maxResults, use the nextPageToken as a value for the query
45375	// parameter pageToken in the next list request. Subsequent list
45376	// requests will have their own nextPageToken to continue paging through
45377	// the results.
45378	NextPageToken string `json:"nextPageToken,omitempty"`
45379
45380	// SelfLink: [Output Only] Server-defined URL for this resource.
45381	SelfLink string `json:"selfLink,omitempty"`
45382
45383	// Warning: [Output Only] Informational warning message.
45384	Warning *UsableSubnetworksAggregatedListWarning `json:"warning,omitempty"`
45385
45386	// ServerResponse contains the HTTP response code and headers from the
45387	// server.
45388	googleapi.ServerResponse `json:"-"`
45389
45390	// ForceSendFields is a list of field names (e.g. "Id") to
45391	// unconditionally include in API requests. By default, fields with
45392	// empty values are omitted from API requests. However, any non-pointer,
45393	// non-interface field appearing in ForceSendFields will be sent to the
45394	// server regardless of whether the field is empty or not. This may be
45395	// used to include empty fields in Patch requests.
45396	ForceSendFields []string `json:"-"`
45397
45398	// NullFields is a list of field names (e.g. "Id") to include in API
45399	// requests with the JSON null value. By default, fields with empty
45400	// values are omitted from API requests. However, any field with an
45401	// empty value appearing in NullFields will be sent to the server as
45402	// null. It is an error if a field in this list has a non-empty value.
45403	// This may be used to include null fields in Patch requests.
45404	NullFields []string `json:"-"`
45405}
45406
45407func (s *UsableSubnetworksAggregatedList) MarshalJSON() ([]byte, error) {
45408	type NoMethod UsableSubnetworksAggregatedList
45409	raw := NoMethod(*s)
45410	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45411}
45412
45413// UsableSubnetworksAggregatedListWarning: [Output Only] Informational
45414// warning message.
45415type UsableSubnetworksAggregatedListWarning struct {
45416	// Code: [Output Only] A warning code, if applicable. For example,
45417	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
45418	// the response.
45419	//
45420	// Possible values:
45421	//   "CLEANUP_FAILED"
45422	//   "DEPRECATED_RESOURCE_USED"
45423	//   "DEPRECATED_TYPE_USED"
45424	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
45425	//   "EXPERIMENTAL_TYPE_USED"
45426	//   "EXTERNAL_API_WARNING"
45427	//   "FIELD_VALUE_OVERRIDEN"
45428	//   "INJECTED_KERNELS_DEPRECATED"
45429	//   "MISSING_TYPE_DEPENDENCY"
45430	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
45431	//   "NEXT_HOP_CANNOT_IP_FORWARD"
45432	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
45433	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
45434	//   "NEXT_HOP_NOT_RUNNING"
45435	//   "NOT_CRITICAL_ERROR"
45436	//   "NO_RESULTS_ON_PAGE"
45437	//   "REQUIRED_TOS_AGREEMENT"
45438	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
45439	//   "RESOURCE_NOT_DELETED"
45440	//   "SCHEMA_VALIDATION_IGNORED"
45441	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
45442	//   "UNDECLARED_PROPERTIES"
45443	//   "UNREACHABLE"
45444	Code string `json:"code,omitempty"`
45445
45446	// Data: [Output Only] Metadata about this warning in key: value format.
45447	// For example:
45448	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
45449	Data []*UsableSubnetworksAggregatedListWarningData `json:"data,omitempty"`
45450
45451	// Message: [Output Only] A human-readable description of the warning
45452	// code.
45453	Message string `json:"message,omitempty"`
45454
45455	// ForceSendFields is a list of field names (e.g. "Code") to
45456	// unconditionally include in API requests. By default, fields with
45457	// empty values are omitted from API requests. However, any non-pointer,
45458	// non-interface field appearing in ForceSendFields will be sent to the
45459	// server regardless of whether the field is empty or not. This may be
45460	// used to include empty fields in Patch requests.
45461	ForceSendFields []string `json:"-"`
45462
45463	// NullFields is a list of field names (e.g. "Code") to include in API
45464	// requests with the JSON null value. By default, fields with empty
45465	// values are omitted from API requests. However, any field with an
45466	// empty value appearing in NullFields will be sent to the server as
45467	// null. It is an error if a field in this list has a non-empty value.
45468	// This may be used to include null fields in Patch requests.
45469	NullFields []string `json:"-"`
45470}
45471
45472func (s *UsableSubnetworksAggregatedListWarning) MarshalJSON() ([]byte, error) {
45473	type NoMethod UsableSubnetworksAggregatedListWarning
45474	raw := NoMethod(*s)
45475	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45476}
45477
45478type UsableSubnetworksAggregatedListWarningData struct {
45479	// Key: [Output Only] A key that provides more detail on the warning
45480	// being returned. For example, for warnings where there are no results
45481	// in a list request for a particular zone, this key might be scope and
45482	// the key value might be the zone name. Other examples might be a key
45483	// indicating a deprecated resource and a suggested replacement, or a
45484	// warning about invalid network settings (for example, if an instance
45485	// attempts to perform IP forwarding but is not enabled for IP
45486	// forwarding).
45487	Key string `json:"key,omitempty"`
45488
45489	// Value: [Output Only] A warning data value corresponding to the key.
45490	Value string `json:"value,omitempty"`
45491
45492	// ForceSendFields is a list of field names (e.g. "Key") to
45493	// unconditionally include in API requests. By default, fields with
45494	// empty values are omitted from API requests. However, any non-pointer,
45495	// non-interface field appearing in ForceSendFields will be sent to the
45496	// server regardless of whether the field is empty or not. This may be
45497	// used to include empty fields in Patch requests.
45498	ForceSendFields []string `json:"-"`
45499
45500	// NullFields is a list of field names (e.g. "Key") to include in API
45501	// requests with the JSON null value. By default, fields with empty
45502	// values are omitted from API requests. However, any field with an
45503	// empty value appearing in NullFields will be sent to the server as
45504	// null. It is an error if a field in this list has a non-empty value.
45505	// This may be used to include null fields in Patch requests.
45506	NullFields []string `json:"-"`
45507}
45508
45509func (s *UsableSubnetworksAggregatedListWarningData) MarshalJSON() ([]byte, error) {
45510	type NoMethod UsableSubnetworksAggregatedListWarningData
45511	raw := NoMethod(*s)
45512	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45513}
45514
45515// UsageExportLocation: The location in Cloud Storage and naming method
45516// of the daily usage report. Contains bucket_name and report_name
45517// prefix.
45518type UsageExportLocation struct {
45519	// BucketName: The name of an existing bucket in Cloud Storage where the
45520	// usage report object is stored. The Google Service Account is granted
45521	// write access to this bucket. This can either be the bucket name by
45522	// itself, such as example-bucket, or the bucket name with gs:// or
45523	// https://storage.googleapis.com/ in front of it, such as
45524	// gs://example-bucket.
45525	BucketName string `json:"bucketName,omitempty"`
45526
45527	// ReportNamePrefix: An optional prefix for the name of the usage report
45528	// object stored in bucketName. If not supplied, defaults to usage. The
45529	// report is stored as a CSV file named
45530	// report_name_prefix_gce_YYYYMMDD.csv where YYYYMMDD is the day of the
45531	// usage according to Pacific Time. If you supply a prefix, it should
45532	// conform to Cloud Storage object naming conventions.
45533	ReportNamePrefix string `json:"reportNamePrefix,omitempty"`
45534
45535	// ForceSendFields is a list of field names (e.g. "BucketName") to
45536	// unconditionally include in API requests. By default, fields with
45537	// empty values are omitted from API requests. However, any non-pointer,
45538	// non-interface field appearing in ForceSendFields will be sent to the
45539	// server regardless of whether the field is empty or not. This may be
45540	// used to include empty fields in Patch requests.
45541	ForceSendFields []string `json:"-"`
45542
45543	// NullFields is a list of field names (e.g. "BucketName") to include in
45544	// API requests with the JSON null value. By default, fields with empty
45545	// values are omitted from API requests. However, any field with an
45546	// empty value appearing in NullFields will be sent to the server as
45547	// null. It is an error if a field in this list has a non-empty value.
45548	// This may be used to include null fields in Patch requests.
45549	NullFields []string `json:"-"`
45550}
45551
45552func (s *UsageExportLocation) MarshalJSON() ([]byte, error) {
45553	type NoMethod UsageExportLocation
45554	raw := NoMethod(*s)
45555	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45556}
45557
45558// VmEndpointNatMappings: Contain information of Nat mapping for a VM
45559// endpoint (i.e., NIC).
45560type VmEndpointNatMappings struct {
45561	// InstanceName: Name of the VM instance which the endpoint belongs to
45562	InstanceName string `json:"instanceName,omitempty"`
45563
45564	InterfaceNatMappings []*VmEndpointNatMappingsInterfaceNatMappings `json:"interfaceNatMappings,omitempty"`
45565
45566	// ForceSendFields is a list of field names (e.g. "InstanceName") to
45567	// unconditionally include in API requests. By default, fields with
45568	// empty values are omitted from API requests. However, any non-pointer,
45569	// non-interface field appearing in ForceSendFields will be sent to the
45570	// server regardless of whether the field is empty or not. This may be
45571	// used to include empty fields in Patch requests.
45572	ForceSendFields []string `json:"-"`
45573
45574	// NullFields is a list of field names (e.g. "InstanceName") to include
45575	// in API requests with the JSON null value. By default, fields with
45576	// empty values are omitted from API requests. However, any field with
45577	// an empty value appearing in NullFields will be sent to the server as
45578	// null. It is an error if a field in this list has a non-empty value.
45579	// This may be used to include null fields in Patch requests.
45580	NullFields []string `json:"-"`
45581}
45582
45583func (s *VmEndpointNatMappings) MarshalJSON() ([]byte, error) {
45584	type NoMethod VmEndpointNatMappings
45585	raw := NoMethod(*s)
45586	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45587}
45588
45589// VmEndpointNatMappingsInterfaceNatMappings: Contain information of Nat
45590// mapping for an interface of this endpoint.
45591type VmEndpointNatMappingsInterfaceNatMappings struct {
45592	// DrainNatIpPortRanges: List of all drain IP:port-range mappings
45593	// assigned to this interface. These ranges are inclusive, that is, both
45594	// the first and the last ports can be used for NAT. Example:
45595	// ["2.2.2.2:12345-12355", "1.1.1.1:2234-2234"].
45596	DrainNatIpPortRanges []string `json:"drainNatIpPortRanges,omitempty"`
45597
45598	// NatIpPortRanges: A list of all IP:port-range mappings assigned to
45599	// this interface. These ranges are inclusive, that is, both the first
45600	// and the last ports can be used for NAT. Example:
45601	// ["2.2.2.2:12345-12355", "1.1.1.1:2234-2234"].
45602	NatIpPortRanges []string `json:"natIpPortRanges,omitempty"`
45603
45604	// NumTotalDrainNatPorts: Total number of drain ports across all NAT IPs
45605	// allocated to this interface. It equals to the aggregated port number
45606	// in the field drain_nat_ip_port_ranges.
45607	NumTotalDrainNatPorts int64 `json:"numTotalDrainNatPorts,omitempty"`
45608
45609	// NumTotalNatPorts: Total number of ports across all NAT IPs allocated
45610	// to this interface. It equals to the aggregated port number in the
45611	// field nat_ip_port_ranges.
45612	NumTotalNatPorts int64 `json:"numTotalNatPorts,omitempty"`
45613
45614	// SourceAliasIpRange: Alias IP range for this interface endpoint. It
45615	// will be a private (RFC 1918) IP range. Examples: "10.33.4.55/32", or
45616	// "192.168.5.0/24".
45617	SourceAliasIpRange string `json:"sourceAliasIpRange,omitempty"`
45618
45619	// SourceVirtualIp: Primary IP of the VM for this NIC.
45620	SourceVirtualIp string `json:"sourceVirtualIp,omitempty"`
45621
45622	// ForceSendFields is a list of field names (e.g.
45623	// "DrainNatIpPortRanges") to unconditionally include in API requests.
45624	// By default, fields with empty values are omitted from API requests.
45625	// However, any non-pointer, non-interface field appearing in
45626	// ForceSendFields will be sent to the server regardless of whether the
45627	// field is empty or not. This may be used to include empty fields in
45628	// Patch requests.
45629	ForceSendFields []string `json:"-"`
45630
45631	// NullFields is a list of field names (e.g. "DrainNatIpPortRanges") to
45632	// include in API requests with the JSON null value. By default, fields
45633	// with empty values are omitted from API requests. However, any field
45634	// with an empty value appearing in NullFields will be sent to the
45635	// server as null. It is an error if a field in this list has a
45636	// non-empty value. This may be used to include null fields in Patch
45637	// requests.
45638	NullFields []string `json:"-"`
45639}
45640
45641func (s *VmEndpointNatMappingsInterfaceNatMappings) MarshalJSON() ([]byte, error) {
45642	type NoMethod VmEndpointNatMappingsInterfaceNatMappings
45643	raw := NoMethod(*s)
45644	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45645}
45646
45647// VmEndpointNatMappingsList: Contains a list of VmEndpointNatMappings.
45648type VmEndpointNatMappingsList struct {
45649	// Id: [Output Only] The unique identifier for the resource. This
45650	// identifier is defined by the server.
45651	Id string `json:"id,omitempty"`
45652
45653	// Kind: [Output Only] Type of resource. Always
45654	// compute#vmEndpointNatMappingsList for lists of Nat mappings of VM
45655	// endpoints.
45656	Kind string `json:"kind,omitempty"`
45657
45658	// NextPageToken: [Output Only] This token allows you to get the next
45659	// page of results for list requests. If the number of results is larger
45660	// than maxResults, use the nextPageToken as a value for the query
45661	// parameter pageToken in the next list request. Subsequent list
45662	// requests will have their own nextPageToken to continue paging through
45663	// the results.
45664	NextPageToken string `json:"nextPageToken,omitempty"`
45665
45666	// Result: [Output Only] A list of Nat mapping information of VM
45667	// endpoints.
45668	Result []*VmEndpointNatMappings `json:"result,omitempty"`
45669
45670	// SelfLink: [Output Only] Server-defined URL for this resource.
45671	SelfLink string `json:"selfLink,omitempty"`
45672
45673	// Warning: [Output Only] Informational warning message.
45674	Warning *VmEndpointNatMappingsListWarning `json:"warning,omitempty"`
45675
45676	// ServerResponse contains the HTTP response code and headers from the
45677	// server.
45678	googleapi.ServerResponse `json:"-"`
45679
45680	// ForceSendFields is a list of field names (e.g. "Id") to
45681	// unconditionally include in API requests. By default, fields with
45682	// empty values are omitted from API requests. However, any non-pointer,
45683	// non-interface field appearing in ForceSendFields will be sent to the
45684	// server regardless of whether the field is empty or not. This may be
45685	// used to include empty fields in Patch requests.
45686	ForceSendFields []string `json:"-"`
45687
45688	// NullFields is a list of field names (e.g. "Id") to include in API
45689	// requests with the JSON null value. By default, fields with empty
45690	// values are omitted from API requests. However, any field with an
45691	// empty value appearing in NullFields will be sent to the server as
45692	// null. It is an error if a field in this list has a non-empty value.
45693	// This may be used to include null fields in Patch requests.
45694	NullFields []string `json:"-"`
45695}
45696
45697func (s *VmEndpointNatMappingsList) MarshalJSON() ([]byte, error) {
45698	type NoMethod VmEndpointNatMappingsList
45699	raw := NoMethod(*s)
45700	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45701}
45702
45703// VmEndpointNatMappingsListWarning: [Output Only] Informational warning
45704// message.
45705type VmEndpointNatMappingsListWarning struct {
45706	// Code: [Output Only] A warning code, if applicable. For example,
45707	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
45708	// the response.
45709	//
45710	// Possible values:
45711	//   "CLEANUP_FAILED"
45712	//   "DEPRECATED_RESOURCE_USED"
45713	//   "DEPRECATED_TYPE_USED"
45714	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
45715	//   "EXPERIMENTAL_TYPE_USED"
45716	//   "EXTERNAL_API_WARNING"
45717	//   "FIELD_VALUE_OVERRIDEN"
45718	//   "INJECTED_KERNELS_DEPRECATED"
45719	//   "MISSING_TYPE_DEPENDENCY"
45720	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
45721	//   "NEXT_HOP_CANNOT_IP_FORWARD"
45722	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
45723	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
45724	//   "NEXT_HOP_NOT_RUNNING"
45725	//   "NOT_CRITICAL_ERROR"
45726	//   "NO_RESULTS_ON_PAGE"
45727	//   "REQUIRED_TOS_AGREEMENT"
45728	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
45729	//   "RESOURCE_NOT_DELETED"
45730	//   "SCHEMA_VALIDATION_IGNORED"
45731	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
45732	//   "UNDECLARED_PROPERTIES"
45733	//   "UNREACHABLE"
45734	Code string `json:"code,omitempty"`
45735
45736	// Data: [Output Only] Metadata about this warning in key: value format.
45737	// For example:
45738	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
45739	Data []*VmEndpointNatMappingsListWarningData `json:"data,omitempty"`
45740
45741	// Message: [Output Only] A human-readable description of the warning
45742	// code.
45743	Message string `json:"message,omitempty"`
45744
45745	// ForceSendFields is a list of field names (e.g. "Code") to
45746	// unconditionally include in API requests. By default, fields with
45747	// empty values are omitted from API requests. However, any non-pointer,
45748	// non-interface field appearing in ForceSendFields will be sent to the
45749	// server regardless of whether the field is empty or not. This may be
45750	// used to include empty fields in Patch requests.
45751	ForceSendFields []string `json:"-"`
45752
45753	// NullFields is a list of field names (e.g. "Code") to include in API
45754	// requests with the JSON null value. By default, fields with empty
45755	// values are omitted from API requests. However, any field with an
45756	// empty value appearing in NullFields will be sent to the server as
45757	// null. It is an error if a field in this list has a non-empty value.
45758	// This may be used to include null fields in Patch requests.
45759	NullFields []string `json:"-"`
45760}
45761
45762func (s *VmEndpointNatMappingsListWarning) MarshalJSON() ([]byte, error) {
45763	type NoMethod VmEndpointNatMappingsListWarning
45764	raw := NoMethod(*s)
45765	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45766}
45767
45768type VmEndpointNatMappingsListWarningData struct {
45769	// Key: [Output Only] A key that provides more detail on the warning
45770	// being returned. For example, for warnings where there are no results
45771	// in a list request for a particular zone, this key might be scope and
45772	// the key value might be the zone name. Other examples might be a key
45773	// indicating a deprecated resource and a suggested replacement, or a
45774	// warning about invalid network settings (for example, if an instance
45775	// attempts to perform IP forwarding but is not enabled for IP
45776	// forwarding).
45777	Key string `json:"key,omitempty"`
45778
45779	// Value: [Output Only] A warning data value corresponding to the key.
45780	Value string `json:"value,omitempty"`
45781
45782	// ForceSendFields is a list of field names (e.g. "Key") to
45783	// unconditionally include in API requests. By default, fields with
45784	// empty values are omitted from API requests. However, any non-pointer,
45785	// non-interface field appearing in ForceSendFields will be sent to the
45786	// server regardless of whether the field is empty or not. This may be
45787	// used to include empty fields in Patch requests.
45788	ForceSendFields []string `json:"-"`
45789
45790	// NullFields is a list of field names (e.g. "Key") to include in API
45791	// requests with the JSON null value. By default, fields with empty
45792	// values are omitted from API requests. However, any field with an
45793	// empty value appearing in NullFields will be sent to the server as
45794	// null. It is an error if a field in this list has a non-empty value.
45795	// This may be used to include null fields in Patch requests.
45796	NullFields []string `json:"-"`
45797}
45798
45799func (s *VmEndpointNatMappingsListWarningData) MarshalJSON() ([]byte, error) {
45800	type NoMethod VmEndpointNatMappingsListWarningData
45801	raw := NoMethod(*s)
45802	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45803}
45804
45805// VpnGateway: Represents a VPN gateway resource.
45806type VpnGateway struct {
45807	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
45808	// format.
45809	CreationTimestamp string `json:"creationTimestamp,omitempty"`
45810
45811	// Description: An optional description of this resource. Provide this
45812	// property when you create the resource.
45813	Description string `json:"description,omitempty"`
45814
45815	// Id: [Output Only] The unique identifier for the resource. This
45816	// identifier is defined by the server.
45817	Id uint64 `json:"id,omitempty,string"`
45818
45819	// Kind: [Output Only] Type of resource. Always compute#vpnGateway for
45820	// VPN gateways.
45821	Kind string `json:"kind,omitempty"`
45822
45823	// LabelFingerprint: A fingerprint for the labels being applied to this
45824	// VpnGateway, which is essentially a hash of the labels set used for
45825	// optimistic locking. The fingerprint is initially generated by Compute
45826	// Engine and changes after every request to modify or update labels.
45827	// You must always provide an up-to-date fingerprint hash in order to
45828	// update or change labels, otherwise the request will fail with error
45829	// 412 conditionNotMet.
45830	//
45831	// To see the latest fingerprint, make a get() request to retrieve an
45832	// VpnGateway.
45833	LabelFingerprint string `json:"labelFingerprint,omitempty"`
45834
45835	// Labels: Labels to apply to this VpnGateway resource. These can be
45836	// later modified by the setLabels method. Each label key/value must
45837	// comply with RFC1035. Label values may be empty.
45838	Labels map[string]string `json:"labels,omitempty"`
45839
45840	// Name: Name of the resource. Provided by the client when the resource
45841	// is created. The name must be 1-63 characters long, and comply with
45842	// RFC1035. Specifically, the name must be 1-63 characters long and
45843	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
45844	// the first character must be a lowercase letter, and all following
45845	// characters must be a dash, lowercase letter, or digit, except the
45846	// last character, which cannot be a dash.
45847	Name string `json:"name,omitempty"`
45848
45849	// Network: URL of the network to which this VPN gateway is attached.
45850	// Provided by the client when the VPN gateway is created.
45851	Network string `json:"network,omitempty"`
45852
45853	// Region: [Output Only] URL of the region where the VPN gateway
45854	// resides.
45855	Region string `json:"region,omitempty"`
45856
45857	// SelfLink: [Output Only] Server-defined URL for the resource.
45858	SelfLink string `json:"selfLink,omitempty"`
45859
45860	// VpnInterfaces: [Output Only] A list of interfaces on this VPN
45861	// gateway.
45862	VpnInterfaces []*VpnGatewayVpnGatewayInterface `json:"vpnInterfaces,omitempty"`
45863
45864	// ServerResponse contains the HTTP response code and headers from the
45865	// server.
45866	googleapi.ServerResponse `json:"-"`
45867
45868	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
45869	// to unconditionally include in API requests. By default, fields with
45870	// empty values are omitted from API requests. However, any non-pointer,
45871	// non-interface field appearing in ForceSendFields will be sent to the
45872	// server regardless of whether the field is empty or not. This may be
45873	// used to include empty fields in Patch requests.
45874	ForceSendFields []string `json:"-"`
45875
45876	// NullFields is a list of field names (e.g. "CreationTimestamp") to
45877	// include in API requests with the JSON null value. By default, fields
45878	// with empty values are omitted from API requests. However, any field
45879	// with an empty value appearing in NullFields will be sent to the
45880	// server as null. It is an error if a field in this list has a
45881	// non-empty value. This may be used to include null fields in Patch
45882	// requests.
45883	NullFields []string `json:"-"`
45884}
45885
45886func (s *VpnGateway) MarshalJSON() ([]byte, error) {
45887	type NoMethod VpnGateway
45888	raw := NoMethod(*s)
45889	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45890}
45891
45892type VpnGatewayAggregatedList struct {
45893	// Id: [Output Only] Unique identifier for the resource; defined by the
45894	// server.
45895	Id string `json:"id,omitempty"`
45896
45897	// Items: A list of VpnGateway resources.
45898	Items map[string]VpnGatewaysScopedList `json:"items,omitempty"`
45899
45900	// Kind: [Output Only] Type of resource. Always compute#vpnGateway for
45901	// VPN gateways.
45902	Kind string `json:"kind,omitempty"`
45903
45904	// NextPageToken: [Output Only] This token allows you to get the next
45905	// page of results for list requests. If the number of results is larger
45906	// than maxResults, use the nextPageToken as a value for the query
45907	// parameter pageToken in the next list request. Subsequent list
45908	// requests will have their own nextPageToken to continue paging through
45909	// the results.
45910	NextPageToken string `json:"nextPageToken,omitempty"`
45911
45912	// SelfLink: [Output Only] Server-defined URL for this resource.
45913	SelfLink string `json:"selfLink,omitempty"`
45914
45915	// Warning: [Output Only] Informational warning message.
45916	Warning *VpnGatewayAggregatedListWarning `json:"warning,omitempty"`
45917
45918	// ServerResponse contains the HTTP response code and headers from the
45919	// server.
45920	googleapi.ServerResponse `json:"-"`
45921
45922	// ForceSendFields is a list of field names (e.g. "Id") 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. "Id") to include in API
45931	// requests with the JSON null value. By default, fields with empty
45932	// values are omitted from API requests. However, any field with an
45933	// 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 *VpnGatewayAggregatedList) MarshalJSON() ([]byte, error) {
45940	type NoMethod VpnGatewayAggregatedList
45941	raw := NoMethod(*s)
45942	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45943}
45944
45945// VpnGatewayAggregatedListWarning: [Output Only] Informational warning
45946// message.
45947type VpnGatewayAggregatedListWarning struct {
45948	// Code: [Output Only] A warning code, if applicable. For example,
45949	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
45950	// the response.
45951	//
45952	// Possible values:
45953	//   "CLEANUP_FAILED"
45954	//   "DEPRECATED_RESOURCE_USED"
45955	//   "DEPRECATED_TYPE_USED"
45956	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
45957	//   "EXPERIMENTAL_TYPE_USED"
45958	//   "EXTERNAL_API_WARNING"
45959	//   "FIELD_VALUE_OVERRIDEN"
45960	//   "INJECTED_KERNELS_DEPRECATED"
45961	//   "MISSING_TYPE_DEPENDENCY"
45962	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
45963	//   "NEXT_HOP_CANNOT_IP_FORWARD"
45964	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
45965	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
45966	//   "NEXT_HOP_NOT_RUNNING"
45967	//   "NOT_CRITICAL_ERROR"
45968	//   "NO_RESULTS_ON_PAGE"
45969	//   "REQUIRED_TOS_AGREEMENT"
45970	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
45971	//   "RESOURCE_NOT_DELETED"
45972	//   "SCHEMA_VALIDATION_IGNORED"
45973	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
45974	//   "UNDECLARED_PROPERTIES"
45975	//   "UNREACHABLE"
45976	Code string `json:"code,omitempty"`
45977
45978	// Data: [Output Only] Metadata about this warning in key: value format.
45979	// For example:
45980	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
45981	Data []*VpnGatewayAggregatedListWarningData `json:"data,omitempty"`
45982
45983	// Message: [Output Only] A human-readable description of the warning
45984	// code.
45985	Message string `json:"message,omitempty"`
45986
45987	// ForceSendFields is a list of field names (e.g. "Code") to
45988	// unconditionally include in API requests. By default, fields with
45989	// empty values are omitted from API requests. However, any non-pointer,
45990	// non-interface field appearing in ForceSendFields will be sent to the
45991	// server regardless of whether the field is empty or not. This may be
45992	// used to include empty fields in Patch requests.
45993	ForceSendFields []string `json:"-"`
45994
45995	// NullFields is a list of field names (e.g. "Code") to include in API
45996	// requests with the JSON null value. By default, fields with empty
45997	// values are omitted from API requests. However, any field with an
45998	// empty value appearing in NullFields will be sent to the server as
45999	// null. It is an error if a field in this list has a non-empty value.
46000	// This may be used to include null fields in Patch requests.
46001	NullFields []string `json:"-"`
46002}
46003
46004func (s *VpnGatewayAggregatedListWarning) MarshalJSON() ([]byte, error) {
46005	type NoMethod VpnGatewayAggregatedListWarning
46006	raw := NoMethod(*s)
46007	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46008}
46009
46010type VpnGatewayAggregatedListWarningData struct {
46011	// Key: [Output Only] A key that provides more detail on the warning
46012	// being returned. For example, for warnings where there are no results
46013	// in a list request for a particular zone, this key might be scope and
46014	// the key value might be the zone name. Other examples might be a key
46015	// indicating a deprecated resource and a suggested replacement, or a
46016	// warning about invalid network settings (for example, if an instance
46017	// attempts to perform IP forwarding but is not enabled for IP
46018	// forwarding).
46019	Key string `json:"key,omitempty"`
46020
46021	// Value: [Output Only] A warning data value corresponding to the key.
46022	Value string `json:"value,omitempty"`
46023
46024	// ForceSendFields is a list of field names (e.g. "Key") to
46025	// unconditionally include in API requests. By default, fields with
46026	// empty values are omitted from API requests. However, any non-pointer,
46027	// non-interface field appearing in ForceSendFields will be sent to the
46028	// server regardless of whether the field is empty or not. This may be
46029	// used to include empty fields in Patch requests.
46030	ForceSendFields []string `json:"-"`
46031
46032	// NullFields is a list of field names (e.g. "Key") to include in API
46033	// requests with the JSON null value. By default, fields with empty
46034	// values are omitted from API requests. However, any field with an
46035	// empty value appearing in NullFields will be sent to the server as
46036	// null. It is an error if a field in this list has a non-empty value.
46037	// This may be used to include null fields in Patch requests.
46038	NullFields []string `json:"-"`
46039}
46040
46041func (s *VpnGatewayAggregatedListWarningData) MarshalJSON() ([]byte, error) {
46042	type NoMethod VpnGatewayAggregatedListWarningData
46043	raw := NoMethod(*s)
46044	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46045}
46046
46047// VpnGatewayList: Contains a list of VpnGateway resources.
46048type VpnGatewayList struct {
46049	// Id: [Output Only] Unique identifier for the resource; defined by the
46050	// server.
46051	Id string `json:"id,omitempty"`
46052
46053	// Items: A list of VpnGateway resources.
46054	Items []*VpnGateway `json:"items,omitempty"`
46055
46056	// Kind: [Output Only] Type of resource. Always compute#vpnGateway for
46057	// VPN gateways.
46058	Kind string `json:"kind,omitempty"`
46059
46060	// NextPageToken: [Output Only] This token allows you to get the next
46061	// page of results for list requests. If the number of results is larger
46062	// than maxResults, use the nextPageToken as a value for the query
46063	// parameter pageToken in the next list request. Subsequent list
46064	// requests will have their own nextPageToken to continue paging through
46065	// the results.
46066	NextPageToken string `json:"nextPageToken,omitempty"`
46067
46068	// SelfLink: [Output Only] Server-defined URL for this resource.
46069	SelfLink string `json:"selfLink,omitempty"`
46070
46071	// Warning: [Output Only] Informational warning message.
46072	Warning *VpnGatewayListWarning `json:"warning,omitempty"`
46073
46074	// ServerResponse contains the HTTP response code and headers from the
46075	// server.
46076	googleapi.ServerResponse `json:"-"`
46077
46078	// ForceSendFields is a list of field names (e.g. "Id") to
46079	// unconditionally include in API requests. By default, fields with
46080	// empty values are omitted from API requests. However, any non-pointer,
46081	// non-interface field appearing in ForceSendFields will be sent to the
46082	// server regardless of whether the field is empty or not. This may be
46083	// used to include empty fields in Patch requests.
46084	ForceSendFields []string `json:"-"`
46085
46086	// NullFields is a list of field names (e.g. "Id") to include in API
46087	// requests with the JSON null value. By default, fields with empty
46088	// values are omitted from API requests. However, any field with an
46089	// empty value appearing in NullFields will be sent to the server as
46090	// null. It is an error if a field in this list has a non-empty value.
46091	// This may be used to include null fields in Patch requests.
46092	NullFields []string `json:"-"`
46093}
46094
46095func (s *VpnGatewayList) MarshalJSON() ([]byte, error) {
46096	type NoMethod VpnGatewayList
46097	raw := NoMethod(*s)
46098	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46099}
46100
46101// VpnGatewayListWarning: [Output Only] Informational warning message.
46102type VpnGatewayListWarning struct {
46103	// Code: [Output Only] A warning code, if applicable. For example,
46104	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
46105	// the response.
46106	//
46107	// Possible values:
46108	//   "CLEANUP_FAILED"
46109	//   "DEPRECATED_RESOURCE_USED"
46110	//   "DEPRECATED_TYPE_USED"
46111	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
46112	//   "EXPERIMENTAL_TYPE_USED"
46113	//   "EXTERNAL_API_WARNING"
46114	//   "FIELD_VALUE_OVERRIDEN"
46115	//   "INJECTED_KERNELS_DEPRECATED"
46116	//   "MISSING_TYPE_DEPENDENCY"
46117	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
46118	//   "NEXT_HOP_CANNOT_IP_FORWARD"
46119	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
46120	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
46121	//   "NEXT_HOP_NOT_RUNNING"
46122	//   "NOT_CRITICAL_ERROR"
46123	//   "NO_RESULTS_ON_PAGE"
46124	//   "REQUIRED_TOS_AGREEMENT"
46125	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
46126	//   "RESOURCE_NOT_DELETED"
46127	//   "SCHEMA_VALIDATION_IGNORED"
46128	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
46129	//   "UNDECLARED_PROPERTIES"
46130	//   "UNREACHABLE"
46131	Code string `json:"code,omitempty"`
46132
46133	// Data: [Output Only] Metadata about this warning in key: value format.
46134	// For example:
46135	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
46136	Data []*VpnGatewayListWarningData `json:"data,omitempty"`
46137
46138	// Message: [Output Only] A human-readable description of the warning
46139	// code.
46140	Message string `json:"message,omitempty"`
46141
46142	// ForceSendFields is a list of field names (e.g. "Code") to
46143	// unconditionally include in API requests. By default, fields with
46144	// empty values are omitted from API requests. However, any non-pointer,
46145	// non-interface field appearing in ForceSendFields will be sent to the
46146	// server regardless of whether the field is empty or not. This may be
46147	// used to include empty fields in Patch requests.
46148	ForceSendFields []string `json:"-"`
46149
46150	// NullFields is a list of field names (e.g. "Code") to include in API
46151	// requests with the JSON null value. By default, fields with empty
46152	// values are omitted from API requests. However, any field with an
46153	// empty value appearing in NullFields will be sent to the server as
46154	// null. It is an error if a field in this list has a non-empty value.
46155	// This may be used to include null fields in Patch requests.
46156	NullFields []string `json:"-"`
46157}
46158
46159func (s *VpnGatewayListWarning) MarshalJSON() ([]byte, error) {
46160	type NoMethod VpnGatewayListWarning
46161	raw := NoMethod(*s)
46162	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46163}
46164
46165type VpnGatewayListWarningData struct {
46166	// Key: [Output Only] A key that provides more detail on the warning
46167	// being returned. For example, for warnings where there are no results
46168	// in a list request for a particular zone, this key might be scope and
46169	// the key value might be the zone name. Other examples might be a key
46170	// indicating a deprecated resource and a suggested replacement, or a
46171	// warning about invalid network settings (for example, if an instance
46172	// attempts to perform IP forwarding but is not enabled for IP
46173	// forwarding).
46174	Key string `json:"key,omitempty"`
46175
46176	// Value: [Output Only] A warning data value corresponding to the key.
46177	Value string `json:"value,omitempty"`
46178
46179	// ForceSendFields is a list of field names (e.g. "Key") to
46180	// unconditionally include in API requests. By default, fields with
46181	// empty values are omitted from API requests. However, any non-pointer,
46182	// non-interface field appearing in ForceSendFields will be sent to the
46183	// server regardless of whether the field is empty or not. This may be
46184	// used to include empty fields in Patch requests.
46185	ForceSendFields []string `json:"-"`
46186
46187	// NullFields is a list of field names (e.g. "Key") to include in API
46188	// requests with the JSON null value. By default, fields with empty
46189	// values are omitted from API requests. However, any field with an
46190	// empty value appearing in NullFields will be sent to the server as
46191	// null. It is an error if a field in this list has a non-empty value.
46192	// This may be used to include null fields in Patch requests.
46193	NullFields []string `json:"-"`
46194}
46195
46196func (s *VpnGatewayListWarningData) MarshalJSON() ([]byte, error) {
46197	type NoMethod VpnGatewayListWarningData
46198	raw := NoMethod(*s)
46199	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46200}
46201
46202type VpnGatewayStatus struct {
46203	// VpnConnections: List of VPN connection for this VpnGateway.
46204	VpnConnections []*VpnGatewayStatusVpnConnection `json:"vpnConnections,omitempty"`
46205
46206	// ForceSendFields is a list of field names (e.g. "VpnConnections") to
46207	// unconditionally include in API requests. By default, fields with
46208	// empty values are omitted from API requests. However, any non-pointer,
46209	// non-interface field appearing in ForceSendFields will be sent to the
46210	// server regardless of whether the field is empty or not. This may be
46211	// used to include empty fields in Patch requests.
46212	ForceSendFields []string `json:"-"`
46213
46214	// NullFields is a list of field names (e.g. "VpnConnections") to
46215	// include in API requests with the JSON null value. By default, fields
46216	// with empty values are omitted from API requests. However, any field
46217	// with an empty value appearing in NullFields will be sent to the
46218	// server as null. It is an error if a field in this list has a
46219	// non-empty value. This may be used to include null fields in Patch
46220	// requests.
46221	NullFields []string `json:"-"`
46222}
46223
46224func (s *VpnGatewayStatus) MarshalJSON() ([]byte, error) {
46225	type NoMethod VpnGatewayStatus
46226	raw := NoMethod(*s)
46227	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46228}
46229
46230// VpnGatewayStatusHighAvailabilityRequirementState: Describes the high
46231// availability requirement state for the VPN connection between this
46232// Cloud VPN gateway and a peer gateway.
46233type VpnGatewayStatusHighAvailabilityRequirementState struct {
46234	// State: Indicates the high availability requirement state for the VPN
46235	// connection. Valid values are CONNECTION_REDUNDANCY_MET,
46236	// CONNECTION_REDUNDANCY_NOT_MET.
46237	//
46238	// Possible values:
46239	//   "CONNECTION_REDUNDANCY_MET"
46240	//   "CONNECTION_REDUNDANCY_NOT_MET"
46241	State string `json:"state,omitempty"`
46242
46243	// UnsatisfiedReason: Indicates the reason why the VPN connection does
46244	// not meet the high availability redundancy criteria/requirement. Valid
46245	// values is INCOMPLETE_TUNNELS_COVERAGE.
46246	//
46247	// Possible values:
46248	//   "INCOMPLETE_TUNNELS_COVERAGE"
46249	UnsatisfiedReason string `json:"unsatisfiedReason,omitempty"`
46250
46251	// ForceSendFields is a list of field names (e.g. "State") to
46252	// unconditionally include in API requests. By default, fields with
46253	// empty values are omitted from API requests. However, any non-pointer,
46254	// non-interface field appearing in ForceSendFields will be sent to the
46255	// server regardless of whether the field is empty or not. This may be
46256	// used to include empty fields in Patch requests.
46257	ForceSendFields []string `json:"-"`
46258
46259	// NullFields is a list of field names (e.g. "State") to include in API
46260	// requests with the JSON null value. By default, fields with empty
46261	// values are omitted from API requests. However, any field with an
46262	// empty value appearing in NullFields will be sent to the server as
46263	// null. It is an error if a field in this list has a non-empty value.
46264	// This may be used to include null fields in Patch requests.
46265	NullFields []string `json:"-"`
46266}
46267
46268func (s *VpnGatewayStatusHighAvailabilityRequirementState) MarshalJSON() ([]byte, error) {
46269	type NoMethod VpnGatewayStatusHighAvailabilityRequirementState
46270	raw := NoMethod(*s)
46271	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46272}
46273
46274// VpnGatewayStatusTunnel: Contains some information about a VPN tunnel.
46275type VpnGatewayStatusTunnel struct {
46276	// LocalGatewayInterface: The VPN gateway interface this VPN tunnel is
46277	// associated with.
46278	LocalGatewayInterface int64 `json:"localGatewayInterface,omitempty"`
46279
46280	// PeerGatewayInterface: The peer gateway interface this VPN tunnel is
46281	// connected to, the peer gateway could either be an external VPN
46282	// gateway or GCP VPN gateway.
46283	PeerGatewayInterface int64 `json:"peerGatewayInterface,omitempty"`
46284
46285	// TunnelUrl: URL reference to the VPN tunnel.
46286	TunnelUrl string `json:"tunnelUrl,omitempty"`
46287
46288	// ForceSendFields is a list of field names (e.g.
46289	// "LocalGatewayInterface") to unconditionally include in API requests.
46290	// By default, fields with empty values are omitted from API requests.
46291	// However, any non-pointer, non-interface field appearing in
46292	// ForceSendFields will be sent to the server regardless of whether the
46293	// field is empty or not. This may be used to include empty fields in
46294	// Patch requests.
46295	ForceSendFields []string `json:"-"`
46296
46297	// NullFields is a list of field names (e.g. "LocalGatewayInterface") to
46298	// include in API requests with the JSON null value. By default, fields
46299	// with empty values are omitted from API requests. However, any field
46300	// with an empty value appearing in NullFields will be sent to the
46301	// server as null. It is an error if a field in this list has a
46302	// non-empty value. This may be used to include null fields in Patch
46303	// requests.
46304	NullFields []string `json:"-"`
46305}
46306
46307func (s *VpnGatewayStatusTunnel) MarshalJSON() ([]byte, error) {
46308	type NoMethod VpnGatewayStatusTunnel
46309	raw := NoMethod(*s)
46310	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46311}
46312
46313// VpnGatewayStatusVpnConnection: A VPN connection contains all VPN
46314// tunnels connected from this VpnGateway to the same peer gateway. The
46315// peer gateway could either be a external VPN gateway or GCP VPN
46316// gateway.
46317type VpnGatewayStatusVpnConnection struct {
46318	// PeerExternalGateway: URL reference to the peer external VPN gateways
46319	// to which the VPN tunnels in this VPN connection are connected. This
46320	// field is mutually exclusive with peer_gcp_gateway.
46321	PeerExternalGateway string `json:"peerExternalGateway,omitempty"`
46322
46323	// PeerGcpGateway: URL reference to the peer side VPN gateways to which
46324	// the VPN tunnels in this VPN connection are connected. This field is
46325	// mutually exclusive with peer_gcp_gateway.
46326	PeerGcpGateway string `json:"peerGcpGateway,omitempty"`
46327
46328	// State: HighAvailabilityRequirementState for the VPN connection.
46329	State *VpnGatewayStatusHighAvailabilityRequirementState `json:"state,omitempty"`
46330
46331	// Tunnels: List of VPN tunnels that are in this VPN connection.
46332	Tunnels []*VpnGatewayStatusTunnel `json:"tunnels,omitempty"`
46333
46334	// ForceSendFields is a list of field names (e.g. "PeerExternalGateway")
46335	// to unconditionally include in API requests. By default, fields with
46336	// empty values are omitted from API requests. However, any non-pointer,
46337	// non-interface field appearing in ForceSendFields will be sent to the
46338	// server regardless of whether the field is empty or not. This may be
46339	// used to include empty fields in Patch requests.
46340	ForceSendFields []string `json:"-"`
46341
46342	// NullFields is a list of field names (e.g. "PeerExternalGateway") to
46343	// include in API requests with the JSON null value. By default, fields
46344	// with empty values are omitted from API requests. However, any field
46345	// with an empty value appearing in NullFields will be sent to the
46346	// server as null. It is an error if a field in this list has a
46347	// non-empty value. This may be used to include null fields in Patch
46348	// requests.
46349	NullFields []string `json:"-"`
46350}
46351
46352func (s *VpnGatewayStatusVpnConnection) MarshalJSON() ([]byte, error) {
46353	type NoMethod VpnGatewayStatusVpnConnection
46354	raw := NoMethod(*s)
46355	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46356}
46357
46358// VpnGatewayVpnGatewayInterface: A VPN gateway interface.
46359type VpnGatewayVpnGatewayInterface struct {
46360	// Id: The numeric ID of this VPN gateway interface.
46361	Id int64 `json:"id,omitempty"`
46362
46363	// IpAddress: The external IP address for this VPN gateway interface.
46364	IpAddress string `json:"ipAddress,omitempty"`
46365
46366	// ForceSendFields is a list of field names (e.g. "Id") to
46367	// unconditionally include in API requests. By default, fields with
46368	// empty values are omitted from API requests. However, any non-pointer,
46369	// non-interface field appearing in ForceSendFields will be sent to the
46370	// server regardless of whether the field is empty or not. This may be
46371	// used to include empty fields in Patch requests.
46372	ForceSendFields []string `json:"-"`
46373
46374	// NullFields is a list of field names (e.g. "Id") to include in API
46375	// requests with the JSON null value. By default, fields with empty
46376	// values are omitted from API requests. However, any field with an
46377	// empty value appearing in NullFields will be sent to the server as
46378	// null. It is an error if a field in this list has a non-empty value.
46379	// This may be used to include null fields in Patch requests.
46380	NullFields []string `json:"-"`
46381}
46382
46383func (s *VpnGatewayVpnGatewayInterface) MarshalJSON() ([]byte, error) {
46384	type NoMethod VpnGatewayVpnGatewayInterface
46385	raw := NoMethod(*s)
46386	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46387}
46388
46389type VpnGatewaysGetStatusResponse struct {
46390	Result *VpnGatewayStatus `json:"result,omitempty"`
46391
46392	// ServerResponse contains the HTTP response code and headers from the
46393	// server.
46394	googleapi.ServerResponse `json:"-"`
46395
46396	// ForceSendFields is a list of field names (e.g. "Result") to
46397	// unconditionally include in API requests. By default, fields with
46398	// empty values are omitted from API requests. However, any non-pointer,
46399	// non-interface field appearing in ForceSendFields will be sent to the
46400	// server regardless of whether the field is empty or not. This may be
46401	// used to include empty fields in Patch requests.
46402	ForceSendFields []string `json:"-"`
46403
46404	// NullFields is a list of field names (e.g. "Result") to include in API
46405	// requests with the JSON null value. By default, fields with empty
46406	// values are omitted from API requests. However, any field with an
46407	// empty value appearing in NullFields will be sent to the server as
46408	// null. It is an error if a field in this list has a non-empty value.
46409	// This may be used to include null fields in Patch requests.
46410	NullFields []string `json:"-"`
46411}
46412
46413func (s *VpnGatewaysGetStatusResponse) MarshalJSON() ([]byte, error) {
46414	type NoMethod VpnGatewaysGetStatusResponse
46415	raw := NoMethod(*s)
46416	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46417}
46418
46419type VpnGatewaysScopedList struct {
46420	// VpnGateways: [Output Only] A list of VPN gateways contained in this
46421	// scope.
46422	VpnGateways []*VpnGateway `json:"vpnGateways,omitempty"`
46423
46424	// Warning: [Output Only] Informational warning which replaces the list
46425	// of addresses when the list is empty.
46426	Warning *VpnGatewaysScopedListWarning `json:"warning,omitempty"`
46427
46428	// ForceSendFields is a list of field names (e.g. "VpnGateways") to
46429	// unconditionally include in API requests. By default, fields with
46430	// empty values are omitted from API requests. However, any non-pointer,
46431	// non-interface field appearing in ForceSendFields will be sent to the
46432	// server regardless of whether the field is empty or not. This may be
46433	// used to include empty fields in Patch requests.
46434	ForceSendFields []string `json:"-"`
46435
46436	// NullFields is a list of field names (e.g. "VpnGateways") to include
46437	// in API requests with the JSON null value. By default, fields with
46438	// empty values are omitted from API requests. However, any field with
46439	// an empty value appearing in NullFields will be sent to the server as
46440	// null. It is an error if a field in this list has a non-empty value.
46441	// This may be used to include null fields in Patch requests.
46442	NullFields []string `json:"-"`
46443}
46444
46445func (s *VpnGatewaysScopedList) MarshalJSON() ([]byte, error) {
46446	type NoMethod VpnGatewaysScopedList
46447	raw := NoMethod(*s)
46448	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46449}
46450
46451// VpnGatewaysScopedListWarning: [Output Only] Informational warning
46452// which replaces the list of addresses when the list is empty.
46453type VpnGatewaysScopedListWarning struct {
46454	// Code: [Output Only] A warning code, if applicable. For example,
46455	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
46456	// the response.
46457	//
46458	// Possible values:
46459	//   "CLEANUP_FAILED"
46460	//   "DEPRECATED_RESOURCE_USED"
46461	//   "DEPRECATED_TYPE_USED"
46462	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
46463	//   "EXPERIMENTAL_TYPE_USED"
46464	//   "EXTERNAL_API_WARNING"
46465	//   "FIELD_VALUE_OVERRIDEN"
46466	//   "INJECTED_KERNELS_DEPRECATED"
46467	//   "MISSING_TYPE_DEPENDENCY"
46468	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
46469	//   "NEXT_HOP_CANNOT_IP_FORWARD"
46470	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
46471	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
46472	//   "NEXT_HOP_NOT_RUNNING"
46473	//   "NOT_CRITICAL_ERROR"
46474	//   "NO_RESULTS_ON_PAGE"
46475	//   "REQUIRED_TOS_AGREEMENT"
46476	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
46477	//   "RESOURCE_NOT_DELETED"
46478	//   "SCHEMA_VALIDATION_IGNORED"
46479	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
46480	//   "UNDECLARED_PROPERTIES"
46481	//   "UNREACHABLE"
46482	Code string `json:"code,omitempty"`
46483
46484	// Data: [Output Only] Metadata about this warning in key: value format.
46485	// For example:
46486	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
46487	Data []*VpnGatewaysScopedListWarningData `json:"data,omitempty"`
46488
46489	// Message: [Output Only] A human-readable description of the warning
46490	// code.
46491	Message string `json:"message,omitempty"`
46492
46493	// ForceSendFields is a list of field names (e.g. "Code") to
46494	// unconditionally include in API requests. By default, fields with
46495	// empty values are omitted from API requests. However, any non-pointer,
46496	// non-interface field appearing in ForceSendFields will be sent to the
46497	// server regardless of whether the field is empty or not. This may be
46498	// used to include empty fields in Patch requests.
46499	ForceSendFields []string `json:"-"`
46500
46501	// NullFields is a list of field names (e.g. "Code") to include in API
46502	// requests with the JSON null value. By default, fields with empty
46503	// values are omitted from API requests. However, any field with an
46504	// empty value appearing in NullFields will be sent to the server as
46505	// null. It is an error if a field in this list has a non-empty value.
46506	// This may be used to include null fields in Patch requests.
46507	NullFields []string `json:"-"`
46508}
46509
46510func (s *VpnGatewaysScopedListWarning) MarshalJSON() ([]byte, error) {
46511	type NoMethod VpnGatewaysScopedListWarning
46512	raw := NoMethod(*s)
46513	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46514}
46515
46516type VpnGatewaysScopedListWarningData struct {
46517	// Key: [Output Only] A key that provides more detail on the warning
46518	// being returned. For example, for warnings where there are no results
46519	// in a list request for a particular zone, this key might be scope and
46520	// the key value might be the zone name. Other examples might be a key
46521	// indicating a deprecated resource and a suggested replacement, or a
46522	// warning about invalid network settings (for example, if an instance
46523	// attempts to perform IP forwarding but is not enabled for IP
46524	// forwarding).
46525	Key string `json:"key,omitempty"`
46526
46527	// Value: [Output Only] A warning data value corresponding to the key.
46528	Value string `json:"value,omitempty"`
46529
46530	// ForceSendFields is a list of field names (e.g. "Key") to
46531	// unconditionally include in API requests. By default, fields with
46532	// empty values are omitted from API requests. However, any non-pointer,
46533	// non-interface field appearing in ForceSendFields will be sent to the
46534	// server regardless of whether the field is empty or not. This may be
46535	// used to include empty fields in Patch requests.
46536	ForceSendFields []string `json:"-"`
46537
46538	// NullFields is a list of field names (e.g. "Key") to include in API
46539	// requests with the JSON null value. By default, fields with empty
46540	// values are omitted from API requests. However, any field with an
46541	// empty value appearing in NullFields will be sent to the server as
46542	// null. It is an error if a field in this list has a non-empty value.
46543	// This may be used to include null fields in Patch requests.
46544	NullFields []string `json:"-"`
46545}
46546
46547func (s *VpnGatewaysScopedListWarningData) MarshalJSON() ([]byte, error) {
46548	type NoMethod VpnGatewaysScopedListWarningData
46549	raw := NoMethod(*s)
46550	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46551}
46552
46553// VpnTunnel: Represents a Cloud VPN Tunnel resource.
46554//
46555// For more information about VPN, read the the Cloud VPN Overview. (==
46556// resource_for beta.vpnTunnels ==) (== resource_for v1.vpnTunnels ==)
46557type VpnTunnel struct {
46558	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
46559	// format.
46560	CreationTimestamp string `json:"creationTimestamp,omitempty"`
46561
46562	// Description: An optional description of this resource. Provide this
46563	// property when you create the resource.
46564	Description string `json:"description,omitempty"`
46565
46566	// DetailedStatus: [Output Only] Detailed status message for the VPN
46567	// tunnel.
46568	DetailedStatus string `json:"detailedStatus,omitempty"`
46569
46570	// Id: [Output Only] The unique identifier for the resource. This
46571	// identifier is defined by the server.
46572	Id uint64 `json:"id,omitempty,string"`
46573
46574	// IkeVersion: IKE protocol version to use when establishing the VPN
46575	// tunnel with the peer VPN gateway. Acceptable IKE versions are 1 or 2.
46576	// The default version is 2.
46577	IkeVersion int64 `json:"ikeVersion,omitempty"`
46578
46579	// Kind: [Output Only] Type of resource. Always compute#vpnTunnel for
46580	// VPN tunnels.
46581	Kind string `json:"kind,omitempty"`
46582
46583	// LabelFingerprint: A fingerprint for the labels being applied to this
46584	// VpnTunnel, which is essentially a hash of the labels set used for
46585	// optimistic locking. The fingerprint is initially generated by Compute
46586	// Engine and changes after every request to modify or update labels.
46587	// You must always provide an up-to-date fingerprint hash in order to
46588	// update or change labels, otherwise the request will fail with error
46589	// 412 conditionNotMet.
46590	//
46591	// To see the latest fingerprint, make a get() request to retrieve a
46592	// VpnTunnel.
46593	LabelFingerprint string `json:"labelFingerprint,omitempty"`
46594
46595	// Labels: Labels to apply to this VpnTunnel. These can be later
46596	// modified by the setLabels method. Each label key/value pair must
46597	// comply with RFC1035. Label values may be empty.
46598	Labels map[string]string `json:"labels,omitempty"`
46599
46600	// LocalTrafficSelector: Local traffic selector to use when establishing
46601	// the VPN tunnel with the peer VPN gateway. The value should be a CIDR
46602	// formatted string, for example: 192.168.0.0/16. The ranges must be
46603	// disjoint. Only IPv4 is supported.
46604	LocalTrafficSelector []string `json:"localTrafficSelector,omitempty"`
46605
46606	// Name: Name of the resource. Provided by the client when the resource
46607	// is created. The name must be 1-63 characters long, and comply with
46608	// RFC1035. Specifically, the name must be 1-63 characters long and
46609	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
46610	// the first character must be a lowercase letter, and all following
46611	// characters must be a dash, lowercase letter, or digit, except the
46612	// last character, which cannot be a dash.
46613	Name string `json:"name,omitempty"`
46614
46615	// PeerExternalGateway: URL of the peer side external VPN gateway to
46616	// which this VPN tunnel is connected. Provided by the client when the
46617	// VPN tunnel is created. This field is exclusive with the field
46618	// peerGcpGateway.
46619	PeerExternalGateway string `json:"peerExternalGateway,omitempty"`
46620
46621	// PeerExternalGatewayInterface: The interface ID of the external VPN
46622	// gateway to which this VPN tunnel is connected. Provided by the client
46623	// when the VPN tunnel is created.
46624	PeerExternalGatewayInterface int64 `json:"peerExternalGatewayInterface,omitempty"`
46625
46626	// PeerGcpGateway: URL of the peer side HA GCP VPN gateway to which this
46627	// VPN tunnel is connected. Provided by the client when the VPN tunnel
46628	// is created. This field can be used when creating highly available VPN
46629	// from VPC network to VPC network, the field is exclusive with the
46630	// field peerExternalGateway. If provided, the VPN tunnel will
46631	// automatically use the same vpnGatewayInterface ID in the peer GCP VPN
46632	// gateway.
46633	PeerGcpGateway string `json:"peerGcpGateway,omitempty"`
46634
46635	// PeerIp: IP address of the peer VPN gateway. Only IPv4 is supported.
46636	PeerIp string `json:"peerIp,omitempty"`
46637
46638	// Region: [Output Only] URL of the region where the VPN tunnel resides.
46639	// You must specify this field as part of the HTTP request URL. It is
46640	// not settable as a field in the request body.
46641	Region string `json:"region,omitempty"`
46642
46643	// RemoteTrafficSelector: Remote traffic selectors to use when
46644	// establishing the VPN tunnel with the peer VPN gateway. The value
46645	// should be a CIDR formatted string, for example: 192.168.0.0/16. The
46646	// ranges should be disjoint. Only IPv4 is supported.
46647	RemoteTrafficSelector []string `json:"remoteTrafficSelector,omitempty"`
46648
46649	// Router: URL of the router resource to be used for dynamic routing.
46650	Router string `json:"router,omitempty"`
46651
46652	// SelfLink: [Output Only] Server-defined URL for the resource.
46653	SelfLink string `json:"selfLink,omitempty"`
46654
46655	// SharedSecret: Shared secret used to set the secure session between
46656	// the Cloud VPN gateway and the peer VPN gateway.
46657	SharedSecret string `json:"sharedSecret,omitempty"`
46658
46659	// SharedSecretHash: Hash of the shared secret.
46660	SharedSecretHash string `json:"sharedSecretHash,omitempty"`
46661
46662	// Status: [Output Only] The status of the VPN tunnel, which can be one
46663	// of the following:
46664	// - PROVISIONING: Resource is being allocated for the VPN tunnel.
46665	// - WAITING_FOR_FULL_CONFIG: Waiting to receive all VPN-related configs
46666	// from the user. Network, TargetVpnGateway, VpnTunnel, ForwardingRule,
46667	// and Route resources are needed to setup the VPN tunnel.
46668	// - FIRST_HANDSHAKE: Successful first handshake with the peer VPN.
46669	// - ESTABLISHED: Secure session is successfully established with the
46670	// peer VPN.
46671	// - NETWORK_ERROR: Deprecated, replaced by NO_INCOMING_PACKETS
46672	// - AUTHORIZATION_ERROR: Auth error (for example, bad shared secret).
46673	//
46674	// - NEGOTIATION_FAILURE: Handshake failed.
46675	// - DEPROVISIONING: Resources are being deallocated for the VPN tunnel.
46676	//
46677	// - FAILED: Tunnel creation has failed and the tunnel is not ready to
46678	// be used.
46679	// - NO_INCOMING_PACKETS: No incoming packets from peer.
46680	// - REJECTED: Tunnel configuration was rejected, can be result of being
46681	// blacklisted.
46682	// - ALLOCATING_RESOURCES: Cloud VPN is in the process of allocating all
46683	// required resources.
46684	// - STOPPED: Tunnel is stopped due to its Forwarding Rules being
46685	// deleted for Classic VPN tunnels or the project is in frozen state.
46686	// - PEER_IDENTITY_MISMATCH: Peer identity does not match peer IP,
46687	// probably behind NAT.
46688	// - TS_NARROWING_NOT_ALLOWED: Traffic selector narrowing not allowed
46689	// for an HA-VPN tunnel.
46690	//
46691	// Possible values:
46692	//   "ALLOCATING_RESOURCES"
46693	//   "AUTHORIZATION_ERROR"
46694	//   "DEPROVISIONING"
46695	//   "ESTABLISHED"
46696	//   "FAILED"
46697	//   "FIRST_HANDSHAKE"
46698	//   "NEGOTIATION_FAILURE"
46699	//   "NETWORK_ERROR"
46700	//   "NO_INCOMING_PACKETS"
46701	//   "PROVISIONING"
46702	//   "REJECTED"
46703	//   "STOPPED"
46704	//   "WAITING_FOR_FULL_CONFIG"
46705	Status string `json:"status,omitempty"`
46706
46707	// TargetVpnGateway: URL of the Target VPN gateway with which this VPN
46708	// tunnel is associated. Provided by the client when the VPN tunnel is
46709	// created.
46710	TargetVpnGateway string `json:"targetVpnGateway,omitempty"`
46711
46712	// VpnGateway: URL of the VPN gateway with which this VPN tunnel is
46713	// associated. Provided by the client when the VPN tunnel is created.
46714	// This must be used (instead of target_vpn_gateway) if a High
46715	// Availability VPN gateway resource is created.
46716	VpnGateway string `json:"vpnGateway,omitempty"`
46717
46718	// VpnGatewayInterface: The interface ID of the VPN gateway with which
46719	// this VPN tunnel is associated.
46720	VpnGatewayInterface int64 `json:"vpnGatewayInterface,omitempty"`
46721
46722	// ServerResponse contains the HTTP response code and headers from the
46723	// server.
46724	googleapi.ServerResponse `json:"-"`
46725
46726	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
46727	// to unconditionally include in API requests. By default, fields with
46728	// empty values are omitted from API requests. However, any non-pointer,
46729	// non-interface field appearing in ForceSendFields will be sent to the
46730	// server regardless of whether the field is empty or not. This may be
46731	// used to include empty fields in Patch requests.
46732	ForceSendFields []string `json:"-"`
46733
46734	// NullFields is a list of field names (e.g. "CreationTimestamp") to
46735	// include in API requests with the JSON null value. By default, fields
46736	// with empty values are omitted from API requests. However, any field
46737	// with an empty value appearing in NullFields will be sent to the
46738	// server as null. It is an error if a field in this list has a
46739	// non-empty value. This may be used to include null fields in Patch
46740	// requests.
46741	NullFields []string `json:"-"`
46742}
46743
46744func (s *VpnTunnel) MarshalJSON() ([]byte, error) {
46745	type NoMethod VpnTunnel
46746	raw := NoMethod(*s)
46747	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46748}
46749
46750type VpnTunnelAggregatedList struct {
46751	// Id: [Output Only] Unique identifier for the resource; defined by the
46752	// server.
46753	Id string `json:"id,omitempty"`
46754
46755	// Items: A list of VpnTunnelsScopedList resources.
46756	Items map[string]VpnTunnelsScopedList `json:"items,omitempty"`
46757
46758	// Kind: [Output Only] Type of resource. Always compute#vpnTunnel for
46759	// VPN tunnels.
46760	Kind string `json:"kind,omitempty"`
46761
46762	// NextPageToken: [Output Only] This token allows you to get the next
46763	// page of results for list requests. If the number of results is larger
46764	// than maxResults, use the nextPageToken as a value for the query
46765	// parameter pageToken in the next list request. Subsequent list
46766	// requests will have their own nextPageToken to continue paging through
46767	// the results.
46768	NextPageToken string `json:"nextPageToken,omitempty"`
46769
46770	// SelfLink: [Output Only] Server-defined URL for this resource.
46771	SelfLink string `json:"selfLink,omitempty"`
46772
46773	// Warning: [Output Only] Informational warning message.
46774	Warning *VpnTunnelAggregatedListWarning `json:"warning,omitempty"`
46775
46776	// ServerResponse contains the HTTP response code and headers from the
46777	// server.
46778	googleapi.ServerResponse `json:"-"`
46779
46780	// ForceSendFields is a list of field names (e.g. "Id") to
46781	// unconditionally include in API requests. By default, fields with
46782	// empty values are omitted from API requests. However, any non-pointer,
46783	// non-interface field appearing in ForceSendFields will be sent to the
46784	// server regardless of whether the field is empty or not. This may be
46785	// used to include empty fields in Patch requests.
46786	ForceSendFields []string `json:"-"`
46787
46788	// NullFields is a list of field names (e.g. "Id") to include in API
46789	// requests with the JSON null value. By default, fields with empty
46790	// values are omitted from API requests. However, any field with an
46791	// empty value appearing in NullFields will be sent to the server as
46792	// null. It is an error if a field in this list has a non-empty value.
46793	// This may be used to include null fields in Patch requests.
46794	NullFields []string `json:"-"`
46795}
46796
46797func (s *VpnTunnelAggregatedList) MarshalJSON() ([]byte, error) {
46798	type NoMethod VpnTunnelAggregatedList
46799	raw := NoMethod(*s)
46800	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46801}
46802
46803// VpnTunnelAggregatedListWarning: [Output Only] Informational warning
46804// message.
46805type VpnTunnelAggregatedListWarning struct {
46806	// Code: [Output Only] A warning code, if applicable. For example,
46807	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
46808	// the response.
46809	//
46810	// Possible values:
46811	//   "CLEANUP_FAILED"
46812	//   "DEPRECATED_RESOURCE_USED"
46813	//   "DEPRECATED_TYPE_USED"
46814	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
46815	//   "EXPERIMENTAL_TYPE_USED"
46816	//   "EXTERNAL_API_WARNING"
46817	//   "FIELD_VALUE_OVERRIDEN"
46818	//   "INJECTED_KERNELS_DEPRECATED"
46819	//   "MISSING_TYPE_DEPENDENCY"
46820	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
46821	//   "NEXT_HOP_CANNOT_IP_FORWARD"
46822	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
46823	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
46824	//   "NEXT_HOP_NOT_RUNNING"
46825	//   "NOT_CRITICAL_ERROR"
46826	//   "NO_RESULTS_ON_PAGE"
46827	//   "REQUIRED_TOS_AGREEMENT"
46828	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
46829	//   "RESOURCE_NOT_DELETED"
46830	//   "SCHEMA_VALIDATION_IGNORED"
46831	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
46832	//   "UNDECLARED_PROPERTIES"
46833	//   "UNREACHABLE"
46834	Code string `json:"code,omitempty"`
46835
46836	// Data: [Output Only] Metadata about this warning in key: value format.
46837	// For example:
46838	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
46839	Data []*VpnTunnelAggregatedListWarningData `json:"data,omitempty"`
46840
46841	// Message: [Output Only] A human-readable description of the warning
46842	// code.
46843	Message string `json:"message,omitempty"`
46844
46845	// ForceSendFields is a list of field names (e.g. "Code") to
46846	// unconditionally include in API requests. By default, fields with
46847	// empty values are omitted from API requests. However, any non-pointer,
46848	// non-interface field appearing in ForceSendFields will be sent to the
46849	// server regardless of whether the field is empty or not. This may be
46850	// used to include empty fields in Patch requests.
46851	ForceSendFields []string `json:"-"`
46852
46853	// NullFields is a list of field names (e.g. "Code") to include in API
46854	// requests with the JSON null value. By default, fields with empty
46855	// values are omitted from API requests. However, any field with an
46856	// empty value appearing in NullFields will be sent to the server as
46857	// null. It is an error if a field in this list has a non-empty value.
46858	// This may be used to include null fields in Patch requests.
46859	NullFields []string `json:"-"`
46860}
46861
46862func (s *VpnTunnelAggregatedListWarning) MarshalJSON() ([]byte, error) {
46863	type NoMethod VpnTunnelAggregatedListWarning
46864	raw := NoMethod(*s)
46865	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46866}
46867
46868type VpnTunnelAggregatedListWarningData struct {
46869	// Key: [Output Only] A key that provides more detail on the warning
46870	// being returned. For example, for warnings where there are no results
46871	// in a list request for a particular zone, this key might be scope and
46872	// the key value might be the zone name. Other examples might be a key
46873	// indicating a deprecated resource and a suggested replacement, or a
46874	// warning about invalid network settings (for example, if an instance
46875	// attempts to perform IP forwarding but is not enabled for IP
46876	// forwarding).
46877	Key string `json:"key,omitempty"`
46878
46879	// Value: [Output Only] A warning data value corresponding to the key.
46880	Value string `json:"value,omitempty"`
46881
46882	// ForceSendFields is a list of field names (e.g. "Key") to
46883	// unconditionally include in API requests. By default, fields with
46884	// empty values are omitted from API requests. However, any non-pointer,
46885	// non-interface field appearing in ForceSendFields will be sent to the
46886	// server regardless of whether the field is empty or not. This may be
46887	// used to include empty fields in Patch requests.
46888	ForceSendFields []string `json:"-"`
46889
46890	// NullFields is a list of field names (e.g. "Key") to include in API
46891	// requests with the JSON null value. By default, fields with empty
46892	// values are omitted from API requests. However, any field with an
46893	// empty value appearing in NullFields will be sent to the server as
46894	// null. It is an error if a field in this list has a non-empty value.
46895	// This may be used to include null fields in Patch requests.
46896	NullFields []string `json:"-"`
46897}
46898
46899func (s *VpnTunnelAggregatedListWarningData) MarshalJSON() ([]byte, error) {
46900	type NoMethod VpnTunnelAggregatedListWarningData
46901	raw := NoMethod(*s)
46902	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46903}
46904
46905// VpnTunnelList: Contains a list of VpnTunnel resources.
46906type VpnTunnelList struct {
46907	// Id: [Output Only] Unique identifier for the resource; defined by the
46908	// server.
46909	Id string `json:"id,omitempty"`
46910
46911	// Items: A list of VpnTunnel resources.
46912	Items []*VpnTunnel `json:"items,omitempty"`
46913
46914	// Kind: [Output Only] Type of resource. Always compute#vpnTunnel for
46915	// VPN tunnels.
46916	Kind string `json:"kind,omitempty"`
46917
46918	// NextPageToken: [Output Only] This token allows you to get the next
46919	// page of results for list requests. If the number of results is larger
46920	// than maxResults, use the nextPageToken as a value for the query
46921	// parameter pageToken in the next list request. Subsequent list
46922	// requests will have their own nextPageToken to continue paging through
46923	// the results.
46924	NextPageToken string `json:"nextPageToken,omitempty"`
46925
46926	// SelfLink: [Output Only] Server-defined URL for this resource.
46927	SelfLink string `json:"selfLink,omitempty"`
46928
46929	// Warning: [Output Only] Informational warning message.
46930	Warning *VpnTunnelListWarning `json:"warning,omitempty"`
46931
46932	// ServerResponse contains the HTTP response code and headers from the
46933	// server.
46934	googleapi.ServerResponse `json:"-"`
46935
46936	// ForceSendFields is a list of field names (e.g. "Id") to
46937	// unconditionally include in API requests. By default, fields with
46938	// empty values are omitted from API requests. However, any non-pointer,
46939	// non-interface field appearing in ForceSendFields will be sent to the
46940	// server regardless of whether the field is empty or not. This may be
46941	// used to include empty fields in Patch requests.
46942	ForceSendFields []string `json:"-"`
46943
46944	// NullFields is a list of field names (e.g. "Id") to include in API
46945	// requests with the JSON null value. By default, fields with empty
46946	// values are omitted from API requests. However, any field with an
46947	// empty value appearing in NullFields will be sent to the server as
46948	// null. It is an error if a field in this list has a non-empty value.
46949	// This may be used to include null fields in Patch requests.
46950	NullFields []string `json:"-"`
46951}
46952
46953func (s *VpnTunnelList) MarshalJSON() ([]byte, error) {
46954	type NoMethod VpnTunnelList
46955	raw := NoMethod(*s)
46956	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46957}
46958
46959// VpnTunnelListWarning: [Output Only] Informational warning message.
46960type VpnTunnelListWarning struct {
46961	// Code: [Output Only] A warning code, if applicable. For example,
46962	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
46963	// the response.
46964	//
46965	// Possible values:
46966	//   "CLEANUP_FAILED"
46967	//   "DEPRECATED_RESOURCE_USED"
46968	//   "DEPRECATED_TYPE_USED"
46969	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
46970	//   "EXPERIMENTAL_TYPE_USED"
46971	//   "EXTERNAL_API_WARNING"
46972	//   "FIELD_VALUE_OVERRIDEN"
46973	//   "INJECTED_KERNELS_DEPRECATED"
46974	//   "MISSING_TYPE_DEPENDENCY"
46975	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
46976	//   "NEXT_HOP_CANNOT_IP_FORWARD"
46977	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
46978	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
46979	//   "NEXT_HOP_NOT_RUNNING"
46980	//   "NOT_CRITICAL_ERROR"
46981	//   "NO_RESULTS_ON_PAGE"
46982	//   "REQUIRED_TOS_AGREEMENT"
46983	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
46984	//   "RESOURCE_NOT_DELETED"
46985	//   "SCHEMA_VALIDATION_IGNORED"
46986	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
46987	//   "UNDECLARED_PROPERTIES"
46988	//   "UNREACHABLE"
46989	Code string `json:"code,omitempty"`
46990
46991	// Data: [Output Only] Metadata about this warning in key: value format.
46992	// For example:
46993	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
46994	Data []*VpnTunnelListWarningData `json:"data,omitempty"`
46995
46996	// Message: [Output Only] A human-readable description of the warning
46997	// code.
46998	Message string `json:"message,omitempty"`
46999
47000	// ForceSendFields is a list of field names (e.g. "Code") to
47001	// unconditionally include in API requests. By default, fields with
47002	// empty values are omitted from API requests. However, any non-pointer,
47003	// non-interface field appearing in ForceSendFields will be sent to the
47004	// server regardless of whether the field is empty or not. This may be
47005	// used to include empty fields in Patch requests.
47006	ForceSendFields []string `json:"-"`
47007
47008	// NullFields is a list of field names (e.g. "Code") to include in API
47009	// requests with the JSON null value. By default, fields with empty
47010	// values are omitted from API requests. However, any field with an
47011	// empty value appearing in NullFields will be sent to the server as
47012	// null. It is an error if a field in this list has a non-empty value.
47013	// This may be used to include null fields in Patch requests.
47014	NullFields []string `json:"-"`
47015}
47016
47017func (s *VpnTunnelListWarning) MarshalJSON() ([]byte, error) {
47018	type NoMethod VpnTunnelListWarning
47019	raw := NoMethod(*s)
47020	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47021}
47022
47023type VpnTunnelListWarningData struct {
47024	// Key: [Output Only] A key that provides more detail on the warning
47025	// being returned. For example, for warnings where there are no results
47026	// in a list request for a particular zone, this key might be scope and
47027	// the key value might be the zone name. Other examples might be a key
47028	// indicating a deprecated resource and a suggested replacement, or a
47029	// warning about invalid network settings (for example, if an instance
47030	// attempts to perform IP forwarding but is not enabled for IP
47031	// forwarding).
47032	Key string `json:"key,omitempty"`
47033
47034	// Value: [Output Only] A warning data value corresponding to the key.
47035	Value string `json:"value,omitempty"`
47036
47037	// ForceSendFields is a list of field names (e.g. "Key") to
47038	// unconditionally include in API requests. By default, fields with
47039	// empty values are omitted from API requests. However, any non-pointer,
47040	// non-interface field appearing in ForceSendFields will be sent to the
47041	// server regardless of whether the field is empty or not. This may be
47042	// used to include empty fields in Patch requests.
47043	ForceSendFields []string `json:"-"`
47044
47045	// NullFields is a list of field names (e.g. "Key") to include in API
47046	// requests with the JSON null value. By default, fields with empty
47047	// values are omitted from API requests. However, any field with an
47048	// empty value appearing in NullFields will be sent to the server as
47049	// null. It is an error if a field in this list has a non-empty value.
47050	// This may be used to include null fields in Patch requests.
47051	NullFields []string `json:"-"`
47052}
47053
47054func (s *VpnTunnelListWarningData) MarshalJSON() ([]byte, error) {
47055	type NoMethod VpnTunnelListWarningData
47056	raw := NoMethod(*s)
47057	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47058}
47059
47060type VpnTunnelsScopedList struct {
47061	// VpnTunnels: A list of VPN tunnels contained in this scope.
47062	VpnTunnels []*VpnTunnel `json:"vpnTunnels,omitempty"`
47063
47064	// Warning: Informational warning which replaces the list of addresses
47065	// when the list is empty.
47066	Warning *VpnTunnelsScopedListWarning `json:"warning,omitempty"`
47067
47068	// ForceSendFields is a list of field names (e.g. "VpnTunnels") to
47069	// unconditionally include in API requests. By default, fields with
47070	// empty values are omitted from API requests. However, any non-pointer,
47071	// non-interface field appearing in ForceSendFields will be sent to the
47072	// server regardless of whether the field is empty or not. This may be
47073	// used to include empty fields in Patch requests.
47074	ForceSendFields []string `json:"-"`
47075
47076	// NullFields is a list of field names (e.g. "VpnTunnels") to include in
47077	// API requests with the JSON null value. By default, fields with empty
47078	// values are omitted from API requests. However, any field with an
47079	// empty value appearing in NullFields will be sent to the server as
47080	// null. It is an error if a field in this list has a non-empty value.
47081	// This may be used to include null fields in Patch requests.
47082	NullFields []string `json:"-"`
47083}
47084
47085func (s *VpnTunnelsScopedList) MarshalJSON() ([]byte, error) {
47086	type NoMethod VpnTunnelsScopedList
47087	raw := NoMethod(*s)
47088	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47089}
47090
47091// VpnTunnelsScopedListWarning: Informational warning which replaces the
47092// list of addresses when the list is empty.
47093type VpnTunnelsScopedListWarning struct {
47094	// Code: [Output Only] A warning code, if applicable. For example,
47095	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
47096	// the response.
47097	//
47098	// Possible values:
47099	//   "CLEANUP_FAILED"
47100	//   "DEPRECATED_RESOURCE_USED"
47101	//   "DEPRECATED_TYPE_USED"
47102	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
47103	//   "EXPERIMENTAL_TYPE_USED"
47104	//   "EXTERNAL_API_WARNING"
47105	//   "FIELD_VALUE_OVERRIDEN"
47106	//   "INJECTED_KERNELS_DEPRECATED"
47107	//   "MISSING_TYPE_DEPENDENCY"
47108	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
47109	//   "NEXT_HOP_CANNOT_IP_FORWARD"
47110	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
47111	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
47112	//   "NEXT_HOP_NOT_RUNNING"
47113	//   "NOT_CRITICAL_ERROR"
47114	//   "NO_RESULTS_ON_PAGE"
47115	//   "REQUIRED_TOS_AGREEMENT"
47116	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
47117	//   "RESOURCE_NOT_DELETED"
47118	//   "SCHEMA_VALIDATION_IGNORED"
47119	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
47120	//   "UNDECLARED_PROPERTIES"
47121	//   "UNREACHABLE"
47122	Code string `json:"code,omitempty"`
47123
47124	// Data: [Output Only] Metadata about this warning in key: value format.
47125	// For example:
47126	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
47127	Data []*VpnTunnelsScopedListWarningData `json:"data,omitempty"`
47128
47129	// Message: [Output Only] A human-readable description of the warning
47130	// code.
47131	Message string `json:"message,omitempty"`
47132
47133	// ForceSendFields is a list of field names (e.g. "Code") to
47134	// unconditionally include in API requests. By default, fields with
47135	// empty values are omitted from API requests. However, any non-pointer,
47136	// non-interface field appearing in ForceSendFields will be sent to the
47137	// server regardless of whether the field is empty or not. This may be
47138	// used to include empty fields in Patch requests.
47139	ForceSendFields []string `json:"-"`
47140
47141	// NullFields is a list of field names (e.g. "Code") to include in API
47142	// requests with the JSON null value. By default, fields with empty
47143	// values are omitted from API requests. However, any field with an
47144	// empty value appearing in NullFields will be sent to the server as
47145	// null. It is an error if a field in this list has a non-empty value.
47146	// This may be used to include null fields in Patch requests.
47147	NullFields []string `json:"-"`
47148}
47149
47150func (s *VpnTunnelsScopedListWarning) MarshalJSON() ([]byte, error) {
47151	type NoMethod VpnTunnelsScopedListWarning
47152	raw := NoMethod(*s)
47153	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47154}
47155
47156type VpnTunnelsScopedListWarningData struct {
47157	// Key: [Output Only] A key that provides more detail on the warning
47158	// being returned. For example, for warnings where there are no results
47159	// in a list request for a particular zone, this key might be scope and
47160	// the key value might be the zone name. Other examples might be a key
47161	// indicating a deprecated resource and a suggested replacement, or a
47162	// warning about invalid network settings (for example, if an instance
47163	// attempts to perform IP forwarding but is not enabled for IP
47164	// forwarding).
47165	Key string `json:"key,omitempty"`
47166
47167	// Value: [Output Only] A warning data value corresponding to the key.
47168	Value string `json:"value,omitempty"`
47169
47170	// ForceSendFields is a list of field names (e.g. "Key") to
47171	// unconditionally include in API requests. By default, fields with
47172	// empty values are omitted from API requests. However, any non-pointer,
47173	// non-interface field appearing in ForceSendFields will be sent to the
47174	// server regardless of whether the field is empty or not. This may be
47175	// used to include empty fields in Patch requests.
47176	ForceSendFields []string `json:"-"`
47177
47178	// NullFields is a list of field names (e.g. "Key") to include in API
47179	// requests with the JSON null value. By default, fields with empty
47180	// values are omitted from API requests. However, any field with an
47181	// empty value appearing in NullFields will be sent to the server as
47182	// null. It is an error if a field in this list has a non-empty value.
47183	// This may be used to include null fields in Patch requests.
47184	NullFields []string `json:"-"`
47185}
47186
47187func (s *VpnTunnelsScopedListWarningData) MarshalJSON() ([]byte, error) {
47188	type NoMethod VpnTunnelsScopedListWarningData
47189	raw := NoMethod(*s)
47190	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47191}
47192
47193type WafExpressionSet struct {
47194	// Aliases: A list of alternate IDs. The format should be: - E.g.
47195	// XSS-stable Generic suffix like "stable" is particularly useful if a
47196	// policy likes to avail newer set of expressions without having to
47197	// change the policy. A given alias name can't be used for more than one
47198	// entity set.
47199	Aliases []string `json:"aliases,omitempty"`
47200
47201	// Expressions: List of available expressions.
47202	Expressions []*WafExpressionSetExpression `json:"expressions,omitempty"`
47203
47204	// Id: Google specified expression set ID. The format should be: - E.g.
47205	// XSS-20170329
47206	Id string `json:"id,omitempty"`
47207
47208	// ForceSendFields is a list of field names (e.g. "Aliases") to
47209	// unconditionally include in API requests. By default, fields with
47210	// empty values are omitted from API requests. However, any non-pointer,
47211	// non-interface field appearing in ForceSendFields will be sent to the
47212	// server regardless of whether the field is empty or not. This may be
47213	// used to include empty fields in Patch requests.
47214	ForceSendFields []string `json:"-"`
47215
47216	// NullFields is a list of field names (e.g. "Aliases") to include in
47217	// API requests with the JSON null value. By default, fields with empty
47218	// values are omitted from API requests. However, any field with an
47219	// empty value appearing in NullFields will be sent to the server as
47220	// null. It is an error if a field in this list has a non-empty value.
47221	// This may be used to include null fields in Patch requests.
47222	NullFields []string `json:"-"`
47223}
47224
47225func (s *WafExpressionSet) MarshalJSON() ([]byte, error) {
47226	type NoMethod WafExpressionSet
47227	raw := NoMethod(*s)
47228	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47229}
47230
47231type WafExpressionSetExpression struct {
47232	// Id: Expression ID should uniquely identify the origin of the
47233	// expression. E.g. owasp-crs-v020901-id973337 identifies Owasp core
47234	// rule set version 2.9.1 rule id 973337. The ID could be used to
47235	// determine the individual attack definition that has been detected. It
47236	// could also be used to exclude it from the policy in case of false
47237	// positive.
47238	Id string `json:"id,omitempty"`
47239
47240	// ForceSendFields is a list of field names (e.g. "Id") to
47241	// unconditionally include in API requests. By default, fields with
47242	// empty values are omitted from API requests. However, any non-pointer,
47243	// non-interface field appearing in ForceSendFields will be sent to the
47244	// server regardless of whether the field is empty or not. This may be
47245	// used to include empty fields in Patch requests.
47246	ForceSendFields []string `json:"-"`
47247
47248	// NullFields is a list of field names (e.g. "Id") to include in API
47249	// requests with the JSON null value. By default, fields with empty
47250	// values are omitted from API requests. However, any field with an
47251	// empty value appearing in NullFields will be sent to the server as
47252	// null. It is an error if a field in this list has a non-empty value.
47253	// This may be used to include null fields in Patch requests.
47254	NullFields []string `json:"-"`
47255}
47256
47257func (s *WafExpressionSetExpression) MarshalJSON() ([]byte, error) {
47258	type NoMethod WafExpressionSetExpression
47259	raw := NoMethod(*s)
47260	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47261}
47262
47263// WeightedBackendService: In contrast to a single BackendService in
47264// HttpRouteAction to which all matching traffic is directed to,
47265// WeightedBackendService allows traffic to be split across multiple
47266// BackendServices. The volume of traffic for each BackendService is
47267// proportional to the weight specified in each WeightedBackendService
47268type WeightedBackendService struct {
47269	// BackendService: The full or partial URL to the default BackendService
47270	// resource. Before forwarding the request to backendService, the
47271	// loadbalancer applies any relevant headerActions specified as part of
47272	// this backendServiceWeight.
47273	BackendService string `json:"backendService,omitempty"`
47274
47275	// HeaderAction: Specifies changes to request and response headers that
47276	// need to take effect for the selected backendService.
47277	// headerAction specified here take effect before headerAction in the
47278	// enclosing HttpRouteRule, PathMatcher and UrlMap.
47279	HeaderAction *HttpHeaderAction `json:"headerAction,omitempty"`
47280
47281	// Weight: Specifies the fraction of traffic sent to backendService,
47282	// computed as weight / (sum of all weightedBackendService weights in
47283	// routeAction) .
47284	// The selection of a backend service is determined only for new
47285	// traffic. Once a user's request has been directed to a backendService,
47286	// subsequent requests will be sent to the same backendService as
47287	// determined by the BackendService's session affinity policy.
47288	// The value must be between 0 and 1000
47289	Weight int64 `json:"weight,omitempty"`
47290
47291	// ForceSendFields is a list of field names (e.g. "BackendService") to
47292	// unconditionally include in API requests. By default, fields with
47293	// empty values are omitted from API requests. However, any non-pointer,
47294	// non-interface field appearing in ForceSendFields will be sent to the
47295	// server regardless of whether the field is empty or not. This may be
47296	// used to include empty fields in Patch requests.
47297	ForceSendFields []string `json:"-"`
47298
47299	// NullFields is a list of field names (e.g. "BackendService") to
47300	// include in API requests with the JSON null value. By default, fields
47301	// with empty values are omitted from API requests. However, any field
47302	// with an empty value appearing in NullFields will be sent to the
47303	// server as null. It is an error if a field in this list has a
47304	// non-empty value. This may be used to include null fields in Patch
47305	// requests.
47306	NullFields []string `json:"-"`
47307}
47308
47309func (s *WeightedBackendService) MarshalJSON() ([]byte, error) {
47310	type NoMethod WeightedBackendService
47311	raw := NoMethod(*s)
47312	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47313}
47314
47315type XpnHostList struct {
47316	// Id: [Output Only] Unique identifier for the resource; defined by the
47317	// server.
47318	Id string `json:"id,omitempty"`
47319
47320	// Items: [Output Only] A list of shared VPC host project URLs.
47321	Items []*Project `json:"items,omitempty"`
47322
47323	// Kind: [Output Only] Type of resource. Always compute#xpnHostList for
47324	// lists of shared VPC hosts.
47325	Kind string `json:"kind,omitempty"`
47326
47327	// NextPageToken: [Output Only] This token allows you to get the next
47328	// page of results for list requests. If the number of results is larger
47329	// than maxResults, use the nextPageToken as a value for the query
47330	// parameter pageToken in the next list request. Subsequent list
47331	// requests will have their own nextPageToken to continue paging through
47332	// the results.
47333	NextPageToken string `json:"nextPageToken,omitempty"`
47334
47335	// SelfLink: [Output Only] Server-defined URL for this resource.
47336	SelfLink string `json:"selfLink,omitempty"`
47337
47338	// Warning: [Output Only] Informational warning message.
47339	Warning *XpnHostListWarning `json:"warning,omitempty"`
47340
47341	// ServerResponse contains the HTTP response code and headers from the
47342	// server.
47343	googleapi.ServerResponse `json:"-"`
47344
47345	// ForceSendFields is a list of field names (e.g. "Id") to
47346	// unconditionally include in API requests. By default, fields with
47347	// empty values are omitted from API requests. However, any non-pointer,
47348	// non-interface field appearing in ForceSendFields will be sent to the
47349	// server regardless of whether the field is empty or not. This may be
47350	// used to include empty fields in Patch requests.
47351	ForceSendFields []string `json:"-"`
47352
47353	// NullFields is a list of field names (e.g. "Id") to include in API
47354	// requests with the JSON null value. By default, fields with empty
47355	// values are omitted from API requests. However, any field with an
47356	// empty value appearing in NullFields will be sent to the server as
47357	// null. It is an error if a field in this list has a non-empty value.
47358	// This may be used to include null fields in Patch requests.
47359	NullFields []string `json:"-"`
47360}
47361
47362func (s *XpnHostList) MarshalJSON() ([]byte, error) {
47363	type NoMethod XpnHostList
47364	raw := NoMethod(*s)
47365	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47366}
47367
47368// XpnHostListWarning: [Output Only] Informational warning message.
47369type XpnHostListWarning struct {
47370	// Code: [Output Only] A warning code, if applicable. For example,
47371	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
47372	// the response.
47373	//
47374	// Possible values:
47375	//   "CLEANUP_FAILED"
47376	//   "DEPRECATED_RESOURCE_USED"
47377	//   "DEPRECATED_TYPE_USED"
47378	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
47379	//   "EXPERIMENTAL_TYPE_USED"
47380	//   "EXTERNAL_API_WARNING"
47381	//   "FIELD_VALUE_OVERRIDEN"
47382	//   "INJECTED_KERNELS_DEPRECATED"
47383	//   "MISSING_TYPE_DEPENDENCY"
47384	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
47385	//   "NEXT_HOP_CANNOT_IP_FORWARD"
47386	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
47387	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
47388	//   "NEXT_HOP_NOT_RUNNING"
47389	//   "NOT_CRITICAL_ERROR"
47390	//   "NO_RESULTS_ON_PAGE"
47391	//   "REQUIRED_TOS_AGREEMENT"
47392	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
47393	//   "RESOURCE_NOT_DELETED"
47394	//   "SCHEMA_VALIDATION_IGNORED"
47395	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
47396	//   "UNDECLARED_PROPERTIES"
47397	//   "UNREACHABLE"
47398	Code string `json:"code,omitempty"`
47399
47400	// Data: [Output Only] Metadata about this warning in key: value format.
47401	// For example:
47402	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
47403	Data []*XpnHostListWarningData `json:"data,omitempty"`
47404
47405	// Message: [Output Only] A human-readable description of the warning
47406	// code.
47407	Message string `json:"message,omitempty"`
47408
47409	// ForceSendFields is a list of field names (e.g. "Code") to
47410	// unconditionally include in API requests. By default, fields with
47411	// empty values are omitted from API requests. However, any non-pointer,
47412	// non-interface field appearing in ForceSendFields will be sent to the
47413	// server regardless of whether the field is empty or not. This may be
47414	// used to include empty fields in Patch requests.
47415	ForceSendFields []string `json:"-"`
47416
47417	// NullFields is a list of field names (e.g. "Code") to include in API
47418	// requests with the JSON null value. By default, fields with empty
47419	// values are omitted from API requests. However, any field with an
47420	// empty value appearing in NullFields will be sent to the server as
47421	// null. It is an error if a field in this list has a non-empty value.
47422	// This may be used to include null fields in Patch requests.
47423	NullFields []string `json:"-"`
47424}
47425
47426func (s *XpnHostListWarning) MarshalJSON() ([]byte, error) {
47427	type NoMethod XpnHostListWarning
47428	raw := NoMethod(*s)
47429	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47430}
47431
47432type XpnHostListWarningData struct {
47433	// Key: [Output Only] A key that provides more detail on the warning
47434	// being returned. For example, for warnings where there are no results
47435	// in a list request for a particular zone, this key might be scope and
47436	// the key value might be the zone name. Other examples might be a key
47437	// indicating a deprecated resource and a suggested replacement, or a
47438	// warning about invalid network settings (for example, if an instance
47439	// attempts to perform IP forwarding but is not enabled for IP
47440	// forwarding).
47441	Key string `json:"key,omitempty"`
47442
47443	// Value: [Output Only] A warning data value corresponding to the key.
47444	Value string `json:"value,omitempty"`
47445
47446	// ForceSendFields is a list of field names (e.g. "Key") to
47447	// unconditionally include in API requests. By default, fields with
47448	// empty values are omitted from API requests. However, any non-pointer,
47449	// non-interface field appearing in ForceSendFields will be sent to the
47450	// server regardless of whether the field is empty or not. This may be
47451	// used to include empty fields in Patch requests.
47452	ForceSendFields []string `json:"-"`
47453
47454	// NullFields is a list of field names (e.g. "Key") to include in API
47455	// requests with the JSON null value. By default, fields with empty
47456	// values are omitted from API requests. However, any field with an
47457	// empty value appearing in NullFields will be sent to the server as
47458	// null. It is an error if a field in this list has a non-empty value.
47459	// This may be used to include null fields in Patch requests.
47460	NullFields []string `json:"-"`
47461}
47462
47463func (s *XpnHostListWarningData) MarshalJSON() ([]byte, error) {
47464	type NoMethod XpnHostListWarningData
47465	raw := NoMethod(*s)
47466	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47467}
47468
47469// XpnResourceId: Service resource (a.k.a service project) ID.
47470type XpnResourceId struct {
47471	// Id: The ID of the service resource. In the case of projects, this
47472	// field supports project id (e.g., my-project-123) and project number
47473	// (e.g. 12345678).
47474	Id string `json:"id,omitempty"`
47475
47476	// Type: The type of the service resource.
47477	//
47478	// Possible values:
47479	//   "PROJECT"
47480	//   "XPN_RESOURCE_TYPE_UNSPECIFIED"
47481	Type string `json:"type,omitempty"`
47482
47483	// ForceSendFields is a list of field names (e.g. "Id") to
47484	// unconditionally include in API requests. By default, fields with
47485	// empty values are omitted from API requests. However, any non-pointer,
47486	// non-interface field appearing in ForceSendFields will be sent to the
47487	// server regardless of whether the field is empty or not. This may be
47488	// used to include empty fields in Patch requests.
47489	ForceSendFields []string `json:"-"`
47490
47491	// NullFields is a list of field names (e.g. "Id") to include in API
47492	// requests with the JSON null value. By default, fields with empty
47493	// values are omitted from API requests. However, any field with an
47494	// empty value appearing in NullFields will be sent to the server as
47495	// null. It is an error if a field in this list has a non-empty value.
47496	// This may be used to include null fields in Patch requests.
47497	NullFields []string `json:"-"`
47498}
47499
47500func (s *XpnResourceId) MarshalJSON() ([]byte, error) {
47501	type NoMethod XpnResourceId
47502	raw := NoMethod(*s)
47503	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47504}
47505
47506// Zone: Represents a Zone resource.
47507//
47508// A zone is a deployment area. These deployment areas are subsets of a
47509// region. For example the zone us-east1-a is located in the us-east1
47510// region. For more information, read Regions and Zones. (==
47511// resource_for beta.zones ==) (== resource_for v1.zones ==)
47512type Zone struct {
47513	// AvailableCpuPlatforms: [Output Only] Available cpu/platform
47514	// selections for the zone.
47515	AvailableCpuPlatforms []string `json:"availableCpuPlatforms,omitempty"`
47516
47517	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
47518	// format.
47519	CreationTimestamp string `json:"creationTimestamp,omitempty"`
47520
47521	// Deprecated: [Output Only] The deprecation status associated with this
47522	// zone.
47523	Deprecated *DeprecationStatus `json:"deprecated,omitempty"`
47524
47525	// Description: [Output Only] Textual description of the resource.
47526	Description string `json:"description,omitempty"`
47527
47528	// Id: [Output Only] The unique identifier for the resource. This
47529	// identifier is defined by the server.
47530	Id uint64 `json:"id,omitempty,string"`
47531
47532	// Kind: [Output Only] Type of the resource. Always compute#zone for
47533	// zones.
47534	Kind string `json:"kind,omitempty"`
47535
47536	// Name: [Output Only] Name of the resource.
47537	Name string `json:"name,omitempty"`
47538
47539	// Region: [Output Only] Full URL reference to the region which hosts
47540	// the zone.
47541	Region string `json:"region,omitempty"`
47542
47543	// SelfLink: [Output Only] Server-defined URL for the resource.
47544	SelfLink string `json:"selfLink,omitempty"`
47545
47546	// Status: [Output Only] Status of the zone, either UP or DOWN.
47547	//
47548	// Possible values:
47549	//   "DOWN"
47550	//   "UP"
47551	Status string `json:"status,omitempty"`
47552
47553	// ServerResponse contains the HTTP response code and headers from the
47554	// server.
47555	googleapi.ServerResponse `json:"-"`
47556
47557	// ForceSendFields is a list of field names (e.g.
47558	// "AvailableCpuPlatforms") to unconditionally include in API requests.
47559	// By default, fields with empty values are omitted from API requests.
47560	// However, any non-pointer, non-interface field appearing in
47561	// ForceSendFields will be sent to the server regardless of whether the
47562	// field is empty or not. This may be used to include empty fields in
47563	// Patch requests.
47564	ForceSendFields []string `json:"-"`
47565
47566	// NullFields is a list of field names (e.g. "AvailableCpuPlatforms") to
47567	// include in API requests with the JSON null value. By default, fields
47568	// with empty values are omitted from API requests. However, any field
47569	// with an empty value appearing in NullFields will be sent to the
47570	// server as null. It is an error if a field in this list has a
47571	// non-empty value. This may be used to include null fields in Patch
47572	// requests.
47573	NullFields []string `json:"-"`
47574}
47575
47576func (s *Zone) MarshalJSON() ([]byte, error) {
47577	type NoMethod Zone
47578	raw := NoMethod(*s)
47579	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47580}
47581
47582// ZoneList: Contains a list of zone resources.
47583type ZoneList struct {
47584	// Id: [Output Only] Unique identifier for the resource; defined by the
47585	// server.
47586	Id string `json:"id,omitempty"`
47587
47588	// Items: A list of Zone resources.
47589	Items []*Zone `json:"items,omitempty"`
47590
47591	// Kind: Type of resource.
47592	Kind string `json:"kind,omitempty"`
47593
47594	// NextPageToken: [Output Only] This token allows you to get the next
47595	// page of results for list requests. If the number of results is larger
47596	// than maxResults, use the nextPageToken as a value for the query
47597	// parameter pageToken in the next list request. Subsequent list
47598	// requests will have their own nextPageToken to continue paging through
47599	// the results.
47600	NextPageToken string `json:"nextPageToken,omitempty"`
47601
47602	// SelfLink: [Output Only] Server-defined URL for this resource.
47603	SelfLink string `json:"selfLink,omitempty"`
47604
47605	// Warning: [Output Only] Informational warning message.
47606	Warning *ZoneListWarning `json:"warning,omitempty"`
47607
47608	// ServerResponse contains the HTTP response code and headers from the
47609	// server.
47610	googleapi.ServerResponse `json:"-"`
47611
47612	// ForceSendFields is a list of field names (e.g. "Id") to
47613	// unconditionally include in API requests. By default, fields with
47614	// empty values are omitted from API requests. However, any non-pointer,
47615	// non-interface field appearing in ForceSendFields will be sent to the
47616	// server regardless of whether the field is empty or not. This may be
47617	// used to include empty fields in Patch requests.
47618	ForceSendFields []string `json:"-"`
47619
47620	// NullFields is a list of field names (e.g. "Id") to include in API
47621	// requests with the JSON null value. By default, fields with empty
47622	// values are omitted from API requests. However, any field with an
47623	// empty value appearing in NullFields will be sent to the server as
47624	// null. It is an error if a field in this list has a non-empty value.
47625	// This may be used to include null fields in Patch requests.
47626	NullFields []string `json:"-"`
47627}
47628
47629func (s *ZoneList) MarshalJSON() ([]byte, error) {
47630	type NoMethod ZoneList
47631	raw := NoMethod(*s)
47632	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47633}
47634
47635// ZoneListWarning: [Output Only] Informational warning message.
47636type ZoneListWarning struct {
47637	// Code: [Output Only] A warning code, if applicable. For example,
47638	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
47639	// the response.
47640	//
47641	// Possible values:
47642	//   "CLEANUP_FAILED"
47643	//   "DEPRECATED_RESOURCE_USED"
47644	//   "DEPRECATED_TYPE_USED"
47645	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
47646	//   "EXPERIMENTAL_TYPE_USED"
47647	//   "EXTERNAL_API_WARNING"
47648	//   "FIELD_VALUE_OVERRIDEN"
47649	//   "INJECTED_KERNELS_DEPRECATED"
47650	//   "MISSING_TYPE_DEPENDENCY"
47651	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
47652	//   "NEXT_HOP_CANNOT_IP_FORWARD"
47653	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
47654	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
47655	//   "NEXT_HOP_NOT_RUNNING"
47656	//   "NOT_CRITICAL_ERROR"
47657	//   "NO_RESULTS_ON_PAGE"
47658	//   "REQUIRED_TOS_AGREEMENT"
47659	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
47660	//   "RESOURCE_NOT_DELETED"
47661	//   "SCHEMA_VALIDATION_IGNORED"
47662	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
47663	//   "UNDECLARED_PROPERTIES"
47664	//   "UNREACHABLE"
47665	Code string `json:"code,omitempty"`
47666
47667	// Data: [Output Only] Metadata about this warning in key: value format.
47668	// For example:
47669	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
47670	Data []*ZoneListWarningData `json:"data,omitempty"`
47671
47672	// Message: [Output Only] A human-readable description of the warning
47673	// code.
47674	Message string `json:"message,omitempty"`
47675
47676	// ForceSendFields is a list of field names (e.g. "Code") to
47677	// unconditionally include in API requests. By default, fields with
47678	// empty values are omitted from API requests. However, any non-pointer,
47679	// non-interface field appearing in ForceSendFields will be sent to the
47680	// server regardless of whether the field is empty or not. This may be
47681	// used to include empty fields in Patch requests.
47682	ForceSendFields []string `json:"-"`
47683
47684	// NullFields is a list of field names (e.g. "Code") to include in API
47685	// requests with the JSON null value. By default, fields with empty
47686	// values are omitted from API requests. However, any field with an
47687	// empty value appearing in NullFields will be sent to the server as
47688	// null. It is an error if a field in this list has a non-empty value.
47689	// This may be used to include null fields in Patch requests.
47690	NullFields []string `json:"-"`
47691}
47692
47693func (s *ZoneListWarning) MarshalJSON() ([]byte, error) {
47694	type NoMethod ZoneListWarning
47695	raw := NoMethod(*s)
47696	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47697}
47698
47699type ZoneListWarningData struct {
47700	// Key: [Output Only] A key that provides more detail on the warning
47701	// being returned. For example, for warnings where there are no results
47702	// in a list request for a particular zone, this key might be scope and
47703	// the key value might be the zone name. Other examples might be a key
47704	// indicating a deprecated resource and a suggested replacement, or a
47705	// warning about invalid network settings (for example, if an instance
47706	// attempts to perform IP forwarding but is not enabled for IP
47707	// forwarding).
47708	Key string `json:"key,omitempty"`
47709
47710	// Value: [Output Only] A warning data value corresponding to the key.
47711	Value string `json:"value,omitempty"`
47712
47713	// ForceSendFields is a list of field names (e.g. "Key") to
47714	// unconditionally include in API requests. By default, fields with
47715	// empty values are omitted from API requests. However, any non-pointer,
47716	// non-interface field appearing in ForceSendFields will be sent to the
47717	// server regardless of whether the field is empty or not. This may be
47718	// used to include empty fields in Patch requests.
47719	ForceSendFields []string `json:"-"`
47720
47721	// NullFields is a list of field names (e.g. "Key") to include in API
47722	// requests with the JSON null value. By default, fields with empty
47723	// values are omitted from API requests. However, any field with an
47724	// empty value appearing in NullFields will be sent to the server as
47725	// null. It is an error if a field in this list has a non-empty value.
47726	// This may be used to include null fields in Patch requests.
47727	NullFields []string `json:"-"`
47728}
47729
47730func (s *ZoneListWarningData) MarshalJSON() ([]byte, error) {
47731	type NoMethod ZoneListWarningData
47732	raw := NoMethod(*s)
47733	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47734}
47735
47736type ZoneSetLabelsRequest struct {
47737	// LabelFingerprint: The fingerprint of the previous set of labels for
47738	// this resource, used to detect conflicts. The fingerprint is initially
47739	// generated by Compute Engine and changes after every request to modify
47740	// or update labels. You must always provide an up-to-date fingerprint
47741	// hash in order to update or change labels. Make a get() request to the
47742	// resource to get the latest fingerprint.
47743	LabelFingerprint string `json:"labelFingerprint,omitempty"`
47744
47745	// Labels: The labels to set for this resource.
47746	Labels map[string]string `json:"labels,omitempty"`
47747
47748	// ForceSendFields is a list of field names (e.g. "LabelFingerprint") to
47749	// unconditionally include in API requests. By default, fields with
47750	// empty values are omitted from API requests. However, any non-pointer,
47751	// non-interface field appearing in ForceSendFields will be sent to the
47752	// server regardless of whether the field is empty or not. This may be
47753	// used to include empty fields in Patch requests.
47754	ForceSendFields []string `json:"-"`
47755
47756	// NullFields is a list of field names (e.g. "LabelFingerprint") to
47757	// include in API requests with the JSON null value. By default, fields
47758	// with empty values are omitted from API requests. However, any field
47759	// with an empty value appearing in NullFields will be sent to the
47760	// server as null. It is an error if a field in this list has a
47761	// non-empty value. This may be used to include null fields in Patch
47762	// requests.
47763	NullFields []string `json:"-"`
47764}
47765
47766func (s *ZoneSetLabelsRequest) MarshalJSON() ([]byte, error) {
47767	type NoMethod ZoneSetLabelsRequest
47768	raw := NoMethod(*s)
47769	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47770}
47771
47772type ZoneSetPolicyRequest struct {
47773	// Bindings: Flatten Policy to create a backwacd compatible wire-format.
47774	// Deprecated. Use 'policy' to specify bindings.
47775	Bindings []*Binding `json:"bindings,omitempty"`
47776
47777	// Etag: Flatten Policy to create a backward compatible wire-format.
47778	// Deprecated. Use 'policy' to specify the etag.
47779	Etag string `json:"etag,omitempty"`
47780
47781	// Policy: REQUIRED: The complete policy to be applied to the
47782	// 'resource'. The size of the policy is limited to a few 10s of KB. An
47783	// empty policy is in general a valid policy but certain services (like
47784	// Projects) might reject them.
47785	Policy *Policy `json:"policy,omitempty"`
47786
47787	// ForceSendFields is a list of field names (e.g. "Bindings") to
47788	// unconditionally include in API requests. By default, fields with
47789	// empty values are omitted from API requests. However, any non-pointer,
47790	// non-interface field appearing in ForceSendFields will be sent to the
47791	// server regardless of whether the field is empty or not. This may be
47792	// used to include empty fields in Patch requests.
47793	ForceSendFields []string `json:"-"`
47794
47795	// NullFields is a list of field names (e.g. "Bindings") to include in
47796	// API requests with the JSON null value. By default, fields with empty
47797	// values are omitted from API requests. However, any field with an
47798	// empty value appearing in NullFields will be sent to the server as
47799	// null. It is an error if a field in this list has a non-empty value.
47800	// This may be used to include null fields in Patch requests.
47801	NullFields []string `json:"-"`
47802}
47803
47804func (s *ZoneSetPolicyRequest) MarshalJSON() ([]byte, error) {
47805	type NoMethod ZoneSetPolicyRequest
47806	raw := NoMethod(*s)
47807	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47808}
47809
47810// method id "compute.acceleratorTypes.aggregatedList":
47811
47812type AcceleratorTypesAggregatedListCall struct {
47813	s            *Service
47814	project      string
47815	urlParams_   gensupport.URLParams
47816	ifNoneMatch_ string
47817	ctx_         context.Context
47818	header_      http.Header
47819}
47820
47821// AggregatedList: Retrieves an aggregated list of accelerator types.
47822// (== suppress_warning http-rest-shadowed ==)
47823func (r *AcceleratorTypesService) AggregatedList(project string) *AcceleratorTypesAggregatedListCall {
47824	c := &AcceleratorTypesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
47825	c.project = project
47826	return c
47827}
47828
47829// Filter sets the optional parameter "filter": A filter expression that
47830// filters resources listed in the response. The expression must specify
47831// the field name, a comparison operator, and the value that you want to
47832// use for filtering. The value must be a string, a number, or a
47833// boolean. The comparison operator must be either =, !=, >, or <.
47834//
47835// For example, if you are filtering Compute Engine instances, you can
47836// exclude instances named example-instance by specifying name !=
47837// example-instance.
47838//
47839// You can also filter nested fields. For example, you could specify
47840// scheduling.automaticRestart = false to include instances only if they
47841// are not scheduled for automatic restarts. You can use filtering on
47842// nested fields to filter based on resource labels.
47843//
47844// To filter on multiple expressions, provide each separate expression
47845// within parentheses. For example, (scheduling.automaticRestart = true)
47846// (cpuPlatform = "Intel Skylake"). By default, each expression is an
47847// AND expression. However, you can include AND and OR expressions
47848// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
47849// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
47850// true).
47851func (c *AcceleratorTypesAggregatedListCall) Filter(filter string) *AcceleratorTypesAggregatedListCall {
47852	c.urlParams_.Set("filter", filter)
47853	return c
47854}
47855
47856// MaxResults sets the optional parameter "maxResults": The maximum
47857// number of results per page that should be returned. If the number of
47858// available results is larger than maxResults, Compute Engine returns a
47859// nextPageToken that can be used to get the next page of results in
47860// subsequent list requests. Acceptable values are 0 to 500, inclusive.
47861// (Default: 500)
47862func (c *AcceleratorTypesAggregatedListCall) MaxResults(maxResults int64) *AcceleratorTypesAggregatedListCall {
47863	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
47864	return c
47865}
47866
47867// OrderBy sets the optional parameter "orderBy": Sorts list results by
47868// a certain order. By default, results are returned in alphanumerical
47869// order based on the resource name.
47870//
47871// You can also sort results in descending order based on the creation
47872// timestamp using orderBy="creationTimestamp desc". This sorts results
47873// based on the creationTimestamp field in reverse chronological order
47874// (newest result first). Use this to sort resources like operations so
47875// that the newest operation is returned first.
47876//
47877// Currently, only sorting by name or creationTimestamp desc is
47878// supported.
47879func (c *AcceleratorTypesAggregatedListCall) OrderBy(orderBy string) *AcceleratorTypesAggregatedListCall {
47880	c.urlParams_.Set("orderBy", orderBy)
47881	return c
47882}
47883
47884// PageToken sets the optional parameter "pageToken": Specifies a page
47885// token to use. Set pageToken to the nextPageToken returned by a
47886// previous list request to get the next page of results.
47887func (c *AcceleratorTypesAggregatedListCall) PageToken(pageToken string) *AcceleratorTypesAggregatedListCall {
47888	c.urlParams_.Set("pageToken", pageToken)
47889	return c
47890}
47891
47892// Fields allows partial responses to be retrieved. See
47893// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
47894// for more information.
47895func (c *AcceleratorTypesAggregatedListCall) Fields(s ...googleapi.Field) *AcceleratorTypesAggregatedListCall {
47896	c.urlParams_.Set("fields", googleapi.CombineFields(s))
47897	return c
47898}
47899
47900// IfNoneMatch sets the optional parameter which makes the operation
47901// fail if the object's ETag matches the given value. This is useful for
47902// getting updates only after the object has changed since the last
47903// request. Use googleapi.IsNotModified to check whether the response
47904// error from Do is the result of In-None-Match.
47905func (c *AcceleratorTypesAggregatedListCall) IfNoneMatch(entityTag string) *AcceleratorTypesAggregatedListCall {
47906	c.ifNoneMatch_ = entityTag
47907	return c
47908}
47909
47910// Context sets the context to be used in this call's Do method. Any
47911// pending HTTP request will be aborted if the provided context is
47912// canceled.
47913func (c *AcceleratorTypesAggregatedListCall) Context(ctx context.Context) *AcceleratorTypesAggregatedListCall {
47914	c.ctx_ = ctx
47915	return c
47916}
47917
47918// Header returns an http.Header that can be modified by the caller to
47919// add HTTP headers to the request.
47920func (c *AcceleratorTypesAggregatedListCall) Header() http.Header {
47921	if c.header_ == nil {
47922		c.header_ = make(http.Header)
47923	}
47924	return c.header_
47925}
47926
47927func (c *AcceleratorTypesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
47928	reqHeaders := make(http.Header)
47929	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
47930	for k, v := range c.header_ {
47931		reqHeaders[k] = v
47932	}
47933	reqHeaders.Set("User-Agent", c.s.userAgent())
47934	if c.ifNoneMatch_ != "" {
47935		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
47936	}
47937	var body io.Reader = nil
47938	c.urlParams_.Set("alt", alt)
47939	c.urlParams_.Set("prettyPrint", "false")
47940	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/acceleratorTypes")
47941	urls += "?" + c.urlParams_.Encode()
47942	req, err := http.NewRequest("GET", urls, body)
47943	if err != nil {
47944		return nil, err
47945	}
47946	req.Header = reqHeaders
47947	googleapi.Expand(req.URL, map[string]string{
47948		"project": c.project,
47949	})
47950	return gensupport.SendRequest(c.ctx_, c.s.client, req)
47951}
47952
47953// Do executes the "compute.acceleratorTypes.aggregatedList" call.
47954// Exactly one of *AcceleratorTypeAggregatedList or error will be
47955// non-nil. Any non-2xx status code is an error. Response headers are in
47956// either *AcceleratorTypeAggregatedList.ServerResponse.Header or (if a
47957// response was returned at all) in error.(*googleapi.Error).Header. Use
47958// googleapi.IsNotModified to check whether the returned error was
47959// because http.StatusNotModified was returned.
47960func (c *AcceleratorTypesAggregatedListCall) Do(opts ...googleapi.CallOption) (*AcceleratorTypeAggregatedList, error) {
47961	gensupport.SetOptions(c.urlParams_, opts...)
47962	res, err := c.doRequest("json")
47963	if res != nil && res.StatusCode == http.StatusNotModified {
47964		if res.Body != nil {
47965			res.Body.Close()
47966		}
47967		return nil, &googleapi.Error{
47968			Code:   res.StatusCode,
47969			Header: res.Header,
47970		}
47971	}
47972	if err != nil {
47973		return nil, err
47974	}
47975	defer googleapi.CloseBody(res)
47976	if err := googleapi.CheckResponse(res); err != nil {
47977		return nil, err
47978	}
47979	ret := &AcceleratorTypeAggregatedList{
47980		ServerResponse: googleapi.ServerResponse{
47981			Header:         res.Header,
47982			HTTPStatusCode: res.StatusCode,
47983		},
47984	}
47985	target := &ret
47986	if err := gensupport.DecodeResponse(target, res); err != nil {
47987		return nil, err
47988	}
47989	return ret, nil
47990	// {
47991	//   "description": "Retrieves an aggregated list of accelerator types. (== suppress_warning http-rest-shadowed ==)",
47992	//   "httpMethod": "GET",
47993	//   "id": "compute.acceleratorTypes.aggregatedList",
47994	//   "parameterOrder": [
47995	//     "project"
47996	//   ],
47997	//   "parameters": {
47998	//     "filter": {
47999	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
48000	//       "location": "query",
48001	//       "type": "string"
48002	//     },
48003	//     "maxResults": {
48004	//       "default": "500",
48005	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
48006	//       "format": "uint32",
48007	//       "location": "query",
48008	//       "minimum": "0",
48009	//       "type": "integer"
48010	//     },
48011	//     "orderBy": {
48012	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
48013	//       "location": "query",
48014	//       "type": "string"
48015	//     },
48016	//     "pageToken": {
48017	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
48018	//       "location": "query",
48019	//       "type": "string"
48020	//     },
48021	//     "project": {
48022	//       "description": "Project ID for this request.",
48023	//       "location": "path",
48024	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
48025	//       "required": true,
48026	//       "type": "string"
48027	//     }
48028	//   },
48029	//   "path": "{project}/aggregated/acceleratorTypes",
48030	//   "response": {
48031	//     "$ref": "AcceleratorTypeAggregatedList"
48032	//   },
48033	//   "scopes": [
48034	//     "https://www.googleapis.com/auth/cloud-platform",
48035	//     "https://www.googleapis.com/auth/compute",
48036	//     "https://www.googleapis.com/auth/compute.readonly"
48037	//   ]
48038	// }
48039
48040}
48041
48042// Pages invokes f for each page of results.
48043// A non-nil error returned from f will halt the iteration.
48044// The provided context supersedes any context provided to the Context method.
48045func (c *AcceleratorTypesAggregatedListCall) Pages(ctx context.Context, f func(*AcceleratorTypeAggregatedList) error) error {
48046	c.ctx_ = ctx
48047	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
48048	for {
48049		x, err := c.Do()
48050		if err != nil {
48051			return err
48052		}
48053		if err := f(x); err != nil {
48054			return err
48055		}
48056		if x.NextPageToken == "" {
48057			return nil
48058		}
48059		c.PageToken(x.NextPageToken)
48060	}
48061}
48062
48063// method id "compute.acceleratorTypes.get":
48064
48065type AcceleratorTypesGetCall struct {
48066	s               *Service
48067	project         string
48068	zone            string
48069	acceleratorType string
48070	urlParams_      gensupport.URLParams
48071	ifNoneMatch_    string
48072	ctx_            context.Context
48073	header_         http.Header
48074}
48075
48076// Get: Returns the specified accelerator type. (== suppress_warning
48077// http-rest-shadowed ==)
48078func (r *AcceleratorTypesService) Get(project string, zone string, acceleratorType string) *AcceleratorTypesGetCall {
48079	c := &AcceleratorTypesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
48080	c.project = project
48081	c.zone = zone
48082	c.acceleratorType = acceleratorType
48083	return c
48084}
48085
48086// Fields allows partial responses to be retrieved. See
48087// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
48088// for more information.
48089func (c *AcceleratorTypesGetCall) Fields(s ...googleapi.Field) *AcceleratorTypesGetCall {
48090	c.urlParams_.Set("fields", googleapi.CombineFields(s))
48091	return c
48092}
48093
48094// IfNoneMatch sets the optional parameter which makes the operation
48095// fail if the object's ETag matches the given value. This is useful for
48096// getting updates only after the object has changed since the last
48097// request. Use googleapi.IsNotModified to check whether the response
48098// error from Do is the result of In-None-Match.
48099func (c *AcceleratorTypesGetCall) IfNoneMatch(entityTag string) *AcceleratorTypesGetCall {
48100	c.ifNoneMatch_ = entityTag
48101	return c
48102}
48103
48104// Context sets the context to be used in this call's Do method. Any
48105// pending HTTP request will be aborted if the provided context is
48106// canceled.
48107func (c *AcceleratorTypesGetCall) Context(ctx context.Context) *AcceleratorTypesGetCall {
48108	c.ctx_ = ctx
48109	return c
48110}
48111
48112// Header returns an http.Header that can be modified by the caller to
48113// add HTTP headers to the request.
48114func (c *AcceleratorTypesGetCall) Header() http.Header {
48115	if c.header_ == nil {
48116		c.header_ = make(http.Header)
48117	}
48118	return c.header_
48119}
48120
48121func (c *AcceleratorTypesGetCall) doRequest(alt string) (*http.Response, error) {
48122	reqHeaders := make(http.Header)
48123	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
48124	for k, v := range c.header_ {
48125		reqHeaders[k] = v
48126	}
48127	reqHeaders.Set("User-Agent", c.s.userAgent())
48128	if c.ifNoneMatch_ != "" {
48129		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
48130	}
48131	var body io.Reader = nil
48132	c.urlParams_.Set("alt", alt)
48133	c.urlParams_.Set("prettyPrint", "false")
48134	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/acceleratorTypes/{acceleratorType}")
48135	urls += "?" + c.urlParams_.Encode()
48136	req, err := http.NewRequest("GET", urls, body)
48137	if err != nil {
48138		return nil, err
48139	}
48140	req.Header = reqHeaders
48141	googleapi.Expand(req.URL, map[string]string{
48142		"project":         c.project,
48143		"zone":            c.zone,
48144		"acceleratorType": c.acceleratorType,
48145	})
48146	return gensupport.SendRequest(c.ctx_, c.s.client, req)
48147}
48148
48149// Do executes the "compute.acceleratorTypes.get" call.
48150// Exactly one of *AcceleratorType or error will be non-nil. Any non-2xx
48151// status code is an error. Response headers are in either
48152// *AcceleratorType.ServerResponse.Header or (if a response was returned
48153// at all) in error.(*googleapi.Error).Header. Use
48154// googleapi.IsNotModified to check whether the returned error was
48155// because http.StatusNotModified was returned.
48156func (c *AcceleratorTypesGetCall) Do(opts ...googleapi.CallOption) (*AcceleratorType, error) {
48157	gensupport.SetOptions(c.urlParams_, opts...)
48158	res, err := c.doRequest("json")
48159	if res != nil && res.StatusCode == http.StatusNotModified {
48160		if res.Body != nil {
48161			res.Body.Close()
48162		}
48163		return nil, &googleapi.Error{
48164			Code:   res.StatusCode,
48165			Header: res.Header,
48166		}
48167	}
48168	if err != nil {
48169		return nil, err
48170	}
48171	defer googleapi.CloseBody(res)
48172	if err := googleapi.CheckResponse(res); err != nil {
48173		return nil, err
48174	}
48175	ret := &AcceleratorType{
48176		ServerResponse: googleapi.ServerResponse{
48177			Header:         res.Header,
48178			HTTPStatusCode: res.StatusCode,
48179		},
48180	}
48181	target := &ret
48182	if err := gensupport.DecodeResponse(target, res); err != nil {
48183		return nil, err
48184	}
48185	return ret, nil
48186	// {
48187	//   "description": "Returns the specified accelerator type. (== suppress_warning http-rest-shadowed ==)",
48188	//   "httpMethod": "GET",
48189	//   "id": "compute.acceleratorTypes.get",
48190	//   "parameterOrder": [
48191	//     "project",
48192	//     "zone",
48193	//     "acceleratorType"
48194	//   ],
48195	//   "parameters": {
48196	//     "acceleratorType": {
48197	//       "description": "Name of the accelerator type to return.",
48198	//       "location": "path",
48199	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
48200	//       "required": true,
48201	//       "type": "string"
48202	//     },
48203	//     "project": {
48204	//       "description": "Project ID for this request.",
48205	//       "location": "path",
48206	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
48207	//       "required": true,
48208	//       "type": "string"
48209	//     },
48210	//     "zone": {
48211	//       "description": "The name of the zone for this request.",
48212	//       "location": "path",
48213	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
48214	//       "required": true,
48215	//       "type": "string"
48216	//     }
48217	//   },
48218	//   "path": "{project}/zones/{zone}/acceleratorTypes/{acceleratorType}",
48219	//   "response": {
48220	//     "$ref": "AcceleratorType"
48221	//   },
48222	//   "scopes": [
48223	//     "https://www.googleapis.com/auth/cloud-platform",
48224	//     "https://www.googleapis.com/auth/compute",
48225	//     "https://www.googleapis.com/auth/compute.readonly"
48226	//   ]
48227	// }
48228
48229}
48230
48231// method id "compute.acceleratorTypes.list":
48232
48233type AcceleratorTypesListCall struct {
48234	s            *Service
48235	project      string
48236	zone         string
48237	urlParams_   gensupport.URLParams
48238	ifNoneMatch_ string
48239	ctx_         context.Context
48240	header_      http.Header
48241}
48242
48243// List: Retrieves a list of accelerator types available to the
48244// specified project. (== suppress_warning http-rest-shadowed ==)
48245func (r *AcceleratorTypesService) List(project string, zone string) *AcceleratorTypesListCall {
48246	c := &AcceleratorTypesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
48247	c.project = project
48248	c.zone = zone
48249	return c
48250}
48251
48252// Filter sets the optional parameter "filter": A filter expression that
48253// filters resources listed in the response. The expression must specify
48254// the field name, a comparison operator, and the value that you want to
48255// use for filtering. The value must be a string, a number, or a
48256// boolean. The comparison operator must be either =, !=, >, or <.
48257//
48258// For example, if you are filtering Compute Engine instances, you can
48259// exclude instances named example-instance by specifying name !=
48260// example-instance.
48261//
48262// You can also filter nested fields. For example, you could specify
48263// scheduling.automaticRestart = false to include instances only if they
48264// are not scheduled for automatic restarts. You can use filtering on
48265// nested fields to filter based on resource labels.
48266//
48267// To filter on multiple expressions, provide each separate expression
48268// within parentheses. For example, (scheduling.automaticRestart = true)
48269// (cpuPlatform = "Intel Skylake"). By default, each expression is an
48270// AND expression. However, you can include AND and OR expressions
48271// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
48272// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
48273// true).
48274func (c *AcceleratorTypesListCall) Filter(filter string) *AcceleratorTypesListCall {
48275	c.urlParams_.Set("filter", filter)
48276	return c
48277}
48278
48279// MaxResults sets the optional parameter "maxResults": The maximum
48280// number of results per page that should be returned. If the number of
48281// available results is larger than maxResults, Compute Engine returns a
48282// nextPageToken that can be used to get the next page of results in
48283// subsequent list requests. Acceptable values are 0 to 500, inclusive.
48284// (Default: 500)
48285func (c *AcceleratorTypesListCall) MaxResults(maxResults int64) *AcceleratorTypesListCall {
48286	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
48287	return c
48288}
48289
48290// OrderBy sets the optional parameter "orderBy": Sorts list results by
48291// a certain order. By default, results are returned in alphanumerical
48292// order based on the resource name.
48293//
48294// You can also sort results in descending order based on the creation
48295// timestamp using orderBy="creationTimestamp desc". This sorts results
48296// based on the creationTimestamp field in reverse chronological order
48297// (newest result first). Use this to sort resources like operations so
48298// that the newest operation is returned first.
48299//
48300// Currently, only sorting by name or creationTimestamp desc is
48301// supported.
48302func (c *AcceleratorTypesListCall) OrderBy(orderBy string) *AcceleratorTypesListCall {
48303	c.urlParams_.Set("orderBy", orderBy)
48304	return c
48305}
48306
48307// PageToken sets the optional parameter "pageToken": Specifies a page
48308// token to use. Set pageToken to the nextPageToken returned by a
48309// previous list request to get the next page of results.
48310func (c *AcceleratorTypesListCall) PageToken(pageToken string) *AcceleratorTypesListCall {
48311	c.urlParams_.Set("pageToken", pageToken)
48312	return c
48313}
48314
48315// Fields allows partial responses to be retrieved. See
48316// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
48317// for more information.
48318func (c *AcceleratorTypesListCall) Fields(s ...googleapi.Field) *AcceleratorTypesListCall {
48319	c.urlParams_.Set("fields", googleapi.CombineFields(s))
48320	return c
48321}
48322
48323// IfNoneMatch sets the optional parameter which makes the operation
48324// fail if the object's ETag matches the given value. This is useful for
48325// getting updates only after the object has changed since the last
48326// request. Use googleapi.IsNotModified to check whether the response
48327// error from Do is the result of In-None-Match.
48328func (c *AcceleratorTypesListCall) IfNoneMatch(entityTag string) *AcceleratorTypesListCall {
48329	c.ifNoneMatch_ = entityTag
48330	return c
48331}
48332
48333// Context sets the context to be used in this call's Do method. Any
48334// pending HTTP request will be aborted if the provided context is
48335// canceled.
48336func (c *AcceleratorTypesListCall) Context(ctx context.Context) *AcceleratorTypesListCall {
48337	c.ctx_ = ctx
48338	return c
48339}
48340
48341// Header returns an http.Header that can be modified by the caller to
48342// add HTTP headers to the request.
48343func (c *AcceleratorTypesListCall) Header() http.Header {
48344	if c.header_ == nil {
48345		c.header_ = make(http.Header)
48346	}
48347	return c.header_
48348}
48349
48350func (c *AcceleratorTypesListCall) doRequest(alt string) (*http.Response, error) {
48351	reqHeaders := make(http.Header)
48352	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
48353	for k, v := range c.header_ {
48354		reqHeaders[k] = v
48355	}
48356	reqHeaders.Set("User-Agent", c.s.userAgent())
48357	if c.ifNoneMatch_ != "" {
48358		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
48359	}
48360	var body io.Reader = nil
48361	c.urlParams_.Set("alt", alt)
48362	c.urlParams_.Set("prettyPrint", "false")
48363	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/acceleratorTypes")
48364	urls += "?" + c.urlParams_.Encode()
48365	req, err := http.NewRequest("GET", urls, body)
48366	if err != nil {
48367		return nil, err
48368	}
48369	req.Header = reqHeaders
48370	googleapi.Expand(req.URL, map[string]string{
48371		"project": c.project,
48372		"zone":    c.zone,
48373	})
48374	return gensupport.SendRequest(c.ctx_, c.s.client, req)
48375}
48376
48377// Do executes the "compute.acceleratorTypes.list" call.
48378// Exactly one of *AcceleratorTypeList or error will be non-nil. Any
48379// non-2xx status code is an error. Response headers are in either
48380// *AcceleratorTypeList.ServerResponse.Header or (if a response was
48381// returned at all) in error.(*googleapi.Error).Header. Use
48382// googleapi.IsNotModified to check whether the returned error was
48383// because http.StatusNotModified was returned.
48384func (c *AcceleratorTypesListCall) Do(opts ...googleapi.CallOption) (*AcceleratorTypeList, error) {
48385	gensupport.SetOptions(c.urlParams_, opts...)
48386	res, err := c.doRequest("json")
48387	if res != nil && res.StatusCode == http.StatusNotModified {
48388		if res.Body != nil {
48389			res.Body.Close()
48390		}
48391		return nil, &googleapi.Error{
48392			Code:   res.StatusCode,
48393			Header: res.Header,
48394		}
48395	}
48396	if err != nil {
48397		return nil, err
48398	}
48399	defer googleapi.CloseBody(res)
48400	if err := googleapi.CheckResponse(res); err != nil {
48401		return nil, err
48402	}
48403	ret := &AcceleratorTypeList{
48404		ServerResponse: googleapi.ServerResponse{
48405			Header:         res.Header,
48406			HTTPStatusCode: res.StatusCode,
48407		},
48408	}
48409	target := &ret
48410	if err := gensupport.DecodeResponse(target, res); err != nil {
48411		return nil, err
48412	}
48413	return ret, nil
48414	// {
48415	//   "description": "Retrieves a list of accelerator types available to the specified project. (== suppress_warning http-rest-shadowed ==)",
48416	//   "httpMethod": "GET",
48417	//   "id": "compute.acceleratorTypes.list",
48418	//   "parameterOrder": [
48419	//     "project",
48420	//     "zone"
48421	//   ],
48422	//   "parameters": {
48423	//     "filter": {
48424	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
48425	//       "location": "query",
48426	//       "type": "string"
48427	//     },
48428	//     "maxResults": {
48429	//       "default": "500",
48430	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
48431	//       "format": "uint32",
48432	//       "location": "query",
48433	//       "minimum": "0",
48434	//       "type": "integer"
48435	//     },
48436	//     "orderBy": {
48437	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
48438	//       "location": "query",
48439	//       "type": "string"
48440	//     },
48441	//     "pageToken": {
48442	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
48443	//       "location": "query",
48444	//       "type": "string"
48445	//     },
48446	//     "project": {
48447	//       "description": "Project ID for this request.",
48448	//       "location": "path",
48449	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
48450	//       "required": true,
48451	//       "type": "string"
48452	//     },
48453	//     "zone": {
48454	//       "description": "The name of the zone for this request.",
48455	//       "location": "path",
48456	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
48457	//       "required": true,
48458	//       "type": "string"
48459	//     }
48460	//   },
48461	//   "path": "{project}/zones/{zone}/acceleratorTypes",
48462	//   "response": {
48463	//     "$ref": "AcceleratorTypeList"
48464	//   },
48465	//   "scopes": [
48466	//     "https://www.googleapis.com/auth/cloud-platform",
48467	//     "https://www.googleapis.com/auth/compute",
48468	//     "https://www.googleapis.com/auth/compute.readonly"
48469	//   ]
48470	// }
48471
48472}
48473
48474// Pages invokes f for each page of results.
48475// A non-nil error returned from f will halt the iteration.
48476// The provided context supersedes any context provided to the Context method.
48477func (c *AcceleratorTypesListCall) Pages(ctx context.Context, f func(*AcceleratorTypeList) error) error {
48478	c.ctx_ = ctx
48479	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
48480	for {
48481		x, err := c.Do()
48482		if err != nil {
48483			return err
48484		}
48485		if err := f(x); err != nil {
48486			return err
48487		}
48488		if x.NextPageToken == "" {
48489			return nil
48490		}
48491		c.PageToken(x.NextPageToken)
48492	}
48493}
48494
48495// method id "compute.addresses.aggregatedList":
48496
48497type AddressesAggregatedListCall struct {
48498	s            *Service
48499	project      string
48500	urlParams_   gensupport.URLParams
48501	ifNoneMatch_ string
48502	ctx_         context.Context
48503	header_      http.Header
48504}
48505
48506// AggregatedList: Retrieves an aggregated list of addresses. (==
48507// suppress_warning http-rest-shadowed ==)
48508// For details, see https://cloud.google.com/compute/docs/reference/latest/addresses/aggregatedList
48509func (r *AddressesService) AggregatedList(project string) *AddressesAggregatedListCall {
48510	c := &AddressesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
48511	c.project = project
48512	return c
48513}
48514
48515// Filter sets the optional parameter "filter": A filter expression that
48516// filters resources listed in the response. The expression must specify
48517// the field name, a comparison operator, and the value that you want to
48518// use for filtering. The value must be a string, a number, or a
48519// boolean. The comparison operator must be either =, !=, >, or <.
48520//
48521// For example, if you are filtering Compute Engine instances, you can
48522// exclude instances named example-instance by specifying name !=
48523// example-instance.
48524//
48525// You can also filter nested fields. For example, you could specify
48526// scheduling.automaticRestart = false to include instances only if they
48527// are not scheduled for automatic restarts. You can use filtering on
48528// nested fields to filter based on resource labels.
48529//
48530// To filter on multiple expressions, provide each separate expression
48531// within parentheses. For example, (scheduling.automaticRestart = true)
48532// (cpuPlatform = "Intel Skylake"). By default, each expression is an
48533// AND expression. However, you can include AND and OR expressions
48534// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
48535// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
48536// true).
48537func (c *AddressesAggregatedListCall) Filter(filter string) *AddressesAggregatedListCall {
48538	c.urlParams_.Set("filter", filter)
48539	return c
48540}
48541
48542// MaxResults sets the optional parameter "maxResults": The maximum
48543// number of results per page that should be returned. If the number of
48544// available results is larger than maxResults, Compute Engine returns a
48545// nextPageToken that can be used to get the next page of results in
48546// subsequent list requests. Acceptable values are 0 to 500, inclusive.
48547// (Default: 500)
48548func (c *AddressesAggregatedListCall) MaxResults(maxResults int64) *AddressesAggregatedListCall {
48549	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
48550	return c
48551}
48552
48553// OrderBy sets the optional parameter "orderBy": Sorts list results by
48554// a certain order. By default, results are returned in alphanumerical
48555// order based on the resource name.
48556//
48557// You can also sort results in descending order based on the creation
48558// timestamp using orderBy="creationTimestamp desc". This sorts results
48559// based on the creationTimestamp field in reverse chronological order
48560// (newest result first). Use this to sort resources like operations so
48561// that the newest operation is returned first.
48562//
48563// Currently, only sorting by name or creationTimestamp desc is
48564// supported.
48565func (c *AddressesAggregatedListCall) OrderBy(orderBy string) *AddressesAggregatedListCall {
48566	c.urlParams_.Set("orderBy", orderBy)
48567	return c
48568}
48569
48570// PageToken sets the optional parameter "pageToken": Specifies a page
48571// token to use. Set pageToken to the nextPageToken returned by a
48572// previous list request to get the next page of results.
48573func (c *AddressesAggregatedListCall) PageToken(pageToken string) *AddressesAggregatedListCall {
48574	c.urlParams_.Set("pageToken", pageToken)
48575	return c
48576}
48577
48578// Fields allows partial responses to be retrieved. See
48579// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
48580// for more information.
48581func (c *AddressesAggregatedListCall) Fields(s ...googleapi.Field) *AddressesAggregatedListCall {
48582	c.urlParams_.Set("fields", googleapi.CombineFields(s))
48583	return c
48584}
48585
48586// IfNoneMatch sets the optional parameter which makes the operation
48587// fail if the object's ETag matches the given value. This is useful for
48588// getting updates only after the object has changed since the last
48589// request. Use googleapi.IsNotModified to check whether the response
48590// error from Do is the result of In-None-Match.
48591func (c *AddressesAggregatedListCall) IfNoneMatch(entityTag string) *AddressesAggregatedListCall {
48592	c.ifNoneMatch_ = entityTag
48593	return c
48594}
48595
48596// Context sets the context to be used in this call's Do method. Any
48597// pending HTTP request will be aborted if the provided context is
48598// canceled.
48599func (c *AddressesAggregatedListCall) Context(ctx context.Context) *AddressesAggregatedListCall {
48600	c.ctx_ = ctx
48601	return c
48602}
48603
48604// Header returns an http.Header that can be modified by the caller to
48605// add HTTP headers to the request.
48606func (c *AddressesAggregatedListCall) Header() http.Header {
48607	if c.header_ == nil {
48608		c.header_ = make(http.Header)
48609	}
48610	return c.header_
48611}
48612
48613func (c *AddressesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
48614	reqHeaders := make(http.Header)
48615	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
48616	for k, v := range c.header_ {
48617		reqHeaders[k] = v
48618	}
48619	reqHeaders.Set("User-Agent", c.s.userAgent())
48620	if c.ifNoneMatch_ != "" {
48621		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
48622	}
48623	var body io.Reader = nil
48624	c.urlParams_.Set("alt", alt)
48625	c.urlParams_.Set("prettyPrint", "false")
48626	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/addresses")
48627	urls += "?" + c.urlParams_.Encode()
48628	req, err := http.NewRequest("GET", urls, body)
48629	if err != nil {
48630		return nil, err
48631	}
48632	req.Header = reqHeaders
48633	googleapi.Expand(req.URL, map[string]string{
48634		"project": c.project,
48635	})
48636	return gensupport.SendRequest(c.ctx_, c.s.client, req)
48637}
48638
48639// Do executes the "compute.addresses.aggregatedList" call.
48640// Exactly one of *AddressAggregatedList or error will be non-nil. Any
48641// non-2xx status code is an error. Response headers are in either
48642// *AddressAggregatedList.ServerResponse.Header or (if a response was
48643// returned at all) in error.(*googleapi.Error).Header. Use
48644// googleapi.IsNotModified to check whether the returned error was
48645// because http.StatusNotModified was returned.
48646func (c *AddressesAggregatedListCall) Do(opts ...googleapi.CallOption) (*AddressAggregatedList, error) {
48647	gensupport.SetOptions(c.urlParams_, opts...)
48648	res, err := c.doRequest("json")
48649	if res != nil && res.StatusCode == http.StatusNotModified {
48650		if res.Body != nil {
48651			res.Body.Close()
48652		}
48653		return nil, &googleapi.Error{
48654			Code:   res.StatusCode,
48655			Header: res.Header,
48656		}
48657	}
48658	if err != nil {
48659		return nil, err
48660	}
48661	defer googleapi.CloseBody(res)
48662	if err := googleapi.CheckResponse(res); err != nil {
48663		return nil, err
48664	}
48665	ret := &AddressAggregatedList{
48666		ServerResponse: googleapi.ServerResponse{
48667			Header:         res.Header,
48668			HTTPStatusCode: res.StatusCode,
48669		},
48670	}
48671	target := &ret
48672	if err := gensupport.DecodeResponse(target, res); err != nil {
48673		return nil, err
48674	}
48675	return ret, nil
48676	// {
48677	//   "description": "Retrieves an aggregated list of addresses. (== suppress_warning http-rest-shadowed ==)",
48678	//   "httpMethod": "GET",
48679	//   "id": "compute.addresses.aggregatedList",
48680	//   "parameterOrder": [
48681	//     "project"
48682	//   ],
48683	//   "parameters": {
48684	//     "filter": {
48685	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
48686	//       "location": "query",
48687	//       "type": "string"
48688	//     },
48689	//     "maxResults": {
48690	//       "default": "500",
48691	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
48692	//       "format": "uint32",
48693	//       "location": "query",
48694	//       "minimum": "0",
48695	//       "type": "integer"
48696	//     },
48697	//     "orderBy": {
48698	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
48699	//       "location": "query",
48700	//       "type": "string"
48701	//     },
48702	//     "pageToken": {
48703	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
48704	//       "location": "query",
48705	//       "type": "string"
48706	//     },
48707	//     "project": {
48708	//       "description": "Project ID for this request.",
48709	//       "location": "path",
48710	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
48711	//       "required": true,
48712	//       "type": "string"
48713	//     }
48714	//   },
48715	//   "path": "{project}/aggregated/addresses",
48716	//   "response": {
48717	//     "$ref": "AddressAggregatedList"
48718	//   },
48719	//   "scopes": [
48720	//     "https://www.googleapis.com/auth/cloud-platform",
48721	//     "https://www.googleapis.com/auth/compute",
48722	//     "https://www.googleapis.com/auth/compute.readonly"
48723	//   ]
48724	// }
48725
48726}
48727
48728// Pages invokes f for each page of results.
48729// A non-nil error returned from f will halt the iteration.
48730// The provided context supersedes any context provided to the Context method.
48731func (c *AddressesAggregatedListCall) Pages(ctx context.Context, f func(*AddressAggregatedList) error) error {
48732	c.ctx_ = ctx
48733	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
48734	for {
48735		x, err := c.Do()
48736		if err != nil {
48737			return err
48738		}
48739		if err := f(x); err != nil {
48740			return err
48741		}
48742		if x.NextPageToken == "" {
48743			return nil
48744		}
48745		c.PageToken(x.NextPageToken)
48746	}
48747}
48748
48749// method id "compute.addresses.delete":
48750
48751type AddressesDeleteCall struct {
48752	s          *Service
48753	project    string
48754	region     string
48755	address    string
48756	urlParams_ gensupport.URLParams
48757	ctx_       context.Context
48758	header_    http.Header
48759}
48760
48761// Delete: Deletes the specified address resource. (== suppress_warning
48762// http-rest-shadowed ==)
48763// For details, see https://cloud.google.com/compute/docs/reference/latest/addresses/delete
48764func (r *AddressesService) Delete(project string, region string, address string) *AddressesDeleteCall {
48765	c := &AddressesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
48766	c.project = project
48767	c.region = region
48768	c.address = address
48769	return c
48770}
48771
48772// RequestId sets the optional parameter "requestId": An optional
48773// request ID to identify requests. Specify a unique request ID so that
48774// if you must retry your request, the server will know to ignore the
48775// request if it has already been completed.
48776//
48777// For example, consider a situation where you make an initial request
48778// and the request times out. If you make the request again with the
48779// same request ID, the server can check if original operation with the
48780// same request ID was received, and if so, will ignore the second
48781// request. This prevents clients from accidentally creating duplicate
48782// commitments.
48783//
48784// The request ID must be a valid UUID with the exception that zero UUID
48785// is not supported (00000000-0000-0000-0000-000000000000).
48786func (c *AddressesDeleteCall) RequestId(requestId string) *AddressesDeleteCall {
48787	c.urlParams_.Set("requestId", requestId)
48788	return c
48789}
48790
48791// Fields allows partial responses to be retrieved. See
48792// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
48793// for more information.
48794func (c *AddressesDeleteCall) Fields(s ...googleapi.Field) *AddressesDeleteCall {
48795	c.urlParams_.Set("fields", googleapi.CombineFields(s))
48796	return c
48797}
48798
48799// Context sets the context to be used in this call's Do method. Any
48800// pending HTTP request will be aborted if the provided context is
48801// canceled.
48802func (c *AddressesDeleteCall) Context(ctx context.Context) *AddressesDeleteCall {
48803	c.ctx_ = ctx
48804	return c
48805}
48806
48807// Header returns an http.Header that can be modified by the caller to
48808// add HTTP headers to the request.
48809func (c *AddressesDeleteCall) Header() http.Header {
48810	if c.header_ == nil {
48811		c.header_ = make(http.Header)
48812	}
48813	return c.header_
48814}
48815
48816func (c *AddressesDeleteCall) doRequest(alt string) (*http.Response, error) {
48817	reqHeaders := make(http.Header)
48818	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
48819	for k, v := range c.header_ {
48820		reqHeaders[k] = v
48821	}
48822	reqHeaders.Set("User-Agent", c.s.userAgent())
48823	var body io.Reader = nil
48824	c.urlParams_.Set("alt", alt)
48825	c.urlParams_.Set("prettyPrint", "false")
48826	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/addresses/{address}")
48827	urls += "?" + c.urlParams_.Encode()
48828	req, err := http.NewRequest("DELETE", urls, body)
48829	if err != nil {
48830		return nil, err
48831	}
48832	req.Header = reqHeaders
48833	googleapi.Expand(req.URL, map[string]string{
48834		"project": c.project,
48835		"region":  c.region,
48836		"address": c.address,
48837	})
48838	return gensupport.SendRequest(c.ctx_, c.s.client, req)
48839}
48840
48841// Do executes the "compute.addresses.delete" call.
48842// Exactly one of *Operation or error will be non-nil. Any non-2xx
48843// status code is an error. Response headers are in either
48844// *Operation.ServerResponse.Header or (if a response was returned at
48845// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
48846// to check whether the returned error was because
48847// http.StatusNotModified was returned.
48848func (c *AddressesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
48849	gensupport.SetOptions(c.urlParams_, opts...)
48850	res, err := c.doRequest("json")
48851	if res != nil && res.StatusCode == http.StatusNotModified {
48852		if res.Body != nil {
48853			res.Body.Close()
48854		}
48855		return nil, &googleapi.Error{
48856			Code:   res.StatusCode,
48857			Header: res.Header,
48858		}
48859	}
48860	if err != nil {
48861		return nil, err
48862	}
48863	defer googleapi.CloseBody(res)
48864	if err := googleapi.CheckResponse(res); err != nil {
48865		return nil, err
48866	}
48867	ret := &Operation{
48868		ServerResponse: googleapi.ServerResponse{
48869			Header:         res.Header,
48870			HTTPStatusCode: res.StatusCode,
48871		},
48872	}
48873	target := &ret
48874	if err := gensupport.DecodeResponse(target, res); err != nil {
48875		return nil, err
48876	}
48877	return ret, nil
48878	// {
48879	//   "description": "Deletes the specified address resource. (== suppress_warning http-rest-shadowed ==)",
48880	//   "httpMethod": "DELETE",
48881	//   "id": "compute.addresses.delete",
48882	//   "parameterOrder": [
48883	//     "project",
48884	//     "region",
48885	//     "address"
48886	//   ],
48887	//   "parameters": {
48888	//     "address": {
48889	//       "description": "Name of the address resource to delete.",
48890	//       "location": "path",
48891	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
48892	//       "required": true,
48893	//       "type": "string"
48894	//     },
48895	//     "project": {
48896	//       "description": "Project ID for this request.",
48897	//       "location": "path",
48898	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
48899	//       "required": true,
48900	//       "type": "string"
48901	//     },
48902	//     "region": {
48903	//       "description": "Name of the region for this request.",
48904	//       "location": "path",
48905	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
48906	//       "required": true,
48907	//       "type": "string"
48908	//     },
48909	//     "requestId": {
48910	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
48911	//       "location": "query",
48912	//       "type": "string"
48913	//     }
48914	//   },
48915	//   "path": "{project}/regions/{region}/addresses/{address}",
48916	//   "response": {
48917	//     "$ref": "Operation"
48918	//   },
48919	//   "scopes": [
48920	//     "https://www.googleapis.com/auth/cloud-platform",
48921	//     "https://www.googleapis.com/auth/compute"
48922	//   ]
48923	// }
48924
48925}
48926
48927// method id "compute.addresses.get":
48928
48929type AddressesGetCall struct {
48930	s            *Service
48931	project      string
48932	region       string
48933	address      string
48934	urlParams_   gensupport.URLParams
48935	ifNoneMatch_ string
48936	ctx_         context.Context
48937	header_      http.Header
48938}
48939
48940// Get: Returns the specified address resource. (== suppress_warning
48941// http-rest-shadowed ==)
48942// For details, see https://cloud.google.com/compute/docs/reference/latest/addresses/get
48943func (r *AddressesService) Get(project string, region string, address string) *AddressesGetCall {
48944	c := &AddressesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
48945	c.project = project
48946	c.region = region
48947	c.address = address
48948	return c
48949}
48950
48951// Fields allows partial responses to be retrieved. See
48952// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
48953// for more information.
48954func (c *AddressesGetCall) Fields(s ...googleapi.Field) *AddressesGetCall {
48955	c.urlParams_.Set("fields", googleapi.CombineFields(s))
48956	return c
48957}
48958
48959// IfNoneMatch sets the optional parameter which makes the operation
48960// fail if the object's ETag matches the given value. This is useful for
48961// getting updates only after the object has changed since the last
48962// request. Use googleapi.IsNotModified to check whether the response
48963// error from Do is the result of In-None-Match.
48964func (c *AddressesGetCall) IfNoneMatch(entityTag string) *AddressesGetCall {
48965	c.ifNoneMatch_ = entityTag
48966	return c
48967}
48968
48969// Context sets the context to be used in this call's Do method. Any
48970// pending HTTP request will be aborted if the provided context is
48971// canceled.
48972func (c *AddressesGetCall) Context(ctx context.Context) *AddressesGetCall {
48973	c.ctx_ = ctx
48974	return c
48975}
48976
48977// Header returns an http.Header that can be modified by the caller to
48978// add HTTP headers to the request.
48979func (c *AddressesGetCall) Header() http.Header {
48980	if c.header_ == nil {
48981		c.header_ = make(http.Header)
48982	}
48983	return c.header_
48984}
48985
48986func (c *AddressesGetCall) doRequest(alt string) (*http.Response, error) {
48987	reqHeaders := make(http.Header)
48988	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
48989	for k, v := range c.header_ {
48990		reqHeaders[k] = v
48991	}
48992	reqHeaders.Set("User-Agent", c.s.userAgent())
48993	if c.ifNoneMatch_ != "" {
48994		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
48995	}
48996	var body io.Reader = nil
48997	c.urlParams_.Set("alt", alt)
48998	c.urlParams_.Set("prettyPrint", "false")
48999	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/addresses/{address}")
49000	urls += "?" + c.urlParams_.Encode()
49001	req, err := http.NewRequest("GET", urls, body)
49002	if err != nil {
49003		return nil, err
49004	}
49005	req.Header = reqHeaders
49006	googleapi.Expand(req.URL, map[string]string{
49007		"project": c.project,
49008		"region":  c.region,
49009		"address": c.address,
49010	})
49011	return gensupport.SendRequest(c.ctx_, c.s.client, req)
49012}
49013
49014// Do executes the "compute.addresses.get" call.
49015// Exactly one of *Address or error will be non-nil. Any non-2xx status
49016// code is an error. Response headers are in either
49017// *Address.ServerResponse.Header or (if a response was returned at all)
49018// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
49019// check whether the returned error was because http.StatusNotModified
49020// was returned.
49021func (c *AddressesGetCall) Do(opts ...googleapi.CallOption) (*Address, error) {
49022	gensupport.SetOptions(c.urlParams_, opts...)
49023	res, err := c.doRequest("json")
49024	if res != nil && res.StatusCode == http.StatusNotModified {
49025		if res.Body != nil {
49026			res.Body.Close()
49027		}
49028		return nil, &googleapi.Error{
49029			Code:   res.StatusCode,
49030			Header: res.Header,
49031		}
49032	}
49033	if err != nil {
49034		return nil, err
49035	}
49036	defer googleapi.CloseBody(res)
49037	if err := googleapi.CheckResponse(res); err != nil {
49038		return nil, err
49039	}
49040	ret := &Address{
49041		ServerResponse: googleapi.ServerResponse{
49042			Header:         res.Header,
49043			HTTPStatusCode: res.StatusCode,
49044		},
49045	}
49046	target := &ret
49047	if err := gensupport.DecodeResponse(target, res); err != nil {
49048		return nil, err
49049	}
49050	return ret, nil
49051	// {
49052	//   "description": "Returns the specified address resource. (== suppress_warning http-rest-shadowed ==)",
49053	//   "httpMethod": "GET",
49054	//   "id": "compute.addresses.get",
49055	//   "parameterOrder": [
49056	//     "project",
49057	//     "region",
49058	//     "address"
49059	//   ],
49060	//   "parameters": {
49061	//     "address": {
49062	//       "description": "Name of the address resource to return.",
49063	//       "location": "path",
49064	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
49065	//       "required": true,
49066	//       "type": "string"
49067	//     },
49068	//     "project": {
49069	//       "description": "Project ID for this request.",
49070	//       "location": "path",
49071	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
49072	//       "required": true,
49073	//       "type": "string"
49074	//     },
49075	//     "region": {
49076	//       "description": "Name of the region for this request.",
49077	//       "location": "path",
49078	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
49079	//       "required": true,
49080	//       "type": "string"
49081	//     }
49082	//   },
49083	//   "path": "{project}/regions/{region}/addresses/{address}",
49084	//   "response": {
49085	//     "$ref": "Address"
49086	//   },
49087	//   "scopes": [
49088	//     "https://www.googleapis.com/auth/cloud-platform",
49089	//     "https://www.googleapis.com/auth/compute",
49090	//     "https://www.googleapis.com/auth/compute.readonly"
49091	//   ]
49092	// }
49093
49094}
49095
49096// method id "compute.addresses.insert":
49097
49098type AddressesInsertCall struct {
49099	s          *Service
49100	project    string
49101	region     string
49102	address    *Address
49103	urlParams_ gensupport.URLParams
49104	ctx_       context.Context
49105	header_    http.Header
49106}
49107
49108// Insert: Creates an address resource in the specified project by using
49109// the data included in the request. (== suppress_warning
49110// http-rest-shadowed ==)
49111// For details, see https://cloud.google.com/compute/docs/reference/latest/addresses/insert
49112func (r *AddressesService) Insert(project string, region string, address *Address) *AddressesInsertCall {
49113	c := &AddressesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
49114	c.project = project
49115	c.region = region
49116	c.address = address
49117	return c
49118}
49119
49120// RequestId sets the optional parameter "requestId": An optional
49121// request ID to identify requests. Specify a unique request ID so that
49122// if you must retry your request, the server will know to ignore the
49123// request if it has already been completed.
49124//
49125// For example, consider a situation where you make an initial request
49126// and the request times out. If you make the request again with the
49127// same request ID, the server can check if original operation with the
49128// same request ID was received, and if so, will ignore the second
49129// request. This prevents clients from accidentally creating duplicate
49130// commitments.
49131//
49132// The request ID must be a valid UUID with the exception that zero UUID
49133// is not supported (00000000-0000-0000-0000-000000000000).
49134func (c *AddressesInsertCall) RequestId(requestId string) *AddressesInsertCall {
49135	c.urlParams_.Set("requestId", requestId)
49136	return c
49137}
49138
49139// Fields allows partial responses to be retrieved. See
49140// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
49141// for more information.
49142func (c *AddressesInsertCall) Fields(s ...googleapi.Field) *AddressesInsertCall {
49143	c.urlParams_.Set("fields", googleapi.CombineFields(s))
49144	return c
49145}
49146
49147// Context sets the context to be used in this call's Do method. Any
49148// pending HTTP request will be aborted if the provided context is
49149// canceled.
49150func (c *AddressesInsertCall) Context(ctx context.Context) *AddressesInsertCall {
49151	c.ctx_ = ctx
49152	return c
49153}
49154
49155// Header returns an http.Header that can be modified by the caller to
49156// add HTTP headers to the request.
49157func (c *AddressesInsertCall) Header() http.Header {
49158	if c.header_ == nil {
49159		c.header_ = make(http.Header)
49160	}
49161	return c.header_
49162}
49163
49164func (c *AddressesInsertCall) doRequest(alt string) (*http.Response, error) {
49165	reqHeaders := make(http.Header)
49166	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
49167	for k, v := range c.header_ {
49168		reqHeaders[k] = v
49169	}
49170	reqHeaders.Set("User-Agent", c.s.userAgent())
49171	var body io.Reader = nil
49172	body, err := googleapi.WithoutDataWrapper.JSONReader(c.address)
49173	if err != nil {
49174		return nil, err
49175	}
49176	reqHeaders.Set("Content-Type", "application/json")
49177	c.urlParams_.Set("alt", alt)
49178	c.urlParams_.Set("prettyPrint", "false")
49179	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/addresses")
49180	urls += "?" + c.urlParams_.Encode()
49181	req, err := http.NewRequest("POST", urls, body)
49182	if err != nil {
49183		return nil, err
49184	}
49185	req.Header = reqHeaders
49186	googleapi.Expand(req.URL, map[string]string{
49187		"project": c.project,
49188		"region":  c.region,
49189	})
49190	return gensupport.SendRequest(c.ctx_, c.s.client, req)
49191}
49192
49193// Do executes the "compute.addresses.insert" call.
49194// Exactly one of *Operation or error will be non-nil. Any non-2xx
49195// status code is an error. Response headers are in either
49196// *Operation.ServerResponse.Header or (if a response was returned at
49197// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
49198// to check whether the returned error was because
49199// http.StatusNotModified was returned.
49200func (c *AddressesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
49201	gensupport.SetOptions(c.urlParams_, opts...)
49202	res, err := c.doRequest("json")
49203	if res != nil && res.StatusCode == http.StatusNotModified {
49204		if res.Body != nil {
49205			res.Body.Close()
49206		}
49207		return nil, &googleapi.Error{
49208			Code:   res.StatusCode,
49209			Header: res.Header,
49210		}
49211	}
49212	if err != nil {
49213		return nil, err
49214	}
49215	defer googleapi.CloseBody(res)
49216	if err := googleapi.CheckResponse(res); err != nil {
49217		return nil, err
49218	}
49219	ret := &Operation{
49220		ServerResponse: googleapi.ServerResponse{
49221			Header:         res.Header,
49222			HTTPStatusCode: res.StatusCode,
49223		},
49224	}
49225	target := &ret
49226	if err := gensupport.DecodeResponse(target, res); err != nil {
49227		return nil, err
49228	}
49229	return ret, nil
49230	// {
49231	//   "description": "Creates an address resource in the specified project by using the data included in the request. (== suppress_warning http-rest-shadowed ==)",
49232	//   "httpMethod": "POST",
49233	//   "id": "compute.addresses.insert",
49234	//   "parameterOrder": [
49235	//     "project",
49236	//     "region"
49237	//   ],
49238	//   "parameters": {
49239	//     "project": {
49240	//       "description": "Project ID for this request.",
49241	//       "location": "path",
49242	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
49243	//       "required": true,
49244	//       "type": "string"
49245	//     },
49246	//     "region": {
49247	//       "description": "Name of the region for this request.",
49248	//       "location": "path",
49249	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
49250	//       "required": true,
49251	//       "type": "string"
49252	//     },
49253	//     "requestId": {
49254	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
49255	//       "location": "query",
49256	//       "type": "string"
49257	//     }
49258	//   },
49259	//   "path": "{project}/regions/{region}/addresses",
49260	//   "request": {
49261	//     "$ref": "Address"
49262	//   },
49263	//   "response": {
49264	//     "$ref": "Operation"
49265	//   },
49266	//   "scopes": [
49267	//     "https://www.googleapis.com/auth/cloud-platform",
49268	//     "https://www.googleapis.com/auth/compute"
49269	//   ]
49270	// }
49271
49272}
49273
49274// method id "compute.addresses.list":
49275
49276type AddressesListCall struct {
49277	s            *Service
49278	project      string
49279	region       string
49280	urlParams_   gensupport.URLParams
49281	ifNoneMatch_ string
49282	ctx_         context.Context
49283	header_      http.Header
49284}
49285
49286// List: Retrieves a list of addresses contained within the specified
49287// region. (== suppress_warning http-rest-shadowed ==)
49288// For details, see https://cloud.google.com/compute/docs/reference/latest/addresses/list
49289func (r *AddressesService) List(project string, region string) *AddressesListCall {
49290	c := &AddressesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
49291	c.project = project
49292	c.region = region
49293	return c
49294}
49295
49296// Filter sets the optional parameter "filter": A filter expression that
49297// filters resources listed in the response. The expression must specify
49298// the field name, a comparison operator, and the value that you want to
49299// use for filtering. The value must be a string, a number, or a
49300// boolean. The comparison operator must be either =, !=, >, or <.
49301//
49302// For example, if you are filtering Compute Engine instances, you can
49303// exclude instances named example-instance by specifying name !=
49304// example-instance.
49305//
49306// You can also filter nested fields. For example, you could specify
49307// scheduling.automaticRestart = false to include instances only if they
49308// are not scheduled for automatic restarts. You can use filtering on
49309// nested fields to filter based on resource labels.
49310//
49311// To filter on multiple expressions, provide each separate expression
49312// within parentheses. For example, (scheduling.automaticRestart = true)
49313// (cpuPlatform = "Intel Skylake"). By default, each expression is an
49314// AND expression. However, you can include AND and OR expressions
49315// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
49316// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
49317// true).
49318func (c *AddressesListCall) Filter(filter string) *AddressesListCall {
49319	c.urlParams_.Set("filter", filter)
49320	return c
49321}
49322
49323// MaxResults sets the optional parameter "maxResults": The maximum
49324// number of results per page that should be returned. If the number of
49325// available results is larger than maxResults, Compute Engine returns a
49326// nextPageToken that can be used to get the next page of results in
49327// subsequent list requests. Acceptable values are 0 to 500, inclusive.
49328// (Default: 500)
49329func (c *AddressesListCall) MaxResults(maxResults int64) *AddressesListCall {
49330	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
49331	return c
49332}
49333
49334// OrderBy sets the optional parameter "orderBy": Sorts list results by
49335// a certain order. By default, results are returned in alphanumerical
49336// order based on the resource name.
49337//
49338// You can also sort results in descending order based on the creation
49339// timestamp using orderBy="creationTimestamp desc". This sorts results
49340// based on the creationTimestamp field in reverse chronological order
49341// (newest result first). Use this to sort resources like operations so
49342// that the newest operation is returned first.
49343//
49344// Currently, only sorting by name or creationTimestamp desc is
49345// supported.
49346func (c *AddressesListCall) OrderBy(orderBy string) *AddressesListCall {
49347	c.urlParams_.Set("orderBy", orderBy)
49348	return c
49349}
49350
49351// PageToken sets the optional parameter "pageToken": Specifies a page
49352// token to use. Set pageToken to the nextPageToken returned by a
49353// previous list request to get the next page of results.
49354func (c *AddressesListCall) PageToken(pageToken string) *AddressesListCall {
49355	c.urlParams_.Set("pageToken", pageToken)
49356	return c
49357}
49358
49359// Fields allows partial responses to be retrieved. See
49360// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
49361// for more information.
49362func (c *AddressesListCall) Fields(s ...googleapi.Field) *AddressesListCall {
49363	c.urlParams_.Set("fields", googleapi.CombineFields(s))
49364	return c
49365}
49366
49367// IfNoneMatch sets the optional parameter which makes the operation
49368// fail if the object's ETag matches the given value. This is useful for
49369// getting updates only after the object has changed since the last
49370// request. Use googleapi.IsNotModified to check whether the response
49371// error from Do is the result of In-None-Match.
49372func (c *AddressesListCall) IfNoneMatch(entityTag string) *AddressesListCall {
49373	c.ifNoneMatch_ = entityTag
49374	return c
49375}
49376
49377// Context sets the context to be used in this call's Do method. Any
49378// pending HTTP request will be aborted if the provided context is
49379// canceled.
49380func (c *AddressesListCall) Context(ctx context.Context) *AddressesListCall {
49381	c.ctx_ = ctx
49382	return c
49383}
49384
49385// Header returns an http.Header that can be modified by the caller to
49386// add HTTP headers to the request.
49387func (c *AddressesListCall) Header() http.Header {
49388	if c.header_ == nil {
49389		c.header_ = make(http.Header)
49390	}
49391	return c.header_
49392}
49393
49394func (c *AddressesListCall) doRequest(alt string) (*http.Response, error) {
49395	reqHeaders := make(http.Header)
49396	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
49397	for k, v := range c.header_ {
49398		reqHeaders[k] = v
49399	}
49400	reqHeaders.Set("User-Agent", c.s.userAgent())
49401	if c.ifNoneMatch_ != "" {
49402		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
49403	}
49404	var body io.Reader = nil
49405	c.urlParams_.Set("alt", alt)
49406	c.urlParams_.Set("prettyPrint", "false")
49407	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/addresses")
49408	urls += "?" + c.urlParams_.Encode()
49409	req, err := http.NewRequest("GET", urls, body)
49410	if err != nil {
49411		return nil, err
49412	}
49413	req.Header = reqHeaders
49414	googleapi.Expand(req.URL, map[string]string{
49415		"project": c.project,
49416		"region":  c.region,
49417	})
49418	return gensupport.SendRequest(c.ctx_, c.s.client, req)
49419}
49420
49421// Do executes the "compute.addresses.list" call.
49422// Exactly one of *AddressList or error will be non-nil. Any non-2xx
49423// status code is an error. Response headers are in either
49424// *AddressList.ServerResponse.Header or (if a response was returned at
49425// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
49426// to check whether the returned error was because
49427// http.StatusNotModified was returned.
49428func (c *AddressesListCall) Do(opts ...googleapi.CallOption) (*AddressList, error) {
49429	gensupport.SetOptions(c.urlParams_, opts...)
49430	res, err := c.doRequest("json")
49431	if res != nil && res.StatusCode == http.StatusNotModified {
49432		if res.Body != nil {
49433			res.Body.Close()
49434		}
49435		return nil, &googleapi.Error{
49436			Code:   res.StatusCode,
49437			Header: res.Header,
49438		}
49439	}
49440	if err != nil {
49441		return nil, err
49442	}
49443	defer googleapi.CloseBody(res)
49444	if err := googleapi.CheckResponse(res); err != nil {
49445		return nil, err
49446	}
49447	ret := &AddressList{
49448		ServerResponse: googleapi.ServerResponse{
49449			Header:         res.Header,
49450			HTTPStatusCode: res.StatusCode,
49451		},
49452	}
49453	target := &ret
49454	if err := gensupport.DecodeResponse(target, res); err != nil {
49455		return nil, err
49456	}
49457	return ret, nil
49458	// {
49459	//   "description": "Retrieves a list of addresses contained within the specified region. (== suppress_warning http-rest-shadowed ==)",
49460	//   "httpMethod": "GET",
49461	//   "id": "compute.addresses.list",
49462	//   "parameterOrder": [
49463	//     "project",
49464	//     "region"
49465	//   ],
49466	//   "parameters": {
49467	//     "filter": {
49468	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
49469	//       "location": "query",
49470	//       "type": "string"
49471	//     },
49472	//     "maxResults": {
49473	//       "default": "500",
49474	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
49475	//       "format": "uint32",
49476	//       "location": "query",
49477	//       "minimum": "0",
49478	//       "type": "integer"
49479	//     },
49480	//     "orderBy": {
49481	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
49482	//       "location": "query",
49483	//       "type": "string"
49484	//     },
49485	//     "pageToken": {
49486	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
49487	//       "location": "query",
49488	//       "type": "string"
49489	//     },
49490	//     "project": {
49491	//       "description": "Project ID for this request.",
49492	//       "location": "path",
49493	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
49494	//       "required": true,
49495	//       "type": "string"
49496	//     },
49497	//     "region": {
49498	//       "description": "Name of the region for this request.",
49499	//       "location": "path",
49500	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
49501	//       "required": true,
49502	//       "type": "string"
49503	//     }
49504	//   },
49505	//   "path": "{project}/regions/{region}/addresses",
49506	//   "response": {
49507	//     "$ref": "AddressList"
49508	//   },
49509	//   "scopes": [
49510	//     "https://www.googleapis.com/auth/cloud-platform",
49511	//     "https://www.googleapis.com/auth/compute",
49512	//     "https://www.googleapis.com/auth/compute.readonly"
49513	//   ]
49514	// }
49515
49516}
49517
49518// Pages invokes f for each page of results.
49519// A non-nil error returned from f will halt the iteration.
49520// The provided context supersedes any context provided to the Context method.
49521func (c *AddressesListCall) Pages(ctx context.Context, f func(*AddressList) error) error {
49522	c.ctx_ = ctx
49523	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
49524	for {
49525		x, err := c.Do()
49526		if err != nil {
49527			return err
49528		}
49529		if err := f(x); err != nil {
49530			return err
49531		}
49532		if x.NextPageToken == "" {
49533			return nil
49534		}
49535		c.PageToken(x.NextPageToken)
49536	}
49537}
49538
49539// method id "compute.addresses.setLabels":
49540
49541type AddressesSetLabelsCall struct {
49542	s                      *Service
49543	project                string
49544	region                 string
49545	resource               string
49546	regionsetlabelsrequest *RegionSetLabelsRequest
49547	urlParams_             gensupport.URLParams
49548	ctx_                   context.Context
49549	header_                http.Header
49550}
49551
49552// SetLabels: Sets the labels on an Address. To learn more about labels,
49553// read the Labeling Resources documentation. (== suppress_warning
49554// http-rest-shadowed ==)
49555func (r *AddressesService) SetLabels(project string, region string, resource string, regionsetlabelsrequest *RegionSetLabelsRequest) *AddressesSetLabelsCall {
49556	c := &AddressesSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
49557	c.project = project
49558	c.region = region
49559	c.resource = resource
49560	c.regionsetlabelsrequest = regionsetlabelsrequest
49561	return c
49562}
49563
49564// RequestId sets the optional parameter "requestId": An optional
49565// request ID to identify requests. Specify a unique request ID so that
49566// if you must retry your request, the server will know to ignore the
49567// request if it has already been completed.
49568//
49569// For example, consider a situation where you make an initial request
49570// and the request times out. If you make the request again with the
49571// same request ID, the server can check if original operation with the
49572// same request ID was received, and if so, will ignore the second
49573// request. This prevents clients from accidentally creating duplicate
49574// commitments.
49575//
49576// The request ID must be a valid UUID with the exception that zero UUID
49577// is not supported (00000000-0000-0000-0000-000000000000).
49578func (c *AddressesSetLabelsCall) RequestId(requestId string) *AddressesSetLabelsCall {
49579	c.urlParams_.Set("requestId", requestId)
49580	return c
49581}
49582
49583// Fields allows partial responses to be retrieved. See
49584// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
49585// for more information.
49586func (c *AddressesSetLabelsCall) Fields(s ...googleapi.Field) *AddressesSetLabelsCall {
49587	c.urlParams_.Set("fields", googleapi.CombineFields(s))
49588	return c
49589}
49590
49591// Context sets the context to be used in this call's Do method. Any
49592// pending HTTP request will be aborted if the provided context is
49593// canceled.
49594func (c *AddressesSetLabelsCall) Context(ctx context.Context) *AddressesSetLabelsCall {
49595	c.ctx_ = ctx
49596	return c
49597}
49598
49599// Header returns an http.Header that can be modified by the caller to
49600// add HTTP headers to the request.
49601func (c *AddressesSetLabelsCall) Header() http.Header {
49602	if c.header_ == nil {
49603		c.header_ = make(http.Header)
49604	}
49605	return c.header_
49606}
49607
49608func (c *AddressesSetLabelsCall) doRequest(alt string) (*http.Response, error) {
49609	reqHeaders := make(http.Header)
49610	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
49611	for k, v := range c.header_ {
49612		reqHeaders[k] = v
49613	}
49614	reqHeaders.Set("User-Agent", c.s.userAgent())
49615	var body io.Reader = nil
49616	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetlabelsrequest)
49617	if err != nil {
49618		return nil, err
49619	}
49620	reqHeaders.Set("Content-Type", "application/json")
49621	c.urlParams_.Set("alt", alt)
49622	c.urlParams_.Set("prettyPrint", "false")
49623	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/addresses/{resource}/setLabels")
49624	urls += "?" + c.urlParams_.Encode()
49625	req, err := http.NewRequest("POST", urls, body)
49626	if err != nil {
49627		return nil, err
49628	}
49629	req.Header = reqHeaders
49630	googleapi.Expand(req.URL, map[string]string{
49631		"project":  c.project,
49632		"region":   c.region,
49633		"resource": c.resource,
49634	})
49635	return gensupport.SendRequest(c.ctx_, c.s.client, req)
49636}
49637
49638// Do executes the "compute.addresses.setLabels" call.
49639// Exactly one of *Operation or error will be non-nil. Any non-2xx
49640// status code is an error. Response headers are in either
49641// *Operation.ServerResponse.Header or (if a response was returned at
49642// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
49643// to check whether the returned error was because
49644// http.StatusNotModified was returned.
49645func (c *AddressesSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
49646	gensupport.SetOptions(c.urlParams_, opts...)
49647	res, err := c.doRequest("json")
49648	if res != nil && res.StatusCode == http.StatusNotModified {
49649		if res.Body != nil {
49650			res.Body.Close()
49651		}
49652		return nil, &googleapi.Error{
49653			Code:   res.StatusCode,
49654			Header: res.Header,
49655		}
49656	}
49657	if err != nil {
49658		return nil, err
49659	}
49660	defer googleapi.CloseBody(res)
49661	if err := googleapi.CheckResponse(res); err != nil {
49662		return nil, err
49663	}
49664	ret := &Operation{
49665		ServerResponse: googleapi.ServerResponse{
49666			Header:         res.Header,
49667			HTTPStatusCode: res.StatusCode,
49668		},
49669	}
49670	target := &ret
49671	if err := gensupport.DecodeResponse(target, res); err != nil {
49672		return nil, err
49673	}
49674	return ret, nil
49675	// {
49676	//   "description": "Sets the labels on an Address. To learn more about labels, read the Labeling Resources documentation. (== suppress_warning http-rest-shadowed ==)",
49677	//   "httpMethod": "POST",
49678	//   "id": "compute.addresses.setLabels",
49679	//   "parameterOrder": [
49680	//     "project",
49681	//     "region",
49682	//     "resource"
49683	//   ],
49684	//   "parameters": {
49685	//     "project": {
49686	//       "description": "Project ID for this request.",
49687	//       "location": "path",
49688	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
49689	//       "required": true,
49690	//       "type": "string"
49691	//     },
49692	//     "region": {
49693	//       "description": "The region for this request.",
49694	//       "location": "path",
49695	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
49696	//       "required": true,
49697	//       "type": "string"
49698	//     },
49699	//     "requestId": {
49700	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
49701	//       "location": "query",
49702	//       "type": "string"
49703	//     },
49704	//     "resource": {
49705	//       "description": "Name or id of the resource for this request.",
49706	//       "location": "path",
49707	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
49708	//       "required": true,
49709	//       "type": "string"
49710	//     }
49711	//   },
49712	//   "path": "{project}/regions/{region}/addresses/{resource}/setLabels",
49713	//   "request": {
49714	//     "$ref": "RegionSetLabelsRequest"
49715	//   },
49716	//   "response": {
49717	//     "$ref": "Operation"
49718	//   },
49719	//   "scopes": [
49720	//     "https://www.googleapis.com/auth/cloud-platform",
49721	//     "https://www.googleapis.com/auth/compute"
49722	//   ]
49723	// }
49724
49725}
49726
49727// method id "compute.addresses.testIamPermissions":
49728
49729type AddressesTestIamPermissionsCall struct {
49730	s                      *Service
49731	project                string
49732	region                 string
49733	resource               string
49734	testpermissionsrequest *TestPermissionsRequest
49735	urlParams_             gensupport.URLParams
49736	ctx_                   context.Context
49737	header_                http.Header
49738}
49739
49740// TestIamPermissions: Returns permissions that a caller has on the
49741// specified resource. (== suppress_warning http-rest-shadowed ==)
49742func (r *AddressesService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *AddressesTestIamPermissionsCall {
49743	c := &AddressesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
49744	c.project = project
49745	c.region = region
49746	c.resource = resource
49747	c.testpermissionsrequest = testpermissionsrequest
49748	return c
49749}
49750
49751// Fields allows partial responses to be retrieved. See
49752// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
49753// for more information.
49754func (c *AddressesTestIamPermissionsCall) Fields(s ...googleapi.Field) *AddressesTestIamPermissionsCall {
49755	c.urlParams_.Set("fields", googleapi.CombineFields(s))
49756	return c
49757}
49758
49759// Context sets the context to be used in this call's Do method. Any
49760// pending HTTP request will be aborted if the provided context is
49761// canceled.
49762func (c *AddressesTestIamPermissionsCall) Context(ctx context.Context) *AddressesTestIamPermissionsCall {
49763	c.ctx_ = ctx
49764	return c
49765}
49766
49767// Header returns an http.Header that can be modified by the caller to
49768// add HTTP headers to the request.
49769func (c *AddressesTestIamPermissionsCall) Header() http.Header {
49770	if c.header_ == nil {
49771		c.header_ = make(http.Header)
49772	}
49773	return c.header_
49774}
49775
49776func (c *AddressesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
49777	reqHeaders := make(http.Header)
49778	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
49779	for k, v := range c.header_ {
49780		reqHeaders[k] = v
49781	}
49782	reqHeaders.Set("User-Agent", c.s.userAgent())
49783	var body io.Reader = nil
49784	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
49785	if err != nil {
49786		return nil, err
49787	}
49788	reqHeaders.Set("Content-Type", "application/json")
49789	c.urlParams_.Set("alt", alt)
49790	c.urlParams_.Set("prettyPrint", "false")
49791	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/addresses/{resource}/testIamPermissions")
49792	urls += "?" + c.urlParams_.Encode()
49793	req, err := http.NewRequest("POST", urls, body)
49794	if err != nil {
49795		return nil, err
49796	}
49797	req.Header = reqHeaders
49798	googleapi.Expand(req.URL, map[string]string{
49799		"project":  c.project,
49800		"region":   c.region,
49801		"resource": c.resource,
49802	})
49803	return gensupport.SendRequest(c.ctx_, c.s.client, req)
49804}
49805
49806// Do executes the "compute.addresses.testIamPermissions" call.
49807// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
49808// non-2xx status code is an error. Response headers are in either
49809// *TestPermissionsResponse.ServerResponse.Header or (if a response was
49810// returned at all) in error.(*googleapi.Error).Header. Use
49811// googleapi.IsNotModified to check whether the returned error was
49812// because http.StatusNotModified was returned.
49813func (c *AddressesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
49814	gensupport.SetOptions(c.urlParams_, opts...)
49815	res, err := c.doRequest("json")
49816	if res != nil && res.StatusCode == http.StatusNotModified {
49817		if res.Body != nil {
49818			res.Body.Close()
49819		}
49820		return nil, &googleapi.Error{
49821			Code:   res.StatusCode,
49822			Header: res.Header,
49823		}
49824	}
49825	if err != nil {
49826		return nil, err
49827	}
49828	defer googleapi.CloseBody(res)
49829	if err := googleapi.CheckResponse(res); err != nil {
49830		return nil, err
49831	}
49832	ret := &TestPermissionsResponse{
49833		ServerResponse: googleapi.ServerResponse{
49834			Header:         res.Header,
49835			HTTPStatusCode: res.StatusCode,
49836		},
49837	}
49838	target := &ret
49839	if err := gensupport.DecodeResponse(target, res); err != nil {
49840		return nil, err
49841	}
49842	return ret, nil
49843	// {
49844	//   "description": "Returns permissions that a caller has on the specified resource. (== suppress_warning http-rest-shadowed ==)",
49845	//   "httpMethod": "POST",
49846	//   "id": "compute.addresses.testIamPermissions",
49847	//   "parameterOrder": [
49848	//     "project",
49849	//     "region",
49850	//     "resource"
49851	//   ],
49852	//   "parameters": {
49853	//     "project": {
49854	//       "description": "Project ID for this request.",
49855	//       "location": "path",
49856	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
49857	//       "required": true,
49858	//       "type": "string"
49859	//     },
49860	//     "region": {
49861	//       "description": "The name of the region for this request.",
49862	//       "location": "path",
49863	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
49864	//       "required": true,
49865	//       "type": "string"
49866	//     },
49867	//     "resource": {
49868	//       "description": "Name or id of the resource for this request.",
49869	//       "location": "path",
49870	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
49871	//       "required": true,
49872	//       "type": "string"
49873	//     }
49874	//   },
49875	//   "path": "{project}/regions/{region}/addresses/{resource}/testIamPermissions",
49876	//   "request": {
49877	//     "$ref": "TestPermissionsRequest"
49878	//   },
49879	//   "response": {
49880	//     "$ref": "TestPermissionsResponse"
49881	//   },
49882	//   "scopes": [
49883	//     "https://www.googleapis.com/auth/cloud-platform",
49884	//     "https://www.googleapis.com/auth/compute",
49885	//     "https://www.googleapis.com/auth/compute.readonly"
49886	//   ]
49887	// }
49888
49889}
49890
49891// method id "compute.autoscalers.aggregatedList":
49892
49893type AutoscalersAggregatedListCall struct {
49894	s            *Service
49895	project      string
49896	urlParams_   gensupport.URLParams
49897	ifNoneMatch_ string
49898	ctx_         context.Context
49899	header_      http.Header
49900}
49901
49902// AggregatedList: Retrieves an aggregated list of autoscalers. (==
49903// suppress_warning http-rest-shadowed ==)
49904func (r *AutoscalersService) AggregatedList(project string) *AutoscalersAggregatedListCall {
49905	c := &AutoscalersAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
49906	c.project = project
49907	return c
49908}
49909
49910// Filter sets the optional parameter "filter": A filter expression that
49911// filters resources listed in the response. The expression must specify
49912// the field name, a comparison operator, and the value that you want to
49913// use for filtering. The value must be a string, a number, or a
49914// boolean. The comparison operator must be either =, !=, >, or <.
49915//
49916// For example, if you are filtering Compute Engine instances, you can
49917// exclude instances named example-instance by specifying name !=
49918// example-instance.
49919//
49920// You can also filter nested fields. For example, you could specify
49921// scheduling.automaticRestart = false to include instances only if they
49922// are not scheduled for automatic restarts. You can use filtering on
49923// nested fields to filter based on resource labels.
49924//
49925// To filter on multiple expressions, provide each separate expression
49926// within parentheses. For example, (scheduling.automaticRestart = true)
49927// (cpuPlatform = "Intel Skylake"). By default, each expression is an
49928// AND expression. However, you can include AND and OR expressions
49929// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
49930// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
49931// true).
49932func (c *AutoscalersAggregatedListCall) Filter(filter string) *AutoscalersAggregatedListCall {
49933	c.urlParams_.Set("filter", filter)
49934	return c
49935}
49936
49937// MaxResults sets the optional parameter "maxResults": The maximum
49938// number of results per page that should be returned. If the number of
49939// available results is larger than maxResults, Compute Engine returns a
49940// nextPageToken that can be used to get the next page of results in
49941// subsequent list requests. Acceptable values are 0 to 500, inclusive.
49942// (Default: 500)
49943func (c *AutoscalersAggregatedListCall) MaxResults(maxResults int64) *AutoscalersAggregatedListCall {
49944	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
49945	return c
49946}
49947
49948// OrderBy sets the optional parameter "orderBy": Sorts list results by
49949// a certain order. By default, results are returned in alphanumerical
49950// order based on the resource name.
49951//
49952// You can also sort results in descending order based on the creation
49953// timestamp using orderBy="creationTimestamp desc". This sorts results
49954// based on the creationTimestamp field in reverse chronological order
49955// (newest result first). Use this to sort resources like operations so
49956// that the newest operation is returned first.
49957//
49958// Currently, only sorting by name or creationTimestamp desc is
49959// supported.
49960func (c *AutoscalersAggregatedListCall) OrderBy(orderBy string) *AutoscalersAggregatedListCall {
49961	c.urlParams_.Set("orderBy", orderBy)
49962	return c
49963}
49964
49965// PageToken sets the optional parameter "pageToken": Specifies a page
49966// token to use. Set pageToken to the nextPageToken returned by a
49967// previous list request to get the next page of results.
49968func (c *AutoscalersAggregatedListCall) PageToken(pageToken string) *AutoscalersAggregatedListCall {
49969	c.urlParams_.Set("pageToken", pageToken)
49970	return c
49971}
49972
49973// Fields allows partial responses to be retrieved. See
49974// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
49975// for more information.
49976func (c *AutoscalersAggregatedListCall) Fields(s ...googleapi.Field) *AutoscalersAggregatedListCall {
49977	c.urlParams_.Set("fields", googleapi.CombineFields(s))
49978	return c
49979}
49980
49981// IfNoneMatch sets the optional parameter which makes the operation
49982// fail if the object's ETag matches the given value. This is useful for
49983// getting updates only after the object has changed since the last
49984// request. Use googleapi.IsNotModified to check whether the response
49985// error from Do is the result of In-None-Match.
49986func (c *AutoscalersAggregatedListCall) IfNoneMatch(entityTag string) *AutoscalersAggregatedListCall {
49987	c.ifNoneMatch_ = entityTag
49988	return c
49989}
49990
49991// Context sets the context to be used in this call's Do method. Any
49992// pending HTTP request will be aborted if the provided context is
49993// canceled.
49994func (c *AutoscalersAggregatedListCall) Context(ctx context.Context) *AutoscalersAggregatedListCall {
49995	c.ctx_ = ctx
49996	return c
49997}
49998
49999// Header returns an http.Header that can be modified by the caller to
50000// add HTTP headers to the request.
50001func (c *AutoscalersAggregatedListCall) Header() http.Header {
50002	if c.header_ == nil {
50003		c.header_ = make(http.Header)
50004	}
50005	return c.header_
50006}
50007
50008func (c *AutoscalersAggregatedListCall) doRequest(alt string) (*http.Response, error) {
50009	reqHeaders := make(http.Header)
50010	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
50011	for k, v := range c.header_ {
50012		reqHeaders[k] = v
50013	}
50014	reqHeaders.Set("User-Agent", c.s.userAgent())
50015	if c.ifNoneMatch_ != "" {
50016		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
50017	}
50018	var body io.Reader = nil
50019	c.urlParams_.Set("alt", alt)
50020	c.urlParams_.Set("prettyPrint", "false")
50021	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/autoscalers")
50022	urls += "?" + c.urlParams_.Encode()
50023	req, err := http.NewRequest("GET", urls, body)
50024	if err != nil {
50025		return nil, err
50026	}
50027	req.Header = reqHeaders
50028	googleapi.Expand(req.URL, map[string]string{
50029		"project": c.project,
50030	})
50031	return gensupport.SendRequest(c.ctx_, c.s.client, req)
50032}
50033
50034// Do executes the "compute.autoscalers.aggregatedList" call.
50035// Exactly one of *AutoscalerAggregatedList or error will be non-nil.
50036// Any non-2xx status code is an error. Response headers are in either
50037// *AutoscalerAggregatedList.ServerResponse.Header or (if a response was
50038// returned at all) in error.(*googleapi.Error).Header. Use
50039// googleapi.IsNotModified to check whether the returned error was
50040// because http.StatusNotModified was returned.
50041func (c *AutoscalersAggregatedListCall) Do(opts ...googleapi.CallOption) (*AutoscalerAggregatedList, error) {
50042	gensupport.SetOptions(c.urlParams_, opts...)
50043	res, err := c.doRequest("json")
50044	if res != nil && res.StatusCode == http.StatusNotModified {
50045		if res.Body != nil {
50046			res.Body.Close()
50047		}
50048		return nil, &googleapi.Error{
50049			Code:   res.StatusCode,
50050			Header: res.Header,
50051		}
50052	}
50053	if err != nil {
50054		return nil, err
50055	}
50056	defer googleapi.CloseBody(res)
50057	if err := googleapi.CheckResponse(res); err != nil {
50058		return nil, err
50059	}
50060	ret := &AutoscalerAggregatedList{
50061		ServerResponse: googleapi.ServerResponse{
50062			Header:         res.Header,
50063			HTTPStatusCode: res.StatusCode,
50064		},
50065	}
50066	target := &ret
50067	if err := gensupport.DecodeResponse(target, res); err != nil {
50068		return nil, err
50069	}
50070	return ret, nil
50071	// {
50072	//   "description": "Retrieves an aggregated list of autoscalers. (== suppress_warning http-rest-shadowed ==)",
50073	//   "httpMethod": "GET",
50074	//   "id": "compute.autoscalers.aggregatedList",
50075	//   "parameterOrder": [
50076	//     "project"
50077	//   ],
50078	//   "parameters": {
50079	//     "filter": {
50080	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
50081	//       "location": "query",
50082	//       "type": "string"
50083	//     },
50084	//     "maxResults": {
50085	//       "default": "500",
50086	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
50087	//       "format": "uint32",
50088	//       "location": "query",
50089	//       "minimum": "0",
50090	//       "type": "integer"
50091	//     },
50092	//     "orderBy": {
50093	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
50094	//       "location": "query",
50095	//       "type": "string"
50096	//     },
50097	//     "pageToken": {
50098	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
50099	//       "location": "query",
50100	//       "type": "string"
50101	//     },
50102	//     "project": {
50103	//       "description": "Project ID for this request.",
50104	//       "location": "path",
50105	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
50106	//       "required": true,
50107	//       "type": "string"
50108	//     }
50109	//   },
50110	//   "path": "{project}/aggregated/autoscalers",
50111	//   "response": {
50112	//     "$ref": "AutoscalerAggregatedList"
50113	//   },
50114	//   "scopes": [
50115	//     "https://www.googleapis.com/auth/cloud-platform",
50116	//     "https://www.googleapis.com/auth/compute",
50117	//     "https://www.googleapis.com/auth/compute.readonly"
50118	//   ]
50119	// }
50120
50121}
50122
50123// Pages invokes f for each page of results.
50124// A non-nil error returned from f will halt the iteration.
50125// The provided context supersedes any context provided to the Context method.
50126func (c *AutoscalersAggregatedListCall) Pages(ctx context.Context, f func(*AutoscalerAggregatedList) error) error {
50127	c.ctx_ = ctx
50128	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
50129	for {
50130		x, err := c.Do()
50131		if err != nil {
50132			return err
50133		}
50134		if err := f(x); err != nil {
50135			return err
50136		}
50137		if x.NextPageToken == "" {
50138			return nil
50139		}
50140		c.PageToken(x.NextPageToken)
50141	}
50142}
50143
50144// method id "compute.autoscalers.delete":
50145
50146type AutoscalersDeleteCall struct {
50147	s          *Service
50148	project    string
50149	zone       string
50150	autoscaler string
50151	urlParams_ gensupport.URLParams
50152	ctx_       context.Context
50153	header_    http.Header
50154}
50155
50156// Delete: Deletes the specified autoscaler. (== suppress_warning
50157// http-rest-shadowed ==)
50158func (r *AutoscalersService) Delete(project string, zone string, autoscaler string) *AutoscalersDeleteCall {
50159	c := &AutoscalersDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
50160	c.project = project
50161	c.zone = zone
50162	c.autoscaler = autoscaler
50163	return c
50164}
50165
50166// RequestId sets the optional parameter "requestId": An optional
50167// request ID to identify requests. Specify a unique request ID so that
50168// if you must retry your request, the server will know to ignore the
50169// request if it has already been completed.
50170//
50171// For example, consider a situation where you make an initial request
50172// and the request times out. If you make the request again with the
50173// same request ID, the server can check if original operation with the
50174// same request ID was received, and if so, will ignore the second
50175// request. This prevents clients from accidentally creating duplicate
50176// commitments.
50177//
50178// The request ID must be a valid UUID with the exception that zero UUID
50179// is not supported (00000000-0000-0000-0000-000000000000).
50180func (c *AutoscalersDeleteCall) RequestId(requestId string) *AutoscalersDeleteCall {
50181	c.urlParams_.Set("requestId", requestId)
50182	return c
50183}
50184
50185// Fields allows partial responses to be retrieved. See
50186// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
50187// for more information.
50188func (c *AutoscalersDeleteCall) Fields(s ...googleapi.Field) *AutoscalersDeleteCall {
50189	c.urlParams_.Set("fields", googleapi.CombineFields(s))
50190	return c
50191}
50192
50193// Context sets the context to be used in this call's Do method. Any
50194// pending HTTP request will be aborted if the provided context is
50195// canceled.
50196func (c *AutoscalersDeleteCall) Context(ctx context.Context) *AutoscalersDeleteCall {
50197	c.ctx_ = ctx
50198	return c
50199}
50200
50201// Header returns an http.Header that can be modified by the caller to
50202// add HTTP headers to the request.
50203func (c *AutoscalersDeleteCall) Header() http.Header {
50204	if c.header_ == nil {
50205		c.header_ = make(http.Header)
50206	}
50207	return c.header_
50208}
50209
50210func (c *AutoscalersDeleteCall) doRequest(alt string) (*http.Response, error) {
50211	reqHeaders := make(http.Header)
50212	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
50213	for k, v := range c.header_ {
50214		reqHeaders[k] = v
50215	}
50216	reqHeaders.Set("User-Agent", c.s.userAgent())
50217	var body io.Reader = nil
50218	c.urlParams_.Set("alt", alt)
50219	c.urlParams_.Set("prettyPrint", "false")
50220	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/autoscalers/{autoscaler}")
50221	urls += "?" + c.urlParams_.Encode()
50222	req, err := http.NewRequest("DELETE", urls, body)
50223	if err != nil {
50224		return nil, err
50225	}
50226	req.Header = reqHeaders
50227	googleapi.Expand(req.URL, map[string]string{
50228		"project":    c.project,
50229		"zone":       c.zone,
50230		"autoscaler": c.autoscaler,
50231	})
50232	return gensupport.SendRequest(c.ctx_, c.s.client, req)
50233}
50234
50235// Do executes the "compute.autoscalers.delete" call.
50236// Exactly one of *Operation or error will be non-nil. Any non-2xx
50237// status code is an error. Response headers are in either
50238// *Operation.ServerResponse.Header or (if a response was returned at
50239// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
50240// to check whether the returned error was because
50241// http.StatusNotModified was returned.
50242func (c *AutoscalersDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
50243	gensupport.SetOptions(c.urlParams_, opts...)
50244	res, err := c.doRequest("json")
50245	if res != nil && res.StatusCode == http.StatusNotModified {
50246		if res.Body != nil {
50247			res.Body.Close()
50248		}
50249		return nil, &googleapi.Error{
50250			Code:   res.StatusCode,
50251			Header: res.Header,
50252		}
50253	}
50254	if err != nil {
50255		return nil, err
50256	}
50257	defer googleapi.CloseBody(res)
50258	if err := googleapi.CheckResponse(res); err != nil {
50259		return nil, err
50260	}
50261	ret := &Operation{
50262		ServerResponse: googleapi.ServerResponse{
50263			Header:         res.Header,
50264			HTTPStatusCode: res.StatusCode,
50265		},
50266	}
50267	target := &ret
50268	if err := gensupport.DecodeResponse(target, res); err != nil {
50269		return nil, err
50270	}
50271	return ret, nil
50272	// {
50273	//   "description": "Deletes the specified autoscaler. (== suppress_warning http-rest-shadowed ==)",
50274	//   "httpMethod": "DELETE",
50275	//   "id": "compute.autoscalers.delete",
50276	//   "parameterOrder": [
50277	//     "project",
50278	//     "zone",
50279	//     "autoscaler"
50280	//   ],
50281	//   "parameters": {
50282	//     "autoscaler": {
50283	//       "description": "Name of the autoscaler to delete.",
50284	//       "location": "path",
50285	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
50286	//       "required": true,
50287	//       "type": "string"
50288	//     },
50289	//     "project": {
50290	//       "description": "Project ID for this request.",
50291	//       "location": "path",
50292	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
50293	//       "required": true,
50294	//       "type": "string"
50295	//     },
50296	//     "requestId": {
50297	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
50298	//       "location": "query",
50299	//       "type": "string"
50300	//     },
50301	//     "zone": {
50302	//       "description": "Name of the zone for this request.",
50303	//       "location": "path",
50304	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
50305	//       "required": true,
50306	//       "type": "string"
50307	//     }
50308	//   },
50309	//   "path": "{project}/zones/{zone}/autoscalers/{autoscaler}",
50310	//   "response": {
50311	//     "$ref": "Operation"
50312	//   },
50313	//   "scopes": [
50314	//     "https://www.googleapis.com/auth/cloud-platform",
50315	//     "https://www.googleapis.com/auth/compute"
50316	//   ]
50317	// }
50318
50319}
50320
50321// method id "compute.autoscalers.get":
50322
50323type AutoscalersGetCall struct {
50324	s            *Service
50325	project      string
50326	zone         string
50327	autoscaler   string
50328	urlParams_   gensupport.URLParams
50329	ifNoneMatch_ string
50330	ctx_         context.Context
50331	header_      http.Header
50332}
50333
50334// Get: Returns the specified autoscaler resource. Gets a list of
50335// available autoscalers by making a list() request. (==
50336// suppress_warning http-rest-shadowed ==)
50337func (r *AutoscalersService) Get(project string, zone string, autoscaler string) *AutoscalersGetCall {
50338	c := &AutoscalersGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
50339	c.project = project
50340	c.zone = zone
50341	c.autoscaler = autoscaler
50342	return c
50343}
50344
50345// Fields allows partial responses to be retrieved. See
50346// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
50347// for more information.
50348func (c *AutoscalersGetCall) Fields(s ...googleapi.Field) *AutoscalersGetCall {
50349	c.urlParams_.Set("fields", googleapi.CombineFields(s))
50350	return c
50351}
50352
50353// IfNoneMatch sets the optional parameter which makes the operation
50354// fail if the object's ETag matches the given value. This is useful for
50355// getting updates only after the object has changed since the last
50356// request. Use googleapi.IsNotModified to check whether the response
50357// error from Do is the result of In-None-Match.
50358func (c *AutoscalersGetCall) IfNoneMatch(entityTag string) *AutoscalersGetCall {
50359	c.ifNoneMatch_ = entityTag
50360	return c
50361}
50362
50363// Context sets the context to be used in this call's Do method. Any
50364// pending HTTP request will be aborted if the provided context is
50365// canceled.
50366func (c *AutoscalersGetCall) Context(ctx context.Context) *AutoscalersGetCall {
50367	c.ctx_ = ctx
50368	return c
50369}
50370
50371// Header returns an http.Header that can be modified by the caller to
50372// add HTTP headers to the request.
50373func (c *AutoscalersGetCall) Header() http.Header {
50374	if c.header_ == nil {
50375		c.header_ = make(http.Header)
50376	}
50377	return c.header_
50378}
50379
50380func (c *AutoscalersGetCall) doRequest(alt string) (*http.Response, error) {
50381	reqHeaders := make(http.Header)
50382	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
50383	for k, v := range c.header_ {
50384		reqHeaders[k] = v
50385	}
50386	reqHeaders.Set("User-Agent", c.s.userAgent())
50387	if c.ifNoneMatch_ != "" {
50388		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
50389	}
50390	var body io.Reader = nil
50391	c.urlParams_.Set("alt", alt)
50392	c.urlParams_.Set("prettyPrint", "false")
50393	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/autoscalers/{autoscaler}")
50394	urls += "?" + c.urlParams_.Encode()
50395	req, err := http.NewRequest("GET", urls, body)
50396	if err != nil {
50397		return nil, err
50398	}
50399	req.Header = reqHeaders
50400	googleapi.Expand(req.URL, map[string]string{
50401		"project":    c.project,
50402		"zone":       c.zone,
50403		"autoscaler": c.autoscaler,
50404	})
50405	return gensupport.SendRequest(c.ctx_, c.s.client, req)
50406}
50407
50408// Do executes the "compute.autoscalers.get" call.
50409// Exactly one of *Autoscaler or error will be non-nil. Any non-2xx
50410// status code is an error. Response headers are in either
50411// *Autoscaler.ServerResponse.Header or (if a response was returned at
50412// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
50413// to check whether the returned error was because
50414// http.StatusNotModified was returned.
50415func (c *AutoscalersGetCall) Do(opts ...googleapi.CallOption) (*Autoscaler, error) {
50416	gensupport.SetOptions(c.urlParams_, opts...)
50417	res, err := c.doRequest("json")
50418	if res != nil && res.StatusCode == http.StatusNotModified {
50419		if res.Body != nil {
50420			res.Body.Close()
50421		}
50422		return nil, &googleapi.Error{
50423			Code:   res.StatusCode,
50424			Header: res.Header,
50425		}
50426	}
50427	if err != nil {
50428		return nil, err
50429	}
50430	defer googleapi.CloseBody(res)
50431	if err := googleapi.CheckResponse(res); err != nil {
50432		return nil, err
50433	}
50434	ret := &Autoscaler{
50435		ServerResponse: googleapi.ServerResponse{
50436			Header:         res.Header,
50437			HTTPStatusCode: res.StatusCode,
50438		},
50439	}
50440	target := &ret
50441	if err := gensupport.DecodeResponse(target, res); err != nil {
50442		return nil, err
50443	}
50444	return ret, nil
50445	// {
50446	//   "description": "Returns the specified autoscaler resource. Gets a list of available autoscalers by making a list() request. (== suppress_warning http-rest-shadowed ==)",
50447	//   "httpMethod": "GET",
50448	//   "id": "compute.autoscalers.get",
50449	//   "parameterOrder": [
50450	//     "project",
50451	//     "zone",
50452	//     "autoscaler"
50453	//   ],
50454	//   "parameters": {
50455	//     "autoscaler": {
50456	//       "description": "Name of the autoscaler to return.",
50457	//       "location": "path",
50458	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
50459	//       "required": true,
50460	//       "type": "string"
50461	//     },
50462	//     "project": {
50463	//       "description": "Project ID for this request.",
50464	//       "location": "path",
50465	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
50466	//       "required": true,
50467	//       "type": "string"
50468	//     },
50469	//     "zone": {
50470	//       "description": "Name of the zone for this request.",
50471	//       "location": "path",
50472	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
50473	//       "required": true,
50474	//       "type": "string"
50475	//     }
50476	//   },
50477	//   "path": "{project}/zones/{zone}/autoscalers/{autoscaler}",
50478	//   "response": {
50479	//     "$ref": "Autoscaler"
50480	//   },
50481	//   "scopes": [
50482	//     "https://www.googleapis.com/auth/cloud-platform",
50483	//     "https://www.googleapis.com/auth/compute",
50484	//     "https://www.googleapis.com/auth/compute.readonly"
50485	//   ]
50486	// }
50487
50488}
50489
50490// method id "compute.autoscalers.insert":
50491
50492type AutoscalersInsertCall struct {
50493	s          *Service
50494	project    string
50495	zone       string
50496	autoscaler *Autoscaler
50497	urlParams_ gensupport.URLParams
50498	ctx_       context.Context
50499	header_    http.Header
50500}
50501
50502// Insert: Creates an autoscaler in the specified project using the data
50503// included in the request. (== suppress_warning http-rest-shadowed ==)
50504func (r *AutoscalersService) Insert(project string, zone string, autoscaler *Autoscaler) *AutoscalersInsertCall {
50505	c := &AutoscalersInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
50506	c.project = project
50507	c.zone = zone
50508	c.autoscaler = autoscaler
50509	return c
50510}
50511
50512// RequestId sets the optional parameter "requestId": An optional
50513// request ID to identify requests. Specify a unique request ID so that
50514// if you must retry your request, the server will know to ignore the
50515// request if it has already been completed.
50516//
50517// For example, consider a situation where you make an initial request
50518// and the request times out. If you make the request again with the
50519// same request ID, the server can check if original operation with the
50520// same request ID was received, and if so, will ignore the second
50521// request. This prevents clients from accidentally creating duplicate
50522// commitments.
50523//
50524// The request ID must be a valid UUID with the exception that zero UUID
50525// is not supported (00000000-0000-0000-0000-000000000000).
50526func (c *AutoscalersInsertCall) RequestId(requestId string) *AutoscalersInsertCall {
50527	c.urlParams_.Set("requestId", requestId)
50528	return c
50529}
50530
50531// Fields allows partial responses to be retrieved. See
50532// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
50533// for more information.
50534func (c *AutoscalersInsertCall) Fields(s ...googleapi.Field) *AutoscalersInsertCall {
50535	c.urlParams_.Set("fields", googleapi.CombineFields(s))
50536	return c
50537}
50538
50539// Context sets the context to be used in this call's Do method. Any
50540// pending HTTP request will be aborted if the provided context is
50541// canceled.
50542func (c *AutoscalersInsertCall) Context(ctx context.Context) *AutoscalersInsertCall {
50543	c.ctx_ = ctx
50544	return c
50545}
50546
50547// Header returns an http.Header that can be modified by the caller to
50548// add HTTP headers to the request.
50549func (c *AutoscalersInsertCall) Header() http.Header {
50550	if c.header_ == nil {
50551		c.header_ = make(http.Header)
50552	}
50553	return c.header_
50554}
50555
50556func (c *AutoscalersInsertCall) doRequest(alt string) (*http.Response, error) {
50557	reqHeaders := make(http.Header)
50558	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
50559	for k, v := range c.header_ {
50560		reqHeaders[k] = v
50561	}
50562	reqHeaders.Set("User-Agent", c.s.userAgent())
50563	var body io.Reader = nil
50564	body, err := googleapi.WithoutDataWrapper.JSONReader(c.autoscaler)
50565	if err != nil {
50566		return nil, err
50567	}
50568	reqHeaders.Set("Content-Type", "application/json")
50569	c.urlParams_.Set("alt", alt)
50570	c.urlParams_.Set("prettyPrint", "false")
50571	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/autoscalers")
50572	urls += "?" + c.urlParams_.Encode()
50573	req, err := http.NewRequest("POST", urls, body)
50574	if err != nil {
50575		return nil, err
50576	}
50577	req.Header = reqHeaders
50578	googleapi.Expand(req.URL, map[string]string{
50579		"project": c.project,
50580		"zone":    c.zone,
50581	})
50582	return gensupport.SendRequest(c.ctx_, c.s.client, req)
50583}
50584
50585// Do executes the "compute.autoscalers.insert" call.
50586// Exactly one of *Operation or error will be non-nil. Any non-2xx
50587// status code is an error. Response headers are in either
50588// *Operation.ServerResponse.Header or (if a response was returned at
50589// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
50590// to check whether the returned error was because
50591// http.StatusNotModified was returned.
50592func (c *AutoscalersInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
50593	gensupport.SetOptions(c.urlParams_, opts...)
50594	res, err := c.doRequest("json")
50595	if res != nil && res.StatusCode == http.StatusNotModified {
50596		if res.Body != nil {
50597			res.Body.Close()
50598		}
50599		return nil, &googleapi.Error{
50600			Code:   res.StatusCode,
50601			Header: res.Header,
50602		}
50603	}
50604	if err != nil {
50605		return nil, err
50606	}
50607	defer googleapi.CloseBody(res)
50608	if err := googleapi.CheckResponse(res); err != nil {
50609		return nil, err
50610	}
50611	ret := &Operation{
50612		ServerResponse: googleapi.ServerResponse{
50613			Header:         res.Header,
50614			HTTPStatusCode: res.StatusCode,
50615		},
50616	}
50617	target := &ret
50618	if err := gensupport.DecodeResponse(target, res); err != nil {
50619		return nil, err
50620	}
50621	return ret, nil
50622	// {
50623	//   "description": "Creates an autoscaler in the specified project using the data included in the request. (== suppress_warning http-rest-shadowed ==)",
50624	//   "httpMethod": "POST",
50625	//   "id": "compute.autoscalers.insert",
50626	//   "parameterOrder": [
50627	//     "project",
50628	//     "zone"
50629	//   ],
50630	//   "parameters": {
50631	//     "project": {
50632	//       "description": "Project ID for this request.",
50633	//       "location": "path",
50634	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
50635	//       "required": true,
50636	//       "type": "string"
50637	//     },
50638	//     "requestId": {
50639	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
50640	//       "location": "query",
50641	//       "type": "string"
50642	//     },
50643	//     "zone": {
50644	//       "description": "Name of the zone for this request.",
50645	//       "location": "path",
50646	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
50647	//       "required": true,
50648	//       "type": "string"
50649	//     }
50650	//   },
50651	//   "path": "{project}/zones/{zone}/autoscalers",
50652	//   "request": {
50653	//     "$ref": "Autoscaler"
50654	//   },
50655	//   "response": {
50656	//     "$ref": "Operation"
50657	//   },
50658	//   "scopes": [
50659	//     "https://www.googleapis.com/auth/cloud-platform",
50660	//     "https://www.googleapis.com/auth/compute"
50661	//   ]
50662	// }
50663
50664}
50665
50666// method id "compute.autoscalers.list":
50667
50668type AutoscalersListCall struct {
50669	s            *Service
50670	project      string
50671	zone         string
50672	urlParams_   gensupport.URLParams
50673	ifNoneMatch_ string
50674	ctx_         context.Context
50675	header_      http.Header
50676}
50677
50678// List: Retrieves a list of autoscalers contained within the specified
50679// zone. (== suppress_warning http-rest-shadowed ==)
50680func (r *AutoscalersService) List(project string, zone string) *AutoscalersListCall {
50681	c := &AutoscalersListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
50682	c.project = project
50683	c.zone = zone
50684	return c
50685}
50686
50687// Filter sets the optional parameter "filter": A filter expression that
50688// filters resources listed in the response. The expression must specify
50689// the field name, a comparison operator, and the value that you want to
50690// use for filtering. The value must be a string, a number, or a
50691// boolean. The comparison operator must be either =, !=, >, or <.
50692//
50693// For example, if you are filtering Compute Engine instances, you can
50694// exclude instances named example-instance by specifying name !=
50695// example-instance.
50696//
50697// You can also filter nested fields. For example, you could specify
50698// scheduling.automaticRestart = false to include instances only if they
50699// are not scheduled for automatic restarts. You can use filtering on
50700// nested fields to filter based on resource labels.
50701//
50702// To filter on multiple expressions, provide each separate expression
50703// within parentheses. For example, (scheduling.automaticRestart = true)
50704// (cpuPlatform = "Intel Skylake"). By default, each expression is an
50705// AND expression. However, you can include AND and OR expressions
50706// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
50707// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
50708// true).
50709func (c *AutoscalersListCall) Filter(filter string) *AutoscalersListCall {
50710	c.urlParams_.Set("filter", filter)
50711	return c
50712}
50713
50714// MaxResults sets the optional parameter "maxResults": The maximum
50715// number of results per page that should be returned. If the number of
50716// available results is larger than maxResults, Compute Engine returns a
50717// nextPageToken that can be used to get the next page of results in
50718// subsequent list requests. Acceptable values are 0 to 500, inclusive.
50719// (Default: 500)
50720func (c *AutoscalersListCall) MaxResults(maxResults int64) *AutoscalersListCall {
50721	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
50722	return c
50723}
50724
50725// OrderBy sets the optional parameter "orderBy": Sorts list results by
50726// a certain order. By default, results are returned in alphanumerical
50727// order based on the resource name.
50728//
50729// You can also sort results in descending order based on the creation
50730// timestamp using orderBy="creationTimestamp desc". This sorts results
50731// based on the creationTimestamp field in reverse chronological order
50732// (newest result first). Use this to sort resources like operations so
50733// that the newest operation is returned first.
50734//
50735// Currently, only sorting by name or creationTimestamp desc is
50736// supported.
50737func (c *AutoscalersListCall) OrderBy(orderBy string) *AutoscalersListCall {
50738	c.urlParams_.Set("orderBy", orderBy)
50739	return c
50740}
50741
50742// PageToken sets the optional parameter "pageToken": Specifies a page
50743// token to use. Set pageToken to the nextPageToken returned by a
50744// previous list request to get the next page of results.
50745func (c *AutoscalersListCall) PageToken(pageToken string) *AutoscalersListCall {
50746	c.urlParams_.Set("pageToken", pageToken)
50747	return c
50748}
50749
50750// Fields allows partial responses to be retrieved. See
50751// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
50752// for more information.
50753func (c *AutoscalersListCall) Fields(s ...googleapi.Field) *AutoscalersListCall {
50754	c.urlParams_.Set("fields", googleapi.CombineFields(s))
50755	return c
50756}
50757
50758// IfNoneMatch sets the optional parameter which makes the operation
50759// fail if the object's ETag matches the given value. This is useful for
50760// getting updates only after the object has changed since the last
50761// request. Use googleapi.IsNotModified to check whether the response
50762// error from Do is the result of In-None-Match.
50763func (c *AutoscalersListCall) IfNoneMatch(entityTag string) *AutoscalersListCall {
50764	c.ifNoneMatch_ = entityTag
50765	return c
50766}
50767
50768// Context sets the context to be used in this call's Do method. Any
50769// pending HTTP request will be aborted if the provided context is
50770// canceled.
50771func (c *AutoscalersListCall) Context(ctx context.Context) *AutoscalersListCall {
50772	c.ctx_ = ctx
50773	return c
50774}
50775
50776// Header returns an http.Header that can be modified by the caller to
50777// add HTTP headers to the request.
50778func (c *AutoscalersListCall) Header() http.Header {
50779	if c.header_ == nil {
50780		c.header_ = make(http.Header)
50781	}
50782	return c.header_
50783}
50784
50785func (c *AutoscalersListCall) doRequest(alt string) (*http.Response, error) {
50786	reqHeaders := make(http.Header)
50787	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
50788	for k, v := range c.header_ {
50789		reqHeaders[k] = v
50790	}
50791	reqHeaders.Set("User-Agent", c.s.userAgent())
50792	if c.ifNoneMatch_ != "" {
50793		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
50794	}
50795	var body io.Reader = nil
50796	c.urlParams_.Set("alt", alt)
50797	c.urlParams_.Set("prettyPrint", "false")
50798	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/autoscalers")
50799	urls += "?" + c.urlParams_.Encode()
50800	req, err := http.NewRequest("GET", urls, body)
50801	if err != nil {
50802		return nil, err
50803	}
50804	req.Header = reqHeaders
50805	googleapi.Expand(req.URL, map[string]string{
50806		"project": c.project,
50807		"zone":    c.zone,
50808	})
50809	return gensupport.SendRequest(c.ctx_, c.s.client, req)
50810}
50811
50812// Do executes the "compute.autoscalers.list" call.
50813// Exactly one of *AutoscalerList or error will be non-nil. Any non-2xx
50814// status code is an error. Response headers are in either
50815// *AutoscalerList.ServerResponse.Header or (if a response was returned
50816// at all) in error.(*googleapi.Error).Header. Use
50817// googleapi.IsNotModified to check whether the returned error was
50818// because http.StatusNotModified was returned.
50819func (c *AutoscalersListCall) Do(opts ...googleapi.CallOption) (*AutoscalerList, error) {
50820	gensupport.SetOptions(c.urlParams_, opts...)
50821	res, err := c.doRequest("json")
50822	if res != nil && res.StatusCode == http.StatusNotModified {
50823		if res.Body != nil {
50824			res.Body.Close()
50825		}
50826		return nil, &googleapi.Error{
50827			Code:   res.StatusCode,
50828			Header: res.Header,
50829		}
50830	}
50831	if err != nil {
50832		return nil, err
50833	}
50834	defer googleapi.CloseBody(res)
50835	if err := googleapi.CheckResponse(res); err != nil {
50836		return nil, err
50837	}
50838	ret := &AutoscalerList{
50839		ServerResponse: googleapi.ServerResponse{
50840			Header:         res.Header,
50841			HTTPStatusCode: res.StatusCode,
50842		},
50843	}
50844	target := &ret
50845	if err := gensupport.DecodeResponse(target, res); err != nil {
50846		return nil, err
50847	}
50848	return ret, nil
50849	// {
50850	//   "description": "Retrieves a list of autoscalers contained within the specified zone. (== suppress_warning http-rest-shadowed ==)",
50851	//   "httpMethod": "GET",
50852	//   "id": "compute.autoscalers.list",
50853	//   "parameterOrder": [
50854	//     "project",
50855	//     "zone"
50856	//   ],
50857	//   "parameters": {
50858	//     "filter": {
50859	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
50860	//       "location": "query",
50861	//       "type": "string"
50862	//     },
50863	//     "maxResults": {
50864	//       "default": "500",
50865	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
50866	//       "format": "uint32",
50867	//       "location": "query",
50868	//       "minimum": "0",
50869	//       "type": "integer"
50870	//     },
50871	//     "orderBy": {
50872	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
50873	//       "location": "query",
50874	//       "type": "string"
50875	//     },
50876	//     "pageToken": {
50877	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
50878	//       "location": "query",
50879	//       "type": "string"
50880	//     },
50881	//     "project": {
50882	//       "description": "Project ID for this request.",
50883	//       "location": "path",
50884	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
50885	//       "required": true,
50886	//       "type": "string"
50887	//     },
50888	//     "zone": {
50889	//       "description": "Name of the zone for this request.",
50890	//       "location": "path",
50891	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
50892	//       "required": true,
50893	//       "type": "string"
50894	//     }
50895	//   },
50896	//   "path": "{project}/zones/{zone}/autoscalers",
50897	//   "response": {
50898	//     "$ref": "AutoscalerList"
50899	//   },
50900	//   "scopes": [
50901	//     "https://www.googleapis.com/auth/cloud-platform",
50902	//     "https://www.googleapis.com/auth/compute",
50903	//     "https://www.googleapis.com/auth/compute.readonly"
50904	//   ]
50905	// }
50906
50907}
50908
50909// Pages invokes f for each page of results.
50910// A non-nil error returned from f will halt the iteration.
50911// The provided context supersedes any context provided to the Context method.
50912func (c *AutoscalersListCall) Pages(ctx context.Context, f func(*AutoscalerList) error) error {
50913	c.ctx_ = ctx
50914	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
50915	for {
50916		x, err := c.Do()
50917		if err != nil {
50918			return err
50919		}
50920		if err := f(x); err != nil {
50921			return err
50922		}
50923		if x.NextPageToken == "" {
50924			return nil
50925		}
50926		c.PageToken(x.NextPageToken)
50927	}
50928}
50929
50930// method id "compute.autoscalers.patch":
50931
50932type AutoscalersPatchCall struct {
50933	s          *Service
50934	project    string
50935	zone       string
50936	autoscaler *Autoscaler
50937	urlParams_ gensupport.URLParams
50938	ctx_       context.Context
50939	header_    http.Header
50940}
50941
50942// Patch: Updates an autoscaler in the specified project using the data
50943// included in the request. This method supports PATCH semantics and
50944// uses the JSON merge patch format and processing rules. (==
50945// suppress_warning http-rest-shadowed ==)
50946func (r *AutoscalersService) Patch(project string, zone string, autoscaler *Autoscaler) *AutoscalersPatchCall {
50947	c := &AutoscalersPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
50948	c.project = project
50949	c.zone = zone
50950	c.autoscaler = autoscaler
50951	return c
50952}
50953
50954// Autoscaler sets the optional parameter "autoscaler": Name of the
50955// autoscaler to patch.
50956func (c *AutoscalersPatchCall) Autoscaler(autoscaler string) *AutoscalersPatchCall {
50957	c.urlParams_.Set("autoscaler", autoscaler)
50958	return c
50959}
50960
50961// RequestId sets the optional parameter "requestId": An optional
50962// request ID to identify requests. Specify a unique request ID so that
50963// if you must retry your request, the server will know to ignore the
50964// request if it has already been completed.
50965//
50966// For example, consider a situation where you make an initial request
50967// and the request times out. If you make the request again with the
50968// same request ID, the server can check if original operation with the
50969// same request ID was received, and if so, will ignore the second
50970// request. This prevents clients from accidentally creating duplicate
50971// commitments.
50972//
50973// The request ID must be a valid UUID with the exception that zero UUID
50974// is not supported (00000000-0000-0000-0000-000000000000).
50975func (c *AutoscalersPatchCall) RequestId(requestId string) *AutoscalersPatchCall {
50976	c.urlParams_.Set("requestId", requestId)
50977	return c
50978}
50979
50980// Fields allows partial responses to be retrieved. See
50981// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
50982// for more information.
50983func (c *AutoscalersPatchCall) Fields(s ...googleapi.Field) *AutoscalersPatchCall {
50984	c.urlParams_.Set("fields", googleapi.CombineFields(s))
50985	return c
50986}
50987
50988// Context sets the context to be used in this call's Do method. Any
50989// pending HTTP request will be aborted if the provided context is
50990// canceled.
50991func (c *AutoscalersPatchCall) Context(ctx context.Context) *AutoscalersPatchCall {
50992	c.ctx_ = ctx
50993	return c
50994}
50995
50996// Header returns an http.Header that can be modified by the caller to
50997// add HTTP headers to the request.
50998func (c *AutoscalersPatchCall) Header() http.Header {
50999	if c.header_ == nil {
51000		c.header_ = make(http.Header)
51001	}
51002	return c.header_
51003}
51004
51005func (c *AutoscalersPatchCall) doRequest(alt string) (*http.Response, error) {
51006	reqHeaders := make(http.Header)
51007	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
51008	for k, v := range c.header_ {
51009		reqHeaders[k] = v
51010	}
51011	reqHeaders.Set("User-Agent", c.s.userAgent())
51012	var body io.Reader = nil
51013	body, err := googleapi.WithoutDataWrapper.JSONReader(c.autoscaler)
51014	if err != nil {
51015		return nil, err
51016	}
51017	reqHeaders.Set("Content-Type", "application/json")
51018	c.urlParams_.Set("alt", alt)
51019	c.urlParams_.Set("prettyPrint", "false")
51020	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/autoscalers")
51021	urls += "?" + c.urlParams_.Encode()
51022	req, err := http.NewRequest("PATCH", urls, body)
51023	if err != nil {
51024		return nil, err
51025	}
51026	req.Header = reqHeaders
51027	googleapi.Expand(req.URL, map[string]string{
51028		"project": c.project,
51029		"zone":    c.zone,
51030	})
51031	return gensupport.SendRequest(c.ctx_, c.s.client, req)
51032}
51033
51034// Do executes the "compute.autoscalers.patch" call.
51035// Exactly one of *Operation or error will be non-nil. Any non-2xx
51036// status code is an error. Response headers are in either
51037// *Operation.ServerResponse.Header or (if a response was returned at
51038// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
51039// to check whether the returned error was because
51040// http.StatusNotModified was returned.
51041func (c *AutoscalersPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
51042	gensupport.SetOptions(c.urlParams_, opts...)
51043	res, err := c.doRequest("json")
51044	if res != nil && res.StatusCode == http.StatusNotModified {
51045		if res.Body != nil {
51046			res.Body.Close()
51047		}
51048		return nil, &googleapi.Error{
51049			Code:   res.StatusCode,
51050			Header: res.Header,
51051		}
51052	}
51053	if err != nil {
51054		return nil, err
51055	}
51056	defer googleapi.CloseBody(res)
51057	if err := googleapi.CheckResponse(res); err != nil {
51058		return nil, err
51059	}
51060	ret := &Operation{
51061		ServerResponse: googleapi.ServerResponse{
51062			Header:         res.Header,
51063			HTTPStatusCode: res.StatusCode,
51064		},
51065	}
51066	target := &ret
51067	if err := gensupport.DecodeResponse(target, res); err != nil {
51068		return nil, err
51069	}
51070	return ret, nil
51071	// {
51072	//   "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. (== suppress_warning http-rest-shadowed ==)",
51073	//   "httpMethod": "PATCH",
51074	//   "id": "compute.autoscalers.patch",
51075	//   "parameterOrder": [
51076	//     "project",
51077	//     "zone"
51078	//   ],
51079	//   "parameters": {
51080	//     "autoscaler": {
51081	//       "description": "Name of the autoscaler to patch.",
51082	//       "location": "query",
51083	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
51084	//       "type": "string"
51085	//     },
51086	//     "project": {
51087	//       "description": "Project ID for this request.",
51088	//       "location": "path",
51089	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
51090	//       "required": true,
51091	//       "type": "string"
51092	//     },
51093	//     "requestId": {
51094	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
51095	//       "location": "query",
51096	//       "type": "string"
51097	//     },
51098	//     "zone": {
51099	//       "description": "Name of the zone for this request.",
51100	//       "location": "path",
51101	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
51102	//       "required": true,
51103	//       "type": "string"
51104	//     }
51105	//   },
51106	//   "path": "{project}/zones/{zone}/autoscalers",
51107	//   "request": {
51108	//     "$ref": "Autoscaler"
51109	//   },
51110	//   "response": {
51111	//     "$ref": "Operation"
51112	//   },
51113	//   "scopes": [
51114	//     "https://www.googleapis.com/auth/cloud-platform",
51115	//     "https://www.googleapis.com/auth/compute"
51116	//   ]
51117	// }
51118
51119}
51120
51121// method id "compute.autoscalers.testIamPermissions":
51122
51123type AutoscalersTestIamPermissionsCall struct {
51124	s                      *Service
51125	project                string
51126	zone                   string
51127	resource               string
51128	testpermissionsrequest *TestPermissionsRequest
51129	urlParams_             gensupport.URLParams
51130	ctx_                   context.Context
51131	header_                http.Header
51132}
51133
51134// TestIamPermissions: Returns permissions that a caller has on the
51135// specified resource. (== suppress_warning http-rest-shadowed ==)
51136func (r *AutoscalersService) TestIamPermissions(project string, zone string, resource string, testpermissionsrequest *TestPermissionsRequest) *AutoscalersTestIamPermissionsCall {
51137	c := &AutoscalersTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
51138	c.project = project
51139	c.zone = zone
51140	c.resource = resource
51141	c.testpermissionsrequest = testpermissionsrequest
51142	return c
51143}
51144
51145// Fields allows partial responses to be retrieved. See
51146// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
51147// for more information.
51148func (c *AutoscalersTestIamPermissionsCall) Fields(s ...googleapi.Field) *AutoscalersTestIamPermissionsCall {
51149	c.urlParams_.Set("fields", googleapi.CombineFields(s))
51150	return c
51151}
51152
51153// Context sets the context to be used in this call's Do method. Any
51154// pending HTTP request will be aborted if the provided context is
51155// canceled.
51156func (c *AutoscalersTestIamPermissionsCall) Context(ctx context.Context) *AutoscalersTestIamPermissionsCall {
51157	c.ctx_ = ctx
51158	return c
51159}
51160
51161// Header returns an http.Header that can be modified by the caller to
51162// add HTTP headers to the request.
51163func (c *AutoscalersTestIamPermissionsCall) Header() http.Header {
51164	if c.header_ == nil {
51165		c.header_ = make(http.Header)
51166	}
51167	return c.header_
51168}
51169
51170func (c *AutoscalersTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
51171	reqHeaders := make(http.Header)
51172	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
51173	for k, v := range c.header_ {
51174		reqHeaders[k] = v
51175	}
51176	reqHeaders.Set("User-Agent", c.s.userAgent())
51177	var body io.Reader = nil
51178	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
51179	if err != nil {
51180		return nil, err
51181	}
51182	reqHeaders.Set("Content-Type", "application/json")
51183	c.urlParams_.Set("alt", alt)
51184	c.urlParams_.Set("prettyPrint", "false")
51185	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/autoscalers/{resource}/testIamPermissions")
51186	urls += "?" + c.urlParams_.Encode()
51187	req, err := http.NewRequest("POST", urls, body)
51188	if err != nil {
51189		return nil, err
51190	}
51191	req.Header = reqHeaders
51192	googleapi.Expand(req.URL, map[string]string{
51193		"project":  c.project,
51194		"zone":     c.zone,
51195		"resource": c.resource,
51196	})
51197	return gensupport.SendRequest(c.ctx_, c.s.client, req)
51198}
51199
51200// Do executes the "compute.autoscalers.testIamPermissions" call.
51201// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
51202// non-2xx status code is an error. Response headers are in either
51203// *TestPermissionsResponse.ServerResponse.Header or (if a response was
51204// returned at all) in error.(*googleapi.Error).Header. Use
51205// googleapi.IsNotModified to check whether the returned error was
51206// because http.StatusNotModified was returned.
51207func (c *AutoscalersTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
51208	gensupport.SetOptions(c.urlParams_, opts...)
51209	res, err := c.doRequest("json")
51210	if res != nil && res.StatusCode == http.StatusNotModified {
51211		if res.Body != nil {
51212			res.Body.Close()
51213		}
51214		return nil, &googleapi.Error{
51215			Code:   res.StatusCode,
51216			Header: res.Header,
51217		}
51218	}
51219	if err != nil {
51220		return nil, err
51221	}
51222	defer googleapi.CloseBody(res)
51223	if err := googleapi.CheckResponse(res); err != nil {
51224		return nil, err
51225	}
51226	ret := &TestPermissionsResponse{
51227		ServerResponse: googleapi.ServerResponse{
51228			Header:         res.Header,
51229			HTTPStatusCode: res.StatusCode,
51230		},
51231	}
51232	target := &ret
51233	if err := gensupport.DecodeResponse(target, res); err != nil {
51234		return nil, err
51235	}
51236	return ret, nil
51237	// {
51238	//   "description": "Returns permissions that a caller has on the specified resource. (== suppress_warning http-rest-shadowed ==)",
51239	//   "httpMethod": "POST",
51240	//   "id": "compute.autoscalers.testIamPermissions",
51241	//   "parameterOrder": [
51242	//     "project",
51243	//     "zone",
51244	//     "resource"
51245	//   ],
51246	//   "parameters": {
51247	//     "project": {
51248	//       "description": "Project ID for this request.",
51249	//       "location": "path",
51250	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
51251	//       "required": true,
51252	//       "type": "string"
51253	//     },
51254	//     "resource": {
51255	//       "description": "Name or id of the resource for this request.",
51256	//       "location": "path",
51257	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
51258	//       "required": true,
51259	//       "type": "string"
51260	//     },
51261	//     "zone": {
51262	//       "description": "The name of the zone for this request.",
51263	//       "location": "path",
51264	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
51265	//       "required": true,
51266	//       "type": "string"
51267	//     }
51268	//   },
51269	//   "path": "{project}/zones/{zone}/autoscalers/{resource}/testIamPermissions",
51270	//   "request": {
51271	//     "$ref": "TestPermissionsRequest"
51272	//   },
51273	//   "response": {
51274	//     "$ref": "TestPermissionsResponse"
51275	//   },
51276	//   "scopes": [
51277	//     "https://www.googleapis.com/auth/cloud-platform",
51278	//     "https://www.googleapis.com/auth/compute",
51279	//     "https://www.googleapis.com/auth/compute.readonly"
51280	//   ]
51281	// }
51282
51283}
51284
51285// method id "compute.autoscalers.update":
51286
51287type AutoscalersUpdateCall struct {
51288	s          *Service
51289	project    string
51290	zone       string
51291	autoscaler *Autoscaler
51292	urlParams_ gensupport.URLParams
51293	ctx_       context.Context
51294	header_    http.Header
51295}
51296
51297// Update: Updates an autoscaler in the specified project using the data
51298// included in the request. (== suppress_warning http-rest-shadowed ==)
51299func (r *AutoscalersService) Update(project string, zone string, autoscaler *Autoscaler) *AutoscalersUpdateCall {
51300	c := &AutoscalersUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
51301	c.project = project
51302	c.zone = zone
51303	c.autoscaler = autoscaler
51304	return c
51305}
51306
51307// Autoscaler sets the optional parameter "autoscaler": Name of the
51308// autoscaler to update.
51309func (c *AutoscalersUpdateCall) Autoscaler(autoscaler string) *AutoscalersUpdateCall {
51310	c.urlParams_.Set("autoscaler", autoscaler)
51311	return c
51312}
51313
51314// RequestId sets the optional parameter "requestId": An optional
51315// request ID to identify requests. Specify a unique request ID so that
51316// if you must retry your request, the server will know to ignore the
51317// request if it has already been completed.
51318//
51319// For example, consider a situation where you make an initial request
51320// and the request times out. If you make the request again with the
51321// same request ID, the server can check if original operation with the
51322// same request ID was received, and if so, will ignore the second
51323// request. This prevents clients from accidentally creating duplicate
51324// commitments.
51325//
51326// The request ID must be a valid UUID with the exception that zero UUID
51327// is not supported (00000000-0000-0000-0000-000000000000).
51328func (c *AutoscalersUpdateCall) RequestId(requestId string) *AutoscalersUpdateCall {
51329	c.urlParams_.Set("requestId", requestId)
51330	return c
51331}
51332
51333// Fields allows partial responses to be retrieved. See
51334// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
51335// for more information.
51336func (c *AutoscalersUpdateCall) Fields(s ...googleapi.Field) *AutoscalersUpdateCall {
51337	c.urlParams_.Set("fields", googleapi.CombineFields(s))
51338	return c
51339}
51340
51341// Context sets the context to be used in this call's Do method. Any
51342// pending HTTP request will be aborted if the provided context is
51343// canceled.
51344func (c *AutoscalersUpdateCall) Context(ctx context.Context) *AutoscalersUpdateCall {
51345	c.ctx_ = ctx
51346	return c
51347}
51348
51349// Header returns an http.Header that can be modified by the caller to
51350// add HTTP headers to the request.
51351func (c *AutoscalersUpdateCall) Header() http.Header {
51352	if c.header_ == nil {
51353		c.header_ = make(http.Header)
51354	}
51355	return c.header_
51356}
51357
51358func (c *AutoscalersUpdateCall) doRequest(alt string) (*http.Response, error) {
51359	reqHeaders := make(http.Header)
51360	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
51361	for k, v := range c.header_ {
51362		reqHeaders[k] = v
51363	}
51364	reqHeaders.Set("User-Agent", c.s.userAgent())
51365	var body io.Reader = nil
51366	body, err := googleapi.WithoutDataWrapper.JSONReader(c.autoscaler)
51367	if err != nil {
51368		return nil, err
51369	}
51370	reqHeaders.Set("Content-Type", "application/json")
51371	c.urlParams_.Set("alt", alt)
51372	c.urlParams_.Set("prettyPrint", "false")
51373	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/autoscalers")
51374	urls += "?" + c.urlParams_.Encode()
51375	req, err := http.NewRequest("PUT", urls, body)
51376	if err != nil {
51377		return nil, err
51378	}
51379	req.Header = reqHeaders
51380	googleapi.Expand(req.URL, map[string]string{
51381		"project": c.project,
51382		"zone":    c.zone,
51383	})
51384	return gensupport.SendRequest(c.ctx_, c.s.client, req)
51385}
51386
51387// Do executes the "compute.autoscalers.update" call.
51388// Exactly one of *Operation or error will be non-nil. Any non-2xx
51389// status code is an error. Response headers are in either
51390// *Operation.ServerResponse.Header or (if a response was returned at
51391// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
51392// to check whether the returned error was because
51393// http.StatusNotModified was returned.
51394func (c *AutoscalersUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
51395	gensupport.SetOptions(c.urlParams_, opts...)
51396	res, err := c.doRequest("json")
51397	if res != nil && res.StatusCode == http.StatusNotModified {
51398		if res.Body != nil {
51399			res.Body.Close()
51400		}
51401		return nil, &googleapi.Error{
51402			Code:   res.StatusCode,
51403			Header: res.Header,
51404		}
51405	}
51406	if err != nil {
51407		return nil, err
51408	}
51409	defer googleapi.CloseBody(res)
51410	if err := googleapi.CheckResponse(res); err != nil {
51411		return nil, err
51412	}
51413	ret := &Operation{
51414		ServerResponse: googleapi.ServerResponse{
51415			Header:         res.Header,
51416			HTTPStatusCode: res.StatusCode,
51417		},
51418	}
51419	target := &ret
51420	if err := gensupport.DecodeResponse(target, res); err != nil {
51421		return nil, err
51422	}
51423	return ret, nil
51424	// {
51425	//   "description": "Updates an autoscaler in the specified project using the data included in the request. (== suppress_warning http-rest-shadowed ==)",
51426	//   "httpMethod": "PUT",
51427	//   "id": "compute.autoscalers.update",
51428	//   "parameterOrder": [
51429	//     "project",
51430	//     "zone"
51431	//   ],
51432	//   "parameters": {
51433	//     "autoscaler": {
51434	//       "description": "Name of the autoscaler to update.",
51435	//       "location": "query",
51436	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
51437	//       "type": "string"
51438	//     },
51439	//     "project": {
51440	//       "description": "Project ID for this request.",
51441	//       "location": "path",
51442	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
51443	//       "required": true,
51444	//       "type": "string"
51445	//     },
51446	//     "requestId": {
51447	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
51448	//       "location": "query",
51449	//       "type": "string"
51450	//     },
51451	//     "zone": {
51452	//       "description": "Name of the zone for this request.",
51453	//       "location": "path",
51454	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
51455	//       "required": true,
51456	//       "type": "string"
51457	//     }
51458	//   },
51459	//   "path": "{project}/zones/{zone}/autoscalers",
51460	//   "request": {
51461	//     "$ref": "Autoscaler"
51462	//   },
51463	//   "response": {
51464	//     "$ref": "Operation"
51465	//   },
51466	//   "scopes": [
51467	//     "https://www.googleapis.com/auth/cloud-platform",
51468	//     "https://www.googleapis.com/auth/compute"
51469	//   ]
51470	// }
51471
51472}
51473
51474// method id "compute.backendBuckets.addSignedUrlKey":
51475
51476type BackendBucketsAddSignedUrlKeyCall struct {
51477	s             *Service
51478	project       string
51479	backendBucket string
51480	signedurlkey  *SignedUrlKey
51481	urlParams_    gensupport.URLParams
51482	ctx_          context.Context
51483	header_       http.Header
51484}
51485
51486// AddSignedUrlKey: Adds a key for validating requests with signed URLs
51487// for this backend bucket. (== suppress_warning http-rest-shadowed ==)
51488func (r *BackendBucketsService) AddSignedUrlKey(project string, backendBucket string, signedurlkey *SignedUrlKey) *BackendBucketsAddSignedUrlKeyCall {
51489	c := &BackendBucketsAddSignedUrlKeyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
51490	c.project = project
51491	c.backendBucket = backendBucket
51492	c.signedurlkey = signedurlkey
51493	return c
51494}
51495
51496// RequestId sets the optional parameter "requestId": An optional
51497// request ID to identify requests. Specify a unique request ID so that
51498// if you must retry your request, the server will know to ignore the
51499// request if it has already been completed.
51500//
51501// For example, consider a situation where you make an initial request
51502// and the request times out. If you make the request again with the
51503// same request ID, the server can check if original operation with the
51504// same request ID was received, and if so, will ignore the second
51505// request. This prevents clients from accidentally creating duplicate
51506// commitments.
51507//
51508// The request ID must be a valid UUID with the exception that zero UUID
51509// is not supported (00000000-0000-0000-0000-000000000000).
51510func (c *BackendBucketsAddSignedUrlKeyCall) RequestId(requestId string) *BackendBucketsAddSignedUrlKeyCall {
51511	c.urlParams_.Set("requestId", requestId)
51512	return c
51513}
51514
51515// Fields allows partial responses to be retrieved. See
51516// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
51517// for more information.
51518func (c *BackendBucketsAddSignedUrlKeyCall) Fields(s ...googleapi.Field) *BackendBucketsAddSignedUrlKeyCall {
51519	c.urlParams_.Set("fields", googleapi.CombineFields(s))
51520	return c
51521}
51522
51523// Context sets the context to be used in this call's Do method. Any
51524// pending HTTP request will be aborted if the provided context is
51525// canceled.
51526func (c *BackendBucketsAddSignedUrlKeyCall) Context(ctx context.Context) *BackendBucketsAddSignedUrlKeyCall {
51527	c.ctx_ = ctx
51528	return c
51529}
51530
51531// Header returns an http.Header that can be modified by the caller to
51532// add HTTP headers to the request.
51533func (c *BackendBucketsAddSignedUrlKeyCall) Header() http.Header {
51534	if c.header_ == nil {
51535		c.header_ = make(http.Header)
51536	}
51537	return c.header_
51538}
51539
51540func (c *BackendBucketsAddSignedUrlKeyCall) doRequest(alt string) (*http.Response, error) {
51541	reqHeaders := make(http.Header)
51542	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
51543	for k, v := range c.header_ {
51544		reqHeaders[k] = v
51545	}
51546	reqHeaders.Set("User-Agent", c.s.userAgent())
51547	var body io.Reader = nil
51548	body, err := googleapi.WithoutDataWrapper.JSONReader(c.signedurlkey)
51549	if err != nil {
51550		return nil, err
51551	}
51552	reqHeaders.Set("Content-Type", "application/json")
51553	c.urlParams_.Set("alt", alt)
51554	c.urlParams_.Set("prettyPrint", "false")
51555	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendBuckets/{backendBucket}/addSignedUrlKey")
51556	urls += "?" + c.urlParams_.Encode()
51557	req, err := http.NewRequest("POST", urls, body)
51558	if err != nil {
51559		return nil, err
51560	}
51561	req.Header = reqHeaders
51562	googleapi.Expand(req.URL, map[string]string{
51563		"project":       c.project,
51564		"backendBucket": c.backendBucket,
51565	})
51566	return gensupport.SendRequest(c.ctx_, c.s.client, req)
51567}
51568
51569// Do executes the "compute.backendBuckets.addSignedUrlKey" call.
51570// Exactly one of *Operation or error will be non-nil. Any non-2xx
51571// status code is an error. Response headers are in either
51572// *Operation.ServerResponse.Header or (if a response was returned at
51573// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
51574// to check whether the returned error was because
51575// http.StatusNotModified was returned.
51576func (c *BackendBucketsAddSignedUrlKeyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
51577	gensupport.SetOptions(c.urlParams_, opts...)
51578	res, err := c.doRequest("json")
51579	if res != nil && res.StatusCode == http.StatusNotModified {
51580		if res.Body != nil {
51581			res.Body.Close()
51582		}
51583		return nil, &googleapi.Error{
51584			Code:   res.StatusCode,
51585			Header: res.Header,
51586		}
51587	}
51588	if err != nil {
51589		return nil, err
51590	}
51591	defer googleapi.CloseBody(res)
51592	if err := googleapi.CheckResponse(res); err != nil {
51593		return nil, err
51594	}
51595	ret := &Operation{
51596		ServerResponse: googleapi.ServerResponse{
51597			Header:         res.Header,
51598			HTTPStatusCode: res.StatusCode,
51599		},
51600	}
51601	target := &ret
51602	if err := gensupport.DecodeResponse(target, res); err != nil {
51603		return nil, err
51604	}
51605	return ret, nil
51606	// {
51607	//   "description": "Adds a key for validating requests with signed URLs for this backend bucket. (== suppress_warning http-rest-shadowed ==)",
51608	//   "httpMethod": "POST",
51609	//   "id": "compute.backendBuckets.addSignedUrlKey",
51610	//   "parameterOrder": [
51611	//     "project",
51612	//     "backendBucket"
51613	//   ],
51614	//   "parameters": {
51615	//     "backendBucket": {
51616	//       "description": "Name of the BackendBucket resource to which the Signed URL Key should be added. The name should conform to RFC1035.",
51617	//       "location": "path",
51618	//       "required": true,
51619	//       "type": "string"
51620	//     },
51621	//     "project": {
51622	//       "description": "Project ID for this request.",
51623	//       "location": "path",
51624	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
51625	//       "required": true,
51626	//       "type": "string"
51627	//     },
51628	//     "requestId": {
51629	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
51630	//       "location": "query",
51631	//       "type": "string"
51632	//     }
51633	//   },
51634	//   "path": "{project}/global/backendBuckets/{backendBucket}/addSignedUrlKey",
51635	//   "request": {
51636	//     "$ref": "SignedUrlKey"
51637	//   },
51638	//   "response": {
51639	//     "$ref": "Operation"
51640	//   },
51641	//   "scopes": [
51642	//     "https://www.googleapis.com/auth/cloud-platform",
51643	//     "https://www.googleapis.com/auth/compute"
51644	//   ]
51645	// }
51646
51647}
51648
51649// method id "compute.backendBuckets.delete":
51650
51651type BackendBucketsDeleteCall struct {
51652	s             *Service
51653	project       string
51654	backendBucket string
51655	urlParams_    gensupport.URLParams
51656	ctx_          context.Context
51657	header_       http.Header
51658}
51659
51660// Delete: Deletes the specified BackendBucket resource. (==
51661// suppress_warning http-rest-shadowed ==)
51662func (r *BackendBucketsService) Delete(project string, backendBucket string) *BackendBucketsDeleteCall {
51663	c := &BackendBucketsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
51664	c.project = project
51665	c.backendBucket = backendBucket
51666	return c
51667}
51668
51669// RequestId sets the optional parameter "requestId": An optional
51670// request ID to identify requests. Specify a unique request ID so that
51671// if you must retry your request, the server will know to ignore the
51672// request if it has already been completed.
51673//
51674// For example, consider a situation where you make an initial request
51675// and the request times out. If you make the request again with the
51676// same request ID, the server can check if original operation with the
51677// same request ID was received, and if so, will ignore the second
51678// request. This prevents clients from accidentally creating duplicate
51679// commitments.
51680//
51681// The request ID must be a valid UUID with the exception that zero UUID
51682// is not supported (00000000-0000-0000-0000-000000000000).
51683func (c *BackendBucketsDeleteCall) RequestId(requestId string) *BackendBucketsDeleteCall {
51684	c.urlParams_.Set("requestId", requestId)
51685	return c
51686}
51687
51688// Fields allows partial responses to be retrieved. See
51689// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
51690// for more information.
51691func (c *BackendBucketsDeleteCall) Fields(s ...googleapi.Field) *BackendBucketsDeleteCall {
51692	c.urlParams_.Set("fields", googleapi.CombineFields(s))
51693	return c
51694}
51695
51696// Context sets the context to be used in this call's Do method. Any
51697// pending HTTP request will be aborted if the provided context is
51698// canceled.
51699func (c *BackendBucketsDeleteCall) Context(ctx context.Context) *BackendBucketsDeleteCall {
51700	c.ctx_ = ctx
51701	return c
51702}
51703
51704// Header returns an http.Header that can be modified by the caller to
51705// add HTTP headers to the request.
51706func (c *BackendBucketsDeleteCall) Header() http.Header {
51707	if c.header_ == nil {
51708		c.header_ = make(http.Header)
51709	}
51710	return c.header_
51711}
51712
51713func (c *BackendBucketsDeleteCall) doRequest(alt string) (*http.Response, error) {
51714	reqHeaders := make(http.Header)
51715	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
51716	for k, v := range c.header_ {
51717		reqHeaders[k] = v
51718	}
51719	reqHeaders.Set("User-Agent", c.s.userAgent())
51720	var body io.Reader = nil
51721	c.urlParams_.Set("alt", alt)
51722	c.urlParams_.Set("prettyPrint", "false")
51723	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendBuckets/{backendBucket}")
51724	urls += "?" + c.urlParams_.Encode()
51725	req, err := http.NewRequest("DELETE", urls, body)
51726	if err != nil {
51727		return nil, err
51728	}
51729	req.Header = reqHeaders
51730	googleapi.Expand(req.URL, map[string]string{
51731		"project":       c.project,
51732		"backendBucket": c.backendBucket,
51733	})
51734	return gensupport.SendRequest(c.ctx_, c.s.client, req)
51735}
51736
51737// Do executes the "compute.backendBuckets.delete" call.
51738// Exactly one of *Operation or error will be non-nil. Any non-2xx
51739// status code is an error. Response headers are in either
51740// *Operation.ServerResponse.Header or (if a response was returned at
51741// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
51742// to check whether the returned error was because
51743// http.StatusNotModified was returned.
51744func (c *BackendBucketsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
51745	gensupport.SetOptions(c.urlParams_, opts...)
51746	res, err := c.doRequest("json")
51747	if res != nil && res.StatusCode == http.StatusNotModified {
51748		if res.Body != nil {
51749			res.Body.Close()
51750		}
51751		return nil, &googleapi.Error{
51752			Code:   res.StatusCode,
51753			Header: res.Header,
51754		}
51755	}
51756	if err != nil {
51757		return nil, err
51758	}
51759	defer googleapi.CloseBody(res)
51760	if err := googleapi.CheckResponse(res); err != nil {
51761		return nil, err
51762	}
51763	ret := &Operation{
51764		ServerResponse: googleapi.ServerResponse{
51765			Header:         res.Header,
51766			HTTPStatusCode: res.StatusCode,
51767		},
51768	}
51769	target := &ret
51770	if err := gensupport.DecodeResponse(target, res); err != nil {
51771		return nil, err
51772	}
51773	return ret, nil
51774	// {
51775	//   "description": "Deletes the specified BackendBucket resource. (== suppress_warning http-rest-shadowed ==)",
51776	//   "httpMethod": "DELETE",
51777	//   "id": "compute.backendBuckets.delete",
51778	//   "parameterOrder": [
51779	//     "project",
51780	//     "backendBucket"
51781	//   ],
51782	//   "parameters": {
51783	//     "backendBucket": {
51784	//       "description": "Name of the BackendBucket resource to delete.",
51785	//       "location": "path",
51786	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
51787	//       "required": true,
51788	//       "type": "string"
51789	//     },
51790	//     "project": {
51791	//       "description": "Project ID for this request.",
51792	//       "location": "path",
51793	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
51794	//       "required": true,
51795	//       "type": "string"
51796	//     },
51797	//     "requestId": {
51798	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
51799	//       "location": "query",
51800	//       "type": "string"
51801	//     }
51802	//   },
51803	//   "path": "{project}/global/backendBuckets/{backendBucket}",
51804	//   "response": {
51805	//     "$ref": "Operation"
51806	//   },
51807	//   "scopes": [
51808	//     "https://www.googleapis.com/auth/cloud-platform",
51809	//     "https://www.googleapis.com/auth/compute"
51810	//   ]
51811	// }
51812
51813}
51814
51815// method id "compute.backendBuckets.deleteSignedUrlKey":
51816
51817type BackendBucketsDeleteSignedUrlKeyCall struct {
51818	s             *Service
51819	project       string
51820	backendBucket string
51821	urlParams_    gensupport.URLParams
51822	ctx_          context.Context
51823	header_       http.Header
51824}
51825
51826// DeleteSignedUrlKey: Deletes a key for validating requests with signed
51827// URLs for this backend bucket. (== suppress_warning http-rest-shadowed
51828// ==)
51829func (r *BackendBucketsService) DeleteSignedUrlKey(project string, backendBucket string, keyName string) *BackendBucketsDeleteSignedUrlKeyCall {
51830	c := &BackendBucketsDeleteSignedUrlKeyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
51831	c.project = project
51832	c.backendBucket = backendBucket
51833	c.urlParams_.Set("keyName", keyName)
51834	return c
51835}
51836
51837// RequestId sets the optional parameter "requestId": An optional
51838// request ID to identify requests. Specify a unique request ID so that
51839// if you must retry your request, the server will know to ignore the
51840// request if it has already been completed.
51841//
51842// For example, consider a situation where you make an initial request
51843// and the request times out. If you make the request again with the
51844// same request ID, the server can check if original operation with the
51845// same request ID was received, and if so, will ignore the second
51846// request. This prevents clients from accidentally creating duplicate
51847// commitments.
51848//
51849// The request ID must be a valid UUID with the exception that zero UUID
51850// is not supported (00000000-0000-0000-0000-000000000000).
51851func (c *BackendBucketsDeleteSignedUrlKeyCall) RequestId(requestId string) *BackendBucketsDeleteSignedUrlKeyCall {
51852	c.urlParams_.Set("requestId", requestId)
51853	return c
51854}
51855
51856// Fields allows partial responses to be retrieved. See
51857// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
51858// for more information.
51859func (c *BackendBucketsDeleteSignedUrlKeyCall) Fields(s ...googleapi.Field) *BackendBucketsDeleteSignedUrlKeyCall {
51860	c.urlParams_.Set("fields", googleapi.CombineFields(s))
51861	return c
51862}
51863
51864// Context sets the context to be used in this call's Do method. Any
51865// pending HTTP request will be aborted if the provided context is
51866// canceled.
51867func (c *BackendBucketsDeleteSignedUrlKeyCall) Context(ctx context.Context) *BackendBucketsDeleteSignedUrlKeyCall {
51868	c.ctx_ = ctx
51869	return c
51870}
51871
51872// Header returns an http.Header that can be modified by the caller to
51873// add HTTP headers to the request.
51874func (c *BackendBucketsDeleteSignedUrlKeyCall) Header() http.Header {
51875	if c.header_ == nil {
51876		c.header_ = make(http.Header)
51877	}
51878	return c.header_
51879}
51880
51881func (c *BackendBucketsDeleteSignedUrlKeyCall) doRequest(alt string) (*http.Response, error) {
51882	reqHeaders := make(http.Header)
51883	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
51884	for k, v := range c.header_ {
51885		reqHeaders[k] = v
51886	}
51887	reqHeaders.Set("User-Agent", c.s.userAgent())
51888	var body io.Reader = nil
51889	c.urlParams_.Set("alt", alt)
51890	c.urlParams_.Set("prettyPrint", "false")
51891	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendBuckets/{backendBucket}/deleteSignedUrlKey")
51892	urls += "?" + c.urlParams_.Encode()
51893	req, err := http.NewRequest("POST", urls, body)
51894	if err != nil {
51895		return nil, err
51896	}
51897	req.Header = reqHeaders
51898	googleapi.Expand(req.URL, map[string]string{
51899		"project":       c.project,
51900		"backendBucket": c.backendBucket,
51901	})
51902	return gensupport.SendRequest(c.ctx_, c.s.client, req)
51903}
51904
51905// Do executes the "compute.backendBuckets.deleteSignedUrlKey" call.
51906// Exactly one of *Operation or error will be non-nil. Any non-2xx
51907// status code is an error. Response headers are in either
51908// *Operation.ServerResponse.Header or (if a response was returned at
51909// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
51910// to check whether the returned error was because
51911// http.StatusNotModified was returned.
51912func (c *BackendBucketsDeleteSignedUrlKeyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
51913	gensupport.SetOptions(c.urlParams_, opts...)
51914	res, err := c.doRequest("json")
51915	if res != nil && res.StatusCode == http.StatusNotModified {
51916		if res.Body != nil {
51917			res.Body.Close()
51918		}
51919		return nil, &googleapi.Error{
51920			Code:   res.StatusCode,
51921			Header: res.Header,
51922		}
51923	}
51924	if err != nil {
51925		return nil, err
51926	}
51927	defer googleapi.CloseBody(res)
51928	if err := googleapi.CheckResponse(res); err != nil {
51929		return nil, err
51930	}
51931	ret := &Operation{
51932		ServerResponse: googleapi.ServerResponse{
51933			Header:         res.Header,
51934			HTTPStatusCode: res.StatusCode,
51935		},
51936	}
51937	target := &ret
51938	if err := gensupport.DecodeResponse(target, res); err != nil {
51939		return nil, err
51940	}
51941	return ret, nil
51942	// {
51943	//   "description": "Deletes a key for validating requests with signed URLs for this backend bucket. (== suppress_warning http-rest-shadowed ==)",
51944	//   "httpMethod": "POST",
51945	//   "id": "compute.backendBuckets.deleteSignedUrlKey",
51946	//   "parameterOrder": [
51947	//     "project",
51948	//     "backendBucket",
51949	//     "keyName"
51950	//   ],
51951	//   "parameters": {
51952	//     "backendBucket": {
51953	//       "description": "Name of the BackendBucket resource to which the Signed URL Key should be added. The name should conform to RFC1035.",
51954	//       "location": "path",
51955	//       "required": true,
51956	//       "type": "string"
51957	//     },
51958	//     "keyName": {
51959	//       "description": "The name of the Signed URL Key to delete.",
51960	//       "location": "query",
51961	//       "required": true,
51962	//       "type": "string"
51963	//     },
51964	//     "project": {
51965	//       "description": "Project ID for this request.",
51966	//       "location": "path",
51967	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
51968	//       "required": true,
51969	//       "type": "string"
51970	//     },
51971	//     "requestId": {
51972	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
51973	//       "location": "query",
51974	//       "type": "string"
51975	//     }
51976	//   },
51977	//   "path": "{project}/global/backendBuckets/{backendBucket}/deleteSignedUrlKey",
51978	//   "response": {
51979	//     "$ref": "Operation"
51980	//   },
51981	//   "scopes": [
51982	//     "https://www.googleapis.com/auth/cloud-platform",
51983	//     "https://www.googleapis.com/auth/compute"
51984	//   ]
51985	// }
51986
51987}
51988
51989// method id "compute.backendBuckets.get":
51990
51991type BackendBucketsGetCall struct {
51992	s             *Service
51993	project       string
51994	backendBucket string
51995	urlParams_    gensupport.URLParams
51996	ifNoneMatch_  string
51997	ctx_          context.Context
51998	header_       http.Header
51999}
52000
52001// Get: Returns the specified BackendBucket resource. Gets a list of
52002// available backend buckets by making a list() request. (==
52003// suppress_warning http-rest-shadowed ==)
52004func (r *BackendBucketsService) Get(project string, backendBucket string) *BackendBucketsGetCall {
52005	c := &BackendBucketsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
52006	c.project = project
52007	c.backendBucket = backendBucket
52008	return c
52009}
52010
52011// Fields allows partial responses to be retrieved. See
52012// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
52013// for more information.
52014func (c *BackendBucketsGetCall) Fields(s ...googleapi.Field) *BackendBucketsGetCall {
52015	c.urlParams_.Set("fields", googleapi.CombineFields(s))
52016	return c
52017}
52018
52019// IfNoneMatch sets the optional parameter which makes the operation
52020// fail if the object's ETag matches the given value. This is useful for
52021// getting updates only after the object has changed since the last
52022// request. Use googleapi.IsNotModified to check whether the response
52023// error from Do is the result of In-None-Match.
52024func (c *BackendBucketsGetCall) IfNoneMatch(entityTag string) *BackendBucketsGetCall {
52025	c.ifNoneMatch_ = entityTag
52026	return c
52027}
52028
52029// Context sets the context to be used in this call's Do method. Any
52030// pending HTTP request will be aborted if the provided context is
52031// canceled.
52032func (c *BackendBucketsGetCall) Context(ctx context.Context) *BackendBucketsGetCall {
52033	c.ctx_ = ctx
52034	return c
52035}
52036
52037// Header returns an http.Header that can be modified by the caller to
52038// add HTTP headers to the request.
52039func (c *BackendBucketsGetCall) Header() http.Header {
52040	if c.header_ == nil {
52041		c.header_ = make(http.Header)
52042	}
52043	return c.header_
52044}
52045
52046func (c *BackendBucketsGetCall) doRequest(alt string) (*http.Response, error) {
52047	reqHeaders := make(http.Header)
52048	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
52049	for k, v := range c.header_ {
52050		reqHeaders[k] = v
52051	}
52052	reqHeaders.Set("User-Agent", c.s.userAgent())
52053	if c.ifNoneMatch_ != "" {
52054		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
52055	}
52056	var body io.Reader = nil
52057	c.urlParams_.Set("alt", alt)
52058	c.urlParams_.Set("prettyPrint", "false")
52059	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendBuckets/{backendBucket}")
52060	urls += "?" + c.urlParams_.Encode()
52061	req, err := http.NewRequest("GET", urls, body)
52062	if err != nil {
52063		return nil, err
52064	}
52065	req.Header = reqHeaders
52066	googleapi.Expand(req.URL, map[string]string{
52067		"project":       c.project,
52068		"backendBucket": c.backendBucket,
52069	})
52070	return gensupport.SendRequest(c.ctx_, c.s.client, req)
52071}
52072
52073// Do executes the "compute.backendBuckets.get" call.
52074// Exactly one of *BackendBucket or error will be non-nil. Any non-2xx
52075// status code is an error. Response headers are in either
52076// *BackendBucket.ServerResponse.Header or (if a response was returned
52077// at all) in error.(*googleapi.Error).Header. Use
52078// googleapi.IsNotModified to check whether the returned error was
52079// because http.StatusNotModified was returned.
52080func (c *BackendBucketsGetCall) Do(opts ...googleapi.CallOption) (*BackendBucket, error) {
52081	gensupport.SetOptions(c.urlParams_, opts...)
52082	res, err := c.doRequest("json")
52083	if res != nil && res.StatusCode == http.StatusNotModified {
52084		if res.Body != nil {
52085			res.Body.Close()
52086		}
52087		return nil, &googleapi.Error{
52088			Code:   res.StatusCode,
52089			Header: res.Header,
52090		}
52091	}
52092	if err != nil {
52093		return nil, err
52094	}
52095	defer googleapi.CloseBody(res)
52096	if err := googleapi.CheckResponse(res); err != nil {
52097		return nil, err
52098	}
52099	ret := &BackendBucket{
52100		ServerResponse: googleapi.ServerResponse{
52101			Header:         res.Header,
52102			HTTPStatusCode: res.StatusCode,
52103		},
52104	}
52105	target := &ret
52106	if err := gensupport.DecodeResponse(target, res); err != nil {
52107		return nil, err
52108	}
52109	return ret, nil
52110	// {
52111	//   "description": "Returns the specified BackendBucket resource. Gets a list of available backend buckets by making a list() request. (== suppress_warning http-rest-shadowed ==)",
52112	//   "httpMethod": "GET",
52113	//   "id": "compute.backendBuckets.get",
52114	//   "parameterOrder": [
52115	//     "project",
52116	//     "backendBucket"
52117	//   ],
52118	//   "parameters": {
52119	//     "backendBucket": {
52120	//       "description": "Name of the BackendBucket resource to return.",
52121	//       "location": "path",
52122	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
52123	//       "required": true,
52124	//       "type": "string"
52125	//     },
52126	//     "project": {
52127	//       "description": "Project ID for this request.",
52128	//       "location": "path",
52129	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
52130	//       "required": true,
52131	//       "type": "string"
52132	//     }
52133	//   },
52134	//   "path": "{project}/global/backendBuckets/{backendBucket}",
52135	//   "response": {
52136	//     "$ref": "BackendBucket"
52137	//   },
52138	//   "scopes": [
52139	//     "https://www.googleapis.com/auth/cloud-platform",
52140	//     "https://www.googleapis.com/auth/compute",
52141	//     "https://www.googleapis.com/auth/compute.readonly"
52142	//   ]
52143	// }
52144
52145}
52146
52147// method id "compute.backendBuckets.getIamPolicy":
52148
52149type BackendBucketsGetIamPolicyCall struct {
52150	s            *Service
52151	project      string
52152	resource     string
52153	urlParams_   gensupport.URLParams
52154	ifNoneMatch_ string
52155	ctx_         context.Context
52156	header_      http.Header
52157}
52158
52159// GetIamPolicy: Gets the access control policy for a resource. May be
52160// empty if no such policy or resource exists. (== suppress_warning
52161// http-rest-shadowed ==)
52162func (r *BackendBucketsService) GetIamPolicy(project string, resource string) *BackendBucketsGetIamPolicyCall {
52163	c := &BackendBucketsGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
52164	c.project = project
52165	c.resource = resource
52166	return c
52167}
52168
52169// OptionsRequestedPolicyVersion sets the optional parameter
52170// "optionsRequestedPolicyVersion": Requested IAM Policy version.
52171func (c *BackendBucketsGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *BackendBucketsGetIamPolicyCall {
52172	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
52173	return c
52174}
52175
52176// Fields allows partial responses to be retrieved. See
52177// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
52178// for more information.
52179func (c *BackendBucketsGetIamPolicyCall) Fields(s ...googleapi.Field) *BackendBucketsGetIamPolicyCall {
52180	c.urlParams_.Set("fields", googleapi.CombineFields(s))
52181	return c
52182}
52183
52184// IfNoneMatch sets the optional parameter which makes the operation
52185// fail if the object's ETag matches the given value. This is useful for
52186// getting updates only after the object has changed since the last
52187// request. Use googleapi.IsNotModified to check whether the response
52188// error from Do is the result of In-None-Match.
52189func (c *BackendBucketsGetIamPolicyCall) IfNoneMatch(entityTag string) *BackendBucketsGetIamPolicyCall {
52190	c.ifNoneMatch_ = entityTag
52191	return c
52192}
52193
52194// Context sets the context to be used in this call's Do method. Any
52195// pending HTTP request will be aborted if the provided context is
52196// canceled.
52197func (c *BackendBucketsGetIamPolicyCall) Context(ctx context.Context) *BackendBucketsGetIamPolicyCall {
52198	c.ctx_ = ctx
52199	return c
52200}
52201
52202// Header returns an http.Header that can be modified by the caller to
52203// add HTTP headers to the request.
52204func (c *BackendBucketsGetIamPolicyCall) Header() http.Header {
52205	if c.header_ == nil {
52206		c.header_ = make(http.Header)
52207	}
52208	return c.header_
52209}
52210
52211func (c *BackendBucketsGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
52212	reqHeaders := make(http.Header)
52213	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
52214	for k, v := range c.header_ {
52215		reqHeaders[k] = v
52216	}
52217	reqHeaders.Set("User-Agent", c.s.userAgent())
52218	if c.ifNoneMatch_ != "" {
52219		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
52220	}
52221	var body io.Reader = nil
52222	c.urlParams_.Set("alt", alt)
52223	c.urlParams_.Set("prettyPrint", "false")
52224	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendBuckets/{resource}/getIamPolicy")
52225	urls += "?" + c.urlParams_.Encode()
52226	req, err := http.NewRequest("GET", urls, body)
52227	if err != nil {
52228		return nil, err
52229	}
52230	req.Header = reqHeaders
52231	googleapi.Expand(req.URL, map[string]string{
52232		"project":  c.project,
52233		"resource": c.resource,
52234	})
52235	return gensupport.SendRequest(c.ctx_, c.s.client, req)
52236}
52237
52238// Do executes the "compute.backendBuckets.getIamPolicy" call.
52239// Exactly one of *Policy or error will be non-nil. Any non-2xx status
52240// code is an error. Response headers are in either
52241// *Policy.ServerResponse.Header or (if a response was returned at all)
52242// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
52243// check whether the returned error was because http.StatusNotModified
52244// was returned.
52245func (c *BackendBucketsGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
52246	gensupport.SetOptions(c.urlParams_, opts...)
52247	res, err := c.doRequest("json")
52248	if res != nil && res.StatusCode == http.StatusNotModified {
52249		if res.Body != nil {
52250			res.Body.Close()
52251		}
52252		return nil, &googleapi.Error{
52253			Code:   res.StatusCode,
52254			Header: res.Header,
52255		}
52256	}
52257	if err != nil {
52258		return nil, err
52259	}
52260	defer googleapi.CloseBody(res)
52261	if err := googleapi.CheckResponse(res); err != nil {
52262		return nil, err
52263	}
52264	ret := &Policy{
52265		ServerResponse: googleapi.ServerResponse{
52266			Header:         res.Header,
52267			HTTPStatusCode: res.StatusCode,
52268		},
52269	}
52270	target := &ret
52271	if err := gensupport.DecodeResponse(target, res); err != nil {
52272		return nil, err
52273	}
52274	return ret, nil
52275	// {
52276	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists. (== suppress_warning http-rest-shadowed ==)",
52277	//   "httpMethod": "GET",
52278	//   "id": "compute.backendBuckets.getIamPolicy",
52279	//   "parameterOrder": [
52280	//     "project",
52281	//     "resource"
52282	//   ],
52283	//   "parameters": {
52284	//     "optionsRequestedPolicyVersion": {
52285	//       "description": "Requested IAM Policy version.",
52286	//       "format": "int32",
52287	//       "location": "query",
52288	//       "type": "integer"
52289	//     },
52290	//     "project": {
52291	//       "description": "Project ID for this request.",
52292	//       "location": "path",
52293	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
52294	//       "required": true,
52295	//       "type": "string"
52296	//     },
52297	//     "resource": {
52298	//       "description": "Name or id of the resource for this request.",
52299	//       "location": "path",
52300	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
52301	//       "required": true,
52302	//       "type": "string"
52303	//     }
52304	//   },
52305	//   "path": "{project}/global/backendBuckets/{resource}/getIamPolicy",
52306	//   "response": {
52307	//     "$ref": "Policy"
52308	//   },
52309	//   "scopes": [
52310	//     "https://www.googleapis.com/auth/cloud-platform",
52311	//     "https://www.googleapis.com/auth/compute",
52312	//     "https://www.googleapis.com/auth/compute.readonly"
52313	//   ]
52314	// }
52315
52316}
52317
52318// method id "compute.backendBuckets.insert":
52319
52320type BackendBucketsInsertCall struct {
52321	s             *Service
52322	project       string
52323	backendbucket *BackendBucket
52324	urlParams_    gensupport.URLParams
52325	ctx_          context.Context
52326	header_       http.Header
52327}
52328
52329// Insert: Creates a BackendBucket resource in the specified project
52330// using the data included in the request. (== suppress_warning
52331// http-rest-shadowed ==)
52332func (r *BackendBucketsService) Insert(project string, backendbucket *BackendBucket) *BackendBucketsInsertCall {
52333	c := &BackendBucketsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
52334	c.project = project
52335	c.backendbucket = backendbucket
52336	return c
52337}
52338
52339// RequestId sets the optional parameter "requestId": An optional
52340// request ID to identify requests. Specify a unique request ID so that
52341// if you must retry your request, the server will know to ignore the
52342// request if it has already been completed.
52343//
52344// For example, consider a situation where you make an initial request
52345// and the request times out. If you make the request again with the
52346// same request ID, the server can check if original operation with the
52347// same request ID was received, and if so, will ignore the second
52348// request. This prevents clients from accidentally creating duplicate
52349// commitments.
52350//
52351// The request ID must be a valid UUID with the exception that zero UUID
52352// is not supported (00000000-0000-0000-0000-000000000000).
52353func (c *BackendBucketsInsertCall) RequestId(requestId string) *BackendBucketsInsertCall {
52354	c.urlParams_.Set("requestId", requestId)
52355	return c
52356}
52357
52358// Fields allows partial responses to be retrieved. See
52359// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
52360// for more information.
52361func (c *BackendBucketsInsertCall) Fields(s ...googleapi.Field) *BackendBucketsInsertCall {
52362	c.urlParams_.Set("fields", googleapi.CombineFields(s))
52363	return c
52364}
52365
52366// Context sets the context to be used in this call's Do method. Any
52367// pending HTTP request will be aborted if the provided context is
52368// canceled.
52369func (c *BackendBucketsInsertCall) Context(ctx context.Context) *BackendBucketsInsertCall {
52370	c.ctx_ = ctx
52371	return c
52372}
52373
52374// Header returns an http.Header that can be modified by the caller to
52375// add HTTP headers to the request.
52376func (c *BackendBucketsInsertCall) Header() http.Header {
52377	if c.header_ == nil {
52378		c.header_ = make(http.Header)
52379	}
52380	return c.header_
52381}
52382
52383func (c *BackendBucketsInsertCall) doRequest(alt string) (*http.Response, error) {
52384	reqHeaders := make(http.Header)
52385	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
52386	for k, v := range c.header_ {
52387		reqHeaders[k] = v
52388	}
52389	reqHeaders.Set("User-Agent", c.s.userAgent())
52390	var body io.Reader = nil
52391	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendbucket)
52392	if err != nil {
52393		return nil, err
52394	}
52395	reqHeaders.Set("Content-Type", "application/json")
52396	c.urlParams_.Set("alt", alt)
52397	c.urlParams_.Set("prettyPrint", "false")
52398	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendBuckets")
52399	urls += "?" + c.urlParams_.Encode()
52400	req, err := http.NewRequest("POST", urls, body)
52401	if err != nil {
52402		return nil, err
52403	}
52404	req.Header = reqHeaders
52405	googleapi.Expand(req.URL, map[string]string{
52406		"project": c.project,
52407	})
52408	return gensupport.SendRequest(c.ctx_, c.s.client, req)
52409}
52410
52411// Do executes the "compute.backendBuckets.insert" call.
52412// Exactly one of *Operation or error will be non-nil. Any non-2xx
52413// status code is an error. Response headers are in either
52414// *Operation.ServerResponse.Header or (if a response was returned at
52415// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
52416// to check whether the returned error was because
52417// http.StatusNotModified was returned.
52418func (c *BackendBucketsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
52419	gensupport.SetOptions(c.urlParams_, opts...)
52420	res, err := c.doRequest("json")
52421	if res != nil && res.StatusCode == http.StatusNotModified {
52422		if res.Body != nil {
52423			res.Body.Close()
52424		}
52425		return nil, &googleapi.Error{
52426			Code:   res.StatusCode,
52427			Header: res.Header,
52428		}
52429	}
52430	if err != nil {
52431		return nil, err
52432	}
52433	defer googleapi.CloseBody(res)
52434	if err := googleapi.CheckResponse(res); err != nil {
52435		return nil, err
52436	}
52437	ret := &Operation{
52438		ServerResponse: googleapi.ServerResponse{
52439			Header:         res.Header,
52440			HTTPStatusCode: res.StatusCode,
52441		},
52442	}
52443	target := &ret
52444	if err := gensupport.DecodeResponse(target, res); err != nil {
52445		return nil, err
52446	}
52447	return ret, nil
52448	// {
52449	//   "description": "Creates a BackendBucket resource in the specified project using the data included in the request. (== suppress_warning http-rest-shadowed ==)",
52450	//   "httpMethod": "POST",
52451	//   "id": "compute.backendBuckets.insert",
52452	//   "parameterOrder": [
52453	//     "project"
52454	//   ],
52455	//   "parameters": {
52456	//     "project": {
52457	//       "description": "Project ID for this request.",
52458	//       "location": "path",
52459	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
52460	//       "required": true,
52461	//       "type": "string"
52462	//     },
52463	//     "requestId": {
52464	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
52465	//       "location": "query",
52466	//       "type": "string"
52467	//     }
52468	//   },
52469	//   "path": "{project}/global/backendBuckets",
52470	//   "request": {
52471	//     "$ref": "BackendBucket"
52472	//   },
52473	//   "response": {
52474	//     "$ref": "Operation"
52475	//   },
52476	//   "scopes": [
52477	//     "https://www.googleapis.com/auth/cloud-platform",
52478	//     "https://www.googleapis.com/auth/compute"
52479	//   ]
52480	// }
52481
52482}
52483
52484// method id "compute.backendBuckets.list":
52485
52486type BackendBucketsListCall struct {
52487	s            *Service
52488	project      string
52489	urlParams_   gensupport.URLParams
52490	ifNoneMatch_ string
52491	ctx_         context.Context
52492	header_      http.Header
52493}
52494
52495// List: Retrieves the list of BackendBucket resources available to the
52496// specified project. (== suppress_warning http-rest-shadowed ==)
52497func (r *BackendBucketsService) List(project string) *BackendBucketsListCall {
52498	c := &BackendBucketsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
52499	c.project = project
52500	return c
52501}
52502
52503// Filter sets the optional parameter "filter": A filter expression that
52504// filters resources listed in the response. The expression must specify
52505// the field name, a comparison operator, and the value that you want to
52506// use for filtering. The value must be a string, a number, or a
52507// boolean. The comparison operator must be either =, !=, >, or <.
52508//
52509// For example, if you are filtering Compute Engine instances, you can
52510// exclude instances named example-instance by specifying name !=
52511// example-instance.
52512//
52513// You can also filter nested fields. For example, you could specify
52514// scheduling.automaticRestart = false to include instances only if they
52515// are not scheduled for automatic restarts. You can use filtering on
52516// nested fields to filter based on resource labels.
52517//
52518// To filter on multiple expressions, provide each separate expression
52519// within parentheses. For example, (scheduling.automaticRestart = true)
52520// (cpuPlatform = "Intel Skylake"). By default, each expression is an
52521// AND expression. However, you can include AND and OR expressions
52522// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
52523// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
52524// true).
52525func (c *BackendBucketsListCall) Filter(filter string) *BackendBucketsListCall {
52526	c.urlParams_.Set("filter", filter)
52527	return c
52528}
52529
52530// MaxResults sets the optional parameter "maxResults": The maximum
52531// number of results per page that should be returned. If the number of
52532// available results is larger than maxResults, Compute Engine returns a
52533// nextPageToken that can be used to get the next page of results in
52534// subsequent list requests. Acceptable values are 0 to 500, inclusive.
52535// (Default: 500)
52536func (c *BackendBucketsListCall) MaxResults(maxResults int64) *BackendBucketsListCall {
52537	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
52538	return c
52539}
52540
52541// OrderBy sets the optional parameter "orderBy": Sorts list results by
52542// a certain order. By default, results are returned in alphanumerical
52543// order based on the resource name.
52544//
52545// You can also sort results in descending order based on the creation
52546// timestamp using orderBy="creationTimestamp desc". This sorts results
52547// based on the creationTimestamp field in reverse chronological order
52548// (newest result first). Use this to sort resources like operations so
52549// that the newest operation is returned first.
52550//
52551// Currently, only sorting by name or creationTimestamp desc is
52552// supported.
52553func (c *BackendBucketsListCall) OrderBy(orderBy string) *BackendBucketsListCall {
52554	c.urlParams_.Set("orderBy", orderBy)
52555	return c
52556}
52557
52558// PageToken sets the optional parameter "pageToken": Specifies a page
52559// token to use. Set pageToken to the nextPageToken returned by a
52560// previous list request to get the next page of results.
52561func (c *BackendBucketsListCall) PageToken(pageToken string) *BackendBucketsListCall {
52562	c.urlParams_.Set("pageToken", pageToken)
52563	return c
52564}
52565
52566// Fields allows partial responses to be retrieved. See
52567// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
52568// for more information.
52569func (c *BackendBucketsListCall) Fields(s ...googleapi.Field) *BackendBucketsListCall {
52570	c.urlParams_.Set("fields", googleapi.CombineFields(s))
52571	return c
52572}
52573
52574// IfNoneMatch sets the optional parameter which makes the operation
52575// fail if the object's ETag matches the given value. This is useful for
52576// getting updates only after the object has changed since the last
52577// request. Use googleapi.IsNotModified to check whether the response
52578// error from Do is the result of In-None-Match.
52579func (c *BackendBucketsListCall) IfNoneMatch(entityTag string) *BackendBucketsListCall {
52580	c.ifNoneMatch_ = entityTag
52581	return c
52582}
52583
52584// Context sets the context to be used in this call's Do method. Any
52585// pending HTTP request will be aborted if the provided context is
52586// canceled.
52587func (c *BackendBucketsListCall) Context(ctx context.Context) *BackendBucketsListCall {
52588	c.ctx_ = ctx
52589	return c
52590}
52591
52592// Header returns an http.Header that can be modified by the caller to
52593// add HTTP headers to the request.
52594func (c *BackendBucketsListCall) Header() http.Header {
52595	if c.header_ == nil {
52596		c.header_ = make(http.Header)
52597	}
52598	return c.header_
52599}
52600
52601func (c *BackendBucketsListCall) doRequest(alt string) (*http.Response, error) {
52602	reqHeaders := make(http.Header)
52603	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
52604	for k, v := range c.header_ {
52605		reqHeaders[k] = v
52606	}
52607	reqHeaders.Set("User-Agent", c.s.userAgent())
52608	if c.ifNoneMatch_ != "" {
52609		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
52610	}
52611	var body io.Reader = nil
52612	c.urlParams_.Set("alt", alt)
52613	c.urlParams_.Set("prettyPrint", "false")
52614	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendBuckets")
52615	urls += "?" + c.urlParams_.Encode()
52616	req, err := http.NewRequest("GET", urls, body)
52617	if err != nil {
52618		return nil, err
52619	}
52620	req.Header = reqHeaders
52621	googleapi.Expand(req.URL, map[string]string{
52622		"project": c.project,
52623	})
52624	return gensupport.SendRequest(c.ctx_, c.s.client, req)
52625}
52626
52627// Do executes the "compute.backendBuckets.list" call.
52628// Exactly one of *BackendBucketList or error will be non-nil. Any
52629// non-2xx status code is an error. Response headers are in either
52630// *BackendBucketList.ServerResponse.Header or (if a response was
52631// returned at all) in error.(*googleapi.Error).Header. Use
52632// googleapi.IsNotModified to check whether the returned error was
52633// because http.StatusNotModified was returned.
52634func (c *BackendBucketsListCall) Do(opts ...googleapi.CallOption) (*BackendBucketList, error) {
52635	gensupport.SetOptions(c.urlParams_, opts...)
52636	res, err := c.doRequest("json")
52637	if res != nil && res.StatusCode == http.StatusNotModified {
52638		if res.Body != nil {
52639			res.Body.Close()
52640		}
52641		return nil, &googleapi.Error{
52642			Code:   res.StatusCode,
52643			Header: res.Header,
52644		}
52645	}
52646	if err != nil {
52647		return nil, err
52648	}
52649	defer googleapi.CloseBody(res)
52650	if err := googleapi.CheckResponse(res); err != nil {
52651		return nil, err
52652	}
52653	ret := &BackendBucketList{
52654		ServerResponse: googleapi.ServerResponse{
52655			Header:         res.Header,
52656			HTTPStatusCode: res.StatusCode,
52657		},
52658	}
52659	target := &ret
52660	if err := gensupport.DecodeResponse(target, res); err != nil {
52661		return nil, err
52662	}
52663	return ret, nil
52664	// {
52665	//   "description": "Retrieves the list of BackendBucket resources available to the specified project. (== suppress_warning http-rest-shadowed ==)",
52666	//   "httpMethod": "GET",
52667	//   "id": "compute.backendBuckets.list",
52668	//   "parameterOrder": [
52669	//     "project"
52670	//   ],
52671	//   "parameters": {
52672	//     "filter": {
52673	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
52674	//       "location": "query",
52675	//       "type": "string"
52676	//     },
52677	//     "maxResults": {
52678	//       "default": "500",
52679	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
52680	//       "format": "uint32",
52681	//       "location": "query",
52682	//       "minimum": "0",
52683	//       "type": "integer"
52684	//     },
52685	//     "orderBy": {
52686	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
52687	//       "location": "query",
52688	//       "type": "string"
52689	//     },
52690	//     "pageToken": {
52691	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
52692	//       "location": "query",
52693	//       "type": "string"
52694	//     },
52695	//     "project": {
52696	//       "description": "Project ID for this request.",
52697	//       "location": "path",
52698	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
52699	//       "required": true,
52700	//       "type": "string"
52701	//     }
52702	//   },
52703	//   "path": "{project}/global/backendBuckets",
52704	//   "response": {
52705	//     "$ref": "BackendBucketList"
52706	//   },
52707	//   "scopes": [
52708	//     "https://www.googleapis.com/auth/cloud-platform",
52709	//     "https://www.googleapis.com/auth/compute",
52710	//     "https://www.googleapis.com/auth/compute.readonly"
52711	//   ]
52712	// }
52713
52714}
52715
52716// Pages invokes f for each page of results.
52717// A non-nil error returned from f will halt the iteration.
52718// The provided context supersedes any context provided to the Context method.
52719func (c *BackendBucketsListCall) Pages(ctx context.Context, f func(*BackendBucketList) error) error {
52720	c.ctx_ = ctx
52721	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
52722	for {
52723		x, err := c.Do()
52724		if err != nil {
52725			return err
52726		}
52727		if err := f(x); err != nil {
52728			return err
52729		}
52730		if x.NextPageToken == "" {
52731			return nil
52732		}
52733		c.PageToken(x.NextPageToken)
52734	}
52735}
52736
52737// method id "compute.backendBuckets.patch":
52738
52739type BackendBucketsPatchCall struct {
52740	s             *Service
52741	project       string
52742	backendBucket string
52743	backendbucket *BackendBucket
52744	urlParams_    gensupport.URLParams
52745	ctx_          context.Context
52746	header_       http.Header
52747}
52748
52749// Patch: Updates the specified BackendBucket resource with the data
52750// included in the request. This method supports PATCH semantics and
52751// uses the JSON merge patch format and processing rules. (==
52752// suppress_warning http-rest-shadowed ==)
52753func (r *BackendBucketsService) Patch(project string, backendBucket string, backendbucket *BackendBucket) *BackendBucketsPatchCall {
52754	c := &BackendBucketsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
52755	c.project = project
52756	c.backendBucket = backendBucket
52757	c.backendbucket = backendbucket
52758	return c
52759}
52760
52761// RequestId sets the optional parameter "requestId": An optional
52762// request ID to identify requests. Specify a unique request ID so that
52763// if you must retry your request, the server will know to ignore the
52764// request if it has already been completed.
52765//
52766// For example, consider a situation where you make an initial request
52767// and the request times out. If you make the request again with the
52768// same request ID, the server can check if original operation with the
52769// same request ID was received, and if so, will ignore the second
52770// request. This prevents clients from accidentally creating duplicate
52771// commitments.
52772//
52773// The request ID must be a valid UUID with the exception that zero UUID
52774// is not supported (00000000-0000-0000-0000-000000000000).
52775func (c *BackendBucketsPatchCall) RequestId(requestId string) *BackendBucketsPatchCall {
52776	c.urlParams_.Set("requestId", requestId)
52777	return c
52778}
52779
52780// Fields allows partial responses to be retrieved. See
52781// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
52782// for more information.
52783func (c *BackendBucketsPatchCall) Fields(s ...googleapi.Field) *BackendBucketsPatchCall {
52784	c.urlParams_.Set("fields", googleapi.CombineFields(s))
52785	return c
52786}
52787
52788// Context sets the context to be used in this call's Do method. Any
52789// pending HTTP request will be aborted if the provided context is
52790// canceled.
52791func (c *BackendBucketsPatchCall) Context(ctx context.Context) *BackendBucketsPatchCall {
52792	c.ctx_ = ctx
52793	return c
52794}
52795
52796// Header returns an http.Header that can be modified by the caller to
52797// add HTTP headers to the request.
52798func (c *BackendBucketsPatchCall) Header() http.Header {
52799	if c.header_ == nil {
52800		c.header_ = make(http.Header)
52801	}
52802	return c.header_
52803}
52804
52805func (c *BackendBucketsPatchCall) doRequest(alt string) (*http.Response, error) {
52806	reqHeaders := make(http.Header)
52807	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
52808	for k, v := range c.header_ {
52809		reqHeaders[k] = v
52810	}
52811	reqHeaders.Set("User-Agent", c.s.userAgent())
52812	var body io.Reader = nil
52813	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendbucket)
52814	if err != nil {
52815		return nil, err
52816	}
52817	reqHeaders.Set("Content-Type", "application/json")
52818	c.urlParams_.Set("alt", alt)
52819	c.urlParams_.Set("prettyPrint", "false")
52820	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendBuckets/{backendBucket}")
52821	urls += "?" + c.urlParams_.Encode()
52822	req, err := http.NewRequest("PATCH", urls, body)
52823	if err != nil {
52824		return nil, err
52825	}
52826	req.Header = reqHeaders
52827	googleapi.Expand(req.URL, map[string]string{
52828		"project":       c.project,
52829		"backendBucket": c.backendBucket,
52830	})
52831	return gensupport.SendRequest(c.ctx_, c.s.client, req)
52832}
52833
52834// Do executes the "compute.backendBuckets.patch" call.
52835// Exactly one of *Operation or error will be non-nil. Any non-2xx
52836// status code is an error. Response headers are in either
52837// *Operation.ServerResponse.Header or (if a response was returned at
52838// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
52839// to check whether the returned error was because
52840// http.StatusNotModified was returned.
52841func (c *BackendBucketsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
52842	gensupport.SetOptions(c.urlParams_, opts...)
52843	res, err := c.doRequest("json")
52844	if res != nil && res.StatusCode == http.StatusNotModified {
52845		if res.Body != nil {
52846			res.Body.Close()
52847		}
52848		return nil, &googleapi.Error{
52849			Code:   res.StatusCode,
52850			Header: res.Header,
52851		}
52852	}
52853	if err != nil {
52854		return nil, err
52855	}
52856	defer googleapi.CloseBody(res)
52857	if err := googleapi.CheckResponse(res); err != nil {
52858		return nil, err
52859	}
52860	ret := &Operation{
52861		ServerResponse: googleapi.ServerResponse{
52862			Header:         res.Header,
52863			HTTPStatusCode: res.StatusCode,
52864		},
52865	}
52866	target := &ret
52867	if err := gensupport.DecodeResponse(target, res); err != nil {
52868		return nil, err
52869	}
52870	return ret, nil
52871	// {
52872	//   "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. (== suppress_warning http-rest-shadowed ==)",
52873	//   "httpMethod": "PATCH",
52874	//   "id": "compute.backendBuckets.patch",
52875	//   "parameterOrder": [
52876	//     "project",
52877	//     "backendBucket"
52878	//   ],
52879	//   "parameters": {
52880	//     "backendBucket": {
52881	//       "description": "Name of the BackendBucket resource to patch.",
52882	//       "location": "path",
52883	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
52884	//       "required": true,
52885	//       "type": "string"
52886	//     },
52887	//     "project": {
52888	//       "description": "Project ID for this request.",
52889	//       "location": "path",
52890	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
52891	//       "required": true,
52892	//       "type": "string"
52893	//     },
52894	//     "requestId": {
52895	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
52896	//       "location": "query",
52897	//       "type": "string"
52898	//     }
52899	//   },
52900	//   "path": "{project}/global/backendBuckets/{backendBucket}",
52901	//   "request": {
52902	//     "$ref": "BackendBucket"
52903	//   },
52904	//   "response": {
52905	//     "$ref": "Operation"
52906	//   },
52907	//   "scopes": [
52908	//     "https://www.googleapis.com/auth/cloud-platform",
52909	//     "https://www.googleapis.com/auth/compute"
52910	//   ]
52911	// }
52912
52913}
52914
52915// method id "compute.backendBuckets.setIamPolicy":
52916
52917type BackendBucketsSetIamPolicyCall struct {
52918	s                      *Service
52919	project                string
52920	resource               string
52921	globalsetpolicyrequest *GlobalSetPolicyRequest
52922	urlParams_             gensupport.URLParams
52923	ctx_                   context.Context
52924	header_                http.Header
52925}
52926
52927// SetIamPolicy: Sets the access control policy on the specified
52928// resource. Replaces any existing policy. (== suppress_warning
52929// http-rest-shadowed ==)
52930func (r *BackendBucketsService) SetIamPolicy(project string, resource string, globalsetpolicyrequest *GlobalSetPolicyRequest) *BackendBucketsSetIamPolicyCall {
52931	c := &BackendBucketsSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
52932	c.project = project
52933	c.resource = resource
52934	c.globalsetpolicyrequest = globalsetpolicyrequest
52935	return c
52936}
52937
52938// Fields allows partial responses to be retrieved. See
52939// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
52940// for more information.
52941func (c *BackendBucketsSetIamPolicyCall) Fields(s ...googleapi.Field) *BackendBucketsSetIamPolicyCall {
52942	c.urlParams_.Set("fields", googleapi.CombineFields(s))
52943	return c
52944}
52945
52946// Context sets the context to be used in this call's Do method. Any
52947// pending HTTP request will be aborted if the provided context is
52948// canceled.
52949func (c *BackendBucketsSetIamPolicyCall) Context(ctx context.Context) *BackendBucketsSetIamPolicyCall {
52950	c.ctx_ = ctx
52951	return c
52952}
52953
52954// Header returns an http.Header that can be modified by the caller to
52955// add HTTP headers to the request.
52956func (c *BackendBucketsSetIamPolicyCall) Header() http.Header {
52957	if c.header_ == nil {
52958		c.header_ = make(http.Header)
52959	}
52960	return c.header_
52961}
52962
52963func (c *BackendBucketsSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
52964	reqHeaders := make(http.Header)
52965	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
52966	for k, v := range c.header_ {
52967		reqHeaders[k] = v
52968	}
52969	reqHeaders.Set("User-Agent", c.s.userAgent())
52970	var body io.Reader = nil
52971	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetpolicyrequest)
52972	if err != nil {
52973		return nil, err
52974	}
52975	reqHeaders.Set("Content-Type", "application/json")
52976	c.urlParams_.Set("alt", alt)
52977	c.urlParams_.Set("prettyPrint", "false")
52978	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendBuckets/{resource}/setIamPolicy")
52979	urls += "?" + c.urlParams_.Encode()
52980	req, err := http.NewRequest("POST", urls, body)
52981	if err != nil {
52982		return nil, err
52983	}
52984	req.Header = reqHeaders
52985	googleapi.Expand(req.URL, map[string]string{
52986		"project":  c.project,
52987		"resource": c.resource,
52988	})
52989	return gensupport.SendRequest(c.ctx_, c.s.client, req)
52990}
52991
52992// Do executes the "compute.backendBuckets.setIamPolicy" call.
52993// Exactly one of *Policy or error will be non-nil. Any non-2xx status
52994// code is an error. Response headers are in either
52995// *Policy.ServerResponse.Header or (if a response was returned at all)
52996// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
52997// check whether the returned error was because http.StatusNotModified
52998// was returned.
52999func (c *BackendBucketsSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
53000	gensupport.SetOptions(c.urlParams_, opts...)
53001	res, err := c.doRequest("json")
53002	if res != nil && res.StatusCode == http.StatusNotModified {
53003		if res.Body != nil {
53004			res.Body.Close()
53005		}
53006		return nil, &googleapi.Error{
53007			Code:   res.StatusCode,
53008			Header: res.Header,
53009		}
53010	}
53011	if err != nil {
53012		return nil, err
53013	}
53014	defer googleapi.CloseBody(res)
53015	if err := googleapi.CheckResponse(res); err != nil {
53016		return nil, err
53017	}
53018	ret := &Policy{
53019		ServerResponse: googleapi.ServerResponse{
53020			Header:         res.Header,
53021			HTTPStatusCode: res.StatusCode,
53022		},
53023	}
53024	target := &ret
53025	if err := gensupport.DecodeResponse(target, res); err != nil {
53026		return nil, err
53027	}
53028	return ret, nil
53029	// {
53030	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy. (== suppress_warning http-rest-shadowed ==)",
53031	//   "httpMethod": "POST",
53032	//   "id": "compute.backendBuckets.setIamPolicy",
53033	//   "parameterOrder": [
53034	//     "project",
53035	//     "resource"
53036	//   ],
53037	//   "parameters": {
53038	//     "project": {
53039	//       "description": "Project ID for this request.",
53040	//       "location": "path",
53041	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
53042	//       "required": true,
53043	//       "type": "string"
53044	//     },
53045	//     "resource": {
53046	//       "description": "Name or id of the resource for this request.",
53047	//       "location": "path",
53048	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
53049	//       "required": true,
53050	//       "type": "string"
53051	//     }
53052	//   },
53053	//   "path": "{project}/global/backendBuckets/{resource}/setIamPolicy",
53054	//   "request": {
53055	//     "$ref": "GlobalSetPolicyRequest"
53056	//   },
53057	//   "response": {
53058	//     "$ref": "Policy"
53059	//   },
53060	//   "scopes": [
53061	//     "https://www.googleapis.com/auth/cloud-platform",
53062	//     "https://www.googleapis.com/auth/compute"
53063	//   ]
53064	// }
53065
53066}
53067
53068// method id "compute.backendBuckets.testIamPermissions":
53069
53070type BackendBucketsTestIamPermissionsCall struct {
53071	s                      *Service
53072	project                string
53073	resource               string
53074	testpermissionsrequest *TestPermissionsRequest
53075	urlParams_             gensupport.URLParams
53076	ctx_                   context.Context
53077	header_                http.Header
53078}
53079
53080// TestIamPermissions: Returns permissions that a caller has on the
53081// specified resource. (== suppress_warning http-rest-shadowed ==)
53082func (r *BackendBucketsService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *BackendBucketsTestIamPermissionsCall {
53083	c := &BackendBucketsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
53084	c.project = project
53085	c.resource = resource
53086	c.testpermissionsrequest = testpermissionsrequest
53087	return c
53088}
53089
53090// Fields allows partial responses to be retrieved. See
53091// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
53092// for more information.
53093func (c *BackendBucketsTestIamPermissionsCall) Fields(s ...googleapi.Field) *BackendBucketsTestIamPermissionsCall {
53094	c.urlParams_.Set("fields", googleapi.CombineFields(s))
53095	return c
53096}
53097
53098// Context sets the context to be used in this call's Do method. Any
53099// pending HTTP request will be aborted if the provided context is
53100// canceled.
53101func (c *BackendBucketsTestIamPermissionsCall) Context(ctx context.Context) *BackendBucketsTestIamPermissionsCall {
53102	c.ctx_ = ctx
53103	return c
53104}
53105
53106// Header returns an http.Header that can be modified by the caller to
53107// add HTTP headers to the request.
53108func (c *BackendBucketsTestIamPermissionsCall) Header() http.Header {
53109	if c.header_ == nil {
53110		c.header_ = make(http.Header)
53111	}
53112	return c.header_
53113}
53114
53115func (c *BackendBucketsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
53116	reqHeaders := make(http.Header)
53117	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
53118	for k, v := range c.header_ {
53119		reqHeaders[k] = v
53120	}
53121	reqHeaders.Set("User-Agent", c.s.userAgent())
53122	var body io.Reader = nil
53123	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
53124	if err != nil {
53125		return nil, err
53126	}
53127	reqHeaders.Set("Content-Type", "application/json")
53128	c.urlParams_.Set("alt", alt)
53129	c.urlParams_.Set("prettyPrint", "false")
53130	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendBuckets/{resource}/testIamPermissions")
53131	urls += "?" + c.urlParams_.Encode()
53132	req, err := http.NewRequest("POST", urls, body)
53133	if err != nil {
53134		return nil, err
53135	}
53136	req.Header = reqHeaders
53137	googleapi.Expand(req.URL, map[string]string{
53138		"project":  c.project,
53139		"resource": c.resource,
53140	})
53141	return gensupport.SendRequest(c.ctx_, c.s.client, req)
53142}
53143
53144// Do executes the "compute.backendBuckets.testIamPermissions" call.
53145// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
53146// non-2xx status code is an error. Response headers are in either
53147// *TestPermissionsResponse.ServerResponse.Header or (if a response was
53148// returned at all) in error.(*googleapi.Error).Header. Use
53149// googleapi.IsNotModified to check whether the returned error was
53150// because http.StatusNotModified was returned.
53151func (c *BackendBucketsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
53152	gensupport.SetOptions(c.urlParams_, opts...)
53153	res, err := c.doRequest("json")
53154	if res != nil && res.StatusCode == http.StatusNotModified {
53155		if res.Body != nil {
53156			res.Body.Close()
53157		}
53158		return nil, &googleapi.Error{
53159			Code:   res.StatusCode,
53160			Header: res.Header,
53161		}
53162	}
53163	if err != nil {
53164		return nil, err
53165	}
53166	defer googleapi.CloseBody(res)
53167	if err := googleapi.CheckResponse(res); err != nil {
53168		return nil, err
53169	}
53170	ret := &TestPermissionsResponse{
53171		ServerResponse: googleapi.ServerResponse{
53172			Header:         res.Header,
53173			HTTPStatusCode: res.StatusCode,
53174		},
53175	}
53176	target := &ret
53177	if err := gensupport.DecodeResponse(target, res); err != nil {
53178		return nil, err
53179	}
53180	return ret, nil
53181	// {
53182	//   "description": "Returns permissions that a caller has on the specified resource. (== suppress_warning http-rest-shadowed ==)",
53183	//   "httpMethod": "POST",
53184	//   "id": "compute.backendBuckets.testIamPermissions",
53185	//   "parameterOrder": [
53186	//     "project",
53187	//     "resource"
53188	//   ],
53189	//   "parameters": {
53190	//     "project": {
53191	//       "description": "Project ID for this request.",
53192	//       "location": "path",
53193	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
53194	//       "required": true,
53195	//       "type": "string"
53196	//     },
53197	//     "resource": {
53198	//       "description": "Name or id of the resource for this request.",
53199	//       "location": "path",
53200	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
53201	//       "required": true,
53202	//       "type": "string"
53203	//     }
53204	//   },
53205	//   "path": "{project}/global/backendBuckets/{resource}/testIamPermissions",
53206	//   "request": {
53207	//     "$ref": "TestPermissionsRequest"
53208	//   },
53209	//   "response": {
53210	//     "$ref": "TestPermissionsResponse"
53211	//   },
53212	//   "scopes": [
53213	//     "https://www.googleapis.com/auth/cloud-platform",
53214	//     "https://www.googleapis.com/auth/compute",
53215	//     "https://www.googleapis.com/auth/compute.readonly"
53216	//   ]
53217	// }
53218
53219}
53220
53221// method id "compute.backendBuckets.update":
53222
53223type BackendBucketsUpdateCall struct {
53224	s             *Service
53225	project       string
53226	backendBucket string
53227	backendbucket *BackendBucket
53228	urlParams_    gensupport.URLParams
53229	ctx_          context.Context
53230	header_       http.Header
53231}
53232
53233// Update: Updates the specified BackendBucket resource with the data
53234// included in the request. (== suppress_warning http-rest-shadowed ==)
53235func (r *BackendBucketsService) Update(project string, backendBucket string, backendbucket *BackendBucket) *BackendBucketsUpdateCall {
53236	c := &BackendBucketsUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
53237	c.project = project
53238	c.backendBucket = backendBucket
53239	c.backendbucket = backendbucket
53240	return c
53241}
53242
53243// RequestId sets the optional parameter "requestId": An optional
53244// request ID to identify requests. Specify a unique request ID so that
53245// if you must retry your request, the server will know to ignore the
53246// request if it has already been completed.
53247//
53248// For example, consider a situation where you make an initial request
53249// and the request times out. If you make the request again with the
53250// same request ID, the server can check if original operation with the
53251// same request ID was received, and if so, will ignore the second
53252// request. This prevents clients from accidentally creating duplicate
53253// commitments.
53254//
53255// The request ID must be a valid UUID with the exception that zero UUID
53256// is not supported (00000000-0000-0000-0000-000000000000).
53257func (c *BackendBucketsUpdateCall) RequestId(requestId string) *BackendBucketsUpdateCall {
53258	c.urlParams_.Set("requestId", requestId)
53259	return c
53260}
53261
53262// Fields allows partial responses to be retrieved. See
53263// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
53264// for more information.
53265func (c *BackendBucketsUpdateCall) Fields(s ...googleapi.Field) *BackendBucketsUpdateCall {
53266	c.urlParams_.Set("fields", googleapi.CombineFields(s))
53267	return c
53268}
53269
53270// Context sets the context to be used in this call's Do method. Any
53271// pending HTTP request will be aborted if the provided context is
53272// canceled.
53273func (c *BackendBucketsUpdateCall) Context(ctx context.Context) *BackendBucketsUpdateCall {
53274	c.ctx_ = ctx
53275	return c
53276}
53277
53278// Header returns an http.Header that can be modified by the caller to
53279// add HTTP headers to the request.
53280func (c *BackendBucketsUpdateCall) Header() http.Header {
53281	if c.header_ == nil {
53282		c.header_ = make(http.Header)
53283	}
53284	return c.header_
53285}
53286
53287func (c *BackendBucketsUpdateCall) doRequest(alt string) (*http.Response, error) {
53288	reqHeaders := make(http.Header)
53289	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
53290	for k, v := range c.header_ {
53291		reqHeaders[k] = v
53292	}
53293	reqHeaders.Set("User-Agent", c.s.userAgent())
53294	var body io.Reader = nil
53295	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendbucket)
53296	if err != nil {
53297		return nil, err
53298	}
53299	reqHeaders.Set("Content-Type", "application/json")
53300	c.urlParams_.Set("alt", alt)
53301	c.urlParams_.Set("prettyPrint", "false")
53302	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendBuckets/{backendBucket}")
53303	urls += "?" + c.urlParams_.Encode()
53304	req, err := http.NewRequest("PUT", urls, body)
53305	if err != nil {
53306		return nil, err
53307	}
53308	req.Header = reqHeaders
53309	googleapi.Expand(req.URL, map[string]string{
53310		"project":       c.project,
53311		"backendBucket": c.backendBucket,
53312	})
53313	return gensupport.SendRequest(c.ctx_, c.s.client, req)
53314}
53315
53316// Do executes the "compute.backendBuckets.update" call.
53317// Exactly one of *Operation or error will be non-nil. Any non-2xx
53318// status code is an error. Response headers are in either
53319// *Operation.ServerResponse.Header or (if a response was returned at
53320// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
53321// to check whether the returned error was because
53322// http.StatusNotModified was returned.
53323func (c *BackendBucketsUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
53324	gensupport.SetOptions(c.urlParams_, opts...)
53325	res, err := c.doRequest("json")
53326	if res != nil && res.StatusCode == http.StatusNotModified {
53327		if res.Body != nil {
53328			res.Body.Close()
53329		}
53330		return nil, &googleapi.Error{
53331			Code:   res.StatusCode,
53332			Header: res.Header,
53333		}
53334	}
53335	if err != nil {
53336		return nil, err
53337	}
53338	defer googleapi.CloseBody(res)
53339	if err := googleapi.CheckResponse(res); err != nil {
53340		return nil, err
53341	}
53342	ret := &Operation{
53343		ServerResponse: googleapi.ServerResponse{
53344			Header:         res.Header,
53345			HTTPStatusCode: res.StatusCode,
53346		},
53347	}
53348	target := &ret
53349	if err := gensupport.DecodeResponse(target, res); err != nil {
53350		return nil, err
53351	}
53352	return ret, nil
53353	// {
53354	//   "description": "Updates the specified BackendBucket resource with the data included in the request. (== suppress_warning http-rest-shadowed ==)",
53355	//   "httpMethod": "PUT",
53356	//   "id": "compute.backendBuckets.update",
53357	//   "parameterOrder": [
53358	//     "project",
53359	//     "backendBucket"
53360	//   ],
53361	//   "parameters": {
53362	//     "backendBucket": {
53363	//       "description": "Name of the BackendBucket resource to update.",
53364	//       "location": "path",
53365	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
53366	//       "required": true,
53367	//       "type": "string"
53368	//     },
53369	//     "project": {
53370	//       "description": "Project ID for this request.",
53371	//       "location": "path",
53372	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
53373	//       "required": true,
53374	//       "type": "string"
53375	//     },
53376	//     "requestId": {
53377	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
53378	//       "location": "query",
53379	//       "type": "string"
53380	//     }
53381	//   },
53382	//   "path": "{project}/global/backendBuckets/{backendBucket}",
53383	//   "request": {
53384	//     "$ref": "BackendBucket"
53385	//   },
53386	//   "response": {
53387	//     "$ref": "Operation"
53388	//   },
53389	//   "scopes": [
53390	//     "https://www.googleapis.com/auth/cloud-platform",
53391	//     "https://www.googleapis.com/auth/compute"
53392	//   ]
53393	// }
53394
53395}
53396
53397// method id "compute.backendServices.addSignedUrlKey":
53398
53399type BackendServicesAddSignedUrlKeyCall struct {
53400	s              *Service
53401	project        string
53402	backendService string
53403	signedurlkey   *SignedUrlKey
53404	urlParams_     gensupport.URLParams
53405	ctx_           context.Context
53406	header_        http.Header
53407}
53408
53409// AddSignedUrlKey: Adds a key for validating requests with signed URLs
53410// for this backend service. (== suppress_warning http-rest-shadowed ==)
53411func (r *BackendServicesService) AddSignedUrlKey(project string, backendService string, signedurlkey *SignedUrlKey) *BackendServicesAddSignedUrlKeyCall {
53412	c := &BackendServicesAddSignedUrlKeyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
53413	c.project = project
53414	c.backendService = backendService
53415	c.signedurlkey = signedurlkey
53416	return c
53417}
53418
53419// RequestId sets the optional parameter "requestId": An optional
53420// request ID to identify requests. Specify a unique request ID so that
53421// if you must retry your request, the server will know to ignore the
53422// request if it has already been completed.
53423//
53424// For example, consider a situation where you make an initial request
53425// and the request times out. If you make the request again with the
53426// same request ID, the server can check if original operation with the
53427// same request ID was received, and if so, will ignore the second
53428// request. This prevents clients from accidentally creating duplicate
53429// commitments.
53430//
53431// The request ID must be a valid UUID with the exception that zero UUID
53432// is not supported (00000000-0000-0000-0000-000000000000).
53433func (c *BackendServicesAddSignedUrlKeyCall) RequestId(requestId string) *BackendServicesAddSignedUrlKeyCall {
53434	c.urlParams_.Set("requestId", requestId)
53435	return c
53436}
53437
53438// Fields allows partial responses to be retrieved. See
53439// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
53440// for more information.
53441func (c *BackendServicesAddSignedUrlKeyCall) Fields(s ...googleapi.Field) *BackendServicesAddSignedUrlKeyCall {
53442	c.urlParams_.Set("fields", googleapi.CombineFields(s))
53443	return c
53444}
53445
53446// Context sets the context to be used in this call's Do method. Any
53447// pending HTTP request will be aborted if the provided context is
53448// canceled.
53449func (c *BackendServicesAddSignedUrlKeyCall) Context(ctx context.Context) *BackendServicesAddSignedUrlKeyCall {
53450	c.ctx_ = ctx
53451	return c
53452}
53453
53454// Header returns an http.Header that can be modified by the caller to
53455// add HTTP headers to the request.
53456func (c *BackendServicesAddSignedUrlKeyCall) Header() http.Header {
53457	if c.header_ == nil {
53458		c.header_ = make(http.Header)
53459	}
53460	return c.header_
53461}
53462
53463func (c *BackendServicesAddSignedUrlKeyCall) doRequest(alt string) (*http.Response, error) {
53464	reqHeaders := make(http.Header)
53465	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
53466	for k, v := range c.header_ {
53467		reqHeaders[k] = v
53468	}
53469	reqHeaders.Set("User-Agent", c.s.userAgent())
53470	var body io.Reader = nil
53471	body, err := googleapi.WithoutDataWrapper.JSONReader(c.signedurlkey)
53472	if err != nil {
53473		return nil, err
53474	}
53475	reqHeaders.Set("Content-Type", "application/json")
53476	c.urlParams_.Set("alt", alt)
53477	c.urlParams_.Set("prettyPrint", "false")
53478	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendServices/{backendService}/addSignedUrlKey")
53479	urls += "?" + c.urlParams_.Encode()
53480	req, err := http.NewRequest("POST", urls, body)
53481	if err != nil {
53482		return nil, err
53483	}
53484	req.Header = reqHeaders
53485	googleapi.Expand(req.URL, map[string]string{
53486		"project":        c.project,
53487		"backendService": c.backendService,
53488	})
53489	return gensupport.SendRequest(c.ctx_, c.s.client, req)
53490}
53491
53492// Do executes the "compute.backendServices.addSignedUrlKey" call.
53493// Exactly one of *Operation or error will be non-nil. Any non-2xx
53494// status code is an error. Response headers are in either
53495// *Operation.ServerResponse.Header or (if a response was returned at
53496// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
53497// to check whether the returned error was because
53498// http.StatusNotModified was returned.
53499func (c *BackendServicesAddSignedUrlKeyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
53500	gensupport.SetOptions(c.urlParams_, opts...)
53501	res, err := c.doRequest("json")
53502	if res != nil && res.StatusCode == http.StatusNotModified {
53503		if res.Body != nil {
53504			res.Body.Close()
53505		}
53506		return nil, &googleapi.Error{
53507			Code:   res.StatusCode,
53508			Header: res.Header,
53509		}
53510	}
53511	if err != nil {
53512		return nil, err
53513	}
53514	defer googleapi.CloseBody(res)
53515	if err := googleapi.CheckResponse(res); err != nil {
53516		return nil, err
53517	}
53518	ret := &Operation{
53519		ServerResponse: googleapi.ServerResponse{
53520			Header:         res.Header,
53521			HTTPStatusCode: res.StatusCode,
53522		},
53523	}
53524	target := &ret
53525	if err := gensupport.DecodeResponse(target, res); err != nil {
53526		return nil, err
53527	}
53528	return ret, nil
53529	// {
53530	//   "description": "Adds a key for validating requests with signed URLs for this backend service. (== suppress_warning http-rest-shadowed ==)",
53531	//   "httpMethod": "POST",
53532	//   "id": "compute.backendServices.addSignedUrlKey",
53533	//   "parameterOrder": [
53534	//     "project",
53535	//     "backendService"
53536	//   ],
53537	//   "parameters": {
53538	//     "backendService": {
53539	//       "description": "Name of the BackendService resource to which the Signed URL Key should be added. The name should conform to RFC1035.",
53540	//       "location": "path",
53541	//       "required": true,
53542	//       "type": "string"
53543	//     },
53544	//     "project": {
53545	//       "description": "Project ID for this request.",
53546	//       "location": "path",
53547	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
53548	//       "required": true,
53549	//       "type": "string"
53550	//     },
53551	//     "requestId": {
53552	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
53553	//       "location": "query",
53554	//       "type": "string"
53555	//     }
53556	//   },
53557	//   "path": "{project}/global/backendServices/{backendService}/addSignedUrlKey",
53558	//   "request": {
53559	//     "$ref": "SignedUrlKey"
53560	//   },
53561	//   "response": {
53562	//     "$ref": "Operation"
53563	//   },
53564	//   "scopes": [
53565	//     "https://www.googleapis.com/auth/cloud-platform",
53566	//     "https://www.googleapis.com/auth/compute"
53567	//   ]
53568	// }
53569
53570}
53571
53572// method id "compute.backendServices.aggregatedList":
53573
53574type BackendServicesAggregatedListCall struct {
53575	s            *Service
53576	project      string
53577	urlParams_   gensupport.URLParams
53578	ifNoneMatch_ string
53579	ctx_         context.Context
53580	header_      http.Header
53581}
53582
53583// AggregatedList: Retrieves the list of all BackendService resources,
53584// regional and global, available to the specified project. (==
53585// suppress_warning http-rest-shadowed ==)
53586func (r *BackendServicesService) AggregatedList(project string) *BackendServicesAggregatedListCall {
53587	c := &BackendServicesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
53588	c.project = project
53589	return c
53590}
53591
53592// Filter sets the optional parameter "filter": A filter expression that
53593// filters resources listed in the response. The expression must specify
53594// the field name, a comparison operator, and the value that you want to
53595// use for filtering. The value must be a string, a number, or a
53596// boolean. The comparison operator must be either =, !=, >, or <.
53597//
53598// For example, if you are filtering Compute Engine instances, you can
53599// exclude instances named example-instance by specifying name !=
53600// example-instance.
53601//
53602// You can also filter nested fields. For example, you could specify
53603// scheduling.automaticRestart = false to include instances only if they
53604// are not scheduled for automatic restarts. You can use filtering on
53605// nested fields to filter based on resource labels.
53606//
53607// To filter on multiple expressions, provide each separate expression
53608// within parentheses. For example, (scheduling.automaticRestart = true)
53609// (cpuPlatform = "Intel Skylake"). By default, each expression is an
53610// AND expression. However, you can include AND and OR expressions
53611// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
53612// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
53613// true).
53614func (c *BackendServicesAggregatedListCall) Filter(filter string) *BackendServicesAggregatedListCall {
53615	c.urlParams_.Set("filter", filter)
53616	return c
53617}
53618
53619// MaxResults sets the optional parameter "maxResults": The maximum
53620// number of results per page that should be returned. If the number of
53621// available results is larger than maxResults, Compute Engine returns a
53622// nextPageToken that can be used to get the next page of results in
53623// subsequent list requests. Acceptable values are 0 to 500, inclusive.
53624// (Default: 500)
53625func (c *BackendServicesAggregatedListCall) MaxResults(maxResults int64) *BackendServicesAggregatedListCall {
53626	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
53627	return c
53628}
53629
53630// OrderBy sets the optional parameter "orderBy": Sorts list results by
53631// a certain order. By default, results are returned in alphanumerical
53632// order based on the resource name.
53633//
53634// You can also sort results in descending order based on the creation
53635// timestamp using orderBy="creationTimestamp desc". This sorts results
53636// based on the creationTimestamp field in reverse chronological order
53637// (newest result first). Use this to sort resources like operations so
53638// that the newest operation is returned first.
53639//
53640// Currently, only sorting by name or creationTimestamp desc is
53641// supported.
53642func (c *BackendServicesAggregatedListCall) OrderBy(orderBy string) *BackendServicesAggregatedListCall {
53643	c.urlParams_.Set("orderBy", orderBy)
53644	return c
53645}
53646
53647// PageToken sets the optional parameter "pageToken": Specifies a page
53648// token to use. Set pageToken to the nextPageToken returned by a
53649// previous list request to get the next page of results.
53650func (c *BackendServicesAggregatedListCall) PageToken(pageToken string) *BackendServicesAggregatedListCall {
53651	c.urlParams_.Set("pageToken", pageToken)
53652	return c
53653}
53654
53655// Fields allows partial responses to be retrieved. See
53656// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
53657// for more information.
53658func (c *BackendServicesAggregatedListCall) Fields(s ...googleapi.Field) *BackendServicesAggregatedListCall {
53659	c.urlParams_.Set("fields", googleapi.CombineFields(s))
53660	return c
53661}
53662
53663// IfNoneMatch sets the optional parameter which makes the operation
53664// fail if the object's ETag matches the given value. This is useful for
53665// getting updates only after the object has changed since the last
53666// request. Use googleapi.IsNotModified to check whether the response
53667// error from Do is the result of In-None-Match.
53668func (c *BackendServicesAggregatedListCall) IfNoneMatch(entityTag string) *BackendServicesAggregatedListCall {
53669	c.ifNoneMatch_ = entityTag
53670	return c
53671}
53672
53673// Context sets the context to be used in this call's Do method. Any
53674// pending HTTP request will be aborted if the provided context is
53675// canceled.
53676func (c *BackendServicesAggregatedListCall) Context(ctx context.Context) *BackendServicesAggregatedListCall {
53677	c.ctx_ = ctx
53678	return c
53679}
53680
53681// Header returns an http.Header that can be modified by the caller to
53682// add HTTP headers to the request.
53683func (c *BackendServicesAggregatedListCall) Header() http.Header {
53684	if c.header_ == nil {
53685		c.header_ = make(http.Header)
53686	}
53687	return c.header_
53688}
53689
53690func (c *BackendServicesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
53691	reqHeaders := make(http.Header)
53692	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
53693	for k, v := range c.header_ {
53694		reqHeaders[k] = v
53695	}
53696	reqHeaders.Set("User-Agent", c.s.userAgent())
53697	if c.ifNoneMatch_ != "" {
53698		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
53699	}
53700	var body io.Reader = nil
53701	c.urlParams_.Set("alt", alt)
53702	c.urlParams_.Set("prettyPrint", "false")
53703	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/backendServices")
53704	urls += "?" + c.urlParams_.Encode()
53705	req, err := http.NewRequest("GET", urls, body)
53706	if err != nil {
53707		return nil, err
53708	}
53709	req.Header = reqHeaders
53710	googleapi.Expand(req.URL, map[string]string{
53711		"project": c.project,
53712	})
53713	return gensupport.SendRequest(c.ctx_, c.s.client, req)
53714}
53715
53716// Do executes the "compute.backendServices.aggregatedList" call.
53717// Exactly one of *BackendServiceAggregatedList or error will be
53718// non-nil. Any non-2xx status code is an error. Response headers are in
53719// either *BackendServiceAggregatedList.ServerResponse.Header or (if a
53720// response was returned at all) in error.(*googleapi.Error).Header. Use
53721// googleapi.IsNotModified to check whether the returned error was
53722// because http.StatusNotModified was returned.
53723func (c *BackendServicesAggregatedListCall) Do(opts ...googleapi.CallOption) (*BackendServiceAggregatedList, error) {
53724	gensupport.SetOptions(c.urlParams_, opts...)
53725	res, err := c.doRequest("json")
53726	if res != nil && res.StatusCode == http.StatusNotModified {
53727		if res.Body != nil {
53728			res.Body.Close()
53729		}
53730		return nil, &googleapi.Error{
53731			Code:   res.StatusCode,
53732			Header: res.Header,
53733		}
53734	}
53735	if err != nil {
53736		return nil, err
53737	}
53738	defer googleapi.CloseBody(res)
53739	if err := googleapi.CheckResponse(res); err != nil {
53740		return nil, err
53741	}
53742	ret := &BackendServiceAggregatedList{
53743		ServerResponse: googleapi.ServerResponse{
53744			Header:         res.Header,
53745			HTTPStatusCode: res.StatusCode,
53746		},
53747	}
53748	target := &ret
53749	if err := gensupport.DecodeResponse(target, res); err != nil {
53750		return nil, err
53751	}
53752	return ret, nil
53753	// {
53754	//   "description": "Retrieves the list of all BackendService resources, regional and global, available to the specified project. (== suppress_warning http-rest-shadowed ==)",
53755	//   "httpMethod": "GET",
53756	//   "id": "compute.backendServices.aggregatedList",
53757	//   "parameterOrder": [
53758	//     "project"
53759	//   ],
53760	//   "parameters": {
53761	//     "filter": {
53762	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
53763	//       "location": "query",
53764	//       "type": "string"
53765	//     },
53766	//     "maxResults": {
53767	//       "default": "500",
53768	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
53769	//       "format": "uint32",
53770	//       "location": "query",
53771	//       "minimum": "0",
53772	//       "type": "integer"
53773	//     },
53774	//     "orderBy": {
53775	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
53776	//       "location": "query",
53777	//       "type": "string"
53778	//     },
53779	//     "pageToken": {
53780	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
53781	//       "location": "query",
53782	//       "type": "string"
53783	//     },
53784	//     "project": {
53785	//       "description": "Name of the project scoping this request.",
53786	//       "location": "path",
53787	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
53788	//       "required": true,
53789	//       "type": "string"
53790	//     }
53791	//   },
53792	//   "path": "{project}/aggregated/backendServices",
53793	//   "response": {
53794	//     "$ref": "BackendServiceAggregatedList"
53795	//   },
53796	//   "scopes": [
53797	//     "https://www.googleapis.com/auth/cloud-platform",
53798	//     "https://www.googleapis.com/auth/compute",
53799	//     "https://www.googleapis.com/auth/compute.readonly"
53800	//   ]
53801	// }
53802
53803}
53804
53805// Pages invokes f for each page of results.
53806// A non-nil error returned from f will halt the iteration.
53807// The provided context supersedes any context provided to the Context method.
53808func (c *BackendServicesAggregatedListCall) Pages(ctx context.Context, f func(*BackendServiceAggregatedList) error) error {
53809	c.ctx_ = ctx
53810	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
53811	for {
53812		x, err := c.Do()
53813		if err != nil {
53814			return err
53815		}
53816		if err := f(x); err != nil {
53817			return err
53818		}
53819		if x.NextPageToken == "" {
53820			return nil
53821		}
53822		c.PageToken(x.NextPageToken)
53823	}
53824}
53825
53826// method id "compute.backendServices.delete":
53827
53828type BackendServicesDeleteCall struct {
53829	s              *Service
53830	project        string
53831	backendService string
53832	urlParams_     gensupport.URLParams
53833	ctx_           context.Context
53834	header_        http.Header
53835}
53836
53837// Delete: Deletes the specified BackendService resource. (==
53838// suppress_warning http-rest-shadowed ==)
53839// For details, see https://cloud.google.com/compute/docs/reference/latest/backendServices/delete
53840func (r *BackendServicesService) Delete(project string, backendService string) *BackendServicesDeleteCall {
53841	c := &BackendServicesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
53842	c.project = project
53843	c.backendService = backendService
53844	return c
53845}
53846
53847// RequestId sets the optional parameter "requestId": An optional
53848// request ID to identify requests. Specify a unique request ID so that
53849// if you must retry your request, the server will know to ignore the
53850// request if it has already been completed.
53851//
53852// For example, consider a situation where you make an initial request
53853// and the request times out. If you make the request again with the
53854// same request ID, the server can check if original operation with the
53855// same request ID was received, and if so, will ignore the second
53856// request. This prevents clients from accidentally creating duplicate
53857// commitments.
53858//
53859// The request ID must be a valid UUID with the exception that zero UUID
53860// is not supported (00000000-0000-0000-0000-000000000000).
53861func (c *BackendServicesDeleteCall) RequestId(requestId string) *BackendServicesDeleteCall {
53862	c.urlParams_.Set("requestId", requestId)
53863	return c
53864}
53865
53866// Fields allows partial responses to be retrieved. See
53867// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
53868// for more information.
53869func (c *BackendServicesDeleteCall) Fields(s ...googleapi.Field) *BackendServicesDeleteCall {
53870	c.urlParams_.Set("fields", googleapi.CombineFields(s))
53871	return c
53872}
53873
53874// Context sets the context to be used in this call's Do method. Any
53875// pending HTTP request will be aborted if the provided context is
53876// canceled.
53877func (c *BackendServicesDeleteCall) Context(ctx context.Context) *BackendServicesDeleteCall {
53878	c.ctx_ = ctx
53879	return c
53880}
53881
53882// Header returns an http.Header that can be modified by the caller to
53883// add HTTP headers to the request.
53884func (c *BackendServicesDeleteCall) Header() http.Header {
53885	if c.header_ == nil {
53886		c.header_ = make(http.Header)
53887	}
53888	return c.header_
53889}
53890
53891func (c *BackendServicesDeleteCall) doRequest(alt string) (*http.Response, error) {
53892	reqHeaders := make(http.Header)
53893	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
53894	for k, v := range c.header_ {
53895		reqHeaders[k] = v
53896	}
53897	reqHeaders.Set("User-Agent", c.s.userAgent())
53898	var body io.Reader = nil
53899	c.urlParams_.Set("alt", alt)
53900	c.urlParams_.Set("prettyPrint", "false")
53901	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendServices/{backendService}")
53902	urls += "?" + c.urlParams_.Encode()
53903	req, err := http.NewRequest("DELETE", urls, body)
53904	if err != nil {
53905		return nil, err
53906	}
53907	req.Header = reqHeaders
53908	googleapi.Expand(req.URL, map[string]string{
53909		"project":        c.project,
53910		"backendService": c.backendService,
53911	})
53912	return gensupport.SendRequest(c.ctx_, c.s.client, req)
53913}
53914
53915// Do executes the "compute.backendServices.delete" call.
53916// Exactly one of *Operation or error will be non-nil. Any non-2xx
53917// status code is an error. Response headers are in either
53918// *Operation.ServerResponse.Header or (if a response was returned at
53919// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
53920// to check whether the returned error was because
53921// http.StatusNotModified was returned.
53922func (c *BackendServicesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
53923	gensupport.SetOptions(c.urlParams_, opts...)
53924	res, err := c.doRequest("json")
53925	if res != nil && res.StatusCode == http.StatusNotModified {
53926		if res.Body != nil {
53927			res.Body.Close()
53928		}
53929		return nil, &googleapi.Error{
53930			Code:   res.StatusCode,
53931			Header: res.Header,
53932		}
53933	}
53934	if err != nil {
53935		return nil, err
53936	}
53937	defer googleapi.CloseBody(res)
53938	if err := googleapi.CheckResponse(res); err != nil {
53939		return nil, err
53940	}
53941	ret := &Operation{
53942		ServerResponse: googleapi.ServerResponse{
53943			Header:         res.Header,
53944			HTTPStatusCode: res.StatusCode,
53945		},
53946	}
53947	target := &ret
53948	if err := gensupport.DecodeResponse(target, res); err != nil {
53949		return nil, err
53950	}
53951	return ret, nil
53952	// {
53953	//   "description": "Deletes the specified BackendService resource. (== suppress_warning http-rest-shadowed ==)",
53954	//   "httpMethod": "DELETE",
53955	//   "id": "compute.backendServices.delete",
53956	//   "parameterOrder": [
53957	//     "project",
53958	//     "backendService"
53959	//   ],
53960	//   "parameters": {
53961	//     "backendService": {
53962	//       "description": "Name of the BackendService resource to delete.",
53963	//       "location": "path",
53964	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
53965	//       "required": true,
53966	//       "type": "string"
53967	//     },
53968	//     "project": {
53969	//       "description": "Project ID for this request.",
53970	//       "location": "path",
53971	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
53972	//       "required": true,
53973	//       "type": "string"
53974	//     },
53975	//     "requestId": {
53976	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
53977	//       "location": "query",
53978	//       "type": "string"
53979	//     }
53980	//   },
53981	//   "path": "{project}/global/backendServices/{backendService}",
53982	//   "response": {
53983	//     "$ref": "Operation"
53984	//   },
53985	//   "scopes": [
53986	//     "https://www.googleapis.com/auth/cloud-platform",
53987	//     "https://www.googleapis.com/auth/compute"
53988	//   ]
53989	// }
53990
53991}
53992
53993// method id "compute.backendServices.deleteSignedUrlKey":
53994
53995type BackendServicesDeleteSignedUrlKeyCall struct {
53996	s              *Service
53997	project        string
53998	backendService string
53999	urlParams_     gensupport.URLParams
54000	ctx_           context.Context
54001	header_        http.Header
54002}
54003
54004// DeleteSignedUrlKey: Deletes a key for validating requests with signed
54005// URLs for this backend service. (== suppress_warning
54006// http-rest-shadowed ==)
54007func (r *BackendServicesService) DeleteSignedUrlKey(project string, backendService string, keyName string) *BackendServicesDeleteSignedUrlKeyCall {
54008	c := &BackendServicesDeleteSignedUrlKeyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
54009	c.project = project
54010	c.backendService = backendService
54011	c.urlParams_.Set("keyName", keyName)
54012	return c
54013}
54014
54015// RequestId sets the optional parameter "requestId": An optional
54016// request ID to identify requests. Specify a unique request ID so that
54017// if you must retry your request, the server will know to ignore the
54018// request if it has already been completed.
54019//
54020// For example, consider a situation where you make an initial request
54021// and the request times out. If you make the request again with the
54022// same request ID, the server can check if original operation with the
54023// same request ID was received, and if so, will ignore the second
54024// request. This prevents clients from accidentally creating duplicate
54025// commitments.
54026//
54027// The request ID must be a valid UUID with the exception that zero UUID
54028// is not supported (00000000-0000-0000-0000-000000000000).
54029func (c *BackendServicesDeleteSignedUrlKeyCall) RequestId(requestId string) *BackendServicesDeleteSignedUrlKeyCall {
54030	c.urlParams_.Set("requestId", requestId)
54031	return c
54032}
54033
54034// Fields allows partial responses to be retrieved. See
54035// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
54036// for more information.
54037func (c *BackendServicesDeleteSignedUrlKeyCall) Fields(s ...googleapi.Field) *BackendServicesDeleteSignedUrlKeyCall {
54038	c.urlParams_.Set("fields", googleapi.CombineFields(s))
54039	return c
54040}
54041
54042// Context sets the context to be used in this call's Do method. Any
54043// pending HTTP request will be aborted if the provided context is
54044// canceled.
54045func (c *BackendServicesDeleteSignedUrlKeyCall) Context(ctx context.Context) *BackendServicesDeleteSignedUrlKeyCall {
54046	c.ctx_ = ctx
54047	return c
54048}
54049
54050// Header returns an http.Header that can be modified by the caller to
54051// add HTTP headers to the request.
54052func (c *BackendServicesDeleteSignedUrlKeyCall) Header() http.Header {
54053	if c.header_ == nil {
54054		c.header_ = make(http.Header)
54055	}
54056	return c.header_
54057}
54058
54059func (c *BackendServicesDeleteSignedUrlKeyCall) doRequest(alt string) (*http.Response, error) {
54060	reqHeaders := make(http.Header)
54061	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
54062	for k, v := range c.header_ {
54063		reqHeaders[k] = v
54064	}
54065	reqHeaders.Set("User-Agent", c.s.userAgent())
54066	var body io.Reader = nil
54067	c.urlParams_.Set("alt", alt)
54068	c.urlParams_.Set("prettyPrint", "false")
54069	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendServices/{backendService}/deleteSignedUrlKey")
54070	urls += "?" + c.urlParams_.Encode()
54071	req, err := http.NewRequest("POST", urls, body)
54072	if err != nil {
54073		return nil, err
54074	}
54075	req.Header = reqHeaders
54076	googleapi.Expand(req.URL, map[string]string{
54077		"project":        c.project,
54078		"backendService": c.backendService,
54079	})
54080	return gensupport.SendRequest(c.ctx_, c.s.client, req)
54081}
54082
54083// Do executes the "compute.backendServices.deleteSignedUrlKey" call.
54084// Exactly one of *Operation or error will be non-nil. Any non-2xx
54085// status code is an error. Response headers are in either
54086// *Operation.ServerResponse.Header or (if a response was returned at
54087// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
54088// to check whether the returned error was because
54089// http.StatusNotModified was returned.
54090func (c *BackendServicesDeleteSignedUrlKeyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
54091	gensupport.SetOptions(c.urlParams_, opts...)
54092	res, err := c.doRequest("json")
54093	if res != nil && res.StatusCode == http.StatusNotModified {
54094		if res.Body != nil {
54095			res.Body.Close()
54096		}
54097		return nil, &googleapi.Error{
54098			Code:   res.StatusCode,
54099			Header: res.Header,
54100		}
54101	}
54102	if err != nil {
54103		return nil, err
54104	}
54105	defer googleapi.CloseBody(res)
54106	if err := googleapi.CheckResponse(res); err != nil {
54107		return nil, err
54108	}
54109	ret := &Operation{
54110		ServerResponse: googleapi.ServerResponse{
54111			Header:         res.Header,
54112			HTTPStatusCode: res.StatusCode,
54113		},
54114	}
54115	target := &ret
54116	if err := gensupport.DecodeResponse(target, res); err != nil {
54117		return nil, err
54118	}
54119	return ret, nil
54120	// {
54121	//   "description": "Deletes a key for validating requests with signed URLs for this backend service. (== suppress_warning http-rest-shadowed ==)",
54122	//   "httpMethod": "POST",
54123	//   "id": "compute.backendServices.deleteSignedUrlKey",
54124	//   "parameterOrder": [
54125	//     "project",
54126	//     "backendService",
54127	//     "keyName"
54128	//   ],
54129	//   "parameters": {
54130	//     "backendService": {
54131	//       "description": "Name of the BackendService resource to which the Signed URL Key should be added. The name should conform to RFC1035.",
54132	//       "location": "path",
54133	//       "required": true,
54134	//       "type": "string"
54135	//     },
54136	//     "keyName": {
54137	//       "description": "The name of the Signed URL Key to delete.",
54138	//       "location": "query",
54139	//       "required": true,
54140	//       "type": "string"
54141	//     },
54142	//     "project": {
54143	//       "description": "Project ID for this request.",
54144	//       "location": "path",
54145	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
54146	//       "required": true,
54147	//       "type": "string"
54148	//     },
54149	//     "requestId": {
54150	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
54151	//       "location": "query",
54152	//       "type": "string"
54153	//     }
54154	//   },
54155	//   "path": "{project}/global/backendServices/{backendService}/deleteSignedUrlKey",
54156	//   "response": {
54157	//     "$ref": "Operation"
54158	//   },
54159	//   "scopes": [
54160	//     "https://www.googleapis.com/auth/cloud-platform",
54161	//     "https://www.googleapis.com/auth/compute"
54162	//   ]
54163	// }
54164
54165}
54166
54167// method id "compute.backendServices.get":
54168
54169type BackendServicesGetCall struct {
54170	s              *Service
54171	project        string
54172	backendService string
54173	urlParams_     gensupport.URLParams
54174	ifNoneMatch_   string
54175	ctx_           context.Context
54176	header_        http.Header
54177}
54178
54179// Get: Returns the specified BackendService resource. Gets a list of
54180// available backend services. (== suppress_warning http-rest-shadowed
54181// ==)
54182// For details, see https://cloud.google.com/compute/docs/reference/latest/backendServices/get
54183func (r *BackendServicesService) Get(project string, backendService string) *BackendServicesGetCall {
54184	c := &BackendServicesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
54185	c.project = project
54186	c.backendService = backendService
54187	return c
54188}
54189
54190// Fields allows partial responses to be retrieved. See
54191// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
54192// for more information.
54193func (c *BackendServicesGetCall) Fields(s ...googleapi.Field) *BackendServicesGetCall {
54194	c.urlParams_.Set("fields", googleapi.CombineFields(s))
54195	return c
54196}
54197
54198// IfNoneMatch sets the optional parameter which makes the operation
54199// fail if the object's ETag matches the given value. This is useful for
54200// getting updates only after the object has changed since the last
54201// request. Use googleapi.IsNotModified to check whether the response
54202// error from Do is the result of In-None-Match.
54203func (c *BackendServicesGetCall) IfNoneMatch(entityTag string) *BackendServicesGetCall {
54204	c.ifNoneMatch_ = entityTag
54205	return c
54206}
54207
54208// Context sets the context to be used in this call's Do method. Any
54209// pending HTTP request will be aborted if the provided context is
54210// canceled.
54211func (c *BackendServicesGetCall) Context(ctx context.Context) *BackendServicesGetCall {
54212	c.ctx_ = ctx
54213	return c
54214}
54215
54216// Header returns an http.Header that can be modified by the caller to
54217// add HTTP headers to the request.
54218func (c *BackendServicesGetCall) Header() http.Header {
54219	if c.header_ == nil {
54220		c.header_ = make(http.Header)
54221	}
54222	return c.header_
54223}
54224
54225func (c *BackendServicesGetCall) doRequest(alt string) (*http.Response, error) {
54226	reqHeaders := make(http.Header)
54227	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
54228	for k, v := range c.header_ {
54229		reqHeaders[k] = v
54230	}
54231	reqHeaders.Set("User-Agent", c.s.userAgent())
54232	if c.ifNoneMatch_ != "" {
54233		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
54234	}
54235	var body io.Reader = nil
54236	c.urlParams_.Set("alt", alt)
54237	c.urlParams_.Set("prettyPrint", "false")
54238	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendServices/{backendService}")
54239	urls += "?" + c.urlParams_.Encode()
54240	req, err := http.NewRequest("GET", urls, body)
54241	if err != nil {
54242		return nil, err
54243	}
54244	req.Header = reqHeaders
54245	googleapi.Expand(req.URL, map[string]string{
54246		"project":        c.project,
54247		"backendService": c.backendService,
54248	})
54249	return gensupport.SendRequest(c.ctx_, c.s.client, req)
54250}
54251
54252// Do executes the "compute.backendServices.get" call.
54253// Exactly one of *BackendService or error will be non-nil. Any non-2xx
54254// status code is an error. Response headers are in either
54255// *BackendService.ServerResponse.Header or (if a response was returned
54256// at all) in error.(*googleapi.Error).Header. Use
54257// googleapi.IsNotModified to check whether the returned error was
54258// because http.StatusNotModified was returned.
54259func (c *BackendServicesGetCall) Do(opts ...googleapi.CallOption) (*BackendService, error) {
54260	gensupport.SetOptions(c.urlParams_, opts...)
54261	res, err := c.doRequest("json")
54262	if res != nil && res.StatusCode == http.StatusNotModified {
54263		if res.Body != nil {
54264			res.Body.Close()
54265		}
54266		return nil, &googleapi.Error{
54267			Code:   res.StatusCode,
54268			Header: res.Header,
54269		}
54270	}
54271	if err != nil {
54272		return nil, err
54273	}
54274	defer googleapi.CloseBody(res)
54275	if err := googleapi.CheckResponse(res); err != nil {
54276		return nil, err
54277	}
54278	ret := &BackendService{
54279		ServerResponse: googleapi.ServerResponse{
54280			Header:         res.Header,
54281			HTTPStatusCode: res.StatusCode,
54282		},
54283	}
54284	target := &ret
54285	if err := gensupport.DecodeResponse(target, res); err != nil {
54286		return nil, err
54287	}
54288	return ret, nil
54289	// {
54290	//   "description": "Returns the specified BackendService resource. Gets a list of available backend services. (== suppress_warning http-rest-shadowed ==)",
54291	//   "httpMethod": "GET",
54292	//   "id": "compute.backendServices.get",
54293	//   "parameterOrder": [
54294	//     "project",
54295	//     "backendService"
54296	//   ],
54297	//   "parameters": {
54298	//     "backendService": {
54299	//       "description": "Name of the BackendService resource to return.",
54300	//       "location": "path",
54301	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
54302	//       "required": true,
54303	//       "type": "string"
54304	//     },
54305	//     "project": {
54306	//       "description": "Project ID for this request.",
54307	//       "location": "path",
54308	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
54309	//       "required": true,
54310	//       "type": "string"
54311	//     }
54312	//   },
54313	//   "path": "{project}/global/backendServices/{backendService}",
54314	//   "response": {
54315	//     "$ref": "BackendService"
54316	//   },
54317	//   "scopes": [
54318	//     "https://www.googleapis.com/auth/cloud-platform",
54319	//     "https://www.googleapis.com/auth/compute",
54320	//     "https://www.googleapis.com/auth/compute.readonly"
54321	//   ]
54322	// }
54323
54324}
54325
54326// method id "compute.backendServices.getHealth":
54327
54328type BackendServicesGetHealthCall struct {
54329	s                      *Service
54330	project                string
54331	backendService         string
54332	resourcegroupreference *ResourceGroupReference
54333	urlParams_             gensupport.URLParams
54334	ctx_                   context.Context
54335	header_                http.Header
54336}
54337
54338// GetHealth: Gets the most recent health check results for this
54339// BackendService. (== suppress_warning http-rest-shadowed ==)
54340// For details, see https://cloud.google.com/compute/docs/reference/latest/backendServices/getHealth
54341func (r *BackendServicesService) GetHealth(project string, backendService string, resourcegroupreference *ResourceGroupReference) *BackendServicesGetHealthCall {
54342	c := &BackendServicesGetHealthCall{s: r.s, urlParams_: make(gensupport.URLParams)}
54343	c.project = project
54344	c.backendService = backendService
54345	c.resourcegroupreference = resourcegroupreference
54346	return c
54347}
54348
54349// Fields allows partial responses to be retrieved. See
54350// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
54351// for more information.
54352func (c *BackendServicesGetHealthCall) Fields(s ...googleapi.Field) *BackendServicesGetHealthCall {
54353	c.urlParams_.Set("fields", googleapi.CombineFields(s))
54354	return c
54355}
54356
54357// Context sets the context to be used in this call's Do method. Any
54358// pending HTTP request will be aborted if the provided context is
54359// canceled.
54360func (c *BackendServicesGetHealthCall) Context(ctx context.Context) *BackendServicesGetHealthCall {
54361	c.ctx_ = ctx
54362	return c
54363}
54364
54365// Header returns an http.Header that can be modified by the caller to
54366// add HTTP headers to the request.
54367func (c *BackendServicesGetHealthCall) Header() http.Header {
54368	if c.header_ == nil {
54369		c.header_ = make(http.Header)
54370	}
54371	return c.header_
54372}
54373
54374func (c *BackendServicesGetHealthCall) doRequest(alt string) (*http.Response, error) {
54375	reqHeaders := make(http.Header)
54376	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
54377	for k, v := range c.header_ {
54378		reqHeaders[k] = v
54379	}
54380	reqHeaders.Set("User-Agent", c.s.userAgent())
54381	var body io.Reader = nil
54382	body, err := googleapi.WithoutDataWrapper.JSONReader(c.resourcegroupreference)
54383	if err != nil {
54384		return nil, err
54385	}
54386	reqHeaders.Set("Content-Type", "application/json")
54387	c.urlParams_.Set("alt", alt)
54388	c.urlParams_.Set("prettyPrint", "false")
54389	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendServices/{backendService}/getHealth")
54390	urls += "?" + c.urlParams_.Encode()
54391	req, err := http.NewRequest("POST", urls, body)
54392	if err != nil {
54393		return nil, err
54394	}
54395	req.Header = reqHeaders
54396	googleapi.Expand(req.URL, map[string]string{
54397		"project":        c.project,
54398		"backendService": c.backendService,
54399	})
54400	return gensupport.SendRequest(c.ctx_, c.s.client, req)
54401}
54402
54403// Do executes the "compute.backendServices.getHealth" call.
54404// Exactly one of *BackendServiceGroupHealth or error will be non-nil.
54405// Any non-2xx status code is an error. Response headers are in either
54406// *BackendServiceGroupHealth.ServerResponse.Header or (if a response
54407// was returned at all) in error.(*googleapi.Error).Header. Use
54408// googleapi.IsNotModified to check whether the returned error was
54409// because http.StatusNotModified was returned.
54410func (c *BackendServicesGetHealthCall) Do(opts ...googleapi.CallOption) (*BackendServiceGroupHealth, error) {
54411	gensupport.SetOptions(c.urlParams_, opts...)
54412	res, err := c.doRequest("json")
54413	if res != nil && res.StatusCode == http.StatusNotModified {
54414		if res.Body != nil {
54415			res.Body.Close()
54416		}
54417		return nil, &googleapi.Error{
54418			Code:   res.StatusCode,
54419			Header: res.Header,
54420		}
54421	}
54422	if err != nil {
54423		return nil, err
54424	}
54425	defer googleapi.CloseBody(res)
54426	if err := googleapi.CheckResponse(res); err != nil {
54427		return nil, err
54428	}
54429	ret := &BackendServiceGroupHealth{
54430		ServerResponse: googleapi.ServerResponse{
54431			Header:         res.Header,
54432			HTTPStatusCode: res.StatusCode,
54433		},
54434	}
54435	target := &ret
54436	if err := gensupport.DecodeResponse(target, res); err != nil {
54437		return nil, err
54438	}
54439	return ret, nil
54440	// {
54441	//   "description": "Gets the most recent health check results for this BackendService. (== suppress_warning http-rest-shadowed ==)",
54442	//   "httpMethod": "POST",
54443	//   "id": "compute.backendServices.getHealth",
54444	//   "parameterOrder": [
54445	//     "project",
54446	//     "backendService"
54447	//   ],
54448	//   "parameters": {
54449	//     "backendService": {
54450	//       "description": "Name of the BackendService resource to which the queried instance belongs.",
54451	//       "location": "path",
54452	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
54453	//       "required": true,
54454	//       "type": "string"
54455	//     },
54456	//     "project": {
54457	//       "location": "path",
54458	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
54459	//       "required": true,
54460	//       "type": "string"
54461	//     }
54462	//   },
54463	//   "path": "{project}/global/backendServices/{backendService}/getHealth",
54464	//   "request": {
54465	//     "$ref": "ResourceGroupReference"
54466	//   },
54467	//   "response": {
54468	//     "$ref": "BackendServiceGroupHealth"
54469	//   },
54470	//   "scopes": [
54471	//     "https://www.googleapis.com/auth/cloud-platform",
54472	//     "https://www.googleapis.com/auth/compute",
54473	//     "https://www.googleapis.com/auth/compute.readonly"
54474	//   ]
54475	// }
54476
54477}
54478
54479// method id "compute.backendServices.insert":
54480
54481type BackendServicesInsertCall struct {
54482	s              *Service
54483	project        string
54484	backendservice *BackendService
54485	urlParams_     gensupport.URLParams
54486	ctx_           context.Context
54487	header_        http.Header
54488}
54489
54490// Insert: Creates a BackendService resource in the specified project
54491// using the data included in the request. There are several
54492// restrictions and guidelines to keep in mind when creating a backend
54493// service. Read  Restrictions and Guidelines for more information. (==
54494// suppress_warning http-rest-shadowed ==)
54495// For details, see https://cloud.google.com/compute/docs/reference/latest/backendServices/insert
54496func (r *BackendServicesService) Insert(project string, backendservice *BackendService) *BackendServicesInsertCall {
54497	c := &BackendServicesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
54498	c.project = project
54499	c.backendservice = backendservice
54500	return c
54501}
54502
54503// RequestId sets the optional parameter "requestId": An optional
54504// request ID to identify requests. Specify a unique request ID so that
54505// if you must retry your request, the server will know to ignore the
54506// request if it has already been completed.
54507//
54508// For example, consider a situation where you make an initial request
54509// and the request times out. If you make the request again with the
54510// same request ID, the server can check if original operation with the
54511// same request ID was received, and if so, will ignore the second
54512// request. This prevents clients from accidentally creating duplicate
54513// commitments.
54514//
54515// The request ID must be a valid UUID with the exception that zero UUID
54516// is not supported (00000000-0000-0000-0000-000000000000).
54517func (c *BackendServicesInsertCall) RequestId(requestId string) *BackendServicesInsertCall {
54518	c.urlParams_.Set("requestId", requestId)
54519	return c
54520}
54521
54522// Fields allows partial responses to be retrieved. See
54523// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
54524// for more information.
54525func (c *BackendServicesInsertCall) Fields(s ...googleapi.Field) *BackendServicesInsertCall {
54526	c.urlParams_.Set("fields", googleapi.CombineFields(s))
54527	return c
54528}
54529
54530// Context sets the context to be used in this call's Do method. Any
54531// pending HTTP request will be aborted if the provided context is
54532// canceled.
54533func (c *BackendServicesInsertCall) Context(ctx context.Context) *BackendServicesInsertCall {
54534	c.ctx_ = ctx
54535	return c
54536}
54537
54538// Header returns an http.Header that can be modified by the caller to
54539// add HTTP headers to the request.
54540func (c *BackendServicesInsertCall) Header() http.Header {
54541	if c.header_ == nil {
54542		c.header_ = make(http.Header)
54543	}
54544	return c.header_
54545}
54546
54547func (c *BackendServicesInsertCall) doRequest(alt string) (*http.Response, error) {
54548	reqHeaders := make(http.Header)
54549	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
54550	for k, v := range c.header_ {
54551		reqHeaders[k] = v
54552	}
54553	reqHeaders.Set("User-Agent", c.s.userAgent())
54554	var body io.Reader = nil
54555	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendservice)
54556	if err != nil {
54557		return nil, err
54558	}
54559	reqHeaders.Set("Content-Type", "application/json")
54560	c.urlParams_.Set("alt", alt)
54561	c.urlParams_.Set("prettyPrint", "false")
54562	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendServices")
54563	urls += "?" + c.urlParams_.Encode()
54564	req, err := http.NewRequest("POST", urls, body)
54565	if err != nil {
54566		return nil, err
54567	}
54568	req.Header = reqHeaders
54569	googleapi.Expand(req.URL, map[string]string{
54570		"project": c.project,
54571	})
54572	return gensupport.SendRequest(c.ctx_, c.s.client, req)
54573}
54574
54575// Do executes the "compute.backendServices.insert" call.
54576// Exactly one of *Operation or error will be non-nil. Any non-2xx
54577// status code is an error. Response headers are in either
54578// *Operation.ServerResponse.Header or (if a response was returned at
54579// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
54580// to check whether the returned error was because
54581// http.StatusNotModified was returned.
54582func (c *BackendServicesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
54583	gensupport.SetOptions(c.urlParams_, opts...)
54584	res, err := c.doRequest("json")
54585	if res != nil && res.StatusCode == http.StatusNotModified {
54586		if res.Body != nil {
54587			res.Body.Close()
54588		}
54589		return nil, &googleapi.Error{
54590			Code:   res.StatusCode,
54591			Header: res.Header,
54592		}
54593	}
54594	if err != nil {
54595		return nil, err
54596	}
54597	defer googleapi.CloseBody(res)
54598	if err := googleapi.CheckResponse(res); err != nil {
54599		return nil, err
54600	}
54601	ret := &Operation{
54602		ServerResponse: googleapi.ServerResponse{
54603			Header:         res.Header,
54604			HTTPStatusCode: res.StatusCode,
54605		},
54606	}
54607	target := &ret
54608	if err := gensupport.DecodeResponse(target, res); err != nil {
54609		return nil, err
54610	}
54611	return ret, nil
54612	// {
54613	//   "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. (== suppress_warning http-rest-shadowed ==)",
54614	//   "httpMethod": "POST",
54615	//   "id": "compute.backendServices.insert",
54616	//   "parameterOrder": [
54617	//     "project"
54618	//   ],
54619	//   "parameters": {
54620	//     "project": {
54621	//       "description": "Project ID for this request.",
54622	//       "location": "path",
54623	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
54624	//       "required": true,
54625	//       "type": "string"
54626	//     },
54627	//     "requestId": {
54628	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
54629	//       "location": "query",
54630	//       "type": "string"
54631	//     }
54632	//   },
54633	//   "path": "{project}/global/backendServices",
54634	//   "request": {
54635	//     "$ref": "BackendService"
54636	//   },
54637	//   "response": {
54638	//     "$ref": "Operation"
54639	//   },
54640	//   "scopes": [
54641	//     "https://www.googleapis.com/auth/cloud-platform",
54642	//     "https://www.googleapis.com/auth/compute"
54643	//   ]
54644	// }
54645
54646}
54647
54648// method id "compute.backendServices.list":
54649
54650type BackendServicesListCall struct {
54651	s            *Service
54652	project      string
54653	urlParams_   gensupport.URLParams
54654	ifNoneMatch_ string
54655	ctx_         context.Context
54656	header_      http.Header
54657}
54658
54659// List: Retrieves the list of BackendService resources available to the
54660// specified project. (== suppress_warning http-rest-shadowed ==)
54661// For details, see https://cloud.google.com/compute/docs/reference/latest/backendServices/list
54662func (r *BackendServicesService) List(project string) *BackendServicesListCall {
54663	c := &BackendServicesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
54664	c.project = project
54665	return c
54666}
54667
54668// Filter sets the optional parameter "filter": A filter expression that
54669// filters resources listed in the response. The expression must specify
54670// the field name, a comparison operator, and the value that you want to
54671// use for filtering. The value must be a string, a number, or a
54672// boolean. The comparison operator must be either =, !=, >, or <.
54673//
54674// For example, if you are filtering Compute Engine instances, you can
54675// exclude instances named example-instance by specifying name !=
54676// example-instance.
54677//
54678// You can also filter nested fields. For example, you could specify
54679// scheduling.automaticRestart = false to include instances only if they
54680// are not scheduled for automatic restarts. You can use filtering on
54681// nested fields to filter based on resource labels.
54682//
54683// To filter on multiple expressions, provide each separate expression
54684// within parentheses. For example, (scheduling.automaticRestart = true)
54685// (cpuPlatform = "Intel Skylake"). By default, each expression is an
54686// AND expression. However, you can include AND and OR expressions
54687// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
54688// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
54689// true).
54690func (c *BackendServicesListCall) Filter(filter string) *BackendServicesListCall {
54691	c.urlParams_.Set("filter", filter)
54692	return c
54693}
54694
54695// MaxResults sets the optional parameter "maxResults": The maximum
54696// number of results per page that should be returned. If the number of
54697// available results is larger than maxResults, Compute Engine returns a
54698// nextPageToken that can be used to get the next page of results in
54699// subsequent list requests. Acceptable values are 0 to 500, inclusive.
54700// (Default: 500)
54701func (c *BackendServicesListCall) MaxResults(maxResults int64) *BackendServicesListCall {
54702	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
54703	return c
54704}
54705
54706// OrderBy sets the optional parameter "orderBy": Sorts list results by
54707// a certain order. By default, results are returned in alphanumerical
54708// order based on the resource name.
54709//
54710// You can also sort results in descending order based on the creation
54711// timestamp using orderBy="creationTimestamp desc". This sorts results
54712// based on the creationTimestamp field in reverse chronological order
54713// (newest result first). Use this to sort resources like operations so
54714// that the newest operation is returned first.
54715//
54716// Currently, only sorting by name or creationTimestamp desc is
54717// supported.
54718func (c *BackendServicesListCall) OrderBy(orderBy string) *BackendServicesListCall {
54719	c.urlParams_.Set("orderBy", orderBy)
54720	return c
54721}
54722
54723// PageToken sets the optional parameter "pageToken": Specifies a page
54724// token to use. Set pageToken to the nextPageToken returned by a
54725// previous list request to get the next page of results.
54726func (c *BackendServicesListCall) PageToken(pageToken string) *BackendServicesListCall {
54727	c.urlParams_.Set("pageToken", pageToken)
54728	return c
54729}
54730
54731// Fields allows partial responses to be retrieved. See
54732// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
54733// for more information.
54734func (c *BackendServicesListCall) Fields(s ...googleapi.Field) *BackendServicesListCall {
54735	c.urlParams_.Set("fields", googleapi.CombineFields(s))
54736	return c
54737}
54738
54739// IfNoneMatch sets the optional parameter which makes the operation
54740// fail if the object's ETag matches the given value. This is useful for
54741// getting updates only after the object has changed since the last
54742// request. Use googleapi.IsNotModified to check whether the response
54743// error from Do is the result of In-None-Match.
54744func (c *BackendServicesListCall) IfNoneMatch(entityTag string) *BackendServicesListCall {
54745	c.ifNoneMatch_ = entityTag
54746	return c
54747}
54748
54749// Context sets the context to be used in this call's Do method. Any
54750// pending HTTP request will be aborted if the provided context is
54751// canceled.
54752func (c *BackendServicesListCall) Context(ctx context.Context) *BackendServicesListCall {
54753	c.ctx_ = ctx
54754	return c
54755}
54756
54757// Header returns an http.Header that can be modified by the caller to
54758// add HTTP headers to the request.
54759func (c *BackendServicesListCall) Header() http.Header {
54760	if c.header_ == nil {
54761		c.header_ = make(http.Header)
54762	}
54763	return c.header_
54764}
54765
54766func (c *BackendServicesListCall) doRequest(alt string) (*http.Response, error) {
54767	reqHeaders := make(http.Header)
54768	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
54769	for k, v := range c.header_ {
54770		reqHeaders[k] = v
54771	}
54772	reqHeaders.Set("User-Agent", c.s.userAgent())
54773	if c.ifNoneMatch_ != "" {
54774		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
54775	}
54776	var body io.Reader = nil
54777	c.urlParams_.Set("alt", alt)
54778	c.urlParams_.Set("prettyPrint", "false")
54779	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendServices")
54780	urls += "?" + c.urlParams_.Encode()
54781	req, err := http.NewRequest("GET", urls, body)
54782	if err != nil {
54783		return nil, err
54784	}
54785	req.Header = reqHeaders
54786	googleapi.Expand(req.URL, map[string]string{
54787		"project": c.project,
54788	})
54789	return gensupport.SendRequest(c.ctx_, c.s.client, req)
54790}
54791
54792// Do executes the "compute.backendServices.list" call.
54793// Exactly one of *BackendServiceList or error will be non-nil. Any
54794// non-2xx status code is an error. Response headers are in either
54795// *BackendServiceList.ServerResponse.Header or (if a response was
54796// returned at all) in error.(*googleapi.Error).Header. Use
54797// googleapi.IsNotModified to check whether the returned error was
54798// because http.StatusNotModified was returned.
54799func (c *BackendServicesListCall) Do(opts ...googleapi.CallOption) (*BackendServiceList, error) {
54800	gensupport.SetOptions(c.urlParams_, opts...)
54801	res, err := c.doRequest("json")
54802	if res != nil && res.StatusCode == http.StatusNotModified {
54803		if res.Body != nil {
54804			res.Body.Close()
54805		}
54806		return nil, &googleapi.Error{
54807			Code:   res.StatusCode,
54808			Header: res.Header,
54809		}
54810	}
54811	if err != nil {
54812		return nil, err
54813	}
54814	defer googleapi.CloseBody(res)
54815	if err := googleapi.CheckResponse(res); err != nil {
54816		return nil, err
54817	}
54818	ret := &BackendServiceList{
54819		ServerResponse: googleapi.ServerResponse{
54820			Header:         res.Header,
54821			HTTPStatusCode: res.StatusCode,
54822		},
54823	}
54824	target := &ret
54825	if err := gensupport.DecodeResponse(target, res); err != nil {
54826		return nil, err
54827	}
54828	return ret, nil
54829	// {
54830	//   "description": "Retrieves the list of BackendService resources available to the specified project. (== suppress_warning http-rest-shadowed ==)",
54831	//   "httpMethod": "GET",
54832	//   "id": "compute.backendServices.list",
54833	//   "parameterOrder": [
54834	//     "project"
54835	//   ],
54836	//   "parameters": {
54837	//     "filter": {
54838	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
54839	//       "location": "query",
54840	//       "type": "string"
54841	//     },
54842	//     "maxResults": {
54843	//       "default": "500",
54844	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
54845	//       "format": "uint32",
54846	//       "location": "query",
54847	//       "minimum": "0",
54848	//       "type": "integer"
54849	//     },
54850	//     "orderBy": {
54851	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
54852	//       "location": "query",
54853	//       "type": "string"
54854	//     },
54855	//     "pageToken": {
54856	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
54857	//       "location": "query",
54858	//       "type": "string"
54859	//     },
54860	//     "project": {
54861	//       "description": "Project ID for this request.",
54862	//       "location": "path",
54863	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
54864	//       "required": true,
54865	//       "type": "string"
54866	//     }
54867	//   },
54868	//   "path": "{project}/global/backendServices",
54869	//   "response": {
54870	//     "$ref": "BackendServiceList"
54871	//   },
54872	//   "scopes": [
54873	//     "https://www.googleapis.com/auth/cloud-platform",
54874	//     "https://www.googleapis.com/auth/compute",
54875	//     "https://www.googleapis.com/auth/compute.readonly"
54876	//   ]
54877	// }
54878
54879}
54880
54881// Pages invokes f for each page of results.
54882// A non-nil error returned from f will halt the iteration.
54883// The provided context supersedes any context provided to the Context method.
54884func (c *BackendServicesListCall) Pages(ctx context.Context, f func(*BackendServiceList) error) error {
54885	c.ctx_ = ctx
54886	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
54887	for {
54888		x, err := c.Do()
54889		if err != nil {
54890			return err
54891		}
54892		if err := f(x); err != nil {
54893			return err
54894		}
54895		if x.NextPageToken == "" {
54896			return nil
54897		}
54898		c.PageToken(x.NextPageToken)
54899	}
54900}
54901
54902// method id "compute.backendServices.patch":
54903
54904type BackendServicesPatchCall struct {
54905	s              *Service
54906	project        string
54907	backendService string
54908	backendservice *BackendService
54909	urlParams_     gensupport.URLParams
54910	ctx_           context.Context
54911	header_        http.Header
54912}
54913
54914// Patch: Patches the specified BackendService resource with the data
54915// included in the request. There are several restrictions and
54916// guidelines to keep in mind when updating a backend service. Read
54917// Restrictions and Guidelines for more information. This method
54918// supports PATCH semantics and uses the JSON merge patch format and
54919// processing rules. (== suppress_warning http-rest-shadowed ==)
54920// For details, see https://cloud.google.com/compute/docs/reference/latest/backendServices/patch
54921func (r *BackendServicesService) Patch(project string, backendService string, backendservice *BackendService) *BackendServicesPatchCall {
54922	c := &BackendServicesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
54923	c.project = project
54924	c.backendService = backendService
54925	c.backendservice = backendservice
54926	return c
54927}
54928
54929// RequestId sets the optional parameter "requestId": An optional
54930// request ID to identify requests. Specify a unique request ID so that
54931// if you must retry your request, the server will know to ignore the
54932// request if it has already been completed.
54933//
54934// For example, consider a situation where you make an initial request
54935// and the request times out. If you make the request again with the
54936// same request ID, the server can check if original operation with the
54937// same request ID was received, and if so, will ignore the second
54938// request. This prevents clients from accidentally creating duplicate
54939// commitments.
54940//
54941// The request ID must be a valid UUID with the exception that zero UUID
54942// is not supported (00000000-0000-0000-0000-000000000000).
54943func (c *BackendServicesPatchCall) RequestId(requestId string) *BackendServicesPatchCall {
54944	c.urlParams_.Set("requestId", requestId)
54945	return c
54946}
54947
54948// Fields allows partial responses to be retrieved. See
54949// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
54950// for more information.
54951func (c *BackendServicesPatchCall) Fields(s ...googleapi.Field) *BackendServicesPatchCall {
54952	c.urlParams_.Set("fields", googleapi.CombineFields(s))
54953	return c
54954}
54955
54956// Context sets the context to be used in this call's Do method. Any
54957// pending HTTP request will be aborted if the provided context is
54958// canceled.
54959func (c *BackendServicesPatchCall) Context(ctx context.Context) *BackendServicesPatchCall {
54960	c.ctx_ = ctx
54961	return c
54962}
54963
54964// Header returns an http.Header that can be modified by the caller to
54965// add HTTP headers to the request.
54966func (c *BackendServicesPatchCall) Header() http.Header {
54967	if c.header_ == nil {
54968		c.header_ = make(http.Header)
54969	}
54970	return c.header_
54971}
54972
54973func (c *BackendServicesPatchCall) doRequest(alt string) (*http.Response, error) {
54974	reqHeaders := make(http.Header)
54975	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
54976	for k, v := range c.header_ {
54977		reqHeaders[k] = v
54978	}
54979	reqHeaders.Set("User-Agent", c.s.userAgent())
54980	var body io.Reader = nil
54981	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendservice)
54982	if err != nil {
54983		return nil, err
54984	}
54985	reqHeaders.Set("Content-Type", "application/json")
54986	c.urlParams_.Set("alt", alt)
54987	c.urlParams_.Set("prettyPrint", "false")
54988	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendServices/{backendService}")
54989	urls += "?" + c.urlParams_.Encode()
54990	req, err := http.NewRequest("PATCH", urls, body)
54991	if err != nil {
54992		return nil, err
54993	}
54994	req.Header = reqHeaders
54995	googleapi.Expand(req.URL, map[string]string{
54996		"project":        c.project,
54997		"backendService": c.backendService,
54998	})
54999	return gensupport.SendRequest(c.ctx_, c.s.client, req)
55000}
55001
55002// Do executes the "compute.backendServices.patch" call.
55003// Exactly one of *Operation or error will be non-nil. Any non-2xx
55004// status code is an error. Response headers are in either
55005// *Operation.ServerResponse.Header or (if a response was returned at
55006// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
55007// to check whether the returned error was because
55008// http.StatusNotModified was returned.
55009func (c *BackendServicesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
55010	gensupport.SetOptions(c.urlParams_, opts...)
55011	res, err := c.doRequest("json")
55012	if res != nil && res.StatusCode == http.StatusNotModified {
55013		if res.Body != nil {
55014			res.Body.Close()
55015		}
55016		return nil, &googleapi.Error{
55017			Code:   res.StatusCode,
55018			Header: res.Header,
55019		}
55020	}
55021	if err != nil {
55022		return nil, err
55023	}
55024	defer googleapi.CloseBody(res)
55025	if err := googleapi.CheckResponse(res); err != nil {
55026		return nil, err
55027	}
55028	ret := &Operation{
55029		ServerResponse: googleapi.ServerResponse{
55030			Header:         res.Header,
55031			HTTPStatusCode: res.StatusCode,
55032		},
55033	}
55034	target := &ret
55035	if err := gensupport.DecodeResponse(target, res); err != nil {
55036		return nil, err
55037	}
55038	return ret, nil
55039	// {
55040	//   "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. (== suppress_warning http-rest-shadowed ==)",
55041	//   "httpMethod": "PATCH",
55042	//   "id": "compute.backendServices.patch",
55043	//   "parameterOrder": [
55044	//     "project",
55045	//     "backendService"
55046	//   ],
55047	//   "parameters": {
55048	//     "backendService": {
55049	//       "description": "Name of the BackendService resource to patch.",
55050	//       "location": "path",
55051	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
55052	//       "required": true,
55053	//       "type": "string"
55054	//     },
55055	//     "project": {
55056	//       "description": "Project ID for this request.",
55057	//       "location": "path",
55058	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
55059	//       "required": true,
55060	//       "type": "string"
55061	//     },
55062	//     "requestId": {
55063	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
55064	//       "location": "query",
55065	//       "type": "string"
55066	//     }
55067	//   },
55068	//   "path": "{project}/global/backendServices/{backendService}",
55069	//   "request": {
55070	//     "$ref": "BackendService"
55071	//   },
55072	//   "response": {
55073	//     "$ref": "Operation"
55074	//   },
55075	//   "scopes": [
55076	//     "https://www.googleapis.com/auth/cloud-platform",
55077	//     "https://www.googleapis.com/auth/compute"
55078	//   ]
55079	// }
55080
55081}
55082
55083// method id "compute.backendServices.setSecurityPolicy":
55084
55085type BackendServicesSetSecurityPolicyCall struct {
55086	s                       *Service
55087	project                 string
55088	backendService          string
55089	securitypolicyreference *SecurityPolicyReference
55090	urlParams_              gensupport.URLParams
55091	ctx_                    context.Context
55092	header_                 http.Header
55093}
55094
55095// SetSecurityPolicy: Sets the security policy for the specified backend
55096// service. (== suppress_warning http-rest-shadowed ==)
55097func (r *BackendServicesService) SetSecurityPolicy(project string, backendService string, securitypolicyreference *SecurityPolicyReference) *BackendServicesSetSecurityPolicyCall {
55098	c := &BackendServicesSetSecurityPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
55099	c.project = project
55100	c.backendService = backendService
55101	c.securitypolicyreference = securitypolicyreference
55102	return c
55103}
55104
55105// RequestId sets the optional parameter "requestId": An optional
55106// request ID to identify requests. Specify a unique request ID so that
55107// if you must retry your request, the server will know to ignore the
55108// request if it has already been completed.
55109//
55110// For example, consider a situation where you make an initial request
55111// and the request times out. If you make the request again with the
55112// same request ID, the server can check if original operation with the
55113// same request ID was received, and if so, will ignore the second
55114// request. This prevents clients from accidentally creating duplicate
55115// commitments.
55116//
55117// The request ID must be a valid UUID with the exception that zero UUID
55118// is not supported (00000000-0000-0000-0000-000000000000).
55119func (c *BackendServicesSetSecurityPolicyCall) RequestId(requestId string) *BackendServicesSetSecurityPolicyCall {
55120	c.urlParams_.Set("requestId", requestId)
55121	return c
55122}
55123
55124// Fields allows partial responses to be retrieved. See
55125// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
55126// for more information.
55127func (c *BackendServicesSetSecurityPolicyCall) Fields(s ...googleapi.Field) *BackendServicesSetSecurityPolicyCall {
55128	c.urlParams_.Set("fields", googleapi.CombineFields(s))
55129	return c
55130}
55131
55132// Context sets the context to be used in this call's Do method. Any
55133// pending HTTP request will be aborted if the provided context is
55134// canceled.
55135func (c *BackendServicesSetSecurityPolicyCall) Context(ctx context.Context) *BackendServicesSetSecurityPolicyCall {
55136	c.ctx_ = ctx
55137	return c
55138}
55139
55140// Header returns an http.Header that can be modified by the caller to
55141// add HTTP headers to the request.
55142func (c *BackendServicesSetSecurityPolicyCall) Header() http.Header {
55143	if c.header_ == nil {
55144		c.header_ = make(http.Header)
55145	}
55146	return c.header_
55147}
55148
55149func (c *BackendServicesSetSecurityPolicyCall) doRequest(alt string) (*http.Response, error) {
55150	reqHeaders := make(http.Header)
55151	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
55152	for k, v := range c.header_ {
55153		reqHeaders[k] = v
55154	}
55155	reqHeaders.Set("User-Agent", c.s.userAgent())
55156	var body io.Reader = nil
55157	body, err := googleapi.WithoutDataWrapper.JSONReader(c.securitypolicyreference)
55158	if err != nil {
55159		return nil, err
55160	}
55161	reqHeaders.Set("Content-Type", "application/json")
55162	c.urlParams_.Set("alt", alt)
55163	c.urlParams_.Set("prettyPrint", "false")
55164	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendServices/{backendService}/setSecurityPolicy")
55165	urls += "?" + c.urlParams_.Encode()
55166	req, err := http.NewRequest("POST", urls, body)
55167	if err != nil {
55168		return nil, err
55169	}
55170	req.Header = reqHeaders
55171	googleapi.Expand(req.URL, map[string]string{
55172		"project":        c.project,
55173		"backendService": c.backendService,
55174	})
55175	return gensupport.SendRequest(c.ctx_, c.s.client, req)
55176}
55177
55178// Do executes the "compute.backendServices.setSecurityPolicy" call.
55179// Exactly one of *Operation or error will be non-nil. Any non-2xx
55180// status code is an error. Response headers are in either
55181// *Operation.ServerResponse.Header or (if a response was returned at
55182// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
55183// to check whether the returned error was because
55184// http.StatusNotModified was returned.
55185func (c *BackendServicesSetSecurityPolicyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
55186	gensupport.SetOptions(c.urlParams_, opts...)
55187	res, err := c.doRequest("json")
55188	if res != nil && res.StatusCode == http.StatusNotModified {
55189		if res.Body != nil {
55190			res.Body.Close()
55191		}
55192		return nil, &googleapi.Error{
55193			Code:   res.StatusCode,
55194			Header: res.Header,
55195		}
55196	}
55197	if err != nil {
55198		return nil, err
55199	}
55200	defer googleapi.CloseBody(res)
55201	if err := googleapi.CheckResponse(res); err != nil {
55202		return nil, err
55203	}
55204	ret := &Operation{
55205		ServerResponse: googleapi.ServerResponse{
55206			Header:         res.Header,
55207			HTTPStatusCode: res.StatusCode,
55208		},
55209	}
55210	target := &ret
55211	if err := gensupport.DecodeResponse(target, res); err != nil {
55212		return nil, err
55213	}
55214	return ret, nil
55215	// {
55216	//   "description": "Sets the security policy for the specified backend service. (== suppress_warning http-rest-shadowed ==)",
55217	//   "httpMethod": "POST",
55218	//   "id": "compute.backendServices.setSecurityPolicy",
55219	//   "parameterOrder": [
55220	//     "project",
55221	//     "backendService"
55222	//   ],
55223	//   "parameters": {
55224	//     "backendService": {
55225	//       "description": "Name of the BackendService resource to which the security policy should be set. The name should conform to RFC1035.",
55226	//       "location": "path",
55227	//       "required": true,
55228	//       "type": "string"
55229	//     },
55230	//     "project": {
55231	//       "description": "Project ID for this request.",
55232	//       "location": "path",
55233	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
55234	//       "required": true,
55235	//       "type": "string"
55236	//     },
55237	//     "requestId": {
55238	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
55239	//       "location": "query",
55240	//       "type": "string"
55241	//     }
55242	//   },
55243	//   "path": "{project}/global/backendServices/{backendService}/setSecurityPolicy",
55244	//   "request": {
55245	//     "$ref": "SecurityPolicyReference"
55246	//   },
55247	//   "response": {
55248	//     "$ref": "Operation"
55249	//   },
55250	//   "scopes": [
55251	//     "https://www.googleapis.com/auth/cloud-platform",
55252	//     "https://www.googleapis.com/auth/compute"
55253	//   ]
55254	// }
55255
55256}
55257
55258// method id "compute.backendServices.testIamPermissions":
55259
55260type BackendServicesTestIamPermissionsCall struct {
55261	s                      *Service
55262	project                string
55263	resource               string
55264	testpermissionsrequest *TestPermissionsRequest
55265	urlParams_             gensupport.URLParams
55266	ctx_                   context.Context
55267	header_                http.Header
55268}
55269
55270// TestIamPermissions: Returns permissions that a caller has on the
55271// specified resource. (== suppress_warning http-rest-shadowed ==)
55272func (r *BackendServicesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *BackendServicesTestIamPermissionsCall {
55273	c := &BackendServicesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
55274	c.project = project
55275	c.resource = resource
55276	c.testpermissionsrequest = testpermissionsrequest
55277	return c
55278}
55279
55280// Fields allows partial responses to be retrieved. See
55281// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
55282// for more information.
55283func (c *BackendServicesTestIamPermissionsCall) Fields(s ...googleapi.Field) *BackendServicesTestIamPermissionsCall {
55284	c.urlParams_.Set("fields", googleapi.CombineFields(s))
55285	return c
55286}
55287
55288// Context sets the context to be used in this call's Do method. Any
55289// pending HTTP request will be aborted if the provided context is
55290// canceled.
55291func (c *BackendServicesTestIamPermissionsCall) Context(ctx context.Context) *BackendServicesTestIamPermissionsCall {
55292	c.ctx_ = ctx
55293	return c
55294}
55295
55296// Header returns an http.Header that can be modified by the caller to
55297// add HTTP headers to the request.
55298func (c *BackendServicesTestIamPermissionsCall) Header() http.Header {
55299	if c.header_ == nil {
55300		c.header_ = make(http.Header)
55301	}
55302	return c.header_
55303}
55304
55305func (c *BackendServicesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
55306	reqHeaders := make(http.Header)
55307	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
55308	for k, v := range c.header_ {
55309		reqHeaders[k] = v
55310	}
55311	reqHeaders.Set("User-Agent", c.s.userAgent())
55312	var body io.Reader = nil
55313	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
55314	if err != nil {
55315		return nil, err
55316	}
55317	reqHeaders.Set("Content-Type", "application/json")
55318	c.urlParams_.Set("alt", alt)
55319	c.urlParams_.Set("prettyPrint", "false")
55320	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendServices/{resource}/testIamPermissions")
55321	urls += "?" + c.urlParams_.Encode()
55322	req, err := http.NewRequest("POST", urls, body)
55323	if err != nil {
55324		return nil, err
55325	}
55326	req.Header = reqHeaders
55327	googleapi.Expand(req.URL, map[string]string{
55328		"project":  c.project,
55329		"resource": c.resource,
55330	})
55331	return gensupport.SendRequest(c.ctx_, c.s.client, req)
55332}
55333
55334// Do executes the "compute.backendServices.testIamPermissions" call.
55335// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
55336// non-2xx status code is an error. Response headers are in either
55337// *TestPermissionsResponse.ServerResponse.Header or (if a response was
55338// returned at all) in error.(*googleapi.Error).Header. Use
55339// googleapi.IsNotModified to check whether the returned error was
55340// because http.StatusNotModified was returned.
55341func (c *BackendServicesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
55342	gensupport.SetOptions(c.urlParams_, opts...)
55343	res, err := c.doRequest("json")
55344	if res != nil && res.StatusCode == http.StatusNotModified {
55345		if res.Body != nil {
55346			res.Body.Close()
55347		}
55348		return nil, &googleapi.Error{
55349			Code:   res.StatusCode,
55350			Header: res.Header,
55351		}
55352	}
55353	if err != nil {
55354		return nil, err
55355	}
55356	defer googleapi.CloseBody(res)
55357	if err := googleapi.CheckResponse(res); err != nil {
55358		return nil, err
55359	}
55360	ret := &TestPermissionsResponse{
55361		ServerResponse: googleapi.ServerResponse{
55362			Header:         res.Header,
55363			HTTPStatusCode: res.StatusCode,
55364		},
55365	}
55366	target := &ret
55367	if err := gensupport.DecodeResponse(target, res); err != nil {
55368		return nil, err
55369	}
55370	return ret, nil
55371	// {
55372	//   "description": "Returns permissions that a caller has on the specified resource. (== suppress_warning http-rest-shadowed ==)",
55373	//   "httpMethod": "POST",
55374	//   "id": "compute.backendServices.testIamPermissions",
55375	//   "parameterOrder": [
55376	//     "project",
55377	//     "resource"
55378	//   ],
55379	//   "parameters": {
55380	//     "project": {
55381	//       "description": "Project ID for this request.",
55382	//       "location": "path",
55383	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
55384	//       "required": true,
55385	//       "type": "string"
55386	//     },
55387	//     "resource": {
55388	//       "description": "Name or id of the resource for this request.",
55389	//       "location": "path",
55390	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
55391	//       "required": true,
55392	//       "type": "string"
55393	//     }
55394	//   },
55395	//   "path": "{project}/global/backendServices/{resource}/testIamPermissions",
55396	//   "request": {
55397	//     "$ref": "TestPermissionsRequest"
55398	//   },
55399	//   "response": {
55400	//     "$ref": "TestPermissionsResponse"
55401	//   },
55402	//   "scopes": [
55403	//     "https://www.googleapis.com/auth/cloud-platform",
55404	//     "https://www.googleapis.com/auth/compute",
55405	//     "https://www.googleapis.com/auth/compute.readonly"
55406	//   ]
55407	// }
55408
55409}
55410
55411// method id "compute.backendServices.update":
55412
55413type BackendServicesUpdateCall struct {
55414	s              *Service
55415	project        string
55416	backendService string
55417	backendservice *BackendService
55418	urlParams_     gensupport.URLParams
55419	ctx_           context.Context
55420	header_        http.Header
55421}
55422
55423// Update: Updates the specified BackendService resource with the data
55424// included in the request. There are several restrictions and
55425// guidelines to keep in mind when updating a backend service. Read
55426// Restrictions and Guidelines for more information. (==
55427// suppress_warning http-rest-shadowed ==)
55428// For details, see https://cloud.google.com/compute/docs/reference/latest/backendServices/update
55429func (r *BackendServicesService) Update(project string, backendService string, backendservice *BackendService) *BackendServicesUpdateCall {
55430	c := &BackendServicesUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
55431	c.project = project
55432	c.backendService = backendService
55433	c.backendservice = backendservice
55434	return c
55435}
55436
55437// RequestId sets the optional parameter "requestId": An optional
55438// request ID to identify requests. Specify a unique request ID so that
55439// if you must retry your request, the server will know to ignore the
55440// request if it has already been completed.
55441//
55442// For example, consider a situation where you make an initial request
55443// and the request times out. If you make the request again with the
55444// same request ID, the server can check if original operation with the
55445// same request ID was received, and if so, will ignore the second
55446// request. This prevents clients from accidentally creating duplicate
55447// commitments.
55448//
55449// The request ID must be a valid UUID with the exception that zero UUID
55450// is not supported (00000000-0000-0000-0000-000000000000).
55451func (c *BackendServicesUpdateCall) RequestId(requestId string) *BackendServicesUpdateCall {
55452	c.urlParams_.Set("requestId", requestId)
55453	return c
55454}
55455
55456// Fields allows partial responses to be retrieved. See
55457// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
55458// for more information.
55459func (c *BackendServicesUpdateCall) Fields(s ...googleapi.Field) *BackendServicesUpdateCall {
55460	c.urlParams_.Set("fields", googleapi.CombineFields(s))
55461	return c
55462}
55463
55464// Context sets the context to be used in this call's Do method. Any
55465// pending HTTP request will be aborted if the provided context is
55466// canceled.
55467func (c *BackendServicesUpdateCall) Context(ctx context.Context) *BackendServicesUpdateCall {
55468	c.ctx_ = ctx
55469	return c
55470}
55471
55472// Header returns an http.Header that can be modified by the caller to
55473// add HTTP headers to the request.
55474func (c *BackendServicesUpdateCall) Header() http.Header {
55475	if c.header_ == nil {
55476		c.header_ = make(http.Header)
55477	}
55478	return c.header_
55479}
55480
55481func (c *BackendServicesUpdateCall) doRequest(alt string) (*http.Response, error) {
55482	reqHeaders := make(http.Header)
55483	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
55484	for k, v := range c.header_ {
55485		reqHeaders[k] = v
55486	}
55487	reqHeaders.Set("User-Agent", c.s.userAgent())
55488	var body io.Reader = nil
55489	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendservice)
55490	if err != nil {
55491		return nil, err
55492	}
55493	reqHeaders.Set("Content-Type", "application/json")
55494	c.urlParams_.Set("alt", alt)
55495	c.urlParams_.Set("prettyPrint", "false")
55496	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendServices/{backendService}")
55497	urls += "?" + c.urlParams_.Encode()
55498	req, err := http.NewRequest("PUT", urls, body)
55499	if err != nil {
55500		return nil, err
55501	}
55502	req.Header = reqHeaders
55503	googleapi.Expand(req.URL, map[string]string{
55504		"project":        c.project,
55505		"backendService": c.backendService,
55506	})
55507	return gensupport.SendRequest(c.ctx_, c.s.client, req)
55508}
55509
55510// Do executes the "compute.backendServices.update" call.
55511// Exactly one of *Operation or error will be non-nil. Any non-2xx
55512// status code is an error. Response headers are in either
55513// *Operation.ServerResponse.Header or (if a response was returned at
55514// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
55515// to check whether the returned error was because
55516// http.StatusNotModified was returned.
55517func (c *BackendServicesUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
55518	gensupport.SetOptions(c.urlParams_, opts...)
55519	res, err := c.doRequest("json")
55520	if res != nil && res.StatusCode == http.StatusNotModified {
55521		if res.Body != nil {
55522			res.Body.Close()
55523		}
55524		return nil, &googleapi.Error{
55525			Code:   res.StatusCode,
55526			Header: res.Header,
55527		}
55528	}
55529	if err != nil {
55530		return nil, err
55531	}
55532	defer googleapi.CloseBody(res)
55533	if err := googleapi.CheckResponse(res); err != nil {
55534		return nil, err
55535	}
55536	ret := &Operation{
55537		ServerResponse: googleapi.ServerResponse{
55538			Header:         res.Header,
55539			HTTPStatusCode: res.StatusCode,
55540		},
55541	}
55542	target := &ret
55543	if err := gensupport.DecodeResponse(target, res); err != nil {
55544		return nil, err
55545	}
55546	return ret, nil
55547	// {
55548	//   "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. (== suppress_warning http-rest-shadowed ==)",
55549	//   "httpMethod": "PUT",
55550	//   "id": "compute.backendServices.update",
55551	//   "parameterOrder": [
55552	//     "project",
55553	//     "backendService"
55554	//   ],
55555	//   "parameters": {
55556	//     "backendService": {
55557	//       "description": "Name of the BackendService resource to update.",
55558	//       "location": "path",
55559	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
55560	//       "required": true,
55561	//       "type": "string"
55562	//     },
55563	//     "project": {
55564	//       "description": "Project ID for this request.",
55565	//       "location": "path",
55566	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
55567	//       "required": true,
55568	//       "type": "string"
55569	//     },
55570	//     "requestId": {
55571	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
55572	//       "location": "query",
55573	//       "type": "string"
55574	//     }
55575	//   },
55576	//   "path": "{project}/global/backendServices/{backendService}",
55577	//   "request": {
55578	//     "$ref": "BackendService"
55579	//   },
55580	//   "response": {
55581	//     "$ref": "Operation"
55582	//   },
55583	//   "scopes": [
55584	//     "https://www.googleapis.com/auth/cloud-platform",
55585	//     "https://www.googleapis.com/auth/compute"
55586	//   ]
55587	// }
55588
55589}
55590
55591// method id "compute.diskTypes.aggregatedList":
55592
55593type DiskTypesAggregatedListCall struct {
55594	s            *Service
55595	project      string
55596	urlParams_   gensupport.URLParams
55597	ifNoneMatch_ string
55598	ctx_         context.Context
55599	header_      http.Header
55600}
55601
55602// AggregatedList: Retrieves an aggregated list of disk types. (==
55603// suppress_warning http-rest-shadowed ==)
55604// For details, see https://cloud.google.com/compute/docs/reference/latest/diskTypes/aggregatedList
55605func (r *DiskTypesService) AggregatedList(project string) *DiskTypesAggregatedListCall {
55606	c := &DiskTypesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
55607	c.project = project
55608	return c
55609}
55610
55611// Filter sets the optional parameter "filter": A filter expression that
55612// filters resources listed in the response. The expression must specify
55613// the field name, a comparison operator, and the value that you want to
55614// use for filtering. The value must be a string, a number, or a
55615// boolean. The comparison operator must be either =, !=, >, or <.
55616//
55617// For example, if you are filtering Compute Engine instances, you can
55618// exclude instances named example-instance by specifying name !=
55619// example-instance.
55620//
55621// You can also filter nested fields. For example, you could specify
55622// scheduling.automaticRestart = false to include instances only if they
55623// are not scheduled for automatic restarts. You can use filtering on
55624// nested fields to filter based on resource labels.
55625//
55626// To filter on multiple expressions, provide each separate expression
55627// within parentheses. For example, (scheduling.automaticRestart = true)
55628// (cpuPlatform = "Intel Skylake"). By default, each expression is an
55629// AND expression. However, you can include AND and OR expressions
55630// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
55631// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
55632// true).
55633func (c *DiskTypesAggregatedListCall) Filter(filter string) *DiskTypesAggregatedListCall {
55634	c.urlParams_.Set("filter", filter)
55635	return c
55636}
55637
55638// MaxResults sets the optional parameter "maxResults": The maximum
55639// number of results per page that should be returned. If the number of
55640// available results is larger than maxResults, Compute Engine returns a
55641// nextPageToken that can be used to get the next page of results in
55642// subsequent list requests. Acceptable values are 0 to 500, inclusive.
55643// (Default: 500)
55644func (c *DiskTypesAggregatedListCall) MaxResults(maxResults int64) *DiskTypesAggregatedListCall {
55645	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
55646	return c
55647}
55648
55649// OrderBy sets the optional parameter "orderBy": Sorts list results by
55650// a certain order. By default, results are returned in alphanumerical
55651// order based on the resource name.
55652//
55653// You can also sort results in descending order based on the creation
55654// timestamp using orderBy="creationTimestamp desc". This sorts results
55655// based on the creationTimestamp field in reverse chronological order
55656// (newest result first). Use this to sort resources like operations so
55657// that the newest operation is returned first.
55658//
55659// Currently, only sorting by name or creationTimestamp desc is
55660// supported.
55661func (c *DiskTypesAggregatedListCall) OrderBy(orderBy string) *DiskTypesAggregatedListCall {
55662	c.urlParams_.Set("orderBy", orderBy)
55663	return c
55664}
55665
55666// PageToken sets the optional parameter "pageToken": Specifies a page
55667// token to use. Set pageToken to the nextPageToken returned by a
55668// previous list request to get the next page of results.
55669func (c *DiskTypesAggregatedListCall) PageToken(pageToken string) *DiskTypesAggregatedListCall {
55670	c.urlParams_.Set("pageToken", pageToken)
55671	return c
55672}
55673
55674// Fields allows partial responses to be retrieved. See
55675// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
55676// for more information.
55677func (c *DiskTypesAggregatedListCall) Fields(s ...googleapi.Field) *DiskTypesAggregatedListCall {
55678	c.urlParams_.Set("fields", googleapi.CombineFields(s))
55679	return c
55680}
55681
55682// IfNoneMatch sets the optional parameter which makes the operation
55683// fail if the object's ETag matches the given value. This is useful for
55684// getting updates only after the object has changed since the last
55685// request. Use googleapi.IsNotModified to check whether the response
55686// error from Do is the result of In-None-Match.
55687func (c *DiskTypesAggregatedListCall) IfNoneMatch(entityTag string) *DiskTypesAggregatedListCall {
55688	c.ifNoneMatch_ = entityTag
55689	return c
55690}
55691
55692// Context sets the context to be used in this call's Do method. Any
55693// pending HTTP request will be aborted if the provided context is
55694// canceled.
55695func (c *DiskTypesAggregatedListCall) Context(ctx context.Context) *DiskTypesAggregatedListCall {
55696	c.ctx_ = ctx
55697	return c
55698}
55699
55700// Header returns an http.Header that can be modified by the caller to
55701// add HTTP headers to the request.
55702func (c *DiskTypesAggregatedListCall) Header() http.Header {
55703	if c.header_ == nil {
55704		c.header_ = make(http.Header)
55705	}
55706	return c.header_
55707}
55708
55709func (c *DiskTypesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
55710	reqHeaders := make(http.Header)
55711	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
55712	for k, v := range c.header_ {
55713		reqHeaders[k] = v
55714	}
55715	reqHeaders.Set("User-Agent", c.s.userAgent())
55716	if c.ifNoneMatch_ != "" {
55717		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
55718	}
55719	var body io.Reader = nil
55720	c.urlParams_.Set("alt", alt)
55721	c.urlParams_.Set("prettyPrint", "false")
55722	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/diskTypes")
55723	urls += "?" + c.urlParams_.Encode()
55724	req, err := http.NewRequest("GET", urls, body)
55725	if err != nil {
55726		return nil, err
55727	}
55728	req.Header = reqHeaders
55729	googleapi.Expand(req.URL, map[string]string{
55730		"project": c.project,
55731	})
55732	return gensupport.SendRequest(c.ctx_, c.s.client, req)
55733}
55734
55735// Do executes the "compute.diskTypes.aggregatedList" call.
55736// Exactly one of *DiskTypeAggregatedList or error will be non-nil. Any
55737// non-2xx status code is an error. Response headers are in either
55738// *DiskTypeAggregatedList.ServerResponse.Header or (if a response was
55739// returned at all) in error.(*googleapi.Error).Header. Use
55740// googleapi.IsNotModified to check whether the returned error was
55741// because http.StatusNotModified was returned.
55742func (c *DiskTypesAggregatedListCall) Do(opts ...googleapi.CallOption) (*DiskTypeAggregatedList, error) {
55743	gensupport.SetOptions(c.urlParams_, opts...)
55744	res, err := c.doRequest("json")
55745	if res != nil && res.StatusCode == http.StatusNotModified {
55746		if res.Body != nil {
55747			res.Body.Close()
55748		}
55749		return nil, &googleapi.Error{
55750			Code:   res.StatusCode,
55751			Header: res.Header,
55752		}
55753	}
55754	if err != nil {
55755		return nil, err
55756	}
55757	defer googleapi.CloseBody(res)
55758	if err := googleapi.CheckResponse(res); err != nil {
55759		return nil, err
55760	}
55761	ret := &DiskTypeAggregatedList{
55762		ServerResponse: googleapi.ServerResponse{
55763			Header:         res.Header,
55764			HTTPStatusCode: res.StatusCode,
55765		},
55766	}
55767	target := &ret
55768	if err := gensupport.DecodeResponse(target, res); err != nil {
55769		return nil, err
55770	}
55771	return ret, nil
55772	// {
55773	//   "description": "Retrieves an aggregated list of disk types. (== suppress_warning http-rest-shadowed ==)",
55774	//   "httpMethod": "GET",
55775	//   "id": "compute.diskTypes.aggregatedList",
55776	//   "parameterOrder": [
55777	//     "project"
55778	//   ],
55779	//   "parameters": {
55780	//     "filter": {
55781	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
55782	//       "location": "query",
55783	//       "type": "string"
55784	//     },
55785	//     "maxResults": {
55786	//       "default": "500",
55787	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
55788	//       "format": "uint32",
55789	//       "location": "query",
55790	//       "minimum": "0",
55791	//       "type": "integer"
55792	//     },
55793	//     "orderBy": {
55794	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
55795	//       "location": "query",
55796	//       "type": "string"
55797	//     },
55798	//     "pageToken": {
55799	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
55800	//       "location": "query",
55801	//       "type": "string"
55802	//     },
55803	//     "project": {
55804	//       "description": "Project ID for this request.",
55805	//       "location": "path",
55806	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
55807	//       "required": true,
55808	//       "type": "string"
55809	//     }
55810	//   },
55811	//   "path": "{project}/aggregated/diskTypes",
55812	//   "response": {
55813	//     "$ref": "DiskTypeAggregatedList"
55814	//   },
55815	//   "scopes": [
55816	//     "https://www.googleapis.com/auth/cloud-platform",
55817	//     "https://www.googleapis.com/auth/compute",
55818	//     "https://www.googleapis.com/auth/compute.readonly"
55819	//   ]
55820	// }
55821
55822}
55823
55824// Pages invokes f for each page of results.
55825// A non-nil error returned from f will halt the iteration.
55826// The provided context supersedes any context provided to the Context method.
55827func (c *DiskTypesAggregatedListCall) Pages(ctx context.Context, f func(*DiskTypeAggregatedList) error) error {
55828	c.ctx_ = ctx
55829	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
55830	for {
55831		x, err := c.Do()
55832		if err != nil {
55833			return err
55834		}
55835		if err := f(x); err != nil {
55836			return err
55837		}
55838		if x.NextPageToken == "" {
55839			return nil
55840		}
55841		c.PageToken(x.NextPageToken)
55842	}
55843}
55844
55845// method id "compute.diskTypes.get":
55846
55847type DiskTypesGetCall struct {
55848	s            *Service
55849	project      string
55850	zone         string
55851	diskType     string
55852	urlParams_   gensupport.URLParams
55853	ifNoneMatch_ string
55854	ctx_         context.Context
55855	header_      http.Header
55856}
55857
55858// Get: Returns the specified disk type. Gets a list of available disk
55859// types by making a list() request. (== suppress_warning
55860// http-rest-shadowed ==)
55861// For details, see https://cloud.google.com/compute/docs/reference/latest/diskTypes/get
55862func (r *DiskTypesService) Get(project string, zone string, diskType string) *DiskTypesGetCall {
55863	c := &DiskTypesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
55864	c.project = project
55865	c.zone = zone
55866	c.diskType = diskType
55867	return c
55868}
55869
55870// Fields allows partial responses to be retrieved. See
55871// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
55872// for more information.
55873func (c *DiskTypesGetCall) Fields(s ...googleapi.Field) *DiskTypesGetCall {
55874	c.urlParams_.Set("fields", googleapi.CombineFields(s))
55875	return c
55876}
55877
55878// IfNoneMatch sets the optional parameter which makes the operation
55879// fail if the object's ETag matches the given value. This is useful for
55880// getting updates only after the object has changed since the last
55881// request. Use googleapi.IsNotModified to check whether the response
55882// error from Do is the result of In-None-Match.
55883func (c *DiskTypesGetCall) IfNoneMatch(entityTag string) *DiskTypesGetCall {
55884	c.ifNoneMatch_ = entityTag
55885	return c
55886}
55887
55888// Context sets the context to be used in this call's Do method. Any
55889// pending HTTP request will be aborted if the provided context is
55890// canceled.
55891func (c *DiskTypesGetCall) Context(ctx context.Context) *DiskTypesGetCall {
55892	c.ctx_ = ctx
55893	return c
55894}
55895
55896// Header returns an http.Header that can be modified by the caller to
55897// add HTTP headers to the request.
55898func (c *DiskTypesGetCall) Header() http.Header {
55899	if c.header_ == nil {
55900		c.header_ = make(http.Header)
55901	}
55902	return c.header_
55903}
55904
55905func (c *DiskTypesGetCall) doRequest(alt string) (*http.Response, error) {
55906	reqHeaders := make(http.Header)
55907	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
55908	for k, v := range c.header_ {
55909		reqHeaders[k] = v
55910	}
55911	reqHeaders.Set("User-Agent", c.s.userAgent())
55912	if c.ifNoneMatch_ != "" {
55913		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
55914	}
55915	var body io.Reader = nil
55916	c.urlParams_.Set("alt", alt)
55917	c.urlParams_.Set("prettyPrint", "false")
55918	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/diskTypes/{diskType}")
55919	urls += "?" + c.urlParams_.Encode()
55920	req, err := http.NewRequest("GET", urls, body)
55921	if err != nil {
55922		return nil, err
55923	}
55924	req.Header = reqHeaders
55925	googleapi.Expand(req.URL, map[string]string{
55926		"project":  c.project,
55927		"zone":     c.zone,
55928		"diskType": c.diskType,
55929	})
55930	return gensupport.SendRequest(c.ctx_, c.s.client, req)
55931}
55932
55933// Do executes the "compute.diskTypes.get" call.
55934// Exactly one of *DiskType or error will be non-nil. Any non-2xx status
55935// code is an error. Response headers are in either
55936// *DiskType.ServerResponse.Header or (if a response was returned at
55937// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
55938// to check whether the returned error was because
55939// http.StatusNotModified was returned.
55940func (c *DiskTypesGetCall) Do(opts ...googleapi.CallOption) (*DiskType, error) {
55941	gensupport.SetOptions(c.urlParams_, opts...)
55942	res, err := c.doRequest("json")
55943	if res != nil && res.StatusCode == http.StatusNotModified {
55944		if res.Body != nil {
55945			res.Body.Close()
55946		}
55947		return nil, &googleapi.Error{
55948			Code:   res.StatusCode,
55949			Header: res.Header,
55950		}
55951	}
55952	if err != nil {
55953		return nil, err
55954	}
55955	defer googleapi.CloseBody(res)
55956	if err := googleapi.CheckResponse(res); err != nil {
55957		return nil, err
55958	}
55959	ret := &DiskType{
55960		ServerResponse: googleapi.ServerResponse{
55961			Header:         res.Header,
55962			HTTPStatusCode: res.StatusCode,
55963		},
55964	}
55965	target := &ret
55966	if err := gensupport.DecodeResponse(target, res); err != nil {
55967		return nil, err
55968	}
55969	return ret, nil
55970	// {
55971	//   "description": "Returns the specified disk type. Gets a list of available disk types by making a list() request. (== suppress_warning http-rest-shadowed ==)",
55972	//   "httpMethod": "GET",
55973	//   "id": "compute.diskTypes.get",
55974	//   "parameterOrder": [
55975	//     "project",
55976	//     "zone",
55977	//     "diskType"
55978	//   ],
55979	//   "parameters": {
55980	//     "diskType": {
55981	//       "description": "Name of the disk type to return.",
55982	//       "location": "path",
55983	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
55984	//       "required": true,
55985	//       "type": "string"
55986	//     },
55987	//     "project": {
55988	//       "description": "Project ID for this request.",
55989	//       "location": "path",
55990	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
55991	//       "required": true,
55992	//       "type": "string"
55993	//     },
55994	//     "zone": {
55995	//       "description": "The name of the zone for this request.",
55996	//       "location": "path",
55997	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
55998	//       "required": true,
55999	//       "type": "string"
56000	//     }
56001	//   },
56002	//   "path": "{project}/zones/{zone}/diskTypes/{diskType}",
56003	//   "response": {
56004	//     "$ref": "DiskType"
56005	//   },
56006	//   "scopes": [
56007	//     "https://www.googleapis.com/auth/cloud-platform",
56008	//     "https://www.googleapis.com/auth/compute",
56009	//     "https://www.googleapis.com/auth/compute.readonly"
56010	//   ]
56011	// }
56012
56013}
56014
56015// method id "compute.diskTypes.list":
56016
56017type DiskTypesListCall struct {
56018	s            *Service
56019	project      string
56020	zone         string
56021	urlParams_   gensupport.URLParams
56022	ifNoneMatch_ string
56023	ctx_         context.Context
56024	header_      http.Header
56025}
56026
56027// List: Retrieves a list of disk types available to the specified
56028// project. (== suppress_warning http-rest-shadowed ==)
56029// For details, see https://cloud.google.com/compute/docs/reference/latest/diskTypes/list
56030func (r *DiskTypesService) List(project string, zone string) *DiskTypesListCall {
56031	c := &DiskTypesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
56032	c.project = project
56033	c.zone = zone
56034	return c
56035}
56036
56037// Filter sets the optional parameter "filter": A filter expression that
56038// filters resources listed in the response. The expression must specify
56039// the field name, a comparison operator, and the value that you want to
56040// use for filtering. The value must be a string, a number, or a
56041// boolean. The comparison operator must be either =, !=, >, or <.
56042//
56043// For example, if you are filtering Compute Engine instances, you can
56044// exclude instances named example-instance by specifying name !=
56045// example-instance.
56046//
56047// You can also filter nested fields. For example, you could specify
56048// scheduling.automaticRestart = false to include instances only if they
56049// are not scheduled for automatic restarts. You can use filtering on
56050// nested fields to filter based on resource labels.
56051//
56052// To filter on multiple expressions, provide each separate expression
56053// within parentheses. For example, (scheduling.automaticRestart = true)
56054// (cpuPlatform = "Intel Skylake"). By default, each expression is an
56055// AND expression. However, you can include AND and OR expressions
56056// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
56057// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
56058// true).
56059func (c *DiskTypesListCall) Filter(filter string) *DiskTypesListCall {
56060	c.urlParams_.Set("filter", filter)
56061	return c
56062}
56063
56064// MaxResults sets the optional parameter "maxResults": The maximum
56065// number of results per page that should be returned. If the number of
56066// available results is larger than maxResults, Compute Engine returns a
56067// nextPageToken that can be used to get the next page of results in
56068// subsequent list requests. Acceptable values are 0 to 500, inclusive.
56069// (Default: 500)
56070func (c *DiskTypesListCall) MaxResults(maxResults int64) *DiskTypesListCall {
56071	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
56072	return c
56073}
56074
56075// OrderBy sets the optional parameter "orderBy": Sorts list results by
56076// a certain order. By default, results are returned in alphanumerical
56077// order based on the resource name.
56078//
56079// You can also sort results in descending order based on the creation
56080// timestamp using orderBy="creationTimestamp desc". This sorts results
56081// based on the creationTimestamp field in reverse chronological order
56082// (newest result first). Use this to sort resources like operations so
56083// that the newest operation is returned first.
56084//
56085// Currently, only sorting by name or creationTimestamp desc is
56086// supported.
56087func (c *DiskTypesListCall) OrderBy(orderBy string) *DiskTypesListCall {
56088	c.urlParams_.Set("orderBy", orderBy)
56089	return c
56090}
56091
56092// PageToken sets the optional parameter "pageToken": Specifies a page
56093// token to use. Set pageToken to the nextPageToken returned by a
56094// previous list request to get the next page of results.
56095func (c *DiskTypesListCall) PageToken(pageToken string) *DiskTypesListCall {
56096	c.urlParams_.Set("pageToken", pageToken)
56097	return c
56098}
56099
56100// Fields allows partial responses to be retrieved. See
56101// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
56102// for more information.
56103func (c *DiskTypesListCall) Fields(s ...googleapi.Field) *DiskTypesListCall {
56104	c.urlParams_.Set("fields", googleapi.CombineFields(s))
56105	return c
56106}
56107
56108// IfNoneMatch sets the optional parameter which makes the operation
56109// fail if the object's ETag matches the given value. This is useful for
56110// getting updates only after the object has changed since the last
56111// request. Use googleapi.IsNotModified to check whether the response
56112// error from Do is the result of In-None-Match.
56113func (c *DiskTypesListCall) IfNoneMatch(entityTag string) *DiskTypesListCall {
56114	c.ifNoneMatch_ = entityTag
56115	return c
56116}
56117
56118// Context sets the context to be used in this call's Do method. Any
56119// pending HTTP request will be aborted if the provided context is
56120// canceled.
56121func (c *DiskTypesListCall) Context(ctx context.Context) *DiskTypesListCall {
56122	c.ctx_ = ctx
56123	return c
56124}
56125
56126// Header returns an http.Header that can be modified by the caller to
56127// add HTTP headers to the request.
56128func (c *DiskTypesListCall) Header() http.Header {
56129	if c.header_ == nil {
56130		c.header_ = make(http.Header)
56131	}
56132	return c.header_
56133}
56134
56135func (c *DiskTypesListCall) doRequest(alt string) (*http.Response, error) {
56136	reqHeaders := make(http.Header)
56137	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
56138	for k, v := range c.header_ {
56139		reqHeaders[k] = v
56140	}
56141	reqHeaders.Set("User-Agent", c.s.userAgent())
56142	if c.ifNoneMatch_ != "" {
56143		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
56144	}
56145	var body io.Reader = nil
56146	c.urlParams_.Set("alt", alt)
56147	c.urlParams_.Set("prettyPrint", "false")
56148	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/diskTypes")
56149	urls += "?" + c.urlParams_.Encode()
56150	req, err := http.NewRequest("GET", urls, body)
56151	if err != nil {
56152		return nil, err
56153	}
56154	req.Header = reqHeaders
56155	googleapi.Expand(req.URL, map[string]string{
56156		"project": c.project,
56157		"zone":    c.zone,
56158	})
56159	return gensupport.SendRequest(c.ctx_, c.s.client, req)
56160}
56161
56162// Do executes the "compute.diskTypes.list" call.
56163// Exactly one of *DiskTypeList or error will be non-nil. Any non-2xx
56164// status code is an error. Response headers are in either
56165// *DiskTypeList.ServerResponse.Header or (if a response was returned at
56166// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
56167// to check whether the returned error was because
56168// http.StatusNotModified was returned.
56169func (c *DiskTypesListCall) Do(opts ...googleapi.CallOption) (*DiskTypeList, error) {
56170	gensupport.SetOptions(c.urlParams_, opts...)
56171	res, err := c.doRequest("json")
56172	if res != nil && res.StatusCode == http.StatusNotModified {
56173		if res.Body != nil {
56174			res.Body.Close()
56175		}
56176		return nil, &googleapi.Error{
56177			Code:   res.StatusCode,
56178			Header: res.Header,
56179		}
56180	}
56181	if err != nil {
56182		return nil, err
56183	}
56184	defer googleapi.CloseBody(res)
56185	if err := googleapi.CheckResponse(res); err != nil {
56186		return nil, err
56187	}
56188	ret := &DiskTypeList{
56189		ServerResponse: googleapi.ServerResponse{
56190			Header:         res.Header,
56191			HTTPStatusCode: res.StatusCode,
56192		},
56193	}
56194	target := &ret
56195	if err := gensupport.DecodeResponse(target, res); err != nil {
56196		return nil, err
56197	}
56198	return ret, nil
56199	// {
56200	//   "description": "Retrieves a list of disk types available to the specified project. (== suppress_warning http-rest-shadowed ==)",
56201	//   "httpMethod": "GET",
56202	//   "id": "compute.diskTypes.list",
56203	//   "parameterOrder": [
56204	//     "project",
56205	//     "zone"
56206	//   ],
56207	//   "parameters": {
56208	//     "filter": {
56209	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
56210	//       "location": "query",
56211	//       "type": "string"
56212	//     },
56213	//     "maxResults": {
56214	//       "default": "500",
56215	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
56216	//       "format": "uint32",
56217	//       "location": "query",
56218	//       "minimum": "0",
56219	//       "type": "integer"
56220	//     },
56221	//     "orderBy": {
56222	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
56223	//       "location": "query",
56224	//       "type": "string"
56225	//     },
56226	//     "pageToken": {
56227	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
56228	//       "location": "query",
56229	//       "type": "string"
56230	//     },
56231	//     "project": {
56232	//       "description": "Project ID for this request.",
56233	//       "location": "path",
56234	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
56235	//       "required": true,
56236	//       "type": "string"
56237	//     },
56238	//     "zone": {
56239	//       "description": "The name of the zone for this request.",
56240	//       "location": "path",
56241	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
56242	//       "required": true,
56243	//       "type": "string"
56244	//     }
56245	//   },
56246	//   "path": "{project}/zones/{zone}/diskTypes",
56247	//   "response": {
56248	//     "$ref": "DiskTypeList"
56249	//   },
56250	//   "scopes": [
56251	//     "https://www.googleapis.com/auth/cloud-platform",
56252	//     "https://www.googleapis.com/auth/compute",
56253	//     "https://www.googleapis.com/auth/compute.readonly"
56254	//   ]
56255	// }
56256
56257}
56258
56259// Pages invokes f for each page of results.
56260// A non-nil error returned from f will halt the iteration.
56261// The provided context supersedes any context provided to the Context method.
56262func (c *DiskTypesListCall) Pages(ctx context.Context, f func(*DiskTypeList) error) error {
56263	c.ctx_ = ctx
56264	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
56265	for {
56266		x, err := c.Do()
56267		if err != nil {
56268			return err
56269		}
56270		if err := f(x); err != nil {
56271			return err
56272		}
56273		if x.NextPageToken == "" {
56274			return nil
56275		}
56276		c.PageToken(x.NextPageToken)
56277	}
56278}
56279
56280// method id "compute.disks.addResourcePolicies":
56281
56282type DisksAddResourcePoliciesCall struct {
56283	s                               *Service
56284	project                         string
56285	zone                            string
56286	disk                            string
56287	disksaddresourcepoliciesrequest *DisksAddResourcePoliciesRequest
56288	urlParams_                      gensupport.URLParams
56289	ctx_                            context.Context
56290	header_                         http.Header
56291}
56292
56293// AddResourcePolicies: Adds existing resource policies to a disk. You
56294// can only add one policy which will be applied to this disk for
56295// scheduling snapshot creation. (== suppress_warning http-rest-shadowed
56296// ==)
56297func (r *DisksService) AddResourcePolicies(project string, zone string, disk string, disksaddresourcepoliciesrequest *DisksAddResourcePoliciesRequest) *DisksAddResourcePoliciesCall {
56298	c := &DisksAddResourcePoliciesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
56299	c.project = project
56300	c.zone = zone
56301	c.disk = disk
56302	c.disksaddresourcepoliciesrequest = disksaddresourcepoliciesrequest
56303	return c
56304}
56305
56306// RequestId sets the optional parameter "requestId": An optional
56307// request ID to identify requests. Specify a unique request ID so that
56308// if you must retry your request, the server will know to ignore the
56309// request if it has already been completed.
56310//
56311// For example, consider a situation where you make an initial request
56312// and the request times out. If you make the request again with the
56313// same request ID, the server can check if original operation with the
56314// same request ID was received, and if so, will ignore the second
56315// request. This prevents clients from accidentally creating duplicate
56316// commitments.
56317//
56318// The request ID must be a valid UUID with the exception that zero UUID
56319// is not supported (00000000-0000-0000-0000-000000000000).
56320func (c *DisksAddResourcePoliciesCall) RequestId(requestId string) *DisksAddResourcePoliciesCall {
56321	c.urlParams_.Set("requestId", requestId)
56322	return c
56323}
56324
56325// Fields allows partial responses to be retrieved. See
56326// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
56327// for more information.
56328func (c *DisksAddResourcePoliciesCall) Fields(s ...googleapi.Field) *DisksAddResourcePoliciesCall {
56329	c.urlParams_.Set("fields", googleapi.CombineFields(s))
56330	return c
56331}
56332
56333// Context sets the context to be used in this call's Do method. Any
56334// pending HTTP request will be aborted if the provided context is
56335// canceled.
56336func (c *DisksAddResourcePoliciesCall) Context(ctx context.Context) *DisksAddResourcePoliciesCall {
56337	c.ctx_ = ctx
56338	return c
56339}
56340
56341// Header returns an http.Header that can be modified by the caller to
56342// add HTTP headers to the request.
56343func (c *DisksAddResourcePoliciesCall) Header() http.Header {
56344	if c.header_ == nil {
56345		c.header_ = make(http.Header)
56346	}
56347	return c.header_
56348}
56349
56350func (c *DisksAddResourcePoliciesCall) doRequest(alt string) (*http.Response, error) {
56351	reqHeaders := make(http.Header)
56352	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
56353	for k, v := range c.header_ {
56354		reqHeaders[k] = v
56355	}
56356	reqHeaders.Set("User-Agent", c.s.userAgent())
56357	var body io.Reader = nil
56358	body, err := googleapi.WithoutDataWrapper.JSONReader(c.disksaddresourcepoliciesrequest)
56359	if err != nil {
56360		return nil, err
56361	}
56362	reqHeaders.Set("Content-Type", "application/json")
56363	c.urlParams_.Set("alt", alt)
56364	c.urlParams_.Set("prettyPrint", "false")
56365	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/disks/{disk}/addResourcePolicies")
56366	urls += "?" + c.urlParams_.Encode()
56367	req, err := http.NewRequest("POST", urls, body)
56368	if err != nil {
56369		return nil, err
56370	}
56371	req.Header = reqHeaders
56372	googleapi.Expand(req.URL, map[string]string{
56373		"project": c.project,
56374		"zone":    c.zone,
56375		"disk":    c.disk,
56376	})
56377	return gensupport.SendRequest(c.ctx_, c.s.client, req)
56378}
56379
56380// Do executes the "compute.disks.addResourcePolicies" call.
56381// Exactly one of *Operation or error will be non-nil. Any non-2xx
56382// status code is an error. Response headers are in either
56383// *Operation.ServerResponse.Header or (if a response was returned at
56384// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
56385// to check whether the returned error was because
56386// http.StatusNotModified was returned.
56387func (c *DisksAddResourcePoliciesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
56388	gensupport.SetOptions(c.urlParams_, opts...)
56389	res, err := c.doRequest("json")
56390	if res != nil && res.StatusCode == http.StatusNotModified {
56391		if res.Body != nil {
56392			res.Body.Close()
56393		}
56394		return nil, &googleapi.Error{
56395			Code:   res.StatusCode,
56396			Header: res.Header,
56397		}
56398	}
56399	if err != nil {
56400		return nil, err
56401	}
56402	defer googleapi.CloseBody(res)
56403	if err := googleapi.CheckResponse(res); err != nil {
56404		return nil, err
56405	}
56406	ret := &Operation{
56407		ServerResponse: googleapi.ServerResponse{
56408			Header:         res.Header,
56409			HTTPStatusCode: res.StatusCode,
56410		},
56411	}
56412	target := &ret
56413	if err := gensupport.DecodeResponse(target, res); err != nil {
56414		return nil, err
56415	}
56416	return ret, nil
56417	// {
56418	//   "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. (== suppress_warning http-rest-shadowed ==)",
56419	//   "httpMethod": "POST",
56420	//   "id": "compute.disks.addResourcePolicies",
56421	//   "parameterOrder": [
56422	//     "project",
56423	//     "zone",
56424	//     "disk"
56425	//   ],
56426	//   "parameters": {
56427	//     "disk": {
56428	//       "description": "The disk name for this request.",
56429	//       "location": "path",
56430	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
56431	//       "required": true,
56432	//       "type": "string"
56433	//     },
56434	//     "project": {
56435	//       "description": "Project ID for this request.",
56436	//       "location": "path",
56437	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
56438	//       "required": true,
56439	//       "type": "string"
56440	//     },
56441	//     "requestId": {
56442	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
56443	//       "location": "query",
56444	//       "type": "string"
56445	//     },
56446	//     "zone": {
56447	//       "description": "The name of the zone for this request.",
56448	//       "location": "path",
56449	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
56450	//       "required": true,
56451	//       "type": "string"
56452	//     }
56453	//   },
56454	//   "path": "{project}/zones/{zone}/disks/{disk}/addResourcePolicies",
56455	//   "request": {
56456	//     "$ref": "DisksAddResourcePoliciesRequest"
56457	//   },
56458	//   "response": {
56459	//     "$ref": "Operation"
56460	//   },
56461	//   "scopes": [
56462	//     "https://www.googleapis.com/auth/cloud-platform",
56463	//     "https://www.googleapis.com/auth/compute"
56464	//   ]
56465	// }
56466
56467}
56468
56469// method id "compute.disks.aggregatedList":
56470
56471type DisksAggregatedListCall struct {
56472	s            *Service
56473	project      string
56474	urlParams_   gensupport.URLParams
56475	ifNoneMatch_ string
56476	ctx_         context.Context
56477	header_      http.Header
56478}
56479
56480// AggregatedList: Retrieves an aggregated list of persistent disks. (==
56481// suppress_warning http-rest-shadowed ==)
56482// For details, see https://cloud.google.com/compute/docs/reference/latest/disks/aggregatedList
56483func (r *DisksService) AggregatedList(project string) *DisksAggregatedListCall {
56484	c := &DisksAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
56485	c.project = project
56486	return c
56487}
56488
56489// Filter sets the optional parameter "filter": A filter expression that
56490// filters resources listed in the response. The expression must specify
56491// the field name, a comparison operator, and the value that you want to
56492// use for filtering. The value must be a string, a number, or a
56493// boolean. The comparison operator must be either =, !=, >, or <.
56494//
56495// For example, if you are filtering Compute Engine instances, you can
56496// exclude instances named example-instance by specifying name !=
56497// example-instance.
56498//
56499// You can also filter nested fields. For example, you could specify
56500// scheduling.automaticRestart = false to include instances only if they
56501// are not scheduled for automatic restarts. You can use filtering on
56502// nested fields to filter based on resource labels.
56503//
56504// To filter on multiple expressions, provide each separate expression
56505// within parentheses. For example, (scheduling.automaticRestart = true)
56506// (cpuPlatform = "Intel Skylake"). By default, each expression is an
56507// AND expression. However, you can include AND and OR expressions
56508// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
56509// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
56510// true).
56511func (c *DisksAggregatedListCall) Filter(filter string) *DisksAggregatedListCall {
56512	c.urlParams_.Set("filter", filter)
56513	return c
56514}
56515
56516// MaxResults sets the optional parameter "maxResults": The maximum
56517// number of results per page that should be returned. If the number of
56518// available results is larger than maxResults, Compute Engine returns a
56519// nextPageToken that can be used to get the next page of results in
56520// subsequent list requests. Acceptable values are 0 to 500, inclusive.
56521// (Default: 500)
56522func (c *DisksAggregatedListCall) MaxResults(maxResults int64) *DisksAggregatedListCall {
56523	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
56524	return c
56525}
56526
56527// OrderBy sets the optional parameter "orderBy": Sorts list results by
56528// a certain order. By default, results are returned in alphanumerical
56529// order based on the resource name.
56530//
56531// You can also sort results in descending order based on the creation
56532// timestamp using orderBy="creationTimestamp desc". This sorts results
56533// based on the creationTimestamp field in reverse chronological order
56534// (newest result first). Use this to sort resources like operations so
56535// that the newest operation is returned first.
56536//
56537// Currently, only sorting by name or creationTimestamp desc is
56538// supported.
56539func (c *DisksAggregatedListCall) OrderBy(orderBy string) *DisksAggregatedListCall {
56540	c.urlParams_.Set("orderBy", orderBy)
56541	return c
56542}
56543
56544// PageToken sets the optional parameter "pageToken": Specifies a page
56545// token to use. Set pageToken to the nextPageToken returned by a
56546// previous list request to get the next page of results.
56547func (c *DisksAggregatedListCall) PageToken(pageToken string) *DisksAggregatedListCall {
56548	c.urlParams_.Set("pageToken", pageToken)
56549	return c
56550}
56551
56552// Fields allows partial responses to be retrieved. See
56553// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
56554// for more information.
56555func (c *DisksAggregatedListCall) Fields(s ...googleapi.Field) *DisksAggregatedListCall {
56556	c.urlParams_.Set("fields", googleapi.CombineFields(s))
56557	return c
56558}
56559
56560// IfNoneMatch sets the optional parameter which makes the operation
56561// fail if the object's ETag matches the given value. This is useful for
56562// getting updates only after the object has changed since the last
56563// request. Use googleapi.IsNotModified to check whether the response
56564// error from Do is the result of In-None-Match.
56565func (c *DisksAggregatedListCall) IfNoneMatch(entityTag string) *DisksAggregatedListCall {
56566	c.ifNoneMatch_ = entityTag
56567	return c
56568}
56569
56570// Context sets the context to be used in this call's Do method. Any
56571// pending HTTP request will be aborted if the provided context is
56572// canceled.
56573func (c *DisksAggregatedListCall) Context(ctx context.Context) *DisksAggregatedListCall {
56574	c.ctx_ = ctx
56575	return c
56576}
56577
56578// Header returns an http.Header that can be modified by the caller to
56579// add HTTP headers to the request.
56580func (c *DisksAggregatedListCall) Header() http.Header {
56581	if c.header_ == nil {
56582		c.header_ = make(http.Header)
56583	}
56584	return c.header_
56585}
56586
56587func (c *DisksAggregatedListCall) doRequest(alt string) (*http.Response, error) {
56588	reqHeaders := make(http.Header)
56589	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
56590	for k, v := range c.header_ {
56591		reqHeaders[k] = v
56592	}
56593	reqHeaders.Set("User-Agent", c.s.userAgent())
56594	if c.ifNoneMatch_ != "" {
56595		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
56596	}
56597	var body io.Reader = nil
56598	c.urlParams_.Set("alt", alt)
56599	c.urlParams_.Set("prettyPrint", "false")
56600	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/disks")
56601	urls += "?" + c.urlParams_.Encode()
56602	req, err := http.NewRequest("GET", urls, body)
56603	if err != nil {
56604		return nil, err
56605	}
56606	req.Header = reqHeaders
56607	googleapi.Expand(req.URL, map[string]string{
56608		"project": c.project,
56609	})
56610	return gensupport.SendRequest(c.ctx_, c.s.client, req)
56611}
56612
56613// Do executes the "compute.disks.aggregatedList" call.
56614// Exactly one of *DiskAggregatedList or error will be non-nil. Any
56615// non-2xx status code is an error. Response headers are in either
56616// *DiskAggregatedList.ServerResponse.Header or (if a response was
56617// returned at all) in error.(*googleapi.Error).Header. Use
56618// googleapi.IsNotModified to check whether the returned error was
56619// because http.StatusNotModified was returned.
56620func (c *DisksAggregatedListCall) Do(opts ...googleapi.CallOption) (*DiskAggregatedList, error) {
56621	gensupport.SetOptions(c.urlParams_, opts...)
56622	res, err := c.doRequest("json")
56623	if res != nil && res.StatusCode == http.StatusNotModified {
56624		if res.Body != nil {
56625			res.Body.Close()
56626		}
56627		return nil, &googleapi.Error{
56628			Code:   res.StatusCode,
56629			Header: res.Header,
56630		}
56631	}
56632	if err != nil {
56633		return nil, err
56634	}
56635	defer googleapi.CloseBody(res)
56636	if err := googleapi.CheckResponse(res); err != nil {
56637		return nil, err
56638	}
56639	ret := &DiskAggregatedList{
56640		ServerResponse: googleapi.ServerResponse{
56641			Header:         res.Header,
56642			HTTPStatusCode: res.StatusCode,
56643		},
56644	}
56645	target := &ret
56646	if err := gensupport.DecodeResponse(target, res); err != nil {
56647		return nil, err
56648	}
56649	return ret, nil
56650	// {
56651	//   "description": "Retrieves an aggregated list of persistent disks. (== suppress_warning http-rest-shadowed ==)",
56652	//   "httpMethod": "GET",
56653	//   "id": "compute.disks.aggregatedList",
56654	//   "parameterOrder": [
56655	//     "project"
56656	//   ],
56657	//   "parameters": {
56658	//     "filter": {
56659	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
56660	//       "location": "query",
56661	//       "type": "string"
56662	//     },
56663	//     "maxResults": {
56664	//       "default": "500",
56665	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
56666	//       "format": "uint32",
56667	//       "location": "query",
56668	//       "minimum": "0",
56669	//       "type": "integer"
56670	//     },
56671	//     "orderBy": {
56672	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
56673	//       "location": "query",
56674	//       "type": "string"
56675	//     },
56676	//     "pageToken": {
56677	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
56678	//       "location": "query",
56679	//       "type": "string"
56680	//     },
56681	//     "project": {
56682	//       "description": "Project ID for this request.",
56683	//       "location": "path",
56684	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
56685	//       "required": true,
56686	//       "type": "string"
56687	//     }
56688	//   },
56689	//   "path": "{project}/aggregated/disks",
56690	//   "response": {
56691	//     "$ref": "DiskAggregatedList"
56692	//   },
56693	//   "scopes": [
56694	//     "https://www.googleapis.com/auth/cloud-platform",
56695	//     "https://www.googleapis.com/auth/compute",
56696	//     "https://www.googleapis.com/auth/compute.readonly"
56697	//   ]
56698	// }
56699
56700}
56701
56702// Pages invokes f for each page of results.
56703// A non-nil error returned from f will halt the iteration.
56704// The provided context supersedes any context provided to the Context method.
56705func (c *DisksAggregatedListCall) Pages(ctx context.Context, f func(*DiskAggregatedList) error) error {
56706	c.ctx_ = ctx
56707	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
56708	for {
56709		x, err := c.Do()
56710		if err != nil {
56711			return err
56712		}
56713		if err := f(x); err != nil {
56714			return err
56715		}
56716		if x.NextPageToken == "" {
56717			return nil
56718		}
56719		c.PageToken(x.NextPageToken)
56720	}
56721}
56722
56723// method id "compute.disks.createSnapshot":
56724
56725type DisksCreateSnapshotCall struct {
56726	s          *Service
56727	project    string
56728	zone       string
56729	disk       string
56730	snapshot   *Snapshot
56731	urlParams_ gensupport.URLParams
56732	ctx_       context.Context
56733	header_    http.Header
56734}
56735
56736// CreateSnapshot: Creates a snapshot of a specified persistent disk.
56737// (== suppress_warning http-rest-shadowed ==)
56738// For details, see https://cloud.google.com/compute/docs/reference/latest/disks/createSnapshot
56739func (r *DisksService) CreateSnapshot(project string, zone string, disk string, snapshot *Snapshot) *DisksCreateSnapshotCall {
56740	c := &DisksCreateSnapshotCall{s: r.s, urlParams_: make(gensupport.URLParams)}
56741	c.project = project
56742	c.zone = zone
56743	c.disk = disk
56744	c.snapshot = snapshot
56745	return c
56746}
56747
56748// GuestFlush sets the optional parameter "guestFlush": [Input Only]
56749// Specifies to create an application consistent snapshot by informing
56750// the OS to prepare for the snapshot process. Currently only supported
56751// on Windows instances using the Volume Shadow Copy Service (VSS).
56752func (c *DisksCreateSnapshotCall) GuestFlush(guestFlush bool) *DisksCreateSnapshotCall {
56753	c.urlParams_.Set("guestFlush", fmt.Sprint(guestFlush))
56754	return c
56755}
56756
56757// RequestId sets the optional parameter "requestId": An optional
56758// request ID to identify requests. Specify a unique request ID so that
56759// if you must retry your request, the server will know to ignore the
56760// request if it has already been completed.
56761//
56762// For example, consider a situation where you make an initial request
56763// and the request times out. If you make the request again with the
56764// same request ID, the server can check if original operation with the
56765// same request ID was received, and if so, will ignore the second
56766// request. This prevents clients from accidentally creating duplicate
56767// commitments.
56768//
56769// The request ID must be a valid UUID with the exception that zero UUID
56770// is not supported (00000000-0000-0000-0000-000000000000).
56771func (c *DisksCreateSnapshotCall) RequestId(requestId string) *DisksCreateSnapshotCall {
56772	c.urlParams_.Set("requestId", requestId)
56773	return c
56774}
56775
56776// Fields allows partial responses to be retrieved. See
56777// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
56778// for more information.
56779func (c *DisksCreateSnapshotCall) Fields(s ...googleapi.Field) *DisksCreateSnapshotCall {
56780	c.urlParams_.Set("fields", googleapi.CombineFields(s))
56781	return c
56782}
56783
56784// Context sets the context to be used in this call's Do method. Any
56785// pending HTTP request will be aborted if the provided context is
56786// canceled.
56787func (c *DisksCreateSnapshotCall) Context(ctx context.Context) *DisksCreateSnapshotCall {
56788	c.ctx_ = ctx
56789	return c
56790}
56791
56792// Header returns an http.Header that can be modified by the caller to
56793// add HTTP headers to the request.
56794func (c *DisksCreateSnapshotCall) Header() http.Header {
56795	if c.header_ == nil {
56796		c.header_ = make(http.Header)
56797	}
56798	return c.header_
56799}
56800
56801func (c *DisksCreateSnapshotCall) doRequest(alt string) (*http.Response, error) {
56802	reqHeaders := make(http.Header)
56803	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
56804	for k, v := range c.header_ {
56805		reqHeaders[k] = v
56806	}
56807	reqHeaders.Set("User-Agent", c.s.userAgent())
56808	var body io.Reader = nil
56809	body, err := googleapi.WithoutDataWrapper.JSONReader(c.snapshot)
56810	if err != nil {
56811		return nil, err
56812	}
56813	reqHeaders.Set("Content-Type", "application/json")
56814	c.urlParams_.Set("alt", alt)
56815	c.urlParams_.Set("prettyPrint", "false")
56816	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/disks/{disk}/createSnapshot")
56817	urls += "?" + c.urlParams_.Encode()
56818	req, err := http.NewRequest("POST", urls, body)
56819	if err != nil {
56820		return nil, err
56821	}
56822	req.Header = reqHeaders
56823	googleapi.Expand(req.URL, map[string]string{
56824		"project": c.project,
56825		"zone":    c.zone,
56826		"disk":    c.disk,
56827	})
56828	return gensupport.SendRequest(c.ctx_, c.s.client, req)
56829}
56830
56831// Do executes the "compute.disks.createSnapshot" call.
56832// Exactly one of *Operation or error will be non-nil. Any non-2xx
56833// status code is an error. Response headers are in either
56834// *Operation.ServerResponse.Header or (if a response was returned at
56835// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
56836// to check whether the returned error was because
56837// http.StatusNotModified was returned.
56838func (c *DisksCreateSnapshotCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
56839	gensupport.SetOptions(c.urlParams_, opts...)
56840	res, err := c.doRequest("json")
56841	if res != nil && res.StatusCode == http.StatusNotModified {
56842		if res.Body != nil {
56843			res.Body.Close()
56844		}
56845		return nil, &googleapi.Error{
56846			Code:   res.StatusCode,
56847			Header: res.Header,
56848		}
56849	}
56850	if err != nil {
56851		return nil, err
56852	}
56853	defer googleapi.CloseBody(res)
56854	if err := googleapi.CheckResponse(res); err != nil {
56855		return nil, err
56856	}
56857	ret := &Operation{
56858		ServerResponse: googleapi.ServerResponse{
56859			Header:         res.Header,
56860			HTTPStatusCode: res.StatusCode,
56861		},
56862	}
56863	target := &ret
56864	if err := gensupport.DecodeResponse(target, res); err != nil {
56865		return nil, err
56866	}
56867	return ret, nil
56868	// {
56869	//   "description": "Creates a snapshot of a specified persistent disk. (== suppress_warning http-rest-shadowed ==)",
56870	//   "httpMethod": "POST",
56871	//   "id": "compute.disks.createSnapshot",
56872	//   "parameterOrder": [
56873	//     "project",
56874	//     "zone",
56875	//     "disk"
56876	//   ],
56877	//   "parameters": {
56878	//     "disk": {
56879	//       "description": "Name of the persistent disk to snapshot.",
56880	//       "location": "path",
56881	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
56882	//       "required": true,
56883	//       "type": "string"
56884	//     },
56885	//     "guestFlush": {
56886	//       "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).",
56887	//       "location": "query",
56888	//       "type": "boolean"
56889	//     },
56890	//     "project": {
56891	//       "description": "Project ID for this request.",
56892	//       "location": "path",
56893	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
56894	//       "required": true,
56895	//       "type": "string"
56896	//     },
56897	//     "requestId": {
56898	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
56899	//       "location": "query",
56900	//       "type": "string"
56901	//     },
56902	//     "zone": {
56903	//       "description": "The name of the zone for this request.",
56904	//       "location": "path",
56905	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
56906	//       "required": true,
56907	//       "type": "string"
56908	//     }
56909	//   },
56910	//   "path": "{project}/zones/{zone}/disks/{disk}/createSnapshot",
56911	//   "request": {
56912	//     "$ref": "Snapshot"
56913	//   },
56914	//   "response": {
56915	//     "$ref": "Operation"
56916	//   },
56917	//   "scopes": [
56918	//     "https://www.googleapis.com/auth/cloud-platform",
56919	//     "https://www.googleapis.com/auth/compute"
56920	//   ]
56921	// }
56922
56923}
56924
56925// method id "compute.disks.delete":
56926
56927type DisksDeleteCall struct {
56928	s          *Service
56929	project    string
56930	zone       string
56931	disk       string
56932	urlParams_ gensupport.URLParams
56933	ctx_       context.Context
56934	header_    http.Header
56935}
56936
56937// Delete: Deletes the specified persistent disk. Deleting a disk
56938// removes its data permanently and is irreversible. However, deleting a
56939// disk does not delete any snapshots previously made from the disk. You
56940// must separately delete snapshots. (== suppress_warning
56941// http-rest-shadowed ==)
56942// For details, see https://cloud.google.com/compute/docs/reference/latest/disks/delete
56943func (r *DisksService) Delete(project string, zone string, disk string) *DisksDeleteCall {
56944	c := &DisksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
56945	c.project = project
56946	c.zone = zone
56947	c.disk = disk
56948	return c
56949}
56950
56951// RequestId sets the optional parameter "requestId": An optional
56952// request ID to identify requests. Specify a unique request ID so that
56953// if you must retry your request, the server will know to ignore the
56954// request if it has already been completed.
56955//
56956// For example, consider a situation where you make an initial request
56957// and the request times out. If you make the request again with the
56958// same request ID, the server can check if original operation with the
56959// same request ID was received, and if so, will ignore the second
56960// request. This prevents clients from accidentally creating duplicate
56961// commitments.
56962//
56963// The request ID must be a valid UUID with the exception that zero UUID
56964// is not supported (00000000-0000-0000-0000-000000000000).
56965func (c *DisksDeleteCall) RequestId(requestId string) *DisksDeleteCall {
56966	c.urlParams_.Set("requestId", requestId)
56967	return c
56968}
56969
56970// Fields allows partial responses to be retrieved. See
56971// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
56972// for more information.
56973func (c *DisksDeleteCall) Fields(s ...googleapi.Field) *DisksDeleteCall {
56974	c.urlParams_.Set("fields", googleapi.CombineFields(s))
56975	return c
56976}
56977
56978// Context sets the context to be used in this call's Do method. Any
56979// pending HTTP request will be aborted if the provided context is
56980// canceled.
56981func (c *DisksDeleteCall) Context(ctx context.Context) *DisksDeleteCall {
56982	c.ctx_ = ctx
56983	return c
56984}
56985
56986// Header returns an http.Header that can be modified by the caller to
56987// add HTTP headers to the request.
56988func (c *DisksDeleteCall) Header() http.Header {
56989	if c.header_ == nil {
56990		c.header_ = make(http.Header)
56991	}
56992	return c.header_
56993}
56994
56995func (c *DisksDeleteCall) doRequest(alt string) (*http.Response, error) {
56996	reqHeaders := make(http.Header)
56997	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
56998	for k, v := range c.header_ {
56999		reqHeaders[k] = v
57000	}
57001	reqHeaders.Set("User-Agent", c.s.userAgent())
57002	var body io.Reader = nil
57003	c.urlParams_.Set("alt", alt)
57004	c.urlParams_.Set("prettyPrint", "false")
57005	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/disks/{disk}")
57006	urls += "?" + c.urlParams_.Encode()
57007	req, err := http.NewRequest("DELETE", urls, body)
57008	if err != nil {
57009		return nil, err
57010	}
57011	req.Header = reqHeaders
57012	googleapi.Expand(req.URL, map[string]string{
57013		"project": c.project,
57014		"zone":    c.zone,
57015		"disk":    c.disk,
57016	})
57017	return gensupport.SendRequest(c.ctx_, c.s.client, req)
57018}
57019
57020// Do executes the "compute.disks.delete" call.
57021// Exactly one of *Operation or error will be non-nil. Any non-2xx
57022// status code is an error. Response headers are in either
57023// *Operation.ServerResponse.Header or (if a response was returned at
57024// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
57025// to check whether the returned error was because
57026// http.StatusNotModified was returned.
57027func (c *DisksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
57028	gensupport.SetOptions(c.urlParams_, opts...)
57029	res, err := c.doRequest("json")
57030	if res != nil && res.StatusCode == http.StatusNotModified {
57031		if res.Body != nil {
57032			res.Body.Close()
57033		}
57034		return nil, &googleapi.Error{
57035			Code:   res.StatusCode,
57036			Header: res.Header,
57037		}
57038	}
57039	if err != nil {
57040		return nil, err
57041	}
57042	defer googleapi.CloseBody(res)
57043	if err := googleapi.CheckResponse(res); err != nil {
57044		return nil, err
57045	}
57046	ret := &Operation{
57047		ServerResponse: googleapi.ServerResponse{
57048			Header:         res.Header,
57049			HTTPStatusCode: res.StatusCode,
57050		},
57051	}
57052	target := &ret
57053	if err := gensupport.DecodeResponse(target, res); err != nil {
57054		return nil, err
57055	}
57056	return ret, nil
57057	// {
57058	//   "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. (== suppress_warning http-rest-shadowed ==)",
57059	//   "httpMethod": "DELETE",
57060	//   "id": "compute.disks.delete",
57061	//   "parameterOrder": [
57062	//     "project",
57063	//     "zone",
57064	//     "disk"
57065	//   ],
57066	//   "parameters": {
57067	//     "disk": {
57068	//       "description": "Name of the persistent disk to delete.",
57069	//       "location": "path",
57070	//       "required": true,
57071	//       "type": "string"
57072	//     },
57073	//     "project": {
57074	//       "description": "Project ID for this request.",
57075	//       "location": "path",
57076	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
57077	//       "required": true,
57078	//       "type": "string"
57079	//     },
57080	//     "requestId": {
57081	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
57082	//       "location": "query",
57083	//       "type": "string"
57084	//     },
57085	//     "zone": {
57086	//       "description": "The name of the zone for this request.",
57087	//       "location": "path",
57088	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
57089	//       "required": true,
57090	//       "type": "string"
57091	//     }
57092	//   },
57093	//   "path": "{project}/zones/{zone}/disks/{disk}",
57094	//   "response": {
57095	//     "$ref": "Operation"
57096	//   },
57097	//   "scopes": [
57098	//     "https://www.googleapis.com/auth/cloud-platform",
57099	//     "https://www.googleapis.com/auth/compute"
57100	//   ]
57101	// }
57102
57103}
57104
57105// method id "compute.disks.get":
57106
57107type DisksGetCall struct {
57108	s            *Service
57109	project      string
57110	zone         string
57111	disk         string
57112	urlParams_   gensupport.URLParams
57113	ifNoneMatch_ string
57114	ctx_         context.Context
57115	header_      http.Header
57116}
57117
57118// Get: Returns a specified persistent disk. Gets a list of available
57119// persistent disks by making a list() request. (== suppress_warning
57120// http-rest-shadowed ==)
57121// For details, see https://cloud.google.com/compute/docs/reference/latest/disks/get
57122func (r *DisksService) Get(project string, zone string, disk string) *DisksGetCall {
57123	c := &DisksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
57124	c.project = project
57125	c.zone = zone
57126	c.disk = disk
57127	return c
57128}
57129
57130// Fields allows partial responses to be retrieved. See
57131// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
57132// for more information.
57133func (c *DisksGetCall) Fields(s ...googleapi.Field) *DisksGetCall {
57134	c.urlParams_.Set("fields", googleapi.CombineFields(s))
57135	return c
57136}
57137
57138// IfNoneMatch sets the optional parameter which makes the operation
57139// fail if the object's ETag matches the given value. This is useful for
57140// getting updates only after the object has changed since the last
57141// request. Use googleapi.IsNotModified to check whether the response
57142// error from Do is the result of In-None-Match.
57143func (c *DisksGetCall) IfNoneMatch(entityTag string) *DisksGetCall {
57144	c.ifNoneMatch_ = entityTag
57145	return c
57146}
57147
57148// Context sets the context to be used in this call's Do method. Any
57149// pending HTTP request will be aborted if the provided context is
57150// canceled.
57151func (c *DisksGetCall) Context(ctx context.Context) *DisksGetCall {
57152	c.ctx_ = ctx
57153	return c
57154}
57155
57156// Header returns an http.Header that can be modified by the caller to
57157// add HTTP headers to the request.
57158func (c *DisksGetCall) Header() http.Header {
57159	if c.header_ == nil {
57160		c.header_ = make(http.Header)
57161	}
57162	return c.header_
57163}
57164
57165func (c *DisksGetCall) doRequest(alt string) (*http.Response, error) {
57166	reqHeaders := make(http.Header)
57167	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
57168	for k, v := range c.header_ {
57169		reqHeaders[k] = v
57170	}
57171	reqHeaders.Set("User-Agent", c.s.userAgent())
57172	if c.ifNoneMatch_ != "" {
57173		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
57174	}
57175	var body io.Reader = nil
57176	c.urlParams_.Set("alt", alt)
57177	c.urlParams_.Set("prettyPrint", "false")
57178	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/disks/{disk}")
57179	urls += "?" + c.urlParams_.Encode()
57180	req, err := http.NewRequest("GET", urls, body)
57181	if err != nil {
57182		return nil, err
57183	}
57184	req.Header = reqHeaders
57185	googleapi.Expand(req.URL, map[string]string{
57186		"project": c.project,
57187		"zone":    c.zone,
57188		"disk":    c.disk,
57189	})
57190	return gensupport.SendRequest(c.ctx_, c.s.client, req)
57191}
57192
57193// Do executes the "compute.disks.get" call.
57194// Exactly one of *Disk or error will be non-nil. Any non-2xx status
57195// code is an error. Response headers are in either
57196// *Disk.ServerResponse.Header or (if a response was returned at all) in
57197// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
57198// whether the returned error was because http.StatusNotModified was
57199// returned.
57200func (c *DisksGetCall) Do(opts ...googleapi.CallOption) (*Disk, error) {
57201	gensupport.SetOptions(c.urlParams_, opts...)
57202	res, err := c.doRequest("json")
57203	if res != nil && res.StatusCode == http.StatusNotModified {
57204		if res.Body != nil {
57205			res.Body.Close()
57206		}
57207		return nil, &googleapi.Error{
57208			Code:   res.StatusCode,
57209			Header: res.Header,
57210		}
57211	}
57212	if err != nil {
57213		return nil, err
57214	}
57215	defer googleapi.CloseBody(res)
57216	if err := googleapi.CheckResponse(res); err != nil {
57217		return nil, err
57218	}
57219	ret := &Disk{
57220		ServerResponse: googleapi.ServerResponse{
57221			Header:         res.Header,
57222			HTTPStatusCode: res.StatusCode,
57223		},
57224	}
57225	target := &ret
57226	if err := gensupport.DecodeResponse(target, res); err != nil {
57227		return nil, err
57228	}
57229	return ret, nil
57230	// {
57231	//   "description": "Returns a specified persistent disk. Gets a list of available persistent disks by making a list() request. (== suppress_warning http-rest-shadowed ==)",
57232	//   "httpMethod": "GET",
57233	//   "id": "compute.disks.get",
57234	//   "parameterOrder": [
57235	//     "project",
57236	//     "zone",
57237	//     "disk"
57238	//   ],
57239	//   "parameters": {
57240	//     "disk": {
57241	//       "description": "Name of the persistent disk to return.",
57242	//       "location": "path",
57243	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
57244	//       "required": true,
57245	//       "type": "string"
57246	//     },
57247	//     "project": {
57248	//       "description": "Project ID for this request.",
57249	//       "location": "path",
57250	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
57251	//       "required": true,
57252	//       "type": "string"
57253	//     },
57254	//     "zone": {
57255	//       "description": "The name of the zone for this request.",
57256	//       "location": "path",
57257	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
57258	//       "required": true,
57259	//       "type": "string"
57260	//     }
57261	//   },
57262	//   "path": "{project}/zones/{zone}/disks/{disk}",
57263	//   "response": {
57264	//     "$ref": "Disk"
57265	//   },
57266	//   "scopes": [
57267	//     "https://www.googleapis.com/auth/cloud-platform",
57268	//     "https://www.googleapis.com/auth/compute",
57269	//     "https://www.googleapis.com/auth/compute.readonly"
57270	//   ]
57271	// }
57272
57273}
57274
57275// method id "compute.disks.getIamPolicy":
57276
57277type DisksGetIamPolicyCall struct {
57278	s            *Service
57279	project      string
57280	zone         string
57281	resource     string
57282	urlParams_   gensupport.URLParams
57283	ifNoneMatch_ string
57284	ctx_         context.Context
57285	header_      http.Header
57286}
57287
57288// GetIamPolicy: Gets the access control policy for a resource. May be
57289// empty if no such policy or resource exists. (== suppress_warning
57290// http-rest-shadowed ==)
57291func (r *DisksService) GetIamPolicy(project string, zone string, resource string) *DisksGetIamPolicyCall {
57292	c := &DisksGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
57293	c.project = project
57294	c.zone = zone
57295	c.resource = resource
57296	return c
57297}
57298
57299// OptionsRequestedPolicyVersion sets the optional parameter
57300// "optionsRequestedPolicyVersion": Requested IAM Policy version.
57301func (c *DisksGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *DisksGetIamPolicyCall {
57302	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
57303	return c
57304}
57305
57306// Fields allows partial responses to be retrieved. See
57307// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
57308// for more information.
57309func (c *DisksGetIamPolicyCall) Fields(s ...googleapi.Field) *DisksGetIamPolicyCall {
57310	c.urlParams_.Set("fields", googleapi.CombineFields(s))
57311	return c
57312}
57313
57314// IfNoneMatch sets the optional parameter which makes the operation
57315// fail if the object's ETag matches the given value. This is useful for
57316// getting updates only after the object has changed since the last
57317// request. Use googleapi.IsNotModified to check whether the response
57318// error from Do is the result of In-None-Match.
57319func (c *DisksGetIamPolicyCall) IfNoneMatch(entityTag string) *DisksGetIamPolicyCall {
57320	c.ifNoneMatch_ = entityTag
57321	return c
57322}
57323
57324// Context sets the context to be used in this call's Do method. Any
57325// pending HTTP request will be aborted if the provided context is
57326// canceled.
57327func (c *DisksGetIamPolicyCall) Context(ctx context.Context) *DisksGetIamPolicyCall {
57328	c.ctx_ = ctx
57329	return c
57330}
57331
57332// Header returns an http.Header that can be modified by the caller to
57333// add HTTP headers to the request.
57334func (c *DisksGetIamPolicyCall) Header() http.Header {
57335	if c.header_ == nil {
57336		c.header_ = make(http.Header)
57337	}
57338	return c.header_
57339}
57340
57341func (c *DisksGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
57342	reqHeaders := make(http.Header)
57343	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
57344	for k, v := range c.header_ {
57345		reqHeaders[k] = v
57346	}
57347	reqHeaders.Set("User-Agent", c.s.userAgent())
57348	if c.ifNoneMatch_ != "" {
57349		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
57350	}
57351	var body io.Reader = nil
57352	c.urlParams_.Set("alt", alt)
57353	c.urlParams_.Set("prettyPrint", "false")
57354	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/disks/{resource}/getIamPolicy")
57355	urls += "?" + c.urlParams_.Encode()
57356	req, err := http.NewRequest("GET", urls, body)
57357	if err != nil {
57358		return nil, err
57359	}
57360	req.Header = reqHeaders
57361	googleapi.Expand(req.URL, map[string]string{
57362		"project":  c.project,
57363		"zone":     c.zone,
57364		"resource": c.resource,
57365	})
57366	return gensupport.SendRequest(c.ctx_, c.s.client, req)
57367}
57368
57369// Do executes the "compute.disks.getIamPolicy" call.
57370// Exactly one of *Policy or error will be non-nil. Any non-2xx status
57371// code is an error. Response headers are in either
57372// *Policy.ServerResponse.Header or (if a response was returned at all)
57373// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
57374// check whether the returned error was because http.StatusNotModified
57375// was returned.
57376func (c *DisksGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
57377	gensupport.SetOptions(c.urlParams_, opts...)
57378	res, err := c.doRequest("json")
57379	if res != nil && res.StatusCode == http.StatusNotModified {
57380		if res.Body != nil {
57381			res.Body.Close()
57382		}
57383		return nil, &googleapi.Error{
57384			Code:   res.StatusCode,
57385			Header: res.Header,
57386		}
57387	}
57388	if err != nil {
57389		return nil, err
57390	}
57391	defer googleapi.CloseBody(res)
57392	if err := googleapi.CheckResponse(res); err != nil {
57393		return nil, err
57394	}
57395	ret := &Policy{
57396		ServerResponse: googleapi.ServerResponse{
57397			Header:         res.Header,
57398			HTTPStatusCode: res.StatusCode,
57399		},
57400	}
57401	target := &ret
57402	if err := gensupport.DecodeResponse(target, res); err != nil {
57403		return nil, err
57404	}
57405	return ret, nil
57406	// {
57407	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists. (== suppress_warning http-rest-shadowed ==)",
57408	//   "httpMethod": "GET",
57409	//   "id": "compute.disks.getIamPolicy",
57410	//   "parameterOrder": [
57411	//     "project",
57412	//     "zone",
57413	//     "resource"
57414	//   ],
57415	//   "parameters": {
57416	//     "optionsRequestedPolicyVersion": {
57417	//       "description": "Requested IAM Policy version.",
57418	//       "format": "int32",
57419	//       "location": "query",
57420	//       "type": "integer"
57421	//     },
57422	//     "project": {
57423	//       "description": "Project ID for this request.",
57424	//       "location": "path",
57425	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
57426	//       "required": true,
57427	//       "type": "string"
57428	//     },
57429	//     "resource": {
57430	//       "description": "Name or id of the resource for this request.",
57431	//       "location": "path",
57432	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
57433	//       "required": true,
57434	//       "type": "string"
57435	//     },
57436	//     "zone": {
57437	//       "description": "The name of the zone for this request.",
57438	//       "location": "path",
57439	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
57440	//       "required": true,
57441	//       "type": "string"
57442	//     }
57443	//   },
57444	//   "path": "{project}/zones/{zone}/disks/{resource}/getIamPolicy",
57445	//   "response": {
57446	//     "$ref": "Policy"
57447	//   },
57448	//   "scopes": [
57449	//     "https://www.googleapis.com/auth/cloud-platform",
57450	//     "https://www.googleapis.com/auth/compute",
57451	//     "https://www.googleapis.com/auth/compute.readonly"
57452	//   ]
57453	// }
57454
57455}
57456
57457// method id "compute.disks.insert":
57458
57459type DisksInsertCall struct {
57460	s          *Service
57461	project    string
57462	zone       string
57463	disk       *Disk
57464	urlParams_ gensupport.URLParams
57465	ctx_       context.Context
57466	header_    http.Header
57467}
57468
57469// Insert: Creates a persistent disk in the specified project using the
57470// data in the request. You can create a disk with a sourceImage, a
57471// sourceSnapshot, or create an empty 500 GB data disk by omitting all
57472// properties. You can also create a disk that is larger than the
57473// default size by specifying the sizeGb property. (== suppress_warning
57474// http-rest-shadowed ==)
57475// For details, see https://cloud.google.com/compute/docs/reference/latest/disks/insert
57476func (r *DisksService) Insert(project string, zone string, disk *Disk) *DisksInsertCall {
57477	c := &DisksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
57478	c.project = project
57479	c.zone = zone
57480	c.disk = disk
57481	return c
57482}
57483
57484// RequestId sets the optional parameter "requestId": An optional
57485// request ID to identify requests. Specify a unique request ID so that
57486// if you must retry your request, the server will know to ignore the
57487// request if it has already been completed.
57488//
57489// For example, consider a situation where you make an initial request
57490// and the request times out. If you make the request again with the
57491// same request ID, the server can check if original operation with the
57492// same request ID was received, and if so, will ignore the second
57493// request. This prevents clients from accidentally creating duplicate
57494// commitments.
57495//
57496// The request ID must be a valid UUID with the exception that zero UUID
57497// is not supported (00000000-0000-0000-0000-000000000000).
57498func (c *DisksInsertCall) RequestId(requestId string) *DisksInsertCall {
57499	c.urlParams_.Set("requestId", requestId)
57500	return c
57501}
57502
57503// SourceImage sets the optional parameter "sourceImage": Source image
57504// to restore onto a disk.
57505func (c *DisksInsertCall) SourceImage(sourceImage string) *DisksInsertCall {
57506	c.urlParams_.Set("sourceImage", sourceImage)
57507	return c
57508}
57509
57510// Fields allows partial responses to be retrieved. See
57511// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
57512// for more information.
57513func (c *DisksInsertCall) Fields(s ...googleapi.Field) *DisksInsertCall {
57514	c.urlParams_.Set("fields", googleapi.CombineFields(s))
57515	return c
57516}
57517
57518// Context sets the context to be used in this call's Do method. Any
57519// pending HTTP request will be aborted if the provided context is
57520// canceled.
57521func (c *DisksInsertCall) Context(ctx context.Context) *DisksInsertCall {
57522	c.ctx_ = ctx
57523	return c
57524}
57525
57526// Header returns an http.Header that can be modified by the caller to
57527// add HTTP headers to the request.
57528func (c *DisksInsertCall) Header() http.Header {
57529	if c.header_ == nil {
57530		c.header_ = make(http.Header)
57531	}
57532	return c.header_
57533}
57534
57535func (c *DisksInsertCall) doRequest(alt string) (*http.Response, error) {
57536	reqHeaders := make(http.Header)
57537	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
57538	for k, v := range c.header_ {
57539		reqHeaders[k] = v
57540	}
57541	reqHeaders.Set("User-Agent", c.s.userAgent())
57542	var body io.Reader = nil
57543	body, err := googleapi.WithoutDataWrapper.JSONReader(c.disk)
57544	if err != nil {
57545		return nil, err
57546	}
57547	reqHeaders.Set("Content-Type", "application/json")
57548	c.urlParams_.Set("alt", alt)
57549	c.urlParams_.Set("prettyPrint", "false")
57550	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/disks")
57551	urls += "?" + c.urlParams_.Encode()
57552	req, err := http.NewRequest("POST", urls, body)
57553	if err != nil {
57554		return nil, err
57555	}
57556	req.Header = reqHeaders
57557	googleapi.Expand(req.URL, map[string]string{
57558		"project": c.project,
57559		"zone":    c.zone,
57560	})
57561	return gensupport.SendRequest(c.ctx_, c.s.client, req)
57562}
57563
57564// Do executes the "compute.disks.insert" call.
57565// Exactly one of *Operation or error will be non-nil. Any non-2xx
57566// status code is an error. Response headers are in either
57567// *Operation.ServerResponse.Header or (if a response was returned at
57568// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
57569// to check whether the returned error was because
57570// http.StatusNotModified was returned.
57571func (c *DisksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
57572	gensupport.SetOptions(c.urlParams_, opts...)
57573	res, err := c.doRequest("json")
57574	if res != nil && res.StatusCode == http.StatusNotModified {
57575		if res.Body != nil {
57576			res.Body.Close()
57577		}
57578		return nil, &googleapi.Error{
57579			Code:   res.StatusCode,
57580			Header: res.Header,
57581		}
57582	}
57583	if err != nil {
57584		return nil, err
57585	}
57586	defer googleapi.CloseBody(res)
57587	if err := googleapi.CheckResponse(res); err != nil {
57588		return nil, err
57589	}
57590	ret := &Operation{
57591		ServerResponse: googleapi.ServerResponse{
57592			Header:         res.Header,
57593			HTTPStatusCode: res.StatusCode,
57594		},
57595	}
57596	target := &ret
57597	if err := gensupport.DecodeResponse(target, res); err != nil {
57598		return nil, err
57599	}
57600	return ret, nil
57601	// {
57602	//   "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. (== suppress_warning http-rest-shadowed ==)",
57603	//   "httpMethod": "POST",
57604	//   "id": "compute.disks.insert",
57605	//   "parameterOrder": [
57606	//     "project",
57607	//     "zone"
57608	//   ],
57609	//   "parameters": {
57610	//     "project": {
57611	//       "description": "Project ID for this request.",
57612	//       "location": "path",
57613	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
57614	//       "required": true,
57615	//       "type": "string"
57616	//     },
57617	//     "requestId": {
57618	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
57619	//       "location": "query",
57620	//       "type": "string"
57621	//     },
57622	//     "sourceImage": {
57623	//       "description": "Optional. Source image to restore onto a disk.",
57624	//       "location": "query",
57625	//       "type": "string"
57626	//     },
57627	//     "zone": {
57628	//       "description": "The name of the zone for this request.",
57629	//       "location": "path",
57630	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
57631	//       "required": true,
57632	//       "type": "string"
57633	//     }
57634	//   },
57635	//   "path": "{project}/zones/{zone}/disks",
57636	//   "request": {
57637	//     "$ref": "Disk"
57638	//   },
57639	//   "response": {
57640	//     "$ref": "Operation"
57641	//   },
57642	//   "scopes": [
57643	//     "https://www.googleapis.com/auth/cloud-platform",
57644	//     "https://www.googleapis.com/auth/compute"
57645	//   ]
57646	// }
57647
57648}
57649
57650// method id "compute.disks.list":
57651
57652type DisksListCall struct {
57653	s            *Service
57654	project      string
57655	zone         string
57656	urlParams_   gensupport.URLParams
57657	ifNoneMatch_ string
57658	ctx_         context.Context
57659	header_      http.Header
57660}
57661
57662// List: Retrieves a list of persistent disks contained within the
57663// specified zone. (== suppress_warning http-rest-shadowed ==)
57664// For details, see https://cloud.google.com/compute/docs/reference/latest/disks/list
57665func (r *DisksService) List(project string, zone string) *DisksListCall {
57666	c := &DisksListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
57667	c.project = project
57668	c.zone = zone
57669	return c
57670}
57671
57672// Filter sets the optional parameter "filter": A filter expression that
57673// filters resources listed in the response. The expression must specify
57674// the field name, a comparison operator, and the value that you want to
57675// use for filtering. The value must be a string, a number, or a
57676// boolean. The comparison operator must be either =, !=, >, or <.
57677//
57678// For example, if you are filtering Compute Engine instances, you can
57679// exclude instances named example-instance by specifying name !=
57680// example-instance.
57681//
57682// You can also filter nested fields. For example, you could specify
57683// scheduling.automaticRestart = false to include instances only if they
57684// are not scheduled for automatic restarts. You can use filtering on
57685// nested fields to filter based on resource labels.
57686//
57687// To filter on multiple expressions, provide each separate expression
57688// within parentheses. For example, (scheduling.automaticRestart = true)
57689// (cpuPlatform = "Intel Skylake"). By default, each expression is an
57690// AND expression. However, you can include AND and OR expressions
57691// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
57692// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
57693// true).
57694func (c *DisksListCall) Filter(filter string) *DisksListCall {
57695	c.urlParams_.Set("filter", filter)
57696	return c
57697}
57698
57699// MaxResults sets the optional parameter "maxResults": The maximum
57700// number of results per page that should be returned. If the number of
57701// available results is larger than maxResults, Compute Engine returns a
57702// nextPageToken that can be used to get the next page of results in
57703// subsequent list requests. Acceptable values are 0 to 500, inclusive.
57704// (Default: 500)
57705func (c *DisksListCall) MaxResults(maxResults int64) *DisksListCall {
57706	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
57707	return c
57708}
57709
57710// OrderBy sets the optional parameter "orderBy": Sorts list results by
57711// a certain order. By default, results are returned in alphanumerical
57712// order based on the resource name.
57713//
57714// You can also sort results in descending order based on the creation
57715// timestamp using orderBy="creationTimestamp desc". This sorts results
57716// based on the creationTimestamp field in reverse chronological order
57717// (newest result first). Use this to sort resources like operations so
57718// that the newest operation is returned first.
57719//
57720// Currently, only sorting by name or creationTimestamp desc is
57721// supported.
57722func (c *DisksListCall) OrderBy(orderBy string) *DisksListCall {
57723	c.urlParams_.Set("orderBy", orderBy)
57724	return c
57725}
57726
57727// PageToken sets the optional parameter "pageToken": Specifies a page
57728// token to use. Set pageToken to the nextPageToken returned by a
57729// previous list request to get the next page of results.
57730func (c *DisksListCall) PageToken(pageToken string) *DisksListCall {
57731	c.urlParams_.Set("pageToken", pageToken)
57732	return c
57733}
57734
57735// Fields allows partial responses to be retrieved. See
57736// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
57737// for more information.
57738func (c *DisksListCall) Fields(s ...googleapi.Field) *DisksListCall {
57739	c.urlParams_.Set("fields", googleapi.CombineFields(s))
57740	return c
57741}
57742
57743// IfNoneMatch sets the optional parameter which makes the operation
57744// fail if the object's ETag matches the given value. This is useful for
57745// getting updates only after the object has changed since the last
57746// request. Use googleapi.IsNotModified to check whether the response
57747// error from Do is the result of In-None-Match.
57748func (c *DisksListCall) IfNoneMatch(entityTag string) *DisksListCall {
57749	c.ifNoneMatch_ = entityTag
57750	return c
57751}
57752
57753// Context sets the context to be used in this call's Do method. Any
57754// pending HTTP request will be aborted if the provided context is
57755// canceled.
57756func (c *DisksListCall) Context(ctx context.Context) *DisksListCall {
57757	c.ctx_ = ctx
57758	return c
57759}
57760
57761// Header returns an http.Header that can be modified by the caller to
57762// add HTTP headers to the request.
57763func (c *DisksListCall) Header() http.Header {
57764	if c.header_ == nil {
57765		c.header_ = make(http.Header)
57766	}
57767	return c.header_
57768}
57769
57770func (c *DisksListCall) doRequest(alt string) (*http.Response, error) {
57771	reqHeaders := make(http.Header)
57772	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
57773	for k, v := range c.header_ {
57774		reqHeaders[k] = v
57775	}
57776	reqHeaders.Set("User-Agent", c.s.userAgent())
57777	if c.ifNoneMatch_ != "" {
57778		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
57779	}
57780	var body io.Reader = nil
57781	c.urlParams_.Set("alt", alt)
57782	c.urlParams_.Set("prettyPrint", "false")
57783	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/disks")
57784	urls += "?" + c.urlParams_.Encode()
57785	req, err := http.NewRequest("GET", urls, body)
57786	if err != nil {
57787		return nil, err
57788	}
57789	req.Header = reqHeaders
57790	googleapi.Expand(req.URL, map[string]string{
57791		"project": c.project,
57792		"zone":    c.zone,
57793	})
57794	return gensupport.SendRequest(c.ctx_, c.s.client, req)
57795}
57796
57797// Do executes the "compute.disks.list" call.
57798// Exactly one of *DiskList or error will be non-nil. Any non-2xx status
57799// code is an error. Response headers are in either
57800// *DiskList.ServerResponse.Header or (if a response was returned at
57801// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
57802// to check whether the returned error was because
57803// http.StatusNotModified was returned.
57804func (c *DisksListCall) Do(opts ...googleapi.CallOption) (*DiskList, error) {
57805	gensupport.SetOptions(c.urlParams_, opts...)
57806	res, err := c.doRequest("json")
57807	if res != nil && res.StatusCode == http.StatusNotModified {
57808		if res.Body != nil {
57809			res.Body.Close()
57810		}
57811		return nil, &googleapi.Error{
57812			Code:   res.StatusCode,
57813			Header: res.Header,
57814		}
57815	}
57816	if err != nil {
57817		return nil, err
57818	}
57819	defer googleapi.CloseBody(res)
57820	if err := googleapi.CheckResponse(res); err != nil {
57821		return nil, err
57822	}
57823	ret := &DiskList{
57824		ServerResponse: googleapi.ServerResponse{
57825			Header:         res.Header,
57826			HTTPStatusCode: res.StatusCode,
57827		},
57828	}
57829	target := &ret
57830	if err := gensupport.DecodeResponse(target, res); err != nil {
57831		return nil, err
57832	}
57833	return ret, nil
57834	// {
57835	//   "description": "Retrieves a list of persistent disks contained within the specified zone. (== suppress_warning http-rest-shadowed ==)",
57836	//   "httpMethod": "GET",
57837	//   "id": "compute.disks.list",
57838	//   "parameterOrder": [
57839	//     "project",
57840	//     "zone"
57841	//   ],
57842	//   "parameters": {
57843	//     "filter": {
57844	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
57845	//       "location": "query",
57846	//       "type": "string"
57847	//     },
57848	//     "maxResults": {
57849	//       "default": "500",
57850	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
57851	//       "format": "uint32",
57852	//       "location": "query",
57853	//       "minimum": "0",
57854	//       "type": "integer"
57855	//     },
57856	//     "orderBy": {
57857	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
57858	//       "location": "query",
57859	//       "type": "string"
57860	//     },
57861	//     "pageToken": {
57862	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
57863	//       "location": "query",
57864	//       "type": "string"
57865	//     },
57866	//     "project": {
57867	//       "description": "Project ID for this request.",
57868	//       "location": "path",
57869	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
57870	//       "required": true,
57871	//       "type": "string"
57872	//     },
57873	//     "zone": {
57874	//       "description": "The name of the zone for this request.",
57875	//       "location": "path",
57876	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
57877	//       "required": true,
57878	//       "type": "string"
57879	//     }
57880	//   },
57881	//   "path": "{project}/zones/{zone}/disks",
57882	//   "response": {
57883	//     "$ref": "DiskList"
57884	//   },
57885	//   "scopes": [
57886	//     "https://www.googleapis.com/auth/cloud-platform",
57887	//     "https://www.googleapis.com/auth/compute",
57888	//     "https://www.googleapis.com/auth/compute.readonly"
57889	//   ]
57890	// }
57891
57892}
57893
57894// Pages invokes f for each page of results.
57895// A non-nil error returned from f will halt the iteration.
57896// The provided context supersedes any context provided to the Context method.
57897func (c *DisksListCall) Pages(ctx context.Context, f func(*DiskList) error) error {
57898	c.ctx_ = ctx
57899	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
57900	for {
57901		x, err := c.Do()
57902		if err != nil {
57903			return err
57904		}
57905		if err := f(x); err != nil {
57906			return err
57907		}
57908		if x.NextPageToken == "" {
57909			return nil
57910		}
57911		c.PageToken(x.NextPageToken)
57912	}
57913}
57914
57915// method id "compute.disks.removeResourcePolicies":
57916
57917type DisksRemoveResourcePoliciesCall struct {
57918	s                                  *Service
57919	project                            string
57920	zone                               string
57921	disk                               string
57922	disksremoveresourcepoliciesrequest *DisksRemoveResourcePoliciesRequest
57923	urlParams_                         gensupport.URLParams
57924	ctx_                               context.Context
57925	header_                            http.Header
57926}
57927
57928// RemoveResourcePolicies: Removes resource policies from a disk. (==
57929// suppress_warning http-rest-shadowed ==)
57930func (r *DisksService) RemoveResourcePolicies(project string, zone string, disk string, disksremoveresourcepoliciesrequest *DisksRemoveResourcePoliciesRequest) *DisksRemoveResourcePoliciesCall {
57931	c := &DisksRemoveResourcePoliciesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
57932	c.project = project
57933	c.zone = zone
57934	c.disk = disk
57935	c.disksremoveresourcepoliciesrequest = disksremoveresourcepoliciesrequest
57936	return c
57937}
57938
57939// RequestId sets the optional parameter "requestId": An optional
57940// request ID to identify requests. Specify a unique request ID so that
57941// if you must retry your request, the server will know to ignore the
57942// request if it has already been completed.
57943//
57944// For example, consider a situation where you make an initial request
57945// and the request times out. If you make the request again with the
57946// same request ID, the server can check if original operation with the
57947// same request ID was received, and if so, will ignore the second
57948// request. This prevents clients from accidentally creating duplicate
57949// commitments.
57950//
57951// The request ID must be a valid UUID with the exception that zero UUID
57952// is not supported (00000000-0000-0000-0000-000000000000).
57953func (c *DisksRemoveResourcePoliciesCall) RequestId(requestId string) *DisksRemoveResourcePoliciesCall {
57954	c.urlParams_.Set("requestId", requestId)
57955	return c
57956}
57957
57958// Fields allows partial responses to be retrieved. See
57959// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
57960// for more information.
57961func (c *DisksRemoveResourcePoliciesCall) Fields(s ...googleapi.Field) *DisksRemoveResourcePoliciesCall {
57962	c.urlParams_.Set("fields", googleapi.CombineFields(s))
57963	return c
57964}
57965
57966// Context sets the context to be used in this call's Do method. Any
57967// pending HTTP request will be aborted if the provided context is
57968// canceled.
57969func (c *DisksRemoveResourcePoliciesCall) Context(ctx context.Context) *DisksRemoveResourcePoliciesCall {
57970	c.ctx_ = ctx
57971	return c
57972}
57973
57974// Header returns an http.Header that can be modified by the caller to
57975// add HTTP headers to the request.
57976func (c *DisksRemoveResourcePoliciesCall) Header() http.Header {
57977	if c.header_ == nil {
57978		c.header_ = make(http.Header)
57979	}
57980	return c.header_
57981}
57982
57983func (c *DisksRemoveResourcePoliciesCall) doRequest(alt string) (*http.Response, error) {
57984	reqHeaders := make(http.Header)
57985	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
57986	for k, v := range c.header_ {
57987		reqHeaders[k] = v
57988	}
57989	reqHeaders.Set("User-Agent", c.s.userAgent())
57990	var body io.Reader = nil
57991	body, err := googleapi.WithoutDataWrapper.JSONReader(c.disksremoveresourcepoliciesrequest)
57992	if err != nil {
57993		return nil, err
57994	}
57995	reqHeaders.Set("Content-Type", "application/json")
57996	c.urlParams_.Set("alt", alt)
57997	c.urlParams_.Set("prettyPrint", "false")
57998	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/disks/{disk}/removeResourcePolicies")
57999	urls += "?" + c.urlParams_.Encode()
58000	req, err := http.NewRequest("POST", urls, body)
58001	if err != nil {
58002		return nil, err
58003	}
58004	req.Header = reqHeaders
58005	googleapi.Expand(req.URL, map[string]string{
58006		"project": c.project,
58007		"zone":    c.zone,
58008		"disk":    c.disk,
58009	})
58010	return gensupport.SendRequest(c.ctx_, c.s.client, req)
58011}
58012
58013// Do executes the "compute.disks.removeResourcePolicies" call.
58014// Exactly one of *Operation or error will be non-nil. Any non-2xx
58015// status code is an error. Response headers are in either
58016// *Operation.ServerResponse.Header or (if a response was returned at
58017// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
58018// to check whether the returned error was because
58019// http.StatusNotModified was returned.
58020func (c *DisksRemoveResourcePoliciesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
58021	gensupport.SetOptions(c.urlParams_, opts...)
58022	res, err := c.doRequest("json")
58023	if res != nil && res.StatusCode == http.StatusNotModified {
58024		if res.Body != nil {
58025			res.Body.Close()
58026		}
58027		return nil, &googleapi.Error{
58028			Code:   res.StatusCode,
58029			Header: res.Header,
58030		}
58031	}
58032	if err != nil {
58033		return nil, err
58034	}
58035	defer googleapi.CloseBody(res)
58036	if err := googleapi.CheckResponse(res); err != nil {
58037		return nil, err
58038	}
58039	ret := &Operation{
58040		ServerResponse: googleapi.ServerResponse{
58041			Header:         res.Header,
58042			HTTPStatusCode: res.StatusCode,
58043		},
58044	}
58045	target := &ret
58046	if err := gensupport.DecodeResponse(target, res); err != nil {
58047		return nil, err
58048	}
58049	return ret, nil
58050	// {
58051	//   "description": "Removes resource policies from a disk. (== suppress_warning http-rest-shadowed ==)",
58052	//   "httpMethod": "POST",
58053	//   "id": "compute.disks.removeResourcePolicies",
58054	//   "parameterOrder": [
58055	//     "project",
58056	//     "zone",
58057	//     "disk"
58058	//   ],
58059	//   "parameters": {
58060	//     "disk": {
58061	//       "description": "The disk name for this request.",
58062	//       "location": "path",
58063	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
58064	//       "required": true,
58065	//       "type": "string"
58066	//     },
58067	//     "project": {
58068	//       "description": "Project ID for this request.",
58069	//       "location": "path",
58070	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
58071	//       "required": true,
58072	//       "type": "string"
58073	//     },
58074	//     "requestId": {
58075	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
58076	//       "location": "query",
58077	//       "type": "string"
58078	//     },
58079	//     "zone": {
58080	//       "description": "The name of the zone for this request.",
58081	//       "location": "path",
58082	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
58083	//       "required": true,
58084	//       "type": "string"
58085	//     }
58086	//   },
58087	//   "path": "{project}/zones/{zone}/disks/{disk}/removeResourcePolicies",
58088	//   "request": {
58089	//     "$ref": "DisksRemoveResourcePoliciesRequest"
58090	//   },
58091	//   "response": {
58092	//     "$ref": "Operation"
58093	//   },
58094	//   "scopes": [
58095	//     "https://www.googleapis.com/auth/cloud-platform",
58096	//     "https://www.googleapis.com/auth/compute"
58097	//   ]
58098	// }
58099
58100}
58101
58102// method id "compute.disks.resize":
58103
58104type DisksResizeCall struct {
58105	s                  *Service
58106	project            string
58107	zone               string
58108	disk               string
58109	disksresizerequest *DisksResizeRequest
58110	urlParams_         gensupport.URLParams
58111	ctx_               context.Context
58112	header_            http.Header
58113}
58114
58115// Resize: Resizes the specified persistent disk. You can only increase
58116// the size of the disk. (== suppress_warning http-rest-shadowed ==)
58117func (r *DisksService) Resize(project string, zone string, disk string, disksresizerequest *DisksResizeRequest) *DisksResizeCall {
58118	c := &DisksResizeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
58119	c.project = project
58120	c.zone = zone
58121	c.disk = disk
58122	c.disksresizerequest = disksresizerequest
58123	return c
58124}
58125
58126// RequestId sets the optional parameter "requestId": An optional
58127// request ID to identify requests. Specify a unique request ID so that
58128// if you must retry your request, the server will know to ignore the
58129// request if it has already been completed.
58130//
58131// For example, consider a situation where you make an initial request
58132// and the request times out. If you make the request again with the
58133// same request ID, the server can check if original operation with the
58134// same request ID was received, and if so, will ignore the second
58135// request. This prevents clients from accidentally creating duplicate
58136// commitments.
58137//
58138// The request ID must be a valid UUID with the exception that zero UUID
58139// is not supported (00000000-0000-0000-0000-000000000000).
58140func (c *DisksResizeCall) RequestId(requestId string) *DisksResizeCall {
58141	c.urlParams_.Set("requestId", requestId)
58142	return c
58143}
58144
58145// Fields allows partial responses to be retrieved. See
58146// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
58147// for more information.
58148func (c *DisksResizeCall) Fields(s ...googleapi.Field) *DisksResizeCall {
58149	c.urlParams_.Set("fields", googleapi.CombineFields(s))
58150	return c
58151}
58152
58153// Context sets the context to be used in this call's Do method. Any
58154// pending HTTP request will be aborted if the provided context is
58155// canceled.
58156func (c *DisksResizeCall) Context(ctx context.Context) *DisksResizeCall {
58157	c.ctx_ = ctx
58158	return c
58159}
58160
58161// Header returns an http.Header that can be modified by the caller to
58162// add HTTP headers to the request.
58163func (c *DisksResizeCall) Header() http.Header {
58164	if c.header_ == nil {
58165		c.header_ = make(http.Header)
58166	}
58167	return c.header_
58168}
58169
58170func (c *DisksResizeCall) doRequest(alt string) (*http.Response, error) {
58171	reqHeaders := make(http.Header)
58172	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
58173	for k, v := range c.header_ {
58174		reqHeaders[k] = v
58175	}
58176	reqHeaders.Set("User-Agent", c.s.userAgent())
58177	var body io.Reader = nil
58178	body, err := googleapi.WithoutDataWrapper.JSONReader(c.disksresizerequest)
58179	if err != nil {
58180		return nil, err
58181	}
58182	reqHeaders.Set("Content-Type", "application/json")
58183	c.urlParams_.Set("alt", alt)
58184	c.urlParams_.Set("prettyPrint", "false")
58185	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/disks/{disk}/resize")
58186	urls += "?" + c.urlParams_.Encode()
58187	req, err := http.NewRequest("POST", urls, body)
58188	if err != nil {
58189		return nil, err
58190	}
58191	req.Header = reqHeaders
58192	googleapi.Expand(req.URL, map[string]string{
58193		"project": c.project,
58194		"zone":    c.zone,
58195		"disk":    c.disk,
58196	})
58197	return gensupport.SendRequest(c.ctx_, c.s.client, req)
58198}
58199
58200// Do executes the "compute.disks.resize" call.
58201// Exactly one of *Operation or error will be non-nil. Any non-2xx
58202// status code is an error. Response headers are in either
58203// *Operation.ServerResponse.Header or (if a response was returned at
58204// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
58205// to check whether the returned error was because
58206// http.StatusNotModified was returned.
58207func (c *DisksResizeCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
58208	gensupport.SetOptions(c.urlParams_, opts...)
58209	res, err := c.doRequest("json")
58210	if res != nil && res.StatusCode == http.StatusNotModified {
58211		if res.Body != nil {
58212			res.Body.Close()
58213		}
58214		return nil, &googleapi.Error{
58215			Code:   res.StatusCode,
58216			Header: res.Header,
58217		}
58218	}
58219	if err != nil {
58220		return nil, err
58221	}
58222	defer googleapi.CloseBody(res)
58223	if err := googleapi.CheckResponse(res); err != nil {
58224		return nil, err
58225	}
58226	ret := &Operation{
58227		ServerResponse: googleapi.ServerResponse{
58228			Header:         res.Header,
58229			HTTPStatusCode: res.StatusCode,
58230		},
58231	}
58232	target := &ret
58233	if err := gensupport.DecodeResponse(target, res); err != nil {
58234		return nil, err
58235	}
58236	return ret, nil
58237	// {
58238	//   "description": "Resizes the specified persistent disk. You can only increase the size of the disk. (== suppress_warning http-rest-shadowed ==)",
58239	//   "httpMethod": "POST",
58240	//   "id": "compute.disks.resize",
58241	//   "parameterOrder": [
58242	//     "project",
58243	//     "zone",
58244	//     "disk"
58245	//   ],
58246	//   "parameters": {
58247	//     "disk": {
58248	//       "description": "The name of the persistent disk.",
58249	//       "location": "path",
58250	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
58251	//       "required": true,
58252	//       "type": "string"
58253	//     },
58254	//     "project": {
58255	//       "description": "Project ID for this request.",
58256	//       "location": "path",
58257	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
58258	//       "required": true,
58259	//       "type": "string"
58260	//     },
58261	//     "requestId": {
58262	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
58263	//       "location": "query",
58264	//       "type": "string"
58265	//     },
58266	//     "zone": {
58267	//       "description": "The name of the zone for this request.",
58268	//       "location": "path",
58269	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
58270	//       "required": true,
58271	//       "type": "string"
58272	//     }
58273	//   },
58274	//   "path": "{project}/zones/{zone}/disks/{disk}/resize",
58275	//   "request": {
58276	//     "$ref": "DisksResizeRequest"
58277	//   },
58278	//   "response": {
58279	//     "$ref": "Operation"
58280	//   },
58281	//   "scopes": [
58282	//     "https://www.googleapis.com/auth/cloud-platform",
58283	//     "https://www.googleapis.com/auth/compute"
58284	//   ]
58285	// }
58286
58287}
58288
58289// method id "compute.disks.setIamPolicy":
58290
58291type DisksSetIamPolicyCall struct {
58292	s                    *Service
58293	project              string
58294	zone                 string
58295	resource             string
58296	zonesetpolicyrequest *ZoneSetPolicyRequest
58297	urlParams_           gensupport.URLParams
58298	ctx_                 context.Context
58299	header_              http.Header
58300}
58301
58302// SetIamPolicy: Sets the access control policy on the specified
58303// resource. Replaces any existing policy. (== suppress_warning
58304// http-rest-shadowed ==)
58305func (r *DisksService) SetIamPolicy(project string, zone string, resource string, zonesetpolicyrequest *ZoneSetPolicyRequest) *DisksSetIamPolicyCall {
58306	c := &DisksSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
58307	c.project = project
58308	c.zone = zone
58309	c.resource = resource
58310	c.zonesetpolicyrequest = zonesetpolicyrequest
58311	return c
58312}
58313
58314// Fields allows partial responses to be retrieved. See
58315// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
58316// for more information.
58317func (c *DisksSetIamPolicyCall) Fields(s ...googleapi.Field) *DisksSetIamPolicyCall {
58318	c.urlParams_.Set("fields", googleapi.CombineFields(s))
58319	return c
58320}
58321
58322// Context sets the context to be used in this call's Do method. Any
58323// pending HTTP request will be aborted if the provided context is
58324// canceled.
58325func (c *DisksSetIamPolicyCall) Context(ctx context.Context) *DisksSetIamPolicyCall {
58326	c.ctx_ = ctx
58327	return c
58328}
58329
58330// Header returns an http.Header that can be modified by the caller to
58331// add HTTP headers to the request.
58332func (c *DisksSetIamPolicyCall) Header() http.Header {
58333	if c.header_ == nil {
58334		c.header_ = make(http.Header)
58335	}
58336	return c.header_
58337}
58338
58339func (c *DisksSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
58340	reqHeaders := make(http.Header)
58341	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
58342	for k, v := range c.header_ {
58343		reqHeaders[k] = v
58344	}
58345	reqHeaders.Set("User-Agent", c.s.userAgent())
58346	var body io.Reader = nil
58347	body, err := googleapi.WithoutDataWrapper.JSONReader(c.zonesetpolicyrequest)
58348	if err != nil {
58349		return nil, err
58350	}
58351	reqHeaders.Set("Content-Type", "application/json")
58352	c.urlParams_.Set("alt", alt)
58353	c.urlParams_.Set("prettyPrint", "false")
58354	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/disks/{resource}/setIamPolicy")
58355	urls += "?" + c.urlParams_.Encode()
58356	req, err := http.NewRequest("POST", urls, body)
58357	if err != nil {
58358		return nil, err
58359	}
58360	req.Header = reqHeaders
58361	googleapi.Expand(req.URL, map[string]string{
58362		"project":  c.project,
58363		"zone":     c.zone,
58364		"resource": c.resource,
58365	})
58366	return gensupport.SendRequest(c.ctx_, c.s.client, req)
58367}
58368
58369// Do executes the "compute.disks.setIamPolicy" call.
58370// Exactly one of *Policy or error will be non-nil. Any non-2xx status
58371// code is an error. Response headers are in either
58372// *Policy.ServerResponse.Header or (if a response was returned at all)
58373// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
58374// check whether the returned error was because http.StatusNotModified
58375// was returned.
58376func (c *DisksSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
58377	gensupport.SetOptions(c.urlParams_, opts...)
58378	res, err := c.doRequest("json")
58379	if res != nil && res.StatusCode == http.StatusNotModified {
58380		if res.Body != nil {
58381			res.Body.Close()
58382		}
58383		return nil, &googleapi.Error{
58384			Code:   res.StatusCode,
58385			Header: res.Header,
58386		}
58387	}
58388	if err != nil {
58389		return nil, err
58390	}
58391	defer googleapi.CloseBody(res)
58392	if err := googleapi.CheckResponse(res); err != nil {
58393		return nil, err
58394	}
58395	ret := &Policy{
58396		ServerResponse: googleapi.ServerResponse{
58397			Header:         res.Header,
58398			HTTPStatusCode: res.StatusCode,
58399		},
58400	}
58401	target := &ret
58402	if err := gensupport.DecodeResponse(target, res); err != nil {
58403		return nil, err
58404	}
58405	return ret, nil
58406	// {
58407	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy. (== suppress_warning http-rest-shadowed ==)",
58408	//   "httpMethod": "POST",
58409	//   "id": "compute.disks.setIamPolicy",
58410	//   "parameterOrder": [
58411	//     "project",
58412	//     "zone",
58413	//     "resource"
58414	//   ],
58415	//   "parameters": {
58416	//     "project": {
58417	//       "description": "Project ID for this request.",
58418	//       "location": "path",
58419	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
58420	//       "required": true,
58421	//       "type": "string"
58422	//     },
58423	//     "resource": {
58424	//       "description": "Name or id of the resource for this request.",
58425	//       "location": "path",
58426	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
58427	//       "required": true,
58428	//       "type": "string"
58429	//     },
58430	//     "zone": {
58431	//       "description": "The name of the zone for this request.",
58432	//       "location": "path",
58433	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
58434	//       "required": true,
58435	//       "type": "string"
58436	//     }
58437	//   },
58438	//   "path": "{project}/zones/{zone}/disks/{resource}/setIamPolicy",
58439	//   "request": {
58440	//     "$ref": "ZoneSetPolicyRequest"
58441	//   },
58442	//   "response": {
58443	//     "$ref": "Policy"
58444	//   },
58445	//   "scopes": [
58446	//     "https://www.googleapis.com/auth/cloud-platform",
58447	//     "https://www.googleapis.com/auth/compute"
58448	//   ]
58449	// }
58450
58451}
58452
58453// method id "compute.disks.setLabels":
58454
58455type DisksSetLabelsCall struct {
58456	s                    *Service
58457	project              string
58458	zone                 string
58459	resource             string
58460	zonesetlabelsrequest *ZoneSetLabelsRequest
58461	urlParams_           gensupport.URLParams
58462	ctx_                 context.Context
58463	header_              http.Header
58464}
58465
58466// SetLabels: Sets the labels on a disk. To learn more about labels,
58467// read the Labeling Resources documentation. (== suppress_warning
58468// http-rest-shadowed ==)
58469func (r *DisksService) SetLabels(project string, zone string, resource string, zonesetlabelsrequest *ZoneSetLabelsRequest) *DisksSetLabelsCall {
58470	c := &DisksSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
58471	c.project = project
58472	c.zone = zone
58473	c.resource = resource
58474	c.zonesetlabelsrequest = zonesetlabelsrequest
58475	return c
58476}
58477
58478// RequestId sets the optional parameter "requestId": An optional
58479// request ID to identify requests. Specify a unique request ID so that
58480// if you must retry your request, the server will know to ignore the
58481// request if it has already been completed.
58482//
58483// For example, consider a situation where you make an initial request
58484// and the request times out. If you make the request again with the
58485// same request ID, the server can check if original operation with the
58486// same request ID was received, and if so, will ignore the second
58487// request. This prevents clients from accidentally creating duplicate
58488// commitments.
58489//
58490// The request ID must be a valid UUID with the exception that zero UUID
58491// is not supported (00000000-0000-0000-0000-000000000000).
58492func (c *DisksSetLabelsCall) RequestId(requestId string) *DisksSetLabelsCall {
58493	c.urlParams_.Set("requestId", requestId)
58494	return c
58495}
58496
58497// Fields allows partial responses to be retrieved. See
58498// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
58499// for more information.
58500func (c *DisksSetLabelsCall) Fields(s ...googleapi.Field) *DisksSetLabelsCall {
58501	c.urlParams_.Set("fields", googleapi.CombineFields(s))
58502	return c
58503}
58504
58505// Context sets the context to be used in this call's Do method. Any
58506// pending HTTP request will be aborted if the provided context is
58507// canceled.
58508func (c *DisksSetLabelsCall) Context(ctx context.Context) *DisksSetLabelsCall {
58509	c.ctx_ = ctx
58510	return c
58511}
58512
58513// Header returns an http.Header that can be modified by the caller to
58514// add HTTP headers to the request.
58515func (c *DisksSetLabelsCall) Header() http.Header {
58516	if c.header_ == nil {
58517		c.header_ = make(http.Header)
58518	}
58519	return c.header_
58520}
58521
58522func (c *DisksSetLabelsCall) doRequest(alt string) (*http.Response, error) {
58523	reqHeaders := make(http.Header)
58524	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
58525	for k, v := range c.header_ {
58526		reqHeaders[k] = v
58527	}
58528	reqHeaders.Set("User-Agent", c.s.userAgent())
58529	var body io.Reader = nil
58530	body, err := googleapi.WithoutDataWrapper.JSONReader(c.zonesetlabelsrequest)
58531	if err != nil {
58532		return nil, err
58533	}
58534	reqHeaders.Set("Content-Type", "application/json")
58535	c.urlParams_.Set("alt", alt)
58536	c.urlParams_.Set("prettyPrint", "false")
58537	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/disks/{resource}/setLabels")
58538	urls += "?" + c.urlParams_.Encode()
58539	req, err := http.NewRequest("POST", urls, body)
58540	if err != nil {
58541		return nil, err
58542	}
58543	req.Header = reqHeaders
58544	googleapi.Expand(req.URL, map[string]string{
58545		"project":  c.project,
58546		"zone":     c.zone,
58547		"resource": c.resource,
58548	})
58549	return gensupport.SendRequest(c.ctx_, c.s.client, req)
58550}
58551
58552// Do executes the "compute.disks.setLabels" call.
58553// Exactly one of *Operation or error will be non-nil. Any non-2xx
58554// status code is an error. Response headers are in either
58555// *Operation.ServerResponse.Header or (if a response was returned at
58556// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
58557// to check whether the returned error was because
58558// http.StatusNotModified was returned.
58559func (c *DisksSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
58560	gensupport.SetOptions(c.urlParams_, opts...)
58561	res, err := c.doRequest("json")
58562	if res != nil && res.StatusCode == http.StatusNotModified {
58563		if res.Body != nil {
58564			res.Body.Close()
58565		}
58566		return nil, &googleapi.Error{
58567			Code:   res.StatusCode,
58568			Header: res.Header,
58569		}
58570	}
58571	if err != nil {
58572		return nil, err
58573	}
58574	defer googleapi.CloseBody(res)
58575	if err := googleapi.CheckResponse(res); err != nil {
58576		return nil, err
58577	}
58578	ret := &Operation{
58579		ServerResponse: googleapi.ServerResponse{
58580			Header:         res.Header,
58581			HTTPStatusCode: res.StatusCode,
58582		},
58583	}
58584	target := &ret
58585	if err := gensupport.DecodeResponse(target, res); err != nil {
58586		return nil, err
58587	}
58588	return ret, nil
58589	// {
58590	//   "description": "Sets the labels on a disk. To learn more about labels, read the Labeling Resources documentation. (== suppress_warning http-rest-shadowed ==)",
58591	//   "httpMethod": "POST",
58592	//   "id": "compute.disks.setLabels",
58593	//   "parameterOrder": [
58594	//     "project",
58595	//     "zone",
58596	//     "resource"
58597	//   ],
58598	//   "parameters": {
58599	//     "project": {
58600	//       "description": "Project ID for this request.",
58601	//       "location": "path",
58602	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
58603	//       "required": true,
58604	//       "type": "string"
58605	//     },
58606	//     "requestId": {
58607	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
58608	//       "location": "query",
58609	//       "type": "string"
58610	//     },
58611	//     "resource": {
58612	//       "description": "Name or id of the resource for this request.",
58613	//       "location": "path",
58614	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
58615	//       "required": true,
58616	//       "type": "string"
58617	//     },
58618	//     "zone": {
58619	//       "description": "The name of the zone for this request.",
58620	//       "location": "path",
58621	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
58622	//       "required": true,
58623	//       "type": "string"
58624	//     }
58625	//   },
58626	//   "path": "{project}/zones/{zone}/disks/{resource}/setLabels",
58627	//   "request": {
58628	//     "$ref": "ZoneSetLabelsRequest"
58629	//   },
58630	//   "response": {
58631	//     "$ref": "Operation"
58632	//   },
58633	//   "scopes": [
58634	//     "https://www.googleapis.com/auth/cloud-platform",
58635	//     "https://www.googleapis.com/auth/compute"
58636	//   ]
58637	// }
58638
58639}
58640
58641// method id "compute.disks.testIamPermissions":
58642
58643type DisksTestIamPermissionsCall struct {
58644	s                      *Service
58645	project                string
58646	zone                   string
58647	resource               string
58648	testpermissionsrequest *TestPermissionsRequest
58649	urlParams_             gensupport.URLParams
58650	ctx_                   context.Context
58651	header_                http.Header
58652}
58653
58654// TestIamPermissions: Returns permissions that a caller has on the
58655// specified resource. (== suppress_warning http-rest-shadowed ==)
58656func (r *DisksService) TestIamPermissions(project string, zone string, resource string, testpermissionsrequest *TestPermissionsRequest) *DisksTestIamPermissionsCall {
58657	c := &DisksTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
58658	c.project = project
58659	c.zone = zone
58660	c.resource = resource
58661	c.testpermissionsrequest = testpermissionsrequest
58662	return c
58663}
58664
58665// Fields allows partial responses to be retrieved. See
58666// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
58667// for more information.
58668func (c *DisksTestIamPermissionsCall) Fields(s ...googleapi.Field) *DisksTestIamPermissionsCall {
58669	c.urlParams_.Set("fields", googleapi.CombineFields(s))
58670	return c
58671}
58672
58673// Context sets the context to be used in this call's Do method. Any
58674// pending HTTP request will be aborted if the provided context is
58675// canceled.
58676func (c *DisksTestIamPermissionsCall) Context(ctx context.Context) *DisksTestIamPermissionsCall {
58677	c.ctx_ = ctx
58678	return c
58679}
58680
58681// Header returns an http.Header that can be modified by the caller to
58682// add HTTP headers to the request.
58683func (c *DisksTestIamPermissionsCall) Header() http.Header {
58684	if c.header_ == nil {
58685		c.header_ = make(http.Header)
58686	}
58687	return c.header_
58688}
58689
58690func (c *DisksTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
58691	reqHeaders := make(http.Header)
58692	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
58693	for k, v := range c.header_ {
58694		reqHeaders[k] = v
58695	}
58696	reqHeaders.Set("User-Agent", c.s.userAgent())
58697	var body io.Reader = nil
58698	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
58699	if err != nil {
58700		return nil, err
58701	}
58702	reqHeaders.Set("Content-Type", "application/json")
58703	c.urlParams_.Set("alt", alt)
58704	c.urlParams_.Set("prettyPrint", "false")
58705	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/disks/{resource}/testIamPermissions")
58706	urls += "?" + c.urlParams_.Encode()
58707	req, err := http.NewRequest("POST", urls, body)
58708	if err != nil {
58709		return nil, err
58710	}
58711	req.Header = reqHeaders
58712	googleapi.Expand(req.URL, map[string]string{
58713		"project":  c.project,
58714		"zone":     c.zone,
58715		"resource": c.resource,
58716	})
58717	return gensupport.SendRequest(c.ctx_, c.s.client, req)
58718}
58719
58720// Do executes the "compute.disks.testIamPermissions" call.
58721// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
58722// non-2xx status code is an error. Response headers are in either
58723// *TestPermissionsResponse.ServerResponse.Header or (if a response was
58724// returned at all) in error.(*googleapi.Error).Header. Use
58725// googleapi.IsNotModified to check whether the returned error was
58726// because http.StatusNotModified was returned.
58727func (c *DisksTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
58728	gensupport.SetOptions(c.urlParams_, opts...)
58729	res, err := c.doRequest("json")
58730	if res != nil && res.StatusCode == http.StatusNotModified {
58731		if res.Body != nil {
58732			res.Body.Close()
58733		}
58734		return nil, &googleapi.Error{
58735			Code:   res.StatusCode,
58736			Header: res.Header,
58737		}
58738	}
58739	if err != nil {
58740		return nil, err
58741	}
58742	defer googleapi.CloseBody(res)
58743	if err := googleapi.CheckResponse(res); err != nil {
58744		return nil, err
58745	}
58746	ret := &TestPermissionsResponse{
58747		ServerResponse: googleapi.ServerResponse{
58748			Header:         res.Header,
58749			HTTPStatusCode: res.StatusCode,
58750		},
58751	}
58752	target := &ret
58753	if err := gensupport.DecodeResponse(target, res); err != nil {
58754		return nil, err
58755	}
58756	return ret, nil
58757	// {
58758	//   "description": "Returns permissions that a caller has on the specified resource. (== suppress_warning http-rest-shadowed ==)",
58759	//   "httpMethod": "POST",
58760	//   "id": "compute.disks.testIamPermissions",
58761	//   "parameterOrder": [
58762	//     "project",
58763	//     "zone",
58764	//     "resource"
58765	//   ],
58766	//   "parameters": {
58767	//     "project": {
58768	//       "description": "Project ID for this request.",
58769	//       "location": "path",
58770	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
58771	//       "required": true,
58772	//       "type": "string"
58773	//     },
58774	//     "resource": {
58775	//       "description": "Name or id of the resource for this request.",
58776	//       "location": "path",
58777	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
58778	//       "required": true,
58779	//       "type": "string"
58780	//     },
58781	//     "zone": {
58782	//       "description": "The name of the zone for this request.",
58783	//       "location": "path",
58784	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
58785	//       "required": true,
58786	//       "type": "string"
58787	//     }
58788	//   },
58789	//   "path": "{project}/zones/{zone}/disks/{resource}/testIamPermissions",
58790	//   "request": {
58791	//     "$ref": "TestPermissionsRequest"
58792	//   },
58793	//   "response": {
58794	//     "$ref": "TestPermissionsResponse"
58795	//   },
58796	//   "scopes": [
58797	//     "https://www.googleapis.com/auth/cloud-platform",
58798	//     "https://www.googleapis.com/auth/compute",
58799	//     "https://www.googleapis.com/auth/compute.readonly"
58800	//   ]
58801	// }
58802
58803}
58804
58805// method id "compute.externalVpnGateways.delete":
58806
58807type ExternalVpnGatewaysDeleteCall struct {
58808	s                  *Service
58809	project            string
58810	externalVpnGateway string
58811	urlParams_         gensupport.URLParams
58812	ctx_               context.Context
58813	header_            http.Header
58814}
58815
58816// Delete: Deletes the specified externalVpnGateway. (==
58817// suppress_warning http-rest-shadowed ==)
58818func (r *ExternalVpnGatewaysService) Delete(project string, externalVpnGateway string) *ExternalVpnGatewaysDeleteCall {
58819	c := &ExternalVpnGatewaysDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
58820	c.project = project
58821	c.externalVpnGateway = externalVpnGateway
58822	return c
58823}
58824
58825// RequestId sets the optional parameter "requestId": An optional
58826// request ID to identify requests. Specify a unique request ID so that
58827// if you must retry your request, the server will know to ignore the
58828// request if it has already been completed.
58829//
58830// For example, consider a situation where you make an initial request
58831// and the request times out. If you make the request again with the
58832// same request ID, the server can check if original operation with the
58833// same request ID was received, and if so, will ignore the second
58834// request. This prevents clients from accidentally creating duplicate
58835// commitments.
58836//
58837// The request ID must be a valid UUID with the exception that zero UUID
58838// is not supported (00000000-0000-0000-0000-000000000000).
58839func (c *ExternalVpnGatewaysDeleteCall) RequestId(requestId string) *ExternalVpnGatewaysDeleteCall {
58840	c.urlParams_.Set("requestId", requestId)
58841	return c
58842}
58843
58844// Fields allows partial responses to be retrieved. See
58845// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
58846// for more information.
58847func (c *ExternalVpnGatewaysDeleteCall) Fields(s ...googleapi.Field) *ExternalVpnGatewaysDeleteCall {
58848	c.urlParams_.Set("fields", googleapi.CombineFields(s))
58849	return c
58850}
58851
58852// Context sets the context to be used in this call's Do method. Any
58853// pending HTTP request will be aborted if the provided context is
58854// canceled.
58855func (c *ExternalVpnGatewaysDeleteCall) Context(ctx context.Context) *ExternalVpnGatewaysDeleteCall {
58856	c.ctx_ = ctx
58857	return c
58858}
58859
58860// Header returns an http.Header that can be modified by the caller to
58861// add HTTP headers to the request.
58862func (c *ExternalVpnGatewaysDeleteCall) Header() http.Header {
58863	if c.header_ == nil {
58864		c.header_ = make(http.Header)
58865	}
58866	return c.header_
58867}
58868
58869func (c *ExternalVpnGatewaysDeleteCall) doRequest(alt string) (*http.Response, error) {
58870	reqHeaders := make(http.Header)
58871	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
58872	for k, v := range c.header_ {
58873		reqHeaders[k] = v
58874	}
58875	reqHeaders.Set("User-Agent", c.s.userAgent())
58876	var body io.Reader = nil
58877	c.urlParams_.Set("alt", alt)
58878	c.urlParams_.Set("prettyPrint", "false")
58879	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/externalVpnGateways/{externalVpnGateway}")
58880	urls += "?" + c.urlParams_.Encode()
58881	req, err := http.NewRequest("DELETE", urls, body)
58882	if err != nil {
58883		return nil, err
58884	}
58885	req.Header = reqHeaders
58886	googleapi.Expand(req.URL, map[string]string{
58887		"project":            c.project,
58888		"externalVpnGateway": c.externalVpnGateway,
58889	})
58890	return gensupport.SendRequest(c.ctx_, c.s.client, req)
58891}
58892
58893// Do executes the "compute.externalVpnGateways.delete" call.
58894// Exactly one of *Operation or error will be non-nil. Any non-2xx
58895// status code is an error. Response headers are in either
58896// *Operation.ServerResponse.Header or (if a response was returned at
58897// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
58898// to check whether the returned error was because
58899// http.StatusNotModified was returned.
58900func (c *ExternalVpnGatewaysDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
58901	gensupport.SetOptions(c.urlParams_, opts...)
58902	res, err := c.doRequest("json")
58903	if res != nil && res.StatusCode == http.StatusNotModified {
58904		if res.Body != nil {
58905			res.Body.Close()
58906		}
58907		return nil, &googleapi.Error{
58908			Code:   res.StatusCode,
58909			Header: res.Header,
58910		}
58911	}
58912	if err != nil {
58913		return nil, err
58914	}
58915	defer googleapi.CloseBody(res)
58916	if err := googleapi.CheckResponse(res); err != nil {
58917		return nil, err
58918	}
58919	ret := &Operation{
58920		ServerResponse: googleapi.ServerResponse{
58921			Header:         res.Header,
58922			HTTPStatusCode: res.StatusCode,
58923		},
58924	}
58925	target := &ret
58926	if err := gensupport.DecodeResponse(target, res); err != nil {
58927		return nil, err
58928	}
58929	return ret, nil
58930	// {
58931	//   "description": "Deletes the specified externalVpnGateway. (== suppress_warning http-rest-shadowed ==)",
58932	//   "httpMethod": "DELETE",
58933	//   "id": "compute.externalVpnGateways.delete",
58934	//   "parameterOrder": [
58935	//     "project",
58936	//     "externalVpnGateway"
58937	//   ],
58938	//   "parameters": {
58939	//     "externalVpnGateway": {
58940	//       "description": "Name of the externalVpnGateways to delete.",
58941	//       "location": "path",
58942	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
58943	//       "required": true,
58944	//       "type": "string"
58945	//     },
58946	//     "project": {
58947	//       "description": "Project ID for this request.",
58948	//       "location": "path",
58949	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
58950	//       "required": true,
58951	//       "type": "string"
58952	//     },
58953	//     "requestId": {
58954	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
58955	//       "location": "query",
58956	//       "type": "string"
58957	//     }
58958	//   },
58959	//   "path": "{project}/global/externalVpnGateways/{externalVpnGateway}",
58960	//   "response": {
58961	//     "$ref": "Operation"
58962	//   },
58963	//   "scopes": [
58964	//     "https://www.googleapis.com/auth/cloud-platform",
58965	//     "https://www.googleapis.com/auth/compute"
58966	//   ]
58967	// }
58968
58969}
58970
58971// method id "compute.externalVpnGateways.get":
58972
58973type ExternalVpnGatewaysGetCall struct {
58974	s                  *Service
58975	project            string
58976	externalVpnGateway string
58977	urlParams_         gensupport.URLParams
58978	ifNoneMatch_       string
58979	ctx_               context.Context
58980	header_            http.Header
58981}
58982
58983// Get: Returns the specified externalVpnGateway. Get a list of
58984// available externalVpnGateways by making a list() request. (==
58985// suppress_warning http-rest-shadowed ==)
58986func (r *ExternalVpnGatewaysService) Get(project string, externalVpnGateway string) *ExternalVpnGatewaysGetCall {
58987	c := &ExternalVpnGatewaysGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
58988	c.project = project
58989	c.externalVpnGateway = externalVpnGateway
58990	return c
58991}
58992
58993// Fields allows partial responses to be retrieved. See
58994// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
58995// for more information.
58996func (c *ExternalVpnGatewaysGetCall) Fields(s ...googleapi.Field) *ExternalVpnGatewaysGetCall {
58997	c.urlParams_.Set("fields", googleapi.CombineFields(s))
58998	return c
58999}
59000
59001// IfNoneMatch sets the optional parameter which makes the operation
59002// fail if the object's ETag matches the given value. This is useful for
59003// getting updates only after the object has changed since the last
59004// request. Use googleapi.IsNotModified to check whether the response
59005// error from Do is the result of In-None-Match.
59006func (c *ExternalVpnGatewaysGetCall) IfNoneMatch(entityTag string) *ExternalVpnGatewaysGetCall {
59007	c.ifNoneMatch_ = entityTag
59008	return c
59009}
59010
59011// Context sets the context to be used in this call's Do method. Any
59012// pending HTTP request will be aborted if the provided context is
59013// canceled.
59014func (c *ExternalVpnGatewaysGetCall) Context(ctx context.Context) *ExternalVpnGatewaysGetCall {
59015	c.ctx_ = ctx
59016	return c
59017}
59018
59019// Header returns an http.Header that can be modified by the caller to
59020// add HTTP headers to the request.
59021func (c *ExternalVpnGatewaysGetCall) Header() http.Header {
59022	if c.header_ == nil {
59023		c.header_ = make(http.Header)
59024	}
59025	return c.header_
59026}
59027
59028func (c *ExternalVpnGatewaysGetCall) doRequest(alt string) (*http.Response, error) {
59029	reqHeaders := make(http.Header)
59030	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
59031	for k, v := range c.header_ {
59032		reqHeaders[k] = v
59033	}
59034	reqHeaders.Set("User-Agent", c.s.userAgent())
59035	if c.ifNoneMatch_ != "" {
59036		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
59037	}
59038	var body io.Reader = nil
59039	c.urlParams_.Set("alt", alt)
59040	c.urlParams_.Set("prettyPrint", "false")
59041	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/externalVpnGateways/{externalVpnGateway}")
59042	urls += "?" + c.urlParams_.Encode()
59043	req, err := http.NewRequest("GET", urls, body)
59044	if err != nil {
59045		return nil, err
59046	}
59047	req.Header = reqHeaders
59048	googleapi.Expand(req.URL, map[string]string{
59049		"project":            c.project,
59050		"externalVpnGateway": c.externalVpnGateway,
59051	})
59052	return gensupport.SendRequest(c.ctx_, c.s.client, req)
59053}
59054
59055// Do executes the "compute.externalVpnGateways.get" call.
59056// Exactly one of *ExternalVpnGateway or error will be non-nil. Any
59057// non-2xx status code is an error. Response headers are in either
59058// *ExternalVpnGateway.ServerResponse.Header or (if a response was
59059// returned at all) in error.(*googleapi.Error).Header. Use
59060// googleapi.IsNotModified to check whether the returned error was
59061// because http.StatusNotModified was returned.
59062func (c *ExternalVpnGatewaysGetCall) Do(opts ...googleapi.CallOption) (*ExternalVpnGateway, error) {
59063	gensupport.SetOptions(c.urlParams_, opts...)
59064	res, err := c.doRequest("json")
59065	if res != nil && res.StatusCode == http.StatusNotModified {
59066		if res.Body != nil {
59067			res.Body.Close()
59068		}
59069		return nil, &googleapi.Error{
59070			Code:   res.StatusCode,
59071			Header: res.Header,
59072		}
59073	}
59074	if err != nil {
59075		return nil, err
59076	}
59077	defer googleapi.CloseBody(res)
59078	if err := googleapi.CheckResponse(res); err != nil {
59079		return nil, err
59080	}
59081	ret := &ExternalVpnGateway{
59082		ServerResponse: googleapi.ServerResponse{
59083			Header:         res.Header,
59084			HTTPStatusCode: res.StatusCode,
59085		},
59086	}
59087	target := &ret
59088	if err := gensupport.DecodeResponse(target, res); err != nil {
59089		return nil, err
59090	}
59091	return ret, nil
59092	// {
59093	//   "description": "Returns the specified externalVpnGateway. Get a list of available externalVpnGateways by making a list() request. (== suppress_warning http-rest-shadowed ==)",
59094	//   "httpMethod": "GET",
59095	//   "id": "compute.externalVpnGateways.get",
59096	//   "parameterOrder": [
59097	//     "project",
59098	//     "externalVpnGateway"
59099	//   ],
59100	//   "parameters": {
59101	//     "externalVpnGateway": {
59102	//       "description": "Name of the externalVpnGateway to return.",
59103	//       "location": "path",
59104	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
59105	//       "required": true,
59106	//       "type": "string"
59107	//     },
59108	//     "project": {
59109	//       "description": "Project ID for this request.",
59110	//       "location": "path",
59111	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
59112	//       "required": true,
59113	//       "type": "string"
59114	//     }
59115	//   },
59116	//   "path": "{project}/global/externalVpnGateways/{externalVpnGateway}",
59117	//   "response": {
59118	//     "$ref": "ExternalVpnGateway"
59119	//   },
59120	//   "scopes": [
59121	//     "https://www.googleapis.com/auth/cloud-platform",
59122	//     "https://www.googleapis.com/auth/compute",
59123	//     "https://www.googleapis.com/auth/compute.readonly"
59124	//   ]
59125	// }
59126
59127}
59128
59129// method id "compute.externalVpnGateways.insert":
59130
59131type ExternalVpnGatewaysInsertCall struct {
59132	s                  *Service
59133	project            string
59134	externalvpngateway *ExternalVpnGateway
59135	urlParams_         gensupport.URLParams
59136	ctx_               context.Context
59137	header_            http.Header
59138}
59139
59140// Insert: Creates a ExternalVpnGateway in the specified project using
59141// the data included in the request. (== suppress_warning
59142// http-rest-shadowed ==)
59143func (r *ExternalVpnGatewaysService) Insert(project string, externalvpngateway *ExternalVpnGateway) *ExternalVpnGatewaysInsertCall {
59144	c := &ExternalVpnGatewaysInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
59145	c.project = project
59146	c.externalvpngateway = externalvpngateway
59147	return c
59148}
59149
59150// RequestId sets the optional parameter "requestId": An optional
59151// request ID to identify requests. Specify a unique request ID so that
59152// if you must retry your request, the server will know to ignore the
59153// request if it has already been completed.
59154//
59155// For example, consider a situation where you make an initial request
59156// and the request times out. If you make the request again with the
59157// same request ID, the server can check if original operation with the
59158// same request ID was received, and if so, will ignore the second
59159// request. This prevents clients from accidentally creating duplicate
59160// commitments.
59161//
59162// The request ID must be a valid UUID with the exception that zero UUID
59163// is not supported (00000000-0000-0000-0000-000000000000).
59164func (c *ExternalVpnGatewaysInsertCall) RequestId(requestId string) *ExternalVpnGatewaysInsertCall {
59165	c.urlParams_.Set("requestId", requestId)
59166	return c
59167}
59168
59169// Fields allows partial responses to be retrieved. See
59170// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
59171// for more information.
59172func (c *ExternalVpnGatewaysInsertCall) Fields(s ...googleapi.Field) *ExternalVpnGatewaysInsertCall {
59173	c.urlParams_.Set("fields", googleapi.CombineFields(s))
59174	return c
59175}
59176
59177// Context sets the context to be used in this call's Do method. Any
59178// pending HTTP request will be aborted if the provided context is
59179// canceled.
59180func (c *ExternalVpnGatewaysInsertCall) Context(ctx context.Context) *ExternalVpnGatewaysInsertCall {
59181	c.ctx_ = ctx
59182	return c
59183}
59184
59185// Header returns an http.Header that can be modified by the caller to
59186// add HTTP headers to the request.
59187func (c *ExternalVpnGatewaysInsertCall) Header() http.Header {
59188	if c.header_ == nil {
59189		c.header_ = make(http.Header)
59190	}
59191	return c.header_
59192}
59193
59194func (c *ExternalVpnGatewaysInsertCall) doRequest(alt string) (*http.Response, error) {
59195	reqHeaders := make(http.Header)
59196	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
59197	for k, v := range c.header_ {
59198		reqHeaders[k] = v
59199	}
59200	reqHeaders.Set("User-Agent", c.s.userAgent())
59201	var body io.Reader = nil
59202	body, err := googleapi.WithoutDataWrapper.JSONReader(c.externalvpngateway)
59203	if err != nil {
59204		return nil, err
59205	}
59206	reqHeaders.Set("Content-Type", "application/json")
59207	c.urlParams_.Set("alt", alt)
59208	c.urlParams_.Set("prettyPrint", "false")
59209	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/externalVpnGateways")
59210	urls += "?" + c.urlParams_.Encode()
59211	req, err := http.NewRequest("POST", urls, body)
59212	if err != nil {
59213		return nil, err
59214	}
59215	req.Header = reqHeaders
59216	googleapi.Expand(req.URL, map[string]string{
59217		"project": c.project,
59218	})
59219	return gensupport.SendRequest(c.ctx_, c.s.client, req)
59220}
59221
59222// Do executes the "compute.externalVpnGateways.insert" call.
59223// Exactly one of *Operation or error will be non-nil. Any non-2xx
59224// status code is an error. Response headers are in either
59225// *Operation.ServerResponse.Header or (if a response was returned at
59226// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
59227// to check whether the returned error was because
59228// http.StatusNotModified was returned.
59229func (c *ExternalVpnGatewaysInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
59230	gensupport.SetOptions(c.urlParams_, opts...)
59231	res, err := c.doRequest("json")
59232	if res != nil && res.StatusCode == http.StatusNotModified {
59233		if res.Body != nil {
59234			res.Body.Close()
59235		}
59236		return nil, &googleapi.Error{
59237			Code:   res.StatusCode,
59238			Header: res.Header,
59239		}
59240	}
59241	if err != nil {
59242		return nil, err
59243	}
59244	defer googleapi.CloseBody(res)
59245	if err := googleapi.CheckResponse(res); err != nil {
59246		return nil, err
59247	}
59248	ret := &Operation{
59249		ServerResponse: googleapi.ServerResponse{
59250			Header:         res.Header,
59251			HTTPStatusCode: res.StatusCode,
59252		},
59253	}
59254	target := &ret
59255	if err := gensupport.DecodeResponse(target, res); err != nil {
59256		return nil, err
59257	}
59258	return ret, nil
59259	// {
59260	//   "description": "Creates a ExternalVpnGateway in the specified project using the data included in the request. (== suppress_warning http-rest-shadowed ==)",
59261	//   "httpMethod": "POST",
59262	//   "id": "compute.externalVpnGateways.insert",
59263	//   "parameterOrder": [
59264	//     "project"
59265	//   ],
59266	//   "parameters": {
59267	//     "project": {
59268	//       "description": "Project ID for this request.",
59269	//       "location": "path",
59270	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
59271	//       "required": true,
59272	//       "type": "string"
59273	//     },
59274	//     "requestId": {
59275	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
59276	//       "location": "query",
59277	//       "type": "string"
59278	//     }
59279	//   },
59280	//   "path": "{project}/global/externalVpnGateways",
59281	//   "request": {
59282	//     "$ref": "ExternalVpnGateway"
59283	//   },
59284	//   "response": {
59285	//     "$ref": "Operation"
59286	//   },
59287	//   "scopes": [
59288	//     "https://www.googleapis.com/auth/cloud-platform",
59289	//     "https://www.googleapis.com/auth/compute"
59290	//   ]
59291	// }
59292
59293}
59294
59295// method id "compute.externalVpnGateways.list":
59296
59297type ExternalVpnGatewaysListCall struct {
59298	s            *Service
59299	project      string
59300	urlParams_   gensupport.URLParams
59301	ifNoneMatch_ string
59302	ctx_         context.Context
59303	header_      http.Header
59304}
59305
59306// List: Retrieves the list of ExternalVpnGateway available to the
59307// specified project. (== suppress_warning http-rest-shadowed ==)
59308func (r *ExternalVpnGatewaysService) List(project string) *ExternalVpnGatewaysListCall {
59309	c := &ExternalVpnGatewaysListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
59310	c.project = project
59311	return c
59312}
59313
59314// Filter sets the optional parameter "filter": A filter expression that
59315// filters resources listed in the response. The expression must specify
59316// the field name, a comparison operator, and the value that you want to
59317// use for filtering. The value must be a string, a number, or a
59318// boolean. The comparison operator must be either =, !=, >, or <.
59319//
59320// For example, if you are filtering Compute Engine instances, you can
59321// exclude instances named example-instance by specifying name !=
59322// example-instance.
59323//
59324// You can also filter nested fields. For example, you could specify
59325// scheduling.automaticRestart = false to include instances only if they
59326// are not scheduled for automatic restarts. You can use filtering on
59327// nested fields to filter based on resource labels.
59328//
59329// To filter on multiple expressions, provide each separate expression
59330// within parentheses. For example, (scheduling.automaticRestart = true)
59331// (cpuPlatform = "Intel Skylake"). By default, each expression is an
59332// AND expression. However, you can include AND and OR expressions
59333// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
59334// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
59335// true).
59336func (c *ExternalVpnGatewaysListCall) Filter(filter string) *ExternalVpnGatewaysListCall {
59337	c.urlParams_.Set("filter", filter)
59338	return c
59339}
59340
59341// MaxResults sets the optional parameter "maxResults": The maximum
59342// number of results per page that should be returned. If the number of
59343// available results is larger than maxResults, Compute Engine returns a
59344// nextPageToken that can be used to get the next page of results in
59345// subsequent list requests. Acceptable values are 0 to 500, inclusive.
59346// (Default: 500)
59347func (c *ExternalVpnGatewaysListCall) MaxResults(maxResults int64) *ExternalVpnGatewaysListCall {
59348	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
59349	return c
59350}
59351
59352// OrderBy sets the optional parameter "orderBy": Sorts list results by
59353// a certain order. By default, results are returned in alphanumerical
59354// order based on the resource name.
59355//
59356// You can also sort results in descending order based on the creation
59357// timestamp using orderBy="creationTimestamp desc". This sorts results
59358// based on the creationTimestamp field in reverse chronological order
59359// (newest result first). Use this to sort resources like operations so
59360// that the newest operation is returned first.
59361//
59362// Currently, only sorting by name or creationTimestamp desc is
59363// supported.
59364func (c *ExternalVpnGatewaysListCall) OrderBy(orderBy string) *ExternalVpnGatewaysListCall {
59365	c.urlParams_.Set("orderBy", orderBy)
59366	return c
59367}
59368
59369// PageToken sets the optional parameter "pageToken": Specifies a page
59370// token to use. Set pageToken to the nextPageToken returned by a
59371// previous list request to get the next page of results.
59372func (c *ExternalVpnGatewaysListCall) PageToken(pageToken string) *ExternalVpnGatewaysListCall {
59373	c.urlParams_.Set("pageToken", pageToken)
59374	return c
59375}
59376
59377// Fields allows partial responses to be retrieved. See
59378// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
59379// for more information.
59380func (c *ExternalVpnGatewaysListCall) Fields(s ...googleapi.Field) *ExternalVpnGatewaysListCall {
59381	c.urlParams_.Set("fields", googleapi.CombineFields(s))
59382	return c
59383}
59384
59385// IfNoneMatch sets the optional parameter which makes the operation
59386// fail if the object's ETag matches the given value. This is useful for
59387// getting updates only after the object has changed since the last
59388// request. Use googleapi.IsNotModified to check whether the response
59389// error from Do is the result of In-None-Match.
59390func (c *ExternalVpnGatewaysListCall) IfNoneMatch(entityTag string) *ExternalVpnGatewaysListCall {
59391	c.ifNoneMatch_ = entityTag
59392	return c
59393}
59394
59395// Context sets the context to be used in this call's Do method. Any
59396// pending HTTP request will be aborted if the provided context is
59397// canceled.
59398func (c *ExternalVpnGatewaysListCall) Context(ctx context.Context) *ExternalVpnGatewaysListCall {
59399	c.ctx_ = ctx
59400	return c
59401}
59402
59403// Header returns an http.Header that can be modified by the caller to
59404// add HTTP headers to the request.
59405func (c *ExternalVpnGatewaysListCall) Header() http.Header {
59406	if c.header_ == nil {
59407		c.header_ = make(http.Header)
59408	}
59409	return c.header_
59410}
59411
59412func (c *ExternalVpnGatewaysListCall) doRequest(alt string) (*http.Response, error) {
59413	reqHeaders := make(http.Header)
59414	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
59415	for k, v := range c.header_ {
59416		reqHeaders[k] = v
59417	}
59418	reqHeaders.Set("User-Agent", c.s.userAgent())
59419	if c.ifNoneMatch_ != "" {
59420		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
59421	}
59422	var body io.Reader = nil
59423	c.urlParams_.Set("alt", alt)
59424	c.urlParams_.Set("prettyPrint", "false")
59425	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/externalVpnGateways")
59426	urls += "?" + c.urlParams_.Encode()
59427	req, err := http.NewRequest("GET", urls, body)
59428	if err != nil {
59429		return nil, err
59430	}
59431	req.Header = reqHeaders
59432	googleapi.Expand(req.URL, map[string]string{
59433		"project": c.project,
59434	})
59435	return gensupport.SendRequest(c.ctx_, c.s.client, req)
59436}
59437
59438// Do executes the "compute.externalVpnGateways.list" call.
59439// Exactly one of *ExternalVpnGatewayList or error will be non-nil. Any
59440// non-2xx status code is an error. Response headers are in either
59441// *ExternalVpnGatewayList.ServerResponse.Header or (if a response was
59442// returned at all) in error.(*googleapi.Error).Header. Use
59443// googleapi.IsNotModified to check whether the returned error was
59444// because http.StatusNotModified was returned.
59445func (c *ExternalVpnGatewaysListCall) Do(opts ...googleapi.CallOption) (*ExternalVpnGatewayList, error) {
59446	gensupport.SetOptions(c.urlParams_, opts...)
59447	res, err := c.doRequest("json")
59448	if res != nil && res.StatusCode == http.StatusNotModified {
59449		if res.Body != nil {
59450			res.Body.Close()
59451		}
59452		return nil, &googleapi.Error{
59453			Code:   res.StatusCode,
59454			Header: res.Header,
59455		}
59456	}
59457	if err != nil {
59458		return nil, err
59459	}
59460	defer googleapi.CloseBody(res)
59461	if err := googleapi.CheckResponse(res); err != nil {
59462		return nil, err
59463	}
59464	ret := &ExternalVpnGatewayList{
59465		ServerResponse: googleapi.ServerResponse{
59466			Header:         res.Header,
59467			HTTPStatusCode: res.StatusCode,
59468		},
59469	}
59470	target := &ret
59471	if err := gensupport.DecodeResponse(target, res); err != nil {
59472		return nil, err
59473	}
59474	return ret, nil
59475	// {
59476	//   "description": "Retrieves the list of ExternalVpnGateway available to the specified project. (== suppress_warning http-rest-shadowed ==)",
59477	//   "httpMethod": "GET",
59478	//   "id": "compute.externalVpnGateways.list",
59479	//   "parameterOrder": [
59480	//     "project"
59481	//   ],
59482	//   "parameters": {
59483	//     "filter": {
59484	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
59485	//       "location": "query",
59486	//       "type": "string"
59487	//     },
59488	//     "maxResults": {
59489	//       "default": "500",
59490	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
59491	//       "format": "uint32",
59492	//       "location": "query",
59493	//       "minimum": "0",
59494	//       "type": "integer"
59495	//     },
59496	//     "orderBy": {
59497	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
59498	//       "location": "query",
59499	//       "type": "string"
59500	//     },
59501	//     "pageToken": {
59502	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
59503	//       "location": "query",
59504	//       "type": "string"
59505	//     },
59506	//     "project": {
59507	//       "description": "Project ID for this request.",
59508	//       "location": "path",
59509	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
59510	//       "required": true,
59511	//       "type": "string"
59512	//     }
59513	//   },
59514	//   "path": "{project}/global/externalVpnGateways",
59515	//   "response": {
59516	//     "$ref": "ExternalVpnGatewayList"
59517	//   },
59518	//   "scopes": [
59519	//     "https://www.googleapis.com/auth/cloud-platform",
59520	//     "https://www.googleapis.com/auth/compute",
59521	//     "https://www.googleapis.com/auth/compute.readonly"
59522	//   ]
59523	// }
59524
59525}
59526
59527// Pages invokes f for each page of results.
59528// A non-nil error returned from f will halt the iteration.
59529// The provided context supersedes any context provided to the Context method.
59530func (c *ExternalVpnGatewaysListCall) Pages(ctx context.Context, f func(*ExternalVpnGatewayList) error) error {
59531	c.ctx_ = ctx
59532	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
59533	for {
59534		x, err := c.Do()
59535		if err != nil {
59536			return err
59537		}
59538		if err := f(x); err != nil {
59539			return err
59540		}
59541		if x.NextPageToken == "" {
59542			return nil
59543		}
59544		c.PageToken(x.NextPageToken)
59545	}
59546}
59547
59548// method id "compute.externalVpnGateways.setLabels":
59549
59550type ExternalVpnGatewaysSetLabelsCall struct {
59551	s                      *Service
59552	project                string
59553	resource               string
59554	globalsetlabelsrequest *GlobalSetLabelsRequest
59555	urlParams_             gensupport.URLParams
59556	ctx_                   context.Context
59557	header_                http.Header
59558}
59559
59560// SetLabels: Sets the labels on an ExternalVpnGateway. To learn more
59561// about labels, read the Labeling Resources documentation. (==
59562// suppress_warning http-rest-shadowed ==)
59563func (r *ExternalVpnGatewaysService) SetLabels(project string, resource string, globalsetlabelsrequest *GlobalSetLabelsRequest) *ExternalVpnGatewaysSetLabelsCall {
59564	c := &ExternalVpnGatewaysSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
59565	c.project = project
59566	c.resource = resource
59567	c.globalsetlabelsrequest = globalsetlabelsrequest
59568	return c
59569}
59570
59571// Fields allows partial responses to be retrieved. See
59572// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
59573// for more information.
59574func (c *ExternalVpnGatewaysSetLabelsCall) Fields(s ...googleapi.Field) *ExternalVpnGatewaysSetLabelsCall {
59575	c.urlParams_.Set("fields", googleapi.CombineFields(s))
59576	return c
59577}
59578
59579// Context sets the context to be used in this call's Do method. Any
59580// pending HTTP request will be aborted if the provided context is
59581// canceled.
59582func (c *ExternalVpnGatewaysSetLabelsCall) Context(ctx context.Context) *ExternalVpnGatewaysSetLabelsCall {
59583	c.ctx_ = ctx
59584	return c
59585}
59586
59587// Header returns an http.Header that can be modified by the caller to
59588// add HTTP headers to the request.
59589func (c *ExternalVpnGatewaysSetLabelsCall) Header() http.Header {
59590	if c.header_ == nil {
59591		c.header_ = make(http.Header)
59592	}
59593	return c.header_
59594}
59595
59596func (c *ExternalVpnGatewaysSetLabelsCall) doRequest(alt string) (*http.Response, error) {
59597	reqHeaders := make(http.Header)
59598	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
59599	for k, v := range c.header_ {
59600		reqHeaders[k] = v
59601	}
59602	reqHeaders.Set("User-Agent", c.s.userAgent())
59603	var body io.Reader = nil
59604	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetlabelsrequest)
59605	if err != nil {
59606		return nil, err
59607	}
59608	reqHeaders.Set("Content-Type", "application/json")
59609	c.urlParams_.Set("alt", alt)
59610	c.urlParams_.Set("prettyPrint", "false")
59611	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/externalVpnGateways/{resource}/setLabels")
59612	urls += "?" + c.urlParams_.Encode()
59613	req, err := http.NewRequest("POST", urls, body)
59614	if err != nil {
59615		return nil, err
59616	}
59617	req.Header = reqHeaders
59618	googleapi.Expand(req.URL, map[string]string{
59619		"project":  c.project,
59620		"resource": c.resource,
59621	})
59622	return gensupport.SendRequest(c.ctx_, c.s.client, req)
59623}
59624
59625// Do executes the "compute.externalVpnGateways.setLabels" call.
59626// Exactly one of *Operation or error will be non-nil. Any non-2xx
59627// status code is an error. Response headers are in either
59628// *Operation.ServerResponse.Header or (if a response was returned at
59629// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
59630// to check whether the returned error was because
59631// http.StatusNotModified was returned.
59632func (c *ExternalVpnGatewaysSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
59633	gensupport.SetOptions(c.urlParams_, opts...)
59634	res, err := c.doRequest("json")
59635	if res != nil && res.StatusCode == http.StatusNotModified {
59636		if res.Body != nil {
59637			res.Body.Close()
59638		}
59639		return nil, &googleapi.Error{
59640			Code:   res.StatusCode,
59641			Header: res.Header,
59642		}
59643	}
59644	if err != nil {
59645		return nil, err
59646	}
59647	defer googleapi.CloseBody(res)
59648	if err := googleapi.CheckResponse(res); err != nil {
59649		return nil, err
59650	}
59651	ret := &Operation{
59652		ServerResponse: googleapi.ServerResponse{
59653			Header:         res.Header,
59654			HTTPStatusCode: res.StatusCode,
59655		},
59656	}
59657	target := &ret
59658	if err := gensupport.DecodeResponse(target, res); err != nil {
59659		return nil, err
59660	}
59661	return ret, nil
59662	// {
59663	//   "description": "Sets the labels on an ExternalVpnGateway. To learn more about labels, read the Labeling Resources documentation. (== suppress_warning http-rest-shadowed ==)",
59664	//   "httpMethod": "POST",
59665	//   "id": "compute.externalVpnGateways.setLabels",
59666	//   "parameterOrder": [
59667	//     "project",
59668	//     "resource"
59669	//   ],
59670	//   "parameters": {
59671	//     "project": {
59672	//       "description": "Project ID for this request.",
59673	//       "location": "path",
59674	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
59675	//       "required": true,
59676	//       "type": "string"
59677	//     },
59678	//     "resource": {
59679	//       "description": "Name or id of the resource for this request.",
59680	//       "location": "path",
59681	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
59682	//       "required": true,
59683	//       "type": "string"
59684	//     }
59685	//   },
59686	//   "path": "{project}/global/externalVpnGateways/{resource}/setLabels",
59687	//   "request": {
59688	//     "$ref": "GlobalSetLabelsRequest"
59689	//   },
59690	//   "response": {
59691	//     "$ref": "Operation"
59692	//   },
59693	//   "scopes": [
59694	//     "https://www.googleapis.com/auth/cloud-platform",
59695	//     "https://www.googleapis.com/auth/compute"
59696	//   ]
59697	// }
59698
59699}
59700
59701// method id "compute.externalVpnGateways.testIamPermissions":
59702
59703type ExternalVpnGatewaysTestIamPermissionsCall struct {
59704	s                      *Service
59705	project                string
59706	resource               string
59707	testpermissionsrequest *TestPermissionsRequest
59708	urlParams_             gensupport.URLParams
59709	ctx_                   context.Context
59710	header_                http.Header
59711}
59712
59713// TestIamPermissions: Returns permissions that a caller has on the
59714// specified resource. (== suppress_warning http-rest-shadowed ==)
59715func (r *ExternalVpnGatewaysService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *ExternalVpnGatewaysTestIamPermissionsCall {
59716	c := &ExternalVpnGatewaysTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
59717	c.project = project
59718	c.resource = resource
59719	c.testpermissionsrequest = testpermissionsrequest
59720	return c
59721}
59722
59723// Fields allows partial responses to be retrieved. See
59724// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
59725// for more information.
59726func (c *ExternalVpnGatewaysTestIamPermissionsCall) Fields(s ...googleapi.Field) *ExternalVpnGatewaysTestIamPermissionsCall {
59727	c.urlParams_.Set("fields", googleapi.CombineFields(s))
59728	return c
59729}
59730
59731// Context sets the context to be used in this call's Do method. Any
59732// pending HTTP request will be aborted if the provided context is
59733// canceled.
59734func (c *ExternalVpnGatewaysTestIamPermissionsCall) Context(ctx context.Context) *ExternalVpnGatewaysTestIamPermissionsCall {
59735	c.ctx_ = ctx
59736	return c
59737}
59738
59739// Header returns an http.Header that can be modified by the caller to
59740// add HTTP headers to the request.
59741func (c *ExternalVpnGatewaysTestIamPermissionsCall) Header() http.Header {
59742	if c.header_ == nil {
59743		c.header_ = make(http.Header)
59744	}
59745	return c.header_
59746}
59747
59748func (c *ExternalVpnGatewaysTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
59749	reqHeaders := make(http.Header)
59750	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
59751	for k, v := range c.header_ {
59752		reqHeaders[k] = v
59753	}
59754	reqHeaders.Set("User-Agent", c.s.userAgent())
59755	var body io.Reader = nil
59756	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
59757	if err != nil {
59758		return nil, err
59759	}
59760	reqHeaders.Set("Content-Type", "application/json")
59761	c.urlParams_.Set("alt", alt)
59762	c.urlParams_.Set("prettyPrint", "false")
59763	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/externalVpnGateways/{resource}/testIamPermissions")
59764	urls += "?" + c.urlParams_.Encode()
59765	req, err := http.NewRequest("POST", urls, body)
59766	if err != nil {
59767		return nil, err
59768	}
59769	req.Header = reqHeaders
59770	googleapi.Expand(req.URL, map[string]string{
59771		"project":  c.project,
59772		"resource": c.resource,
59773	})
59774	return gensupport.SendRequest(c.ctx_, c.s.client, req)
59775}
59776
59777// Do executes the "compute.externalVpnGateways.testIamPermissions" call.
59778// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
59779// non-2xx status code is an error. Response headers are in either
59780// *TestPermissionsResponse.ServerResponse.Header or (if a response was
59781// returned at all) in error.(*googleapi.Error).Header. Use
59782// googleapi.IsNotModified to check whether the returned error was
59783// because http.StatusNotModified was returned.
59784func (c *ExternalVpnGatewaysTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
59785	gensupport.SetOptions(c.urlParams_, opts...)
59786	res, err := c.doRequest("json")
59787	if res != nil && res.StatusCode == http.StatusNotModified {
59788		if res.Body != nil {
59789			res.Body.Close()
59790		}
59791		return nil, &googleapi.Error{
59792			Code:   res.StatusCode,
59793			Header: res.Header,
59794		}
59795	}
59796	if err != nil {
59797		return nil, err
59798	}
59799	defer googleapi.CloseBody(res)
59800	if err := googleapi.CheckResponse(res); err != nil {
59801		return nil, err
59802	}
59803	ret := &TestPermissionsResponse{
59804		ServerResponse: googleapi.ServerResponse{
59805			Header:         res.Header,
59806			HTTPStatusCode: res.StatusCode,
59807		},
59808	}
59809	target := &ret
59810	if err := gensupport.DecodeResponse(target, res); err != nil {
59811		return nil, err
59812	}
59813	return ret, nil
59814	// {
59815	//   "description": "Returns permissions that a caller has on the specified resource. (== suppress_warning http-rest-shadowed ==)",
59816	//   "httpMethod": "POST",
59817	//   "id": "compute.externalVpnGateways.testIamPermissions",
59818	//   "parameterOrder": [
59819	//     "project",
59820	//     "resource"
59821	//   ],
59822	//   "parameters": {
59823	//     "project": {
59824	//       "description": "Project ID for this request.",
59825	//       "location": "path",
59826	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
59827	//       "required": true,
59828	//       "type": "string"
59829	//     },
59830	//     "resource": {
59831	//       "description": "Name or id of the resource for this request.",
59832	//       "location": "path",
59833	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
59834	//       "required": true,
59835	//       "type": "string"
59836	//     }
59837	//   },
59838	//   "path": "{project}/global/externalVpnGateways/{resource}/testIamPermissions",
59839	//   "request": {
59840	//     "$ref": "TestPermissionsRequest"
59841	//   },
59842	//   "response": {
59843	//     "$ref": "TestPermissionsResponse"
59844	//   },
59845	//   "scopes": [
59846	//     "https://www.googleapis.com/auth/cloud-platform",
59847	//     "https://www.googleapis.com/auth/compute",
59848	//     "https://www.googleapis.com/auth/compute.readonly"
59849	//   ]
59850	// }
59851
59852}
59853
59854// method id "compute.firewalls.delete":
59855
59856type FirewallsDeleteCall struct {
59857	s          *Service
59858	project    string
59859	firewall   string
59860	urlParams_ gensupport.URLParams
59861	ctx_       context.Context
59862	header_    http.Header
59863}
59864
59865// Delete: Deletes the specified firewall. (== suppress_warning
59866// http-rest-shadowed ==)
59867// For details, see https://cloud.google.com/compute/docs/reference/latest/firewalls/delete
59868func (r *FirewallsService) Delete(project string, firewall string) *FirewallsDeleteCall {
59869	c := &FirewallsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
59870	c.project = project
59871	c.firewall = firewall
59872	return c
59873}
59874
59875// RequestId sets the optional parameter "requestId": An optional
59876// request ID to identify requests. Specify a unique request ID so that
59877// if you must retry your request, the server will know to ignore the
59878// request if it has already been completed.
59879//
59880// For example, consider a situation where you make an initial request
59881// and the request times out. If you make the request again with the
59882// same request ID, the server can check if original operation with the
59883// same request ID was received, and if so, will ignore the second
59884// request. This prevents clients from accidentally creating duplicate
59885// commitments.
59886//
59887// The request ID must be a valid UUID with the exception that zero UUID
59888// is not supported (00000000-0000-0000-0000-000000000000).
59889func (c *FirewallsDeleteCall) RequestId(requestId string) *FirewallsDeleteCall {
59890	c.urlParams_.Set("requestId", requestId)
59891	return c
59892}
59893
59894// Fields allows partial responses to be retrieved. See
59895// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
59896// for more information.
59897func (c *FirewallsDeleteCall) Fields(s ...googleapi.Field) *FirewallsDeleteCall {
59898	c.urlParams_.Set("fields", googleapi.CombineFields(s))
59899	return c
59900}
59901
59902// Context sets the context to be used in this call's Do method. Any
59903// pending HTTP request will be aborted if the provided context is
59904// canceled.
59905func (c *FirewallsDeleteCall) Context(ctx context.Context) *FirewallsDeleteCall {
59906	c.ctx_ = ctx
59907	return c
59908}
59909
59910// Header returns an http.Header that can be modified by the caller to
59911// add HTTP headers to the request.
59912func (c *FirewallsDeleteCall) Header() http.Header {
59913	if c.header_ == nil {
59914		c.header_ = make(http.Header)
59915	}
59916	return c.header_
59917}
59918
59919func (c *FirewallsDeleteCall) doRequest(alt string) (*http.Response, error) {
59920	reqHeaders := make(http.Header)
59921	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
59922	for k, v := range c.header_ {
59923		reqHeaders[k] = v
59924	}
59925	reqHeaders.Set("User-Agent", c.s.userAgent())
59926	var body io.Reader = nil
59927	c.urlParams_.Set("alt", alt)
59928	c.urlParams_.Set("prettyPrint", "false")
59929	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/firewalls/{firewall}")
59930	urls += "?" + c.urlParams_.Encode()
59931	req, err := http.NewRequest("DELETE", urls, body)
59932	if err != nil {
59933		return nil, err
59934	}
59935	req.Header = reqHeaders
59936	googleapi.Expand(req.URL, map[string]string{
59937		"project":  c.project,
59938		"firewall": c.firewall,
59939	})
59940	return gensupport.SendRequest(c.ctx_, c.s.client, req)
59941}
59942
59943// Do executes the "compute.firewalls.delete" call.
59944// Exactly one of *Operation or error will be non-nil. Any non-2xx
59945// status code is an error. Response headers are in either
59946// *Operation.ServerResponse.Header or (if a response was returned at
59947// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
59948// to check whether the returned error was because
59949// http.StatusNotModified was returned.
59950func (c *FirewallsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
59951	gensupport.SetOptions(c.urlParams_, opts...)
59952	res, err := c.doRequest("json")
59953	if res != nil && res.StatusCode == http.StatusNotModified {
59954		if res.Body != nil {
59955			res.Body.Close()
59956		}
59957		return nil, &googleapi.Error{
59958			Code:   res.StatusCode,
59959			Header: res.Header,
59960		}
59961	}
59962	if err != nil {
59963		return nil, err
59964	}
59965	defer googleapi.CloseBody(res)
59966	if err := googleapi.CheckResponse(res); err != nil {
59967		return nil, err
59968	}
59969	ret := &Operation{
59970		ServerResponse: googleapi.ServerResponse{
59971			Header:         res.Header,
59972			HTTPStatusCode: res.StatusCode,
59973		},
59974	}
59975	target := &ret
59976	if err := gensupport.DecodeResponse(target, res); err != nil {
59977		return nil, err
59978	}
59979	return ret, nil
59980	// {
59981	//   "description": "Deletes the specified firewall. (== suppress_warning http-rest-shadowed ==)",
59982	//   "httpMethod": "DELETE",
59983	//   "id": "compute.firewalls.delete",
59984	//   "parameterOrder": [
59985	//     "project",
59986	//     "firewall"
59987	//   ],
59988	//   "parameters": {
59989	//     "firewall": {
59990	//       "description": "Name of the firewall rule to delete.",
59991	//       "location": "path",
59992	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
59993	//       "required": true,
59994	//       "type": "string"
59995	//     },
59996	//     "project": {
59997	//       "description": "Project ID for this request.",
59998	//       "location": "path",
59999	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
60000	//       "required": true,
60001	//       "type": "string"
60002	//     },
60003	//     "requestId": {
60004	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
60005	//       "location": "query",
60006	//       "type": "string"
60007	//     }
60008	//   },
60009	//   "path": "{project}/global/firewalls/{firewall}",
60010	//   "response": {
60011	//     "$ref": "Operation"
60012	//   },
60013	//   "scopes": [
60014	//     "https://www.googleapis.com/auth/cloud-platform",
60015	//     "https://www.googleapis.com/auth/compute"
60016	//   ]
60017	// }
60018
60019}
60020
60021// method id "compute.firewalls.get":
60022
60023type FirewallsGetCall struct {
60024	s            *Service
60025	project      string
60026	firewall     string
60027	urlParams_   gensupport.URLParams
60028	ifNoneMatch_ string
60029	ctx_         context.Context
60030	header_      http.Header
60031}
60032
60033// Get: Returns the specified firewall. (== suppress_warning
60034// http-rest-shadowed ==)
60035// For details, see https://cloud.google.com/compute/docs/reference/latest/firewalls/get
60036func (r *FirewallsService) Get(project string, firewall string) *FirewallsGetCall {
60037	c := &FirewallsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
60038	c.project = project
60039	c.firewall = firewall
60040	return c
60041}
60042
60043// Fields allows partial responses to be retrieved. See
60044// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
60045// for more information.
60046func (c *FirewallsGetCall) Fields(s ...googleapi.Field) *FirewallsGetCall {
60047	c.urlParams_.Set("fields", googleapi.CombineFields(s))
60048	return c
60049}
60050
60051// IfNoneMatch sets the optional parameter which makes the operation
60052// fail if the object's ETag matches the given value. This is useful for
60053// getting updates only after the object has changed since the last
60054// request. Use googleapi.IsNotModified to check whether the response
60055// error from Do is the result of In-None-Match.
60056func (c *FirewallsGetCall) IfNoneMatch(entityTag string) *FirewallsGetCall {
60057	c.ifNoneMatch_ = entityTag
60058	return c
60059}
60060
60061// Context sets the context to be used in this call's Do method. Any
60062// pending HTTP request will be aborted if the provided context is
60063// canceled.
60064func (c *FirewallsGetCall) Context(ctx context.Context) *FirewallsGetCall {
60065	c.ctx_ = ctx
60066	return c
60067}
60068
60069// Header returns an http.Header that can be modified by the caller to
60070// add HTTP headers to the request.
60071func (c *FirewallsGetCall) Header() http.Header {
60072	if c.header_ == nil {
60073		c.header_ = make(http.Header)
60074	}
60075	return c.header_
60076}
60077
60078func (c *FirewallsGetCall) doRequest(alt string) (*http.Response, error) {
60079	reqHeaders := make(http.Header)
60080	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
60081	for k, v := range c.header_ {
60082		reqHeaders[k] = v
60083	}
60084	reqHeaders.Set("User-Agent", c.s.userAgent())
60085	if c.ifNoneMatch_ != "" {
60086		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
60087	}
60088	var body io.Reader = nil
60089	c.urlParams_.Set("alt", alt)
60090	c.urlParams_.Set("prettyPrint", "false")
60091	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/firewalls/{firewall}")
60092	urls += "?" + c.urlParams_.Encode()
60093	req, err := http.NewRequest("GET", urls, body)
60094	if err != nil {
60095		return nil, err
60096	}
60097	req.Header = reqHeaders
60098	googleapi.Expand(req.URL, map[string]string{
60099		"project":  c.project,
60100		"firewall": c.firewall,
60101	})
60102	return gensupport.SendRequest(c.ctx_, c.s.client, req)
60103}
60104
60105// Do executes the "compute.firewalls.get" call.
60106// Exactly one of *Firewall or error will be non-nil. Any non-2xx status
60107// code is an error. Response headers are in either
60108// *Firewall.ServerResponse.Header or (if a response was returned at
60109// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
60110// to check whether the returned error was because
60111// http.StatusNotModified was returned.
60112func (c *FirewallsGetCall) Do(opts ...googleapi.CallOption) (*Firewall, error) {
60113	gensupport.SetOptions(c.urlParams_, opts...)
60114	res, err := c.doRequest("json")
60115	if res != nil && res.StatusCode == http.StatusNotModified {
60116		if res.Body != nil {
60117			res.Body.Close()
60118		}
60119		return nil, &googleapi.Error{
60120			Code:   res.StatusCode,
60121			Header: res.Header,
60122		}
60123	}
60124	if err != nil {
60125		return nil, err
60126	}
60127	defer googleapi.CloseBody(res)
60128	if err := googleapi.CheckResponse(res); err != nil {
60129		return nil, err
60130	}
60131	ret := &Firewall{
60132		ServerResponse: googleapi.ServerResponse{
60133			Header:         res.Header,
60134			HTTPStatusCode: res.StatusCode,
60135		},
60136	}
60137	target := &ret
60138	if err := gensupport.DecodeResponse(target, res); err != nil {
60139		return nil, err
60140	}
60141	return ret, nil
60142	// {
60143	//   "description": "Returns the specified firewall. (== suppress_warning http-rest-shadowed ==)",
60144	//   "httpMethod": "GET",
60145	//   "id": "compute.firewalls.get",
60146	//   "parameterOrder": [
60147	//     "project",
60148	//     "firewall"
60149	//   ],
60150	//   "parameters": {
60151	//     "firewall": {
60152	//       "description": "Name of the firewall rule to return.",
60153	//       "location": "path",
60154	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
60155	//       "required": true,
60156	//       "type": "string"
60157	//     },
60158	//     "project": {
60159	//       "description": "Project ID for this request.",
60160	//       "location": "path",
60161	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
60162	//       "required": true,
60163	//       "type": "string"
60164	//     }
60165	//   },
60166	//   "path": "{project}/global/firewalls/{firewall}",
60167	//   "response": {
60168	//     "$ref": "Firewall"
60169	//   },
60170	//   "scopes": [
60171	//     "https://www.googleapis.com/auth/cloud-platform",
60172	//     "https://www.googleapis.com/auth/compute",
60173	//     "https://www.googleapis.com/auth/compute.readonly"
60174	//   ]
60175	// }
60176
60177}
60178
60179// method id "compute.firewalls.insert":
60180
60181type FirewallsInsertCall struct {
60182	s          *Service
60183	project    string
60184	firewall   *Firewall
60185	urlParams_ gensupport.URLParams
60186	ctx_       context.Context
60187	header_    http.Header
60188}
60189
60190// Insert: Creates a firewall rule in the specified project using the
60191// data included in the request. (== suppress_warning http-rest-shadowed
60192// ==)
60193// For details, see https://cloud.google.com/compute/docs/reference/latest/firewalls/insert
60194func (r *FirewallsService) Insert(project string, firewall *Firewall) *FirewallsInsertCall {
60195	c := &FirewallsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
60196	c.project = project
60197	c.firewall = firewall
60198	return c
60199}
60200
60201// RequestId sets the optional parameter "requestId": An optional
60202// request ID to identify requests. Specify a unique request ID so that
60203// if you must retry your request, the server will know to ignore the
60204// request if it has already been completed.
60205//
60206// For example, consider a situation where you make an initial request
60207// and the request times out. If you make the request again with the
60208// same request ID, the server can check if original operation with the
60209// same request ID was received, and if so, will ignore the second
60210// request. This prevents clients from accidentally creating duplicate
60211// commitments.
60212//
60213// The request ID must be a valid UUID with the exception that zero UUID
60214// is not supported (00000000-0000-0000-0000-000000000000).
60215func (c *FirewallsInsertCall) RequestId(requestId string) *FirewallsInsertCall {
60216	c.urlParams_.Set("requestId", requestId)
60217	return c
60218}
60219
60220// Fields allows partial responses to be retrieved. See
60221// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
60222// for more information.
60223func (c *FirewallsInsertCall) Fields(s ...googleapi.Field) *FirewallsInsertCall {
60224	c.urlParams_.Set("fields", googleapi.CombineFields(s))
60225	return c
60226}
60227
60228// Context sets the context to be used in this call's Do method. Any
60229// pending HTTP request will be aborted if the provided context is
60230// canceled.
60231func (c *FirewallsInsertCall) Context(ctx context.Context) *FirewallsInsertCall {
60232	c.ctx_ = ctx
60233	return c
60234}
60235
60236// Header returns an http.Header that can be modified by the caller to
60237// add HTTP headers to the request.
60238func (c *FirewallsInsertCall) Header() http.Header {
60239	if c.header_ == nil {
60240		c.header_ = make(http.Header)
60241	}
60242	return c.header_
60243}
60244
60245func (c *FirewallsInsertCall) doRequest(alt string) (*http.Response, error) {
60246	reqHeaders := make(http.Header)
60247	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
60248	for k, v := range c.header_ {
60249		reqHeaders[k] = v
60250	}
60251	reqHeaders.Set("User-Agent", c.s.userAgent())
60252	var body io.Reader = nil
60253	body, err := googleapi.WithoutDataWrapper.JSONReader(c.firewall)
60254	if err != nil {
60255		return nil, err
60256	}
60257	reqHeaders.Set("Content-Type", "application/json")
60258	c.urlParams_.Set("alt", alt)
60259	c.urlParams_.Set("prettyPrint", "false")
60260	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/firewalls")
60261	urls += "?" + c.urlParams_.Encode()
60262	req, err := http.NewRequest("POST", urls, body)
60263	if err != nil {
60264		return nil, err
60265	}
60266	req.Header = reqHeaders
60267	googleapi.Expand(req.URL, map[string]string{
60268		"project": c.project,
60269	})
60270	return gensupport.SendRequest(c.ctx_, c.s.client, req)
60271}
60272
60273// Do executes the "compute.firewalls.insert" call.
60274// Exactly one of *Operation or error will be non-nil. Any non-2xx
60275// status code is an error. Response headers are in either
60276// *Operation.ServerResponse.Header or (if a response was returned at
60277// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
60278// to check whether the returned error was because
60279// http.StatusNotModified was returned.
60280func (c *FirewallsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
60281	gensupport.SetOptions(c.urlParams_, opts...)
60282	res, err := c.doRequest("json")
60283	if res != nil && res.StatusCode == http.StatusNotModified {
60284		if res.Body != nil {
60285			res.Body.Close()
60286		}
60287		return nil, &googleapi.Error{
60288			Code:   res.StatusCode,
60289			Header: res.Header,
60290		}
60291	}
60292	if err != nil {
60293		return nil, err
60294	}
60295	defer googleapi.CloseBody(res)
60296	if err := googleapi.CheckResponse(res); err != nil {
60297		return nil, err
60298	}
60299	ret := &Operation{
60300		ServerResponse: googleapi.ServerResponse{
60301			Header:         res.Header,
60302			HTTPStatusCode: res.StatusCode,
60303		},
60304	}
60305	target := &ret
60306	if err := gensupport.DecodeResponse(target, res); err != nil {
60307		return nil, err
60308	}
60309	return ret, nil
60310	// {
60311	//   "description": "Creates a firewall rule in the specified project using the data included in the request. (== suppress_warning http-rest-shadowed ==)",
60312	//   "httpMethod": "POST",
60313	//   "id": "compute.firewalls.insert",
60314	//   "parameterOrder": [
60315	//     "project"
60316	//   ],
60317	//   "parameters": {
60318	//     "project": {
60319	//       "description": "Project ID for this request.",
60320	//       "location": "path",
60321	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
60322	//       "required": true,
60323	//       "type": "string"
60324	//     },
60325	//     "requestId": {
60326	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
60327	//       "location": "query",
60328	//       "type": "string"
60329	//     }
60330	//   },
60331	//   "path": "{project}/global/firewalls",
60332	//   "request": {
60333	//     "$ref": "Firewall"
60334	//   },
60335	//   "response": {
60336	//     "$ref": "Operation"
60337	//   },
60338	//   "scopes": [
60339	//     "https://www.googleapis.com/auth/cloud-platform",
60340	//     "https://www.googleapis.com/auth/compute"
60341	//   ]
60342	// }
60343
60344}
60345
60346// method id "compute.firewalls.list":
60347
60348type FirewallsListCall struct {
60349	s            *Service
60350	project      string
60351	urlParams_   gensupport.URLParams
60352	ifNoneMatch_ string
60353	ctx_         context.Context
60354	header_      http.Header
60355}
60356
60357// List: Retrieves the list of firewall rules available to the specified
60358// project. (== suppress_warning http-rest-shadowed ==)
60359// For details, see https://cloud.google.com/compute/docs/reference/latest/firewalls/list
60360func (r *FirewallsService) List(project string) *FirewallsListCall {
60361	c := &FirewallsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
60362	c.project = project
60363	return c
60364}
60365
60366// Filter sets the optional parameter "filter": A filter expression that
60367// filters resources listed in the response. The expression must specify
60368// the field name, a comparison operator, and the value that you want to
60369// use for filtering. The value must be a string, a number, or a
60370// boolean. The comparison operator must be either =, !=, >, or <.
60371//
60372// For example, if you are filtering Compute Engine instances, you can
60373// exclude instances named example-instance by specifying name !=
60374// example-instance.
60375//
60376// You can also filter nested fields. For example, you could specify
60377// scheduling.automaticRestart = false to include instances only if they
60378// are not scheduled for automatic restarts. You can use filtering on
60379// nested fields to filter based on resource labels.
60380//
60381// To filter on multiple expressions, provide each separate expression
60382// within parentheses. For example, (scheduling.automaticRestart = true)
60383// (cpuPlatform = "Intel Skylake"). By default, each expression is an
60384// AND expression. However, you can include AND and OR expressions
60385// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
60386// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
60387// true).
60388func (c *FirewallsListCall) Filter(filter string) *FirewallsListCall {
60389	c.urlParams_.Set("filter", filter)
60390	return c
60391}
60392
60393// MaxResults sets the optional parameter "maxResults": The maximum
60394// number of results per page that should be returned. If the number of
60395// available results is larger than maxResults, Compute Engine returns a
60396// nextPageToken that can be used to get the next page of results in
60397// subsequent list requests. Acceptable values are 0 to 500, inclusive.
60398// (Default: 500)
60399func (c *FirewallsListCall) MaxResults(maxResults int64) *FirewallsListCall {
60400	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
60401	return c
60402}
60403
60404// OrderBy sets the optional parameter "orderBy": Sorts list results by
60405// a certain order. By default, results are returned in alphanumerical
60406// order based on the resource name.
60407//
60408// You can also sort results in descending order based on the creation
60409// timestamp using orderBy="creationTimestamp desc". This sorts results
60410// based on the creationTimestamp field in reverse chronological order
60411// (newest result first). Use this to sort resources like operations so
60412// that the newest operation is returned first.
60413//
60414// Currently, only sorting by name or creationTimestamp desc is
60415// supported.
60416func (c *FirewallsListCall) OrderBy(orderBy string) *FirewallsListCall {
60417	c.urlParams_.Set("orderBy", orderBy)
60418	return c
60419}
60420
60421// PageToken sets the optional parameter "pageToken": Specifies a page
60422// token to use. Set pageToken to the nextPageToken returned by a
60423// previous list request to get the next page of results.
60424func (c *FirewallsListCall) PageToken(pageToken string) *FirewallsListCall {
60425	c.urlParams_.Set("pageToken", pageToken)
60426	return c
60427}
60428
60429// Fields allows partial responses to be retrieved. See
60430// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
60431// for more information.
60432func (c *FirewallsListCall) Fields(s ...googleapi.Field) *FirewallsListCall {
60433	c.urlParams_.Set("fields", googleapi.CombineFields(s))
60434	return c
60435}
60436
60437// IfNoneMatch sets the optional parameter which makes the operation
60438// fail if the object's ETag matches the given value. This is useful for
60439// getting updates only after the object has changed since the last
60440// request. Use googleapi.IsNotModified to check whether the response
60441// error from Do is the result of In-None-Match.
60442func (c *FirewallsListCall) IfNoneMatch(entityTag string) *FirewallsListCall {
60443	c.ifNoneMatch_ = entityTag
60444	return c
60445}
60446
60447// Context sets the context to be used in this call's Do method. Any
60448// pending HTTP request will be aborted if the provided context is
60449// canceled.
60450func (c *FirewallsListCall) Context(ctx context.Context) *FirewallsListCall {
60451	c.ctx_ = ctx
60452	return c
60453}
60454
60455// Header returns an http.Header that can be modified by the caller to
60456// add HTTP headers to the request.
60457func (c *FirewallsListCall) Header() http.Header {
60458	if c.header_ == nil {
60459		c.header_ = make(http.Header)
60460	}
60461	return c.header_
60462}
60463
60464func (c *FirewallsListCall) doRequest(alt string) (*http.Response, error) {
60465	reqHeaders := make(http.Header)
60466	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
60467	for k, v := range c.header_ {
60468		reqHeaders[k] = v
60469	}
60470	reqHeaders.Set("User-Agent", c.s.userAgent())
60471	if c.ifNoneMatch_ != "" {
60472		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
60473	}
60474	var body io.Reader = nil
60475	c.urlParams_.Set("alt", alt)
60476	c.urlParams_.Set("prettyPrint", "false")
60477	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/firewalls")
60478	urls += "?" + c.urlParams_.Encode()
60479	req, err := http.NewRequest("GET", urls, body)
60480	if err != nil {
60481		return nil, err
60482	}
60483	req.Header = reqHeaders
60484	googleapi.Expand(req.URL, map[string]string{
60485		"project": c.project,
60486	})
60487	return gensupport.SendRequest(c.ctx_, c.s.client, req)
60488}
60489
60490// Do executes the "compute.firewalls.list" call.
60491// Exactly one of *FirewallList or error will be non-nil. Any non-2xx
60492// status code is an error. Response headers are in either
60493// *FirewallList.ServerResponse.Header or (if a response was returned at
60494// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
60495// to check whether the returned error was because
60496// http.StatusNotModified was returned.
60497func (c *FirewallsListCall) Do(opts ...googleapi.CallOption) (*FirewallList, error) {
60498	gensupport.SetOptions(c.urlParams_, opts...)
60499	res, err := c.doRequest("json")
60500	if res != nil && res.StatusCode == http.StatusNotModified {
60501		if res.Body != nil {
60502			res.Body.Close()
60503		}
60504		return nil, &googleapi.Error{
60505			Code:   res.StatusCode,
60506			Header: res.Header,
60507		}
60508	}
60509	if err != nil {
60510		return nil, err
60511	}
60512	defer googleapi.CloseBody(res)
60513	if err := googleapi.CheckResponse(res); err != nil {
60514		return nil, err
60515	}
60516	ret := &FirewallList{
60517		ServerResponse: googleapi.ServerResponse{
60518			Header:         res.Header,
60519			HTTPStatusCode: res.StatusCode,
60520		},
60521	}
60522	target := &ret
60523	if err := gensupport.DecodeResponse(target, res); err != nil {
60524		return nil, err
60525	}
60526	return ret, nil
60527	// {
60528	//   "description": "Retrieves the list of firewall rules available to the specified project. (== suppress_warning http-rest-shadowed ==)",
60529	//   "httpMethod": "GET",
60530	//   "id": "compute.firewalls.list",
60531	//   "parameterOrder": [
60532	//     "project"
60533	//   ],
60534	//   "parameters": {
60535	//     "filter": {
60536	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
60537	//       "location": "query",
60538	//       "type": "string"
60539	//     },
60540	//     "maxResults": {
60541	//       "default": "500",
60542	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
60543	//       "format": "uint32",
60544	//       "location": "query",
60545	//       "minimum": "0",
60546	//       "type": "integer"
60547	//     },
60548	//     "orderBy": {
60549	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
60550	//       "location": "query",
60551	//       "type": "string"
60552	//     },
60553	//     "pageToken": {
60554	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
60555	//       "location": "query",
60556	//       "type": "string"
60557	//     },
60558	//     "project": {
60559	//       "description": "Project ID for this request.",
60560	//       "location": "path",
60561	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
60562	//       "required": true,
60563	//       "type": "string"
60564	//     }
60565	//   },
60566	//   "path": "{project}/global/firewalls",
60567	//   "response": {
60568	//     "$ref": "FirewallList"
60569	//   },
60570	//   "scopes": [
60571	//     "https://www.googleapis.com/auth/cloud-platform",
60572	//     "https://www.googleapis.com/auth/compute",
60573	//     "https://www.googleapis.com/auth/compute.readonly"
60574	//   ]
60575	// }
60576
60577}
60578
60579// Pages invokes f for each page of results.
60580// A non-nil error returned from f will halt the iteration.
60581// The provided context supersedes any context provided to the Context method.
60582func (c *FirewallsListCall) Pages(ctx context.Context, f func(*FirewallList) error) error {
60583	c.ctx_ = ctx
60584	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
60585	for {
60586		x, err := c.Do()
60587		if err != nil {
60588			return err
60589		}
60590		if err := f(x); err != nil {
60591			return err
60592		}
60593		if x.NextPageToken == "" {
60594			return nil
60595		}
60596		c.PageToken(x.NextPageToken)
60597	}
60598}
60599
60600// method id "compute.firewalls.patch":
60601
60602type FirewallsPatchCall struct {
60603	s          *Service
60604	project    string
60605	firewall   string
60606	firewall2  *Firewall
60607	urlParams_ gensupport.URLParams
60608	ctx_       context.Context
60609	header_    http.Header
60610}
60611
60612// Patch: Updates the specified firewall rule with the data included in
60613// the request. This method supports PATCH semantics and uses the JSON
60614// merge patch format and processing rules. (== suppress_warning
60615// http-rest-shadowed ==)
60616// For details, see https://cloud.google.com/compute/docs/reference/latest/firewalls/patch
60617func (r *FirewallsService) Patch(project string, firewall string, firewall2 *Firewall) *FirewallsPatchCall {
60618	c := &FirewallsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
60619	c.project = project
60620	c.firewall = firewall
60621	c.firewall2 = firewall2
60622	return c
60623}
60624
60625// RequestId sets the optional parameter "requestId": An optional
60626// request ID to identify requests. Specify a unique request ID so that
60627// if you must retry your request, the server will know to ignore the
60628// request if it has already been completed.
60629//
60630// For example, consider a situation where you make an initial request
60631// and the request times out. If you make the request again with the
60632// same request ID, the server can check if original operation with the
60633// same request ID was received, and if so, will ignore the second
60634// request. This prevents clients from accidentally creating duplicate
60635// commitments.
60636//
60637// The request ID must be a valid UUID with the exception that zero UUID
60638// is not supported (00000000-0000-0000-0000-000000000000).
60639func (c *FirewallsPatchCall) RequestId(requestId string) *FirewallsPatchCall {
60640	c.urlParams_.Set("requestId", requestId)
60641	return c
60642}
60643
60644// Fields allows partial responses to be retrieved. See
60645// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
60646// for more information.
60647func (c *FirewallsPatchCall) Fields(s ...googleapi.Field) *FirewallsPatchCall {
60648	c.urlParams_.Set("fields", googleapi.CombineFields(s))
60649	return c
60650}
60651
60652// Context sets the context to be used in this call's Do method. Any
60653// pending HTTP request will be aborted if the provided context is
60654// canceled.
60655func (c *FirewallsPatchCall) Context(ctx context.Context) *FirewallsPatchCall {
60656	c.ctx_ = ctx
60657	return c
60658}
60659
60660// Header returns an http.Header that can be modified by the caller to
60661// add HTTP headers to the request.
60662func (c *FirewallsPatchCall) Header() http.Header {
60663	if c.header_ == nil {
60664		c.header_ = make(http.Header)
60665	}
60666	return c.header_
60667}
60668
60669func (c *FirewallsPatchCall) doRequest(alt string) (*http.Response, error) {
60670	reqHeaders := make(http.Header)
60671	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
60672	for k, v := range c.header_ {
60673		reqHeaders[k] = v
60674	}
60675	reqHeaders.Set("User-Agent", c.s.userAgent())
60676	var body io.Reader = nil
60677	body, err := googleapi.WithoutDataWrapper.JSONReader(c.firewall2)
60678	if err != nil {
60679		return nil, err
60680	}
60681	reqHeaders.Set("Content-Type", "application/json")
60682	c.urlParams_.Set("alt", alt)
60683	c.urlParams_.Set("prettyPrint", "false")
60684	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/firewalls/{firewall}")
60685	urls += "?" + c.urlParams_.Encode()
60686	req, err := http.NewRequest("PATCH", urls, body)
60687	if err != nil {
60688		return nil, err
60689	}
60690	req.Header = reqHeaders
60691	googleapi.Expand(req.URL, map[string]string{
60692		"project":  c.project,
60693		"firewall": c.firewall,
60694	})
60695	return gensupport.SendRequest(c.ctx_, c.s.client, req)
60696}
60697
60698// Do executes the "compute.firewalls.patch" call.
60699// Exactly one of *Operation or error will be non-nil. Any non-2xx
60700// status code is an error. Response headers are in either
60701// *Operation.ServerResponse.Header or (if a response was returned at
60702// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
60703// to check whether the returned error was because
60704// http.StatusNotModified was returned.
60705func (c *FirewallsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
60706	gensupport.SetOptions(c.urlParams_, opts...)
60707	res, err := c.doRequest("json")
60708	if res != nil && res.StatusCode == http.StatusNotModified {
60709		if res.Body != nil {
60710			res.Body.Close()
60711		}
60712		return nil, &googleapi.Error{
60713			Code:   res.StatusCode,
60714			Header: res.Header,
60715		}
60716	}
60717	if err != nil {
60718		return nil, err
60719	}
60720	defer googleapi.CloseBody(res)
60721	if err := googleapi.CheckResponse(res); err != nil {
60722		return nil, err
60723	}
60724	ret := &Operation{
60725		ServerResponse: googleapi.ServerResponse{
60726			Header:         res.Header,
60727			HTTPStatusCode: res.StatusCode,
60728		},
60729	}
60730	target := &ret
60731	if err := gensupport.DecodeResponse(target, res); err != nil {
60732		return nil, err
60733	}
60734	return ret, nil
60735	// {
60736	//   "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. (== suppress_warning http-rest-shadowed ==)",
60737	//   "httpMethod": "PATCH",
60738	//   "id": "compute.firewalls.patch",
60739	//   "parameterOrder": [
60740	//     "project",
60741	//     "firewall"
60742	//   ],
60743	//   "parameters": {
60744	//     "firewall": {
60745	//       "description": "Name of the firewall rule to patch.",
60746	//       "location": "path",
60747	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
60748	//       "required": true,
60749	//       "type": "string"
60750	//     },
60751	//     "project": {
60752	//       "description": "Project ID for this request.",
60753	//       "location": "path",
60754	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
60755	//       "required": true,
60756	//       "type": "string"
60757	//     },
60758	//     "requestId": {
60759	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
60760	//       "location": "query",
60761	//       "type": "string"
60762	//     }
60763	//   },
60764	//   "path": "{project}/global/firewalls/{firewall}",
60765	//   "request": {
60766	//     "$ref": "Firewall"
60767	//   },
60768	//   "response": {
60769	//     "$ref": "Operation"
60770	//   },
60771	//   "scopes": [
60772	//     "https://www.googleapis.com/auth/cloud-platform",
60773	//     "https://www.googleapis.com/auth/compute"
60774	//   ]
60775	// }
60776
60777}
60778
60779// method id "compute.firewalls.testIamPermissions":
60780
60781type FirewallsTestIamPermissionsCall struct {
60782	s                      *Service
60783	project                string
60784	resource               string
60785	testpermissionsrequest *TestPermissionsRequest
60786	urlParams_             gensupport.URLParams
60787	ctx_                   context.Context
60788	header_                http.Header
60789}
60790
60791// TestIamPermissions: Returns permissions that a caller has on the
60792// specified resource. (== suppress_warning http-rest-shadowed ==)
60793func (r *FirewallsService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *FirewallsTestIamPermissionsCall {
60794	c := &FirewallsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
60795	c.project = project
60796	c.resource = resource
60797	c.testpermissionsrequest = testpermissionsrequest
60798	return c
60799}
60800
60801// Fields allows partial responses to be retrieved. See
60802// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
60803// for more information.
60804func (c *FirewallsTestIamPermissionsCall) Fields(s ...googleapi.Field) *FirewallsTestIamPermissionsCall {
60805	c.urlParams_.Set("fields", googleapi.CombineFields(s))
60806	return c
60807}
60808
60809// Context sets the context to be used in this call's Do method. Any
60810// pending HTTP request will be aborted if the provided context is
60811// canceled.
60812func (c *FirewallsTestIamPermissionsCall) Context(ctx context.Context) *FirewallsTestIamPermissionsCall {
60813	c.ctx_ = ctx
60814	return c
60815}
60816
60817// Header returns an http.Header that can be modified by the caller to
60818// add HTTP headers to the request.
60819func (c *FirewallsTestIamPermissionsCall) Header() http.Header {
60820	if c.header_ == nil {
60821		c.header_ = make(http.Header)
60822	}
60823	return c.header_
60824}
60825
60826func (c *FirewallsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
60827	reqHeaders := make(http.Header)
60828	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
60829	for k, v := range c.header_ {
60830		reqHeaders[k] = v
60831	}
60832	reqHeaders.Set("User-Agent", c.s.userAgent())
60833	var body io.Reader = nil
60834	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
60835	if err != nil {
60836		return nil, err
60837	}
60838	reqHeaders.Set("Content-Type", "application/json")
60839	c.urlParams_.Set("alt", alt)
60840	c.urlParams_.Set("prettyPrint", "false")
60841	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/firewalls/{resource}/testIamPermissions")
60842	urls += "?" + c.urlParams_.Encode()
60843	req, err := http.NewRequest("POST", urls, body)
60844	if err != nil {
60845		return nil, err
60846	}
60847	req.Header = reqHeaders
60848	googleapi.Expand(req.URL, map[string]string{
60849		"project":  c.project,
60850		"resource": c.resource,
60851	})
60852	return gensupport.SendRequest(c.ctx_, c.s.client, req)
60853}
60854
60855// Do executes the "compute.firewalls.testIamPermissions" call.
60856// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
60857// non-2xx status code is an error. Response headers are in either
60858// *TestPermissionsResponse.ServerResponse.Header or (if a response was
60859// returned at all) in error.(*googleapi.Error).Header. Use
60860// googleapi.IsNotModified to check whether the returned error was
60861// because http.StatusNotModified was returned.
60862func (c *FirewallsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
60863	gensupport.SetOptions(c.urlParams_, opts...)
60864	res, err := c.doRequest("json")
60865	if res != nil && res.StatusCode == http.StatusNotModified {
60866		if res.Body != nil {
60867			res.Body.Close()
60868		}
60869		return nil, &googleapi.Error{
60870			Code:   res.StatusCode,
60871			Header: res.Header,
60872		}
60873	}
60874	if err != nil {
60875		return nil, err
60876	}
60877	defer googleapi.CloseBody(res)
60878	if err := googleapi.CheckResponse(res); err != nil {
60879		return nil, err
60880	}
60881	ret := &TestPermissionsResponse{
60882		ServerResponse: googleapi.ServerResponse{
60883			Header:         res.Header,
60884			HTTPStatusCode: res.StatusCode,
60885		},
60886	}
60887	target := &ret
60888	if err := gensupport.DecodeResponse(target, res); err != nil {
60889		return nil, err
60890	}
60891	return ret, nil
60892	// {
60893	//   "description": "Returns permissions that a caller has on the specified resource. (== suppress_warning http-rest-shadowed ==)",
60894	//   "httpMethod": "POST",
60895	//   "id": "compute.firewalls.testIamPermissions",
60896	//   "parameterOrder": [
60897	//     "project",
60898	//     "resource"
60899	//   ],
60900	//   "parameters": {
60901	//     "project": {
60902	//       "description": "Project ID for this request.",
60903	//       "location": "path",
60904	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
60905	//       "required": true,
60906	//       "type": "string"
60907	//     },
60908	//     "resource": {
60909	//       "description": "Name or id of the resource for this request.",
60910	//       "location": "path",
60911	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
60912	//       "required": true,
60913	//       "type": "string"
60914	//     }
60915	//   },
60916	//   "path": "{project}/global/firewalls/{resource}/testIamPermissions",
60917	//   "request": {
60918	//     "$ref": "TestPermissionsRequest"
60919	//   },
60920	//   "response": {
60921	//     "$ref": "TestPermissionsResponse"
60922	//   },
60923	//   "scopes": [
60924	//     "https://www.googleapis.com/auth/cloud-platform",
60925	//     "https://www.googleapis.com/auth/compute",
60926	//     "https://www.googleapis.com/auth/compute.readonly"
60927	//   ]
60928	// }
60929
60930}
60931
60932// method id "compute.firewalls.update":
60933
60934type FirewallsUpdateCall struct {
60935	s          *Service
60936	project    string
60937	firewall   string
60938	firewall2  *Firewall
60939	urlParams_ gensupport.URLParams
60940	ctx_       context.Context
60941	header_    http.Header
60942}
60943
60944// Update: Updates the specified firewall rule with the data included in
60945// the request. Note that all fields will be updated if using PUT, even
60946// fields that are not specified. To update individual fields, please
60947// use PATCH instead. (== suppress_warning http-rest-shadowed ==)
60948// For details, see https://cloud.google.com/compute/docs/reference/latest/firewalls/update
60949func (r *FirewallsService) Update(project string, firewall string, firewall2 *Firewall) *FirewallsUpdateCall {
60950	c := &FirewallsUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
60951	c.project = project
60952	c.firewall = firewall
60953	c.firewall2 = firewall2
60954	return c
60955}
60956
60957// RequestId sets the optional parameter "requestId": An optional
60958// request ID to identify requests. Specify a unique request ID so that
60959// if you must retry your request, the server will know to ignore the
60960// request if it has already been completed.
60961//
60962// For example, consider a situation where you make an initial request
60963// and the request times out. If you make the request again with the
60964// same request ID, the server can check if original operation with the
60965// same request ID was received, and if so, will ignore the second
60966// request. This prevents clients from accidentally creating duplicate
60967// commitments.
60968//
60969// The request ID must be a valid UUID with the exception that zero UUID
60970// is not supported (00000000-0000-0000-0000-000000000000).
60971func (c *FirewallsUpdateCall) RequestId(requestId string) *FirewallsUpdateCall {
60972	c.urlParams_.Set("requestId", requestId)
60973	return c
60974}
60975
60976// Fields allows partial responses to be retrieved. See
60977// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
60978// for more information.
60979func (c *FirewallsUpdateCall) Fields(s ...googleapi.Field) *FirewallsUpdateCall {
60980	c.urlParams_.Set("fields", googleapi.CombineFields(s))
60981	return c
60982}
60983
60984// Context sets the context to be used in this call's Do method. Any
60985// pending HTTP request will be aborted if the provided context is
60986// canceled.
60987func (c *FirewallsUpdateCall) Context(ctx context.Context) *FirewallsUpdateCall {
60988	c.ctx_ = ctx
60989	return c
60990}
60991
60992// Header returns an http.Header that can be modified by the caller to
60993// add HTTP headers to the request.
60994func (c *FirewallsUpdateCall) Header() http.Header {
60995	if c.header_ == nil {
60996		c.header_ = make(http.Header)
60997	}
60998	return c.header_
60999}
61000
61001func (c *FirewallsUpdateCall) doRequest(alt string) (*http.Response, error) {
61002	reqHeaders := make(http.Header)
61003	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
61004	for k, v := range c.header_ {
61005		reqHeaders[k] = v
61006	}
61007	reqHeaders.Set("User-Agent", c.s.userAgent())
61008	var body io.Reader = nil
61009	body, err := googleapi.WithoutDataWrapper.JSONReader(c.firewall2)
61010	if err != nil {
61011		return nil, err
61012	}
61013	reqHeaders.Set("Content-Type", "application/json")
61014	c.urlParams_.Set("alt", alt)
61015	c.urlParams_.Set("prettyPrint", "false")
61016	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/firewalls/{firewall}")
61017	urls += "?" + c.urlParams_.Encode()
61018	req, err := http.NewRequest("PUT", urls, body)
61019	if err != nil {
61020		return nil, err
61021	}
61022	req.Header = reqHeaders
61023	googleapi.Expand(req.URL, map[string]string{
61024		"project":  c.project,
61025		"firewall": c.firewall,
61026	})
61027	return gensupport.SendRequest(c.ctx_, c.s.client, req)
61028}
61029
61030// Do executes the "compute.firewalls.update" call.
61031// Exactly one of *Operation or error will be non-nil. Any non-2xx
61032// status code is an error. Response headers are in either
61033// *Operation.ServerResponse.Header or (if a response was returned at
61034// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
61035// to check whether the returned error was because
61036// http.StatusNotModified was returned.
61037func (c *FirewallsUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
61038	gensupport.SetOptions(c.urlParams_, opts...)
61039	res, err := c.doRequest("json")
61040	if res != nil && res.StatusCode == http.StatusNotModified {
61041		if res.Body != nil {
61042			res.Body.Close()
61043		}
61044		return nil, &googleapi.Error{
61045			Code:   res.StatusCode,
61046			Header: res.Header,
61047		}
61048	}
61049	if err != nil {
61050		return nil, err
61051	}
61052	defer googleapi.CloseBody(res)
61053	if err := googleapi.CheckResponse(res); err != nil {
61054		return nil, err
61055	}
61056	ret := &Operation{
61057		ServerResponse: googleapi.ServerResponse{
61058			Header:         res.Header,
61059			HTTPStatusCode: res.StatusCode,
61060		},
61061	}
61062	target := &ret
61063	if err := gensupport.DecodeResponse(target, res); err != nil {
61064		return nil, err
61065	}
61066	return ret, nil
61067	// {
61068	//   "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. (== suppress_warning http-rest-shadowed ==)",
61069	//   "httpMethod": "PUT",
61070	//   "id": "compute.firewalls.update",
61071	//   "parameterOrder": [
61072	//     "project",
61073	//     "firewall"
61074	//   ],
61075	//   "parameters": {
61076	//     "firewall": {
61077	//       "description": "Name of the firewall rule to update.",
61078	//       "location": "path",
61079	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
61080	//       "required": true,
61081	//       "type": "string"
61082	//     },
61083	//     "project": {
61084	//       "description": "Project ID for this request.",
61085	//       "location": "path",
61086	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
61087	//       "required": true,
61088	//       "type": "string"
61089	//     },
61090	//     "requestId": {
61091	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
61092	//       "location": "query",
61093	//       "type": "string"
61094	//     }
61095	//   },
61096	//   "path": "{project}/global/firewalls/{firewall}",
61097	//   "request": {
61098	//     "$ref": "Firewall"
61099	//   },
61100	//   "response": {
61101	//     "$ref": "Operation"
61102	//   },
61103	//   "scopes": [
61104	//     "https://www.googleapis.com/auth/cloud-platform",
61105	//     "https://www.googleapis.com/auth/compute"
61106	//   ]
61107	// }
61108
61109}
61110
61111// method id "compute.forwardingRules.aggregatedList":
61112
61113type ForwardingRulesAggregatedListCall struct {
61114	s            *Service
61115	project      string
61116	urlParams_   gensupport.URLParams
61117	ifNoneMatch_ string
61118	ctx_         context.Context
61119	header_      http.Header
61120}
61121
61122// AggregatedList: Retrieves an aggregated list of forwarding rules. (==
61123// suppress_warning http-rest-shadowed ==)
61124// For details, see https://cloud.google.com/compute/docs/reference/latest/forwardingRules/aggregatedList
61125func (r *ForwardingRulesService) AggregatedList(project string) *ForwardingRulesAggregatedListCall {
61126	c := &ForwardingRulesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
61127	c.project = project
61128	return c
61129}
61130
61131// Filter sets the optional parameter "filter": A filter expression that
61132// filters resources listed in the response. The expression must specify
61133// the field name, a comparison operator, and the value that you want to
61134// use for filtering. The value must be a string, a number, or a
61135// boolean. The comparison operator must be either =, !=, >, or <.
61136//
61137// For example, if you are filtering Compute Engine instances, you can
61138// exclude instances named example-instance by specifying name !=
61139// example-instance.
61140//
61141// You can also filter nested fields. For example, you could specify
61142// scheduling.automaticRestart = false to include instances only if they
61143// are not scheduled for automatic restarts. You can use filtering on
61144// nested fields to filter based on resource labels.
61145//
61146// To filter on multiple expressions, provide each separate expression
61147// within parentheses. For example, (scheduling.automaticRestart = true)
61148// (cpuPlatform = "Intel Skylake"). By default, each expression is an
61149// AND expression. However, you can include AND and OR expressions
61150// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
61151// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
61152// true).
61153func (c *ForwardingRulesAggregatedListCall) Filter(filter string) *ForwardingRulesAggregatedListCall {
61154	c.urlParams_.Set("filter", filter)
61155	return c
61156}
61157
61158// MaxResults sets the optional parameter "maxResults": The maximum
61159// number of results per page that should be returned. If the number of
61160// available results is larger than maxResults, Compute Engine returns a
61161// nextPageToken that can be used to get the next page of results in
61162// subsequent list requests. Acceptable values are 0 to 500, inclusive.
61163// (Default: 500)
61164func (c *ForwardingRulesAggregatedListCall) MaxResults(maxResults int64) *ForwardingRulesAggregatedListCall {
61165	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
61166	return c
61167}
61168
61169// OrderBy sets the optional parameter "orderBy": Sorts list results by
61170// a certain order. By default, results are returned in alphanumerical
61171// order based on the resource name.
61172//
61173// You can also sort results in descending order based on the creation
61174// timestamp using orderBy="creationTimestamp desc". This sorts results
61175// based on the creationTimestamp field in reverse chronological order
61176// (newest result first). Use this to sort resources like operations so
61177// that the newest operation is returned first.
61178//
61179// Currently, only sorting by name or creationTimestamp desc is
61180// supported.
61181func (c *ForwardingRulesAggregatedListCall) OrderBy(orderBy string) *ForwardingRulesAggregatedListCall {
61182	c.urlParams_.Set("orderBy", orderBy)
61183	return c
61184}
61185
61186// PageToken sets the optional parameter "pageToken": Specifies a page
61187// token to use. Set pageToken to the nextPageToken returned by a
61188// previous list request to get the next page of results.
61189func (c *ForwardingRulesAggregatedListCall) PageToken(pageToken string) *ForwardingRulesAggregatedListCall {
61190	c.urlParams_.Set("pageToken", pageToken)
61191	return c
61192}
61193
61194// Fields allows partial responses to be retrieved. See
61195// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
61196// for more information.
61197func (c *ForwardingRulesAggregatedListCall) Fields(s ...googleapi.Field) *ForwardingRulesAggregatedListCall {
61198	c.urlParams_.Set("fields", googleapi.CombineFields(s))
61199	return c
61200}
61201
61202// IfNoneMatch sets the optional parameter which makes the operation
61203// fail if the object's ETag matches the given value. This is useful for
61204// getting updates only after the object has changed since the last
61205// request. Use googleapi.IsNotModified to check whether the response
61206// error from Do is the result of In-None-Match.
61207func (c *ForwardingRulesAggregatedListCall) IfNoneMatch(entityTag string) *ForwardingRulesAggregatedListCall {
61208	c.ifNoneMatch_ = entityTag
61209	return c
61210}
61211
61212// Context sets the context to be used in this call's Do method. Any
61213// pending HTTP request will be aborted if the provided context is
61214// canceled.
61215func (c *ForwardingRulesAggregatedListCall) Context(ctx context.Context) *ForwardingRulesAggregatedListCall {
61216	c.ctx_ = ctx
61217	return c
61218}
61219
61220// Header returns an http.Header that can be modified by the caller to
61221// add HTTP headers to the request.
61222func (c *ForwardingRulesAggregatedListCall) Header() http.Header {
61223	if c.header_ == nil {
61224		c.header_ = make(http.Header)
61225	}
61226	return c.header_
61227}
61228
61229func (c *ForwardingRulesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
61230	reqHeaders := make(http.Header)
61231	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
61232	for k, v := range c.header_ {
61233		reqHeaders[k] = v
61234	}
61235	reqHeaders.Set("User-Agent", c.s.userAgent())
61236	if c.ifNoneMatch_ != "" {
61237		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
61238	}
61239	var body io.Reader = nil
61240	c.urlParams_.Set("alt", alt)
61241	c.urlParams_.Set("prettyPrint", "false")
61242	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/forwardingRules")
61243	urls += "?" + c.urlParams_.Encode()
61244	req, err := http.NewRequest("GET", urls, body)
61245	if err != nil {
61246		return nil, err
61247	}
61248	req.Header = reqHeaders
61249	googleapi.Expand(req.URL, map[string]string{
61250		"project": c.project,
61251	})
61252	return gensupport.SendRequest(c.ctx_, c.s.client, req)
61253}
61254
61255// Do executes the "compute.forwardingRules.aggregatedList" call.
61256// Exactly one of *ForwardingRuleAggregatedList or error will be
61257// non-nil. Any non-2xx status code is an error. Response headers are in
61258// either *ForwardingRuleAggregatedList.ServerResponse.Header or (if a
61259// response was returned at all) in error.(*googleapi.Error).Header. Use
61260// googleapi.IsNotModified to check whether the returned error was
61261// because http.StatusNotModified was returned.
61262func (c *ForwardingRulesAggregatedListCall) Do(opts ...googleapi.CallOption) (*ForwardingRuleAggregatedList, error) {
61263	gensupport.SetOptions(c.urlParams_, opts...)
61264	res, err := c.doRequest("json")
61265	if res != nil && res.StatusCode == http.StatusNotModified {
61266		if res.Body != nil {
61267			res.Body.Close()
61268		}
61269		return nil, &googleapi.Error{
61270			Code:   res.StatusCode,
61271			Header: res.Header,
61272		}
61273	}
61274	if err != nil {
61275		return nil, err
61276	}
61277	defer googleapi.CloseBody(res)
61278	if err := googleapi.CheckResponse(res); err != nil {
61279		return nil, err
61280	}
61281	ret := &ForwardingRuleAggregatedList{
61282		ServerResponse: googleapi.ServerResponse{
61283			Header:         res.Header,
61284			HTTPStatusCode: res.StatusCode,
61285		},
61286	}
61287	target := &ret
61288	if err := gensupport.DecodeResponse(target, res); err != nil {
61289		return nil, err
61290	}
61291	return ret, nil
61292	// {
61293	//   "description": "Retrieves an aggregated list of forwarding rules. (== suppress_warning http-rest-shadowed ==)",
61294	//   "httpMethod": "GET",
61295	//   "id": "compute.forwardingRules.aggregatedList",
61296	//   "parameterOrder": [
61297	//     "project"
61298	//   ],
61299	//   "parameters": {
61300	//     "filter": {
61301	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
61302	//       "location": "query",
61303	//       "type": "string"
61304	//     },
61305	//     "maxResults": {
61306	//       "default": "500",
61307	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
61308	//       "format": "uint32",
61309	//       "location": "query",
61310	//       "minimum": "0",
61311	//       "type": "integer"
61312	//     },
61313	//     "orderBy": {
61314	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
61315	//       "location": "query",
61316	//       "type": "string"
61317	//     },
61318	//     "pageToken": {
61319	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
61320	//       "location": "query",
61321	//       "type": "string"
61322	//     },
61323	//     "project": {
61324	//       "description": "Project ID for this request.",
61325	//       "location": "path",
61326	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
61327	//       "required": true,
61328	//       "type": "string"
61329	//     }
61330	//   },
61331	//   "path": "{project}/aggregated/forwardingRules",
61332	//   "response": {
61333	//     "$ref": "ForwardingRuleAggregatedList"
61334	//   },
61335	//   "scopes": [
61336	//     "https://www.googleapis.com/auth/cloud-platform",
61337	//     "https://www.googleapis.com/auth/compute",
61338	//     "https://www.googleapis.com/auth/compute.readonly"
61339	//   ]
61340	// }
61341
61342}
61343
61344// Pages invokes f for each page of results.
61345// A non-nil error returned from f will halt the iteration.
61346// The provided context supersedes any context provided to the Context method.
61347func (c *ForwardingRulesAggregatedListCall) Pages(ctx context.Context, f func(*ForwardingRuleAggregatedList) error) error {
61348	c.ctx_ = ctx
61349	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
61350	for {
61351		x, err := c.Do()
61352		if err != nil {
61353			return err
61354		}
61355		if err := f(x); err != nil {
61356			return err
61357		}
61358		if x.NextPageToken == "" {
61359			return nil
61360		}
61361		c.PageToken(x.NextPageToken)
61362	}
61363}
61364
61365// method id "compute.forwardingRules.delete":
61366
61367type ForwardingRulesDeleteCall struct {
61368	s              *Service
61369	project        string
61370	region         string
61371	forwardingRule string
61372	urlParams_     gensupport.URLParams
61373	ctx_           context.Context
61374	header_        http.Header
61375}
61376
61377// Delete: Deletes the specified ForwardingRule resource. (==
61378// suppress_warning http-rest-shadowed ==)
61379// For details, see https://cloud.google.com/compute/docs/reference/latest/forwardingRules/delete
61380func (r *ForwardingRulesService) Delete(project string, region string, forwardingRule string) *ForwardingRulesDeleteCall {
61381	c := &ForwardingRulesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
61382	c.project = project
61383	c.region = region
61384	c.forwardingRule = forwardingRule
61385	return c
61386}
61387
61388// RequestId sets the optional parameter "requestId": An optional
61389// request ID to identify requests. Specify a unique request ID so that
61390// if you must retry your request, the server will know to ignore the
61391// request if it has already been completed.
61392//
61393// For example, consider a situation where you make an initial request
61394// and the request times out. If you make the request again with the
61395// same request ID, the server can check if original operation with the
61396// same request ID was received, and if so, will ignore the second
61397// request. This prevents clients from accidentally creating duplicate
61398// commitments.
61399//
61400// The request ID must be a valid UUID with the exception that zero UUID
61401// is not supported (00000000-0000-0000-0000-000000000000).
61402func (c *ForwardingRulesDeleteCall) RequestId(requestId string) *ForwardingRulesDeleteCall {
61403	c.urlParams_.Set("requestId", requestId)
61404	return c
61405}
61406
61407// Fields allows partial responses to be retrieved. See
61408// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
61409// for more information.
61410func (c *ForwardingRulesDeleteCall) Fields(s ...googleapi.Field) *ForwardingRulesDeleteCall {
61411	c.urlParams_.Set("fields", googleapi.CombineFields(s))
61412	return c
61413}
61414
61415// Context sets the context to be used in this call's Do method. Any
61416// pending HTTP request will be aborted if the provided context is
61417// canceled.
61418func (c *ForwardingRulesDeleteCall) Context(ctx context.Context) *ForwardingRulesDeleteCall {
61419	c.ctx_ = ctx
61420	return c
61421}
61422
61423// Header returns an http.Header that can be modified by the caller to
61424// add HTTP headers to the request.
61425func (c *ForwardingRulesDeleteCall) Header() http.Header {
61426	if c.header_ == nil {
61427		c.header_ = make(http.Header)
61428	}
61429	return c.header_
61430}
61431
61432func (c *ForwardingRulesDeleteCall) doRequest(alt string) (*http.Response, error) {
61433	reqHeaders := make(http.Header)
61434	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
61435	for k, v := range c.header_ {
61436		reqHeaders[k] = v
61437	}
61438	reqHeaders.Set("User-Agent", c.s.userAgent())
61439	var body io.Reader = nil
61440	c.urlParams_.Set("alt", alt)
61441	c.urlParams_.Set("prettyPrint", "false")
61442	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/forwardingRules/{forwardingRule}")
61443	urls += "?" + c.urlParams_.Encode()
61444	req, err := http.NewRequest("DELETE", urls, body)
61445	if err != nil {
61446		return nil, err
61447	}
61448	req.Header = reqHeaders
61449	googleapi.Expand(req.URL, map[string]string{
61450		"project":        c.project,
61451		"region":         c.region,
61452		"forwardingRule": c.forwardingRule,
61453	})
61454	return gensupport.SendRequest(c.ctx_, c.s.client, req)
61455}
61456
61457// Do executes the "compute.forwardingRules.delete" call.
61458// Exactly one of *Operation or error will be non-nil. Any non-2xx
61459// status code is an error. Response headers are in either
61460// *Operation.ServerResponse.Header or (if a response was returned at
61461// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
61462// to check whether the returned error was because
61463// http.StatusNotModified was returned.
61464func (c *ForwardingRulesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
61465	gensupport.SetOptions(c.urlParams_, opts...)
61466	res, err := c.doRequest("json")
61467	if res != nil && res.StatusCode == http.StatusNotModified {
61468		if res.Body != nil {
61469			res.Body.Close()
61470		}
61471		return nil, &googleapi.Error{
61472			Code:   res.StatusCode,
61473			Header: res.Header,
61474		}
61475	}
61476	if err != nil {
61477		return nil, err
61478	}
61479	defer googleapi.CloseBody(res)
61480	if err := googleapi.CheckResponse(res); err != nil {
61481		return nil, err
61482	}
61483	ret := &Operation{
61484		ServerResponse: googleapi.ServerResponse{
61485			Header:         res.Header,
61486			HTTPStatusCode: res.StatusCode,
61487		},
61488	}
61489	target := &ret
61490	if err := gensupport.DecodeResponse(target, res); err != nil {
61491		return nil, err
61492	}
61493	return ret, nil
61494	// {
61495	//   "description": "Deletes the specified ForwardingRule resource. (== suppress_warning http-rest-shadowed ==)",
61496	//   "httpMethod": "DELETE",
61497	//   "id": "compute.forwardingRules.delete",
61498	//   "parameterOrder": [
61499	//     "project",
61500	//     "region",
61501	//     "forwardingRule"
61502	//   ],
61503	//   "parameters": {
61504	//     "forwardingRule": {
61505	//       "description": "Name of the ForwardingRule resource to delete.",
61506	//       "location": "path",
61507	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
61508	//       "required": true,
61509	//       "type": "string"
61510	//     },
61511	//     "project": {
61512	//       "description": "Project ID for this request.",
61513	//       "location": "path",
61514	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
61515	//       "required": true,
61516	//       "type": "string"
61517	//     },
61518	//     "region": {
61519	//       "description": "Name of the region scoping this request.",
61520	//       "location": "path",
61521	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
61522	//       "required": true,
61523	//       "type": "string"
61524	//     },
61525	//     "requestId": {
61526	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
61527	//       "location": "query",
61528	//       "type": "string"
61529	//     }
61530	//   },
61531	//   "path": "{project}/regions/{region}/forwardingRules/{forwardingRule}",
61532	//   "response": {
61533	//     "$ref": "Operation"
61534	//   },
61535	//   "scopes": [
61536	//     "https://www.googleapis.com/auth/cloud-platform",
61537	//     "https://www.googleapis.com/auth/compute"
61538	//   ]
61539	// }
61540
61541}
61542
61543// method id "compute.forwardingRules.get":
61544
61545type ForwardingRulesGetCall struct {
61546	s              *Service
61547	project        string
61548	region         string
61549	forwardingRule string
61550	urlParams_     gensupport.URLParams
61551	ifNoneMatch_   string
61552	ctx_           context.Context
61553	header_        http.Header
61554}
61555
61556// Get: Returns the specified ForwardingRule resource. (==
61557// suppress_warning http-rest-shadowed ==)
61558// For details, see https://cloud.google.com/compute/docs/reference/latest/forwardingRules/get
61559func (r *ForwardingRulesService) Get(project string, region string, forwardingRule string) *ForwardingRulesGetCall {
61560	c := &ForwardingRulesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
61561	c.project = project
61562	c.region = region
61563	c.forwardingRule = forwardingRule
61564	return c
61565}
61566
61567// Fields allows partial responses to be retrieved. See
61568// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
61569// for more information.
61570func (c *ForwardingRulesGetCall) Fields(s ...googleapi.Field) *ForwardingRulesGetCall {
61571	c.urlParams_.Set("fields", googleapi.CombineFields(s))
61572	return c
61573}
61574
61575// IfNoneMatch sets the optional parameter which makes the operation
61576// fail if the object's ETag matches the given value. This is useful for
61577// getting updates only after the object has changed since the last
61578// request. Use googleapi.IsNotModified to check whether the response
61579// error from Do is the result of In-None-Match.
61580func (c *ForwardingRulesGetCall) IfNoneMatch(entityTag string) *ForwardingRulesGetCall {
61581	c.ifNoneMatch_ = entityTag
61582	return c
61583}
61584
61585// Context sets the context to be used in this call's Do method. Any
61586// pending HTTP request will be aborted if the provided context is
61587// canceled.
61588func (c *ForwardingRulesGetCall) Context(ctx context.Context) *ForwardingRulesGetCall {
61589	c.ctx_ = ctx
61590	return c
61591}
61592
61593// Header returns an http.Header that can be modified by the caller to
61594// add HTTP headers to the request.
61595func (c *ForwardingRulesGetCall) Header() http.Header {
61596	if c.header_ == nil {
61597		c.header_ = make(http.Header)
61598	}
61599	return c.header_
61600}
61601
61602func (c *ForwardingRulesGetCall) doRequest(alt string) (*http.Response, error) {
61603	reqHeaders := make(http.Header)
61604	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
61605	for k, v := range c.header_ {
61606		reqHeaders[k] = v
61607	}
61608	reqHeaders.Set("User-Agent", c.s.userAgent())
61609	if c.ifNoneMatch_ != "" {
61610		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
61611	}
61612	var body io.Reader = nil
61613	c.urlParams_.Set("alt", alt)
61614	c.urlParams_.Set("prettyPrint", "false")
61615	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/forwardingRules/{forwardingRule}")
61616	urls += "?" + c.urlParams_.Encode()
61617	req, err := http.NewRequest("GET", urls, body)
61618	if err != nil {
61619		return nil, err
61620	}
61621	req.Header = reqHeaders
61622	googleapi.Expand(req.URL, map[string]string{
61623		"project":        c.project,
61624		"region":         c.region,
61625		"forwardingRule": c.forwardingRule,
61626	})
61627	return gensupport.SendRequest(c.ctx_, c.s.client, req)
61628}
61629
61630// Do executes the "compute.forwardingRules.get" call.
61631// Exactly one of *ForwardingRule or error will be non-nil. Any non-2xx
61632// status code is an error. Response headers are in either
61633// *ForwardingRule.ServerResponse.Header or (if a response was returned
61634// at all) in error.(*googleapi.Error).Header. Use
61635// googleapi.IsNotModified to check whether the returned error was
61636// because http.StatusNotModified was returned.
61637func (c *ForwardingRulesGetCall) Do(opts ...googleapi.CallOption) (*ForwardingRule, error) {
61638	gensupport.SetOptions(c.urlParams_, opts...)
61639	res, err := c.doRequest("json")
61640	if res != nil && res.StatusCode == http.StatusNotModified {
61641		if res.Body != nil {
61642			res.Body.Close()
61643		}
61644		return nil, &googleapi.Error{
61645			Code:   res.StatusCode,
61646			Header: res.Header,
61647		}
61648	}
61649	if err != nil {
61650		return nil, err
61651	}
61652	defer googleapi.CloseBody(res)
61653	if err := googleapi.CheckResponse(res); err != nil {
61654		return nil, err
61655	}
61656	ret := &ForwardingRule{
61657		ServerResponse: googleapi.ServerResponse{
61658			Header:         res.Header,
61659			HTTPStatusCode: res.StatusCode,
61660		},
61661	}
61662	target := &ret
61663	if err := gensupport.DecodeResponse(target, res); err != nil {
61664		return nil, err
61665	}
61666	return ret, nil
61667	// {
61668	//   "description": "Returns the specified ForwardingRule resource. (== suppress_warning http-rest-shadowed ==)",
61669	//   "httpMethod": "GET",
61670	//   "id": "compute.forwardingRules.get",
61671	//   "parameterOrder": [
61672	//     "project",
61673	//     "region",
61674	//     "forwardingRule"
61675	//   ],
61676	//   "parameters": {
61677	//     "forwardingRule": {
61678	//       "description": "Name of the ForwardingRule resource to return.",
61679	//       "location": "path",
61680	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
61681	//       "required": true,
61682	//       "type": "string"
61683	//     },
61684	//     "project": {
61685	//       "description": "Project ID for this request.",
61686	//       "location": "path",
61687	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
61688	//       "required": true,
61689	//       "type": "string"
61690	//     },
61691	//     "region": {
61692	//       "description": "Name of the region scoping this request.",
61693	//       "location": "path",
61694	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
61695	//       "required": true,
61696	//       "type": "string"
61697	//     }
61698	//   },
61699	//   "path": "{project}/regions/{region}/forwardingRules/{forwardingRule}",
61700	//   "response": {
61701	//     "$ref": "ForwardingRule"
61702	//   },
61703	//   "scopes": [
61704	//     "https://www.googleapis.com/auth/cloud-platform",
61705	//     "https://www.googleapis.com/auth/compute",
61706	//     "https://www.googleapis.com/auth/compute.readonly"
61707	//   ]
61708	// }
61709
61710}
61711
61712// method id "compute.forwardingRules.insert":
61713
61714type ForwardingRulesInsertCall struct {
61715	s              *Service
61716	project        string
61717	region         string
61718	forwardingrule *ForwardingRule
61719	urlParams_     gensupport.URLParams
61720	ctx_           context.Context
61721	header_        http.Header
61722}
61723
61724// Insert: Creates a ForwardingRule resource in the specified project
61725// and region using the data included in the request. (==
61726// suppress_warning http-rest-shadowed ==)
61727// For details, see https://cloud.google.com/compute/docs/reference/latest/forwardingRules/insert
61728func (r *ForwardingRulesService) Insert(project string, region string, forwardingrule *ForwardingRule) *ForwardingRulesInsertCall {
61729	c := &ForwardingRulesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
61730	c.project = project
61731	c.region = region
61732	c.forwardingrule = forwardingrule
61733	return c
61734}
61735
61736// RequestId sets the optional parameter "requestId": An optional
61737// request ID to identify requests. Specify a unique request ID so that
61738// if you must retry your request, the server will know to ignore the
61739// request if it has already been completed.
61740//
61741// For example, consider a situation where you make an initial request
61742// and the request times out. If you make the request again with the
61743// same request ID, the server can check if original operation with the
61744// same request ID was received, and if so, will ignore the second
61745// request. This prevents clients from accidentally creating duplicate
61746// commitments.
61747//
61748// The request ID must be a valid UUID with the exception that zero UUID
61749// is not supported (00000000-0000-0000-0000-000000000000).
61750func (c *ForwardingRulesInsertCall) RequestId(requestId string) *ForwardingRulesInsertCall {
61751	c.urlParams_.Set("requestId", requestId)
61752	return c
61753}
61754
61755// Fields allows partial responses to be retrieved. See
61756// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
61757// for more information.
61758func (c *ForwardingRulesInsertCall) Fields(s ...googleapi.Field) *ForwardingRulesInsertCall {
61759	c.urlParams_.Set("fields", googleapi.CombineFields(s))
61760	return c
61761}
61762
61763// Context sets the context to be used in this call's Do method. Any
61764// pending HTTP request will be aborted if the provided context is
61765// canceled.
61766func (c *ForwardingRulesInsertCall) Context(ctx context.Context) *ForwardingRulesInsertCall {
61767	c.ctx_ = ctx
61768	return c
61769}
61770
61771// Header returns an http.Header that can be modified by the caller to
61772// add HTTP headers to the request.
61773func (c *ForwardingRulesInsertCall) Header() http.Header {
61774	if c.header_ == nil {
61775		c.header_ = make(http.Header)
61776	}
61777	return c.header_
61778}
61779
61780func (c *ForwardingRulesInsertCall) doRequest(alt string) (*http.Response, error) {
61781	reqHeaders := make(http.Header)
61782	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
61783	for k, v := range c.header_ {
61784		reqHeaders[k] = v
61785	}
61786	reqHeaders.Set("User-Agent", c.s.userAgent())
61787	var body io.Reader = nil
61788	body, err := googleapi.WithoutDataWrapper.JSONReader(c.forwardingrule)
61789	if err != nil {
61790		return nil, err
61791	}
61792	reqHeaders.Set("Content-Type", "application/json")
61793	c.urlParams_.Set("alt", alt)
61794	c.urlParams_.Set("prettyPrint", "false")
61795	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/forwardingRules")
61796	urls += "?" + c.urlParams_.Encode()
61797	req, err := http.NewRequest("POST", urls, body)
61798	if err != nil {
61799		return nil, err
61800	}
61801	req.Header = reqHeaders
61802	googleapi.Expand(req.URL, map[string]string{
61803		"project": c.project,
61804		"region":  c.region,
61805	})
61806	return gensupport.SendRequest(c.ctx_, c.s.client, req)
61807}
61808
61809// Do executes the "compute.forwardingRules.insert" call.
61810// Exactly one of *Operation or error will be non-nil. Any non-2xx
61811// status code is an error. Response headers are in either
61812// *Operation.ServerResponse.Header or (if a response was returned at
61813// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
61814// to check whether the returned error was because
61815// http.StatusNotModified was returned.
61816func (c *ForwardingRulesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
61817	gensupport.SetOptions(c.urlParams_, opts...)
61818	res, err := c.doRequest("json")
61819	if res != nil && res.StatusCode == http.StatusNotModified {
61820		if res.Body != nil {
61821			res.Body.Close()
61822		}
61823		return nil, &googleapi.Error{
61824			Code:   res.StatusCode,
61825			Header: res.Header,
61826		}
61827	}
61828	if err != nil {
61829		return nil, err
61830	}
61831	defer googleapi.CloseBody(res)
61832	if err := googleapi.CheckResponse(res); err != nil {
61833		return nil, err
61834	}
61835	ret := &Operation{
61836		ServerResponse: googleapi.ServerResponse{
61837			Header:         res.Header,
61838			HTTPStatusCode: res.StatusCode,
61839		},
61840	}
61841	target := &ret
61842	if err := gensupport.DecodeResponse(target, res); err != nil {
61843		return nil, err
61844	}
61845	return ret, nil
61846	// {
61847	//   "description": "Creates a ForwardingRule resource in the specified project and region using the data included in the request. (== suppress_warning http-rest-shadowed ==)",
61848	//   "httpMethod": "POST",
61849	//   "id": "compute.forwardingRules.insert",
61850	//   "parameterOrder": [
61851	//     "project",
61852	//     "region"
61853	//   ],
61854	//   "parameters": {
61855	//     "project": {
61856	//       "description": "Project ID for this request.",
61857	//       "location": "path",
61858	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
61859	//       "required": true,
61860	//       "type": "string"
61861	//     },
61862	//     "region": {
61863	//       "description": "Name of the region scoping this request.",
61864	//       "location": "path",
61865	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
61866	//       "required": true,
61867	//       "type": "string"
61868	//     },
61869	//     "requestId": {
61870	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
61871	//       "location": "query",
61872	//       "type": "string"
61873	//     }
61874	//   },
61875	//   "path": "{project}/regions/{region}/forwardingRules",
61876	//   "request": {
61877	//     "$ref": "ForwardingRule"
61878	//   },
61879	//   "response": {
61880	//     "$ref": "Operation"
61881	//   },
61882	//   "scopes": [
61883	//     "https://www.googleapis.com/auth/cloud-platform",
61884	//     "https://www.googleapis.com/auth/compute"
61885	//   ]
61886	// }
61887
61888}
61889
61890// method id "compute.forwardingRules.list":
61891
61892type ForwardingRulesListCall struct {
61893	s            *Service
61894	project      string
61895	region       string
61896	urlParams_   gensupport.URLParams
61897	ifNoneMatch_ string
61898	ctx_         context.Context
61899	header_      http.Header
61900}
61901
61902// List: Retrieves a list of ForwardingRule resources available to the
61903// specified project and region. (== suppress_warning http-rest-shadowed
61904// ==)
61905// For details, see https://cloud.google.com/compute/docs/reference/latest/forwardingRules/list
61906func (r *ForwardingRulesService) List(project string, region string) *ForwardingRulesListCall {
61907	c := &ForwardingRulesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
61908	c.project = project
61909	c.region = region
61910	return c
61911}
61912
61913// Filter sets the optional parameter "filter": A filter expression that
61914// filters resources listed in the response. The expression must specify
61915// the field name, a comparison operator, and the value that you want to
61916// use for filtering. The value must be a string, a number, or a
61917// boolean. The comparison operator must be either =, !=, >, or <.
61918//
61919// For example, if you are filtering Compute Engine instances, you can
61920// exclude instances named example-instance by specifying name !=
61921// example-instance.
61922//
61923// You can also filter nested fields. For example, you could specify
61924// scheduling.automaticRestart = false to include instances only if they
61925// are not scheduled for automatic restarts. You can use filtering on
61926// nested fields to filter based on resource labels.
61927//
61928// To filter on multiple expressions, provide each separate expression
61929// within parentheses. For example, (scheduling.automaticRestart = true)
61930// (cpuPlatform = "Intel Skylake"). By default, each expression is an
61931// AND expression. However, you can include AND and OR expressions
61932// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
61933// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
61934// true).
61935func (c *ForwardingRulesListCall) Filter(filter string) *ForwardingRulesListCall {
61936	c.urlParams_.Set("filter", filter)
61937	return c
61938}
61939
61940// MaxResults sets the optional parameter "maxResults": The maximum
61941// number of results per page that should be returned. If the number of
61942// available results is larger than maxResults, Compute Engine returns a
61943// nextPageToken that can be used to get the next page of results in
61944// subsequent list requests. Acceptable values are 0 to 500, inclusive.
61945// (Default: 500)
61946func (c *ForwardingRulesListCall) MaxResults(maxResults int64) *ForwardingRulesListCall {
61947	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
61948	return c
61949}
61950
61951// OrderBy sets the optional parameter "orderBy": Sorts list results by
61952// a certain order. By default, results are returned in alphanumerical
61953// order based on the resource name.
61954//
61955// You can also sort results in descending order based on the creation
61956// timestamp using orderBy="creationTimestamp desc". This sorts results
61957// based on the creationTimestamp field in reverse chronological order
61958// (newest result first). Use this to sort resources like operations so
61959// that the newest operation is returned first.
61960//
61961// Currently, only sorting by name or creationTimestamp desc is
61962// supported.
61963func (c *ForwardingRulesListCall) OrderBy(orderBy string) *ForwardingRulesListCall {
61964	c.urlParams_.Set("orderBy", orderBy)
61965	return c
61966}
61967
61968// PageToken sets the optional parameter "pageToken": Specifies a page
61969// token to use. Set pageToken to the nextPageToken returned by a
61970// previous list request to get the next page of results.
61971func (c *ForwardingRulesListCall) PageToken(pageToken string) *ForwardingRulesListCall {
61972	c.urlParams_.Set("pageToken", pageToken)
61973	return c
61974}
61975
61976// Fields allows partial responses to be retrieved. See
61977// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
61978// for more information.
61979func (c *ForwardingRulesListCall) Fields(s ...googleapi.Field) *ForwardingRulesListCall {
61980	c.urlParams_.Set("fields", googleapi.CombineFields(s))
61981	return c
61982}
61983
61984// IfNoneMatch sets the optional parameter which makes the operation
61985// fail if the object's ETag matches the given value. This is useful for
61986// getting updates only after the object has changed since the last
61987// request. Use googleapi.IsNotModified to check whether the response
61988// error from Do is the result of In-None-Match.
61989func (c *ForwardingRulesListCall) IfNoneMatch(entityTag string) *ForwardingRulesListCall {
61990	c.ifNoneMatch_ = entityTag
61991	return c
61992}
61993
61994// Context sets the context to be used in this call's Do method. Any
61995// pending HTTP request will be aborted if the provided context is
61996// canceled.
61997func (c *ForwardingRulesListCall) Context(ctx context.Context) *ForwardingRulesListCall {
61998	c.ctx_ = ctx
61999	return c
62000}
62001
62002// Header returns an http.Header that can be modified by the caller to
62003// add HTTP headers to the request.
62004func (c *ForwardingRulesListCall) Header() http.Header {
62005	if c.header_ == nil {
62006		c.header_ = make(http.Header)
62007	}
62008	return c.header_
62009}
62010
62011func (c *ForwardingRulesListCall) doRequest(alt string) (*http.Response, error) {
62012	reqHeaders := make(http.Header)
62013	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
62014	for k, v := range c.header_ {
62015		reqHeaders[k] = v
62016	}
62017	reqHeaders.Set("User-Agent", c.s.userAgent())
62018	if c.ifNoneMatch_ != "" {
62019		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
62020	}
62021	var body io.Reader = nil
62022	c.urlParams_.Set("alt", alt)
62023	c.urlParams_.Set("prettyPrint", "false")
62024	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/forwardingRules")
62025	urls += "?" + c.urlParams_.Encode()
62026	req, err := http.NewRequest("GET", urls, body)
62027	if err != nil {
62028		return nil, err
62029	}
62030	req.Header = reqHeaders
62031	googleapi.Expand(req.URL, map[string]string{
62032		"project": c.project,
62033		"region":  c.region,
62034	})
62035	return gensupport.SendRequest(c.ctx_, c.s.client, req)
62036}
62037
62038// Do executes the "compute.forwardingRules.list" call.
62039// Exactly one of *ForwardingRuleList or error will be non-nil. Any
62040// non-2xx status code is an error. Response headers are in either
62041// *ForwardingRuleList.ServerResponse.Header or (if a response was
62042// returned at all) in error.(*googleapi.Error).Header. Use
62043// googleapi.IsNotModified to check whether the returned error was
62044// because http.StatusNotModified was returned.
62045func (c *ForwardingRulesListCall) Do(opts ...googleapi.CallOption) (*ForwardingRuleList, error) {
62046	gensupport.SetOptions(c.urlParams_, opts...)
62047	res, err := c.doRequest("json")
62048	if res != nil && res.StatusCode == http.StatusNotModified {
62049		if res.Body != nil {
62050			res.Body.Close()
62051		}
62052		return nil, &googleapi.Error{
62053			Code:   res.StatusCode,
62054			Header: res.Header,
62055		}
62056	}
62057	if err != nil {
62058		return nil, err
62059	}
62060	defer googleapi.CloseBody(res)
62061	if err := googleapi.CheckResponse(res); err != nil {
62062		return nil, err
62063	}
62064	ret := &ForwardingRuleList{
62065		ServerResponse: googleapi.ServerResponse{
62066			Header:         res.Header,
62067			HTTPStatusCode: res.StatusCode,
62068		},
62069	}
62070	target := &ret
62071	if err := gensupport.DecodeResponse(target, res); err != nil {
62072		return nil, err
62073	}
62074	return ret, nil
62075	// {
62076	//   "description": "Retrieves a list of ForwardingRule resources available to the specified project and region. (== suppress_warning http-rest-shadowed ==)",
62077	//   "httpMethod": "GET",
62078	//   "id": "compute.forwardingRules.list",
62079	//   "parameterOrder": [
62080	//     "project",
62081	//     "region"
62082	//   ],
62083	//   "parameters": {
62084	//     "filter": {
62085	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
62086	//       "location": "query",
62087	//       "type": "string"
62088	//     },
62089	//     "maxResults": {
62090	//       "default": "500",
62091	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
62092	//       "format": "uint32",
62093	//       "location": "query",
62094	//       "minimum": "0",
62095	//       "type": "integer"
62096	//     },
62097	//     "orderBy": {
62098	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
62099	//       "location": "query",
62100	//       "type": "string"
62101	//     },
62102	//     "pageToken": {
62103	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
62104	//       "location": "query",
62105	//       "type": "string"
62106	//     },
62107	//     "project": {
62108	//       "description": "Project ID for this request.",
62109	//       "location": "path",
62110	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
62111	//       "required": true,
62112	//       "type": "string"
62113	//     },
62114	//     "region": {
62115	//       "description": "Name of the region scoping this request.",
62116	//       "location": "path",
62117	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
62118	//       "required": true,
62119	//       "type": "string"
62120	//     }
62121	//   },
62122	//   "path": "{project}/regions/{region}/forwardingRules",
62123	//   "response": {
62124	//     "$ref": "ForwardingRuleList"
62125	//   },
62126	//   "scopes": [
62127	//     "https://www.googleapis.com/auth/cloud-platform",
62128	//     "https://www.googleapis.com/auth/compute",
62129	//     "https://www.googleapis.com/auth/compute.readonly"
62130	//   ]
62131	// }
62132
62133}
62134
62135// Pages invokes f for each page of results.
62136// A non-nil error returned from f will halt the iteration.
62137// The provided context supersedes any context provided to the Context method.
62138func (c *ForwardingRulesListCall) Pages(ctx context.Context, f func(*ForwardingRuleList) error) error {
62139	c.ctx_ = ctx
62140	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
62141	for {
62142		x, err := c.Do()
62143		if err != nil {
62144			return err
62145		}
62146		if err := f(x); err != nil {
62147			return err
62148		}
62149		if x.NextPageToken == "" {
62150			return nil
62151		}
62152		c.PageToken(x.NextPageToken)
62153	}
62154}
62155
62156// method id "compute.forwardingRules.patch":
62157
62158type ForwardingRulesPatchCall struct {
62159	s              *Service
62160	project        string
62161	region         string
62162	forwardingRule string
62163	forwardingrule *ForwardingRule
62164	urlParams_     gensupport.URLParams
62165	ctx_           context.Context
62166	header_        http.Header
62167}
62168
62169// Patch: Updates the specified forwarding rule with the data included
62170// in the request. This method supports PATCH semantics and uses the
62171// JSON merge patch format and processing rules. Currently, you can only
62172// patch the network_tier field. (== suppress_warning http-rest-shadowed
62173// ==)
62174func (r *ForwardingRulesService) Patch(project string, region string, forwardingRule string, forwardingrule *ForwardingRule) *ForwardingRulesPatchCall {
62175	c := &ForwardingRulesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
62176	c.project = project
62177	c.region = region
62178	c.forwardingRule = forwardingRule
62179	c.forwardingrule = forwardingrule
62180	return c
62181}
62182
62183// RequestId sets the optional parameter "requestId": An optional
62184// request ID to identify requests. Specify a unique request ID so that
62185// if you must retry your request, the server will know to ignore the
62186// request if it has already been completed.
62187//
62188// For example, consider a situation where you make an initial request
62189// and the request times out. If you make the request again with the
62190// same request ID, the server can check if original operation with the
62191// same request ID was received, and if so, will ignore the second
62192// request. This prevents clients from accidentally creating duplicate
62193// commitments.
62194//
62195// The request ID must be a valid UUID with the exception that zero UUID
62196// is not supported (00000000-0000-0000-0000-000000000000).
62197func (c *ForwardingRulesPatchCall) RequestId(requestId string) *ForwardingRulesPatchCall {
62198	c.urlParams_.Set("requestId", requestId)
62199	return c
62200}
62201
62202// Fields allows partial responses to be retrieved. See
62203// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
62204// for more information.
62205func (c *ForwardingRulesPatchCall) Fields(s ...googleapi.Field) *ForwardingRulesPatchCall {
62206	c.urlParams_.Set("fields", googleapi.CombineFields(s))
62207	return c
62208}
62209
62210// Context sets the context to be used in this call's Do method. Any
62211// pending HTTP request will be aborted if the provided context is
62212// canceled.
62213func (c *ForwardingRulesPatchCall) Context(ctx context.Context) *ForwardingRulesPatchCall {
62214	c.ctx_ = ctx
62215	return c
62216}
62217
62218// Header returns an http.Header that can be modified by the caller to
62219// add HTTP headers to the request.
62220func (c *ForwardingRulesPatchCall) Header() http.Header {
62221	if c.header_ == nil {
62222		c.header_ = make(http.Header)
62223	}
62224	return c.header_
62225}
62226
62227func (c *ForwardingRulesPatchCall) doRequest(alt string) (*http.Response, error) {
62228	reqHeaders := make(http.Header)
62229	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
62230	for k, v := range c.header_ {
62231		reqHeaders[k] = v
62232	}
62233	reqHeaders.Set("User-Agent", c.s.userAgent())
62234	var body io.Reader = nil
62235	body, err := googleapi.WithoutDataWrapper.JSONReader(c.forwardingrule)
62236	if err != nil {
62237		return nil, err
62238	}
62239	reqHeaders.Set("Content-Type", "application/json")
62240	c.urlParams_.Set("alt", alt)
62241	c.urlParams_.Set("prettyPrint", "false")
62242	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/forwardingRules/{forwardingRule}")
62243	urls += "?" + c.urlParams_.Encode()
62244	req, err := http.NewRequest("PATCH", urls, body)
62245	if err != nil {
62246		return nil, err
62247	}
62248	req.Header = reqHeaders
62249	googleapi.Expand(req.URL, map[string]string{
62250		"project":        c.project,
62251		"region":         c.region,
62252		"forwardingRule": c.forwardingRule,
62253	})
62254	return gensupport.SendRequest(c.ctx_, c.s.client, req)
62255}
62256
62257// Do executes the "compute.forwardingRules.patch" call.
62258// Exactly one of *Operation or error will be non-nil. Any non-2xx
62259// status code is an error. Response headers are in either
62260// *Operation.ServerResponse.Header or (if a response was returned at
62261// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
62262// to check whether the returned error was because
62263// http.StatusNotModified was returned.
62264func (c *ForwardingRulesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
62265	gensupport.SetOptions(c.urlParams_, opts...)
62266	res, err := c.doRequest("json")
62267	if res != nil && res.StatusCode == http.StatusNotModified {
62268		if res.Body != nil {
62269			res.Body.Close()
62270		}
62271		return nil, &googleapi.Error{
62272			Code:   res.StatusCode,
62273			Header: res.Header,
62274		}
62275	}
62276	if err != nil {
62277		return nil, err
62278	}
62279	defer googleapi.CloseBody(res)
62280	if err := googleapi.CheckResponse(res); err != nil {
62281		return nil, err
62282	}
62283	ret := &Operation{
62284		ServerResponse: googleapi.ServerResponse{
62285			Header:         res.Header,
62286			HTTPStatusCode: res.StatusCode,
62287		},
62288	}
62289	target := &ret
62290	if err := gensupport.DecodeResponse(target, res); err != nil {
62291		return nil, err
62292	}
62293	return ret, nil
62294	// {
62295	//   "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. (== suppress_warning http-rest-shadowed ==)",
62296	//   "httpMethod": "PATCH",
62297	//   "id": "compute.forwardingRules.patch",
62298	//   "parameterOrder": [
62299	//     "project",
62300	//     "region",
62301	//     "forwardingRule"
62302	//   ],
62303	//   "parameters": {
62304	//     "forwardingRule": {
62305	//       "description": "Name of the ForwardingRule resource to patch.",
62306	//       "location": "path",
62307	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
62308	//       "required": true,
62309	//       "type": "string"
62310	//     },
62311	//     "project": {
62312	//       "description": "Project ID for this request.",
62313	//       "location": "path",
62314	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
62315	//       "required": true,
62316	//       "type": "string"
62317	//     },
62318	//     "region": {
62319	//       "description": "Name of the region scoping this request.",
62320	//       "location": "path",
62321	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
62322	//       "required": true,
62323	//       "type": "string"
62324	//     },
62325	//     "requestId": {
62326	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
62327	//       "location": "query",
62328	//       "type": "string"
62329	//     }
62330	//   },
62331	//   "path": "{project}/regions/{region}/forwardingRules/{forwardingRule}",
62332	//   "request": {
62333	//     "$ref": "ForwardingRule"
62334	//   },
62335	//   "response": {
62336	//     "$ref": "Operation"
62337	//   },
62338	//   "scopes": [
62339	//     "https://www.googleapis.com/auth/cloud-platform",
62340	//     "https://www.googleapis.com/auth/compute"
62341	//   ]
62342	// }
62343
62344}
62345
62346// method id "compute.forwardingRules.setLabels":
62347
62348type ForwardingRulesSetLabelsCall struct {
62349	s                      *Service
62350	project                string
62351	region                 string
62352	resource               string
62353	regionsetlabelsrequest *RegionSetLabelsRequest
62354	urlParams_             gensupport.URLParams
62355	ctx_                   context.Context
62356	header_                http.Header
62357}
62358
62359// SetLabels: Sets the labels on the specified resource. To learn more
62360// about labels, read the Labeling Resources documentation. (==
62361// suppress_warning http-rest-shadowed ==)
62362func (r *ForwardingRulesService) SetLabels(project string, region string, resource string, regionsetlabelsrequest *RegionSetLabelsRequest) *ForwardingRulesSetLabelsCall {
62363	c := &ForwardingRulesSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
62364	c.project = project
62365	c.region = region
62366	c.resource = resource
62367	c.regionsetlabelsrequest = regionsetlabelsrequest
62368	return c
62369}
62370
62371// RequestId sets the optional parameter "requestId": An optional
62372// request ID to identify requests. Specify a unique request ID so that
62373// if you must retry your request, the server will know to ignore the
62374// request if it has already been completed.
62375//
62376// For example, consider a situation where you make an initial request
62377// and the request times out. If you make the request again with the
62378// same request ID, the server can check if original operation with the
62379// same request ID was received, and if so, will ignore the second
62380// request. This prevents clients from accidentally creating duplicate
62381// commitments.
62382//
62383// The request ID must be a valid UUID with the exception that zero UUID
62384// is not supported (00000000-0000-0000-0000-000000000000).
62385func (c *ForwardingRulesSetLabelsCall) RequestId(requestId string) *ForwardingRulesSetLabelsCall {
62386	c.urlParams_.Set("requestId", requestId)
62387	return c
62388}
62389
62390// Fields allows partial responses to be retrieved. See
62391// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
62392// for more information.
62393func (c *ForwardingRulesSetLabelsCall) Fields(s ...googleapi.Field) *ForwardingRulesSetLabelsCall {
62394	c.urlParams_.Set("fields", googleapi.CombineFields(s))
62395	return c
62396}
62397
62398// Context sets the context to be used in this call's Do method. Any
62399// pending HTTP request will be aborted if the provided context is
62400// canceled.
62401func (c *ForwardingRulesSetLabelsCall) Context(ctx context.Context) *ForwardingRulesSetLabelsCall {
62402	c.ctx_ = ctx
62403	return c
62404}
62405
62406// Header returns an http.Header that can be modified by the caller to
62407// add HTTP headers to the request.
62408func (c *ForwardingRulesSetLabelsCall) Header() http.Header {
62409	if c.header_ == nil {
62410		c.header_ = make(http.Header)
62411	}
62412	return c.header_
62413}
62414
62415func (c *ForwardingRulesSetLabelsCall) doRequest(alt string) (*http.Response, error) {
62416	reqHeaders := make(http.Header)
62417	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
62418	for k, v := range c.header_ {
62419		reqHeaders[k] = v
62420	}
62421	reqHeaders.Set("User-Agent", c.s.userAgent())
62422	var body io.Reader = nil
62423	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetlabelsrequest)
62424	if err != nil {
62425		return nil, err
62426	}
62427	reqHeaders.Set("Content-Type", "application/json")
62428	c.urlParams_.Set("alt", alt)
62429	c.urlParams_.Set("prettyPrint", "false")
62430	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/forwardingRules/{resource}/setLabels")
62431	urls += "?" + c.urlParams_.Encode()
62432	req, err := http.NewRequest("POST", urls, body)
62433	if err != nil {
62434		return nil, err
62435	}
62436	req.Header = reqHeaders
62437	googleapi.Expand(req.URL, map[string]string{
62438		"project":  c.project,
62439		"region":   c.region,
62440		"resource": c.resource,
62441	})
62442	return gensupport.SendRequest(c.ctx_, c.s.client, req)
62443}
62444
62445// Do executes the "compute.forwardingRules.setLabels" call.
62446// Exactly one of *Operation or error will be non-nil. Any non-2xx
62447// status code is an error. Response headers are in either
62448// *Operation.ServerResponse.Header or (if a response was returned at
62449// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
62450// to check whether the returned error was because
62451// http.StatusNotModified was returned.
62452func (c *ForwardingRulesSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
62453	gensupport.SetOptions(c.urlParams_, opts...)
62454	res, err := c.doRequest("json")
62455	if res != nil && res.StatusCode == http.StatusNotModified {
62456		if res.Body != nil {
62457			res.Body.Close()
62458		}
62459		return nil, &googleapi.Error{
62460			Code:   res.StatusCode,
62461			Header: res.Header,
62462		}
62463	}
62464	if err != nil {
62465		return nil, err
62466	}
62467	defer googleapi.CloseBody(res)
62468	if err := googleapi.CheckResponse(res); err != nil {
62469		return nil, err
62470	}
62471	ret := &Operation{
62472		ServerResponse: googleapi.ServerResponse{
62473			Header:         res.Header,
62474			HTTPStatusCode: res.StatusCode,
62475		},
62476	}
62477	target := &ret
62478	if err := gensupport.DecodeResponse(target, res); err != nil {
62479		return nil, err
62480	}
62481	return ret, nil
62482	// {
62483	//   "description": "Sets the labels on the specified resource. To learn more about labels, read the Labeling Resources documentation. (== suppress_warning http-rest-shadowed ==)",
62484	//   "httpMethod": "POST",
62485	//   "id": "compute.forwardingRules.setLabels",
62486	//   "parameterOrder": [
62487	//     "project",
62488	//     "region",
62489	//     "resource"
62490	//   ],
62491	//   "parameters": {
62492	//     "project": {
62493	//       "description": "Project ID for this request.",
62494	//       "location": "path",
62495	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
62496	//       "required": true,
62497	//       "type": "string"
62498	//     },
62499	//     "region": {
62500	//       "description": "The region for this request.",
62501	//       "location": "path",
62502	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
62503	//       "required": true,
62504	//       "type": "string"
62505	//     },
62506	//     "requestId": {
62507	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
62508	//       "location": "query",
62509	//       "type": "string"
62510	//     },
62511	//     "resource": {
62512	//       "description": "Name or id of the resource for this request.",
62513	//       "location": "path",
62514	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
62515	//       "required": true,
62516	//       "type": "string"
62517	//     }
62518	//   },
62519	//   "path": "{project}/regions/{region}/forwardingRules/{resource}/setLabels",
62520	//   "request": {
62521	//     "$ref": "RegionSetLabelsRequest"
62522	//   },
62523	//   "response": {
62524	//     "$ref": "Operation"
62525	//   },
62526	//   "scopes": [
62527	//     "https://www.googleapis.com/auth/cloud-platform",
62528	//     "https://www.googleapis.com/auth/compute"
62529	//   ]
62530	// }
62531
62532}
62533
62534// method id "compute.forwardingRules.setTarget":
62535
62536type ForwardingRulesSetTargetCall struct {
62537	s               *Service
62538	project         string
62539	region          string
62540	forwardingRule  string
62541	targetreference *TargetReference
62542	urlParams_      gensupport.URLParams
62543	ctx_            context.Context
62544	header_         http.Header
62545}
62546
62547// SetTarget: Changes target URL for forwarding rule. The new target
62548// should be of the same type as the old target. (== suppress_warning
62549// http-rest-shadowed ==)
62550// For details, see https://cloud.google.com/compute/docs/reference/latest/forwardingRules/setTarget
62551func (r *ForwardingRulesService) SetTarget(project string, region string, forwardingRule string, targetreference *TargetReference) *ForwardingRulesSetTargetCall {
62552	c := &ForwardingRulesSetTargetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
62553	c.project = project
62554	c.region = region
62555	c.forwardingRule = forwardingRule
62556	c.targetreference = targetreference
62557	return c
62558}
62559
62560// RequestId sets the optional parameter "requestId": An optional
62561// request ID to identify requests. Specify a unique request ID so that
62562// if you must retry your request, the server will know to ignore the
62563// request if it has already been completed.
62564//
62565// For example, consider a situation where you make an initial request
62566// and the request times out. If you make the request again with the
62567// same request ID, the server can check if original operation with the
62568// same request ID was received, and if so, will ignore the second
62569// request. This prevents clients from accidentally creating duplicate
62570// commitments.
62571//
62572// The request ID must be a valid UUID with the exception that zero UUID
62573// is not supported (00000000-0000-0000-0000-000000000000).
62574func (c *ForwardingRulesSetTargetCall) RequestId(requestId string) *ForwardingRulesSetTargetCall {
62575	c.urlParams_.Set("requestId", requestId)
62576	return c
62577}
62578
62579// Fields allows partial responses to be retrieved. See
62580// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
62581// for more information.
62582func (c *ForwardingRulesSetTargetCall) Fields(s ...googleapi.Field) *ForwardingRulesSetTargetCall {
62583	c.urlParams_.Set("fields", googleapi.CombineFields(s))
62584	return c
62585}
62586
62587// Context sets the context to be used in this call's Do method. Any
62588// pending HTTP request will be aborted if the provided context is
62589// canceled.
62590func (c *ForwardingRulesSetTargetCall) Context(ctx context.Context) *ForwardingRulesSetTargetCall {
62591	c.ctx_ = ctx
62592	return c
62593}
62594
62595// Header returns an http.Header that can be modified by the caller to
62596// add HTTP headers to the request.
62597func (c *ForwardingRulesSetTargetCall) Header() http.Header {
62598	if c.header_ == nil {
62599		c.header_ = make(http.Header)
62600	}
62601	return c.header_
62602}
62603
62604func (c *ForwardingRulesSetTargetCall) doRequest(alt string) (*http.Response, error) {
62605	reqHeaders := make(http.Header)
62606	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
62607	for k, v := range c.header_ {
62608		reqHeaders[k] = v
62609	}
62610	reqHeaders.Set("User-Agent", c.s.userAgent())
62611	var body io.Reader = nil
62612	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetreference)
62613	if err != nil {
62614		return nil, err
62615	}
62616	reqHeaders.Set("Content-Type", "application/json")
62617	c.urlParams_.Set("alt", alt)
62618	c.urlParams_.Set("prettyPrint", "false")
62619	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/forwardingRules/{forwardingRule}/setTarget")
62620	urls += "?" + c.urlParams_.Encode()
62621	req, err := http.NewRequest("POST", urls, body)
62622	if err != nil {
62623		return nil, err
62624	}
62625	req.Header = reqHeaders
62626	googleapi.Expand(req.URL, map[string]string{
62627		"project":        c.project,
62628		"region":         c.region,
62629		"forwardingRule": c.forwardingRule,
62630	})
62631	return gensupport.SendRequest(c.ctx_, c.s.client, req)
62632}
62633
62634// Do executes the "compute.forwardingRules.setTarget" call.
62635// Exactly one of *Operation or error will be non-nil. Any non-2xx
62636// status code is an error. Response headers are in either
62637// *Operation.ServerResponse.Header or (if a response was returned at
62638// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
62639// to check whether the returned error was because
62640// http.StatusNotModified was returned.
62641func (c *ForwardingRulesSetTargetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
62642	gensupport.SetOptions(c.urlParams_, opts...)
62643	res, err := c.doRequest("json")
62644	if res != nil && res.StatusCode == http.StatusNotModified {
62645		if res.Body != nil {
62646			res.Body.Close()
62647		}
62648		return nil, &googleapi.Error{
62649			Code:   res.StatusCode,
62650			Header: res.Header,
62651		}
62652	}
62653	if err != nil {
62654		return nil, err
62655	}
62656	defer googleapi.CloseBody(res)
62657	if err := googleapi.CheckResponse(res); err != nil {
62658		return nil, err
62659	}
62660	ret := &Operation{
62661		ServerResponse: googleapi.ServerResponse{
62662			Header:         res.Header,
62663			HTTPStatusCode: res.StatusCode,
62664		},
62665	}
62666	target := &ret
62667	if err := gensupport.DecodeResponse(target, res); err != nil {
62668		return nil, err
62669	}
62670	return ret, nil
62671	// {
62672	//   "description": "Changes target URL for forwarding rule. The new target should be of the same type as the old target. (== suppress_warning http-rest-shadowed ==)",
62673	//   "httpMethod": "POST",
62674	//   "id": "compute.forwardingRules.setTarget",
62675	//   "parameterOrder": [
62676	//     "project",
62677	//     "region",
62678	//     "forwardingRule"
62679	//   ],
62680	//   "parameters": {
62681	//     "forwardingRule": {
62682	//       "description": "Name of the ForwardingRule resource in which target is to be set.",
62683	//       "location": "path",
62684	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
62685	//       "required": true,
62686	//       "type": "string"
62687	//     },
62688	//     "project": {
62689	//       "description": "Project ID for this request.",
62690	//       "location": "path",
62691	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
62692	//       "required": true,
62693	//       "type": "string"
62694	//     },
62695	//     "region": {
62696	//       "description": "Name of the region scoping this request.",
62697	//       "location": "path",
62698	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
62699	//       "required": true,
62700	//       "type": "string"
62701	//     },
62702	//     "requestId": {
62703	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
62704	//       "location": "query",
62705	//       "type": "string"
62706	//     }
62707	//   },
62708	//   "path": "{project}/regions/{region}/forwardingRules/{forwardingRule}/setTarget",
62709	//   "request": {
62710	//     "$ref": "TargetReference"
62711	//   },
62712	//   "response": {
62713	//     "$ref": "Operation"
62714	//   },
62715	//   "scopes": [
62716	//     "https://www.googleapis.com/auth/cloud-platform",
62717	//     "https://www.googleapis.com/auth/compute"
62718	//   ]
62719	// }
62720
62721}
62722
62723// method id "compute.forwardingRules.testIamPermissions":
62724
62725type ForwardingRulesTestIamPermissionsCall struct {
62726	s                      *Service
62727	project                string
62728	region                 string
62729	resource               string
62730	testpermissionsrequest *TestPermissionsRequest
62731	urlParams_             gensupport.URLParams
62732	ctx_                   context.Context
62733	header_                http.Header
62734}
62735
62736// TestIamPermissions: Returns permissions that a caller has on the
62737// specified resource. (== suppress_warning http-rest-shadowed ==)
62738func (r *ForwardingRulesService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *ForwardingRulesTestIamPermissionsCall {
62739	c := &ForwardingRulesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
62740	c.project = project
62741	c.region = region
62742	c.resource = resource
62743	c.testpermissionsrequest = testpermissionsrequest
62744	return c
62745}
62746
62747// Fields allows partial responses to be retrieved. See
62748// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
62749// for more information.
62750func (c *ForwardingRulesTestIamPermissionsCall) Fields(s ...googleapi.Field) *ForwardingRulesTestIamPermissionsCall {
62751	c.urlParams_.Set("fields", googleapi.CombineFields(s))
62752	return c
62753}
62754
62755// Context sets the context to be used in this call's Do method. Any
62756// pending HTTP request will be aborted if the provided context is
62757// canceled.
62758func (c *ForwardingRulesTestIamPermissionsCall) Context(ctx context.Context) *ForwardingRulesTestIamPermissionsCall {
62759	c.ctx_ = ctx
62760	return c
62761}
62762
62763// Header returns an http.Header that can be modified by the caller to
62764// add HTTP headers to the request.
62765func (c *ForwardingRulesTestIamPermissionsCall) Header() http.Header {
62766	if c.header_ == nil {
62767		c.header_ = make(http.Header)
62768	}
62769	return c.header_
62770}
62771
62772func (c *ForwardingRulesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
62773	reqHeaders := make(http.Header)
62774	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
62775	for k, v := range c.header_ {
62776		reqHeaders[k] = v
62777	}
62778	reqHeaders.Set("User-Agent", c.s.userAgent())
62779	var body io.Reader = nil
62780	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
62781	if err != nil {
62782		return nil, err
62783	}
62784	reqHeaders.Set("Content-Type", "application/json")
62785	c.urlParams_.Set("alt", alt)
62786	c.urlParams_.Set("prettyPrint", "false")
62787	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/forwardingRules/{resource}/testIamPermissions")
62788	urls += "?" + c.urlParams_.Encode()
62789	req, err := http.NewRequest("POST", urls, body)
62790	if err != nil {
62791		return nil, err
62792	}
62793	req.Header = reqHeaders
62794	googleapi.Expand(req.URL, map[string]string{
62795		"project":  c.project,
62796		"region":   c.region,
62797		"resource": c.resource,
62798	})
62799	return gensupport.SendRequest(c.ctx_, c.s.client, req)
62800}
62801
62802// Do executes the "compute.forwardingRules.testIamPermissions" call.
62803// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
62804// non-2xx status code is an error. Response headers are in either
62805// *TestPermissionsResponse.ServerResponse.Header or (if a response was
62806// returned at all) in error.(*googleapi.Error).Header. Use
62807// googleapi.IsNotModified to check whether the returned error was
62808// because http.StatusNotModified was returned.
62809func (c *ForwardingRulesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
62810	gensupport.SetOptions(c.urlParams_, opts...)
62811	res, err := c.doRequest("json")
62812	if res != nil && res.StatusCode == http.StatusNotModified {
62813		if res.Body != nil {
62814			res.Body.Close()
62815		}
62816		return nil, &googleapi.Error{
62817			Code:   res.StatusCode,
62818			Header: res.Header,
62819		}
62820	}
62821	if err != nil {
62822		return nil, err
62823	}
62824	defer googleapi.CloseBody(res)
62825	if err := googleapi.CheckResponse(res); err != nil {
62826		return nil, err
62827	}
62828	ret := &TestPermissionsResponse{
62829		ServerResponse: googleapi.ServerResponse{
62830			Header:         res.Header,
62831			HTTPStatusCode: res.StatusCode,
62832		},
62833	}
62834	target := &ret
62835	if err := gensupport.DecodeResponse(target, res); err != nil {
62836		return nil, err
62837	}
62838	return ret, nil
62839	// {
62840	//   "description": "Returns permissions that a caller has on the specified resource. (== suppress_warning http-rest-shadowed ==)",
62841	//   "httpMethod": "POST",
62842	//   "id": "compute.forwardingRules.testIamPermissions",
62843	//   "parameterOrder": [
62844	//     "project",
62845	//     "region",
62846	//     "resource"
62847	//   ],
62848	//   "parameters": {
62849	//     "project": {
62850	//       "description": "Project ID for this request.",
62851	//       "location": "path",
62852	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
62853	//       "required": true,
62854	//       "type": "string"
62855	//     },
62856	//     "region": {
62857	//       "description": "The name of the region for this request.",
62858	//       "location": "path",
62859	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
62860	//       "required": true,
62861	//       "type": "string"
62862	//     },
62863	//     "resource": {
62864	//       "description": "Name or id of the resource for this request.",
62865	//       "location": "path",
62866	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
62867	//       "required": true,
62868	//       "type": "string"
62869	//     }
62870	//   },
62871	//   "path": "{project}/regions/{region}/forwardingRules/{resource}/testIamPermissions",
62872	//   "request": {
62873	//     "$ref": "TestPermissionsRequest"
62874	//   },
62875	//   "response": {
62876	//     "$ref": "TestPermissionsResponse"
62877	//   },
62878	//   "scopes": [
62879	//     "https://www.googleapis.com/auth/cloud-platform",
62880	//     "https://www.googleapis.com/auth/compute",
62881	//     "https://www.googleapis.com/auth/compute.readonly"
62882	//   ]
62883	// }
62884
62885}
62886
62887// method id "compute.globalAddresses.delete":
62888
62889type GlobalAddressesDeleteCall struct {
62890	s          *Service
62891	project    string
62892	address    string
62893	urlParams_ gensupport.URLParams
62894	ctx_       context.Context
62895	header_    http.Header
62896}
62897
62898// Delete: Deletes the specified address resource. (== suppress_warning
62899// http-rest-shadowed ==)
62900// For details, see https://cloud.google.com/compute/docs/reference/latest/globalAddresses/delete
62901func (r *GlobalAddressesService) Delete(project string, address string) *GlobalAddressesDeleteCall {
62902	c := &GlobalAddressesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
62903	c.project = project
62904	c.address = address
62905	return c
62906}
62907
62908// RequestId sets the optional parameter "requestId": An optional
62909// request ID to identify requests. Specify a unique request ID so that
62910// if you must retry your request, the server will know to ignore the
62911// request if it has already been completed.
62912//
62913// For example, consider a situation where you make an initial request
62914// and the request times out. If you make the request again with the
62915// same request ID, the server can check if original operation with the
62916// same request ID was received, and if so, will ignore the second
62917// request. This prevents clients from accidentally creating duplicate
62918// commitments.
62919//
62920// The request ID must be a valid UUID with the exception that zero UUID
62921// is not supported (00000000-0000-0000-0000-000000000000).
62922func (c *GlobalAddressesDeleteCall) RequestId(requestId string) *GlobalAddressesDeleteCall {
62923	c.urlParams_.Set("requestId", requestId)
62924	return c
62925}
62926
62927// Fields allows partial responses to be retrieved. See
62928// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
62929// for more information.
62930func (c *GlobalAddressesDeleteCall) Fields(s ...googleapi.Field) *GlobalAddressesDeleteCall {
62931	c.urlParams_.Set("fields", googleapi.CombineFields(s))
62932	return c
62933}
62934
62935// Context sets the context to be used in this call's Do method. Any
62936// pending HTTP request will be aborted if the provided context is
62937// canceled.
62938func (c *GlobalAddressesDeleteCall) Context(ctx context.Context) *GlobalAddressesDeleteCall {
62939	c.ctx_ = ctx
62940	return c
62941}
62942
62943// Header returns an http.Header that can be modified by the caller to
62944// add HTTP headers to the request.
62945func (c *GlobalAddressesDeleteCall) Header() http.Header {
62946	if c.header_ == nil {
62947		c.header_ = make(http.Header)
62948	}
62949	return c.header_
62950}
62951
62952func (c *GlobalAddressesDeleteCall) doRequest(alt string) (*http.Response, error) {
62953	reqHeaders := make(http.Header)
62954	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
62955	for k, v := range c.header_ {
62956		reqHeaders[k] = v
62957	}
62958	reqHeaders.Set("User-Agent", c.s.userAgent())
62959	var body io.Reader = nil
62960	c.urlParams_.Set("alt", alt)
62961	c.urlParams_.Set("prettyPrint", "false")
62962	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/addresses/{address}")
62963	urls += "?" + c.urlParams_.Encode()
62964	req, err := http.NewRequest("DELETE", urls, body)
62965	if err != nil {
62966		return nil, err
62967	}
62968	req.Header = reqHeaders
62969	googleapi.Expand(req.URL, map[string]string{
62970		"project": c.project,
62971		"address": c.address,
62972	})
62973	return gensupport.SendRequest(c.ctx_, c.s.client, req)
62974}
62975
62976// Do executes the "compute.globalAddresses.delete" call.
62977// Exactly one of *Operation or error will be non-nil. Any non-2xx
62978// status code is an error. Response headers are in either
62979// *Operation.ServerResponse.Header or (if a response was returned at
62980// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
62981// to check whether the returned error was because
62982// http.StatusNotModified was returned.
62983func (c *GlobalAddressesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
62984	gensupport.SetOptions(c.urlParams_, opts...)
62985	res, err := c.doRequest("json")
62986	if res != nil && res.StatusCode == http.StatusNotModified {
62987		if res.Body != nil {
62988			res.Body.Close()
62989		}
62990		return nil, &googleapi.Error{
62991			Code:   res.StatusCode,
62992			Header: res.Header,
62993		}
62994	}
62995	if err != nil {
62996		return nil, err
62997	}
62998	defer googleapi.CloseBody(res)
62999	if err := googleapi.CheckResponse(res); err != nil {
63000		return nil, err
63001	}
63002	ret := &Operation{
63003		ServerResponse: googleapi.ServerResponse{
63004			Header:         res.Header,
63005			HTTPStatusCode: res.StatusCode,
63006		},
63007	}
63008	target := &ret
63009	if err := gensupport.DecodeResponse(target, res); err != nil {
63010		return nil, err
63011	}
63012	return ret, nil
63013	// {
63014	//   "description": "Deletes the specified address resource. (== suppress_warning http-rest-shadowed ==)",
63015	//   "httpMethod": "DELETE",
63016	//   "id": "compute.globalAddresses.delete",
63017	//   "parameterOrder": [
63018	//     "project",
63019	//     "address"
63020	//   ],
63021	//   "parameters": {
63022	//     "address": {
63023	//       "description": "Name of the address resource to delete.",
63024	//       "location": "path",
63025	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
63026	//       "required": true,
63027	//       "type": "string"
63028	//     },
63029	//     "project": {
63030	//       "description": "Project ID for this request.",
63031	//       "location": "path",
63032	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
63033	//       "required": true,
63034	//       "type": "string"
63035	//     },
63036	//     "requestId": {
63037	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
63038	//       "location": "query",
63039	//       "type": "string"
63040	//     }
63041	//   },
63042	//   "path": "{project}/global/addresses/{address}",
63043	//   "response": {
63044	//     "$ref": "Operation"
63045	//   },
63046	//   "scopes": [
63047	//     "https://www.googleapis.com/auth/cloud-platform",
63048	//     "https://www.googleapis.com/auth/compute"
63049	//   ]
63050	// }
63051
63052}
63053
63054// method id "compute.globalAddresses.get":
63055
63056type GlobalAddressesGetCall struct {
63057	s            *Service
63058	project      string
63059	address      string
63060	urlParams_   gensupport.URLParams
63061	ifNoneMatch_ string
63062	ctx_         context.Context
63063	header_      http.Header
63064}
63065
63066// Get: Returns the specified address resource. Gets a list of available
63067// addresses by making a list() request. (== suppress_warning
63068// http-rest-shadowed ==)
63069// For details, see https://cloud.google.com/compute/docs/reference/latest/globalAddresses/get
63070func (r *GlobalAddressesService) Get(project string, address string) *GlobalAddressesGetCall {
63071	c := &GlobalAddressesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
63072	c.project = project
63073	c.address = address
63074	return c
63075}
63076
63077// Fields allows partial responses to be retrieved. See
63078// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
63079// for more information.
63080func (c *GlobalAddressesGetCall) Fields(s ...googleapi.Field) *GlobalAddressesGetCall {
63081	c.urlParams_.Set("fields", googleapi.CombineFields(s))
63082	return c
63083}
63084
63085// IfNoneMatch sets the optional parameter which makes the operation
63086// fail if the object's ETag matches the given value. This is useful for
63087// getting updates only after the object has changed since the last
63088// request. Use googleapi.IsNotModified to check whether the response
63089// error from Do is the result of In-None-Match.
63090func (c *GlobalAddressesGetCall) IfNoneMatch(entityTag string) *GlobalAddressesGetCall {
63091	c.ifNoneMatch_ = entityTag
63092	return c
63093}
63094
63095// Context sets the context to be used in this call's Do method. Any
63096// pending HTTP request will be aborted if the provided context is
63097// canceled.
63098func (c *GlobalAddressesGetCall) Context(ctx context.Context) *GlobalAddressesGetCall {
63099	c.ctx_ = ctx
63100	return c
63101}
63102
63103// Header returns an http.Header that can be modified by the caller to
63104// add HTTP headers to the request.
63105func (c *GlobalAddressesGetCall) Header() http.Header {
63106	if c.header_ == nil {
63107		c.header_ = make(http.Header)
63108	}
63109	return c.header_
63110}
63111
63112func (c *GlobalAddressesGetCall) doRequest(alt string) (*http.Response, error) {
63113	reqHeaders := make(http.Header)
63114	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
63115	for k, v := range c.header_ {
63116		reqHeaders[k] = v
63117	}
63118	reqHeaders.Set("User-Agent", c.s.userAgent())
63119	if c.ifNoneMatch_ != "" {
63120		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
63121	}
63122	var body io.Reader = nil
63123	c.urlParams_.Set("alt", alt)
63124	c.urlParams_.Set("prettyPrint", "false")
63125	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/addresses/{address}")
63126	urls += "?" + c.urlParams_.Encode()
63127	req, err := http.NewRequest("GET", urls, body)
63128	if err != nil {
63129		return nil, err
63130	}
63131	req.Header = reqHeaders
63132	googleapi.Expand(req.URL, map[string]string{
63133		"project": c.project,
63134		"address": c.address,
63135	})
63136	return gensupport.SendRequest(c.ctx_, c.s.client, req)
63137}
63138
63139// Do executes the "compute.globalAddresses.get" call.
63140// Exactly one of *Address or error will be non-nil. Any non-2xx status
63141// code is an error. Response headers are in either
63142// *Address.ServerResponse.Header or (if a response was returned at all)
63143// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
63144// check whether the returned error was because http.StatusNotModified
63145// was returned.
63146func (c *GlobalAddressesGetCall) Do(opts ...googleapi.CallOption) (*Address, error) {
63147	gensupport.SetOptions(c.urlParams_, opts...)
63148	res, err := c.doRequest("json")
63149	if res != nil && res.StatusCode == http.StatusNotModified {
63150		if res.Body != nil {
63151			res.Body.Close()
63152		}
63153		return nil, &googleapi.Error{
63154			Code:   res.StatusCode,
63155			Header: res.Header,
63156		}
63157	}
63158	if err != nil {
63159		return nil, err
63160	}
63161	defer googleapi.CloseBody(res)
63162	if err := googleapi.CheckResponse(res); err != nil {
63163		return nil, err
63164	}
63165	ret := &Address{
63166		ServerResponse: googleapi.ServerResponse{
63167			Header:         res.Header,
63168			HTTPStatusCode: res.StatusCode,
63169		},
63170	}
63171	target := &ret
63172	if err := gensupport.DecodeResponse(target, res); err != nil {
63173		return nil, err
63174	}
63175	return ret, nil
63176	// {
63177	//   "description": "Returns the specified address resource. Gets a list of available addresses by making a list() request. (== suppress_warning http-rest-shadowed ==)",
63178	//   "httpMethod": "GET",
63179	//   "id": "compute.globalAddresses.get",
63180	//   "parameterOrder": [
63181	//     "project",
63182	//     "address"
63183	//   ],
63184	//   "parameters": {
63185	//     "address": {
63186	//       "description": "Name of the address resource to return.",
63187	//       "location": "path",
63188	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
63189	//       "required": true,
63190	//       "type": "string"
63191	//     },
63192	//     "project": {
63193	//       "description": "Project ID for this request.",
63194	//       "location": "path",
63195	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
63196	//       "required": true,
63197	//       "type": "string"
63198	//     }
63199	//   },
63200	//   "path": "{project}/global/addresses/{address}",
63201	//   "response": {
63202	//     "$ref": "Address"
63203	//   },
63204	//   "scopes": [
63205	//     "https://www.googleapis.com/auth/cloud-platform",
63206	//     "https://www.googleapis.com/auth/compute",
63207	//     "https://www.googleapis.com/auth/compute.readonly"
63208	//   ]
63209	// }
63210
63211}
63212
63213// method id "compute.globalAddresses.insert":
63214
63215type GlobalAddressesInsertCall struct {
63216	s          *Service
63217	project    string
63218	address    *Address
63219	urlParams_ gensupport.URLParams
63220	ctx_       context.Context
63221	header_    http.Header
63222}
63223
63224// Insert: Creates an address resource in the specified project by using
63225// the data included in the request. (== suppress_warning
63226// http-rest-shadowed ==)
63227// For details, see https://cloud.google.com/compute/docs/reference/latest/globalAddresses/insert
63228func (r *GlobalAddressesService) Insert(project string, address *Address) *GlobalAddressesInsertCall {
63229	c := &GlobalAddressesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
63230	c.project = project
63231	c.address = address
63232	return c
63233}
63234
63235// RequestId sets the optional parameter "requestId": An optional
63236// request ID to identify requests. Specify a unique request ID so that
63237// if you must retry your request, the server will know to ignore the
63238// request if it has already been completed.
63239//
63240// For example, consider a situation where you make an initial request
63241// and the request times out. If you make the request again with the
63242// same request ID, the server can check if original operation with the
63243// same request ID was received, and if so, will ignore the second
63244// request. This prevents clients from accidentally creating duplicate
63245// commitments.
63246//
63247// The request ID must be a valid UUID with the exception that zero UUID
63248// is not supported (00000000-0000-0000-0000-000000000000).
63249func (c *GlobalAddressesInsertCall) RequestId(requestId string) *GlobalAddressesInsertCall {
63250	c.urlParams_.Set("requestId", requestId)
63251	return c
63252}
63253
63254// Fields allows partial responses to be retrieved. See
63255// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
63256// for more information.
63257func (c *GlobalAddressesInsertCall) Fields(s ...googleapi.Field) *GlobalAddressesInsertCall {
63258	c.urlParams_.Set("fields", googleapi.CombineFields(s))
63259	return c
63260}
63261
63262// Context sets the context to be used in this call's Do method. Any
63263// pending HTTP request will be aborted if the provided context is
63264// canceled.
63265func (c *GlobalAddressesInsertCall) Context(ctx context.Context) *GlobalAddressesInsertCall {
63266	c.ctx_ = ctx
63267	return c
63268}
63269
63270// Header returns an http.Header that can be modified by the caller to
63271// add HTTP headers to the request.
63272func (c *GlobalAddressesInsertCall) Header() http.Header {
63273	if c.header_ == nil {
63274		c.header_ = make(http.Header)
63275	}
63276	return c.header_
63277}
63278
63279func (c *GlobalAddressesInsertCall) doRequest(alt string) (*http.Response, error) {
63280	reqHeaders := make(http.Header)
63281	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
63282	for k, v := range c.header_ {
63283		reqHeaders[k] = v
63284	}
63285	reqHeaders.Set("User-Agent", c.s.userAgent())
63286	var body io.Reader = nil
63287	body, err := googleapi.WithoutDataWrapper.JSONReader(c.address)
63288	if err != nil {
63289		return nil, err
63290	}
63291	reqHeaders.Set("Content-Type", "application/json")
63292	c.urlParams_.Set("alt", alt)
63293	c.urlParams_.Set("prettyPrint", "false")
63294	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/addresses")
63295	urls += "?" + c.urlParams_.Encode()
63296	req, err := http.NewRequest("POST", urls, body)
63297	if err != nil {
63298		return nil, err
63299	}
63300	req.Header = reqHeaders
63301	googleapi.Expand(req.URL, map[string]string{
63302		"project": c.project,
63303	})
63304	return gensupport.SendRequest(c.ctx_, c.s.client, req)
63305}
63306
63307// Do executes the "compute.globalAddresses.insert" call.
63308// Exactly one of *Operation or error will be non-nil. Any non-2xx
63309// status code is an error. Response headers are in either
63310// *Operation.ServerResponse.Header or (if a response was returned at
63311// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
63312// to check whether the returned error was because
63313// http.StatusNotModified was returned.
63314func (c *GlobalAddressesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
63315	gensupport.SetOptions(c.urlParams_, opts...)
63316	res, err := c.doRequest("json")
63317	if res != nil && res.StatusCode == http.StatusNotModified {
63318		if res.Body != nil {
63319			res.Body.Close()
63320		}
63321		return nil, &googleapi.Error{
63322			Code:   res.StatusCode,
63323			Header: res.Header,
63324		}
63325	}
63326	if err != nil {
63327		return nil, err
63328	}
63329	defer googleapi.CloseBody(res)
63330	if err := googleapi.CheckResponse(res); err != nil {
63331		return nil, err
63332	}
63333	ret := &Operation{
63334		ServerResponse: googleapi.ServerResponse{
63335			Header:         res.Header,
63336			HTTPStatusCode: res.StatusCode,
63337		},
63338	}
63339	target := &ret
63340	if err := gensupport.DecodeResponse(target, res); err != nil {
63341		return nil, err
63342	}
63343	return ret, nil
63344	// {
63345	//   "description": "Creates an address resource in the specified project by using the data included in the request. (== suppress_warning http-rest-shadowed ==)",
63346	//   "httpMethod": "POST",
63347	//   "id": "compute.globalAddresses.insert",
63348	//   "parameterOrder": [
63349	//     "project"
63350	//   ],
63351	//   "parameters": {
63352	//     "project": {
63353	//       "description": "Project ID for this request.",
63354	//       "location": "path",
63355	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
63356	//       "required": true,
63357	//       "type": "string"
63358	//     },
63359	//     "requestId": {
63360	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
63361	//       "location": "query",
63362	//       "type": "string"
63363	//     }
63364	//   },
63365	//   "path": "{project}/global/addresses",
63366	//   "request": {
63367	//     "$ref": "Address"
63368	//   },
63369	//   "response": {
63370	//     "$ref": "Operation"
63371	//   },
63372	//   "scopes": [
63373	//     "https://www.googleapis.com/auth/cloud-platform",
63374	//     "https://www.googleapis.com/auth/compute"
63375	//   ]
63376	// }
63377
63378}
63379
63380// method id "compute.globalAddresses.list":
63381
63382type GlobalAddressesListCall struct {
63383	s            *Service
63384	project      string
63385	urlParams_   gensupport.URLParams
63386	ifNoneMatch_ string
63387	ctx_         context.Context
63388	header_      http.Header
63389}
63390
63391// List: Retrieves a list of global addresses. (== suppress_warning
63392// http-rest-shadowed ==)
63393// For details, see https://cloud.google.com/compute/docs/reference/latest/globalAddresses/list
63394func (r *GlobalAddressesService) List(project string) *GlobalAddressesListCall {
63395	c := &GlobalAddressesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
63396	c.project = project
63397	return c
63398}
63399
63400// Filter sets the optional parameter "filter": A filter expression that
63401// filters resources listed in the response. The expression must specify
63402// the field name, a comparison operator, and the value that you want to
63403// use for filtering. The value must be a string, a number, or a
63404// boolean. The comparison operator must be either =, !=, >, or <.
63405//
63406// For example, if you are filtering Compute Engine instances, you can
63407// exclude instances named example-instance by specifying name !=
63408// example-instance.
63409//
63410// You can also filter nested fields. For example, you could specify
63411// scheduling.automaticRestart = false to include instances only if they
63412// are not scheduled for automatic restarts. You can use filtering on
63413// nested fields to filter based on resource labels.
63414//
63415// To filter on multiple expressions, provide each separate expression
63416// within parentheses. For example, (scheduling.automaticRestart = true)
63417// (cpuPlatform = "Intel Skylake"). By default, each expression is an
63418// AND expression. However, you can include AND and OR expressions
63419// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
63420// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
63421// true).
63422func (c *GlobalAddressesListCall) Filter(filter string) *GlobalAddressesListCall {
63423	c.urlParams_.Set("filter", filter)
63424	return c
63425}
63426
63427// MaxResults sets the optional parameter "maxResults": The maximum
63428// number of results per page that should be returned. If the number of
63429// available results is larger than maxResults, Compute Engine returns a
63430// nextPageToken that can be used to get the next page of results in
63431// subsequent list requests. Acceptable values are 0 to 500, inclusive.
63432// (Default: 500)
63433func (c *GlobalAddressesListCall) MaxResults(maxResults int64) *GlobalAddressesListCall {
63434	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
63435	return c
63436}
63437
63438// OrderBy sets the optional parameter "orderBy": Sorts list results by
63439// a certain order. By default, results are returned in alphanumerical
63440// order based on the resource name.
63441//
63442// You can also sort results in descending order based on the creation
63443// timestamp using orderBy="creationTimestamp desc". This sorts results
63444// based on the creationTimestamp field in reverse chronological order
63445// (newest result first). Use this to sort resources like operations so
63446// that the newest operation is returned first.
63447//
63448// Currently, only sorting by name or creationTimestamp desc is
63449// supported.
63450func (c *GlobalAddressesListCall) OrderBy(orderBy string) *GlobalAddressesListCall {
63451	c.urlParams_.Set("orderBy", orderBy)
63452	return c
63453}
63454
63455// PageToken sets the optional parameter "pageToken": Specifies a page
63456// token to use. Set pageToken to the nextPageToken returned by a
63457// previous list request to get the next page of results.
63458func (c *GlobalAddressesListCall) PageToken(pageToken string) *GlobalAddressesListCall {
63459	c.urlParams_.Set("pageToken", pageToken)
63460	return c
63461}
63462
63463// Fields allows partial responses to be retrieved. See
63464// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
63465// for more information.
63466func (c *GlobalAddressesListCall) Fields(s ...googleapi.Field) *GlobalAddressesListCall {
63467	c.urlParams_.Set("fields", googleapi.CombineFields(s))
63468	return c
63469}
63470
63471// IfNoneMatch sets the optional parameter which makes the operation
63472// fail if the object's ETag matches the given value. This is useful for
63473// getting updates only after the object has changed since the last
63474// request. Use googleapi.IsNotModified to check whether the response
63475// error from Do is the result of In-None-Match.
63476func (c *GlobalAddressesListCall) IfNoneMatch(entityTag string) *GlobalAddressesListCall {
63477	c.ifNoneMatch_ = entityTag
63478	return c
63479}
63480
63481// Context sets the context to be used in this call's Do method. Any
63482// pending HTTP request will be aborted if the provided context is
63483// canceled.
63484func (c *GlobalAddressesListCall) Context(ctx context.Context) *GlobalAddressesListCall {
63485	c.ctx_ = ctx
63486	return c
63487}
63488
63489// Header returns an http.Header that can be modified by the caller to
63490// add HTTP headers to the request.
63491func (c *GlobalAddressesListCall) Header() http.Header {
63492	if c.header_ == nil {
63493		c.header_ = make(http.Header)
63494	}
63495	return c.header_
63496}
63497
63498func (c *GlobalAddressesListCall) doRequest(alt string) (*http.Response, error) {
63499	reqHeaders := make(http.Header)
63500	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
63501	for k, v := range c.header_ {
63502		reqHeaders[k] = v
63503	}
63504	reqHeaders.Set("User-Agent", c.s.userAgent())
63505	if c.ifNoneMatch_ != "" {
63506		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
63507	}
63508	var body io.Reader = nil
63509	c.urlParams_.Set("alt", alt)
63510	c.urlParams_.Set("prettyPrint", "false")
63511	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/addresses")
63512	urls += "?" + c.urlParams_.Encode()
63513	req, err := http.NewRequest("GET", urls, body)
63514	if err != nil {
63515		return nil, err
63516	}
63517	req.Header = reqHeaders
63518	googleapi.Expand(req.URL, map[string]string{
63519		"project": c.project,
63520	})
63521	return gensupport.SendRequest(c.ctx_, c.s.client, req)
63522}
63523
63524// Do executes the "compute.globalAddresses.list" call.
63525// Exactly one of *AddressList or error will be non-nil. Any non-2xx
63526// status code is an error. Response headers are in either
63527// *AddressList.ServerResponse.Header or (if a response was returned at
63528// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
63529// to check whether the returned error was because
63530// http.StatusNotModified was returned.
63531func (c *GlobalAddressesListCall) Do(opts ...googleapi.CallOption) (*AddressList, error) {
63532	gensupport.SetOptions(c.urlParams_, opts...)
63533	res, err := c.doRequest("json")
63534	if res != nil && res.StatusCode == http.StatusNotModified {
63535		if res.Body != nil {
63536			res.Body.Close()
63537		}
63538		return nil, &googleapi.Error{
63539			Code:   res.StatusCode,
63540			Header: res.Header,
63541		}
63542	}
63543	if err != nil {
63544		return nil, err
63545	}
63546	defer googleapi.CloseBody(res)
63547	if err := googleapi.CheckResponse(res); err != nil {
63548		return nil, err
63549	}
63550	ret := &AddressList{
63551		ServerResponse: googleapi.ServerResponse{
63552			Header:         res.Header,
63553			HTTPStatusCode: res.StatusCode,
63554		},
63555	}
63556	target := &ret
63557	if err := gensupport.DecodeResponse(target, res); err != nil {
63558		return nil, err
63559	}
63560	return ret, nil
63561	// {
63562	//   "description": "Retrieves a list of global addresses. (== suppress_warning http-rest-shadowed ==)",
63563	//   "httpMethod": "GET",
63564	//   "id": "compute.globalAddresses.list",
63565	//   "parameterOrder": [
63566	//     "project"
63567	//   ],
63568	//   "parameters": {
63569	//     "filter": {
63570	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
63571	//       "location": "query",
63572	//       "type": "string"
63573	//     },
63574	//     "maxResults": {
63575	//       "default": "500",
63576	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
63577	//       "format": "uint32",
63578	//       "location": "query",
63579	//       "minimum": "0",
63580	//       "type": "integer"
63581	//     },
63582	//     "orderBy": {
63583	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
63584	//       "location": "query",
63585	//       "type": "string"
63586	//     },
63587	//     "pageToken": {
63588	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
63589	//       "location": "query",
63590	//       "type": "string"
63591	//     },
63592	//     "project": {
63593	//       "description": "Project ID for this request.",
63594	//       "location": "path",
63595	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
63596	//       "required": true,
63597	//       "type": "string"
63598	//     }
63599	//   },
63600	//   "path": "{project}/global/addresses",
63601	//   "response": {
63602	//     "$ref": "AddressList"
63603	//   },
63604	//   "scopes": [
63605	//     "https://www.googleapis.com/auth/cloud-platform",
63606	//     "https://www.googleapis.com/auth/compute",
63607	//     "https://www.googleapis.com/auth/compute.readonly"
63608	//   ]
63609	// }
63610
63611}
63612
63613// Pages invokes f for each page of results.
63614// A non-nil error returned from f will halt the iteration.
63615// The provided context supersedes any context provided to the Context method.
63616func (c *GlobalAddressesListCall) Pages(ctx context.Context, f func(*AddressList) error) error {
63617	c.ctx_ = ctx
63618	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
63619	for {
63620		x, err := c.Do()
63621		if err != nil {
63622			return err
63623		}
63624		if err := f(x); err != nil {
63625			return err
63626		}
63627		if x.NextPageToken == "" {
63628			return nil
63629		}
63630		c.PageToken(x.NextPageToken)
63631	}
63632}
63633
63634// method id "compute.globalAddresses.setLabels":
63635
63636type GlobalAddressesSetLabelsCall struct {
63637	s                      *Service
63638	project                string
63639	resource               string
63640	globalsetlabelsrequest *GlobalSetLabelsRequest
63641	urlParams_             gensupport.URLParams
63642	ctx_                   context.Context
63643	header_                http.Header
63644}
63645
63646// SetLabels: Sets the labels on a GlobalAddress. To learn more about
63647// labels, read the Labeling Resources documentation. (==
63648// suppress_warning http-rest-shadowed ==)
63649func (r *GlobalAddressesService) SetLabels(project string, resource string, globalsetlabelsrequest *GlobalSetLabelsRequest) *GlobalAddressesSetLabelsCall {
63650	c := &GlobalAddressesSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
63651	c.project = project
63652	c.resource = resource
63653	c.globalsetlabelsrequest = globalsetlabelsrequest
63654	return c
63655}
63656
63657// Fields allows partial responses to be retrieved. See
63658// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
63659// for more information.
63660func (c *GlobalAddressesSetLabelsCall) Fields(s ...googleapi.Field) *GlobalAddressesSetLabelsCall {
63661	c.urlParams_.Set("fields", googleapi.CombineFields(s))
63662	return c
63663}
63664
63665// Context sets the context to be used in this call's Do method. Any
63666// pending HTTP request will be aborted if the provided context is
63667// canceled.
63668func (c *GlobalAddressesSetLabelsCall) Context(ctx context.Context) *GlobalAddressesSetLabelsCall {
63669	c.ctx_ = ctx
63670	return c
63671}
63672
63673// Header returns an http.Header that can be modified by the caller to
63674// add HTTP headers to the request.
63675func (c *GlobalAddressesSetLabelsCall) Header() http.Header {
63676	if c.header_ == nil {
63677		c.header_ = make(http.Header)
63678	}
63679	return c.header_
63680}
63681
63682func (c *GlobalAddressesSetLabelsCall) doRequest(alt string) (*http.Response, error) {
63683	reqHeaders := make(http.Header)
63684	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
63685	for k, v := range c.header_ {
63686		reqHeaders[k] = v
63687	}
63688	reqHeaders.Set("User-Agent", c.s.userAgent())
63689	var body io.Reader = nil
63690	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetlabelsrequest)
63691	if err != nil {
63692		return nil, err
63693	}
63694	reqHeaders.Set("Content-Type", "application/json")
63695	c.urlParams_.Set("alt", alt)
63696	c.urlParams_.Set("prettyPrint", "false")
63697	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/addresses/{resource}/setLabels")
63698	urls += "?" + c.urlParams_.Encode()
63699	req, err := http.NewRequest("POST", urls, body)
63700	if err != nil {
63701		return nil, err
63702	}
63703	req.Header = reqHeaders
63704	googleapi.Expand(req.URL, map[string]string{
63705		"project":  c.project,
63706		"resource": c.resource,
63707	})
63708	return gensupport.SendRequest(c.ctx_, c.s.client, req)
63709}
63710
63711// Do executes the "compute.globalAddresses.setLabels" call.
63712// Exactly one of *Operation or error will be non-nil. Any non-2xx
63713// status code is an error. Response headers are in either
63714// *Operation.ServerResponse.Header or (if a response was returned at
63715// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
63716// to check whether the returned error was because
63717// http.StatusNotModified was returned.
63718func (c *GlobalAddressesSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
63719	gensupport.SetOptions(c.urlParams_, opts...)
63720	res, err := c.doRequest("json")
63721	if res != nil && res.StatusCode == http.StatusNotModified {
63722		if res.Body != nil {
63723			res.Body.Close()
63724		}
63725		return nil, &googleapi.Error{
63726			Code:   res.StatusCode,
63727			Header: res.Header,
63728		}
63729	}
63730	if err != nil {
63731		return nil, err
63732	}
63733	defer googleapi.CloseBody(res)
63734	if err := googleapi.CheckResponse(res); err != nil {
63735		return nil, err
63736	}
63737	ret := &Operation{
63738		ServerResponse: googleapi.ServerResponse{
63739			Header:         res.Header,
63740			HTTPStatusCode: res.StatusCode,
63741		},
63742	}
63743	target := &ret
63744	if err := gensupport.DecodeResponse(target, res); err != nil {
63745		return nil, err
63746	}
63747	return ret, nil
63748	// {
63749	//   "description": "Sets the labels on a GlobalAddress. To learn more about labels, read the Labeling Resources documentation. (== suppress_warning http-rest-shadowed ==)",
63750	//   "httpMethod": "POST",
63751	//   "id": "compute.globalAddresses.setLabels",
63752	//   "parameterOrder": [
63753	//     "project",
63754	//     "resource"
63755	//   ],
63756	//   "parameters": {
63757	//     "project": {
63758	//       "description": "Project ID for this request.",
63759	//       "location": "path",
63760	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
63761	//       "required": true,
63762	//       "type": "string"
63763	//     },
63764	//     "resource": {
63765	//       "description": "Name or id of the resource for this request.",
63766	//       "location": "path",
63767	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
63768	//       "required": true,
63769	//       "type": "string"
63770	//     }
63771	//   },
63772	//   "path": "{project}/global/addresses/{resource}/setLabels",
63773	//   "request": {
63774	//     "$ref": "GlobalSetLabelsRequest"
63775	//   },
63776	//   "response": {
63777	//     "$ref": "Operation"
63778	//   },
63779	//   "scopes": [
63780	//     "https://www.googleapis.com/auth/cloud-platform",
63781	//     "https://www.googleapis.com/auth/compute"
63782	//   ]
63783	// }
63784
63785}
63786
63787// method id "compute.globalAddresses.testIamPermissions":
63788
63789type GlobalAddressesTestIamPermissionsCall struct {
63790	s                      *Service
63791	project                string
63792	resource               string
63793	testpermissionsrequest *TestPermissionsRequest
63794	urlParams_             gensupport.URLParams
63795	ctx_                   context.Context
63796	header_                http.Header
63797}
63798
63799// TestIamPermissions: Returns permissions that a caller has on the
63800// specified resource. (== suppress_warning http-rest-shadowed ==)
63801func (r *GlobalAddressesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *GlobalAddressesTestIamPermissionsCall {
63802	c := &GlobalAddressesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
63803	c.project = project
63804	c.resource = resource
63805	c.testpermissionsrequest = testpermissionsrequest
63806	return c
63807}
63808
63809// Fields allows partial responses to be retrieved. See
63810// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
63811// for more information.
63812func (c *GlobalAddressesTestIamPermissionsCall) Fields(s ...googleapi.Field) *GlobalAddressesTestIamPermissionsCall {
63813	c.urlParams_.Set("fields", googleapi.CombineFields(s))
63814	return c
63815}
63816
63817// Context sets the context to be used in this call's Do method. Any
63818// pending HTTP request will be aborted if the provided context is
63819// canceled.
63820func (c *GlobalAddressesTestIamPermissionsCall) Context(ctx context.Context) *GlobalAddressesTestIamPermissionsCall {
63821	c.ctx_ = ctx
63822	return c
63823}
63824
63825// Header returns an http.Header that can be modified by the caller to
63826// add HTTP headers to the request.
63827func (c *GlobalAddressesTestIamPermissionsCall) Header() http.Header {
63828	if c.header_ == nil {
63829		c.header_ = make(http.Header)
63830	}
63831	return c.header_
63832}
63833
63834func (c *GlobalAddressesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
63835	reqHeaders := make(http.Header)
63836	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
63837	for k, v := range c.header_ {
63838		reqHeaders[k] = v
63839	}
63840	reqHeaders.Set("User-Agent", c.s.userAgent())
63841	var body io.Reader = nil
63842	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
63843	if err != nil {
63844		return nil, err
63845	}
63846	reqHeaders.Set("Content-Type", "application/json")
63847	c.urlParams_.Set("alt", alt)
63848	c.urlParams_.Set("prettyPrint", "false")
63849	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/addresses/{resource}/testIamPermissions")
63850	urls += "?" + c.urlParams_.Encode()
63851	req, err := http.NewRequest("POST", urls, body)
63852	if err != nil {
63853		return nil, err
63854	}
63855	req.Header = reqHeaders
63856	googleapi.Expand(req.URL, map[string]string{
63857		"project":  c.project,
63858		"resource": c.resource,
63859	})
63860	return gensupport.SendRequest(c.ctx_, c.s.client, req)
63861}
63862
63863// Do executes the "compute.globalAddresses.testIamPermissions" call.
63864// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
63865// non-2xx status code is an error. Response headers are in either
63866// *TestPermissionsResponse.ServerResponse.Header or (if a response was
63867// returned at all) in error.(*googleapi.Error).Header. Use
63868// googleapi.IsNotModified to check whether the returned error was
63869// because http.StatusNotModified was returned.
63870func (c *GlobalAddressesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
63871	gensupport.SetOptions(c.urlParams_, opts...)
63872	res, err := c.doRequest("json")
63873	if res != nil && res.StatusCode == http.StatusNotModified {
63874		if res.Body != nil {
63875			res.Body.Close()
63876		}
63877		return nil, &googleapi.Error{
63878			Code:   res.StatusCode,
63879			Header: res.Header,
63880		}
63881	}
63882	if err != nil {
63883		return nil, err
63884	}
63885	defer googleapi.CloseBody(res)
63886	if err := googleapi.CheckResponse(res); err != nil {
63887		return nil, err
63888	}
63889	ret := &TestPermissionsResponse{
63890		ServerResponse: googleapi.ServerResponse{
63891			Header:         res.Header,
63892			HTTPStatusCode: res.StatusCode,
63893		},
63894	}
63895	target := &ret
63896	if err := gensupport.DecodeResponse(target, res); err != nil {
63897		return nil, err
63898	}
63899	return ret, nil
63900	// {
63901	//   "description": "Returns permissions that a caller has on the specified resource. (== suppress_warning http-rest-shadowed ==)",
63902	//   "httpMethod": "POST",
63903	//   "id": "compute.globalAddresses.testIamPermissions",
63904	//   "parameterOrder": [
63905	//     "project",
63906	//     "resource"
63907	//   ],
63908	//   "parameters": {
63909	//     "project": {
63910	//       "description": "Project ID for this request.",
63911	//       "location": "path",
63912	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
63913	//       "required": true,
63914	//       "type": "string"
63915	//     },
63916	//     "resource": {
63917	//       "description": "Name or id of the resource for this request.",
63918	//       "location": "path",
63919	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
63920	//       "required": true,
63921	//       "type": "string"
63922	//     }
63923	//   },
63924	//   "path": "{project}/global/addresses/{resource}/testIamPermissions",
63925	//   "request": {
63926	//     "$ref": "TestPermissionsRequest"
63927	//   },
63928	//   "response": {
63929	//     "$ref": "TestPermissionsResponse"
63930	//   },
63931	//   "scopes": [
63932	//     "https://www.googleapis.com/auth/cloud-platform",
63933	//     "https://www.googleapis.com/auth/compute",
63934	//     "https://www.googleapis.com/auth/compute.readonly"
63935	//   ]
63936	// }
63937
63938}
63939
63940// method id "compute.globalForwardingRules.delete":
63941
63942type GlobalForwardingRulesDeleteCall struct {
63943	s              *Service
63944	project        string
63945	forwardingRule string
63946	urlParams_     gensupport.URLParams
63947	ctx_           context.Context
63948	header_        http.Header
63949}
63950
63951// Delete: Deletes the specified GlobalForwardingRule resource. (==
63952// suppress_warning http-rest-shadowed ==)
63953// For details, see https://cloud.google.com/compute/docs/reference/latest/globalForwardingRules/delete
63954func (r *GlobalForwardingRulesService) Delete(project string, forwardingRule string) *GlobalForwardingRulesDeleteCall {
63955	c := &GlobalForwardingRulesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
63956	c.project = project
63957	c.forwardingRule = forwardingRule
63958	return c
63959}
63960
63961// RequestId sets the optional parameter "requestId": An optional
63962// request ID to identify requests. Specify a unique request ID so that
63963// if you must retry your request, the server will know to ignore the
63964// request if it has already been completed.
63965//
63966// For example, consider a situation where you make an initial request
63967// and the request times out. If you make the request again with the
63968// same request ID, the server can check if original operation with the
63969// same request ID was received, and if so, will ignore the second
63970// request. This prevents clients from accidentally creating duplicate
63971// commitments.
63972//
63973// The request ID must be a valid UUID with the exception that zero UUID
63974// is not supported (00000000-0000-0000-0000-000000000000).
63975func (c *GlobalForwardingRulesDeleteCall) RequestId(requestId string) *GlobalForwardingRulesDeleteCall {
63976	c.urlParams_.Set("requestId", requestId)
63977	return c
63978}
63979
63980// Fields allows partial responses to be retrieved. See
63981// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
63982// for more information.
63983func (c *GlobalForwardingRulesDeleteCall) Fields(s ...googleapi.Field) *GlobalForwardingRulesDeleteCall {
63984	c.urlParams_.Set("fields", googleapi.CombineFields(s))
63985	return c
63986}
63987
63988// Context sets the context to be used in this call's Do method. Any
63989// pending HTTP request will be aborted if the provided context is
63990// canceled.
63991func (c *GlobalForwardingRulesDeleteCall) Context(ctx context.Context) *GlobalForwardingRulesDeleteCall {
63992	c.ctx_ = ctx
63993	return c
63994}
63995
63996// Header returns an http.Header that can be modified by the caller to
63997// add HTTP headers to the request.
63998func (c *GlobalForwardingRulesDeleteCall) Header() http.Header {
63999	if c.header_ == nil {
64000		c.header_ = make(http.Header)
64001	}
64002	return c.header_
64003}
64004
64005func (c *GlobalForwardingRulesDeleteCall) doRequest(alt string) (*http.Response, error) {
64006	reqHeaders := make(http.Header)
64007	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
64008	for k, v := range c.header_ {
64009		reqHeaders[k] = v
64010	}
64011	reqHeaders.Set("User-Agent", c.s.userAgent())
64012	var body io.Reader = nil
64013	c.urlParams_.Set("alt", alt)
64014	c.urlParams_.Set("prettyPrint", "false")
64015	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/forwardingRules/{forwardingRule}")
64016	urls += "?" + c.urlParams_.Encode()
64017	req, err := http.NewRequest("DELETE", urls, body)
64018	if err != nil {
64019		return nil, err
64020	}
64021	req.Header = reqHeaders
64022	googleapi.Expand(req.URL, map[string]string{
64023		"project":        c.project,
64024		"forwardingRule": c.forwardingRule,
64025	})
64026	return gensupport.SendRequest(c.ctx_, c.s.client, req)
64027}
64028
64029// Do executes the "compute.globalForwardingRules.delete" call.
64030// Exactly one of *Operation or error will be non-nil. Any non-2xx
64031// status code is an error. Response headers are in either
64032// *Operation.ServerResponse.Header or (if a response was returned at
64033// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
64034// to check whether the returned error was because
64035// http.StatusNotModified was returned.
64036func (c *GlobalForwardingRulesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
64037	gensupport.SetOptions(c.urlParams_, opts...)
64038	res, err := c.doRequest("json")
64039	if res != nil && res.StatusCode == http.StatusNotModified {
64040		if res.Body != nil {
64041			res.Body.Close()
64042		}
64043		return nil, &googleapi.Error{
64044			Code:   res.StatusCode,
64045			Header: res.Header,
64046		}
64047	}
64048	if err != nil {
64049		return nil, err
64050	}
64051	defer googleapi.CloseBody(res)
64052	if err := googleapi.CheckResponse(res); err != nil {
64053		return nil, err
64054	}
64055	ret := &Operation{
64056		ServerResponse: googleapi.ServerResponse{
64057			Header:         res.Header,
64058			HTTPStatusCode: res.StatusCode,
64059		},
64060	}
64061	target := &ret
64062	if err := gensupport.DecodeResponse(target, res); err != nil {
64063		return nil, err
64064	}
64065	return ret, nil
64066	// {
64067	//   "description": "Deletes the specified GlobalForwardingRule resource. (== suppress_warning http-rest-shadowed ==)",
64068	//   "httpMethod": "DELETE",
64069	//   "id": "compute.globalForwardingRules.delete",
64070	//   "parameterOrder": [
64071	//     "project",
64072	//     "forwardingRule"
64073	//   ],
64074	//   "parameters": {
64075	//     "forwardingRule": {
64076	//       "description": "Name of the ForwardingRule resource to delete.",
64077	//       "location": "path",
64078	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
64079	//       "required": true,
64080	//       "type": "string"
64081	//     },
64082	//     "project": {
64083	//       "description": "Project ID for this request.",
64084	//       "location": "path",
64085	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
64086	//       "required": true,
64087	//       "type": "string"
64088	//     },
64089	//     "requestId": {
64090	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
64091	//       "location": "query",
64092	//       "type": "string"
64093	//     }
64094	//   },
64095	//   "path": "{project}/global/forwardingRules/{forwardingRule}",
64096	//   "response": {
64097	//     "$ref": "Operation"
64098	//   },
64099	//   "scopes": [
64100	//     "https://www.googleapis.com/auth/cloud-platform",
64101	//     "https://www.googleapis.com/auth/compute"
64102	//   ]
64103	// }
64104
64105}
64106
64107// method id "compute.globalForwardingRules.get":
64108
64109type GlobalForwardingRulesGetCall struct {
64110	s              *Service
64111	project        string
64112	forwardingRule string
64113	urlParams_     gensupport.URLParams
64114	ifNoneMatch_   string
64115	ctx_           context.Context
64116	header_        http.Header
64117}
64118
64119// Get: Returns the specified GlobalForwardingRule resource. Gets a list
64120// of available forwarding rules by making a list() request. (==
64121// suppress_warning http-rest-shadowed ==)
64122// For details, see https://cloud.google.com/compute/docs/reference/latest/globalForwardingRules/get
64123func (r *GlobalForwardingRulesService) Get(project string, forwardingRule string) *GlobalForwardingRulesGetCall {
64124	c := &GlobalForwardingRulesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
64125	c.project = project
64126	c.forwardingRule = forwardingRule
64127	return c
64128}
64129
64130// Fields allows partial responses to be retrieved. See
64131// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
64132// for more information.
64133func (c *GlobalForwardingRulesGetCall) Fields(s ...googleapi.Field) *GlobalForwardingRulesGetCall {
64134	c.urlParams_.Set("fields", googleapi.CombineFields(s))
64135	return c
64136}
64137
64138// IfNoneMatch sets the optional parameter which makes the operation
64139// fail if the object's ETag matches the given value. This is useful for
64140// getting updates only after the object has changed since the last
64141// request. Use googleapi.IsNotModified to check whether the response
64142// error from Do is the result of In-None-Match.
64143func (c *GlobalForwardingRulesGetCall) IfNoneMatch(entityTag string) *GlobalForwardingRulesGetCall {
64144	c.ifNoneMatch_ = entityTag
64145	return c
64146}
64147
64148// Context sets the context to be used in this call's Do method. Any
64149// pending HTTP request will be aborted if the provided context is
64150// canceled.
64151func (c *GlobalForwardingRulesGetCall) Context(ctx context.Context) *GlobalForwardingRulesGetCall {
64152	c.ctx_ = ctx
64153	return c
64154}
64155
64156// Header returns an http.Header that can be modified by the caller to
64157// add HTTP headers to the request.
64158func (c *GlobalForwardingRulesGetCall) Header() http.Header {
64159	if c.header_ == nil {
64160		c.header_ = make(http.Header)
64161	}
64162	return c.header_
64163}
64164
64165func (c *GlobalForwardingRulesGetCall) doRequest(alt string) (*http.Response, error) {
64166	reqHeaders := make(http.Header)
64167	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
64168	for k, v := range c.header_ {
64169		reqHeaders[k] = v
64170	}
64171	reqHeaders.Set("User-Agent", c.s.userAgent())
64172	if c.ifNoneMatch_ != "" {
64173		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
64174	}
64175	var body io.Reader = nil
64176	c.urlParams_.Set("alt", alt)
64177	c.urlParams_.Set("prettyPrint", "false")
64178	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/forwardingRules/{forwardingRule}")
64179	urls += "?" + c.urlParams_.Encode()
64180	req, err := http.NewRequest("GET", urls, body)
64181	if err != nil {
64182		return nil, err
64183	}
64184	req.Header = reqHeaders
64185	googleapi.Expand(req.URL, map[string]string{
64186		"project":        c.project,
64187		"forwardingRule": c.forwardingRule,
64188	})
64189	return gensupport.SendRequest(c.ctx_, c.s.client, req)
64190}
64191
64192// Do executes the "compute.globalForwardingRules.get" call.
64193// Exactly one of *ForwardingRule or error will be non-nil. Any non-2xx
64194// status code is an error. Response headers are in either
64195// *ForwardingRule.ServerResponse.Header or (if a response was returned
64196// at all) in error.(*googleapi.Error).Header. Use
64197// googleapi.IsNotModified to check whether the returned error was
64198// because http.StatusNotModified was returned.
64199func (c *GlobalForwardingRulesGetCall) Do(opts ...googleapi.CallOption) (*ForwardingRule, error) {
64200	gensupport.SetOptions(c.urlParams_, opts...)
64201	res, err := c.doRequest("json")
64202	if res != nil && res.StatusCode == http.StatusNotModified {
64203		if res.Body != nil {
64204			res.Body.Close()
64205		}
64206		return nil, &googleapi.Error{
64207			Code:   res.StatusCode,
64208			Header: res.Header,
64209		}
64210	}
64211	if err != nil {
64212		return nil, err
64213	}
64214	defer googleapi.CloseBody(res)
64215	if err := googleapi.CheckResponse(res); err != nil {
64216		return nil, err
64217	}
64218	ret := &ForwardingRule{
64219		ServerResponse: googleapi.ServerResponse{
64220			Header:         res.Header,
64221			HTTPStatusCode: res.StatusCode,
64222		},
64223	}
64224	target := &ret
64225	if err := gensupport.DecodeResponse(target, res); err != nil {
64226		return nil, err
64227	}
64228	return ret, nil
64229	// {
64230	//   "description": "Returns the specified GlobalForwardingRule resource. Gets a list of available forwarding rules by making a list() request. (== suppress_warning http-rest-shadowed ==)",
64231	//   "httpMethod": "GET",
64232	//   "id": "compute.globalForwardingRules.get",
64233	//   "parameterOrder": [
64234	//     "project",
64235	//     "forwardingRule"
64236	//   ],
64237	//   "parameters": {
64238	//     "forwardingRule": {
64239	//       "description": "Name of the ForwardingRule resource to return.",
64240	//       "location": "path",
64241	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
64242	//       "required": true,
64243	//       "type": "string"
64244	//     },
64245	//     "project": {
64246	//       "description": "Project ID for this request.",
64247	//       "location": "path",
64248	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
64249	//       "required": true,
64250	//       "type": "string"
64251	//     }
64252	//   },
64253	//   "path": "{project}/global/forwardingRules/{forwardingRule}",
64254	//   "response": {
64255	//     "$ref": "ForwardingRule"
64256	//   },
64257	//   "scopes": [
64258	//     "https://www.googleapis.com/auth/cloud-platform",
64259	//     "https://www.googleapis.com/auth/compute",
64260	//     "https://www.googleapis.com/auth/compute.readonly"
64261	//   ]
64262	// }
64263
64264}
64265
64266// method id "compute.globalForwardingRules.insert":
64267
64268type GlobalForwardingRulesInsertCall struct {
64269	s              *Service
64270	project        string
64271	forwardingrule *ForwardingRule
64272	urlParams_     gensupport.URLParams
64273	ctx_           context.Context
64274	header_        http.Header
64275}
64276
64277// Insert: Creates a GlobalForwardingRule resource in the specified
64278// project using the data included in the request. (== suppress_warning
64279// http-rest-shadowed ==)
64280// For details, see https://cloud.google.com/compute/docs/reference/latest/globalForwardingRules/insert
64281func (r *GlobalForwardingRulesService) Insert(project string, forwardingrule *ForwardingRule) *GlobalForwardingRulesInsertCall {
64282	c := &GlobalForwardingRulesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
64283	c.project = project
64284	c.forwardingrule = forwardingrule
64285	return c
64286}
64287
64288// RequestId sets the optional parameter "requestId": An optional
64289// request ID to identify requests. Specify a unique request ID so that
64290// if you must retry your request, the server will know to ignore the
64291// request if it has already been completed.
64292//
64293// For example, consider a situation where you make an initial request
64294// and the request times out. If you make the request again with the
64295// same request ID, the server can check if original operation with the
64296// same request ID was received, and if so, will ignore the second
64297// request. This prevents clients from accidentally creating duplicate
64298// commitments.
64299//
64300// The request ID must be a valid UUID with the exception that zero UUID
64301// is not supported (00000000-0000-0000-0000-000000000000).
64302func (c *GlobalForwardingRulesInsertCall) RequestId(requestId string) *GlobalForwardingRulesInsertCall {
64303	c.urlParams_.Set("requestId", requestId)
64304	return c
64305}
64306
64307// Fields allows partial responses to be retrieved. See
64308// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
64309// for more information.
64310func (c *GlobalForwardingRulesInsertCall) Fields(s ...googleapi.Field) *GlobalForwardingRulesInsertCall {
64311	c.urlParams_.Set("fields", googleapi.CombineFields(s))
64312	return c
64313}
64314
64315// Context sets the context to be used in this call's Do method. Any
64316// pending HTTP request will be aborted if the provided context is
64317// canceled.
64318func (c *GlobalForwardingRulesInsertCall) Context(ctx context.Context) *GlobalForwardingRulesInsertCall {
64319	c.ctx_ = ctx
64320	return c
64321}
64322
64323// Header returns an http.Header that can be modified by the caller to
64324// add HTTP headers to the request.
64325func (c *GlobalForwardingRulesInsertCall) Header() http.Header {
64326	if c.header_ == nil {
64327		c.header_ = make(http.Header)
64328	}
64329	return c.header_
64330}
64331
64332func (c *GlobalForwardingRulesInsertCall) doRequest(alt string) (*http.Response, error) {
64333	reqHeaders := make(http.Header)
64334	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
64335	for k, v := range c.header_ {
64336		reqHeaders[k] = v
64337	}
64338	reqHeaders.Set("User-Agent", c.s.userAgent())
64339	var body io.Reader = nil
64340	body, err := googleapi.WithoutDataWrapper.JSONReader(c.forwardingrule)
64341	if err != nil {
64342		return nil, err
64343	}
64344	reqHeaders.Set("Content-Type", "application/json")
64345	c.urlParams_.Set("alt", alt)
64346	c.urlParams_.Set("prettyPrint", "false")
64347	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/forwardingRules")
64348	urls += "?" + c.urlParams_.Encode()
64349	req, err := http.NewRequest("POST", urls, body)
64350	if err != nil {
64351		return nil, err
64352	}
64353	req.Header = reqHeaders
64354	googleapi.Expand(req.URL, map[string]string{
64355		"project": c.project,
64356	})
64357	return gensupport.SendRequest(c.ctx_, c.s.client, req)
64358}
64359
64360// Do executes the "compute.globalForwardingRules.insert" call.
64361// Exactly one of *Operation or error will be non-nil. Any non-2xx
64362// status code is an error. Response headers are in either
64363// *Operation.ServerResponse.Header or (if a response was returned at
64364// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
64365// to check whether the returned error was because
64366// http.StatusNotModified was returned.
64367func (c *GlobalForwardingRulesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
64368	gensupport.SetOptions(c.urlParams_, opts...)
64369	res, err := c.doRequest("json")
64370	if res != nil && res.StatusCode == http.StatusNotModified {
64371		if res.Body != nil {
64372			res.Body.Close()
64373		}
64374		return nil, &googleapi.Error{
64375			Code:   res.StatusCode,
64376			Header: res.Header,
64377		}
64378	}
64379	if err != nil {
64380		return nil, err
64381	}
64382	defer googleapi.CloseBody(res)
64383	if err := googleapi.CheckResponse(res); err != nil {
64384		return nil, err
64385	}
64386	ret := &Operation{
64387		ServerResponse: googleapi.ServerResponse{
64388			Header:         res.Header,
64389			HTTPStatusCode: res.StatusCode,
64390		},
64391	}
64392	target := &ret
64393	if err := gensupport.DecodeResponse(target, res); err != nil {
64394		return nil, err
64395	}
64396	return ret, nil
64397	// {
64398	//   "description": "Creates a GlobalForwardingRule resource in the specified project using the data included in the request. (== suppress_warning http-rest-shadowed ==)",
64399	//   "httpMethod": "POST",
64400	//   "id": "compute.globalForwardingRules.insert",
64401	//   "parameterOrder": [
64402	//     "project"
64403	//   ],
64404	//   "parameters": {
64405	//     "project": {
64406	//       "description": "Project ID for this request.",
64407	//       "location": "path",
64408	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
64409	//       "required": true,
64410	//       "type": "string"
64411	//     },
64412	//     "requestId": {
64413	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
64414	//       "location": "query",
64415	//       "type": "string"
64416	//     }
64417	//   },
64418	//   "path": "{project}/global/forwardingRules",
64419	//   "request": {
64420	//     "$ref": "ForwardingRule"
64421	//   },
64422	//   "response": {
64423	//     "$ref": "Operation"
64424	//   },
64425	//   "scopes": [
64426	//     "https://www.googleapis.com/auth/cloud-platform",
64427	//     "https://www.googleapis.com/auth/compute"
64428	//   ]
64429	// }
64430
64431}
64432
64433// method id "compute.globalForwardingRules.list":
64434
64435type GlobalForwardingRulesListCall struct {
64436	s            *Service
64437	project      string
64438	urlParams_   gensupport.URLParams
64439	ifNoneMatch_ string
64440	ctx_         context.Context
64441	header_      http.Header
64442}
64443
64444// List: Retrieves a list of GlobalForwardingRule resources available to
64445// the specified project. (== suppress_warning http-rest-shadowed ==)
64446// For details, see https://cloud.google.com/compute/docs/reference/latest/globalForwardingRules/list
64447func (r *GlobalForwardingRulesService) List(project string) *GlobalForwardingRulesListCall {
64448	c := &GlobalForwardingRulesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
64449	c.project = project
64450	return c
64451}
64452
64453// Filter sets the optional parameter "filter": A filter expression that
64454// filters resources listed in the response. The expression must specify
64455// the field name, a comparison operator, and the value that you want to
64456// use for filtering. The value must be a string, a number, or a
64457// boolean. The comparison operator must be either =, !=, >, or <.
64458//
64459// For example, if you are filtering Compute Engine instances, you can
64460// exclude instances named example-instance by specifying name !=
64461// example-instance.
64462//
64463// You can also filter nested fields. For example, you could specify
64464// scheduling.automaticRestart = false to include instances only if they
64465// are not scheduled for automatic restarts. You can use filtering on
64466// nested fields to filter based on resource labels.
64467//
64468// To filter on multiple expressions, provide each separate expression
64469// within parentheses. For example, (scheduling.automaticRestart = true)
64470// (cpuPlatform = "Intel Skylake"). By default, each expression is an
64471// AND expression. However, you can include AND and OR expressions
64472// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
64473// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
64474// true).
64475func (c *GlobalForwardingRulesListCall) Filter(filter string) *GlobalForwardingRulesListCall {
64476	c.urlParams_.Set("filter", filter)
64477	return c
64478}
64479
64480// MaxResults sets the optional parameter "maxResults": The maximum
64481// number of results per page that should be returned. If the number of
64482// available results is larger than maxResults, Compute Engine returns a
64483// nextPageToken that can be used to get the next page of results in
64484// subsequent list requests. Acceptable values are 0 to 500, inclusive.
64485// (Default: 500)
64486func (c *GlobalForwardingRulesListCall) MaxResults(maxResults int64) *GlobalForwardingRulesListCall {
64487	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
64488	return c
64489}
64490
64491// OrderBy sets the optional parameter "orderBy": Sorts list results by
64492// a certain order. By default, results are returned in alphanumerical
64493// order based on the resource name.
64494//
64495// You can also sort results in descending order based on the creation
64496// timestamp using orderBy="creationTimestamp desc". This sorts results
64497// based on the creationTimestamp field in reverse chronological order
64498// (newest result first). Use this to sort resources like operations so
64499// that the newest operation is returned first.
64500//
64501// Currently, only sorting by name or creationTimestamp desc is
64502// supported.
64503func (c *GlobalForwardingRulesListCall) OrderBy(orderBy string) *GlobalForwardingRulesListCall {
64504	c.urlParams_.Set("orderBy", orderBy)
64505	return c
64506}
64507
64508// PageToken sets the optional parameter "pageToken": Specifies a page
64509// token to use. Set pageToken to the nextPageToken returned by a
64510// previous list request to get the next page of results.
64511func (c *GlobalForwardingRulesListCall) PageToken(pageToken string) *GlobalForwardingRulesListCall {
64512	c.urlParams_.Set("pageToken", pageToken)
64513	return c
64514}
64515
64516// Fields allows partial responses to be retrieved. See
64517// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
64518// for more information.
64519func (c *GlobalForwardingRulesListCall) Fields(s ...googleapi.Field) *GlobalForwardingRulesListCall {
64520	c.urlParams_.Set("fields", googleapi.CombineFields(s))
64521	return c
64522}
64523
64524// IfNoneMatch sets the optional parameter which makes the operation
64525// fail if the object's ETag matches the given value. This is useful for
64526// getting updates only after the object has changed since the last
64527// request. Use googleapi.IsNotModified to check whether the response
64528// error from Do is the result of In-None-Match.
64529func (c *GlobalForwardingRulesListCall) IfNoneMatch(entityTag string) *GlobalForwardingRulesListCall {
64530	c.ifNoneMatch_ = entityTag
64531	return c
64532}
64533
64534// Context sets the context to be used in this call's Do method. Any
64535// pending HTTP request will be aborted if the provided context is
64536// canceled.
64537func (c *GlobalForwardingRulesListCall) Context(ctx context.Context) *GlobalForwardingRulesListCall {
64538	c.ctx_ = ctx
64539	return c
64540}
64541
64542// Header returns an http.Header that can be modified by the caller to
64543// add HTTP headers to the request.
64544func (c *GlobalForwardingRulesListCall) Header() http.Header {
64545	if c.header_ == nil {
64546		c.header_ = make(http.Header)
64547	}
64548	return c.header_
64549}
64550
64551func (c *GlobalForwardingRulesListCall) doRequest(alt string) (*http.Response, error) {
64552	reqHeaders := make(http.Header)
64553	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
64554	for k, v := range c.header_ {
64555		reqHeaders[k] = v
64556	}
64557	reqHeaders.Set("User-Agent", c.s.userAgent())
64558	if c.ifNoneMatch_ != "" {
64559		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
64560	}
64561	var body io.Reader = nil
64562	c.urlParams_.Set("alt", alt)
64563	c.urlParams_.Set("prettyPrint", "false")
64564	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/forwardingRules")
64565	urls += "?" + c.urlParams_.Encode()
64566	req, err := http.NewRequest("GET", urls, body)
64567	if err != nil {
64568		return nil, err
64569	}
64570	req.Header = reqHeaders
64571	googleapi.Expand(req.URL, map[string]string{
64572		"project": c.project,
64573	})
64574	return gensupport.SendRequest(c.ctx_, c.s.client, req)
64575}
64576
64577// Do executes the "compute.globalForwardingRules.list" call.
64578// Exactly one of *ForwardingRuleList or error will be non-nil. Any
64579// non-2xx status code is an error. Response headers are in either
64580// *ForwardingRuleList.ServerResponse.Header or (if a response was
64581// returned at all) in error.(*googleapi.Error).Header. Use
64582// googleapi.IsNotModified to check whether the returned error was
64583// because http.StatusNotModified was returned.
64584func (c *GlobalForwardingRulesListCall) Do(opts ...googleapi.CallOption) (*ForwardingRuleList, error) {
64585	gensupport.SetOptions(c.urlParams_, opts...)
64586	res, err := c.doRequest("json")
64587	if res != nil && res.StatusCode == http.StatusNotModified {
64588		if res.Body != nil {
64589			res.Body.Close()
64590		}
64591		return nil, &googleapi.Error{
64592			Code:   res.StatusCode,
64593			Header: res.Header,
64594		}
64595	}
64596	if err != nil {
64597		return nil, err
64598	}
64599	defer googleapi.CloseBody(res)
64600	if err := googleapi.CheckResponse(res); err != nil {
64601		return nil, err
64602	}
64603	ret := &ForwardingRuleList{
64604		ServerResponse: googleapi.ServerResponse{
64605			Header:         res.Header,
64606			HTTPStatusCode: res.StatusCode,
64607		},
64608	}
64609	target := &ret
64610	if err := gensupport.DecodeResponse(target, res); err != nil {
64611		return nil, err
64612	}
64613	return ret, nil
64614	// {
64615	//   "description": "Retrieves a list of GlobalForwardingRule resources available to the specified project. (== suppress_warning http-rest-shadowed ==)",
64616	//   "httpMethod": "GET",
64617	//   "id": "compute.globalForwardingRules.list",
64618	//   "parameterOrder": [
64619	//     "project"
64620	//   ],
64621	//   "parameters": {
64622	//     "filter": {
64623	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
64624	//       "location": "query",
64625	//       "type": "string"
64626	//     },
64627	//     "maxResults": {
64628	//       "default": "500",
64629	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
64630	//       "format": "uint32",
64631	//       "location": "query",
64632	//       "minimum": "0",
64633	//       "type": "integer"
64634	//     },
64635	//     "orderBy": {
64636	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
64637	//       "location": "query",
64638	//       "type": "string"
64639	//     },
64640	//     "pageToken": {
64641	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
64642	//       "location": "query",
64643	//       "type": "string"
64644	//     },
64645	//     "project": {
64646	//       "description": "Project ID for this request.",
64647	//       "location": "path",
64648	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
64649	//       "required": true,
64650	//       "type": "string"
64651	//     }
64652	//   },
64653	//   "path": "{project}/global/forwardingRules",
64654	//   "response": {
64655	//     "$ref": "ForwardingRuleList"
64656	//   },
64657	//   "scopes": [
64658	//     "https://www.googleapis.com/auth/cloud-platform",
64659	//     "https://www.googleapis.com/auth/compute",
64660	//     "https://www.googleapis.com/auth/compute.readonly"
64661	//   ]
64662	// }
64663
64664}
64665
64666// Pages invokes f for each page of results.
64667// A non-nil error returned from f will halt the iteration.
64668// The provided context supersedes any context provided to the Context method.
64669func (c *GlobalForwardingRulesListCall) Pages(ctx context.Context, f func(*ForwardingRuleList) error) error {
64670	c.ctx_ = ctx
64671	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
64672	for {
64673		x, err := c.Do()
64674		if err != nil {
64675			return err
64676		}
64677		if err := f(x); err != nil {
64678			return err
64679		}
64680		if x.NextPageToken == "" {
64681			return nil
64682		}
64683		c.PageToken(x.NextPageToken)
64684	}
64685}
64686
64687// method id "compute.globalForwardingRules.patch":
64688
64689type GlobalForwardingRulesPatchCall struct {
64690	s              *Service
64691	project        string
64692	forwardingRule string
64693	forwardingrule *ForwardingRule
64694	urlParams_     gensupport.URLParams
64695	ctx_           context.Context
64696	header_        http.Header
64697}
64698
64699// Patch: Updates the specified forwarding rule with the data included
64700// in the request. This method supports PATCH semantics and uses the
64701// JSON merge patch format and processing rules. Currently, you can only
64702// patch the network_tier field. (== suppress_warning http-rest-shadowed
64703// ==)
64704func (r *GlobalForwardingRulesService) Patch(project string, forwardingRule string, forwardingrule *ForwardingRule) *GlobalForwardingRulesPatchCall {
64705	c := &GlobalForwardingRulesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
64706	c.project = project
64707	c.forwardingRule = forwardingRule
64708	c.forwardingrule = forwardingrule
64709	return c
64710}
64711
64712// RequestId sets the optional parameter "requestId": An optional
64713// request ID to identify requests. Specify a unique request ID so that
64714// if you must retry your request, the server will know to ignore the
64715// request if it has already been completed.
64716//
64717// For example, consider a situation where you make an initial request
64718// and the request times out. If you make the request again with the
64719// same request ID, the server can check if original operation with the
64720// same request ID was received, and if so, will ignore the second
64721// request. This prevents clients from accidentally creating duplicate
64722// commitments.
64723//
64724// The request ID must be a valid UUID with the exception that zero UUID
64725// is not supported (00000000-0000-0000-0000-000000000000).
64726func (c *GlobalForwardingRulesPatchCall) RequestId(requestId string) *GlobalForwardingRulesPatchCall {
64727	c.urlParams_.Set("requestId", requestId)
64728	return c
64729}
64730
64731// Fields allows partial responses to be retrieved. See
64732// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
64733// for more information.
64734func (c *GlobalForwardingRulesPatchCall) Fields(s ...googleapi.Field) *GlobalForwardingRulesPatchCall {
64735	c.urlParams_.Set("fields", googleapi.CombineFields(s))
64736	return c
64737}
64738
64739// Context sets the context to be used in this call's Do method. Any
64740// pending HTTP request will be aborted if the provided context is
64741// canceled.
64742func (c *GlobalForwardingRulesPatchCall) Context(ctx context.Context) *GlobalForwardingRulesPatchCall {
64743	c.ctx_ = ctx
64744	return c
64745}
64746
64747// Header returns an http.Header that can be modified by the caller to
64748// add HTTP headers to the request.
64749func (c *GlobalForwardingRulesPatchCall) Header() http.Header {
64750	if c.header_ == nil {
64751		c.header_ = make(http.Header)
64752	}
64753	return c.header_
64754}
64755
64756func (c *GlobalForwardingRulesPatchCall) doRequest(alt string) (*http.Response, error) {
64757	reqHeaders := make(http.Header)
64758	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
64759	for k, v := range c.header_ {
64760		reqHeaders[k] = v
64761	}
64762	reqHeaders.Set("User-Agent", c.s.userAgent())
64763	var body io.Reader = nil
64764	body, err := googleapi.WithoutDataWrapper.JSONReader(c.forwardingrule)
64765	if err != nil {
64766		return nil, err
64767	}
64768	reqHeaders.Set("Content-Type", "application/json")
64769	c.urlParams_.Set("alt", alt)
64770	c.urlParams_.Set("prettyPrint", "false")
64771	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/forwardingRules/{forwardingRule}")
64772	urls += "?" + c.urlParams_.Encode()
64773	req, err := http.NewRequest("PATCH", urls, body)
64774	if err != nil {
64775		return nil, err
64776	}
64777	req.Header = reqHeaders
64778	googleapi.Expand(req.URL, map[string]string{
64779		"project":        c.project,
64780		"forwardingRule": c.forwardingRule,
64781	})
64782	return gensupport.SendRequest(c.ctx_, c.s.client, req)
64783}
64784
64785// Do executes the "compute.globalForwardingRules.patch" call.
64786// Exactly one of *Operation or error will be non-nil. Any non-2xx
64787// status code is an error. Response headers are in either
64788// *Operation.ServerResponse.Header or (if a response was returned at
64789// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
64790// to check whether the returned error was because
64791// http.StatusNotModified was returned.
64792func (c *GlobalForwardingRulesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
64793	gensupport.SetOptions(c.urlParams_, opts...)
64794	res, err := c.doRequest("json")
64795	if res != nil && res.StatusCode == http.StatusNotModified {
64796		if res.Body != nil {
64797			res.Body.Close()
64798		}
64799		return nil, &googleapi.Error{
64800			Code:   res.StatusCode,
64801			Header: res.Header,
64802		}
64803	}
64804	if err != nil {
64805		return nil, err
64806	}
64807	defer googleapi.CloseBody(res)
64808	if err := googleapi.CheckResponse(res); err != nil {
64809		return nil, err
64810	}
64811	ret := &Operation{
64812		ServerResponse: googleapi.ServerResponse{
64813			Header:         res.Header,
64814			HTTPStatusCode: res.StatusCode,
64815		},
64816	}
64817	target := &ret
64818	if err := gensupport.DecodeResponse(target, res); err != nil {
64819		return nil, err
64820	}
64821	return ret, nil
64822	// {
64823	//   "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. (== suppress_warning http-rest-shadowed ==)",
64824	//   "httpMethod": "PATCH",
64825	//   "id": "compute.globalForwardingRules.patch",
64826	//   "parameterOrder": [
64827	//     "project",
64828	//     "forwardingRule"
64829	//   ],
64830	//   "parameters": {
64831	//     "forwardingRule": {
64832	//       "description": "Name of the ForwardingRule resource to patch.",
64833	//       "location": "path",
64834	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
64835	//       "required": true,
64836	//       "type": "string"
64837	//     },
64838	//     "project": {
64839	//       "description": "Project ID for this request.",
64840	//       "location": "path",
64841	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
64842	//       "required": true,
64843	//       "type": "string"
64844	//     },
64845	//     "requestId": {
64846	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
64847	//       "location": "query",
64848	//       "type": "string"
64849	//     }
64850	//   },
64851	//   "path": "{project}/global/forwardingRules/{forwardingRule}",
64852	//   "request": {
64853	//     "$ref": "ForwardingRule"
64854	//   },
64855	//   "response": {
64856	//     "$ref": "Operation"
64857	//   },
64858	//   "scopes": [
64859	//     "https://www.googleapis.com/auth/cloud-platform",
64860	//     "https://www.googleapis.com/auth/compute"
64861	//   ]
64862	// }
64863
64864}
64865
64866// method id "compute.globalForwardingRules.setLabels":
64867
64868type GlobalForwardingRulesSetLabelsCall struct {
64869	s                      *Service
64870	project                string
64871	resource               string
64872	globalsetlabelsrequest *GlobalSetLabelsRequest
64873	urlParams_             gensupport.URLParams
64874	ctx_                   context.Context
64875	header_                http.Header
64876}
64877
64878// SetLabels: Sets the labels on the specified resource. To learn more
64879// about labels, read the Labeling Resources documentation. (==
64880// suppress_warning http-rest-shadowed ==)
64881func (r *GlobalForwardingRulesService) SetLabels(project string, resource string, globalsetlabelsrequest *GlobalSetLabelsRequest) *GlobalForwardingRulesSetLabelsCall {
64882	c := &GlobalForwardingRulesSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
64883	c.project = project
64884	c.resource = resource
64885	c.globalsetlabelsrequest = globalsetlabelsrequest
64886	return c
64887}
64888
64889// Fields allows partial responses to be retrieved. See
64890// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
64891// for more information.
64892func (c *GlobalForwardingRulesSetLabelsCall) Fields(s ...googleapi.Field) *GlobalForwardingRulesSetLabelsCall {
64893	c.urlParams_.Set("fields", googleapi.CombineFields(s))
64894	return c
64895}
64896
64897// Context sets the context to be used in this call's Do method. Any
64898// pending HTTP request will be aborted if the provided context is
64899// canceled.
64900func (c *GlobalForwardingRulesSetLabelsCall) Context(ctx context.Context) *GlobalForwardingRulesSetLabelsCall {
64901	c.ctx_ = ctx
64902	return c
64903}
64904
64905// Header returns an http.Header that can be modified by the caller to
64906// add HTTP headers to the request.
64907func (c *GlobalForwardingRulesSetLabelsCall) Header() http.Header {
64908	if c.header_ == nil {
64909		c.header_ = make(http.Header)
64910	}
64911	return c.header_
64912}
64913
64914func (c *GlobalForwardingRulesSetLabelsCall) doRequest(alt string) (*http.Response, error) {
64915	reqHeaders := make(http.Header)
64916	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
64917	for k, v := range c.header_ {
64918		reqHeaders[k] = v
64919	}
64920	reqHeaders.Set("User-Agent", c.s.userAgent())
64921	var body io.Reader = nil
64922	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetlabelsrequest)
64923	if err != nil {
64924		return nil, err
64925	}
64926	reqHeaders.Set("Content-Type", "application/json")
64927	c.urlParams_.Set("alt", alt)
64928	c.urlParams_.Set("prettyPrint", "false")
64929	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/forwardingRules/{resource}/setLabels")
64930	urls += "?" + c.urlParams_.Encode()
64931	req, err := http.NewRequest("POST", urls, body)
64932	if err != nil {
64933		return nil, err
64934	}
64935	req.Header = reqHeaders
64936	googleapi.Expand(req.URL, map[string]string{
64937		"project":  c.project,
64938		"resource": c.resource,
64939	})
64940	return gensupport.SendRequest(c.ctx_, c.s.client, req)
64941}
64942
64943// Do executes the "compute.globalForwardingRules.setLabels" call.
64944// Exactly one of *Operation or error will be non-nil. Any non-2xx
64945// status code is an error. Response headers are in either
64946// *Operation.ServerResponse.Header or (if a response was returned at
64947// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
64948// to check whether the returned error was because
64949// http.StatusNotModified was returned.
64950func (c *GlobalForwardingRulesSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
64951	gensupport.SetOptions(c.urlParams_, opts...)
64952	res, err := c.doRequest("json")
64953	if res != nil && res.StatusCode == http.StatusNotModified {
64954		if res.Body != nil {
64955			res.Body.Close()
64956		}
64957		return nil, &googleapi.Error{
64958			Code:   res.StatusCode,
64959			Header: res.Header,
64960		}
64961	}
64962	if err != nil {
64963		return nil, err
64964	}
64965	defer googleapi.CloseBody(res)
64966	if err := googleapi.CheckResponse(res); err != nil {
64967		return nil, err
64968	}
64969	ret := &Operation{
64970		ServerResponse: googleapi.ServerResponse{
64971			Header:         res.Header,
64972			HTTPStatusCode: res.StatusCode,
64973		},
64974	}
64975	target := &ret
64976	if err := gensupport.DecodeResponse(target, res); err != nil {
64977		return nil, err
64978	}
64979	return ret, nil
64980	// {
64981	//   "description": "Sets the labels on the specified resource. To learn more about labels, read the Labeling Resources documentation. (== suppress_warning http-rest-shadowed ==)",
64982	//   "httpMethod": "POST",
64983	//   "id": "compute.globalForwardingRules.setLabels",
64984	//   "parameterOrder": [
64985	//     "project",
64986	//     "resource"
64987	//   ],
64988	//   "parameters": {
64989	//     "project": {
64990	//       "description": "Project ID for this request.",
64991	//       "location": "path",
64992	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
64993	//       "required": true,
64994	//       "type": "string"
64995	//     },
64996	//     "resource": {
64997	//       "description": "Name or id of the resource for this request.",
64998	//       "location": "path",
64999	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
65000	//       "required": true,
65001	//       "type": "string"
65002	//     }
65003	//   },
65004	//   "path": "{project}/global/forwardingRules/{resource}/setLabels",
65005	//   "request": {
65006	//     "$ref": "GlobalSetLabelsRequest"
65007	//   },
65008	//   "response": {
65009	//     "$ref": "Operation"
65010	//   },
65011	//   "scopes": [
65012	//     "https://www.googleapis.com/auth/cloud-platform",
65013	//     "https://www.googleapis.com/auth/compute"
65014	//   ]
65015	// }
65016
65017}
65018
65019// method id "compute.globalForwardingRules.setTarget":
65020
65021type GlobalForwardingRulesSetTargetCall struct {
65022	s               *Service
65023	project         string
65024	forwardingRule  string
65025	targetreference *TargetReference
65026	urlParams_      gensupport.URLParams
65027	ctx_            context.Context
65028	header_         http.Header
65029}
65030
65031// SetTarget: Changes target URL for the GlobalForwardingRule resource.
65032// The new target should be of the same type as the old target. (==
65033// suppress_warning http-rest-shadowed ==)
65034// For details, see https://cloud.google.com/compute/docs/reference/latest/globalForwardingRules/setTarget
65035func (r *GlobalForwardingRulesService) SetTarget(project string, forwardingRule string, targetreference *TargetReference) *GlobalForwardingRulesSetTargetCall {
65036	c := &GlobalForwardingRulesSetTargetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
65037	c.project = project
65038	c.forwardingRule = forwardingRule
65039	c.targetreference = targetreference
65040	return c
65041}
65042
65043// RequestId sets the optional parameter "requestId": An optional
65044// request ID to identify requests. Specify a unique request ID so that
65045// if you must retry your request, the server will know to ignore the
65046// request if it has already been completed.
65047//
65048// For example, consider a situation where you make an initial request
65049// and the request times out. If you make the request again with the
65050// same request ID, the server can check if original operation with the
65051// same request ID was received, and if so, will ignore the second
65052// request. This prevents clients from accidentally creating duplicate
65053// commitments.
65054//
65055// The request ID must be a valid UUID with the exception that zero UUID
65056// is not supported (00000000-0000-0000-0000-000000000000).
65057func (c *GlobalForwardingRulesSetTargetCall) RequestId(requestId string) *GlobalForwardingRulesSetTargetCall {
65058	c.urlParams_.Set("requestId", requestId)
65059	return c
65060}
65061
65062// Fields allows partial responses to be retrieved. See
65063// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
65064// for more information.
65065func (c *GlobalForwardingRulesSetTargetCall) Fields(s ...googleapi.Field) *GlobalForwardingRulesSetTargetCall {
65066	c.urlParams_.Set("fields", googleapi.CombineFields(s))
65067	return c
65068}
65069
65070// Context sets the context to be used in this call's Do method. Any
65071// pending HTTP request will be aborted if the provided context is
65072// canceled.
65073func (c *GlobalForwardingRulesSetTargetCall) Context(ctx context.Context) *GlobalForwardingRulesSetTargetCall {
65074	c.ctx_ = ctx
65075	return c
65076}
65077
65078// Header returns an http.Header that can be modified by the caller to
65079// add HTTP headers to the request.
65080func (c *GlobalForwardingRulesSetTargetCall) Header() http.Header {
65081	if c.header_ == nil {
65082		c.header_ = make(http.Header)
65083	}
65084	return c.header_
65085}
65086
65087func (c *GlobalForwardingRulesSetTargetCall) doRequest(alt string) (*http.Response, error) {
65088	reqHeaders := make(http.Header)
65089	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
65090	for k, v := range c.header_ {
65091		reqHeaders[k] = v
65092	}
65093	reqHeaders.Set("User-Agent", c.s.userAgent())
65094	var body io.Reader = nil
65095	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetreference)
65096	if err != nil {
65097		return nil, err
65098	}
65099	reqHeaders.Set("Content-Type", "application/json")
65100	c.urlParams_.Set("alt", alt)
65101	c.urlParams_.Set("prettyPrint", "false")
65102	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/forwardingRules/{forwardingRule}/setTarget")
65103	urls += "?" + c.urlParams_.Encode()
65104	req, err := http.NewRequest("POST", urls, body)
65105	if err != nil {
65106		return nil, err
65107	}
65108	req.Header = reqHeaders
65109	googleapi.Expand(req.URL, map[string]string{
65110		"project":        c.project,
65111		"forwardingRule": c.forwardingRule,
65112	})
65113	return gensupport.SendRequest(c.ctx_, c.s.client, req)
65114}
65115
65116// Do executes the "compute.globalForwardingRules.setTarget" call.
65117// Exactly one of *Operation or error will be non-nil. Any non-2xx
65118// status code is an error. Response headers are in either
65119// *Operation.ServerResponse.Header or (if a response was returned at
65120// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
65121// to check whether the returned error was because
65122// http.StatusNotModified was returned.
65123func (c *GlobalForwardingRulesSetTargetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
65124	gensupport.SetOptions(c.urlParams_, opts...)
65125	res, err := c.doRequest("json")
65126	if res != nil && res.StatusCode == http.StatusNotModified {
65127		if res.Body != nil {
65128			res.Body.Close()
65129		}
65130		return nil, &googleapi.Error{
65131			Code:   res.StatusCode,
65132			Header: res.Header,
65133		}
65134	}
65135	if err != nil {
65136		return nil, err
65137	}
65138	defer googleapi.CloseBody(res)
65139	if err := googleapi.CheckResponse(res); err != nil {
65140		return nil, err
65141	}
65142	ret := &Operation{
65143		ServerResponse: googleapi.ServerResponse{
65144			Header:         res.Header,
65145			HTTPStatusCode: res.StatusCode,
65146		},
65147	}
65148	target := &ret
65149	if err := gensupport.DecodeResponse(target, res); err != nil {
65150		return nil, err
65151	}
65152	return ret, nil
65153	// {
65154	//   "description": "Changes target URL for the GlobalForwardingRule resource. The new target should be of the same type as the old target. (== suppress_warning http-rest-shadowed ==)",
65155	//   "httpMethod": "POST",
65156	//   "id": "compute.globalForwardingRules.setTarget",
65157	//   "parameterOrder": [
65158	//     "project",
65159	//     "forwardingRule"
65160	//   ],
65161	//   "parameters": {
65162	//     "forwardingRule": {
65163	//       "description": "Name of the ForwardingRule resource in which target is to be set.",
65164	//       "location": "path",
65165	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
65166	//       "required": true,
65167	//       "type": "string"
65168	//     },
65169	//     "project": {
65170	//       "description": "Project ID for this request.",
65171	//       "location": "path",
65172	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
65173	//       "required": true,
65174	//       "type": "string"
65175	//     },
65176	//     "requestId": {
65177	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
65178	//       "location": "query",
65179	//       "type": "string"
65180	//     }
65181	//   },
65182	//   "path": "{project}/global/forwardingRules/{forwardingRule}/setTarget",
65183	//   "request": {
65184	//     "$ref": "TargetReference"
65185	//   },
65186	//   "response": {
65187	//     "$ref": "Operation"
65188	//   },
65189	//   "scopes": [
65190	//     "https://www.googleapis.com/auth/cloud-platform",
65191	//     "https://www.googleapis.com/auth/compute"
65192	//   ]
65193	// }
65194
65195}
65196
65197// method id "compute.globalForwardingRules.testIamPermissions":
65198
65199type GlobalForwardingRulesTestIamPermissionsCall struct {
65200	s                      *Service
65201	project                string
65202	resource               string
65203	testpermissionsrequest *TestPermissionsRequest
65204	urlParams_             gensupport.URLParams
65205	ctx_                   context.Context
65206	header_                http.Header
65207}
65208
65209// TestIamPermissions: Returns permissions that a caller has on the
65210// specified resource. (== suppress_warning http-rest-shadowed ==)
65211func (r *GlobalForwardingRulesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *GlobalForwardingRulesTestIamPermissionsCall {
65212	c := &GlobalForwardingRulesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
65213	c.project = project
65214	c.resource = resource
65215	c.testpermissionsrequest = testpermissionsrequest
65216	return c
65217}
65218
65219// Fields allows partial responses to be retrieved. See
65220// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
65221// for more information.
65222func (c *GlobalForwardingRulesTestIamPermissionsCall) Fields(s ...googleapi.Field) *GlobalForwardingRulesTestIamPermissionsCall {
65223	c.urlParams_.Set("fields", googleapi.CombineFields(s))
65224	return c
65225}
65226
65227// Context sets the context to be used in this call's Do method. Any
65228// pending HTTP request will be aborted if the provided context is
65229// canceled.
65230func (c *GlobalForwardingRulesTestIamPermissionsCall) Context(ctx context.Context) *GlobalForwardingRulesTestIamPermissionsCall {
65231	c.ctx_ = ctx
65232	return c
65233}
65234
65235// Header returns an http.Header that can be modified by the caller to
65236// add HTTP headers to the request.
65237func (c *GlobalForwardingRulesTestIamPermissionsCall) Header() http.Header {
65238	if c.header_ == nil {
65239		c.header_ = make(http.Header)
65240	}
65241	return c.header_
65242}
65243
65244func (c *GlobalForwardingRulesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
65245	reqHeaders := make(http.Header)
65246	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
65247	for k, v := range c.header_ {
65248		reqHeaders[k] = v
65249	}
65250	reqHeaders.Set("User-Agent", c.s.userAgent())
65251	var body io.Reader = nil
65252	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
65253	if err != nil {
65254		return nil, err
65255	}
65256	reqHeaders.Set("Content-Type", "application/json")
65257	c.urlParams_.Set("alt", alt)
65258	c.urlParams_.Set("prettyPrint", "false")
65259	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/forwardingRules/{resource}/testIamPermissions")
65260	urls += "?" + c.urlParams_.Encode()
65261	req, err := http.NewRequest("POST", urls, body)
65262	if err != nil {
65263		return nil, err
65264	}
65265	req.Header = reqHeaders
65266	googleapi.Expand(req.URL, map[string]string{
65267		"project":  c.project,
65268		"resource": c.resource,
65269	})
65270	return gensupport.SendRequest(c.ctx_, c.s.client, req)
65271}
65272
65273// Do executes the "compute.globalForwardingRules.testIamPermissions" call.
65274// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
65275// non-2xx status code is an error. Response headers are in either
65276// *TestPermissionsResponse.ServerResponse.Header or (if a response was
65277// returned at all) in error.(*googleapi.Error).Header. Use
65278// googleapi.IsNotModified to check whether the returned error was
65279// because http.StatusNotModified was returned.
65280func (c *GlobalForwardingRulesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
65281	gensupport.SetOptions(c.urlParams_, opts...)
65282	res, err := c.doRequest("json")
65283	if res != nil && res.StatusCode == http.StatusNotModified {
65284		if res.Body != nil {
65285			res.Body.Close()
65286		}
65287		return nil, &googleapi.Error{
65288			Code:   res.StatusCode,
65289			Header: res.Header,
65290		}
65291	}
65292	if err != nil {
65293		return nil, err
65294	}
65295	defer googleapi.CloseBody(res)
65296	if err := googleapi.CheckResponse(res); err != nil {
65297		return nil, err
65298	}
65299	ret := &TestPermissionsResponse{
65300		ServerResponse: googleapi.ServerResponse{
65301			Header:         res.Header,
65302			HTTPStatusCode: res.StatusCode,
65303		},
65304	}
65305	target := &ret
65306	if err := gensupport.DecodeResponse(target, res); err != nil {
65307		return nil, err
65308	}
65309	return ret, nil
65310	// {
65311	//   "description": "Returns permissions that a caller has on the specified resource. (== suppress_warning http-rest-shadowed ==)",
65312	//   "httpMethod": "POST",
65313	//   "id": "compute.globalForwardingRules.testIamPermissions",
65314	//   "parameterOrder": [
65315	//     "project",
65316	//     "resource"
65317	//   ],
65318	//   "parameters": {
65319	//     "project": {
65320	//       "description": "Project ID for this request.",
65321	//       "location": "path",
65322	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
65323	//       "required": true,
65324	//       "type": "string"
65325	//     },
65326	//     "resource": {
65327	//       "description": "Name or id of the resource for this request.",
65328	//       "location": "path",
65329	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
65330	//       "required": true,
65331	//       "type": "string"
65332	//     }
65333	//   },
65334	//   "path": "{project}/global/forwardingRules/{resource}/testIamPermissions",
65335	//   "request": {
65336	//     "$ref": "TestPermissionsRequest"
65337	//   },
65338	//   "response": {
65339	//     "$ref": "TestPermissionsResponse"
65340	//   },
65341	//   "scopes": [
65342	//     "https://www.googleapis.com/auth/cloud-platform",
65343	//     "https://www.googleapis.com/auth/compute",
65344	//     "https://www.googleapis.com/auth/compute.readonly"
65345	//   ]
65346	// }
65347
65348}
65349
65350// method id "compute.globalNetworkEndpointGroups.attachNetworkEndpoints":
65351
65352type GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall struct {
65353	s                                                 *Service
65354	project                                           string
65355	networkEndpointGroup                              string
65356	globalnetworkendpointgroupsattachendpointsrequest *GlobalNetworkEndpointGroupsAttachEndpointsRequest
65357	urlParams_                                        gensupport.URLParams
65358	ctx_                                              context.Context
65359	header_                                           http.Header
65360}
65361
65362// AttachNetworkEndpoints: Attach a network endpoint to the specified
65363// network endpoint group. (== suppress_warning http-rest-shadowed ==)
65364func (r *GlobalNetworkEndpointGroupsService) AttachNetworkEndpoints(project string, networkEndpointGroup string, globalnetworkendpointgroupsattachendpointsrequest *GlobalNetworkEndpointGroupsAttachEndpointsRequest) *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall {
65365	c := &GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
65366	c.project = project
65367	c.networkEndpointGroup = networkEndpointGroup
65368	c.globalnetworkendpointgroupsattachendpointsrequest = globalnetworkendpointgroupsattachendpointsrequest
65369	return c
65370}
65371
65372// RequestId sets the optional parameter "requestId": An optional
65373// request ID to identify requests. Specify a unique request ID so that
65374// if you must retry your request, the server will know to ignore the
65375// request if it has already been completed.
65376//
65377// For example, consider a situation where you make an initial request
65378// and the request times out. If you make the request again with the
65379// same request ID, the server can check if original operation with the
65380// same request ID was received, and if so, will ignore the second
65381// request. This prevents clients from accidentally creating duplicate
65382// commitments.
65383//
65384// The request ID must be a valid UUID with the exception that zero UUID
65385// is not supported (00000000-0000-0000-0000-000000000000).
65386func (c *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall) RequestId(requestId string) *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall {
65387	c.urlParams_.Set("requestId", requestId)
65388	return c
65389}
65390
65391// Fields allows partial responses to be retrieved. See
65392// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
65393// for more information.
65394func (c *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall) Fields(s ...googleapi.Field) *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall {
65395	c.urlParams_.Set("fields", googleapi.CombineFields(s))
65396	return c
65397}
65398
65399// Context sets the context to be used in this call's Do method. Any
65400// pending HTTP request will be aborted if the provided context is
65401// canceled.
65402func (c *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall) Context(ctx context.Context) *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall {
65403	c.ctx_ = ctx
65404	return c
65405}
65406
65407// Header returns an http.Header that can be modified by the caller to
65408// add HTTP headers to the request.
65409func (c *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall) Header() http.Header {
65410	if c.header_ == nil {
65411		c.header_ = make(http.Header)
65412	}
65413	return c.header_
65414}
65415
65416func (c *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall) doRequest(alt string) (*http.Response, error) {
65417	reqHeaders := make(http.Header)
65418	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
65419	for k, v := range c.header_ {
65420		reqHeaders[k] = v
65421	}
65422	reqHeaders.Set("User-Agent", c.s.userAgent())
65423	var body io.Reader = nil
65424	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalnetworkendpointgroupsattachendpointsrequest)
65425	if err != nil {
65426		return nil, err
65427	}
65428	reqHeaders.Set("Content-Type", "application/json")
65429	c.urlParams_.Set("alt", alt)
65430	c.urlParams_.Set("prettyPrint", "false")
65431	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networkEndpointGroups/{networkEndpointGroup}/attachNetworkEndpoints")
65432	urls += "?" + c.urlParams_.Encode()
65433	req, err := http.NewRequest("POST", urls, body)
65434	if err != nil {
65435		return nil, err
65436	}
65437	req.Header = reqHeaders
65438	googleapi.Expand(req.URL, map[string]string{
65439		"project":              c.project,
65440		"networkEndpointGroup": c.networkEndpointGroup,
65441	})
65442	return gensupport.SendRequest(c.ctx_, c.s.client, req)
65443}
65444
65445// Do executes the "compute.globalNetworkEndpointGroups.attachNetworkEndpoints" call.
65446// Exactly one of *Operation or error will be non-nil. Any non-2xx
65447// status code is an error. Response headers are in either
65448// *Operation.ServerResponse.Header or (if a response was returned at
65449// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
65450// to check whether the returned error was because
65451// http.StatusNotModified was returned.
65452func (c *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
65453	gensupport.SetOptions(c.urlParams_, opts...)
65454	res, err := c.doRequest("json")
65455	if res != nil && res.StatusCode == http.StatusNotModified {
65456		if res.Body != nil {
65457			res.Body.Close()
65458		}
65459		return nil, &googleapi.Error{
65460			Code:   res.StatusCode,
65461			Header: res.Header,
65462		}
65463	}
65464	if err != nil {
65465		return nil, err
65466	}
65467	defer googleapi.CloseBody(res)
65468	if err := googleapi.CheckResponse(res); err != nil {
65469		return nil, err
65470	}
65471	ret := &Operation{
65472		ServerResponse: googleapi.ServerResponse{
65473			Header:         res.Header,
65474			HTTPStatusCode: res.StatusCode,
65475		},
65476	}
65477	target := &ret
65478	if err := gensupport.DecodeResponse(target, res); err != nil {
65479		return nil, err
65480	}
65481	return ret, nil
65482	// {
65483	//   "description": "Attach a network endpoint to the specified network endpoint group. (== suppress_warning http-rest-shadowed ==)",
65484	//   "httpMethod": "POST",
65485	//   "id": "compute.globalNetworkEndpointGroups.attachNetworkEndpoints",
65486	//   "parameterOrder": [
65487	//     "project",
65488	//     "networkEndpointGroup"
65489	//   ],
65490	//   "parameters": {
65491	//     "networkEndpointGroup": {
65492	//       "description": "The name of the network endpoint group where you are attaching network endpoints to. It should comply with RFC1035.",
65493	//       "location": "path",
65494	//       "required": true,
65495	//       "type": "string"
65496	//     },
65497	//     "project": {
65498	//       "description": "Project ID for this request.",
65499	//       "location": "path",
65500	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
65501	//       "required": true,
65502	//       "type": "string"
65503	//     },
65504	//     "requestId": {
65505	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
65506	//       "location": "query",
65507	//       "type": "string"
65508	//     }
65509	//   },
65510	//   "path": "{project}/global/networkEndpointGroups/{networkEndpointGroup}/attachNetworkEndpoints",
65511	//   "request": {
65512	//     "$ref": "GlobalNetworkEndpointGroupsAttachEndpointsRequest"
65513	//   },
65514	//   "response": {
65515	//     "$ref": "Operation"
65516	//   },
65517	//   "scopes": [
65518	//     "https://www.googleapis.com/auth/cloud-platform",
65519	//     "https://www.googleapis.com/auth/compute"
65520	//   ]
65521	// }
65522
65523}
65524
65525// method id "compute.globalNetworkEndpointGroups.delete":
65526
65527type GlobalNetworkEndpointGroupsDeleteCall struct {
65528	s                    *Service
65529	project              string
65530	networkEndpointGroup string
65531	urlParams_           gensupport.URLParams
65532	ctx_                 context.Context
65533	header_              http.Header
65534}
65535
65536// Delete: Deletes the specified network endpoint group.Note that the
65537// NEG cannot be deleted if there are backend services referencing it.
65538// (== suppress_warning http-rest-shadowed ==)
65539func (r *GlobalNetworkEndpointGroupsService) Delete(project string, networkEndpointGroup string) *GlobalNetworkEndpointGroupsDeleteCall {
65540	c := &GlobalNetworkEndpointGroupsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
65541	c.project = project
65542	c.networkEndpointGroup = networkEndpointGroup
65543	return c
65544}
65545
65546// RequestId sets the optional parameter "requestId": An optional
65547// request ID to identify requests. Specify a unique request ID so that
65548// if you must retry your request, the server will know to ignore the
65549// request if it has already been completed.
65550//
65551// For example, consider a situation where you make an initial request
65552// and the request times out. If you make the request again with the
65553// same request ID, the server can check if original operation with the
65554// same request ID was received, and if so, will ignore the second
65555// request. This prevents clients from accidentally creating duplicate
65556// commitments.
65557//
65558// The request ID must be a valid UUID with the exception that zero UUID
65559// is not supported (00000000-0000-0000-0000-000000000000).
65560func (c *GlobalNetworkEndpointGroupsDeleteCall) RequestId(requestId string) *GlobalNetworkEndpointGroupsDeleteCall {
65561	c.urlParams_.Set("requestId", requestId)
65562	return c
65563}
65564
65565// Fields allows partial responses to be retrieved. See
65566// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
65567// for more information.
65568func (c *GlobalNetworkEndpointGroupsDeleteCall) Fields(s ...googleapi.Field) *GlobalNetworkEndpointGroupsDeleteCall {
65569	c.urlParams_.Set("fields", googleapi.CombineFields(s))
65570	return c
65571}
65572
65573// Context sets the context to be used in this call's Do method. Any
65574// pending HTTP request will be aborted if the provided context is
65575// canceled.
65576func (c *GlobalNetworkEndpointGroupsDeleteCall) Context(ctx context.Context) *GlobalNetworkEndpointGroupsDeleteCall {
65577	c.ctx_ = ctx
65578	return c
65579}
65580
65581// Header returns an http.Header that can be modified by the caller to
65582// add HTTP headers to the request.
65583func (c *GlobalNetworkEndpointGroupsDeleteCall) Header() http.Header {
65584	if c.header_ == nil {
65585		c.header_ = make(http.Header)
65586	}
65587	return c.header_
65588}
65589
65590func (c *GlobalNetworkEndpointGroupsDeleteCall) doRequest(alt string) (*http.Response, error) {
65591	reqHeaders := make(http.Header)
65592	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
65593	for k, v := range c.header_ {
65594		reqHeaders[k] = v
65595	}
65596	reqHeaders.Set("User-Agent", c.s.userAgent())
65597	var body io.Reader = nil
65598	c.urlParams_.Set("alt", alt)
65599	c.urlParams_.Set("prettyPrint", "false")
65600	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networkEndpointGroups/{networkEndpointGroup}")
65601	urls += "?" + c.urlParams_.Encode()
65602	req, err := http.NewRequest("DELETE", urls, body)
65603	if err != nil {
65604		return nil, err
65605	}
65606	req.Header = reqHeaders
65607	googleapi.Expand(req.URL, map[string]string{
65608		"project":              c.project,
65609		"networkEndpointGroup": c.networkEndpointGroup,
65610	})
65611	return gensupport.SendRequest(c.ctx_, c.s.client, req)
65612}
65613
65614// Do executes the "compute.globalNetworkEndpointGroups.delete" call.
65615// Exactly one of *Operation or error will be non-nil. Any non-2xx
65616// status code is an error. Response headers are in either
65617// *Operation.ServerResponse.Header or (if a response was returned at
65618// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
65619// to check whether the returned error was because
65620// http.StatusNotModified was returned.
65621func (c *GlobalNetworkEndpointGroupsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
65622	gensupport.SetOptions(c.urlParams_, opts...)
65623	res, err := c.doRequest("json")
65624	if res != nil && res.StatusCode == http.StatusNotModified {
65625		if res.Body != nil {
65626			res.Body.Close()
65627		}
65628		return nil, &googleapi.Error{
65629			Code:   res.StatusCode,
65630			Header: res.Header,
65631		}
65632	}
65633	if err != nil {
65634		return nil, err
65635	}
65636	defer googleapi.CloseBody(res)
65637	if err := googleapi.CheckResponse(res); err != nil {
65638		return nil, err
65639	}
65640	ret := &Operation{
65641		ServerResponse: googleapi.ServerResponse{
65642			Header:         res.Header,
65643			HTTPStatusCode: res.StatusCode,
65644		},
65645	}
65646	target := &ret
65647	if err := gensupport.DecodeResponse(target, res); err != nil {
65648		return nil, err
65649	}
65650	return ret, nil
65651	// {
65652	//   "description": "Deletes the specified network endpoint group.Note that the NEG cannot be deleted if there are backend services referencing it. (== suppress_warning http-rest-shadowed ==)",
65653	//   "httpMethod": "DELETE",
65654	//   "id": "compute.globalNetworkEndpointGroups.delete",
65655	//   "parameterOrder": [
65656	//     "project",
65657	//     "networkEndpointGroup"
65658	//   ],
65659	//   "parameters": {
65660	//     "networkEndpointGroup": {
65661	//       "description": "The name of the network endpoint group to delete. It should comply with RFC1035.",
65662	//       "location": "path",
65663	//       "required": true,
65664	//       "type": "string"
65665	//     },
65666	//     "project": {
65667	//       "description": "Project ID for this request.",
65668	//       "location": "path",
65669	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
65670	//       "required": true,
65671	//       "type": "string"
65672	//     },
65673	//     "requestId": {
65674	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
65675	//       "location": "query",
65676	//       "type": "string"
65677	//     }
65678	//   },
65679	//   "path": "{project}/global/networkEndpointGroups/{networkEndpointGroup}",
65680	//   "response": {
65681	//     "$ref": "Operation"
65682	//   },
65683	//   "scopes": [
65684	//     "https://www.googleapis.com/auth/cloud-platform",
65685	//     "https://www.googleapis.com/auth/compute"
65686	//   ]
65687	// }
65688
65689}
65690
65691// method id "compute.globalNetworkEndpointGroups.detachNetworkEndpoints":
65692
65693type GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall struct {
65694	s                                                 *Service
65695	project                                           string
65696	networkEndpointGroup                              string
65697	globalnetworkendpointgroupsdetachendpointsrequest *GlobalNetworkEndpointGroupsDetachEndpointsRequest
65698	urlParams_                                        gensupport.URLParams
65699	ctx_                                              context.Context
65700	header_                                           http.Header
65701}
65702
65703// DetachNetworkEndpoints: Detach the network endpoint from the
65704// specified network endpoint group. (== suppress_warning
65705// http-rest-shadowed ==)
65706func (r *GlobalNetworkEndpointGroupsService) DetachNetworkEndpoints(project string, networkEndpointGroup string, globalnetworkendpointgroupsdetachendpointsrequest *GlobalNetworkEndpointGroupsDetachEndpointsRequest) *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall {
65707	c := &GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
65708	c.project = project
65709	c.networkEndpointGroup = networkEndpointGroup
65710	c.globalnetworkendpointgroupsdetachendpointsrequest = globalnetworkendpointgroupsdetachendpointsrequest
65711	return c
65712}
65713
65714// RequestId sets the optional parameter "requestId": An optional
65715// request ID to identify requests. Specify a unique request ID so that
65716// if you must retry your request, the server will know to ignore the
65717// request if it has already been completed.
65718//
65719// For example, consider a situation where you make an initial request
65720// and the request times out. If you make the request again with the
65721// same request ID, the server can check if original operation with the
65722// same request ID was received, and if so, will ignore the second
65723// request. This prevents clients from accidentally creating duplicate
65724// commitments.
65725//
65726// The request ID must be a valid UUID with the exception that zero UUID
65727// is not supported (00000000-0000-0000-0000-000000000000).
65728func (c *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall) RequestId(requestId string) *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall {
65729	c.urlParams_.Set("requestId", requestId)
65730	return c
65731}
65732
65733// Fields allows partial responses to be retrieved. See
65734// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
65735// for more information.
65736func (c *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall) Fields(s ...googleapi.Field) *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall {
65737	c.urlParams_.Set("fields", googleapi.CombineFields(s))
65738	return c
65739}
65740
65741// Context sets the context to be used in this call's Do method. Any
65742// pending HTTP request will be aborted if the provided context is
65743// canceled.
65744func (c *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall) Context(ctx context.Context) *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall {
65745	c.ctx_ = ctx
65746	return c
65747}
65748
65749// Header returns an http.Header that can be modified by the caller to
65750// add HTTP headers to the request.
65751func (c *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall) Header() http.Header {
65752	if c.header_ == nil {
65753		c.header_ = make(http.Header)
65754	}
65755	return c.header_
65756}
65757
65758func (c *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall) doRequest(alt string) (*http.Response, error) {
65759	reqHeaders := make(http.Header)
65760	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
65761	for k, v := range c.header_ {
65762		reqHeaders[k] = v
65763	}
65764	reqHeaders.Set("User-Agent", c.s.userAgent())
65765	var body io.Reader = nil
65766	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalnetworkendpointgroupsdetachendpointsrequest)
65767	if err != nil {
65768		return nil, err
65769	}
65770	reqHeaders.Set("Content-Type", "application/json")
65771	c.urlParams_.Set("alt", alt)
65772	c.urlParams_.Set("prettyPrint", "false")
65773	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networkEndpointGroups/{networkEndpointGroup}/detachNetworkEndpoints")
65774	urls += "?" + c.urlParams_.Encode()
65775	req, err := http.NewRequest("POST", urls, body)
65776	if err != nil {
65777		return nil, err
65778	}
65779	req.Header = reqHeaders
65780	googleapi.Expand(req.URL, map[string]string{
65781		"project":              c.project,
65782		"networkEndpointGroup": c.networkEndpointGroup,
65783	})
65784	return gensupport.SendRequest(c.ctx_, c.s.client, req)
65785}
65786
65787// Do executes the "compute.globalNetworkEndpointGroups.detachNetworkEndpoints" call.
65788// Exactly one of *Operation or error will be non-nil. Any non-2xx
65789// status code is an error. Response headers are in either
65790// *Operation.ServerResponse.Header or (if a response was returned at
65791// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
65792// to check whether the returned error was because
65793// http.StatusNotModified was returned.
65794func (c *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
65795	gensupport.SetOptions(c.urlParams_, opts...)
65796	res, err := c.doRequest("json")
65797	if res != nil && res.StatusCode == http.StatusNotModified {
65798		if res.Body != nil {
65799			res.Body.Close()
65800		}
65801		return nil, &googleapi.Error{
65802			Code:   res.StatusCode,
65803			Header: res.Header,
65804		}
65805	}
65806	if err != nil {
65807		return nil, err
65808	}
65809	defer googleapi.CloseBody(res)
65810	if err := googleapi.CheckResponse(res); err != nil {
65811		return nil, err
65812	}
65813	ret := &Operation{
65814		ServerResponse: googleapi.ServerResponse{
65815			Header:         res.Header,
65816			HTTPStatusCode: res.StatusCode,
65817		},
65818	}
65819	target := &ret
65820	if err := gensupport.DecodeResponse(target, res); err != nil {
65821		return nil, err
65822	}
65823	return ret, nil
65824	// {
65825	//   "description": "Detach the network endpoint from the specified network endpoint group. (== suppress_warning http-rest-shadowed ==)",
65826	//   "httpMethod": "POST",
65827	//   "id": "compute.globalNetworkEndpointGroups.detachNetworkEndpoints",
65828	//   "parameterOrder": [
65829	//     "project",
65830	//     "networkEndpointGroup"
65831	//   ],
65832	//   "parameters": {
65833	//     "networkEndpointGroup": {
65834	//       "description": "The name of the network endpoint group where you are removing network endpoints. It should comply with RFC1035.",
65835	//       "location": "path",
65836	//       "required": true,
65837	//       "type": "string"
65838	//     },
65839	//     "project": {
65840	//       "description": "Project ID for this request.",
65841	//       "location": "path",
65842	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
65843	//       "required": true,
65844	//       "type": "string"
65845	//     },
65846	//     "requestId": {
65847	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
65848	//       "location": "query",
65849	//       "type": "string"
65850	//     }
65851	//   },
65852	//   "path": "{project}/global/networkEndpointGroups/{networkEndpointGroup}/detachNetworkEndpoints",
65853	//   "request": {
65854	//     "$ref": "GlobalNetworkEndpointGroupsDetachEndpointsRequest"
65855	//   },
65856	//   "response": {
65857	//     "$ref": "Operation"
65858	//   },
65859	//   "scopes": [
65860	//     "https://www.googleapis.com/auth/cloud-platform",
65861	//     "https://www.googleapis.com/auth/compute"
65862	//   ]
65863	// }
65864
65865}
65866
65867// method id "compute.globalNetworkEndpointGroups.get":
65868
65869type GlobalNetworkEndpointGroupsGetCall struct {
65870	s                    *Service
65871	project              string
65872	networkEndpointGroup string
65873	urlParams_           gensupport.URLParams
65874	ifNoneMatch_         string
65875	ctx_                 context.Context
65876	header_              http.Header
65877}
65878
65879// Get: Returns the specified network endpoint group. Gets a list of
65880// available network endpoint groups by making a list() request. (==
65881// suppress_warning http-rest-shadowed ==)
65882func (r *GlobalNetworkEndpointGroupsService) Get(project string, networkEndpointGroup string) *GlobalNetworkEndpointGroupsGetCall {
65883	c := &GlobalNetworkEndpointGroupsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
65884	c.project = project
65885	c.networkEndpointGroup = networkEndpointGroup
65886	return c
65887}
65888
65889// Fields allows partial responses to be retrieved. See
65890// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
65891// for more information.
65892func (c *GlobalNetworkEndpointGroupsGetCall) Fields(s ...googleapi.Field) *GlobalNetworkEndpointGroupsGetCall {
65893	c.urlParams_.Set("fields", googleapi.CombineFields(s))
65894	return c
65895}
65896
65897// IfNoneMatch sets the optional parameter which makes the operation
65898// fail if the object's ETag matches the given value. This is useful for
65899// getting updates only after the object has changed since the last
65900// request. Use googleapi.IsNotModified to check whether the response
65901// error from Do is the result of In-None-Match.
65902func (c *GlobalNetworkEndpointGroupsGetCall) IfNoneMatch(entityTag string) *GlobalNetworkEndpointGroupsGetCall {
65903	c.ifNoneMatch_ = entityTag
65904	return c
65905}
65906
65907// Context sets the context to be used in this call's Do method. Any
65908// pending HTTP request will be aborted if the provided context is
65909// canceled.
65910func (c *GlobalNetworkEndpointGroupsGetCall) Context(ctx context.Context) *GlobalNetworkEndpointGroupsGetCall {
65911	c.ctx_ = ctx
65912	return c
65913}
65914
65915// Header returns an http.Header that can be modified by the caller to
65916// add HTTP headers to the request.
65917func (c *GlobalNetworkEndpointGroupsGetCall) Header() http.Header {
65918	if c.header_ == nil {
65919		c.header_ = make(http.Header)
65920	}
65921	return c.header_
65922}
65923
65924func (c *GlobalNetworkEndpointGroupsGetCall) doRequest(alt string) (*http.Response, error) {
65925	reqHeaders := make(http.Header)
65926	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
65927	for k, v := range c.header_ {
65928		reqHeaders[k] = v
65929	}
65930	reqHeaders.Set("User-Agent", c.s.userAgent())
65931	if c.ifNoneMatch_ != "" {
65932		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
65933	}
65934	var body io.Reader = nil
65935	c.urlParams_.Set("alt", alt)
65936	c.urlParams_.Set("prettyPrint", "false")
65937	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networkEndpointGroups/{networkEndpointGroup}")
65938	urls += "?" + c.urlParams_.Encode()
65939	req, err := http.NewRequest("GET", urls, body)
65940	if err != nil {
65941		return nil, err
65942	}
65943	req.Header = reqHeaders
65944	googleapi.Expand(req.URL, map[string]string{
65945		"project":              c.project,
65946		"networkEndpointGroup": c.networkEndpointGroup,
65947	})
65948	return gensupport.SendRequest(c.ctx_, c.s.client, req)
65949}
65950
65951// Do executes the "compute.globalNetworkEndpointGroups.get" call.
65952// Exactly one of *NetworkEndpointGroup or error will be non-nil. Any
65953// non-2xx status code is an error. Response headers are in either
65954// *NetworkEndpointGroup.ServerResponse.Header or (if a response was
65955// returned at all) in error.(*googleapi.Error).Header. Use
65956// googleapi.IsNotModified to check whether the returned error was
65957// because http.StatusNotModified was returned.
65958func (c *GlobalNetworkEndpointGroupsGetCall) Do(opts ...googleapi.CallOption) (*NetworkEndpointGroup, error) {
65959	gensupport.SetOptions(c.urlParams_, opts...)
65960	res, err := c.doRequest("json")
65961	if res != nil && res.StatusCode == http.StatusNotModified {
65962		if res.Body != nil {
65963			res.Body.Close()
65964		}
65965		return nil, &googleapi.Error{
65966			Code:   res.StatusCode,
65967			Header: res.Header,
65968		}
65969	}
65970	if err != nil {
65971		return nil, err
65972	}
65973	defer googleapi.CloseBody(res)
65974	if err := googleapi.CheckResponse(res); err != nil {
65975		return nil, err
65976	}
65977	ret := &NetworkEndpointGroup{
65978		ServerResponse: googleapi.ServerResponse{
65979			Header:         res.Header,
65980			HTTPStatusCode: res.StatusCode,
65981		},
65982	}
65983	target := &ret
65984	if err := gensupport.DecodeResponse(target, res); err != nil {
65985		return nil, err
65986	}
65987	return ret, nil
65988	// {
65989	//   "description": "Returns the specified network endpoint group. Gets a list of available network endpoint groups by making a list() request. (== suppress_warning http-rest-shadowed ==)",
65990	//   "httpMethod": "GET",
65991	//   "id": "compute.globalNetworkEndpointGroups.get",
65992	//   "parameterOrder": [
65993	//     "project",
65994	//     "networkEndpointGroup"
65995	//   ],
65996	//   "parameters": {
65997	//     "networkEndpointGroup": {
65998	//       "description": "The name of the network endpoint group. It should comply with RFC1035.",
65999	//       "location": "path",
66000	//       "required": true,
66001	//       "type": "string"
66002	//     },
66003	//     "project": {
66004	//       "description": "Project ID for this request.",
66005	//       "location": "path",
66006	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
66007	//       "required": true,
66008	//       "type": "string"
66009	//     }
66010	//   },
66011	//   "path": "{project}/global/networkEndpointGroups/{networkEndpointGroup}",
66012	//   "response": {
66013	//     "$ref": "NetworkEndpointGroup"
66014	//   },
66015	//   "scopes": [
66016	//     "https://www.googleapis.com/auth/cloud-platform",
66017	//     "https://www.googleapis.com/auth/compute",
66018	//     "https://www.googleapis.com/auth/compute.readonly"
66019	//   ]
66020	// }
66021
66022}
66023
66024// method id "compute.globalNetworkEndpointGroups.insert":
66025
66026type GlobalNetworkEndpointGroupsInsertCall struct {
66027	s                    *Service
66028	project              string
66029	networkendpointgroup *NetworkEndpointGroup
66030	urlParams_           gensupport.URLParams
66031	ctx_                 context.Context
66032	header_              http.Header
66033}
66034
66035// Insert: Creates a network endpoint group in the specified project
66036// using the parameters that are included in the request. (==
66037// suppress_warning http-rest-shadowed ==)
66038func (r *GlobalNetworkEndpointGroupsService) Insert(project string, networkendpointgroup *NetworkEndpointGroup) *GlobalNetworkEndpointGroupsInsertCall {
66039	c := &GlobalNetworkEndpointGroupsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
66040	c.project = project
66041	c.networkendpointgroup = networkendpointgroup
66042	return c
66043}
66044
66045// RequestId sets the optional parameter "requestId": An optional
66046// request ID to identify requests. Specify a unique request ID so that
66047// if you must retry your request, the server will know to ignore the
66048// request if it has already been completed.
66049//
66050// For example, consider a situation where you make an initial request
66051// and the request times out. If you make the request again with the
66052// same request ID, the server can check if original operation with the
66053// same request ID was received, and if so, will ignore the second
66054// request. This prevents clients from accidentally creating duplicate
66055// commitments.
66056//
66057// The request ID must be a valid UUID with the exception that zero UUID
66058// is not supported (00000000-0000-0000-0000-000000000000).
66059func (c *GlobalNetworkEndpointGroupsInsertCall) RequestId(requestId string) *GlobalNetworkEndpointGroupsInsertCall {
66060	c.urlParams_.Set("requestId", requestId)
66061	return c
66062}
66063
66064// Fields allows partial responses to be retrieved. See
66065// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
66066// for more information.
66067func (c *GlobalNetworkEndpointGroupsInsertCall) Fields(s ...googleapi.Field) *GlobalNetworkEndpointGroupsInsertCall {
66068	c.urlParams_.Set("fields", googleapi.CombineFields(s))
66069	return c
66070}
66071
66072// Context sets the context to be used in this call's Do method. Any
66073// pending HTTP request will be aborted if the provided context is
66074// canceled.
66075func (c *GlobalNetworkEndpointGroupsInsertCall) Context(ctx context.Context) *GlobalNetworkEndpointGroupsInsertCall {
66076	c.ctx_ = ctx
66077	return c
66078}
66079
66080// Header returns an http.Header that can be modified by the caller to
66081// add HTTP headers to the request.
66082func (c *GlobalNetworkEndpointGroupsInsertCall) Header() http.Header {
66083	if c.header_ == nil {
66084		c.header_ = make(http.Header)
66085	}
66086	return c.header_
66087}
66088
66089func (c *GlobalNetworkEndpointGroupsInsertCall) doRequest(alt string) (*http.Response, error) {
66090	reqHeaders := make(http.Header)
66091	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
66092	for k, v := range c.header_ {
66093		reqHeaders[k] = v
66094	}
66095	reqHeaders.Set("User-Agent", c.s.userAgent())
66096	var body io.Reader = nil
66097	body, err := googleapi.WithoutDataWrapper.JSONReader(c.networkendpointgroup)
66098	if err != nil {
66099		return nil, err
66100	}
66101	reqHeaders.Set("Content-Type", "application/json")
66102	c.urlParams_.Set("alt", alt)
66103	c.urlParams_.Set("prettyPrint", "false")
66104	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networkEndpointGroups")
66105	urls += "?" + c.urlParams_.Encode()
66106	req, err := http.NewRequest("POST", urls, body)
66107	if err != nil {
66108		return nil, err
66109	}
66110	req.Header = reqHeaders
66111	googleapi.Expand(req.URL, map[string]string{
66112		"project": c.project,
66113	})
66114	return gensupport.SendRequest(c.ctx_, c.s.client, req)
66115}
66116
66117// Do executes the "compute.globalNetworkEndpointGroups.insert" call.
66118// Exactly one of *Operation or error will be non-nil. Any non-2xx
66119// status code is an error. Response headers are in either
66120// *Operation.ServerResponse.Header or (if a response was returned at
66121// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
66122// to check whether the returned error was because
66123// http.StatusNotModified was returned.
66124func (c *GlobalNetworkEndpointGroupsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
66125	gensupport.SetOptions(c.urlParams_, opts...)
66126	res, err := c.doRequest("json")
66127	if res != nil && res.StatusCode == http.StatusNotModified {
66128		if res.Body != nil {
66129			res.Body.Close()
66130		}
66131		return nil, &googleapi.Error{
66132			Code:   res.StatusCode,
66133			Header: res.Header,
66134		}
66135	}
66136	if err != nil {
66137		return nil, err
66138	}
66139	defer googleapi.CloseBody(res)
66140	if err := googleapi.CheckResponse(res); err != nil {
66141		return nil, err
66142	}
66143	ret := &Operation{
66144		ServerResponse: googleapi.ServerResponse{
66145			Header:         res.Header,
66146			HTTPStatusCode: res.StatusCode,
66147		},
66148	}
66149	target := &ret
66150	if err := gensupport.DecodeResponse(target, res); err != nil {
66151		return nil, err
66152	}
66153	return ret, nil
66154	// {
66155	//   "description": "Creates a network endpoint group in the specified project using the parameters that are included in the request. (== suppress_warning http-rest-shadowed ==)",
66156	//   "httpMethod": "POST",
66157	//   "id": "compute.globalNetworkEndpointGroups.insert",
66158	//   "parameterOrder": [
66159	//     "project"
66160	//   ],
66161	//   "parameters": {
66162	//     "project": {
66163	//       "description": "Project ID for this request.",
66164	//       "location": "path",
66165	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
66166	//       "required": true,
66167	//       "type": "string"
66168	//     },
66169	//     "requestId": {
66170	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
66171	//       "location": "query",
66172	//       "type": "string"
66173	//     }
66174	//   },
66175	//   "path": "{project}/global/networkEndpointGroups",
66176	//   "request": {
66177	//     "$ref": "NetworkEndpointGroup"
66178	//   },
66179	//   "response": {
66180	//     "$ref": "Operation"
66181	//   },
66182	//   "scopes": [
66183	//     "https://www.googleapis.com/auth/cloud-platform",
66184	//     "https://www.googleapis.com/auth/compute"
66185	//   ]
66186	// }
66187
66188}
66189
66190// method id "compute.globalNetworkEndpointGroups.list":
66191
66192type GlobalNetworkEndpointGroupsListCall struct {
66193	s            *Service
66194	project      string
66195	urlParams_   gensupport.URLParams
66196	ifNoneMatch_ string
66197	ctx_         context.Context
66198	header_      http.Header
66199}
66200
66201// List: Retrieves the list of network endpoint groups that are located
66202// in the specified project. (== suppress_warning http-rest-shadowed ==)
66203func (r *GlobalNetworkEndpointGroupsService) List(project string) *GlobalNetworkEndpointGroupsListCall {
66204	c := &GlobalNetworkEndpointGroupsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
66205	c.project = project
66206	return c
66207}
66208
66209// Filter sets the optional parameter "filter": A filter expression that
66210// filters resources listed in the response. The expression must specify
66211// the field name, a comparison operator, and the value that you want to
66212// use for filtering. The value must be a string, a number, or a
66213// boolean. The comparison operator must be either =, !=, >, or <.
66214//
66215// For example, if you are filtering Compute Engine instances, you can
66216// exclude instances named example-instance by specifying name !=
66217// example-instance.
66218//
66219// You can also filter nested fields. For example, you could specify
66220// scheduling.automaticRestart = false to include instances only if they
66221// are not scheduled for automatic restarts. You can use filtering on
66222// nested fields to filter based on resource labels.
66223//
66224// To filter on multiple expressions, provide each separate expression
66225// within parentheses. For example, (scheduling.automaticRestart = true)
66226// (cpuPlatform = "Intel Skylake"). By default, each expression is an
66227// AND expression. However, you can include AND and OR expressions
66228// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
66229// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
66230// true).
66231func (c *GlobalNetworkEndpointGroupsListCall) Filter(filter string) *GlobalNetworkEndpointGroupsListCall {
66232	c.urlParams_.Set("filter", filter)
66233	return c
66234}
66235
66236// MaxResults sets the optional parameter "maxResults": The maximum
66237// number of results per page that should be returned. If the number of
66238// available results is larger than maxResults, Compute Engine returns a
66239// nextPageToken that can be used to get the next page of results in
66240// subsequent list requests. Acceptable values are 0 to 500, inclusive.
66241// (Default: 500)
66242func (c *GlobalNetworkEndpointGroupsListCall) MaxResults(maxResults int64) *GlobalNetworkEndpointGroupsListCall {
66243	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
66244	return c
66245}
66246
66247// OrderBy sets the optional parameter "orderBy": Sorts list results by
66248// a certain order. By default, results are returned in alphanumerical
66249// order based on the resource name.
66250//
66251// You can also sort results in descending order based on the creation
66252// timestamp using orderBy="creationTimestamp desc". This sorts results
66253// based on the creationTimestamp field in reverse chronological order
66254// (newest result first). Use this to sort resources like operations so
66255// that the newest operation is returned first.
66256//
66257// Currently, only sorting by name or creationTimestamp desc is
66258// supported.
66259func (c *GlobalNetworkEndpointGroupsListCall) OrderBy(orderBy string) *GlobalNetworkEndpointGroupsListCall {
66260	c.urlParams_.Set("orderBy", orderBy)
66261	return c
66262}
66263
66264// PageToken sets the optional parameter "pageToken": Specifies a page
66265// token to use. Set pageToken to the nextPageToken returned by a
66266// previous list request to get the next page of results.
66267func (c *GlobalNetworkEndpointGroupsListCall) PageToken(pageToken string) *GlobalNetworkEndpointGroupsListCall {
66268	c.urlParams_.Set("pageToken", pageToken)
66269	return c
66270}
66271
66272// Fields allows partial responses to be retrieved. See
66273// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
66274// for more information.
66275func (c *GlobalNetworkEndpointGroupsListCall) Fields(s ...googleapi.Field) *GlobalNetworkEndpointGroupsListCall {
66276	c.urlParams_.Set("fields", googleapi.CombineFields(s))
66277	return c
66278}
66279
66280// IfNoneMatch sets the optional parameter which makes the operation
66281// fail if the object's ETag matches the given value. This is useful for
66282// getting updates only after the object has changed since the last
66283// request. Use googleapi.IsNotModified to check whether the response
66284// error from Do is the result of In-None-Match.
66285func (c *GlobalNetworkEndpointGroupsListCall) IfNoneMatch(entityTag string) *GlobalNetworkEndpointGroupsListCall {
66286	c.ifNoneMatch_ = entityTag
66287	return c
66288}
66289
66290// Context sets the context to be used in this call's Do method. Any
66291// pending HTTP request will be aborted if the provided context is
66292// canceled.
66293func (c *GlobalNetworkEndpointGroupsListCall) Context(ctx context.Context) *GlobalNetworkEndpointGroupsListCall {
66294	c.ctx_ = ctx
66295	return c
66296}
66297
66298// Header returns an http.Header that can be modified by the caller to
66299// add HTTP headers to the request.
66300func (c *GlobalNetworkEndpointGroupsListCall) Header() http.Header {
66301	if c.header_ == nil {
66302		c.header_ = make(http.Header)
66303	}
66304	return c.header_
66305}
66306
66307func (c *GlobalNetworkEndpointGroupsListCall) doRequest(alt string) (*http.Response, error) {
66308	reqHeaders := make(http.Header)
66309	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
66310	for k, v := range c.header_ {
66311		reqHeaders[k] = v
66312	}
66313	reqHeaders.Set("User-Agent", c.s.userAgent())
66314	if c.ifNoneMatch_ != "" {
66315		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
66316	}
66317	var body io.Reader = nil
66318	c.urlParams_.Set("alt", alt)
66319	c.urlParams_.Set("prettyPrint", "false")
66320	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networkEndpointGroups")
66321	urls += "?" + c.urlParams_.Encode()
66322	req, err := http.NewRequest("GET", urls, body)
66323	if err != nil {
66324		return nil, err
66325	}
66326	req.Header = reqHeaders
66327	googleapi.Expand(req.URL, map[string]string{
66328		"project": c.project,
66329	})
66330	return gensupport.SendRequest(c.ctx_, c.s.client, req)
66331}
66332
66333// Do executes the "compute.globalNetworkEndpointGroups.list" call.
66334// Exactly one of *NetworkEndpointGroupList or error will be non-nil.
66335// Any non-2xx status code is an error. Response headers are in either
66336// *NetworkEndpointGroupList.ServerResponse.Header or (if a response was
66337// returned at all) in error.(*googleapi.Error).Header. Use
66338// googleapi.IsNotModified to check whether the returned error was
66339// because http.StatusNotModified was returned.
66340func (c *GlobalNetworkEndpointGroupsListCall) Do(opts ...googleapi.CallOption) (*NetworkEndpointGroupList, error) {
66341	gensupport.SetOptions(c.urlParams_, opts...)
66342	res, err := c.doRequest("json")
66343	if res != nil && res.StatusCode == http.StatusNotModified {
66344		if res.Body != nil {
66345			res.Body.Close()
66346		}
66347		return nil, &googleapi.Error{
66348			Code:   res.StatusCode,
66349			Header: res.Header,
66350		}
66351	}
66352	if err != nil {
66353		return nil, err
66354	}
66355	defer googleapi.CloseBody(res)
66356	if err := googleapi.CheckResponse(res); err != nil {
66357		return nil, err
66358	}
66359	ret := &NetworkEndpointGroupList{
66360		ServerResponse: googleapi.ServerResponse{
66361			Header:         res.Header,
66362			HTTPStatusCode: res.StatusCode,
66363		},
66364	}
66365	target := &ret
66366	if err := gensupport.DecodeResponse(target, res); err != nil {
66367		return nil, err
66368	}
66369	return ret, nil
66370	// {
66371	//   "description": "Retrieves the list of network endpoint groups that are located in the specified project. (== suppress_warning http-rest-shadowed ==)",
66372	//   "httpMethod": "GET",
66373	//   "id": "compute.globalNetworkEndpointGroups.list",
66374	//   "parameterOrder": [
66375	//     "project"
66376	//   ],
66377	//   "parameters": {
66378	//     "filter": {
66379	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
66380	//       "location": "query",
66381	//       "type": "string"
66382	//     },
66383	//     "maxResults": {
66384	//       "default": "500",
66385	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
66386	//       "format": "uint32",
66387	//       "location": "query",
66388	//       "minimum": "0",
66389	//       "type": "integer"
66390	//     },
66391	//     "orderBy": {
66392	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
66393	//       "location": "query",
66394	//       "type": "string"
66395	//     },
66396	//     "pageToken": {
66397	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
66398	//       "location": "query",
66399	//       "type": "string"
66400	//     },
66401	//     "project": {
66402	//       "description": "Project ID for this request.",
66403	//       "location": "path",
66404	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
66405	//       "required": true,
66406	//       "type": "string"
66407	//     }
66408	//   },
66409	//   "path": "{project}/global/networkEndpointGroups",
66410	//   "response": {
66411	//     "$ref": "NetworkEndpointGroupList"
66412	//   },
66413	//   "scopes": [
66414	//     "https://www.googleapis.com/auth/cloud-platform",
66415	//     "https://www.googleapis.com/auth/compute",
66416	//     "https://www.googleapis.com/auth/compute.readonly"
66417	//   ]
66418	// }
66419
66420}
66421
66422// Pages invokes f for each page of results.
66423// A non-nil error returned from f will halt the iteration.
66424// The provided context supersedes any context provided to the Context method.
66425func (c *GlobalNetworkEndpointGroupsListCall) Pages(ctx context.Context, f func(*NetworkEndpointGroupList) error) error {
66426	c.ctx_ = ctx
66427	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
66428	for {
66429		x, err := c.Do()
66430		if err != nil {
66431			return err
66432		}
66433		if err := f(x); err != nil {
66434			return err
66435		}
66436		if x.NextPageToken == "" {
66437			return nil
66438		}
66439		c.PageToken(x.NextPageToken)
66440	}
66441}
66442
66443// method id "compute.globalNetworkEndpointGroups.listNetworkEndpoints":
66444
66445type GlobalNetworkEndpointGroupsListNetworkEndpointsCall struct {
66446	s                    *Service
66447	project              string
66448	networkEndpointGroup string
66449	urlParams_           gensupport.URLParams
66450	ctx_                 context.Context
66451	header_              http.Header
66452}
66453
66454// ListNetworkEndpoints: Lists the network endpoints in the specified
66455// network endpoint group. (== suppress_warning http-rest-shadowed ==)
66456func (r *GlobalNetworkEndpointGroupsService) ListNetworkEndpoints(project string, networkEndpointGroup string) *GlobalNetworkEndpointGroupsListNetworkEndpointsCall {
66457	c := &GlobalNetworkEndpointGroupsListNetworkEndpointsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
66458	c.project = project
66459	c.networkEndpointGroup = networkEndpointGroup
66460	return c
66461}
66462
66463// Filter sets the optional parameter "filter": A filter expression that
66464// filters resources listed in the response. The expression must specify
66465// the field name, a comparison operator, and the value that you want to
66466// use for filtering. The value must be a string, a number, or a
66467// boolean. The comparison operator must be either =, !=, >, or <.
66468//
66469// For example, if you are filtering Compute Engine instances, you can
66470// exclude instances named example-instance by specifying name !=
66471// example-instance.
66472//
66473// You can also filter nested fields. For example, you could specify
66474// scheduling.automaticRestart = false to include instances only if they
66475// are not scheduled for automatic restarts. You can use filtering on
66476// nested fields to filter based on resource labels.
66477//
66478// To filter on multiple expressions, provide each separate expression
66479// within parentheses. For example, (scheduling.automaticRestart = true)
66480// (cpuPlatform = "Intel Skylake"). By default, each expression is an
66481// AND expression. However, you can include AND and OR expressions
66482// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
66483// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
66484// true).
66485func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) Filter(filter string) *GlobalNetworkEndpointGroupsListNetworkEndpointsCall {
66486	c.urlParams_.Set("filter", filter)
66487	return c
66488}
66489
66490// MaxResults sets the optional parameter "maxResults": The maximum
66491// number of results per page that should be returned. If the number of
66492// available results is larger than maxResults, Compute Engine returns a
66493// nextPageToken that can be used to get the next page of results in
66494// subsequent list requests. Acceptable values are 0 to 500, inclusive.
66495// (Default: 500)
66496func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) MaxResults(maxResults int64) *GlobalNetworkEndpointGroupsListNetworkEndpointsCall {
66497	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
66498	return c
66499}
66500
66501// OrderBy sets the optional parameter "orderBy": Sorts list results by
66502// a certain order. By default, results are returned in alphanumerical
66503// order based on the resource name.
66504//
66505// You can also sort results in descending order based on the creation
66506// timestamp using orderBy="creationTimestamp desc". This sorts results
66507// based on the creationTimestamp field in reverse chronological order
66508// (newest result first). Use this to sort resources like operations so
66509// that the newest operation is returned first.
66510//
66511// Currently, only sorting by name or creationTimestamp desc is
66512// supported.
66513func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) OrderBy(orderBy string) *GlobalNetworkEndpointGroupsListNetworkEndpointsCall {
66514	c.urlParams_.Set("orderBy", orderBy)
66515	return c
66516}
66517
66518// PageToken sets the optional parameter "pageToken": Specifies a page
66519// token to use. Set pageToken to the nextPageToken returned by a
66520// previous list request to get the next page of results.
66521func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) PageToken(pageToken string) *GlobalNetworkEndpointGroupsListNetworkEndpointsCall {
66522	c.urlParams_.Set("pageToken", pageToken)
66523	return c
66524}
66525
66526// Fields allows partial responses to be retrieved. See
66527// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
66528// for more information.
66529func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) Fields(s ...googleapi.Field) *GlobalNetworkEndpointGroupsListNetworkEndpointsCall {
66530	c.urlParams_.Set("fields", googleapi.CombineFields(s))
66531	return c
66532}
66533
66534// Context sets the context to be used in this call's Do method. Any
66535// pending HTTP request will be aborted if the provided context is
66536// canceled.
66537func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) Context(ctx context.Context) *GlobalNetworkEndpointGroupsListNetworkEndpointsCall {
66538	c.ctx_ = ctx
66539	return c
66540}
66541
66542// Header returns an http.Header that can be modified by the caller to
66543// add HTTP headers to the request.
66544func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) Header() http.Header {
66545	if c.header_ == nil {
66546		c.header_ = make(http.Header)
66547	}
66548	return c.header_
66549}
66550
66551func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) doRequest(alt string) (*http.Response, error) {
66552	reqHeaders := make(http.Header)
66553	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
66554	for k, v := range c.header_ {
66555		reqHeaders[k] = v
66556	}
66557	reqHeaders.Set("User-Agent", c.s.userAgent())
66558	var body io.Reader = nil
66559	c.urlParams_.Set("alt", alt)
66560	c.urlParams_.Set("prettyPrint", "false")
66561	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networkEndpointGroups/{networkEndpointGroup}/listNetworkEndpoints")
66562	urls += "?" + c.urlParams_.Encode()
66563	req, err := http.NewRequest("POST", urls, body)
66564	if err != nil {
66565		return nil, err
66566	}
66567	req.Header = reqHeaders
66568	googleapi.Expand(req.URL, map[string]string{
66569		"project":              c.project,
66570		"networkEndpointGroup": c.networkEndpointGroup,
66571	})
66572	return gensupport.SendRequest(c.ctx_, c.s.client, req)
66573}
66574
66575// Do executes the "compute.globalNetworkEndpointGroups.listNetworkEndpoints" call.
66576// Exactly one of *NetworkEndpointGroupsListNetworkEndpoints or error
66577// will be non-nil. Any non-2xx status code is an error. Response
66578// headers are in either
66579// *NetworkEndpointGroupsListNetworkEndpoints.ServerResponse.Header or
66580// (if a response was returned at all) in
66581// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
66582// whether the returned error was because http.StatusNotModified was
66583// returned.
66584func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) Do(opts ...googleapi.CallOption) (*NetworkEndpointGroupsListNetworkEndpoints, error) {
66585	gensupport.SetOptions(c.urlParams_, opts...)
66586	res, err := c.doRequest("json")
66587	if res != nil && res.StatusCode == http.StatusNotModified {
66588		if res.Body != nil {
66589			res.Body.Close()
66590		}
66591		return nil, &googleapi.Error{
66592			Code:   res.StatusCode,
66593			Header: res.Header,
66594		}
66595	}
66596	if err != nil {
66597		return nil, err
66598	}
66599	defer googleapi.CloseBody(res)
66600	if err := googleapi.CheckResponse(res); err != nil {
66601		return nil, err
66602	}
66603	ret := &NetworkEndpointGroupsListNetworkEndpoints{
66604		ServerResponse: googleapi.ServerResponse{
66605			Header:         res.Header,
66606			HTTPStatusCode: res.StatusCode,
66607		},
66608	}
66609	target := &ret
66610	if err := gensupport.DecodeResponse(target, res); err != nil {
66611		return nil, err
66612	}
66613	return ret, nil
66614	// {
66615	//   "description": "Lists the network endpoints in the specified network endpoint group. (== suppress_warning http-rest-shadowed ==)",
66616	//   "httpMethod": "POST",
66617	//   "id": "compute.globalNetworkEndpointGroups.listNetworkEndpoints",
66618	//   "parameterOrder": [
66619	//     "project",
66620	//     "networkEndpointGroup"
66621	//   ],
66622	//   "parameters": {
66623	//     "filter": {
66624	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
66625	//       "location": "query",
66626	//       "type": "string"
66627	//     },
66628	//     "maxResults": {
66629	//       "default": "500",
66630	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
66631	//       "format": "uint32",
66632	//       "location": "query",
66633	//       "minimum": "0",
66634	//       "type": "integer"
66635	//     },
66636	//     "networkEndpointGroup": {
66637	//       "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.",
66638	//       "location": "path",
66639	//       "required": true,
66640	//       "type": "string"
66641	//     },
66642	//     "orderBy": {
66643	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
66644	//       "location": "query",
66645	//       "type": "string"
66646	//     },
66647	//     "pageToken": {
66648	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
66649	//       "location": "query",
66650	//       "type": "string"
66651	//     },
66652	//     "project": {
66653	//       "description": "Project ID for this request.",
66654	//       "location": "path",
66655	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
66656	//       "required": true,
66657	//       "type": "string"
66658	//     }
66659	//   },
66660	//   "path": "{project}/global/networkEndpointGroups/{networkEndpointGroup}/listNetworkEndpoints",
66661	//   "response": {
66662	//     "$ref": "NetworkEndpointGroupsListNetworkEndpoints"
66663	//   },
66664	//   "scopes": [
66665	//     "https://www.googleapis.com/auth/cloud-platform",
66666	//     "https://www.googleapis.com/auth/compute",
66667	//     "https://www.googleapis.com/auth/compute.readonly"
66668	//   ]
66669	// }
66670
66671}
66672
66673// Pages invokes f for each page of results.
66674// A non-nil error returned from f will halt the iteration.
66675// The provided context supersedes any context provided to the Context method.
66676func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) Pages(ctx context.Context, f func(*NetworkEndpointGroupsListNetworkEndpoints) error) error {
66677	c.ctx_ = ctx
66678	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
66679	for {
66680		x, err := c.Do()
66681		if err != nil {
66682			return err
66683		}
66684		if err := f(x); err != nil {
66685			return err
66686		}
66687		if x.NextPageToken == "" {
66688			return nil
66689		}
66690		c.PageToken(x.NextPageToken)
66691	}
66692}
66693
66694// method id "compute.globalOperations.aggregatedList":
66695
66696type GlobalOperationsAggregatedListCall struct {
66697	s            *Service
66698	project      string
66699	urlParams_   gensupport.URLParams
66700	ifNoneMatch_ string
66701	ctx_         context.Context
66702	header_      http.Header
66703}
66704
66705// AggregatedList: Retrieves an aggregated list of all operations. (==
66706// suppress_warning http-rest-shadowed ==)
66707// For details, see https://cloud.google.com/compute/docs/reference/latest/globalOperations/aggregatedList
66708func (r *GlobalOperationsService) AggregatedList(project string) *GlobalOperationsAggregatedListCall {
66709	c := &GlobalOperationsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
66710	c.project = project
66711	return c
66712}
66713
66714// Filter sets the optional parameter "filter": A filter expression that
66715// filters resources listed in the response. The expression must specify
66716// the field name, a comparison operator, and the value that you want to
66717// use for filtering. The value must be a string, a number, or a
66718// boolean. The comparison operator must be either =, !=, >, or <.
66719//
66720// For example, if you are filtering Compute Engine instances, you can
66721// exclude instances named example-instance by specifying name !=
66722// example-instance.
66723//
66724// You can also filter nested fields. For example, you could specify
66725// scheduling.automaticRestart = false to include instances only if they
66726// are not scheduled for automatic restarts. You can use filtering on
66727// nested fields to filter based on resource labels.
66728//
66729// To filter on multiple expressions, provide each separate expression
66730// within parentheses. For example, (scheduling.automaticRestart = true)
66731// (cpuPlatform = "Intel Skylake"). By default, each expression is an
66732// AND expression. However, you can include AND and OR expressions
66733// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
66734// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
66735// true).
66736func (c *GlobalOperationsAggregatedListCall) Filter(filter string) *GlobalOperationsAggregatedListCall {
66737	c.urlParams_.Set("filter", filter)
66738	return c
66739}
66740
66741// MaxResults sets the optional parameter "maxResults": The maximum
66742// number of results per page that should be returned. If the number of
66743// available results is larger than maxResults, Compute Engine returns a
66744// nextPageToken that can be used to get the next page of results in
66745// subsequent list requests. Acceptable values are 0 to 500, inclusive.
66746// (Default: 500)
66747func (c *GlobalOperationsAggregatedListCall) MaxResults(maxResults int64) *GlobalOperationsAggregatedListCall {
66748	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
66749	return c
66750}
66751
66752// OrderBy sets the optional parameter "orderBy": Sorts list results by
66753// a certain order. By default, results are returned in alphanumerical
66754// order based on the resource name.
66755//
66756// You can also sort results in descending order based on the creation
66757// timestamp using orderBy="creationTimestamp desc". This sorts results
66758// based on the creationTimestamp field in reverse chronological order
66759// (newest result first). Use this to sort resources like operations so
66760// that the newest operation is returned first.
66761//
66762// Currently, only sorting by name or creationTimestamp desc is
66763// supported.
66764func (c *GlobalOperationsAggregatedListCall) OrderBy(orderBy string) *GlobalOperationsAggregatedListCall {
66765	c.urlParams_.Set("orderBy", orderBy)
66766	return c
66767}
66768
66769// PageToken sets the optional parameter "pageToken": Specifies a page
66770// token to use. Set pageToken to the nextPageToken returned by a
66771// previous list request to get the next page of results.
66772func (c *GlobalOperationsAggregatedListCall) PageToken(pageToken string) *GlobalOperationsAggregatedListCall {
66773	c.urlParams_.Set("pageToken", pageToken)
66774	return c
66775}
66776
66777// Fields allows partial responses to be retrieved. See
66778// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
66779// for more information.
66780func (c *GlobalOperationsAggregatedListCall) Fields(s ...googleapi.Field) *GlobalOperationsAggregatedListCall {
66781	c.urlParams_.Set("fields", googleapi.CombineFields(s))
66782	return c
66783}
66784
66785// IfNoneMatch sets the optional parameter which makes the operation
66786// fail if the object's ETag matches the given value. This is useful for
66787// getting updates only after the object has changed since the last
66788// request. Use googleapi.IsNotModified to check whether the response
66789// error from Do is the result of In-None-Match.
66790func (c *GlobalOperationsAggregatedListCall) IfNoneMatch(entityTag string) *GlobalOperationsAggregatedListCall {
66791	c.ifNoneMatch_ = entityTag
66792	return c
66793}
66794
66795// Context sets the context to be used in this call's Do method. Any
66796// pending HTTP request will be aborted if the provided context is
66797// canceled.
66798func (c *GlobalOperationsAggregatedListCall) Context(ctx context.Context) *GlobalOperationsAggregatedListCall {
66799	c.ctx_ = ctx
66800	return c
66801}
66802
66803// Header returns an http.Header that can be modified by the caller to
66804// add HTTP headers to the request.
66805func (c *GlobalOperationsAggregatedListCall) Header() http.Header {
66806	if c.header_ == nil {
66807		c.header_ = make(http.Header)
66808	}
66809	return c.header_
66810}
66811
66812func (c *GlobalOperationsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
66813	reqHeaders := make(http.Header)
66814	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
66815	for k, v := range c.header_ {
66816		reqHeaders[k] = v
66817	}
66818	reqHeaders.Set("User-Agent", c.s.userAgent())
66819	if c.ifNoneMatch_ != "" {
66820		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
66821	}
66822	var body io.Reader = nil
66823	c.urlParams_.Set("alt", alt)
66824	c.urlParams_.Set("prettyPrint", "false")
66825	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/operations")
66826	urls += "?" + c.urlParams_.Encode()
66827	req, err := http.NewRequest("GET", urls, body)
66828	if err != nil {
66829		return nil, err
66830	}
66831	req.Header = reqHeaders
66832	googleapi.Expand(req.URL, map[string]string{
66833		"project": c.project,
66834	})
66835	return gensupport.SendRequest(c.ctx_, c.s.client, req)
66836}
66837
66838// Do executes the "compute.globalOperations.aggregatedList" call.
66839// Exactly one of *OperationAggregatedList or error will be non-nil. Any
66840// non-2xx status code is an error. Response headers are in either
66841// *OperationAggregatedList.ServerResponse.Header or (if a response was
66842// returned at all) in error.(*googleapi.Error).Header. Use
66843// googleapi.IsNotModified to check whether the returned error was
66844// because http.StatusNotModified was returned.
66845func (c *GlobalOperationsAggregatedListCall) Do(opts ...googleapi.CallOption) (*OperationAggregatedList, error) {
66846	gensupport.SetOptions(c.urlParams_, opts...)
66847	res, err := c.doRequest("json")
66848	if res != nil && res.StatusCode == http.StatusNotModified {
66849		if res.Body != nil {
66850			res.Body.Close()
66851		}
66852		return nil, &googleapi.Error{
66853			Code:   res.StatusCode,
66854			Header: res.Header,
66855		}
66856	}
66857	if err != nil {
66858		return nil, err
66859	}
66860	defer googleapi.CloseBody(res)
66861	if err := googleapi.CheckResponse(res); err != nil {
66862		return nil, err
66863	}
66864	ret := &OperationAggregatedList{
66865		ServerResponse: googleapi.ServerResponse{
66866			Header:         res.Header,
66867			HTTPStatusCode: res.StatusCode,
66868		},
66869	}
66870	target := &ret
66871	if err := gensupport.DecodeResponse(target, res); err != nil {
66872		return nil, err
66873	}
66874	return ret, nil
66875	// {
66876	//   "description": "Retrieves an aggregated list of all operations. (== suppress_warning http-rest-shadowed ==)",
66877	//   "httpMethod": "GET",
66878	//   "id": "compute.globalOperations.aggregatedList",
66879	//   "parameterOrder": [
66880	//     "project"
66881	//   ],
66882	//   "parameters": {
66883	//     "filter": {
66884	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
66885	//       "location": "query",
66886	//       "type": "string"
66887	//     },
66888	//     "maxResults": {
66889	//       "default": "500",
66890	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
66891	//       "format": "uint32",
66892	//       "location": "query",
66893	//       "minimum": "0",
66894	//       "type": "integer"
66895	//     },
66896	//     "orderBy": {
66897	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
66898	//       "location": "query",
66899	//       "type": "string"
66900	//     },
66901	//     "pageToken": {
66902	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
66903	//       "location": "query",
66904	//       "type": "string"
66905	//     },
66906	//     "project": {
66907	//       "description": "Project ID for this request.",
66908	//       "location": "path",
66909	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
66910	//       "required": true,
66911	//       "type": "string"
66912	//     }
66913	//   },
66914	//   "path": "{project}/aggregated/operations",
66915	//   "response": {
66916	//     "$ref": "OperationAggregatedList"
66917	//   },
66918	//   "scopes": [
66919	//     "https://www.googleapis.com/auth/cloud-platform",
66920	//     "https://www.googleapis.com/auth/compute",
66921	//     "https://www.googleapis.com/auth/compute.readonly"
66922	//   ]
66923	// }
66924
66925}
66926
66927// Pages invokes f for each page of results.
66928// A non-nil error returned from f will halt the iteration.
66929// The provided context supersedes any context provided to the Context method.
66930func (c *GlobalOperationsAggregatedListCall) Pages(ctx context.Context, f func(*OperationAggregatedList) error) error {
66931	c.ctx_ = ctx
66932	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
66933	for {
66934		x, err := c.Do()
66935		if err != nil {
66936			return err
66937		}
66938		if err := f(x); err != nil {
66939			return err
66940		}
66941		if x.NextPageToken == "" {
66942			return nil
66943		}
66944		c.PageToken(x.NextPageToken)
66945	}
66946}
66947
66948// method id "compute.globalOperations.delete":
66949
66950type GlobalOperationsDeleteCall struct {
66951	s          *Service
66952	project    string
66953	operation  string
66954	urlParams_ gensupport.URLParams
66955	ctx_       context.Context
66956	header_    http.Header
66957}
66958
66959// Delete: Deletes the specified Operations resource. (==
66960// suppress_warning http-rest-shadowed ==)
66961// For details, see https://cloud.google.com/compute/docs/reference/latest/globalOperations/delete
66962func (r *GlobalOperationsService) Delete(project string, operation string) *GlobalOperationsDeleteCall {
66963	c := &GlobalOperationsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
66964	c.project = project
66965	c.operation = operation
66966	return c
66967}
66968
66969// Fields allows partial responses to be retrieved. See
66970// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
66971// for more information.
66972func (c *GlobalOperationsDeleteCall) Fields(s ...googleapi.Field) *GlobalOperationsDeleteCall {
66973	c.urlParams_.Set("fields", googleapi.CombineFields(s))
66974	return c
66975}
66976
66977// Context sets the context to be used in this call's Do method. Any
66978// pending HTTP request will be aborted if the provided context is
66979// canceled.
66980func (c *GlobalOperationsDeleteCall) Context(ctx context.Context) *GlobalOperationsDeleteCall {
66981	c.ctx_ = ctx
66982	return c
66983}
66984
66985// Header returns an http.Header that can be modified by the caller to
66986// add HTTP headers to the request.
66987func (c *GlobalOperationsDeleteCall) Header() http.Header {
66988	if c.header_ == nil {
66989		c.header_ = make(http.Header)
66990	}
66991	return c.header_
66992}
66993
66994func (c *GlobalOperationsDeleteCall) doRequest(alt string) (*http.Response, error) {
66995	reqHeaders := make(http.Header)
66996	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
66997	for k, v := range c.header_ {
66998		reqHeaders[k] = v
66999	}
67000	reqHeaders.Set("User-Agent", c.s.userAgent())
67001	var body io.Reader = nil
67002	c.urlParams_.Set("alt", alt)
67003	c.urlParams_.Set("prettyPrint", "false")
67004	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/operations/{operation}")
67005	urls += "?" + c.urlParams_.Encode()
67006	req, err := http.NewRequest("DELETE", urls, body)
67007	if err != nil {
67008		return nil, err
67009	}
67010	req.Header = reqHeaders
67011	googleapi.Expand(req.URL, map[string]string{
67012		"project":   c.project,
67013		"operation": c.operation,
67014	})
67015	return gensupport.SendRequest(c.ctx_, c.s.client, req)
67016}
67017
67018// Do executes the "compute.globalOperations.delete" call.
67019func (c *GlobalOperationsDeleteCall) Do(opts ...googleapi.CallOption) error {
67020	gensupport.SetOptions(c.urlParams_, opts...)
67021	res, err := c.doRequest("json")
67022	if err != nil {
67023		return err
67024	}
67025	defer googleapi.CloseBody(res)
67026	if err := googleapi.CheckResponse(res); err != nil {
67027		return err
67028	}
67029	return nil
67030	// {
67031	//   "description": "Deletes the specified Operations resource. (== suppress_warning http-rest-shadowed ==)",
67032	//   "httpMethod": "DELETE",
67033	//   "id": "compute.globalOperations.delete",
67034	//   "parameterOrder": [
67035	//     "project",
67036	//     "operation"
67037	//   ],
67038	//   "parameters": {
67039	//     "operation": {
67040	//       "description": "Name of the Operations resource to delete.",
67041	//       "location": "path",
67042	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
67043	//       "required": true,
67044	//       "type": "string"
67045	//     },
67046	//     "project": {
67047	//       "description": "Project ID for this request.",
67048	//       "location": "path",
67049	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
67050	//       "required": true,
67051	//       "type": "string"
67052	//     }
67053	//   },
67054	//   "path": "{project}/global/operations/{operation}",
67055	//   "scopes": [
67056	//     "https://www.googleapis.com/auth/cloud-platform",
67057	//     "https://www.googleapis.com/auth/compute"
67058	//   ]
67059	// }
67060
67061}
67062
67063// method id "compute.globalOperations.get":
67064
67065type GlobalOperationsGetCall struct {
67066	s            *Service
67067	project      string
67068	operation    string
67069	urlParams_   gensupport.URLParams
67070	ifNoneMatch_ string
67071	ctx_         context.Context
67072	header_      http.Header
67073}
67074
67075// Get: Retrieves the specified Operations resource. Gets a list of
67076// operations by making a list() request. (== suppress_warning
67077// http-rest-shadowed ==)
67078// For details, see https://cloud.google.com/compute/docs/reference/latest/globalOperations/get
67079func (r *GlobalOperationsService) Get(project string, operation string) *GlobalOperationsGetCall {
67080	c := &GlobalOperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
67081	c.project = project
67082	c.operation = operation
67083	return c
67084}
67085
67086// Fields allows partial responses to be retrieved. See
67087// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
67088// for more information.
67089func (c *GlobalOperationsGetCall) Fields(s ...googleapi.Field) *GlobalOperationsGetCall {
67090	c.urlParams_.Set("fields", googleapi.CombineFields(s))
67091	return c
67092}
67093
67094// IfNoneMatch sets the optional parameter which makes the operation
67095// fail if the object's ETag matches the given value. This is useful for
67096// getting updates only after the object has changed since the last
67097// request. Use googleapi.IsNotModified to check whether the response
67098// error from Do is the result of In-None-Match.
67099func (c *GlobalOperationsGetCall) IfNoneMatch(entityTag string) *GlobalOperationsGetCall {
67100	c.ifNoneMatch_ = entityTag
67101	return c
67102}
67103
67104// Context sets the context to be used in this call's Do method. Any
67105// pending HTTP request will be aborted if the provided context is
67106// canceled.
67107func (c *GlobalOperationsGetCall) Context(ctx context.Context) *GlobalOperationsGetCall {
67108	c.ctx_ = ctx
67109	return c
67110}
67111
67112// Header returns an http.Header that can be modified by the caller to
67113// add HTTP headers to the request.
67114func (c *GlobalOperationsGetCall) Header() http.Header {
67115	if c.header_ == nil {
67116		c.header_ = make(http.Header)
67117	}
67118	return c.header_
67119}
67120
67121func (c *GlobalOperationsGetCall) doRequest(alt string) (*http.Response, error) {
67122	reqHeaders := make(http.Header)
67123	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
67124	for k, v := range c.header_ {
67125		reqHeaders[k] = v
67126	}
67127	reqHeaders.Set("User-Agent", c.s.userAgent())
67128	if c.ifNoneMatch_ != "" {
67129		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
67130	}
67131	var body io.Reader = nil
67132	c.urlParams_.Set("alt", alt)
67133	c.urlParams_.Set("prettyPrint", "false")
67134	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/operations/{operation}")
67135	urls += "?" + c.urlParams_.Encode()
67136	req, err := http.NewRequest("GET", urls, body)
67137	if err != nil {
67138		return nil, err
67139	}
67140	req.Header = reqHeaders
67141	googleapi.Expand(req.URL, map[string]string{
67142		"project":   c.project,
67143		"operation": c.operation,
67144	})
67145	return gensupport.SendRequest(c.ctx_, c.s.client, req)
67146}
67147
67148// Do executes the "compute.globalOperations.get" call.
67149// Exactly one of *Operation or error will be non-nil. Any non-2xx
67150// status code is an error. Response headers are in either
67151// *Operation.ServerResponse.Header or (if a response was returned at
67152// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
67153// to check whether the returned error was because
67154// http.StatusNotModified was returned.
67155func (c *GlobalOperationsGetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
67156	gensupport.SetOptions(c.urlParams_, opts...)
67157	res, err := c.doRequest("json")
67158	if res != nil && res.StatusCode == http.StatusNotModified {
67159		if res.Body != nil {
67160			res.Body.Close()
67161		}
67162		return nil, &googleapi.Error{
67163			Code:   res.StatusCode,
67164			Header: res.Header,
67165		}
67166	}
67167	if err != nil {
67168		return nil, err
67169	}
67170	defer googleapi.CloseBody(res)
67171	if err := googleapi.CheckResponse(res); err != nil {
67172		return nil, err
67173	}
67174	ret := &Operation{
67175		ServerResponse: googleapi.ServerResponse{
67176			Header:         res.Header,
67177			HTTPStatusCode: res.StatusCode,
67178		},
67179	}
67180	target := &ret
67181	if err := gensupport.DecodeResponse(target, res); err != nil {
67182		return nil, err
67183	}
67184	return ret, nil
67185	// {
67186	//   "description": "Retrieves the specified Operations resource. Gets a list of operations by making a list() request. (== suppress_warning http-rest-shadowed ==)",
67187	//   "httpMethod": "GET",
67188	//   "id": "compute.globalOperations.get",
67189	//   "parameterOrder": [
67190	//     "project",
67191	//     "operation"
67192	//   ],
67193	//   "parameters": {
67194	//     "operation": {
67195	//       "description": "Name of the Operations resource to return.",
67196	//       "location": "path",
67197	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
67198	//       "required": true,
67199	//       "type": "string"
67200	//     },
67201	//     "project": {
67202	//       "description": "Project ID for this request.",
67203	//       "location": "path",
67204	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
67205	//       "required": true,
67206	//       "type": "string"
67207	//     }
67208	//   },
67209	//   "path": "{project}/global/operations/{operation}",
67210	//   "response": {
67211	//     "$ref": "Operation"
67212	//   },
67213	//   "scopes": [
67214	//     "https://www.googleapis.com/auth/cloud-platform",
67215	//     "https://www.googleapis.com/auth/compute",
67216	//     "https://www.googleapis.com/auth/compute.readonly"
67217	//   ]
67218	// }
67219
67220}
67221
67222// method id "compute.globalOperations.list":
67223
67224type GlobalOperationsListCall struct {
67225	s            *Service
67226	project      string
67227	urlParams_   gensupport.URLParams
67228	ifNoneMatch_ string
67229	ctx_         context.Context
67230	header_      http.Header
67231}
67232
67233// List: Retrieves a list of Operation resources contained within the
67234// specified project. (== suppress_warning http-rest-shadowed ==)
67235// For details, see https://cloud.google.com/compute/docs/reference/latest/globalOperations/list
67236func (r *GlobalOperationsService) List(project string) *GlobalOperationsListCall {
67237	c := &GlobalOperationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
67238	c.project = project
67239	return c
67240}
67241
67242// Filter sets the optional parameter "filter": A filter expression that
67243// filters resources listed in the response. The expression must specify
67244// the field name, a comparison operator, and the value that you want to
67245// use for filtering. The value must be a string, a number, or a
67246// boolean. The comparison operator must be either =, !=, >, or <.
67247//
67248// For example, if you are filtering Compute Engine instances, you can
67249// exclude instances named example-instance by specifying name !=
67250// example-instance.
67251//
67252// You can also filter nested fields. For example, you could specify
67253// scheduling.automaticRestart = false to include instances only if they
67254// are not scheduled for automatic restarts. You can use filtering on
67255// nested fields to filter based on resource labels.
67256//
67257// To filter on multiple expressions, provide each separate expression
67258// within parentheses. For example, (scheduling.automaticRestart = true)
67259// (cpuPlatform = "Intel Skylake"). By default, each expression is an
67260// AND expression. However, you can include AND and OR expressions
67261// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
67262// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
67263// true).
67264func (c *GlobalOperationsListCall) Filter(filter string) *GlobalOperationsListCall {
67265	c.urlParams_.Set("filter", filter)
67266	return c
67267}
67268
67269// MaxResults sets the optional parameter "maxResults": The maximum
67270// number of results per page that should be returned. If the number of
67271// available results is larger than maxResults, Compute Engine returns a
67272// nextPageToken that can be used to get the next page of results in
67273// subsequent list requests. Acceptable values are 0 to 500, inclusive.
67274// (Default: 500)
67275func (c *GlobalOperationsListCall) MaxResults(maxResults int64) *GlobalOperationsListCall {
67276	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
67277	return c
67278}
67279
67280// OrderBy sets the optional parameter "orderBy": Sorts list results by
67281// a certain order. By default, results are returned in alphanumerical
67282// order based on the resource name.
67283//
67284// You can also sort results in descending order based on the creation
67285// timestamp using orderBy="creationTimestamp desc". This sorts results
67286// based on the creationTimestamp field in reverse chronological order
67287// (newest result first). Use this to sort resources like operations so
67288// that the newest operation is returned first.
67289//
67290// Currently, only sorting by name or creationTimestamp desc is
67291// supported.
67292func (c *GlobalOperationsListCall) OrderBy(orderBy string) *GlobalOperationsListCall {
67293	c.urlParams_.Set("orderBy", orderBy)
67294	return c
67295}
67296
67297// PageToken sets the optional parameter "pageToken": Specifies a page
67298// token to use. Set pageToken to the nextPageToken returned by a
67299// previous list request to get the next page of results.
67300func (c *GlobalOperationsListCall) PageToken(pageToken string) *GlobalOperationsListCall {
67301	c.urlParams_.Set("pageToken", pageToken)
67302	return c
67303}
67304
67305// Fields allows partial responses to be retrieved. See
67306// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
67307// for more information.
67308func (c *GlobalOperationsListCall) Fields(s ...googleapi.Field) *GlobalOperationsListCall {
67309	c.urlParams_.Set("fields", googleapi.CombineFields(s))
67310	return c
67311}
67312
67313// IfNoneMatch sets the optional parameter which makes the operation
67314// fail if the object's ETag matches the given value. This is useful for
67315// getting updates only after the object has changed since the last
67316// request. Use googleapi.IsNotModified to check whether the response
67317// error from Do is the result of In-None-Match.
67318func (c *GlobalOperationsListCall) IfNoneMatch(entityTag string) *GlobalOperationsListCall {
67319	c.ifNoneMatch_ = entityTag
67320	return c
67321}
67322
67323// Context sets the context to be used in this call's Do method. Any
67324// pending HTTP request will be aborted if the provided context is
67325// canceled.
67326func (c *GlobalOperationsListCall) Context(ctx context.Context) *GlobalOperationsListCall {
67327	c.ctx_ = ctx
67328	return c
67329}
67330
67331// Header returns an http.Header that can be modified by the caller to
67332// add HTTP headers to the request.
67333func (c *GlobalOperationsListCall) Header() http.Header {
67334	if c.header_ == nil {
67335		c.header_ = make(http.Header)
67336	}
67337	return c.header_
67338}
67339
67340func (c *GlobalOperationsListCall) doRequest(alt string) (*http.Response, error) {
67341	reqHeaders := make(http.Header)
67342	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
67343	for k, v := range c.header_ {
67344		reqHeaders[k] = v
67345	}
67346	reqHeaders.Set("User-Agent", c.s.userAgent())
67347	if c.ifNoneMatch_ != "" {
67348		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
67349	}
67350	var body io.Reader = nil
67351	c.urlParams_.Set("alt", alt)
67352	c.urlParams_.Set("prettyPrint", "false")
67353	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/operations")
67354	urls += "?" + c.urlParams_.Encode()
67355	req, err := http.NewRequest("GET", urls, body)
67356	if err != nil {
67357		return nil, err
67358	}
67359	req.Header = reqHeaders
67360	googleapi.Expand(req.URL, map[string]string{
67361		"project": c.project,
67362	})
67363	return gensupport.SendRequest(c.ctx_, c.s.client, req)
67364}
67365
67366// Do executes the "compute.globalOperations.list" call.
67367// Exactly one of *OperationList or error will be non-nil. Any non-2xx
67368// status code is an error. Response headers are in either
67369// *OperationList.ServerResponse.Header or (if a response was returned
67370// at all) in error.(*googleapi.Error).Header. Use
67371// googleapi.IsNotModified to check whether the returned error was
67372// because http.StatusNotModified was returned.
67373func (c *GlobalOperationsListCall) Do(opts ...googleapi.CallOption) (*OperationList, error) {
67374	gensupport.SetOptions(c.urlParams_, opts...)
67375	res, err := c.doRequest("json")
67376	if res != nil && res.StatusCode == http.StatusNotModified {
67377		if res.Body != nil {
67378			res.Body.Close()
67379		}
67380		return nil, &googleapi.Error{
67381			Code:   res.StatusCode,
67382			Header: res.Header,
67383		}
67384	}
67385	if err != nil {
67386		return nil, err
67387	}
67388	defer googleapi.CloseBody(res)
67389	if err := googleapi.CheckResponse(res); err != nil {
67390		return nil, err
67391	}
67392	ret := &OperationList{
67393		ServerResponse: googleapi.ServerResponse{
67394			Header:         res.Header,
67395			HTTPStatusCode: res.StatusCode,
67396		},
67397	}
67398	target := &ret
67399	if err := gensupport.DecodeResponse(target, res); err != nil {
67400		return nil, err
67401	}
67402	return ret, nil
67403	// {
67404	//   "description": "Retrieves a list of Operation resources contained within the specified project. (== suppress_warning http-rest-shadowed ==)",
67405	//   "httpMethod": "GET",
67406	//   "id": "compute.globalOperations.list",
67407	//   "parameterOrder": [
67408	//     "project"
67409	//   ],
67410	//   "parameters": {
67411	//     "filter": {
67412	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
67413	//       "location": "query",
67414	//       "type": "string"
67415	//     },
67416	//     "maxResults": {
67417	//       "default": "500",
67418	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
67419	//       "format": "uint32",
67420	//       "location": "query",
67421	//       "minimum": "0",
67422	//       "type": "integer"
67423	//     },
67424	//     "orderBy": {
67425	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
67426	//       "location": "query",
67427	//       "type": "string"
67428	//     },
67429	//     "pageToken": {
67430	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
67431	//       "location": "query",
67432	//       "type": "string"
67433	//     },
67434	//     "project": {
67435	//       "description": "Project ID for this request.",
67436	//       "location": "path",
67437	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
67438	//       "required": true,
67439	//       "type": "string"
67440	//     }
67441	//   },
67442	//   "path": "{project}/global/operations",
67443	//   "response": {
67444	//     "$ref": "OperationList"
67445	//   },
67446	//   "scopes": [
67447	//     "https://www.googleapis.com/auth/cloud-platform",
67448	//     "https://www.googleapis.com/auth/compute",
67449	//     "https://www.googleapis.com/auth/compute.readonly"
67450	//   ]
67451	// }
67452
67453}
67454
67455// Pages invokes f for each page of results.
67456// A non-nil error returned from f will halt the iteration.
67457// The provided context supersedes any context provided to the Context method.
67458func (c *GlobalOperationsListCall) Pages(ctx context.Context, f func(*OperationList) error) error {
67459	c.ctx_ = ctx
67460	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
67461	for {
67462		x, err := c.Do()
67463		if err != nil {
67464			return err
67465		}
67466		if err := f(x); err != nil {
67467			return err
67468		}
67469		if x.NextPageToken == "" {
67470			return nil
67471		}
67472		c.PageToken(x.NextPageToken)
67473	}
67474}
67475
67476// method id "compute.globalOperations.wait":
67477
67478type GlobalOperationsWaitCall struct {
67479	s          *Service
67480	project    string
67481	operation  string
67482	urlParams_ gensupport.URLParams
67483	ctx_       context.Context
67484	header_    http.Header
67485}
67486
67487// Wait: Waits for the specified Operations resource until it is done or
67488// timeout, and retrieves the specified Operations resource. 1.
67489// Immediately returns when the operation is already done. 2. Waits for
67490// no more than the default deadline (2 minutes, subject to change) and
67491// then returns the current state of the operation, which may be DONE or
67492// still in progress. 3. Is best-effort: a. The server can wait less
67493// than the default deadline or zero seconds, in overload situations. b.
67494// There is no guarantee that the operation is actually done when
67495// returns. 4. User should be prepared to retry if the operation is not
67496// DONE. (== suppress_warning http-rest-shadowed ==)
67497func (r *GlobalOperationsService) Wait(project string, operation string) *GlobalOperationsWaitCall {
67498	c := &GlobalOperationsWaitCall{s: r.s, urlParams_: make(gensupport.URLParams)}
67499	c.project = project
67500	c.operation = operation
67501	return c
67502}
67503
67504// Fields allows partial responses to be retrieved. See
67505// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
67506// for more information.
67507func (c *GlobalOperationsWaitCall) Fields(s ...googleapi.Field) *GlobalOperationsWaitCall {
67508	c.urlParams_.Set("fields", googleapi.CombineFields(s))
67509	return c
67510}
67511
67512// Context sets the context to be used in this call's Do method. Any
67513// pending HTTP request will be aborted if the provided context is
67514// canceled.
67515func (c *GlobalOperationsWaitCall) Context(ctx context.Context) *GlobalOperationsWaitCall {
67516	c.ctx_ = ctx
67517	return c
67518}
67519
67520// Header returns an http.Header that can be modified by the caller to
67521// add HTTP headers to the request.
67522func (c *GlobalOperationsWaitCall) Header() http.Header {
67523	if c.header_ == nil {
67524		c.header_ = make(http.Header)
67525	}
67526	return c.header_
67527}
67528
67529func (c *GlobalOperationsWaitCall) doRequest(alt string) (*http.Response, error) {
67530	reqHeaders := make(http.Header)
67531	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
67532	for k, v := range c.header_ {
67533		reqHeaders[k] = v
67534	}
67535	reqHeaders.Set("User-Agent", c.s.userAgent())
67536	var body io.Reader = nil
67537	c.urlParams_.Set("alt", alt)
67538	c.urlParams_.Set("prettyPrint", "false")
67539	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/operations/{operation}/wait")
67540	urls += "?" + c.urlParams_.Encode()
67541	req, err := http.NewRequest("POST", urls, body)
67542	if err != nil {
67543		return nil, err
67544	}
67545	req.Header = reqHeaders
67546	googleapi.Expand(req.URL, map[string]string{
67547		"project":   c.project,
67548		"operation": c.operation,
67549	})
67550	return gensupport.SendRequest(c.ctx_, c.s.client, req)
67551}
67552
67553// Do executes the "compute.globalOperations.wait" call.
67554// Exactly one of *Operation or error will be non-nil. Any non-2xx
67555// status code is an error. Response headers are in either
67556// *Operation.ServerResponse.Header or (if a response was returned at
67557// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
67558// to check whether the returned error was because
67559// http.StatusNotModified was returned.
67560func (c *GlobalOperationsWaitCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
67561	gensupport.SetOptions(c.urlParams_, opts...)
67562	res, err := c.doRequest("json")
67563	if res != nil && res.StatusCode == http.StatusNotModified {
67564		if res.Body != nil {
67565			res.Body.Close()
67566		}
67567		return nil, &googleapi.Error{
67568			Code:   res.StatusCode,
67569			Header: res.Header,
67570		}
67571	}
67572	if err != nil {
67573		return nil, err
67574	}
67575	defer googleapi.CloseBody(res)
67576	if err := googleapi.CheckResponse(res); err != nil {
67577		return nil, err
67578	}
67579	ret := &Operation{
67580		ServerResponse: googleapi.ServerResponse{
67581			Header:         res.Header,
67582			HTTPStatusCode: res.StatusCode,
67583		},
67584	}
67585	target := &ret
67586	if err := gensupport.DecodeResponse(target, res); err != nil {
67587		return nil, err
67588	}
67589	return ret, nil
67590	// {
67591	//   "description": "Waits for the specified Operations resource until it is done or timeout, and retrieves the specified Operations resource. 1. Immediately returns when the operation is already done. 2. Waits for no more than the default deadline (2 minutes, subject to change) and then returns the current state of the operation, which may be DONE or still in progress. 3. Is best-effort: a. The server can wait less than the default deadline or zero seconds, in overload situations. b. There is no guarantee that the operation is actually done when returns. 4. User should be prepared to retry if the operation is not DONE. (== suppress_warning http-rest-shadowed ==)",
67592	//   "httpMethod": "POST",
67593	//   "id": "compute.globalOperations.wait",
67594	//   "parameterOrder": [
67595	//     "project",
67596	//     "operation"
67597	//   ],
67598	//   "parameters": {
67599	//     "operation": {
67600	//       "description": "Name of the Operations resource to return.",
67601	//       "location": "path",
67602	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
67603	//       "required": true,
67604	//       "type": "string"
67605	//     },
67606	//     "project": {
67607	//       "description": "Project ID for this request.",
67608	//       "location": "path",
67609	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
67610	//       "required": true,
67611	//       "type": "string"
67612	//     }
67613	//   },
67614	//   "path": "{project}/global/operations/{operation}/wait",
67615	//   "response": {
67616	//     "$ref": "Operation"
67617	//   },
67618	//   "scopes": [
67619	//     "https://www.googleapis.com/auth/cloud-platform",
67620	//     "https://www.googleapis.com/auth/compute",
67621	//     "https://www.googleapis.com/auth/compute.readonly"
67622	//   ]
67623	// }
67624
67625}
67626
67627// method id "compute.globalOrganizationOperations.delete":
67628
67629type GlobalOrganizationOperationsDeleteCall struct {
67630	s          *Service
67631	operation  string
67632	urlParams_ gensupport.URLParams
67633	ctx_       context.Context
67634	header_    http.Header
67635}
67636
67637// Delete: Deletes the specified Operations resource. (==
67638// suppress_warning http-rest-shadowed ==)
67639func (r *GlobalOrganizationOperationsService) Delete(operation string) *GlobalOrganizationOperationsDeleteCall {
67640	c := &GlobalOrganizationOperationsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
67641	c.operation = operation
67642	return c
67643}
67644
67645// ParentId sets the optional parameter "parentId": Parent ID for this
67646// request.
67647func (c *GlobalOrganizationOperationsDeleteCall) ParentId(parentId string) *GlobalOrganizationOperationsDeleteCall {
67648	c.urlParams_.Set("parentId", parentId)
67649	return c
67650}
67651
67652// Fields allows partial responses to be retrieved. See
67653// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
67654// for more information.
67655func (c *GlobalOrganizationOperationsDeleteCall) Fields(s ...googleapi.Field) *GlobalOrganizationOperationsDeleteCall {
67656	c.urlParams_.Set("fields", googleapi.CombineFields(s))
67657	return c
67658}
67659
67660// Context sets the context to be used in this call's Do method. Any
67661// pending HTTP request will be aborted if the provided context is
67662// canceled.
67663func (c *GlobalOrganizationOperationsDeleteCall) Context(ctx context.Context) *GlobalOrganizationOperationsDeleteCall {
67664	c.ctx_ = ctx
67665	return c
67666}
67667
67668// Header returns an http.Header that can be modified by the caller to
67669// add HTTP headers to the request.
67670func (c *GlobalOrganizationOperationsDeleteCall) Header() http.Header {
67671	if c.header_ == nil {
67672		c.header_ = make(http.Header)
67673	}
67674	return c.header_
67675}
67676
67677func (c *GlobalOrganizationOperationsDeleteCall) doRequest(alt string) (*http.Response, error) {
67678	reqHeaders := make(http.Header)
67679	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
67680	for k, v := range c.header_ {
67681		reqHeaders[k] = v
67682	}
67683	reqHeaders.Set("User-Agent", c.s.userAgent())
67684	var body io.Reader = nil
67685	c.urlParams_.Set("alt", alt)
67686	c.urlParams_.Set("prettyPrint", "false")
67687	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/operations/{operation}")
67688	urls += "?" + c.urlParams_.Encode()
67689	req, err := http.NewRequest("DELETE", urls, body)
67690	if err != nil {
67691		return nil, err
67692	}
67693	req.Header = reqHeaders
67694	googleapi.Expand(req.URL, map[string]string{
67695		"operation": c.operation,
67696	})
67697	return gensupport.SendRequest(c.ctx_, c.s.client, req)
67698}
67699
67700// Do executes the "compute.globalOrganizationOperations.delete" call.
67701func (c *GlobalOrganizationOperationsDeleteCall) Do(opts ...googleapi.CallOption) error {
67702	gensupport.SetOptions(c.urlParams_, opts...)
67703	res, err := c.doRequest("json")
67704	if err != nil {
67705		return err
67706	}
67707	defer googleapi.CloseBody(res)
67708	if err := googleapi.CheckResponse(res); err != nil {
67709		return err
67710	}
67711	return nil
67712	// {
67713	//   "description": "Deletes the specified Operations resource. (== suppress_warning http-rest-shadowed ==)",
67714	//   "httpMethod": "DELETE",
67715	//   "id": "compute.globalOrganizationOperations.delete",
67716	//   "parameterOrder": [
67717	//     "operation"
67718	//   ],
67719	//   "parameters": {
67720	//     "operation": {
67721	//       "description": "Name of the Operations resource to delete.",
67722	//       "location": "path",
67723	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
67724	//       "required": true,
67725	//       "type": "string"
67726	//     },
67727	//     "parentId": {
67728	//       "description": "Parent ID for this request.",
67729	//       "location": "query",
67730	//       "type": "string"
67731	//     }
67732	//   },
67733	//   "path": "locations/global/operations/{operation}",
67734	//   "scopes": [
67735	//     "https://www.googleapis.com/auth/cloud-platform",
67736	//     "https://www.googleapis.com/auth/compute"
67737	//   ]
67738	// }
67739
67740}
67741
67742// method id "compute.globalOrganizationOperations.get":
67743
67744type GlobalOrganizationOperationsGetCall struct {
67745	s            *Service
67746	operation    string
67747	urlParams_   gensupport.URLParams
67748	ifNoneMatch_ string
67749	ctx_         context.Context
67750	header_      http.Header
67751}
67752
67753// Get: Retrieves the specified Operations resource. Gets a list of
67754// operations by making a list() request. (== suppress_warning
67755// http-rest-shadowed ==)
67756func (r *GlobalOrganizationOperationsService) Get(operation string) *GlobalOrganizationOperationsGetCall {
67757	c := &GlobalOrganizationOperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
67758	c.operation = operation
67759	return c
67760}
67761
67762// ParentId sets the optional parameter "parentId": Parent ID for this
67763// request.
67764func (c *GlobalOrganizationOperationsGetCall) ParentId(parentId string) *GlobalOrganizationOperationsGetCall {
67765	c.urlParams_.Set("parentId", parentId)
67766	return c
67767}
67768
67769// Fields allows partial responses to be retrieved. See
67770// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
67771// for more information.
67772func (c *GlobalOrganizationOperationsGetCall) Fields(s ...googleapi.Field) *GlobalOrganizationOperationsGetCall {
67773	c.urlParams_.Set("fields", googleapi.CombineFields(s))
67774	return c
67775}
67776
67777// IfNoneMatch sets the optional parameter which makes the operation
67778// fail if the object's ETag matches the given value. This is useful for
67779// getting updates only after the object has changed since the last
67780// request. Use googleapi.IsNotModified to check whether the response
67781// error from Do is the result of In-None-Match.
67782func (c *GlobalOrganizationOperationsGetCall) IfNoneMatch(entityTag string) *GlobalOrganizationOperationsGetCall {
67783	c.ifNoneMatch_ = entityTag
67784	return c
67785}
67786
67787// Context sets the context to be used in this call's Do method. Any
67788// pending HTTP request will be aborted if the provided context is
67789// canceled.
67790func (c *GlobalOrganizationOperationsGetCall) Context(ctx context.Context) *GlobalOrganizationOperationsGetCall {
67791	c.ctx_ = ctx
67792	return c
67793}
67794
67795// Header returns an http.Header that can be modified by the caller to
67796// add HTTP headers to the request.
67797func (c *GlobalOrganizationOperationsGetCall) Header() http.Header {
67798	if c.header_ == nil {
67799		c.header_ = make(http.Header)
67800	}
67801	return c.header_
67802}
67803
67804func (c *GlobalOrganizationOperationsGetCall) doRequest(alt string) (*http.Response, error) {
67805	reqHeaders := make(http.Header)
67806	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
67807	for k, v := range c.header_ {
67808		reqHeaders[k] = v
67809	}
67810	reqHeaders.Set("User-Agent", c.s.userAgent())
67811	if c.ifNoneMatch_ != "" {
67812		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
67813	}
67814	var body io.Reader = nil
67815	c.urlParams_.Set("alt", alt)
67816	c.urlParams_.Set("prettyPrint", "false")
67817	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/operations/{operation}")
67818	urls += "?" + c.urlParams_.Encode()
67819	req, err := http.NewRequest("GET", urls, body)
67820	if err != nil {
67821		return nil, err
67822	}
67823	req.Header = reqHeaders
67824	googleapi.Expand(req.URL, map[string]string{
67825		"operation": c.operation,
67826	})
67827	return gensupport.SendRequest(c.ctx_, c.s.client, req)
67828}
67829
67830// Do executes the "compute.globalOrganizationOperations.get" call.
67831// Exactly one of *Operation or error will be non-nil. Any non-2xx
67832// status code is an error. Response headers are in either
67833// *Operation.ServerResponse.Header or (if a response was returned at
67834// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
67835// to check whether the returned error was because
67836// http.StatusNotModified was returned.
67837func (c *GlobalOrganizationOperationsGetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
67838	gensupport.SetOptions(c.urlParams_, opts...)
67839	res, err := c.doRequest("json")
67840	if res != nil && res.StatusCode == http.StatusNotModified {
67841		if res.Body != nil {
67842			res.Body.Close()
67843		}
67844		return nil, &googleapi.Error{
67845			Code:   res.StatusCode,
67846			Header: res.Header,
67847		}
67848	}
67849	if err != nil {
67850		return nil, err
67851	}
67852	defer googleapi.CloseBody(res)
67853	if err := googleapi.CheckResponse(res); err != nil {
67854		return nil, err
67855	}
67856	ret := &Operation{
67857		ServerResponse: googleapi.ServerResponse{
67858			Header:         res.Header,
67859			HTTPStatusCode: res.StatusCode,
67860		},
67861	}
67862	target := &ret
67863	if err := gensupport.DecodeResponse(target, res); err != nil {
67864		return nil, err
67865	}
67866	return ret, nil
67867	// {
67868	//   "description": "Retrieves the specified Operations resource. Gets a list of operations by making a list() request. (== suppress_warning http-rest-shadowed ==)",
67869	//   "httpMethod": "GET",
67870	//   "id": "compute.globalOrganizationOperations.get",
67871	//   "parameterOrder": [
67872	//     "operation"
67873	//   ],
67874	//   "parameters": {
67875	//     "operation": {
67876	//       "description": "Name of the Operations resource to return.",
67877	//       "location": "path",
67878	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
67879	//       "required": true,
67880	//       "type": "string"
67881	//     },
67882	//     "parentId": {
67883	//       "description": "Parent ID for this request.",
67884	//       "location": "query",
67885	//       "type": "string"
67886	//     }
67887	//   },
67888	//   "path": "locations/global/operations/{operation}",
67889	//   "response": {
67890	//     "$ref": "Operation"
67891	//   },
67892	//   "scopes": [
67893	//     "https://www.googleapis.com/auth/cloud-platform",
67894	//     "https://www.googleapis.com/auth/compute",
67895	//     "https://www.googleapis.com/auth/compute.readonly"
67896	//   ]
67897	// }
67898
67899}
67900
67901// method id "compute.globalOrganizationOperations.list":
67902
67903type GlobalOrganizationOperationsListCall struct {
67904	s            *Service
67905	urlParams_   gensupport.URLParams
67906	ifNoneMatch_ string
67907	ctx_         context.Context
67908	header_      http.Header
67909}
67910
67911// List: Retrieves a list of Operation resources contained within the
67912// specified organization. (== suppress_warning http-rest-shadowed ==)
67913func (r *GlobalOrganizationOperationsService) List() *GlobalOrganizationOperationsListCall {
67914	c := &GlobalOrganizationOperationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
67915	return c
67916}
67917
67918// Filter sets the optional parameter "filter": A filter expression that
67919// filters resources listed in the response. The expression must specify
67920// the field name, a comparison operator, and the value that you want to
67921// use for filtering. The value must be a string, a number, or a
67922// boolean. The comparison operator must be either =, !=, >, or <.
67923//
67924// For example, if you are filtering Compute Engine instances, you can
67925// exclude instances named example-instance by specifying name !=
67926// example-instance.
67927//
67928// You can also filter nested fields. For example, you could specify
67929// scheduling.automaticRestart = false to include instances only if they
67930// are not scheduled for automatic restarts. You can use filtering on
67931// nested fields to filter based on resource labels.
67932//
67933// To filter on multiple expressions, provide each separate expression
67934// within parentheses. For example, (scheduling.automaticRestart = true)
67935// (cpuPlatform = "Intel Skylake"). By default, each expression is an
67936// AND expression. However, you can include AND and OR expressions
67937// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
67938// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
67939// true).
67940func (c *GlobalOrganizationOperationsListCall) Filter(filter string) *GlobalOrganizationOperationsListCall {
67941	c.urlParams_.Set("filter", filter)
67942	return c
67943}
67944
67945// MaxResults sets the optional parameter "maxResults": The maximum
67946// number of results per page that should be returned. If the number of
67947// available results is larger than maxResults, Compute Engine returns a
67948// nextPageToken that can be used to get the next page of results in
67949// subsequent list requests. Acceptable values are 0 to 500, inclusive.
67950// (Default: 500)
67951func (c *GlobalOrganizationOperationsListCall) MaxResults(maxResults int64) *GlobalOrganizationOperationsListCall {
67952	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
67953	return c
67954}
67955
67956// OrderBy sets the optional parameter "orderBy": Sorts list results by
67957// a certain order. By default, results are returned in alphanumerical
67958// order based on the resource name.
67959//
67960// You can also sort results in descending order based on the creation
67961// timestamp using orderBy="creationTimestamp desc". This sorts results
67962// based on the creationTimestamp field in reverse chronological order
67963// (newest result first). Use this to sort resources like operations so
67964// that the newest operation is returned first.
67965//
67966// Currently, only sorting by name or creationTimestamp desc is
67967// supported.
67968func (c *GlobalOrganizationOperationsListCall) OrderBy(orderBy string) *GlobalOrganizationOperationsListCall {
67969	c.urlParams_.Set("orderBy", orderBy)
67970	return c
67971}
67972
67973// PageToken sets the optional parameter "pageToken": Specifies a page
67974// token to use. Set pageToken to the nextPageToken returned by a
67975// previous list request to get the next page of results.
67976func (c *GlobalOrganizationOperationsListCall) PageToken(pageToken string) *GlobalOrganizationOperationsListCall {
67977	c.urlParams_.Set("pageToken", pageToken)
67978	return c
67979}
67980
67981// ParentId sets the optional parameter "parentId": Parent ID for this
67982// request.
67983func (c *GlobalOrganizationOperationsListCall) ParentId(parentId string) *GlobalOrganizationOperationsListCall {
67984	c.urlParams_.Set("parentId", parentId)
67985	return c
67986}
67987
67988// Fields allows partial responses to be retrieved. See
67989// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
67990// for more information.
67991func (c *GlobalOrganizationOperationsListCall) Fields(s ...googleapi.Field) *GlobalOrganizationOperationsListCall {
67992	c.urlParams_.Set("fields", googleapi.CombineFields(s))
67993	return c
67994}
67995
67996// IfNoneMatch sets the optional parameter which makes the operation
67997// fail if the object's ETag matches the given value. This is useful for
67998// getting updates only after the object has changed since the last
67999// request. Use googleapi.IsNotModified to check whether the response
68000// error from Do is the result of In-None-Match.
68001func (c *GlobalOrganizationOperationsListCall) IfNoneMatch(entityTag string) *GlobalOrganizationOperationsListCall {
68002	c.ifNoneMatch_ = entityTag
68003	return c
68004}
68005
68006// Context sets the context to be used in this call's Do method. Any
68007// pending HTTP request will be aborted if the provided context is
68008// canceled.
68009func (c *GlobalOrganizationOperationsListCall) Context(ctx context.Context) *GlobalOrganizationOperationsListCall {
68010	c.ctx_ = ctx
68011	return c
68012}
68013
68014// Header returns an http.Header that can be modified by the caller to
68015// add HTTP headers to the request.
68016func (c *GlobalOrganizationOperationsListCall) Header() http.Header {
68017	if c.header_ == nil {
68018		c.header_ = make(http.Header)
68019	}
68020	return c.header_
68021}
68022
68023func (c *GlobalOrganizationOperationsListCall) doRequest(alt string) (*http.Response, error) {
68024	reqHeaders := make(http.Header)
68025	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
68026	for k, v := range c.header_ {
68027		reqHeaders[k] = v
68028	}
68029	reqHeaders.Set("User-Agent", c.s.userAgent())
68030	if c.ifNoneMatch_ != "" {
68031		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
68032	}
68033	var body io.Reader = nil
68034	c.urlParams_.Set("alt", alt)
68035	c.urlParams_.Set("prettyPrint", "false")
68036	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/operations")
68037	urls += "?" + c.urlParams_.Encode()
68038	req, err := http.NewRequest("GET", urls, body)
68039	if err != nil {
68040		return nil, err
68041	}
68042	req.Header = reqHeaders
68043	return gensupport.SendRequest(c.ctx_, c.s.client, req)
68044}
68045
68046// Do executes the "compute.globalOrganizationOperations.list" call.
68047// Exactly one of *OperationList or error will be non-nil. Any non-2xx
68048// status code is an error. Response headers are in either
68049// *OperationList.ServerResponse.Header or (if a response was returned
68050// at all) in error.(*googleapi.Error).Header. Use
68051// googleapi.IsNotModified to check whether the returned error was
68052// because http.StatusNotModified was returned.
68053func (c *GlobalOrganizationOperationsListCall) Do(opts ...googleapi.CallOption) (*OperationList, error) {
68054	gensupport.SetOptions(c.urlParams_, opts...)
68055	res, err := c.doRequest("json")
68056	if res != nil && res.StatusCode == http.StatusNotModified {
68057		if res.Body != nil {
68058			res.Body.Close()
68059		}
68060		return nil, &googleapi.Error{
68061			Code:   res.StatusCode,
68062			Header: res.Header,
68063		}
68064	}
68065	if err != nil {
68066		return nil, err
68067	}
68068	defer googleapi.CloseBody(res)
68069	if err := googleapi.CheckResponse(res); err != nil {
68070		return nil, err
68071	}
68072	ret := &OperationList{
68073		ServerResponse: googleapi.ServerResponse{
68074			Header:         res.Header,
68075			HTTPStatusCode: res.StatusCode,
68076		},
68077	}
68078	target := &ret
68079	if err := gensupport.DecodeResponse(target, res); err != nil {
68080		return nil, err
68081	}
68082	return ret, nil
68083	// {
68084	//   "description": "Retrieves a list of Operation resources contained within the specified organization. (== suppress_warning http-rest-shadowed ==)",
68085	//   "httpMethod": "GET",
68086	//   "id": "compute.globalOrganizationOperations.list",
68087	//   "parameters": {
68088	//     "filter": {
68089	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
68090	//       "location": "query",
68091	//       "type": "string"
68092	//     },
68093	//     "maxResults": {
68094	//       "default": "500",
68095	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
68096	//       "format": "uint32",
68097	//       "location": "query",
68098	//       "minimum": "0",
68099	//       "type": "integer"
68100	//     },
68101	//     "orderBy": {
68102	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
68103	//       "location": "query",
68104	//       "type": "string"
68105	//     },
68106	//     "pageToken": {
68107	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
68108	//       "location": "query",
68109	//       "type": "string"
68110	//     },
68111	//     "parentId": {
68112	//       "description": "Parent ID for this request.",
68113	//       "location": "query",
68114	//       "type": "string"
68115	//     }
68116	//   },
68117	//   "path": "locations/global/operations",
68118	//   "response": {
68119	//     "$ref": "OperationList"
68120	//   },
68121	//   "scopes": [
68122	//     "https://www.googleapis.com/auth/cloud-platform",
68123	//     "https://www.googleapis.com/auth/compute",
68124	//     "https://www.googleapis.com/auth/compute.readonly"
68125	//   ]
68126	// }
68127
68128}
68129
68130// Pages invokes f for each page of results.
68131// A non-nil error returned from f will halt the iteration.
68132// The provided context supersedes any context provided to the Context method.
68133func (c *GlobalOrganizationOperationsListCall) Pages(ctx context.Context, f func(*OperationList) error) error {
68134	c.ctx_ = ctx
68135	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
68136	for {
68137		x, err := c.Do()
68138		if err != nil {
68139			return err
68140		}
68141		if err := f(x); err != nil {
68142			return err
68143		}
68144		if x.NextPageToken == "" {
68145			return nil
68146		}
68147		c.PageToken(x.NextPageToken)
68148	}
68149}
68150
68151// method id "compute.globalOrganizationOperations.wait":
68152
68153type GlobalOrganizationOperationsWaitCall struct {
68154	s          *Service
68155	operation  string
68156	urlParams_ gensupport.URLParams
68157	ctx_       context.Context
68158	header_    http.Header
68159}
68160
68161// Wait: Waits for the specified Operations resource until it is done or
68162// timeout, and retrieves the specified Operations resource. 1.
68163// Immediately returns when the operation is already done. 2. Waits for
68164// no more than the default deadline (2 minutes, subject to change) and
68165// then returns the current state of the operation, which may be DONE or
68166// still in progress. 3. Is best-effort: a. The server can wait less
68167// than the default deadline or zero seconds, in overload situations. b.
68168// There is no guarantee that the operation is actually done when
68169// returns. 4. User should be prepared to retry if the operation is not
68170// DONE. (== suppress_warning http-rest-shadowed ==)
68171func (r *GlobalOrganizationOperationsService) Wait(operation string) *GlobalOrganizationOperationsWaitCall {
68172	c := &GlobalOrganizationOperationsWaitCall{s: r.s, urlParams_: make(gensupport.URLParams)}
68173	c.operation = operation
68174	return c
68175}
68176
68177// ParentId sets the optional parameter "parentId": Parent ID for this
68178// request.
68179func (c *GlobalOrganizationOperationsWaitCall) ParentId(parentId string) *GlobalOrganizationOperationsWaitCall {
68180	c.urlParams_.Set("parentId", parentId)
68181	return c
68182}
68183
68184// Fields allows partial responses to be retrieved. See
68185// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
68186// for more information.
68187func (c *GlobalOrganizationOperationsWaitCall) Fields(s ...googleapi.Field) *GlobalOrganizationOperationsWaitCall {
68188	c.urlParams_.Set("fields", googleapi.CombineFields(s))
68189	return c
68190}
68191
68192// Context sets the context to be used in this call's Do method. Any
68193// pending HTTP request will be aborted if the provided context is
68194// canceled.
68195func (c *GlobalOrganizationOperationsWaitCall) Context(ctx context.Context) *GlobalOrganizationOperationsWaitCall {
68196	c.ctx_ = ctx
68197	return c
68198}
68199
68200// Header returns an http.Header that can be modified by the caller to
68201// add HTTP headers to the request.
68202func (c *GlobalOrganizationOperationsWaitCall) Header() http.Header {
68203	if c.header_ == nil {
68204		c.header_ = make(http.Header)
68205	}
68206	return c.header_
68207}
68208
68209func (c *GlobalOrganizationOperationsWaitCall) doRequest(alt string) (*http.Response, error) {
68210	reqHeaders := make(http.Header)
68211	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
68212	for k, v := range c.header_ {
68213		reqHeaders[k] = v
68214	}
68215	reqHeaders.Set("User-Agent", c.s.userAgent())
68216	var body io.Reader = nil
68217	c.urlParams_.Set("alt", alt)
68218	c.urlParams_.Set("prettyPrint", "false")
68219	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/operations/{operation}/wait")
68220	urls += "?" + c.urlParams_.Encode()
68221	req, err := http.NewRequest("POST", urls, body)
68222	if err != nil {
68223		return nil, err
68224	}
68225	req.Header = reqHeaders
68226	googleapi.Expand(req.URL, map[string]string{
68227		"operation": c.operation,
68228	})
68229	return gensupport.SendRequest(c.ctx_, c.s.client, req)
68230}
68231
68232// Do executes the "compute.globalOrganizationOperations.wait" call.
68233// Exactly one of *Operation or error will be non-nil. Any non-2xx
68234// status code is an error. Response headers are in either
68235// *Operation.ServerResponse.Header or (if a response was returned at
68236// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
68237// to check whether the returned error was because
68238// http.StatusNotModified was returned.
68239func (c *GlobalOrganizationOperationsWaitCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
68240	gensupport.SetOptions(c.urlParams_, opts...)
68241	res, err := c.doRequest("json")
68242	if res != nil && res.StatusCode == http.StatusNotModified {
68243		if res.Body != nil {
68244			res.Body.Close()
68245		}
68246		return nil, &googleapi.Error{
68247			Code:   res.StatusCode,
68248			Header: res.Header,
68249		}
68250	}
68251	if err != nil {
68252		return nil, err
68253	}
68254	defer googleapi.CloseBody(res)
68255	if err := googleapi.CheckResponse(res); err != nil {
68256		return nil, err
68257	}
68258	ret := &Operation{
68259		ServerResponse: googleapi.ServerResponse{
68260			Header:         res.Header,
68261			HTTPStatusCode: res.StatusCode,
68262		},
68263	}
68264	target := &ret
68265	if err := gensupport.DecodeResponse(target, res); err != nil {
68266		return nil, err
68267	}
68268	return ret, nil
68269	// {
68270	//   "description": "Waits for the specified Operations resource until it is done or timeout, and retrieves the specified Operations resource. 1. Immediately returns when the operation is already done. 2. Waits for no more than the default deadline (2 minutes, subject to change) and then returns the current state of the operation, which may be DONE or still in progress. 3. Is best-effort: a. The server can wait less than the default deadline or zero seconds, in overload situations. b. There is no guarantee that the operation is actually done when returns. 4. User should be prepared to retry if the operation is not DONE. (== suppress_warning http-rest-shadowed ==)",
68271	//   "httpMethod": "POST",
68272	//   "id": "compute.globalOrganizationOperations.wait",
68273	//   "parameterOrder": [
68274	//     "operation"
68275	//   ],
68276	//   "parameters": {
68277	//     "operation": {
68278	//       "description": "Name of the Operations resource to return.",
68279	//       "location": "path",
68280	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
68281	//       "required": true,
68282	//       "type": "string"
68283	//     },
68284	//     "parentId": {
68285	//       "description": "Parent ID for this request.",
68286	//       "location": "query",
68287	//       "type": "string"
68288	//     }
68289	//   },
68290	//   "path": "locations/global/operations/{operation}/wait",
68291	//   "response": {
68292	//     "$ref": "Operation"
68293	//   },
68294	//   "scopes": [
68295	//     "https://www.googleapis.com/auth/cloud-platform",
68296	//     "https://www.googleapis.com/auth/compute",
68297	//     "https://www.googleapis.com/auth/compute.readonly"
68298	//   ]
68299	// }
68300
68301}
68302
68303// method id "compute.globalPublicDelegatedPrefixes.delete":
68304
68305type GlobalPublicDelegatedPrefixesDeleteCall struct {
68306	s                     *Service
68307	project               string
68308	publicDelegatedPrefix string
68309	urlParams_            gensupport.URLParams
68310	ctx_                  context.Context
68311	header_               http.Header
68312}
68313
68314// Delete: Deletes the specified global PublicDelegatedPrefix. (==
68315// suppress_warning http-rest-shadowed ==)
68316func (r *GlobalPublicDelegatedPrefixesService) Delete(project string, publicDelegatedPrefix string) *GlobalPublicDelegatedPrefixesDeleteCall {
68317	c := &GlobalPublicDelegatedPrefixesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
68318	c.project = project
68319	c.publicDelegatedPrefix = publicDelegatedPrefix
68320	return c
68321}
68322
68323// RequestId sets the optional parameter "requestId": An optional
68324// request ID to identify requests. Specify a unique request ID so that
68325// if you must retry your request, the server will know to ignore the
68326// request if it has already been completed.
68327//
68328// For example, consider a situation where you make an initial request
68329// and the request times out. If you make the request again with the
68330// same request ID, the server can check if original operation with the
68331// same request ID was received, and if so, will ignore the second
68332// request. This prevents clients from accidentally creating duplicate
68333// commitments.
68334//
68335// The request ID must be a valid UUID with the exception that zero UUID
68336// is not supported (00000000-0000-0000-0000-000000000000).
68337func (c *GlobalPublicDelegatedPrefixesDeleteCall) RequestId(requestId string) *GlobalPublicDelegatedPrefixesDeleteCall {
68338	c.urlParams_.Set("requestId", requestId)
68339	return c
68340}
68341
68342// Fields allows partial responses to be retrieved. See
68343// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
68344// for more information.
68345func (c *GlobalPublicDelegatedPrefixesDeleteCall) Fields(s ...googleapi.Field) *GlobalPublicDelegatedPrefixesDeleteCall {
68346	c.urlParams_.Set("fields", googleapi.CombineFields(s))
68347	return c
68348}
68349
68350// Context sets the context to be used in this call's Do method. Any
68351// pending HTTP request will be aborted if the provided context is
68352// canceled.
68353func (c *GlobalPublicDelegatedPrefixesDeleteCall) Context(ctx context.Context) *GlobalPublicDelegatedPrefixesDeleteCall {
68354	c.ctx_ = ctx
68355	return c
68356}
68357
68358// Header returns an http.Header that can be modified by the caller to
68359// add HTTP headers to the request.
68360func (c *GlobalPublicDelegatedPrefixesDeleteCall) Header() http.Header {
68361	if c.header_ == nil {
68362		c.header_ = make(http.Header)
68363	}
68364	return c.header_
68365}
68366
68367func (c *GlobalPublicDelegatedPrefixesDeleteCall) doRequest(alt string) (*http.Response, error) {
68368	reqHeaders := make(http.Header)
68369	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
68370	for k, v := range c.header_ {
68371		reqHeaders[k] = v
68372	}
68373	reqHeaders.Set("User-Agent", c.s.userAgent())
68374	var body io.Reader = nil
68375	c.urlParams_.Set("alt", alt)
68376	c.urlParams_.Set("prettyPrint", "false")
68377	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/publicDelegatedPrefixes/{publicDelegatedPrefix}")
68378	urls += "?" + c.urlParams_.Encode()
68379	req, err := http.NewRequest("DELETE", urls, body)
68380	if err != nil {
68381		return nil, err
68382	}
68383	req.Header = reqHeaders
68384	googleapi.Expand(req.URL, map[string]string{
68385		"project":               c.project,
68386		"publicDelegatedPrefix": c.publicDelegatedPrefix,
68387	})
68388	return gensupport.SendRequest(c.ctx_, c.s.client, req)
68389}
68390
68391// Do executes the "compute.globalPublicDelegatedPrefixes.delete" call.
68392// Exactly one of *Operation or error will be non-nil. Any non-2xx
68393// status code is an error. Response headers are in either
68394// *Operation.ServerResponse.Header or (if a response was returned at
68395// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
68396// to check whether the returned error was because
68397// http.StatusNotModified was returned.
68398func (c *GlobalPublicDelegatedPrefixesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
68399	gensupport.SetOptions(c.urlParams_, opts...)
68400	res, err := c.doRequest("json")
68401	if res != nil && res.StatusCode == http.StatusNotModified {
68402		if res.Body != nil {
68403			res.Body.Close()
68404		}
68405		return nil, &googleapi.Error{
68406			Code:   res.StatusCode,
68407			Header: res.Header,
68408		}
68409	}
68410	if err != nil {
68411		return nil, err
68412	}
68413	defer googleapi.CloseBody(res)
68414	if err := googleapi.CheckResponse(res); err != nil {
68415		return nil, err
68416	}
68417	ret := &Operation{
68418		ServerResponse: googleapi.ServerResponse{
68419			Header:         res.Header,
68420			HTTPStatusCode: res.StatusCode,
68421		},
68422	}
68423	target := &ret
68424	if err := gensupport.DecodeResponse(target, res); err != nil {
68425		return nil, err
68426	}
68427	return ret, nil
68428	// {
68429	//   "description": "Deletes the specified global PublicDelegatedPrefix. (== suppress_warning http-rest-shadowed ==)",
68430	//   "httpMethod": "DELETE",
68431	//   "id": "compute.globalPublicDelegatedPrefixes.delete",
68432	//   "parameterOrder": [
68433	//     "project",
68434	//     "publicDelegatedPrefix"
68435	//   ],
68436	//   "parameters": {
68437	//     "project": {
68438	//       "description": "Project ID for this request.",
68439	//       "location": "path",
68440	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
68441	//       "required": true,
68442	//       "type": "string"
68443	//     },
68444	//     "publicDelegatedPrefix": {
68445	//       "description": "Name of the PublicDelegatedPrefix resource to delete.",
68446	//       "location": "path",
68447	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
68448	//       "required": true,
68449	//       "type": "string"
68450	//     },
68451	//     "requestId": {
68452	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
68453	//       "location": "query",
68454	//       "type": "string"
68455	//     }
68456	//   },
68457	//   "path": "{project}/global/publicDelegatedPrefixes/{publicDelegatedPrefix}",
68458	//   "response": {
68459	//     "$ref": "Operation"
68460	//   },
68461	//   "scopes": [
68462	//     "https://www.googleapis.com/auth/cloud-platform",
68463	//     "https://www.googleapis.com/auth/compute"
68464	//   ]
68465	// }
68466
68467}
68468
68469// method id "compute.globalPublicDelegatedPrefixes.get":
68470
68471type GlobalPublicDelegatedPrefixesGetCall struct {
68472	s                     *Service
68473	project               string
68474	publicDelegatedPrefix string
68475	urlParams_            gensupport.URLParams
68476	ifNoneMatch_          string
68477	ctx_                  context.Context
68478	header_               http.Header
68479}
68480
68481// Get: Returns the specified global PublicDelegatedPrefix resource. (==
68482// suppress_warning http-rest-shadowed ==)
68483func (r *GlobalPublicDelegatedPrefixesService) Get(project string, publicDelegatedPrefix string) *GlobalPublicDelegatedPrefixesGetCall {
68484	c := &GlobalPublicDelegatedPrefixesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
68485	c.project = project
68486	c.publicDelegatedPrefix = publicDelegatedPrefix
68487	return c
68488}
68489
68490// Fields allows partial responses to be retrieved. See
68491// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
68492// for more information.
68493func (c *GlobalPublicDelegatedPrefixesGetCall) Fields(s ...googleapi.Field) *GlobalPublicDelegatedPrefixesGetCall {
68494	c.urlParams_.Set("fields", googleapi.CombineFields(s))
68495	return c
68496}
68497
68498// IfNoneMatch sets the optional parameter which makes the operation
68499// fail if the object's ETag matches the given value. This is useful for
68500// getting updates only after the object has changed since the last
68501// request. Use googleapi.IsNotModified to check whether the response
68502// error from Do is the result of In-None-Match.
68503func (c *GlobalPublicDelegatedPrefixesGetCall) IfNoneMatch(entityTag string) *GlobalPublicDelegatedPrefixesGetCall {
68504	c.ifNoneMatch_ = entityTag
68505	return c
68506}
68507
68508// Context sets the context to be used in this call's Do method. Any
68509// pending HTTP request will be aborted if the provided context is
68510// canceled.
68511func (c *GlobalPublicDelegatedPrefixesGetCall) Context(ctx context.Context) *GlobalPublicDelegatedPrefixesGetCall {
68512	c.ctx_ = ctx
68513	return c
68514}
68515
68516// Header returns an http.Header that can be modified by the caller to
68517// add HTTP headers to the request.
68518func (c *GlobalPublicDelegatedPrefixesGetCall) Header() http.Header {
68519	if c.header_ == nil {
68520		c.header_ = make(http.Header)
68521	}
68522	return c.header_
68523}
68524
68525func (c *GlobalPublicDelegatedPrefixesGetCall) doRequest(alt string) (*http.Response, error) {
68526	reqHeaders := make(http.Header)
68527	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
68528	for k, v := range c.header_ {
68529		reqHeaders[k] = v
68530	}
68531	reqHeaders.Set("User-Agent", c.s.userAgent())
68532	if c.ifNoneMatch_ != "" {
68533		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
68534	}
68535	var body io.Reader = nil
68536	c.urlParams_.Set("alt", alt)
68537	c.urlParams_.Set("prettyPrint", "false")
68538	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/publicDelegatedPrefixes/{publicDelegatedPrefix}")
68539	urls += "?" + c.urlParams_.Encode()
68540	req, err := http.NewRequest("GET", urls, body)
68541	if err != nil {
68542		return nil, err
68543	}
68544	req.Header = reqHeaders
68545	googleapi.Expand(req.URL, map[string]string{
68546		"project":               c.project,
68547		"publicDelegatedPrefix": c.publicDelegatedPrefix,
68548	})
68549	return gensupport.SendRequest(c.ctx_, c.s.client, req)
68550}
68551
68552// Do executes the "compute.globalPublicDelegatedPrefixes.get" call.
68553// Exactly one of *PublicDelegatedPrefix or error will be non-nil. Any
68554// non-2xx status code is an error. Response headers are in either
68555// *PublicDelegatedPrefix.ServerResponse.Header or (if a response was
68556// returned at all) in error.(*googleapi.Error).Header. Use
68557// googleapi.IsNotModified to check whether the returned error was
68558// because http.StatusNotModified was returned.
68559func (c *GlobalPublicDelegatedPrefixesGetCall) Do(opts ...googleapi.CallOption) (*PublicDelegatedPrefix, error) {
68560	gensupport.SetOptions(c.urlParams_, opts...)
68561	res, err := c.doRequest("json")
68562	if res != nil && res.StatusCode == http.StatusNotModified {
68563		if res.Body != nil {
68564			res.Body.Close()
68565		}
68566		return nil, &googleapi.Error{
68567			Code:   res.StatusCode,
68568			Header: res.Header,
68569		}
68570	}
68571	if err != nil {
68572		return nil, err
68573	}
68574	defer googleapi.CloseBody(res)
68575	if err := googleapi.CheckResponse(res); err != nil {
68576		return nil, err
68577	}
68578	ret := &PublicDelegatedPrefix{
68579		ServerResponse: googleapi.ServerResponse{
68580			Header:         res.Header,
68581			HTTPStatusCode: res.StatusCode,
68582		},
68583	}
68584	target := &ret
68585	if err := gensupport.DecodeResponse(target, res); err != nil {
68586		return nil, err
68587	}
68588	return ret, nil
68589	// {
68590	//   "description": "Returns the specified global PublicDelegatedPrefix resource. (== suppress_warning http-rest-shadowed ==)",
68591	//   "httpMethod": "GET",
68592	//   "id": "compute.globalPublicDelegatedPrefixes.get",
68593	//   "parameterOrder": [
68594	//     "project",
68595	//     "publicDelegatedPrefix"
68596	//   ],
68597	//   "parameters": {
68598	//     "project": {
68599	//       "description": "Project ID for this request.",
68600	//       "location": "path",
68601	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
68602	//       "required": true,
68603	//       "type": "string"
68604	//     },
68605	//     "publicDelegatedPrefix": {
68606	//       "description": "Name of the PublicDelegatedPrefix resource to return.",
68607	//       "location": "path",
68608	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
68609	//       "required": true,
68610	//       "type": "string"
68611	//     }
68612	//   },
68613	//   "path": "{project}/global/publicDelegatedPrefixes/{publicDelegatedPrefix}",
68614	//   "response": {
68615	//     "$ref": "PublicDelegatedPrefix"
68616	//   },
68617	//   "scopes": [
68618	//     "https://www.googleapis.com/auth/cloud-platform",
68619	//     "https://www.googleapis.com/auth/compute",
68620	//     "https://www.googleapis.com/auth/compute.readonly"
68621	//   ]
68622	// }
68623
68624}
68625
68626// method id "compute.globalPublicDelegatedPrefixes.insert":
68627
68628type GlobalPublicDelegatedPrefixesInsertCall struct {
68629	s                     *Service
68630	project               string
68631	publicdelegatedprefix *PublicDelegatedPrefix
68632	urlParams_            gensupport.URLParams
68633	ctx_                  context.Context
68634	header_               http.Header
68635}
68636
68637// Insert: Creates a global PublicDelegatedPrefix in the specified
68638// project using the parameters that are included in the request. (==
68639// suppress_warning http-rest-shadowed ==)
68640func (r *GlobalPublicDelegatedPrefixesService) Insert(project string, publicdelegatedprefix *PublicDelegatedPrefix) *GlobalPublicDelegatedPrefixesInsertCall {
68641	c := &GlobalPublicDelegatedPrefixesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
68642	c.project = project
68643	c.publicdelegatedprefix = publicdelegatedprefix
68644	return c
68645}
68646
68647// RequestId sets the optional parameter "requestId": An optional
68648// request ID to identify requests. Specify a unique request ID so that
68649// if you must retry your request, the server will know to ignore the
68650// request if it has already been completed.
68651//
68652// For example, consider a situation where you make an initial request
68653// and the request times out. If you make the request again with the
68654// same request ID, the server can check if original operation with the
68655// same request ID was received, and if so, will ignore the second
68656// request. This prevents clients from accidentally creating duplicate
68657// commitments.
68658//
68659// The request ID must be a valid UUID with the exception that zero UUID
68660// is not supported (00000000-0000-0000-0000-000000000000).
68661func (c *GlobalPublicDelegatedPrefixesInsertCall) RequestId(requestId string) *GlobalPublicDelegatedPrefixesInsertCall {
68662	c.urlParams_.Set("requestId", requestId)
68663	return c
68664}
68665
68666// Fields allows partial responses to be retrieved. See
68667// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
68668// for more information.
68669func (c *GlobalPublicDelegatedPrefixesInsertCall) Fields(s ...googleapi.Field) *GlobalPublicDelegatedPrefixesInsertCall {
68670	c.urlParams_.Set("fields", googleapi.CombineFields(s))
68671	return c
68672}
68673
68674// Context sets the context to be used in this call's Do method. Any
68675// pending HTTP request will be aborted if the provided context is
68676// canceled.
68677func (c *GlobalPublicDelegatedPrefixesInsertCall) Context(ctx context.Context) *GlobalPublicDelegatedPrefixesInsertCall {
68678	c.ctx_ = ctx
68679	return c
68680}
68681
68682// Header returns an http.Header that can be modified by the caller to
68683// add HTTP headers to the request.
68684func (c *GlobalPublicDelegatedPrefixesInsertCall) Header() http.Header {
68685	if c.header_ == nil {
68686		c.header_ = make(http.Header)
68687	}
68688	return c.header_
68689}
68690
68691func (c *GlobalPublicDelegatedPrefixesInsertCall) doRequest(alt string) (*http.Response, error) {
68692	reqHeaders := make(http.Header)
68693	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
68694	for k, v := range c.header_ {
68695		reqHeaders[k] = v
68696	}
68697	reqHeaders.Set("User-Agent", c.s.userAgent())
68698	var body io.Reader = nil
68699	body, err := googleapi.WithoutDataWrapper.JSONReader(c.publicdelegatedprefix)
68700	if err != nil {
68701		return nil, err
68702	}
68703	reqHeaders.Set("Content-Type", "application/json")
68704	c.urlParams_.Set("alt", alt)
68705	c.urlParams_.Set("prettyPrint", "false")
68706	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/publicDelegatedPrefixes")
68707	urls += "?" + c.urlParams_.Encode()
68708	req, err := http.NewRequest("POST", urls, body)
68709	if err != nil {
68710		return nil, err
68711	}
68712	req.Header = reqHeaders
68713	googleapi.Expand(req.URL, map[string]string{
68714		"project": c.project,
68715	})
68716	return gensupport.SendRequest(c.ctx_, c.s.client, req)
68717}
68718
68719// Do executes the "compute.globalPublicDelegatedPrefixes.insert" call.
68720// Exactly one of *Operation or error will be non-nil. Any non-2xx
68721// status code is an error. Response headers are in either
68722// *Operation.ServerResponse.Header or (if a response was returned at
68723// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
68724// to check whether the returned error was because
68725// http.StatusNotModified was returned.
68726func (c *GlobalPublicDelegatedPrefixesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
68727	gensupport.SetOptions(c.urlParams_, opts...)
68728	res, err := c.doRequest("json")
68729	if res != nil && res.StatusCode == http.StatusNotModified {
68730		if res.Body != nil {
68731			res.Body.Close()
68732		}
68733		return nil, &googleapi.Error{
68734			Code:   res.StatusCode,
68735			Header: res.Header,
68736		}
68737	}
68738	if err != nil {
68739		return nil, err
68740	}
68741	defer googleapi.CloseBody(res)
68742	if err := googleapi.CheckResponse(res); err != nil {
68743		return nil, err
68744	}
68745	ret := &Operation{
68746		ServerResponse: googleapi.ServerResponse{
68747			Header:         res.Header,
68748			HTTPStatusCode: res.StatusCode,
68749		},
68750	}
68751	target := &ret
68752	if err := gensupport.DecodeResponse(target, res); err != nil {
68753		return nil, err
68754	}
68755	return ret, nil
68756	// {
68757	//   "description": "Creates a global PublicDelegatedPrefix in the specified project using the parameters that are included in the request. (== suppress_warning http-rest-shadowed ==)",
68758	//   "httpMethod": "POST",
68759	//   "id": "compute.globalPublicDelegatedPrefixes.insert",
68760	//   "parameterOrder": [
68761	//     "project"
68762	//   ],
68763	//   "parameters": {
68764	//     "project": {
68765	//       "description": "Project ID for this request.",
68766	//       "location": "path",
68767	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
68768	//       "required": true,
68769	//       "type": "string"
68770	//     },
68771	//     "requestId": {
68772	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
68773	//       "location": "query",
68774	//       "type": "string"
68775	//     }
68776	//   },
68777	//   "path": "{project}/global/publicDelegatedPrefixes",
68778	//   "request": {
68779	//     "$ref": "PublicDelegatedPrefix"
68780	//   },
68781	//   "response": {
68782	//     "$ref": "Operation"
68783	//   },
68784	//   "scopes": [
68785	//     "https://www.googleapis.com/auth/cloud-platform",
68786	//     "https://www.googleapis.com/auth/compute"
68787	//   ]
68788	// }
68789
68790}
68791
68792// method id "compute.globalPublicDelegatedPrefixes.list":
68793
68794type GlobalPublicDelegatedPrefixesListCall struct {
68795	s            *Service
68796	project      string
68797	urlParams_   gensupport.URLParams
68798	ifNoneMatch_ string
68799	ctx_         context.Context
68800	header_      http.Header
68801}
68802
68803// List: Lists the global PublicDelegatedPrefixes for a project. (==
68804// suppress_warning http-rest-shadowed ==)
68805func (r *GlobalPublicDelegatedPrefixesService) List(project string) *GlobalPublicDelegatedPrefixesListCall {
68806	c := &GlobalPublicDelegatedPrefixesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
68807	c.project = project
68808	return c
68809}
68810
68811// Filter sets the optional parameter "filter": A filter expression that
68812// filters resources listed in the response. The expression must specify
68813// the field name, a comparison operator, and the value that you want to
68814// use for filtering. The value must be a string, a number, or a
68815// boolean. The comparison operator must be either =, !=, >, or <.
68816//
68817// For example, if you are filtering Compute Engine instances, you can
68818// exclude instances named example-instance by specifying name !=
68819// example-instance.
68820//
68821// You can also filter nested fields. For example, you could specify
68822// scheduling.automaticRestart = false to include instances only if they
68823// are not scheduled for automatic restarts. You can use filtering on
68824// nested fields to filter based on resource labels.
68825//
68826// To filter on multiple expressions, provide each separate expression
68827// within parentheses. For example, (scheduling.automaticRestart = true)
68828// (cpuPlatform = "Intel Skylake"). By default, each expression is an
68829// AND expression. However, you can include AND and OR expressions
68830// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
68831// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
68832// true).
68833func (c *GlobalPublicDelegatedPrefixesListCall) Filter(filter string) *GlobalPublicDelegatedPrefixesListCall {
68834	c.urlParams_.Set("filter", filter)
68835	return c
68836}
68837
68838// MaxResults sets the optional parameter "maxResults": The maximum
68839// number of results per page that should be returned. If the number of
68840// available results is larger than maxResults, Compute Engine returns a
68841// nextPageToken that can be used to get the next page of results in
68842// subsequent list requests. Acceptable values are 0 to 500, inclusive.
68843// (Default: 500)
68844func (c *GlobalPublicDelegatedPrefixesListCall) MaxResults(maxResults int64) *GlobalPublicDelegatedPrefixesListCall {
68845	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
68846	return c
68847}
68848
68849// OrderBy sets the optional parameter "orderBy": Sorts list results by
68850// a certain order. By default, results are returned in alphanumerical
68851// order based on the resource name.
68852//
68853// You can also sort results in descending order based on the creation
68854// timestamp using orderBy="creationTimestamp desc". This sorts results
68855// based on the creationTimestamp field in reverse chronological order
68856// (newest result first). Use this to sort resources like operations so
68857// that the newest operation is returned first.
68858//
68859// Currently, only sorting by name or creationTimestamp desc is
68860// supported.
68861func (c *GlobalPublicDelegatedPrefixesListCall) OrderBy(orderBy string) *GlobalPublicDelegatedPrefixesListCall {
68862	c.urlParams_.Set("orderBy", orderBy)
68863	return c
68864}
68865
68866// PageToken sets the optional parameter "pageToken": Specifies a page
68867// token to use. Set pageToken to the nextPageToken returned by a
68868// previous list request to get the next page of results.
68869func (c *GlobalPublicDelegatedPrefixesListCall) PageToken(pageToken string) *GlobalPublicDelegatedPrefixesListCall {
68870	c.urlParams_.Set("pageToken", pageToken)
68871	return c
68872}
68873
68874// Fields allows partial responses to be retrieved. See
68875// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
68876// for more information.
68877func (c *GlobalPublicDelegatedPrefixesListCall) Fields(s ...googleapi.Field) *GlobalPublicDelegatedPrefixesListCall {
68878	c.urlParams_.Set("fields", googleapi.CombineFields(s))
68879	return c
68880}
68881
68882// IfNoneMatch sets the optional parameter which makes the operation
68883// fail if the object's ETag matches the given value. This is useful for
68884// getting updates only after the object has changed since the last
68885// request. Use googleapi.IsNotModified to check whether the response
68886// error from Do is the result of In-None-Match.
68887func (c *GlobalPublicDelegatedPrefixesListCall) IfNoneMatch(entityTag string) *GlobalPublicDelegatedPrefixesListCall {
68888	c.ifNoneMatch_ = entityTag
68889	return c
68890}
68891
68892// Context sets the context to be used in this call's Do method. Any
68893// pending HTTP request will be aborted if the provided context is
68894// canceled.
68895func (c *GlobalPublicDelegatedPrefixesListCall) Context(ctx context.Context) *GlobalPublicDelegatedPrefixesListCall {
68896	c.ctx_ = ctx
68897	return c
68898}
68899
68900// Header returns an http.Header that can be modified by the caller to
68901// add HTTP headers to the request.
68902func (c *GlobalPublicDelegatedPrefixesListCall) Header() http.Header {
68903	if c.header_ == nil {
68904		c.header_ = make(http.Header)
68905	}
68906	return c.header_
68907}
68908
68909func (c *GlobalPublicDelegatedPrefixesListCall) doRequest(alt string) (*http.Response, error) {
68910	reqHeaders := make(http.Header)
68911	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
68912	for k, v := range c.header_ {
68913		reqHeaders[k] = v
68914	}
68915	reqHeaders.Set("User-Agent", c.s.userAgent())
68916	if c.ifNoneMatch_ != "" {
68917		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
68918	}
68919	var body io.Reader = nil
68920	c.urlParams_.Set("alt", alt)
68921	c.urlParams_.Set("prettyPrint", "false")
68922	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/publicDelegatedPrefixes")
68923	urls += "?" + c.urlParams_.Encode()
68924	req, err := http.NewRequest("GET", urls, body)
68925	if err != nil {
68926		return nil, err
68927	}
68928	req.Header = reqHeaders
68929	googleapi.Expand(req.URL, map[string]string{
68930		"project": c.project,
68931	})
68932	return gensupport.SendRequest(c.ctx_, c.s.client, req)
68933}
68934
68935// Do executes the "compute.globalPublicDelegatedPrefixes.list" call.
68936// Exactly one of *PublicDelegatedPrefixList or error will be non-nil.
68937// Any non-2xx status code is an error. Response headers are in either
68938// *PublicDelegatedPrefixList.ServerResponse.Header or (if a response
68939// was returned at all) in error.(*googleapi.Error).Header. Use
68940// googleapi.IsNotModified to check whether the returned error was
68941// because http.StatusNotModified was returned.
68942func (c *GlobalPublicDelegatedPrefixesListCall) Do(opts ...googleapi.CallOption) (*PublicDelegatedPrefixList, error) {
68943	gensupport.SetOptions(c.urlParams_, opts...)
68944	res, err := c.doRequest("json")
68945	if res != nil && res.StatusCode == http.StatusNotModified {
68946		if res.Body != nil {
68947			res.Body.Close()
68948		}
68949		return nil, &googleapi.Error{
68950			Code:   res.StatusCode,
68951			Header: res.Header,
68952		}
68953	}
68954	if err != nil {
68955		return nil, err
68956	}
68957	defer googleapi.CloseBody(res)
68958	if err := googleapi.CheckResponse(res); err != nil {
68959		return nil, err
68960	}
68961	ret := &PublicDelegatedPrefixList{
68962		ServerResponse: googleapi.ServerResponse{
68963			Header:         res.Header,
68964			HTTPStatusCode: res.StatusCode,
68965		},
68966	}
68967	target := &ret
68968	if err := gensupport.DecodeResponse(target, res); err != nil {
68969		return nil, err
68970	}
68971	return ret, nil
68972	// {
68973	//   "description": "Lists the global PublicDelegatedPrefixes for a project. (== suppress_warning http-rest-shadowed ==)",
68974	//   "httpMethod": "GET",
68975	//   "id": "compute.globalPublicDelegatedPrefixes.list",
68976	//   "parameterOrder": [
68977	//     "project"
68978	//   ],
68979	//   "parameters": {
68980	//     "filter": {
68981	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
68982	//       "location": "query",
68983	//       "type": "string"
68984	//     },
68985	//     "maxResults": {
68986	//       "default": "500",
68987	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
68988	//       "format": "uint32",
68989	//       "location": "query",
68990	//       "minimum": "0",
68991	//       "type": "integer"
68992	//     },
68993	//     "orderBy": {
68994	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
68995	//       "location": "query",
68996	//       "type": "string"
68997	//     },
68998	//     "pageToken": {
68999	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
69000	//       "location": "query",
69001	//       "type": "string"
69002	//     },
69003	//     "project": {
69004	//       "description": "Project ID for this request.",
69005	//       "location": "path",
69006	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
69007	//       "required": true,
69008	//       "type": "string"
69009	//     }
69010	//   },
69011	//   "path": "{project}/global/publicDelegatedPrefixes",
69012	//   "response": {
69013	//     "$ref": "PublicDelegatedPrefixList"
69014	//   },
69015	//   "scopes": [
69016	//     "https://www.googleapis.com/auth/cloud-platform",
69017	//     "https://www.googleapis.com/auth/compute",
69018	//     "https://www.googleapis.com/auth/compute.readonly"
69019	//   ]
69020	// }
69021
69022}
69023
69024// Pages invokes f for each page of results.
69025// A non-nil error returned from f will halt the iteration.
69026// The provided context supersedes any context provided to the Context method.
69027func (c *GlobalPublicDelegatedPrefixesListCall) Pages(ctx context.Context, f func(*PublicDelegatedPrefixList) error) error {
69028	c.ctx_ = ctx
69029	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
69030	for {
69031		x, err := c.Do()
69032		if err != nil {
69033			return err
69034		}
69035		if err := f(x); err != nil {
69036			return err
69037		}
69038		if x.NextPageToken == "" {
69039			return nil
69040		}
69041		c.PageToken(x.NextPageToken)
69042	}
69043}
69044
69045// method id "compute.globalPublicDelegatedPrefixes.patch":
69046
69047type GlobalPublicDelegatedPrefixesPatchCall struct {
69048	s                     *Service
69049	project               string
69050	publicDelegatedPrefix string
69051	publicdelegatedprefix *PublicDelegatedPrefix
69052	urlParams_            gensupport.URLParams
69053	ctx_                  context.Context
69054	header_               http.Header
69055}
69056
69057// Patch: Patches the specified global PublicDelegatedPrefix resource
69058// with the data included in the request. This method supports PATCH
69059// semantics and uses JSON merge patch format and processing rules. (==
69060// suppress_warning http-rest-shadowed ==)
69061func (r *GlobalPublicDelegatedPrefixesService) Patch(project string, publicDelegatedPrefix string, publicdelegatedprefix *PublicDelegatedPrefix) *GlobalPublicDelegatedPrefixesPatchCall {
69062	c := &GlobalPublicDelegatedPrefixesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
69063	c.project = project
69064	c.publicDelegatedPrefix = publicDelegatedPrefix
69065	c.publicdelegatedprefix = publicdelegatedprefix
69066	return c
69067}
69068
69069// RequestId sets the optional parameter "requestId": An optional
69070// request ID to identify requests. Specify a unique request ID so that
69071// if you must retry your request, the server will know to ignore the
69072// request if it has already been completed.
69073//
69074// For example, consider a situation where you make an initial request
69075// and the request times out. If you make the request again with the
69076// same request ID, the server can check if original operation with the
69077// same request ID was received, and if so, will ignore the second
69078// request. This prevents clients from accidentally creating duplicate
69079// commitments.
69080//
69081// The request ID must be a valid UUID with the exception that zero UUID
69082// is not supported (00000000-0000-0000-0000-000000000000).
69083func (c *GlobalPublicDelegatedPrefixesPatchCall) RequestId(requestId string) *GlobalPublicDelegatedPrefixesPatchCall {
69084	c.urlParams_.Set("requestId", requestId)
69085	return c
69086}
69087
69088// Fields allows partial responses to be retrieved. See
69089// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
69090// for more information.
69091func (c *GlobalPublicDelegatedPrefixesPatchCall) Fields(s ...googleapi.Field) *GlobalPublicDelegatedPrefixesPatchCall {
69092	c.urlParams_.Set("fields", googleapi.CombineFields(s))
69093	return c
69094}
69095
69096// Context sets the context to be used in this call's Do method. Any
69097// pending HTTP request will be aborted if the provided context is
69098// canceled.
69099func (c *GlobalPublicDelegatedPrefixesPatchCall) Context(ctx context.Context) *GlobalPublicDelegatedPrefixesPatchCall {
69100	c.ctx_ = ctx
69101	return c
69102}
69103
69104// Header returns an http.Header that can be modified by the caller to
69105// add HTTP headers to the request.
69106func (c *GlobalPublicDelegatedPrefixesPatchCall) Header() http.Header {
69107	if c.header_ == nil {
69108		c.header_ = make(http.Header)
69109	}
69110	return c.header_
69111}
69112
69113func (c *GlobalPublicDelegatedPrefixesPatchCall) doRequest(alt string) (*http.Response, error) {
69114	reqHeaders := make(http.Header)
69115	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
69116	for k, v := range c.header_ {
69117		reqHeaders[k] = v
69118	}
69119	reqHeaders.Set("User-Agent", c.s.userAgent())
69120	var body io.Reader = nil
69121	body, err := googleapi.WithoutDataWrapper.JSONReader(c.publicdelegatedprefix)
69122	if err != nil {
69123		return nil, err
69124	}
69125	reqHeaders.Set("Content-Type", "application/json")
69126	c.urlParams_.Set("alt", alt)
69127	c.urlParams_.Set("prettyPrint", "false")
69128	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/publicDelegatedPrefixes/{publicDelegatedPrefix}")
69129	urls += "?" + c.urlParams_.Encode()
69130	req, err := http.NewRequest("PATCH", urls, body)
69131	if err != nil {
69132		return nil, err
69133	}
69134	req.Header = reqHeaders
69135	googleapi.Expand(req.URL, map[string]string{
69136		"project":               c.project,
69137		"publicDelegatedPrefix": c.publicDelegatedPrefix,
69138	})
69139	return gensupport.SendRequest(c.ctx_, c.s.client, req)
69140}
69141
69142// Do executes the "compute.globalPublicDelegatedPrefixes.patch" call.
69143// Exactly one of *Operation or error will be non-nil. Any non-2xx
69144// status code is an error. Response headers are in either
69145// *Operation.ServerResponse.Header or (if a response was returned at
69146// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
69147// to check whether the returned error was because
69148// http.StatusNotModified was returned.
69149func (c *GlobalPublicDelegatedPrefixesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
69150	gensupport.SetOptions(c.urlParams_, opts...)
69151	res, err := c.doRequest("json")
69152	if res != nil && res.StatusCode == http.StatusNotModified {
69153		if res.Body != nil {
69154			res.Body.Close()
69155		}
69156		return nil, &googleapi.Error{
69157			Code:   res.StatusCode,
69158			Header: res.Header,
69159		}
69160	}
69161	if err != nil {
69162		return nil, err
69163	}
69164	defer googleapi.CloseBody(res)
69165	if err := googleapi.CheckResponse(res); err != nil {
69166		return nil, err
69167	}
69168	ret := &Operation{
69169		ServerResponse: googleapi.ServerResponse{
69170			Header:         res.Header,
69171			HTTPStatusCode: res.StatusCode,
69172		},
69173	}
69174	target := &ret
69175	if err := gensupport.DecodeResponse(target, res); err != nil {
69176		return nil, err
69177	}
69178	return ret, nil
69179	// {
69180	//   "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. (== suppress_warning http-rest-shadowed ==)",
69181	//   "httpMethod": "PATCH",
69182	//   "id": "compute.globalPublicDelegatedPrefixes.patch",
69183	//   "parameterOrder": [
69184	//     "project",
69185	//     "publicDelegatedPrefix"
69186	//   ],
69187	//   "parameters": {
69188	//     "project": {
69189	//       "description": "Project ID for this request.",
69190	//       "location": "path",
69191	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
69192	//       "required": true,
69193	//       "type": "string"
69194	//     },
69195	//     "publicDelegatedPrefix": {
69196	//       "description": "Name of the PublicDelegatedPrefix resource to patch.",
69197	//       "location": "path",
69198	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
69199	//       "required": true,
69200	//       "type": "string"
69201	//     },
69202	//     "requestId": {
69203	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
69204	//       "location": "query",
69205	//       "type": "string"
69206	//     }
69207	//   },
69208	//   "path": "{project}/global/publicDelegatedPrefixes/{publicDelegatedPrefix}",
69209	//   "request": {
69210	//     "$ref": "PublicDelegatedPrefix"
69211	//   },
69212	//   "response": {
69213	//     "$ref": "Operation"
69214	//   },
69215	//   "scopes": [
69216	//     "https://www.googleapis.com/auth/cloud-platform",
69217	//     "https://www.googleapis.com/auth/compute"
69218	//   ]
69219	// }
69220
69221}
69222
69223// method id "compute.healthChecks.aggregatedList":
69224
69225type HealthChecksAggregatedListCall struct {
69226	s            *Service
69227	project      string
69228	urlParams_   gensupport.URLParams
69229	ifNoneMatch_ string
69230	ctx_         context.Context
69231	header_      http.Header
69232}
69233
69234// AggregatedList: Retrieves the list of all HealthCheck resources,
69235// regional and global, available to the specified project. (==
69236// suppress_warning http-rest-shadowed ==)
69237func (r *HealthChecksService) AggregatedList(project string) *HealthChecksAggregatedListCall {
69238	c := &HealthChecksAggregatedListCall{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 *HealthChecksAggregatedListCall) Filter(filter string) *HealthChecksAggregatedListCall {
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 *HealthChecksAggregatedListCall) MaxResults(maxResults int64) *HealthChecksAggregatedListCall {
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 *HealthChecksAggregatedListCall) OrderBy(orderBy string) *HealthChecksAggregatedListCall {
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 *HealthChecksAggregatedListCall) PageToken(pageToken string) *HealthChecksAggregatedListCall {
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 *HealthChecksAggregatedListCall) Fields(s ...googleapi.Field) *HealthChecksAggregatedListCall {
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 *HealthChecksAggregatedListCall) IfNoneMatch(entityTag string) *HealthChecksAggregatedListCall {
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 *HealthChecksAggregatedListCall) Context(ctx context.Context) *HealthChecksAggregatedListCall {
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 *HealthChecksAggregatedListCall) Header() http.Header {
69335	if c.header_ == nil {
69336		c.header_ = make(http.Header)
69337	}
69338	return c.header_
69339}
69340
69341func (c *HealthChecksAggregatedListCall) doRequest(alt string) (*http.Response, error) {
69342	reqHeaders := make(http.Header)
69343	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
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}/aggregated/healthChecks")
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.healthChecks.aggregatedList" call.
69368// Exactly one of *HealthChecksAggregatedList or error will be non-nil.
69369// Any non-2xx status code is an error. Response headers are in either
69370// *HealthChecksAggregatedList.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 *HealthChecksAggregatedListCall) Do(opts ...googleapi.CallOption) (*HealthChecksAggregatedList, 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 := &HealthChecksAggregatedList{
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": "Retrieves the list of all HealthCheck resources, regional and global, available to the specified project. (== suppress_warning http-rest-shadowed ==)",
69406	//   "httpMethod": "GET",
69407	//   "id": "compute.healthChecks.aggregatedList",
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": "Name of the project scoping 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}/aggregated/healthChecks",
69444	//   "response": {
69445	//     "$ref": "HealthChecksAggregatedList"
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 *HealthChecksAggregatedListCall) Pages(ctx context.Context, f func(*HealthChecksAggregatedList) 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.healthChecks.delete":
69478
69479type HealthChecksDeleteCall struct {
69480	s           *Service
69481	project     string
69482	healthCheck string
69483	urlParams_  gensupport.URLParams
69484	ctx_        context.Context
69485	header_     http.Header
69486}
69487
69488// Delete: Deletes the specified HealthCheck resource. (==
69489// suppress_warning http-rest-shadowed ==)
69490func (r *HealthChecksService) Delete(project string, healthCheck string) *HealthChecksDeleteCall {
69491	c := &HealthChecksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
69492	c.project = project
69493	c.healthCheck = healthCheck
69494	return c
69495}
69496
69497// RequestId sets the optional parameter "requestId": An optional
69498// request ID to identify requests. Specify a unique request ID so that
69499// if you must retry your request, the server will know to ignore the
69500// request if it has already been completed.
69501//
69502// For example, consider a situation where you make an initial request
69503// and the request times out. If you make the request again with the
69504// same request ID, the server can check if original operation with the
69505// same request ID was received, and if so, will ignore the second
69506// request. This prevents clients from accidentally creating duplicate
69507// commitments.
69508//
69509// The request ID must be a valid UUID with the exception that zero UUID
69510// is not supported (00000000-0000-0000-0000-000000000000).
69511func (c *HealthChecksDeleteCall) RequestId(requestId string) *HealthChecksDeleteCall {
69512	c.urlParams_.Set("requestId", requestId)
69513	return c
69514}
69515
69516// Fields allows partial responses to be retrieved. See
69517// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
69518// for more information.
69519func (c *HealthChecksDeleteCall) Fields(s ...googleapi.Field) *HealthChecksDeleteCall {
69520	c.urlParams_.Set("fields", googleapi.CombineFields(s))
69521	return c
69522}
69523
69524// Context sets the context to be used in this call's Do method. Any
69525// pending HTTP request will be aborted if the provided context is
69526// canceled.
69527func (c *HealthChecksDeleteCall) Context(ctx context.Context) *HealthChecksDeleteCall {
69528	c.ctx_ = ctx
69529	return c
69530}
69531
69532// Header returns an http.Header that can be modified by the caller to
69533// add HTTP headers to the request.
69534func (c *HealthChecksDeleteCall) Header() http.Header {
69535	if c.header_ == nil {
69536		c.header_ = make(http.Header)
69537	}
69538	return c.header_
69539}
69540
69541func (c *HealthChecksDeleteCall) doRequest(alt string) (*http.Response, error) {
69542	reqHeaders := make(http.Header)
69543	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
69544	for k, v := range c.header_ {
69545		reqHeaders[k] = v
69546	}
69547	reqHeaders.Set("User-Agent", c.s.userAgent())
69548	var body io.Reader = nil
69549	c.urlParams_.Set("alt", alt)
69550	c.urlParams_.Set("prettyPrint", "false")
69551	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/healthChecks/{healthCheck}")
69552	urls += "?" + c.urlParams_.Encode()
69553	req, err := http.NewRequest("DELETE", urls, body)
69554	if err != nil {
69555		return nil, err
69556	}
69557	req.Header = reqHeaders
69558	googleapi.Expand(req.URL, map[string]string{
69559		"project":     c.project,
69560		"healthCheck": c.healthCheck,
69561	})
69562	return gensupport.SendRequest(c.ctx_, c.s.client, req)
69563}
69564
69565// Do executes the "compute.healthChecks.delete" call.
69566// Exactly one of *Operation or error will be non-nil. Any non-2xx
69567// status code is an error. Response headers are in either
69568// *Operation.ServerResponse.Header or (if a response was returned at
69569// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
69570// to check whether the returned error was because
69571// http.StatusNotModified was returned.
69572func (c *HealthChecksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
69573	gensupport.SetOptions(c.urlParams_, opts...)
69574	res, err := c.doRequest("json")
69575	if res != nil && res.StatusCode == http.StatusNotModified {
69576		if res.Body != nil {
69577			res.Body.Close()
69578		}
69579		return nil, &googleapi.Error{
69580			Code:   res.StatusCode,
69581			Header: res.Header,
69582		}
69583	}
69584	if err != nil {
69585		return nil, err
69586	}
69587	defer googleapi.CloseBody(res)
69588	if err := googleapi.CheckResponse(res); err != nil {
69589		return nil, err
69590	}
69591	ret := &Operation{
69592		ServerResponse: googleapi.ServerResponse{
69593			Header:         res.Header,
69594			HTTPStatusCode: res.StatusCode,
69595		},
69596	}
69597	target := &ret
69598	if err := gensupport.DecodeResponse(target, res); err != nil {
69599		return nil, err
69600	}
69601	return ret, nil
69602	// {
69603	//   "description": "Deletes the specified HealthCheck resource. (== suppress_warning http-rest-shadowed ==)",
69604	//   "httpMethod": "DELETE",
69605	//   "id": "compute.healthChecks.delete",
69606	//   "parameterOrder": [
69607	//     "project",
69608	//     "healthCheck"
69609	//   ],
69610	//   "parameters": {
69611	//     "healthCheck": {
69612	//       "description": "Name of the HealthCheck resource to delete.",
69613	//       "location": "path",
69614	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
69615	//       "required": true,
69616	//       "type": "string"
69617	//     },
69618	//     "project": {
69619	//       "description": "Project ID for this request.",
69620	//       "location": "path",
69621	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
69622	//       "required": true,
69623	//       "type": "string"
69624	//     },
69625	//     "requestId": {
69626	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
69627	//       "location": "query",
69628	//       "type": "string"
69629	//     }
69630	//   },
69631	//   "path": "{project}/global/healthChecks/{healthCheck}",
69632	//   "response": {
69633	//     "$ref": "Operation"
69634	//   },
69635	//   "scopes": [
69636	//     "https://www.googleapis.com/auth/cloud-platform",
69637	//     "https://www.googleapis.com/auth/compute"
69638	//   ]
69639	// }
69640
69641}
69642
69643// method id "compute.healthChecks.get":
69644
69645type HealthChecksGetCall struct {
69646	s            *Service
69647	project      string
69648	healthCheck  string
69649	urlParams_   gensupport.URLParams
69650	ifNoneMatch_ string
69651	ctx_         context.Context
69652	header_      http.Header
69653}
69654
69655// Get: Returns the specified HealthCheck resource. Gets a list of
69656// available health checks by making a list() request. (==
69657// suppress_warning http-rest-shadowed ==)
69658func (r *HealthChecksService) Get(project string, healthCheck string) *HealthChecksGetCall {
69659	c := &HealthChecksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
69660	c.project = project
69661	c.healthCheck = healthCheck
69662	return c
69663}
69664
69665// Fields allows partial responses to be retrieved. See
69666// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
69667// for more information.
69668func (c *HealthChecksGetCall) Fields(s ...googleapi.Field) *HealthChecksGetCall {
69669	c.urlParams_.Set("fields", googleapi.CombineFields(s))
69670	return c
69671}
69672
69673// IfNoneMatch sets the optional parameter which makes the operation
69674// fail if the object's ETag matches the given value. This is useful for
69675// getting updates only after the object has changed since the last
69676// request. Use googleapi.IsNotModified to check whether the response
69677// error from Do is the result of In-None-Match.
69678func (c *HealthChecksGetCall) IfNoneMatch(entityTag string) *HealthChecksGetCall {
69679	c.ifNoneMatch_ = entityTag
69680	return c
69681}
69682
69683// Context sets the context to be used in this call's Do method. Any
69684// pending HTTP request will be aborted if the provided context is
69685// canceled.
69686func (c *HealthChecksGetCall) Context(ctx context.Context) *HealthChecksGetCall {
69687	c.ctx_ = ctx
69688	return c
69689}
69690
69691// Header returns an http.Header that can be modified by the caller to
69692// add HTTP headers to the request.
69693func (c *HealthChecksGetCall) Header() http.Header {
69694	if c.header_ == nil {
69695		c.header_ = make(http.Header)
69696	}
69697	return c.header_
69698}
69699
69700func (c *HealthChecksGetCall) doRequest(alt string) (*http.Response, error) {
69701	reqHeaders := make(http.Header)
69702	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
69703	for k, v := range c.header_ {
69704		reqHeaders[k] = v
69705	}
69706	reqHeaders.Set("User-Agent", c.s.userAgent())
69707	if c.ifNoneMatch_ != "" {
69708		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
69709	}
69710	var body io.Reader = nil
69711	c.urlParams_.Set("alt", alt)
69712	c.urlParams_.Set("prettyPrint", "false")
69713	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/healthChecks/{healthCheck}")
69714	urls += "?" + c.urlParams_.Encode()
69715	req, err := http.NewRequest("GET", urls, body)
69716	if err != nil {
69717		return nil, err
69718	}
69719	req.Header = reqHeaders
69720	googleapi.Expand(req.URL, map[string]string{
69721		"project":     c.project,
69722		"healthCheck": c.healthCheck,
69723	})
69724	return gensupport.SendRequest(c.ctx_, c.s.client, req)
69725}
69726
69727// Do executes the "compute.healthChecks.get" call.
69728// Exactly one of *HealthCheck or error will be non-nil. Any non-2xx
69729// status code is an error. Response headers are in either
69730// *HealthCheck.ServerResponse.Header or (if a response was returned at
69731// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
69732// to check whether the returned error was because
69733// http.StatusNotModified was returned.
69734func (c *HealthChecksGetCall) Do(opts ...googleapi.CallOption) (*HealthCheck, error) {
69735	gensupport.SetOptions(c.urlParams_, opts...)
69736	res, err := c.doRequest("json")
69737	if res != nil && res.StatusCode == http.StatusNotModified {
69738		if res.Body != nil {
69739			res.Body.Close()
69740		}
69741		return nil, &googleapi.Error{
69742			Code:   res.StatusCode,
69743			Header: res.Header,
69744		}
69745	}
69746	if err != nil {
69747		return nil, err
69748	}
69749	defer googleapi.CloseBody(res)
69750	if err := googleapi.CheckResponse(res); err != nil {
69751		return nil, err
69752	}
69753	ret := &HealthCheck{
69754		ServerResponse: googleapi.ServerResponse{
69755			Header:         res.Header,
69756			HTTPStatusCode: res.StatusCode,
69757		},
69758	}
69759	target := &ret
69760	if err := gensupport.DecodeResponse(target, res); err != nil {
69761		return nil, err
69762	}
69763	return ret, nil
69764	// {
69765	//   "description": "Returns the specified HealthCheck resource. Gets a list of available health checks by making a list() request. (== suppress_warning http-rest-shadowed ==)",
69766	//   "httpMethod": "GET",
69767	//   "id": "compute.healthChecks.get",
69768	//   "parameterOrder": [
69769	//     "project",
69770	//     "healthCheck"
69771	//   ],
69772	//   "parameters": {
69773	//     "healthCheck": {
69774	//       "description": "Name of the HealthCheck resource to return.",
69775	//       "location": "path",
69776	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
69777	//       "required": true,
69778	//       "type": "string"
69779	//     },
69780	//     "project": {
69781	//       "description": "Project ID for this request.",
69782	//       "location": "path",
69783	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
69784	//       "required": true,
69785	//       "type": "string"
69786	//     }
69787	//   },
69788	//   "path": "{project}/global/healthChecks/{healthCheck}",
69789	//   "response": {
69790	//     "$ref": "HealthCheck"
69791	//   },
69792	//   "scopes": [
69793	//     "https://www.googleapis.com/auth/cloud-platform",
69794	//     "https://www.googleapis.com/auth/compute",
69795	//     "https://www.googleapis.com/auth/compute.readonly"
69796	//   ]
69797	// }
69798
69799}
69800
69801// method id "compute.healthChecks.insert":
69802
69803type HealthChecksInsertCall struct {
69804	s           *Service
69805	project     string
69806	healthcheck *HealthCheck
69807	urlParams_  gensupport.URLParams
69808	ctx_        context.Context
69809	header_     http.Header
69810}
69811
69812// Insert: Creates a HealthCheck resource in the specified project using
69813// the data included in the request. (== suppress_warning
69814// http-rest-shadowed ==)
69815func (r *HealthChecksService) Insert(project string, healthcheck *HealthCheck) *HealthChecksInsertCall {
69816	c := &HealthChecksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
69817	c.project = project
69818	c.healthcheck = healthcheck
69819	return c
69820}
69821
69822// RequestId sets the optional parameter "requestId": An optional
69823// request ID to identify requests. Specify a unique request ID so that
69824// if you must retry your request, the server will know to ignore the
69825// request if it has already been completed.
69826//
69827// For example, consider a situation where you make an initial request
69828// and the request times out. If you make the request again with the
69829// same request ID, the server can check if original operation with the
69830// same request ID was received, and if so, will ignore the second
69831// request. This prevents clients from accidentally creating duplicate
69832// commitments.
69833//
69834// The request ID must be a valid UUID with the exception that zero UUID
69835// is not supported (00000000-0000-0000-0000-000000000000).
69836func (c *HealthChecksInsertCall) RequestId(requestId string) *HealthChecksInsertCall {
69837	c.urlParams_.Set("requestId", requestId)
69838	return c
69839}
69840
69841// Fields allows partial responses to be retrieved. See
69842// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
69843// for more information.
69844func (c *HealthChecksInsertCall) Fields(s ...googleapi.Field) *HealthChecksInsertCall {
69845	c.urlParams_.Set("fields", googleapi.CombineFields(s))
69846	return c
69847}
69848
69849// Context sets the context to be used in this call's Do method. Any
69850// pending HTTP request will be aborted if the provided context is
69851// canceled.
69852func (c *HealthChecksInsertCall) Context(ctx context.Context) *HealthChecksInsertCall {
69853	c.ctx_ = ctx
69854	return c
69855}
69856
69857// Header returns an http.Header that can be modified by the caller to
69858// add HTTP headers to the request.
69859func (c *HealthChecksInsertCall) Header() http.Header {
69860	if c.header_ == nil {
69861		c.header_ = make(http.Header)
69862	}
69863	return c.header_
69864}
69865
69866func (c *HealthChecksInsertCall) doRequest(alt string) (*http.Response, error) {
69867	reqHeaders := make(http.Header)
69868	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
69869	for k, v := range c.header_ {
69870		reqHeaders[k] = v
69871	}
69872	reqHeaders.Set("User-Agent", c.s.userAgent())
69873	var body io.Reader = nil
69874	body, err := googleapi.WithoutDataWrapper.JSONReader(c.healthcheck)
69875	if err != nil {
69876		return nil, err
69877	}
69878	reqHeaders.Set("Content-Type", "application/json")
69879	c.urlParams_.Set("alt", alt)
69880	c.urlParams_.Set("prettyPrint", "false")
69881	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/healthChecks")
69882	urls += "?" + c.urlParams_.Encode()
69883	req, err := http.NewRequest("POST", urls, body)
69884	if err != nil {
69885		return nil, err
69886	}
69887	req.Header = reqHeaders
69888	googleapi.Expand(req.URL, map[string]string{
69889		"project": c.project,
69890	})
69891	return gensupport.SendRequest(c.ctx_, c.s.client, req)
69892}
69893
69894// Do executes the "compute.healthChecks.insert" call.
69895// Exactly one of *Operation or error will be non-nil. Any non-2xx
69896// status code is an error. Response headers are in either
69897// *Operation.ServerResponse.Header or (if a response was returned at
69898// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
69899// to check whether the returned error was because
69900// http.StatusNotModified was returned.
69901func (c *HealthChecksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
69902	gensupport.SetOptions(c.urlParams_, opts...)
69903	res, err := c.doRequest("json")
69904	if res != nil && res.StatusCode == http.StatusNotModified {
69905		if res.Body != nil {
69906			res.Body.Close()
69907		}
69908		return nil, &googleapi.Error{
69909			Code:   res.StatusCode,
69910			Header: res.Header,
69911		}
69912	}
69913	if err != nil {
69914		return nil, err
69915	}
69916	defer googleapi.CloseBody(res)
69917	if err := googleapi.CheckResponse(res); err != nil {
69918		return nil, err
69919	}
69920	ret := &Operation{
69921		ServerResponse: googleapi.ServerResponse{
69922			Header:         res.Header,
69923			HTTPStatusCode: res.StatusCode,
69924		},
69925	}
69926	target := &ret
69927	if err := gensupport.DecodeResponse(target, res); err != nil {
69928		return nil, err
69929	}
69930	return ret, nil
69931	// {
69932	//   "description": "Creates a HealthCheck resource in the specified project using the data included in the request. (== suppress_warning http-rest-shadowed ==)",
69933	//   "httpMethod": "POST",
69934	//   "id": "compute.healthChecks.insert",
69935	//   "parameterOrder": [
69936	//     "project"
69937	//   ],
69938	//   "parameters": {
69939	//     "project": {
69940	//       "description": "Project ID for this request.",
69941	//       "location": "path",
69942	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
69943	//       "required": true,
69944	//       "type": "string"
69945	//     },
69946	//     "requestId": {
69947	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
69948	//       "location": "query",
69949	//       "type": "string"
69950	//     }
69951	//   },
69952	//   "path": "{project}/global/healthChecks",
69953	//   "request": {
69954	//     "$ref": "HealthCheck"
69955	//   },
69956	//   "response": {
69957	//     "$ref": "Operation"
69958	//   },
69959	//   "scopes": [
69960	//     "https://www.googleapis.com/auth/cloud-platform",
69961	//     "https://www.googleapis.com/auth/compute"
69962	//   ]
69963	// }
69964
69965}
69966
69967// method id "compute.healthChecks.list":
69968
69969type HealthChecksListCall struct {
69970	s            *Service
69971	project      string
69972	urlParams_   gensupport.URLParams
69973	ifNoneMatch_ string
69974	ctx_         context.Context
69975	header_      http.Header
69976}
69977
69978// List: Retrieves the list of HealthCheck resources available to the
69979// specified project. (== suppress_warning http-rest-shadowed ==)
69980func (r *HealthChecksService) List(project string) *HealthChecksListCall {
69981	c := &HealthChecksListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
69982	c.project = project
69983	return c
69984}
69985
69986// Filter sets the optional parameter "filter": A filter expression that
69987// filters resources listed in the response. The expression must specify
69988// the field name, a comparison operator, and the value that you want to
69989// use for filtering. The value must be a string, a number, or a
69990// boolean. The comparison operator must be either =, !=, >, or <.
69991//
69992// For example, if you are filtering Compute Engine instances, you can
69993// exclude instances named example-instance by specifying name !=
69994// example-instance.
69995//
69996// You can also filter nested fields. For example, you could specify
69997// scheduling.automaticRestart = false to include instances only if they
69998// are not scheduled for automatic restarts. You can use filtering on
69999// nested fields to filter based on resource labels.
70000//
70001// To filter on multiple expressions, provide each separate expression
70002// within parentheses. For example, (scheduling.automaticRestart = true)
70003// (cpuPlatform = "Intel Skylake"). By default, each expression is an
70004// AND expression. However, you can include AND and OR expressions
70005// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
70006// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
70007// true).
70008func (c *HealthChecksListCall) Filter(filter string) *HealthChecksListCall {
70009	c.urlParams_.Set("filter", filter)
70010	return c
70011}
70012
70013// MaxResults sets the optional parameter "maxResults": The maximum
70014// number of results per page that should be returned. If the number of
70015// available results is larger than maxResults, Compute Engine returns a
70016// nextPageToken that can be used to get the next page of results in
70017// subsequent list requests. Acceptable values are 0 to 500, inclusive.
70018// (Default: 500)
70019func (c *HealthChecksListCall) MaxResults(maxResults int64) *HealthChecksListCall {
70020	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
70021	return c
70022}
70023
70024// OrderBy sets the optional parameter "orderBy": Sorts list results by
70025// a certain order. By default, results are returned in alphanumerical
70026// order based on the resource name.
70027//
70028// You can also sort results in descending order based on the creation
70029// timestamp using orderBy="creationTimestamp desc". This sorts results
70030// based on the creationTimestamp field in reverse chronological order
70031// (newest result first). Use this to sort resources like operations so
70032// that the newest operation is returned first.
70033//
70034// Currently, only sorting by name or creationTimestamp desc is
70035// supported.
70036func (c *HealthChecksListCall) OrderBy(orderBy string) *HealthChecksListCall {
70037	c.urlParams_.Set("orderBy", orderBy)
70038	return c
70039}
70040
70041// PageToken sets the optional parameter "pageToken": Specifies a page
70042// token to use. Set pageToken to the nextPageToken returned by a
70043// previous list request to get the next page of results.
70044func (c *HealthChecksListCall) PageToken(pageToken string) *HealthChecksListCall {
70045	c.urlParams_.Set("pageToken", pageToken)
70046	return c
70047}
70048
70049// Fields allows partial responses to be retrieved. See
70050// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
70051// for more information.
70052func (c *HealthChecksListCall) Fields(s ...googleapi.Field) *HealthChecksListCall {
70053	c.urlParams_.Set("fields", googleapi.CombineFields(s))
70054	return c
70055}
70056
70057// IfNoneMatch sets the optional parameter which makes the operation
70058// fail if the object's ETag matches the given value. This is useful for
70059// getting updates only after the object has changed since the last
70060// request. Use googleapi.IsNotModified to check whether the response
70061// error from Do is the result of In-None-Match.
70062func (c *HealthChecksListCall) IfNoneMatch(entityTag string) *HealthChecksListCall {
70063	c.ifNoneMatch_ = entityTag
70064	return c
70065}
70066
70067// Context sets the context to be used in this call's Do method. Any
70068// pending HTTP request will be aborted if the provided context is
70069// canceled.
70070func (c *HealthChecksListCall) Context(ctx context.Context) *HealthChecksListCall {
70071	c.ctx_ = ctx
70072	return c
70073}
70074
70075// Header returns an http.Header that can be modified by the caller to
70076// add HTTP headers to the request.
70077func (c *HealthChecksListCall) Header() http.Header {
70078	if c.header_ == nil {
70079		c.header_ = make(http.Header)
70080	}
70081	return c.header_
70082}
70083
70084func (c *HealthChecksListCall) doRequest(alt string) (*http.Response, error) {
70085	reqHeaders := make(http.Header)
70086	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
70087	for k, v := range c.header_ {
70088		reqHeaders[k] = v
70089	}
70090	reqHeaders.Set("User-Agent", c.s.userAgent())
70091	if c.ifNoneMatch_ != "" {
70092		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
70093	}
70094	var body io.Reader = nil
70095	c.urlParams_.Set("alt", alt)
70096	c.urlParams_.Set("prettyPrint", "false")
70097	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/healthChecks")
70098	urls += "?" + c.urlParams_.Encode()
70099	req, err := http.NewRequest("GET", urls, body)
70100	if err != nil {
70101		return nil, err
70102	}
70103	req.Header = reqHeaders
70104	googleapi.Expand(req.URL, map[string]string{
70105		"project": c.project,
70106	})
70107	return gensupport.SendRequest(c.ctx_, c.s.client, req)
70108}
70109
70110// Do executes the "compute.healthChecks.list" call.
70111// Exactly one of *HealthCheckList or error will be non-nil. Any non-2xx
70112// status code is an error. Response headers are in either
70113// *HealthCheckList.ServerResponse.Header or (if a response was returned
70114// at all) in error.(*googleapi.Error).Header. Use
70115// googleapi.IsNotModified to check whether the returned error was
70116// because http.StatusNotModified was returned.
70117func (c *HealthChecksListCall) Do(opts ...googleapi.CallOption) (*HealthCheckList, error) {
70118	gensupport.SetOptions(c.urlParams_, opts...)
70119	res, err := c.doRequest("json")
70120	if res != nil && res.StatusCode == http.StatusNotModified {
70121		if res.Body != nil {
70122			res.Body.Close()
70123		}
70124		return nil, &googleapi.Error{
70125			Code:   res.StatusCode,
70126			Header: res.Header,
70127		}
70128	}
70129	if err != nil {
70130		return nil, err
70131	}
70132	defer googleapi.CloseBody(res)
70133	if err := googleapi.CheckResponse(res); err != nil {
70134		return nil, err
70135	}
70136	ret := &HealthCheckList{
70137		ServerResponse: googleapi.ServerResponse{
70138			Header:         res.Header,
70139			HTTPStatusCode: res.StatusCode,
70140		},
70141	}
70142	target := &ret
70143	if err := gensupport.DecodeResponse(target, res); err != nil {
70144		return nil, err
70145	}
70146	return ret, nil
70147	// {
70148	//   "description": "Retrieves the list of HealthCheck resources available to the specified project. (== suppress_warning http-rest-shadowed ==)",
70149	//   "httpMethod": "GET",
70150	//   "id": "compute.healthChecks.list",
70151	//   "parameterOrder": [
70152	//     "project"
70153	//   ],
70154	//   "parameters": {
70155	//     "filter": {
70156	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
70157	//       "location": "query",
70158	//       "type": "string"
70159	//     },
70160	//     "maxResults": {
70161	//       "default": "500",
70162	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
70163	//       "format": "uint32",
70164	//       "location": "query",
70165	//       "minimum": "0",
70166	//       "type": "integer"
70167	//     },
70168	//     "orderBy": {
70169	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
70170	//       "location": "query",
70171	//       "type": "string"
70172	//     },
70173	//     "pageToken": {
70174	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
70175	//       "location": "query",
70176	//       "type": "string"
70177	//     },
70178	//     "project": {
70179	//       "description": "Project ID for this request.",
70180	//       "location": "path",
70181	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
70182	//       "required": true,
70183	//       "type": "string"
70184	//     }
70185	//   },
70186	//   "path": "{project}/global/healthChecks",
70187	//   "response": {
70188	//     "$ref": "HealthCheckList"
70189	//   },
70190	//   "scopes": [
70191	//     "https://www.googleapis.com/auth/cloud-platform",
70192	//     "https://www.googleapis.com/auth/compute",
70193	//     "https://www.googleapis.com/auth/compute.readonly"
70194	//   ]
70195	// }
70196
70197}
70198
70199// Pages invokes f for each page of results.
70200// A non-nil error returned from f will halt the iteration.
70201// The provided context supersedes any context provided to the Context method.
70202func (c *HealthChecksListCall) Pages(ctx context.Context, f func(*HealthCheckList) error) error {
70203	c.ctx_ = ctx
70204	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
70205	for {
70206		x, err := c.Do()
70207		if err != nil {
70208			return err
70209		}
70210		if err := f(x); err != nil {
70211			return err
70212		}
70213		if x.NextPageToken == "" {
70214			return nil
70215		}
70216		c.PageToken(x.NextPageToken)
70217	}
70218}
70219
70220// method id "compute.healthChecks.patch":
70221
70222type HealthChecksPatchCall struct {
70223	s           *Service
70224	project     string
70225	healthCheck string
70226	healthcheck *HealthCheck
70227	urlParams_  gensupport.URLParams
70228	ctx_        context.Context
70229	header_     http.Header
70230}
70231
70232// Patch: Updates a HealthCheck resource in the specified project using
70233// the data included in the request. This method supports PATCH
70234// semantics and uses the JSON merge patch format and processing rules.
70235// (== suppress_warning http-rest-shadowed ==)
70236func (r *HealthChecksService) Patch(project string, healthCheck string, healthcheck *HealthCheck) *HealthChecksPatchCall {
70237	c := &HealthChecksPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
70238	c.project = project
70239	c.healthCheck = healthCheck
70240	c.healthcheck = healthcheck
70241	return c
70242}
70243
70244// RequestId sets the optional parameter "requestId": An optional
70245// request ID to identify requests. Specify a unique request ID so that
70246// if you must retry your request, the server will know to ignore the
70247// request if it has already been completed.
70248//
70249// For example, consider a situation where you make an initial request
70250// and the request times out. If you make the request again with the
70251// same request ID, the server can check if original operation with the
70252// same request ID was received, and if so, will ignore the second
70253// request. This prevents clients from accidentally creating duplicate
70254// commitments.
70255//
70256// The request ID must be a valid UUID with the exception that zero UUID
70257// is not supported (00000000-0000-0000-0000-000000000000).
70258func (c *HealthChecksPatchCall) RequestId(requestId string) *HealthChecksPatchCall {
70259	c.urlParams_.Set("requestId", requestId)
70260	return c
70261}
70262
70263// Fields allows partial responses to be retrieved. See
70264// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
70265// for more information.
70266func (c *HealthChecksPatchCall) Fields(s ...googleapi.Field) *HealthChecksPatchCall {
70267	c.urlParams_.Set("fields", googleapi.CombineFields(s))
70268	return c
70269}
70270
70271// Context sets the context to be used in this call's Do method. Any
70272// pending HTTP request will be aborted if the provided context is
70273// canceled.
70274func (c *HealthChecksPatchCall) Context(ctx context.Context) *HealthChecksPatchCall {
70275	c.ctx_ = ctx
70276	return c
70277}
70278
70279// Header returns an http.Header that can be modified by the caller to
70280// add HTTP headers to the request.
70281func (c *HealthChecksPatchCall) Header() http.Header {
70282	if c.header_ == nil {
70283		c.header_ = make(http.Header)
70284	}
70285	return c.header_
70286}
70287
70288func (c *HealthChecksPatchCall) doRequest(alt string) (*http.Response, error) {
70289	reqHeaders := make(http.Header)
70290	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
70291	for k, v := range c.header_ {
70292		reqHeaders[k] = v
70293	}
70294	reqHeaders.Set("User-Agent", c.s.userAgent())
70295	var body io.Reader = nil
70296	body, err := googleapi.WithoutDataWrapper.JSONReader(c.healthcheck)
70297	if err != nil {
70298		return nil, err
70299	}
70300	reqHeaders.Set("Content-Type", "application/json")
70301	c.urlParams_.Set("alt", alt)
70302	c.urlParams_.Set("prettyPrint", "false")
70303	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/healthChecks/{healthCheck}")
70304	urls += "?" + c.urlParams_.Encode()
70305	req, err := http.NewRequest("PATCH", urls, body)
70306	if err != nil {
70307		return nil, err
70308	}
70309	req.Header = reqHeaders
70310	googleapi.Expand(req.URL, map[string]string{
70311		"project":     c.project,
70312		"healthCheck": c.healthCheck,
70313	})
70314	return gensupport.SendRequest(c.ctx_, c.s.client, req)
70315}
70316
70317// Do executes the "compute.healthChecks.patch" call.
70318// Exactly one of *Operation or error will be non-nil. Any non-2xx
70319// status code is an error. Response headers are in either
70320// *Operation.ServerResponse.Header or (if a response was returned at
70321// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
70322// to check whether the returned error was because
70323// http.StatusNotModified was returned.
70324func (c *HealthChecksPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
70325	gensupport.SetOptions(c.urlParams_, opts...)
70326	res, err := c.doRequest("json")
70327	if res != nil && res.StatusCode == http.StatusNotModified {
70328		if res.Body != nil {
70329			res.Body.Close()
70330		}
70331		return nil, &googleapi.Error{
70332			Code:   res.StatusCode,
70333			Header: res.Header,
70334		}
70335	}
70336	if err != nil {
70337		return nil, err
70338	}
70339	defer googleapi.CloseBody(res)
70340	if err := googleapi.CheckResponse(res); err != nil {
70341		return nil, err
70342	}
70343	ret := &Operation{
70344		ServerResponse: googleapi.ServerResponse{
70345			Header:         res.Header,
70346			HTTPStatusCode: res.StatusCode,
70347		},
70348	}
70349	target := &ret
70350	if err := gensupport.DecodeResponse(target, res); err != nil {
70351		return nil, err
70352	}
70353	return ret, nil
70354	// {
70355	//   "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. (== suppress_warning http-rest-shadowed ==)",
70356	//   "httpMethod": "PATCH",
70357	//   "id": "compute.healthChecks.patch",
70358	//   "parameterOrder": [
70359	//     "project",
70360	//     "healthCheck"
70361	//   ],
70362	//   "parameters": {
70363	//     "healthCheck": {
70364	//       "description": "Name of the HealthCheck resource to patch.",
70365	//       "location": "path",
70366	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
70367	//       "required": true,
70368	//       "type": "string"
70369	//     },
70370	//     "project": {
70371	//       "description": "Project ID for this request.",
70372	//       "location": "path",
70373	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
70374	//       "required": true,
70375	//       "type": "string"
70376	//     },
70377	//     "requestId": {
70378	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
70379	//       "location": "query",
70380	//       "type": "string"
70381	//     }
70382	//   },
70383	//   "path": "{project}/global/healthChecks/{healthCheck}",
70384	//   "request": {
70385	//     "$ref": "HealthCheck"
70386	//   },
70387	//   "response": {
70388	//     "$ref": "Operation"
70389	//   },
70390	//   "scopes": [
70391	//     "https://www.googleapis.com/auth/cloud-platform",
70392	//     "https://www.googleapis.com/auth/compute"
70393	//   ]
70394	// }
70395
70396}
70397
70398// method id "compute.healthChecks.testIamPermissions":
70399
70400type HealthChecksTestIamPermissionsCall struct {
70401	s                      *Service
70402	project                string
70403	resource               string
70404	testpermissionsrequest *TestPermissionsRequest
70405	urlParams_             gensupport.URLParams
70406	ctx_                   context.Context
70407	header_                http.Header
70408}
70409
70410// TestIamPermissions: Returns permissions that a caller has on the
70411// specified resource. (== suppress_warning http-rest-shadowed ==)
70412func (r *HealthChecksService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *HealthChecksTestIamPermissionsCall {
70413	c := &HealthChecksTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
70414	c.project = project
70415	c.resource = resource
70416	c.testpermissionsrequest = testpermissionsrequest
70417	return c
70418}
70419
70420// Fields allows partial responses to be retrieved. See
70421// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
70422// for more information.
70423func (c *HealthChecksTestIamPermissionsCall) Fields(s ...googleapi.Field) *HealthChecksTestIamPermissionsCall {
70424	c.urlParams_.Set("fields", googleapi.CombineFields(s))
70425	return c
70426}
70427
70428// Context sets the context to be used in this call's Do method. Any
70429// pending HTTP request will be aborted if the provided context is
70430// canceled.
70431func (c *HealthChecksTestIamPermissionsCall) Context(ctx context.Context) *HealthChecksTestIamPermissionsCall {
70432	c.ctx_ = ctx
70433	return c
70434}
70435
70436// Header returns an http.Header that can be modified by the caller to
70437// add HTTP headers to the request.
70438func (c *HealthChecksTestIamPermissionsCall) Header() http.Header {
70439	if c.header_ == nil {
70440		c.header_ = make(http.Header)
70441	}
70442	return c.header_
70443}
70444
70445func (c *HealthChecksTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
70446	reqHeaders := make(http.Header)
70447	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
70448	for k, v := range c.header_ {
70449		reqHeaders[k] = v
70450	}
70451	reqHeaders.Set("User-Agent", c.s.userAgent())
70452	var body io.Reader = nil
70453	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
70454	if err != nil {
70455		return nil, err
70456	}
70457	reqHeaders.Set("Content-Type", "application/json")
70458	c.urlParams_.Set("alt", alt)
70459	c.urlParams_.Set("prettyPrint", "false")
70460	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/healthChecks/{resource}/testIamPermissions")
70461	urls += "?" + c.urlParams_.Encode()
70462	req, err := http.NewRequest("POST", urls, body)
70463	if err != nil {
70464		return nil, err
70465	}
70466	req.Header = reqHeaders
70467	googleapi.Expand(req.URL, map[string]string{
70468		"project":  c.project,
70469		"resource": c.resource,
70470	})
70471	return gensupport.SendRequest(c.ctx_, c.s.client, req)
70472}
70473
70474// Do executes the "compute.healthChecks.testIamPermissions" call.
70475// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
70476// non-2xx status code is an error. Response headers are in either
70477// *TestPermissionsResponse.ServerResponse.Header or (if a response was
70478// returned at all) in error.(*googleapi.Error).Header. Use
70479// googleapi.IsNotModified to check whether the returned error was
70480// because http.StatusNotModified was returned.
70481func (c *HealthChecksTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
70482	gensupport.SetOptions(c.urlParams_, opts...)
70483	res, err := c.doRequest("json")
70484	if res != nil && res.StatusCode == http.StatusNotModified {
70485		if res.Body != nil {
70486			res.Body.Close()
70487		}
70488		return nil, &googleapi.Error{
70489			Code:   res.StatusCode,
70490			Header: res.Header,
70491		}
70492	}
70493	if err != nil {
70494		return nil, err
70495	}
70496	defer googleapi.CloseBody(res)
70497	if err := googleapi.CheckResponse(res); err != nil {
70498		return nil, err
70499	}
70500	ret := &TestPermissionsResponse{
70501		ServerResponse: googleapi.ServerResponse{
70502			Header:         res.Header,
70503			HTTPStatusCode: res.StatusCode,
70504		},
70505	}
70506	target := &ret
70507	if err := gensupport.DecodeResponse(target, res); err != nil {
70508		return nil, err
70509	}
70510	return ret, nil
70511	// {
70512	//   "description": "Returns permissions that a caller has on the specified resource. (== suppress_warning http-rest-shadowed ==)",
70513	//   "httpMethod": "POST",
70514	//   "id": "compute.healthChecks.testIamPermissions",
70515	//   "parameterOrder": [
70516	//     "project",
70517	//     "resource"
70518	//   ],
70519	//   "parameters": {
70520	//     "project": {
70521	//       "description": "Project ID for this request.",
70522	//       "location": "path",
70523	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
70524	//       "required": true,
70525	//       "type": "string"
70526	//     },
70527	//     "resource": {
70528	//       "description": "Name or id of the resource for this request.",
70529	//       "location": "path",
70530	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
70531	//       "required": true,
70532	//       "type": "string"
70533	//     }
70534	//   },
70535	//   "path": "{project}/global/healthChecks/{resource}/testIamPermissions",
70536	//   "request": {
70537	//     "$ref": "TestPermissionsRequest"
70538	//   },
70539	//   "response": {
70540	//     "$ref": "TestPermissionsResponse"
70541	//   },
70542	//   "scopes": [
70543	//     "https://www.googleapis.com/auth/cloud-platform",
70544	//     "https://www.googleapis.com/auth/compute",
70545	//     "https://www.googleapis.com/auth/compute.readonly"
70546	//   ]
70547	// }
70548
70549}
70550
70551// method id "compute.healthChecks.update":
70552
70553type HealthChecksUpdateCall struct {
70554	s           *Service
70555	project     string
70556	healthCheck string
70557	healthcheck *HealthCheck
70558	urlParams_  gensupport.URLParams
70559	ctx_        context.Context
70560	header_     http.Header
70561}
70562
70563// Update: Updates a HealthCheck resource in the specified project using
70564// the data included in the request. (== suppress_warning
70565// http-rest-shadowed ==)
70566func (r *HealthChecksService) Update(project string, healthCheck string, healthcheck *HealthCheck) *HealthChecksUpdateCall {
70567	c := &HealthChecksUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
70568	c.project = project
70569	c.healthCheck = healthCheck
70570	c.healthcheck = healthcheck
70571	return c
70572}
70573
70574// RequestId sets the optional parameter "requestId": An optional
70575// request ID to identify requests. Specify a unique request ID so that
70576// if you must retry your request, the server will know to ignore the
70577// request if it has already been completed.
70578//
70579// For example, consider a situation where you make an initial request
70580// and the request times out. If you make the request again with the
70581// same request ID, the server can check if original operation with the
70582// same request ID was received, and if so, will ignore the second
70583// request. This prevents clients from accidentally creating duplicate
70584// commitments.
70585//
70586// The request ID must be a valid UUID with the exception that zero UUID
70587// is not supported (00000000-0000-0000-0000-000000000000).
70588func (c *HealthChecksUpdateCall) RequestId(requestId string) *HealthChecksUpdateCall {
70589	c.urlParams_.Set("requestId", requestId)
70590	return c
70591}
70592
70593// Fields allows partial responses to be retrieved. See
70594// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
70595// for more information.
70596func (c *HealthChecksUpdateCall) Fields(s ...googleapi.Field) *HealthChecksUpdateCall {
70597	c.urlParams_.Set("fields", googleapi.CombineFields(s))
70598	return c
70599}
70600
70601// Context sets the context to be used in this call's Do method. Any
70602// pending HTTP request will be aborted if the provided context is
70603// canceled.
70604func (c *HealthChecksUpdateCall) Context(ctx context.Context) *HealthChecksUpdateCall {
70605	c.ctx_ = ctx
70606	return c
70607}
70608
70609// Header returns an http.Header that can be modified by the caller to
70610// add HTTP headers to the request.
70611func (c *HealthChecksUpdateCall) Header() http.Header {
70612	if c.header_ == nil {
70613		c.header_ = make(http.Header)
70614	}
70615	return c.header_
70616}
70617
70618func (c *HealthChecksUpdateCall) doRequest(alt string) (*http.Response, error) {
70619	reqHeaders := make(http.Header)
70620	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
70621	for k, v := range c.header_ {
70622		reqHeaders[k] = v
70623	}
70624	reqHeaders.Set("User-Agent", c.s.userAgent())
70625	var body io.Reader = nil
70626	body, err := googleapi.WithoutDataWrapper.JSONReader(c.healthcheck)
70627	if err != nil {
70628		return nil, err
70629	}
70630	reqHeaders.Set("Content-Type", "application/json")
70631	c.urlParams_.Set("alt", alt)
70632	c.urlParams_.Set("prettyPrint", "false")
70633	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/healthChecks/{healthCheck}")
70634	urls += "?" + c.urlParams_.Encode()
70635	req, err := http.NewRequest("PUT", urls, body)
70636	if err != nil {
70637		return nil, err
70638	}
70639	req.Header = reqHeaders
70640	googleapi.Expand(req.URL, map[string]string{
70641		"project":     c.project,
70642		"healthCheck": c.healthCheck,
70643	})
70644	return gensupport.SendRequest(c.ctx_, c.s.client, req)
70645}
70646
70647// Do executes the "compute.healthChecks.update" call.
70648// Exactly one of *Operation or error will be non-nil. Any non-2xx
70649// status code is an error. Response headers are in either
70650// *Operation.ServerResponse.Header or (if a response was returned at
70651// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
70652// to check whether the returned error was because
70653// http.StatusNotModified was returned.
70654func (c *HealthChecksUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
70655	gensupport.SetOptions(c.urlParams_, opts...)
70656	res, err := c.doRequest("json")
70657	if res != nil && res.StatusCode == http.StatusNotModified {
70658		if res.Body != nil {
70659			res.Body.Close()
70660		}
70661		return nil, &googleapi.Error{
70662			Code:   res.StatusCode,
70663			Header: res.Header,
70664		}
70665	}
70666	if err != nil {
70667		return nil, err
70668	}
70669	defer googleapi.CloseBody(res)
70670	if err := googleapi.CheckResponse(res); err != nil {
70671		return nil, err
70672	}
70673	ret := &Operation{
70674		ServerResponse: googleapi.ServerResponse{
70675			Header:         res.Header,
70676			HTTPStatusCode: res.StatusCode,
70677		},
70678	}
70679	target := &ret
70680	if err := gensupport.DecodeResponse(target, res); err != nil {
70681		return nil, err
70682	}
70683	return ret, nil
70684	// {
70685	//   "description": "Updates a HealthCheck resource in the specified project using the data included in the request. (== suppress_warning http-rest-shadowed ==)",
70686	//   "httpMethod": "PUT",
70687	//   "id": "compute.healthChecks.update",
70688	//   "parameterOrder": [
70689	//     "project",
70690	//     "healthCheck"
70691	//   ],
70692	//   "parameters": {
70693	//     "healthCheck": {
70694	//       "description": "Name of the HealthCheck resource to update.",
70695	//       "location": "path",
70696	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
70697	//       "required": true,
70698	//       "type": "string"
70699	//     },
70700	//     "project": {
70701	//       "description": "Project ID for this request.",
70702	//       "location": "path",
70703	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
70704	//       "required": true,
70705	//       "type": "string"
70706	//     },
70707	//     "requestId": {
70708	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
70709	//       "location": "query",
70710	//       "type": "string"
70711	//     }
70712	//   },
70713	//   "path": "{project}/global/healthChecks/{healthCheck}",
70714	//   "request": {
70715	//     "$ref": "HealthCheck"
70716	//   },
70717	//   "response": {
70718	//     "$ref": "Operation"
70719	//   },
70720	//   "scopes": [
70721	//     "https://www.googleapis.com/auth/cloud-platform",
70722	//     "https://www.googleapis.com/auth/compute"
70723	//   ]
70724	// }
70725
70726}
70727
70728// method id "compute.httpHealthChecks.delete":
70729
70730type HttpHealthChecksDeleteCall struct {
70731	s               *Service
70732	project         string
70733	httpHealthCheck string
70734	urlParams_      gensupport.URLParams
70735	ctx_            context.Context
70736	header_         http.Header
70737}
70738
70739// Delete: Deletes the specified HttpHealthCheck resource. (==
70740// suppress_warning http-rest-shadowed ==)
70741// For details, see https://cloud.google.com/compute/docs/reference/latest/httpHealthChecks/delete
70742func (r *HttpHealthChecksService) Delete(project string, httpHealthCheck string) *HttpHealthChecksDeleteCall {
70743	c := &HttpHealthChecksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
70744	c.project = project
70745	c.httpHealthCheck = httpHealthCheck
70746	return c
70747}
70748
70749// RequestId sets the optional parameter "requestId": An optional
70750// request ID to identify requests. Specify a unique request ID so that
70751// if you must retry your request, the server will know to ignore the
70752// request if it has already been completed.
70753//
70754// For example, consider a situation where you make an initial request
70755// and the request times out. If you make the request again with the
70756// same request ID, the server can check if original operation with the
70757// same request ID was received, and if so, will ignore the second
70758// request. This prevents clients from accidentally creating duplicate
70759// commitments.
70760//
70761// The request ID must be a valid UUID with the exception that zero UUID
70762// is not supported (00000000-0000-0000-0000-000000000000).
70763func (c *HttpHealthChecksDeleteCall) RequestId(requestId string) *HttpHealthChecksDeleteCall {
70764	c.urlParams_.Set("requestId", requestId)
70765	return c
70766}
70767
70768// Fields allows partial responses to be retrieved. See
70769// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
70770// for more information.
70771func (c *HttpHealthChecksDeleteCall) Fields(s ...googleapi.Field) *HttpHealthChecksDeleteCall {
70772	c.urlParams_.Set("fields", googleapi.CombineFields(s))
70773	return c
70774}
70775
70776// Context sets the context to be used in this call's Do method. Any
70777// pending HTTP request will be aborted if the provided context is
70778// canceled.
70779func (c *HttpHealthChecksDeleteCall) Context(ctx context.Context) *HttpHealthChecksDeleteCall {
70780	c.ctx_ = ctx
70781	return c
70782}
70783
70784// Header returns an http.Header that can be modified by the caller to
70785// add HTTP headers to the request.
70786func (c *HttpHealthChecksDeleteCall) Header() http.Header {
70787	if c.header_ == nil {
70788		c.header_ = make(http.Header)
70789	}
70790	return c.header_
70791}
70792
70793func (c *HttpHealthChecksDeleteCall) doRequest(alt string) (*http.Response, error) {
70794	reqHeaders := make(http.Header)
70795	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
70796	for k, v := range c.header_ {
70797		reqHeaders[k] = v
70798	}
70799	reqHeaders.Set("User-Agent", c.s.userAgent())
70800	var body io.Reader = nil
70801	c.urlParams_.Set("alt", alt)
70802	c.urlParams_.Set("prettyPrint", "false")
70803	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/httpHealthChecks/{httpHealthCheck}")
70804	urls += "?" + c.urlParams_.Encode()
70805	req, err := http.NewRequest("DELETE", urls, body)
70806	if err != nil {
70807		return nil, err
70808	}
70809	req.Header = reqHeaders
70810	googleapi.Expand(req.URL, map[string]string{
70811		"project":         c.project,
70812		"httpHealthCheck": c.httpHealthCheck,
70813	})
70814	return gensupport.SendRequest(c.ctx_, c.s.client, req)
70815}
70816
70817// Do executes the "compute.httpHealthChecks.delete" call.
70818// Exactly one of *Operation or error will be non-nil. Any non-2xx
70819// status code is an error. Response headers are in either
70820// *Operation.ServerResponse.Header or (if a response was returned at
70821// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
70822// to check whether the returned error was because
70823// http.StatusNotModified was returned.
70824func (c *HttpHealthChecksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
70825	gensupport.SetOptions(c.urlParams_, opts...)
70826	res, err := c.doRequest("json")
70827	if res != nil && res.StatusCode == http.StatusNotModified {
70828		if res.Body != nil {
70829			res.Body.Close()
70830		}
70831		return nil, &googleapi.Error{
70832			Code:   res.StatusCode,
70833			Header: res.Header,
70834		}
70835	}
70836	if err != nil {
70837		return nil, err
70838	}
70839	defer googleapi.CloseBody(res)
70840	if err := googleapi.CheckResponse(res); err != nil {
70841		return nil, err
70842	}
70843	ret := &Operation{
70844		ServerResponse: googleapi.ServerResponse{
70845			Header:         res.Header,
70846			HTTPStatusCode: res.StatusCode,
70847		},
70848	}
70849	target := &ret
70850	if err := gensupport.DecodeResponse(target, res); err != nil {
70851		return nil, err
70852	}
70853	return ret, nil
70854	// {
70855	//   "description": "Deletes the specified HttpHealthCheck resource. (== suppress_warning http-rest-shadowed ==)",
70856	//   "httpMethod": "DELETE",
70857	//   "id": "compute.httpHealthChecks.delete",
70858	//   "parameterOrder": [
70859	//     "project",
70860	//     "httpHealthCheck"
70861	//   ],
70862	//   "parameters": {
70863	//     "httpHealthCheck": {
70864	//       "description": "Name of the HttpHealthCheck resource to delete.",
70865	//       "location": "path",
70866	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
70867	//       "required": true,
70868	//       "type": "string"
70869	//     },
70870	//     "project": {
70871	//       "description": "Project ID for this request.",
70872	//       "location": "path",
70873	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
70874	//       "required": true,
70875	//       "type": "string"
70876	//     },
70877	//     "requestId": {
70878	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
70879	//       "location": "query",
70880	//       "type": "string"
70881	//     }
70882	//   },
70883	//   "path": "{project}/global/httpHealthChecks/{httpHealthCheck}",
70884	//   "response": {
70885	//     "$ref": "Operation"
70886	//   },
70887	//   "scopes": [
70888	//     "https://www.googleapis.com/auth/cloud-platform",
70889	//     "https://www.googleapis.com/auth/compute"
70890	//   ]
70891	// }
70892
70893}
70894
70895// method id "compute.httpHealthChecks.get":
70896
70897type HttpHealthChecksGetCall struct {
70898	s               *Service
70899	project         string
70900	httpHealthCheck string
70901	urlParams_      gensupport.URLParams
70902	ifNoneMatch_    string
70903	ctx_            context.Context
70904	header_         http.Header
70905}
70906
70907// Get: Returns the specified HttpHealthCheck resource. Gets a list of
70908// available HTTP health checks by making a list() request. (==
70909// suppress_warning http-rest-shadowed ==)
70910// For details, see https://cloud.google.com/compute/docs/reference/latest/httpHealthChecks/get
70911func (r *HttpHealthChecksService) Get(project string, httpHealthCheck string) *HttpHealthChecksGetCall {
70912	c := &HttpHealthChecksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
70913	c.project = project
70914	c.httpHealthCheck = httpHealthCheck
70915	return c
70916}
70917
70918// Fields allows partial responses to be retrieved. See
70919// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
70920// for more information.
70921func (c *HttpHealthChecksGetCall) Fields(s ...googleapi.Field) *HttpHealthChecksGetCall {
70922	c.urlParams_.Set("fields", googleapi.CombineFields(s))
70923	return c
70924}
70925
70926// IfNoneMatch sets the optional parameter which makes the operation
70927// fail if the object's ETag matches the given value. This is useful for
70928// getting updates only after the object has changed since the last
70929// request. Use googleapi.IsNotModified to check whether the response
70930// error from Do is the result of In-None-Match.
70931func (c *HttpHealthChecksGetCall) IfNoneMatch(entityTag string) *HttpHealthChecksGetCall {
70932	c.ifNoneMatch_ = entityTag
70933	return c
70934}
70935
70936// Context sets the context to be used in this call's Do method. Any
70937// pending HTTP request will be aborted if the provided context is
70938// canceled.
70939func (c *HttpHealthChecksGetCall) Context(ctx context.Context) *HttpHealthChecksGetCall {
70940	c.ctx_ = ctx
70941	return c
70942}
70943
70944// Header returns an http.Header that can be modified by the caller to
70945// add HTTP headers to the request.
70946func (c *HttpHealthChecksGetCall) Header() http.Header {
70947	if c.header_ == nil {
70948		c.header_ = make(http.Header)
70949	}
70950	return c.header_
70951}
70952
70953func (c *HttpHealthChecksGetCall) doRequest(alt string) (*http.Response, error) {
70954	reqHeaders := make(http.Header)
70955	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
70956	for k, v := range c.header_ {
70957		reqHeaders[k] = v
70958	}
70959	reqHeaders.Set("User-Agent", c.s.userAgent())
70960	if c.ifNoneMatch_ != "" {
70961		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
70962	}
70963	var body io.Reader = nil
70964	c.urlParams_.Set("alt", alt)
70965	c.urlParams_.Set("prettyPrint", "false")
70966	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/httpHealthChecks/{httpHealthCheck}")
70967	urls += "?" + c.urlParams_.Encode()
70968	req, err := http.NewRequest("GET", urls, body)
70969	if err != nil {
70970		return nil, err
70971	}
70972	req.Header = reqHeaders
70973	googleapi.Expand(req.URL, map[string]string{
70974		"project":         c.project,
70975		"httpHealthCheck": c.httpHealthCheck,
70976	})
70977	return gensupport.SendRequest(c.ctx_, c.s.client, req)
70978}
70979
70980// Do executes the "compute.httpHealthChecks.get" call.
70981// Exactly one of *HttpHealthCheck or error will be non-nil. Any non-2xx
70982// status code is an error. Response headers are in either
70983// *HttpHealthCheck.ServerResponse.Header or (if a response was returned
70984// at all) in error.(*googleapi.Error).Header. Use
70985// googleapi.IsNotModified to check whether the returned error was
70986// because http.StatusNotModified was returned.
70987func (c *HttpHealthChecksGetCall) Do(opts ...googleapi.CallOption) (*HttpHealthCheck, error) {
70988	gensupport.SetOptions(c.urlParams_, opts...)
70989	res, err := c.doRequest("json")
70990	if res != nil && res.StatusCode == http.StatusNotModified {
70991		if res.Body != nil {
70992			res.Body.Close()
70993		}
70994		return nil, &googleapi.Error{
70995			Code:   res.StatusCode,
70996			Header: res.Header,
70997		}
70998	}
70999	if err != nil {
71000		return nil, err
71001	}
71002	defer googleapi.CloseBody(res)
71003	if err := googleapi.CheckResponse(res); err != nil {
71004		return nil, err
71005	}
71006	ret := &HttpHealthCheck{
71007		ServerResponse: googleapi.ServerResponse{
71008			Header:         res.Header,
71009			HTTPStatusCode: res.StatusCode,
71010		},
71011	}
71012	target := &ret
71013	if err := gensupport.DecodeResponse(target, res); err != nil {
71014		return nil, err
71015	}
71016	return ret, nil
71017	// {
71018	//   "description": "Returns the specified HttpHealthCheck resource. Gets a list of available HTTP health checks by making a list() request. (== suppress_warning http-rest-shadowed ==)",
71019	//   "httpMethod": "GET",
71020	//   "id": "compute.httpHealthChecks.get",
71021	//   "parameterOrder": [
71022	//     "project",
71023	//     "httpHealthCheck"
71024	//   ],
71025	//   "parameters": {
71026	//     "httpHealthCheck": {
71027	//       "description": "Name of the HttpHealthCheck resource to return.",
71028	//       "location": "path",
71029	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
71030	//       "required": true,
71031	//       "type": "string"
71032	//     },
71033	//     "project": {
71034	//       "description": "Project ID for this request.",
71035	//       "location": "path",
71036	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
71037	//       "required": true,
71038	//       "type": "string"
71039	//     }
71040	//   },
71041	//   "path": "{project}/global/httpHealthChecks/{httpHealthCheck}",
71042	//   "response": {
71043	//     "$ref": "HttpHealthCheck"
71044	//   },
71045	//   "scopes": [
71046	//     "https://www.googleapis.com/auth/cloud-platform",
71047	//     "https://www.googleapis.com/auth/compute",
71048	//     "https://www.googleapis.com/auth/compute.readonly"
71049	//   ]
71050	// }
71051
71052}
71053
71054// method id "compute.httpHealthChecks.insert":
71055
71056type HttpHealthChecksInsertCall struct {
71057	s               *Service
71058	project         string
71059	httphealthcheck *HttpHealthCheck
71060	urlParams_      gensupport.URLParams
71061	ctx_            context.Context
71062	header_         http.Header
71063}
71064
71065// Insert: Creates a HttpHealthCheck resource in the specified project
71066// using the data included in the request. (== suppress_warning
71067// http-rest-shadowed ==)
71068// For details, see https://cloud.google.com/compute/docs/reference/latest/httpHealthChecks/insert
71069func (r *HttpHealthChecksService) Insert(project string, httphealthcheck *HttpHealthCheck) *HttpHealthChecksInsertCall {
71070	c := &HttpHealthChecksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
71071	c.project = project
71072	c.httphealthcheck = httphealthcheck
71073	return c
71074}
71075
71076// RequestId sets the optional parameter "requestId": An optional
71077// request ID to identify requests. Specify a unique request ID so that
71078// if you must retry your request, the server will know to ignore the
71079// request if it has already been completed.
71080//
71081// For example, consider a situation where you make an initial request
71082// and the request times out. If you make the request again with the
71083// same request ID, the server can check if original operation with the
71084// same request ID was received, and if so, will ignore the second
71085// request. This prevents clients from accidentally creating duplicate
71086// commitments.
71087//
71088// The request ID must be a valid UUID with the exception that zero UUID
71089// is not supported (00000000-0000-0000-0000-000000000000).
71090func (c *HttpHealthChecksInsertCall) RequestId(requestId string) *HttpHealthChecksInsertCall {
71091	c.urlParams_.Set("requestId", requestId)
71092	return c
71093}
71094
71095// Fields allows partial responses to be retrieved. See
71096// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
71097// for more information.
71098func (c *HttpHealthChecksInsertCall) Fields(s ...googleapi.Field) *HttpHealthChecksInsertCall {
71099	c.urlParams_.Set("fields", googleapi.CombineFields(s))
71100	return c
71101}
71102
71103// Context sets the context to be used in this call's Do method. Any
71104// pending HTTP request will be aborted if the provided context is
71105// canceled.
71106func (c *HttpHealthChecksInsertCall) Context(ctx context.Context) *HttpHealthChecksInsertCall {
71107	c.ctx_ = ctx
71108	return c
71109}
71110
71111// Header returns an http.Header that can be modified by the caller to
71112// add HTTP headers to the request.
71113func (c *HttpHealthChecksInsertCall) Header() http.Header {
71114	if c.header_ == nil {
71115		c.header_ = make(http.Header)
71116	}
71117	return c.header_
71118}
71119
71120func (c *HttpHealthChecksInsertCall) doRequest(alt string) (*http.Response, error) {
71121	reqHeaders := make(http.Header)
71122	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
71123	for k, v := range c.header_ {
71124		reqHeaders[k] = v
71125	}
71126	reqHeaders.Set("User-Agent", c.s.userAgent())
71127	var body io.Reader = nil
71128	body, err := googleapi.WithoutDataWrapper.JSONReader(c.httphealthcheck)
71129	if err != nil {
71130		return nil, err
71131	}
71132	reqHeaders.Set("Content-Type", "application/json")
71133	c.urlParams_.Set("alt", alt)
71134	c.urlParams_.Set("prettyPrint", "false")
71135	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/httpHealthChecks")
71136	urls += "?" + c.urlParams_.Encode()
71137	req, err := http.NewRequest("POST", urls, body)
71138	if err != nil {
71139		return nil, err
71140	}
71141	req.Header = reqHeaders
71142	googleapi.Expand(req.URL, map[string]string{
71143		"project": c.project,
71144	})
71145	return gensupport.SendRequest(c.ctx_, c.s.client, req)
71146}
71147
71148// Do executes the "compute.httpHealthChecks.insert" call.
71149// Exactly one of *Operation or error will be non-nil. Any non-2xx
71150// status code is an error. Response headers are in either
71151// *Operation.ServerResponse.Header or (if a response was returned at
71152// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
71153// to check whether the returned error was because
71154// http.StatusNotModified was returned.
71155func (c *HttpHealthChecksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
71156	gensupport.SetOptions(c.urlParams_, opts...)
71157	res, err := c.doRequest("json")
71158	if res != nil && res.StatusCode == http.StatusNotModified {
71159		if res.Body != nil {
71160			res.Body.Close()
71161		}
71162		return nil, &googleapi.Error{
71163			Code:   res.StatusCode,
71164			Header: res.Header,
71165		}
71166	}
71167	if err != nil {
71168		return nil, err
71169	}
71170	defer googleapi.CloseBody(res)
71171	if err := googleapi.CheckResponse(res); err != nil {
71172		return nil, err
71173	}
71174	ret := &Operation{
71175		ServerResponse: googleapi.ServerResponse{
71176			Header:         res.Header,
71177			HTTPStatusCode: res.StatusCode,
71178		},
71179	}
71180	target := &ret
71181	if err := gensupport.DecodeResponse(target, res); err != nil {
71182		return nil, err
71183	}
71184	return ret, nil
71185	// {
71186	//   "description": "Creates a HttpHealthCheck resource in the specified project using the data included in the request. (== suppress_warning http-rest-shadowed ==)",
71187	//   "httpMethod": "POST",
71188	//   "id": "compute.httpHealthChecks.insert",
71189	//   "parameterOrder": [
71190	//     "project"
71191	//   ],
71192	//   "parameters": {
71193	//     "project": {
71194	//       "description": "Project ID for this request.",
71195	//       "location": "path",
71196	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
71197	//       "required": true,
71198	//       "type": "string"
71199	//     },
71200	//     "requestId": {
71201	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
71202	//       "location": "query",
71203	//       "type": "string"
71204	//     }
71205	//   },
71206	//   "path": "{project}/global/httpHealthChecks",
71207	//   "request": {
71208	//     "$ref": "HttpHealthCheck"
71209	//   },
71210	//   "response": {
71211	//     "$ref": "Operation"
71212	//   },
71213	//   "scopes": [
71214	//     "https://www.googleapis.com/auth/cloud-platform",
71215	//     "https://www.googleapis.com/auth/compute"
71216	//   ]
71217	// }
71218
71219}
71220
71221// method id "compute.httpHealthChecks.list":
71222
71223type HttpHealthChecksListCall struct {
71224	s            *Service
71225	project      string
71226	urlParams_   gensupport.URLParams
71227	ifNoneMatch_ string
71228	ctx_         context.Context
71229	header_      http.Header
71230}
71231
71232// List: Retrieves the list of HttpHealthCheck resources available to
71233// the specified project. (== suppress_warning http-rest-shadowed ==)
71234// For details, see https://cloud.google.com/compute/docs/reference/latest/httpHealthChecks/list
71235func (r *HttpHealthChecksService) List(project string) *HttpHealthChecksListCall {
71236	c := &HttpHealthChecksListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
71237	c.project = project
71238	return c
71239}
71240
71241// Filter sets the optional parameter "filter": A filter expression that
71242// filters resources listed in the response. The expression must specify
71243// the field name, a comparison operator, and the value that you want to
71244// use for filtering. The value must be a string, a number, or a
71245// boolean. The comparison operator must be either =, !=, >, or <.
71246//
71247// For example, if you are filtering Compute Engine instances, you can
71248// exclude instances named example-instance by specifying name !=
71249// example-instance.
71250//
71251// You can also filter nested fields. For example, you could specify
71252// scheduling.automaticRestart = false to include instances only if they
71253// are not scheduled for automatic restarts. You can use filtering on
71254// nested fields to filter based on resource labels.
71255//
71256// To filter on multiple expressions, provide each separate expression
71257// within parentheses. For example, (scheduling.automaticRestart = true)
71258// (cpuPlatform = "Intel Skylake"). By default, each expression is an
71259// AND expression. However, you can include AND and OR expressions
71260// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
71261// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
71262// true).
71263func (c *HttpHealthChecksListCall) Filter(filter string) *HttpHealthChecksListCall {
71264	c.urlParams_.Set("filter", filter)
71265	return c
71266}
71267
71268// MaxResults sets the optional parameter "maxResults": The maximum
71269// number of results per page that should be returned. If the number of
71270// available results is larger than maxResults, Compute Engine returns a
71271// nextPageToken that can be used to get the next page of results in
71272// subsequent list requests. Acceptable values are 0 to 500, inclusive.
71273// (Default: 500)
71274func (c *HttpHealthChecksListCall) MaxResults(maxResults int64) *HttpHealthChecksListCall {
71275	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
71276	return c
71277}
71278
71279// OrderBy sets the optional parameter "orderBy": Sorts list results by
71280// a certain order. By default, results are returned in alphanumerical
71281// order based on the resource name.
71282//
71283// You can also sort results in descending order based on the creation
71284// timestamp using orderBy="creationTimestamp desc". This sorts results
71285// based on the creationTimestamp field in reverse chronological order
71286// (newest result first). Use this to sort resources like operations so
71287// that the newest operation is returned first.
71288//
71289// Currently, only sorting by name or creationTimestamp desc is
71290// supported.
71291func (c *HttpHealthChecksListCall) OrderBy(orderBy string) *HttpHealthChecksListCall {
71292	c.urlParams_.Set("orderBy", orderBy)
71293	return c
71294}
71295
71296// PageToken sets the optional parameter "pageToken": Specifies a page
71297// token to use. Set pageToken to the nextPageToken returned by a
71298// previous list request to get the next page of results.
71299func (c *HttpHealthChecksListCall) PageToken(pageToken string) *HttpHealthChecksListCall {
71300	c.urlParams_.Set("pageToken", pageToken)
71301	return c
71302}
71303
71304// Fields allows partial responses to be retrieved. See
71305// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
71306// for more information.
71307func (c *HttpHealthChecksListCall) Fields(s ...googleapi.Field) *HttpHealthChecksListCall {
71308	c.urlParams_.Set("fields", googleapi.CombineFields(s))
71309	return c
71310}
71311
71312// IfNoneMatch sets the optional parameter which makes the operation
71313// fail if the object's ETag matches the given value. This is useful for
71314// getting updates only after the object has changed since the last
71315// request. Use googleapi.IsNotModified to check whether the response
71316// error from Do is the result of In-None-Match.
71317func (c *HttpHealthChecksListCall) IfNoneMatch(entityTag string) *HttpHealthChecksListCall {
71318	c.ifNoneMatch_ = entityTag
71319	return c
71320}
71321
71322// Context sets the context to be used in this call's Do method. Any
71323// pending HTTP request will be aborted if the provided context is
71324// canceled.
71325func (c *HttpHealthChecksListCall) Context(ctx context.Context) *HttpHealthChecksListCall {
71326	c.ctx_ = ctx
71327	return c
71328}
71329
71330// Header returns an http.Header that can be modified by the caller to
71331// add HTTP headers to the request.
71332func (c *HttpHealthChecksListCall) Header() http.Header {
71333	if c.header_ == nil {
71334		c.header_ = make(http.Header)
71335	}
71336	return c.header_
71337}
71338
71339func (c *HttpHealthChecksListCall) doRequest(alt string) (*http.Response, error) {
71340	reqHeaders := make(http.Header)
71341	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
71342	for k, v := range c.header_ {
71343		reqHeaders[k] = v
71344	}
71345	reqHeaders.Set("User-Agent", c.s.userAgent())
71346	if c.ifNoneMatch_ != "" {
71347		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
71348	}
71349	var body io.Reader = nil
71350	c.urlParams_.Set("alt", alt)
71351	c.urlParams_.Set("prettyPrint", "false")
71352	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/httpHealthChecks")
71353	urls += "?" + c.urlParams_.Encode()
71354	req, err := http.NewRequest("GET", urls, body)
71355	if err != nil {
71356		return nil, err
71357	}
71358	req.Header = reqHeaders
71359	googleapi.Expand(req.URL, map[string]string{
71360		"project": c.project,
71361	})
71362	return gensupport.SendRequest(c.ctx_, c.s.client, req)
71363}
71364
71365// Do executes the "compute.httpHealthChecks.list" call.
71366// Exactly one of *HttpHealthCheckList or error will be non-nil. Any
71367// non-2xx status code is an error. Response headers are in either
71368// *HttpHealthCheckList.ServerResponse.Header or (if a response was
71369// returned at all) in error.(*googleapi.Error).Header. Use
71370// googleapi.IsNotModified to check whether the returned error was
71371// because http.StatusNotModified was returned.
71372func (c *HttpHealthChecksListCall) Do(opts ...googleapi.CallOption) (*HttpHealthCheckList, error) {
71373	gensupport.SetOptions(c.urlParams_, opts...)
71374	res, err := c.doRequest("json")
71375	if res != nil && res.StatusCode == http.StatusNotModified {
71376		if res.Body != nil {
71377			res.Body.Close()
71378		}
71379		return nil, &googleapi.Error{
71380			Code:   res.StatusCode,
71381			Header: res.Header,
71382		}
71383	}
71384	if err != nil {
71385		return nil, err
71386	}
71387	defer googleapi.CloseBody(res)
71388	if err := googleapi.CheckResponse(res); err != nil {
71389		return nil, err
71390	}
71391	ret := &HttpHealthCheckList{
71392		ServerResponse: googleapi.ServerResponse{
71393			Header:         res.Header,
71394			HTTPStatusCode: res.StatusCode,
71395		},
71396	}
71397	target := &ret
71398	if err := gensupport.DecodeResponse(target, res); err != nil {
71399		return nil, err
71400	}
71401	return ret, nil
71402	// {
71403	//   "description": "Retrieves the list of HttpHealthCheck resources available to the specified project. (== suppress_warning http-rest-shadowed ==)",
71404	//   "httpMethod": "GET",
71405	//   "id": "compute.httpHealthChecks.list",
71406	//   "parameterOrder": [
71407	//     "project"
71408	//   ],
71409	//   "parameters": {
71410	//     "filter": {
71411	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
71412	//       "location": "query",
71413	//       "type": "string"
71414	//     },
71415	//     "maxResults": {
71416	//       "default": "500",
71417	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
71418	//       "format": "uint32",
71419	//       "location": "query",
71420	//       "minimum": "0",
71421	//       "type": "integer"
71422	//     },
71423	//     "orderBy": {
71424	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
71425	//       "location": "query",
71426	//       "type": "string"
71427	//     },
71428	//     "pageToken": {
71429	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
71430	//       "location": "query",
71431	//       "type": "string"
71432	//     },
71433	//     "project": {
71434	//       "description": "Project ID for this request.",
71435	//       "location": "path",
71436	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
71437	//       "required": true,
71438	//       "type": "string"
71439	//     }
71440	//   },
71441	//   "path": "{project}/global/httpHealthChecks",
71442	//   "response": {
71443	//     "$ref": "HttpHealthCheckList"
71444	//   },
71445	//   "scopes": [
71446	//     "https://www.googleapis.com/auth/cloud-platform",
71447	//     "https://www.googleapis.com/auth/compute",
71448	//     "https://www.googleapis.com/auth/compute.readonly"
71449	//   ]
71450	// }
71451
71452}
71453
71454// Pages invokes f for each page of results.
71455// A non-nil error returned from f will halt the iteration.
71456// The provided context supersedes any context provided to the Context method.
71457func (c *HttpHealthChecksListCall) Pages(ctx context.Context, f func(*HttpHealthCheckList) error) error {
71458	c.ctx_ = ctx
71459	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
71460	for {
71461		x, err := c.Do()
71462		if err != nil {
71463			return err
71464		}
71465		if err := f(x); err != nil {
71466			return err
71467		}
71468		if x.NextPageToken == "" {
71469			return nil
71470		}
71471		c.PageToken(x.NextPageToken)
71472	}
71473}
71474
71475// method id "compute.httpHealthChecks.patch":
71476
71477type HttpHealthChecksPatchCall struct {
71478	s               *Service
71479	project         string
71480	httpHealthCheck string
71481	httphealthcheck *HttpHealthCheck
71482	urlParams_      gensupport.URLParams
71483	ctx_            context.Context
71484	header_         http.Header
71485}
71486
71487// Patch: Updates a HttpHealthCheck resource in the specified project
71488// using the data included in the request. This method supports PATCH
71489// semantics and uses the JSON merge patch format and processing rules.
71490// (== suppress_warning http-rest-shadowed ==)
71491// For details, see https://cloud.google.com/compute/docs/reference/latest/httpHealthChecks/patch
71492func (r *HttpHealthChecksService) Patch(project string, httpHealthCheck string, httphealthcheck *HttpHealthCheck) *HttpHealthChecksPatchCall {
71493	c := &HttpHealthChecksPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
71494	c.project = project
71495	c.httpHealthCheck = httpHealthCheck
71496	c.httphealthcheck = httphealthcheck
71497	return c
71498}
71499
71500// RequestId sets the optional parameter "requestId": An optional
71501// request ID to identify requests. Specify a unique request ID so that
71502// if you must retry your request, the server will know to ignore the
71503// request if it has already been completed.
71504//
71505// For example, consider a situation where you make an initial request
71506// and the request times out. If you make the request again with the
71507// same request ID, the server can check if original operation with the
71508// same request ID was received, and if so, will ignore the second
71509// request. This prevents clients from accidentally creating duplicate
71510// commitments.
71511//
71512// The request ID must be a valid UUID with the exception that zero UUID
71513// is not supported (00000000-0000-0000-0000-000000000000).
71514func (c *HttpHealthChecksPatchCall) RequestId(requestId string) *HttpHealthChecksPatchCall {
71515	c.urlParams_.Set("requestId", requestId)
71516	return c
71517}
71518
71519// Fields allows partial responses to be retrieved. See
71520// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
71521// for more information.
71522func (c *HttpHealthChecksPatchCall) Fields(s ...googleapi.Field) *HttpHealthChecksPatchCall {
71523	c.urlParams_.Set("fields", googleapi.CombineFields(s))
71524	return c
71525}
71526
71527// Context sets the context to be used in this call's Do method. Any
71528// pending HTTP request will be aborted if the provided context is
71529// canceled.
71530func (c *HttpHealthChecksPatchCall) Context(ctx context.Context) *HttpHealthChecksPatchCall {
71531	c.ctx_ = ctx
71532	return c
71533}
71534
71535// Header returns an http.Header that can be modified by the caller to
71536// add HTTP headers to the request.
71537func (c *HttpHealthChecksPatchCall) Header() http.Header {
71538	if c.header_ == nil {
71539		c.header_ = make(http.Header)
71540	}
71541	return c.header_
71542}
71543
71544func (c *HttpHealthChecksPatchCall) doRequest(alt string) (*http.Response, error) {
71545	reqHeaders := make(http.Header)
71546	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
71547	for k, v := range c.header_ {
71548		reqHeaders[k] = v
71549	}
71550	reqHeaders.Set("User-Agent", c.s.userAgent())
71551	var body io.Reader = nil
71552	body, err := googleapi.WithoutDataWrapper.JSONReader(c.httphealthcheck)
71553	if err != nil {
71554		return nil, err
71555	}
71556	reqHeaders.Set("Content-Type", "application/json")
71557	c.urlParams_.Set("alt", alt)
71558	c.urlParams_.Set("prettyPrint", "false")
71559	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/httpHealthChecks/{httpHealthCheck}")
71560	urls += "?" + c.urlParams_.Encode()
71561	req, err := http.NewRequest("PATCH", urls, body)
71562	if err != nil {
71563		return nil, err
71564	}
71565	req.Header = reqHeaders
71566	googleapi.Expand(req.URL, map[string]string{
71567		"project":         c.project,
71568		"httpHealthCheck": c.httpHealthCheck,
71569	})
71570	return gensupport.SendRequest(c.ctx_, c.s.client, req)
71571}
71572
71573// Do executes the "compute.httpHealthChecks.patch" call.
71574// Exactly one of *Operation or error will be non-nil. Any non-2xx
71575// status code is an error. Response headers are in either
71576// *Operation.ServerResponse.Header or (if a response was returned at
71577// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
71578// to check whether the returned error was because
71579// http.StatusNotModified was returned.
71580func (c *HttpHealthChecksPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
71581	gensupport.SetOptions(c.urlParams_, opts...)
71582	res, err := c.doRequest("json")
71583	if res != nil && res.StatusCode == http.StatusNotModified {
71584		if res.Body != nil {
71585			res.Body.Close()
71586		}
71587		return nil, &googleapi.Error{
71588			Code:   res.StatusCode,
71589			Header: res.Header,
71590		}
71591	}
71592	if err != nil {
71593		return nil, err
71594	}
71595	defer googleapi.CloseBody(res)
71596	if err := googleapi.CheckResponse(res); err != nil {
71597		return nil, err
71598	}
71599	ret := &Operation{
71600		ServerResponse: googleapi.ServerResponse{
71601			Header:         res.Header,
71602			HTTPStatusCode: res.StatusCode,
71603		},
71604	}
71605	target := &ret
71606	if err := gensupport.DecodeResponse(target, res); err != nil {
71607		return nil, err
71608	}
71609	return ret, nil
71610	// {
71611	//   "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. (== suppress_warning http-rest-shadowed ==)",
71612	//   "httpMethod": "PATCH",
71613	//   "id": "compute.httpHealthChecks.patch",
71614	//   "parameterOrder": [
71615	//     "project",
71616	//     "httpHealthCheck"
71617	//   ],
71618	//   "parameters": {
71619	//     "httpHealthCheck": {
71620	//       "description": "Name of the HttpHealthCheck resource to patch.",
71621	//       "location": "path",
71622	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
71623	//       "required": true,
71624	//       "type": "string"
71625	//     },
71626	//     "project": {
71627	//       "description": "Project ID for this request.",
71628	//       "location": "path",
71629	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
71630	//       "required": true,
71631	//       "type": "string"
71632	//     },
71633	//     "requestId": {
71634	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
71635	//       "location": "query",
71636	//       "type": "string"
71637	//     }
71638	//   },
71639	//   "path": "{project}/global/httpHealthChecks/{httpHealthCheck}",
71640	//   "request": {
71641	//     "$ref": "HttpHealthCheck"
71642	//   },
71643	//   "response": {
71644	//     "$ref": "Operation"
71645	//   },
71646	//   "scopes": [
71647	//     "https://www.googleapis.com/auth/cloud-platform",
71648	//     "https://www.googleapis.com/auth/compute"
71649	//   ]
71650	// }
71651
71652}
71653
71654// method id "compute.httpHealthChecks.testIamPermissions":
71655
71656type HttpHealthChecksTestIamPermissionsCall struct {
71657	s                      *Service
71658	project                string
71659	resource               string
71660	testpermissionsrequest *TestPermissionsRequest
71661	urlParams_             gensupport.URLParams
71662	ctx_                   context.Context
71663	header_                http.Header
71664}
71665
71666// TestIamPermissions: Returns permissions that a caller has on the
71667// specified resource. (== suppress_warning http-rest-shadowed ==)
71668func (r *HttpHealthChecksService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *HttpHealthChecksTestIamPermissionsCall {
71669	c := &HttpHealthChecksTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
71670	c.project = project
71671	c.resource = resource
71672	c.testpermissionsrequest = testpermissionsrequest
71673	return c
71674}
71675
71676// Fields allows partial responses to be retrieved. See
71677// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
71678// for more information.
71679func (c *HttpHealthChecksTestIamPermissionsCall) Fields(s ...googleapi.Field) *HttpHealthChecksTestIamPermissionsCall {
71680	c.urlParams_.Set("fields", googleapi.CombineFields(s))
71681	return c
71682}
71683
71684// Context sets the context to be used in this call's Do method. Any
71685// pending HTTP request will be aborted if the provided context is
71686// canceled.
71687func (c *HttpHealthChecksTestIamPermissionsCall) Context(ctx context.Context) *HttpHealthChecksTestIamPermissionsCall {
71688	c.ctx_ = ctx
71689	return c
71690}
71691
71692// Header returns an http.Header that can be modified by the caller to
71693// add HTTP headers to the request.
71694func (c *HttpHealthChecksTestIamPermissionsCall) Header() http.Header {
71695	if c.header_ == nil {
71696		c.header_ = make(http.Header)
71697	}
71698	return c.header_
71699}
71700
71701func (c *HttpHealthChecksTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
71702	reqHeaders := make(http.Header)
71703	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
71704	for k, v := range c.header_ {
71705		reqHeaders[k] = v
71706	}
71707	reqHeaders.Set("User-Agent", c.s.userAgent())
71708	var body io.Reader = nil
71709	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
71710	if err != nil {
71711		return nil, err
71712	}
71713	reqHeaders.Set("Content-Type", "application/json")
71714	c.urlParams_.Set("alt", alt)
71715	c.urlParams_.Set("prettyPrint", "false")
71716	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/httpHealthChecks/{resource}/testIamPermissions")
71717	urls += "?" + c.urlParams_.Encode()
71718	req, err := http.NewRequest("POST", urls, body)
71719	if err != nil {
71720		return nil, err
71721	}
71722	req.Header = reqHeaders
71723	googleapi.Expand(req.URL, map[string]string{
71724		"project":  c.project,
71725		"resource": c.resource,
71726	})
71727	return gensupport.SendRequest(c.ctx_, c.s.client, req)
71728}
71729
71730// Do executes the "compute.httpHealthChecks.testIamPermissions" call.
71731// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
71732// non-2xx status code is an error. Response headers are in either
71733// *TestPermissionsResponse.ServerResponse.Header or (if a response was
71734// returned at all) in error.(*googleapi.Error).Header. Use
71735// googleapi.IsNotModified to check whether the returned error was
71736// because http.StatusNotModified was returned.
71737func (c *HttpHealthChecksTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
71738	gensupport.SetOptions(c.urlParams_, opts...)
71739	res, err := c.doRequest("json")
71740	if res != nil && res.StatusCode == http.StatusNotModified {
71741		if res.Body != nil {
71742			res.Body.Close()
71743		}
71744		return nil, &googleapi.Error{
71745			Code:   res.StatusCode,
71746			Header: res.Header,
71747		}
71748	}
71749	if err != nil {
71750		return nil, err
71751	}
71752	defer googleapi.CloseBody(res)
71753	if err := googleapi.CheckResponse(res); err != nil {
71754		return nil, err
71755	}
71756	ret := &TestPermissionsResponse{
71757		ServerResponse: googleapi.ServerResponse{
71758			Header:         res.Header,
71759			HTTPStatusCode: res.StatusCode,
71760		},
71761	}
71762	target := &ret
71763	if err := gensupport.DecodeResponse(target, res); err != nil {
71764		return nil, err
71765	}
71766	return ret, nil
71767	// {
71768	//   "description": "Returns permissions that a caller has on the specified resource. (== suppress_warning http-rest-shadowed ==)",
71769	//   "httpMethod": "POST",
71770	//   "id": "compute.httpHealthChecks.testIamPermissions",
71771	//   "parameterOrder": [
71772	//     "project",
71773	//     "resource"
71774	//   ],
71775	//   "parameters": {
71776	//     "project": {
71777	//       "description": "Project ID for this request.",
71778	//       "location": "path",
71779	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
71780	//       "required": true,
71781	//       "type": "string"
71782	//     },
71783	//     "resource": {
71784	//       "description": "Name or id of the resource for this request.",
71785	//       "location": "path",
71786	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
71787	//       "required": true,
71788	//       "type": "string"
71789	//     }
71790	//   },
71791	//   "path": "{project}/global/httpHealthChecks/{resource}/testIamPermissions",
71792	//   "request": {
71793	//     "$ref": "TestPermissionsRequest"
71794	//   },
71795	//   "response": {
71796	//     "$ref": "TestPermissionsResponse"
71797	//   },
71798	//   "scopes": [
71799	//     "https://www.googleapis.com/auth/cloud-platform",
71800	//     "https://www.googleapis.com/auth/compute",
71801	//     "https://www.googleapis.com/auth/compute.readonly"
71802	//   ]
71803	// }
71804
71805}
71806
71807// method id "compute.httpHealthChecks.update":
71808
71809type HttpHealthChecksUpdateCall struct {
71810	s               *Service
71811	project         string
71812	httpHealthCheck string
71813	httphealthcheck *HttpHealthCheck
71814	urlParams_      gensupport.URLParams
71815	ctx_            context.Context
71816	header_         http.Header
71817}
71818
71819// Update: Updates a HttpHealthCheck resource in the specified project
71820// using the data included in the request. (== suppress_warning
71821// http-rest-shadowed ==)
71822// For details, see https://cloud.google.com/compute/docs/reference/latest/httpHealthChecks/update
71823func (r *HttpHealthChecksService) Update(project string, httpHealthCheck string, httphealthcheck *HttpHealthCheck) *HttpHealthChecksUpdateCall {
71824	c := &HttpHealthChecksUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
71825	c.project = project
71826	c.httpHealthCheck = httpHealthCheck
71827	c.httphealthcheck = httphealthcheck
71828	return c
71829}
71830
71831// RequestId sets the optional parameter "requestId": An optional
71832// request ID to identify requests. Specify a unique request ID so that
71833// if you must retry your request, the server will know to ignore the
71834// request if it has already been completed.
71835//
71836// For example, consider a situation where you make an initial request
71837// and the request times out. If you make the request again with the
71838// same request ID, the server can check if original operation with the
71839// same request ID was received, and if so, will ignore the second
71840// request. This prevents clients from accidentally creating duplicate
71841// commitments.
71842//
71843// The request ID must be a valid UUID with the exception that zero UUID
71844// is not supported (00000000-0000-0000-0000-000000000000).
71845func (c *HttpHealthChecksUpdateCall) RequestId(requestId string) *HttpHealthChecksUpdateCall {
71846	c.urlParams_.Set("requestId", requestId)
71847	return c
71848}
71849
71850// Fields allows partial responses to be retrieved. See
71851// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
71852// for more information.
71853func (c *HttpHealthChecksUpdateCall) Fields(s ...googleapi.Field) *HttpHealthChecksUpdateCall {
71854	c.urlParams_.Set("fields", googleapi.CombineFields(s))
71855	return c
71856}
71857
71858// Context sets the context to be used in this call's Do method. Any
71859// pending HTTP request will be aborted if the provided context is
71860// canceled.
71861func (c *HttpHealthChecksUpdateCall) Context(ctx context.Context) *HttpHealthChecksUpdateCall {
71862	c.ctx_ = ctx
71863	return c
71864}
71865
71866// Header returns an http.Header that can be modified by the caller to
71867// add HTTP headers to the request.
71868func (c *HttpHealthChecksUpdateCall) Header() http.Header {
71869	if c.header_ == nil {
71870		c.header_ = make(http.Header)
71871	}
71872	return c.header_
71873}
71874
71875func (c *HttpHealthChecksUpdateCall) doRequest(alt string) (*http.Response, error) {
71876	reqHeaders := make(http.Header)
71877	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
71878	for k, v := range c.header_ {
71879		reqHeaders[k] = v
71880	}
71881	reqHeaders.Set("User-Agent", c.s.userAgent())
71882	var body io.Reader = nil
71883	body, err := googleapi.WithoutDataWrapper.JSONReader(c.httphealthcheck)
71884	if err != nil {
71885		return nil, err
71886	}
71887	reqHeaders.Set("Content-Type", "application/json")
71888	c.urlParams_.Set("alt", alt)
71889	c.urlParams_.Set("prettyPrint", "false")
71890	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/httpHealthChecks/{httpHealthCheck}")
71891	urls += "?" + c.urlParams_.Encode()
71892	req, err := http.NewRequest("PUT", urls, body)
71893	if err != nil {
71894		return nil, err
71895	}
71896	req.Header = reqHeaders
71897	googleapi.Expand(req.URL, map[string]string{
71898		"project":         c.project,
71899		"httpHealthCheck": c.httpHealthCheck,
71900	})
71901	return gensupport.SendRequest(c.ctx_, c.s.client, req)
71902}
71903
71904// Do executes the "compute.httpHealthChecks.update" call.
71905// Exactly one of *Operation or error will be non-nil. Any non-2xx
71906// status code is an error. Response headers are in either
71907// *Operation.ServerResponse.Header or (if a response was returned at
71908// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
71909// to check whether the returned error was because
71910// http.StatusNotModified was returned.
71911func (c *HttpHealthChecksUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
71912	gensupport.SetOptions(c.urlParams_, opts...)
71913	res, err := c.doRequest("json")
71914	if res != nil && res.StatusCode == http.StatusNotModified {
71915		if res.Body != nil {
71916			res.Body.Close()
71917		}
71918		return nil, &googleapi.Error{
71919			Code:   res.StatusCode,
71920			Header: res.Header,
71921		}
71922	}
71923	if err != nil {
71924		return nil, err
71925	}
71926	defer googleapi.CloseBody(res)
71927	if err := googleapi.CheckResponse(res); err != nil {
71928		return nil, err
71929	}
71930	ret := &Operation{
71931		ServerResponse: googleapi.ServerResponse{
71932			Header:         res.Header,
71933			HTTPStatusCode: res.StatusCode,
71934		},
71935	}
71936	target := &ret
71937	if err := gensupport.DecodeResponse(target, res); err != nil {
71938		return nil, err
71939	}
71940	return ret, nil
71941	// {
71942	//   "description": "Updates a HttpHealthCheck resource in the specified project using the data included in the request. (== suppress_warning http-rest-shadowed ==)",
71943	//   "httpMethod": "PUT",
71944	//   "id": "compute.httpHealthChecks.update",
71945	//   "parameterOrder": [
71946	//     "project",
71947	//     "httpHealthCheck"
71948	//   ],
71949	//   "parameters": {
71950	//     "httpHealthCheck": {
71951	//       "description": "Name of the HttpHealthCheck resource to update.",
71952	//       "location": "path",
71953	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
71954	//       "required": true,
71955	//       "type": "string"
71956	//     },
71957	//     "project": {
71958	//       "description": "Project ID for this request.",
71959	//       "location": "path",
71960	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
71961	//       "required": true,
71962	//       "type": "string"
71963	//     },
71964	//     "requestId": {
71965	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
71966	//       "location": "query",
71967	//       "type": "string"
71968	//     }
71969	//   },
71970	//   "path": "{project}/global/httpHealthChecks/{httpHealthCheck}",
71971	//   "request": {
71972	//     "$ref": "HttpHealthCheck"
71973	//   },
71974	//   "response": {
71975	//     "$ref": "Operation"
71976	//   },
71977	//   "scopes": [
71978	//     "https://www.googleapis.com/auth/cloud-platform",
71979	//     "https://www.googleapis.com/auth/compute"
71980	//   ]
71981	// }
71982
71983}
71984
71985// method id "compute.httpsHealthChecks.delete":
71986
71987type HttpsHealthChecksDeleteCall struct {
71988	s                *Service
71989	project          string
71990	httpsHealthCheck string
71991	urlParams_       gensupport.URLParams
71992	ctx_             context.Context
71993	header_          http.Header
71994}
71995
71996// Delete: Deletes the specified HttpsHealthCheck resource. (==
71997// suppress_warning http-rest-shadowed ==)
71998func (r *HttpsHealthChecksService) Delete(project string, httpsHealthCheck string) *HttpsHealthChecksDeleteCall {
71999	c := &HttpsHealthChecksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
72000	c.project = project
72001	c.httpsHealthCheck = httpsHealthCheck
72002	return c
72003}
72004
72005// RequestId sets the optional parameter "requestId": An optional
72006// request ID to identify requests. Specify a unique request ID so that
72007// if you must retry your request, the server will know to ignore the
72008// request if it has already been completed.
72009//
72010// For example, consider a situation where you make an initial request
72011// and the request times out. If you make the request again with the
72012// same request ID, the server can check if original operation with the
72013// same request ID was received, and if so, will ignore the second
72014// request. This prevents clients from accidentally creating duplicate
72015// commitments.
72016//
72017// The request ID must be a valid UUID with the exception that zero UUID
72018// is not supported (00000000-0000-0000-0000-000000000000).
72019func (c *HttpsHealthChecksDeleteCall) RequestId(requestId string) *HttpsHealthChecksDeleteCall {
72020	c.urlParams_.Set("requestId", requestId)
72021	return c
72022}
72023
72024// Fields allows partial responses to be retrieved. See
72025// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
72026// for more information.
72027func (c *HttpsHealthChecksDeleteCall) Fields(s ...googleapi.Field) *HttpsHealthChecksDeleteCall {
72028	c.urlParams_.Set("fields", googleapi.CombineFields(s))
72029	return c
72030}
72031
72032// Context sets the context to be used in this call's Do method. Any
72033// pending HTTP request will be aborted if the provided context is
72034// canceled.
72035func (c *HttpsHealthChecksDeleteCall) Context(ctx context.Context) *HttpsHealthChecksDeleteCall {
72036	c.ctx_ = ctx
72037	return c
72038}
72039
72040// Header returns an http.Header that can be modified by the caller to
72041// add HTTP headers to the request.
72042func (c *HttpsHealthChecksDeleteCall) Header() http.Header {
72043	if c.header_ == nil {
72044		c.header_ = make(http.Header)
72045	}
72046	return c.header_
72047}
72048
72049func (c *HttpsHealthChecksDeleteCall) doRequest(alt string) (*http.Response, error) {
72050	reqHeaders := make(http.Header)
72051	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
72052	for k, v := range c.header_ {
72053		reqHeaders[k] = v
72054	}
72055	reqHeaders.Set("User-Agent", c.s.userAgent())
72056	var body io.Reader = nil
72057	c.urlParams_.Set("alt", alt)
72058	c.urlParams_.Set("prettyPrint", "false")
72059	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/httpsHealthChecks/{httpsHealthCheck}")
72060	urls += "?" + c.urlParams_.Encode()
72061	req, err := http.NewRequest("DELETE", urls, body)
72062	if err != nil {
72063		return nil, err
72064	}
72065	req.Header = reqHeaders
72066	googleapi.Expand(req.URL, map[string]string{
72067		"project":          c.project,
72068		"httpsHealthCheck": c.httpsHealthCheck,
72069	})
72070	return gensupport.SendRequest(c.ctx_, c.s.client, req)
72071}
72072
72073// Do executes the "compute.httpsHealthChecks.delete" call.
72074// Exactly one of *Operation or error will be non-nil. Any non-2xx
72075// status code is an error. Response headers are in either
72076// *Operation.ServerResponse.Header or (if a response was returned at
72077// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
72078// to check whether the returned error was because
72079// http.StatusNotModified was returned.
72080func (c *HttpsHealthChecksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
72081	gensupport.SetOptions(c.urlParams_, opts...)
72082	res, err := c.doRequest("json")
72083	if res != nil && res.StatusCode == http.StatusNotModified {
72084		if res.Body != nil {
72085			res.Body.Close()
72086		}
72087		return nil, &googleapi.Error{
72088			Code:   res.StatusCode,
72089			Header: res.Header,
72090		}
72091	}
72092	if err != nil {
72093		return nil, err
72094	}
72095	defer googleapi.CloseBody(res)
72096	if err := googleapi.CheckResponse(res); err != nil {
72097		return nil, err
72098	}
72099	ret := &Operation{
72100		ServerResponse: googleapi.ServerResponse{
72101			Header:         res.Header,
72102			HTTPStatusCode: res.StatusCode,
72103		},
72104	}
72105	target := &ret
72106	if err := gensupport.DecodeResponse(target, res); err != nil {
72107		return nil, err
72108	}
72109	return ret, nil
72110	// {
72111	//   "description": "Deletes the specified HttpsHealthCheck resource. (== suppress_warning http-rest-shadowed ==)",
72112	//   "httpMethod": "DELETE",
72113	//   "id": "compute.httpsHealthChecks.delete",
72114	//   "parameterOrder": [
72115	//     "project",
72116	//     "httpsHealthCheck"
72117	//   ],
72118	//   "parameters": {
72119	//     "httpsHealthCheck": {
72120	//       "description": "Name of the HttpsHealthCheck resource to delete.",
72121	//       "location": "path",
72122	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
72123	//       "required": true,
72124	//       "type": "string"
72125	//     },
72126	//     "project": {
72127	//       "description": "Project ID for this request.",
72128	//       "location": "path",
72129	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
72130	//       "required": true,
72131	//       "type": "string"
72132	//     },
72133	//     "requestId": {
72134	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
72135	//       "location": "query",
72136	//       "type": "string"
72137	//     }
72138	//   },
72139	//   "path": "{project}/global/httpsHealthChecks/{httpsHealthCheck}",
72140	//   "response": {
72141	//     "$ref": "Operation"
72142	//   },
72143	//   "scopes": [
72144	//     "https://www.googleapis.com/auth/cloud-platform",
72145	//     "https://www.googleapis.com/auth/compute"
72146	//   ]
72147	// }
72148
72149}
72150
72151// method id "compute.httpsHealthChecks.get":
72152
72153type HttpsHealthChecksGetCall struct {
72154	s                *Service
72155	project          string
72156	httpsHealthCheck string
72157	urlParams_       gensupport.URLParams
72158	ifNoneMatch_     string
72159	ctx_             context.Context
72160	header_          http.Header
72161}
72162
72163// Get: Returns the specified HttpsHealthCheck resource. Gets a list of
72164// available HTTPS health checks by making a list() request. (==
72165// suppress_warning http-rest-shadowed ==)
72166func (r *HttpsHealthChecksService) Get(project string, httpsHealthCheck string) *HttpsHealthChecksGetCall {
72167	c := &HttpsHealthChecksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
72168	c.project = project
72169	c.httpsHealthCheck = httpsHealthCheck
72170	return c
72171}
72172
72173// Fields allows partial responses to be retrieved. See
72174// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
72175// for more information.
72176func (c *HttpsHealthChecksGetCall) Fields(s ...googleapi.Field) *HttpsHealthChecksGetCall {
72177	c.urlParams_.Set("fields", googleapi.CombineFields(s))
72178	return c
72179}
72180
72181// IfNoneMatch sets the optional parameter which makes the operation
72182// fail if the object's ETag matches the given value. This is useful for
72183// getting updates only after the object has changed since the last
72184// request. Use googleapi.IsNotModified to check whether the response
72185// error from Do is the result of In-None-Match.
72186func (c *HttpsHealthChecksGetCall) IfNoneMatch(entityTag string) *HttpsHealthChecksGetCall {
72187	c.ifNoneMatch_ = entityTag
72188	return c
72189}
72190
72191// Context sets the context to be used in this call's Do method. Any
72192// pending HTTP request will be aborted if the provided context is
72193// canceled.
72194func (c *HttpsHealthChecksGetCall) Context(ctx context.Context) *HttpsHealthChecksGetCall {
72195	c.ctx_ = ctx
72196	return c
72197}
72198
72199// Header returns an http.Header that can be modified by the caller to
72200// add HTTP headers to the request.
72201func (c *HttpsHealthChecksGetCall) Header() http.Header {
72202	if c.header_ == nil {
72203		c.header_ = make(http.Header)
72204	}
72205	return c.header_
72206}
72207
72208func (c *HttpsHealthChecksGetCall) doRequest(alt string) (*http.Response, error) {
72209	reqHeaders := make(http.Header)
72210	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
72211	for k, v := range c.header_ {
72212		reqHeaders[k] = v
72213	}
72214	reqHeaders.Set("User-Agent", c.s.userAgent())
72215	if c.ifNoneMatch_ != "" {
72216		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
72217	}
72218	var body io.Reader = nil
72219	c.urlParams_.Set("alt", alt)
72220	c.urlParams_.Set("prettyPrint", "false")
72221	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/httpsHealthChecks/{httpsHealthCheck}")
72222	urls += "?" + c.urlParams_.Encode()
72223	req, err := http.NewRequest("GET", urls, body)
72224	if err != nil {
72225		return nil, err
72226	}
72227	req.Header = reqHeaders
72228	googleapi.Expand(req.URL, map[string]string{
72229		"project":          c.project,
72230		"httpsHealthCheck": c.httpsHealthCheck,
72231	})
72232	return gensupport.SendRequest(c.ctx_, c.s.client, req)
72233}
72234
72235// Do executes the "compute.httpsHealthChecks.get" call.
72236// Exactly one of *HttpsHealthCheck or error will be non-nil. Any
72237// non-2xx status code is an error. Response headers are in either
72238// *HttpsHealthCheck.ServerResponse.Header or (if a response was
72239// returned at all) in error.(*googleapi.Error).Header. Use
72240// googleapi.IsNotModified to check whether the returned error was
72241// because http.StatusNotModified was returned.
72242func (c *HttpsHealthChecksGetCall) Do(opts ...googleapi.CallOption) (*HttpsHealthCheck, error) {
72243	gensupport.SetOptions(c.urlParams_, opts...)
72244	res, err := c.doRequest("json")
72245	if res != nil && res.StatusCode == http.StatusNotModified {
72246		if res.Body != nil {
72247			res.Body.Close()
72248		}
72249		return nil, &googleapi.Error{
72250			Code:   res.StatusCode,
72251			Header: res.Header,
72252		}
72253	}
72254	if err != nil {
72255		return nil, err
72256	}
72257	defer googleapi.CloseBody(res)
72258	if err := googleapi.CheckResponse(res); err != nil {
72259		return nil, err
72260	}
72261	ret := &HttpsHealthCheck{
72262		ServerResponse: googleapi.ServerResponse{
72263			Header:         res.Header,
72264			HTTPStatusCode: res.StatusCode,
72265		},
72266	}
72267	target := &ret
72268	if err := gensupport.DecodeResponse(target, res); err != nil {
72269		return nil, err
72270	}
72271	return ret, nil
72272	// {
72273	//   "description": "Returns the specified HttpsHealthCheck resource. Gets a list of available HTTPS health checks by making a list() request. (== suppress_warning http-rest-shadowed ==)",
72274	//   "httpMethod": "GET",
72275	//   "id": "compute.httpsHealthChecks.get",
72276	//   "parameterOrder": [
72277	//     "project",
72278	//     "httpsHealthCheck"
72279	//   ],
72280	//   "parameters": {
72281	//     "httpsHealthCheck": {
72282	//       "description": "Name of the HttpsHealthCheck resource to return.",
72283	//       "location": "path",
72284	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
72285	//       "required": true,
72286	//       "type": "string"
72287	//     },
72288	//     "project": {
72289	//       "description": "Project ID for this request.",
72290	//       "location": "path",
72291	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
72292	//       "required": true,
72293	//       "type": "string"
72294	//     }
72295	//   },
72296	//   "path": "{project}/global/httpsHealthChecks/{httpsHealthCheck}",
72297	//   "response": {
72298	//     "$ref": "HttpsHealthCheck"
72299	//   },
72300	//   "scopes": [
72301	//     "https://www.googleapis.com/auth/cloud-platform",
72302	//     "https://www.googleapis.com/auth/compute",
72303	//     "https://www.googleapis.com/auth/compute.readonly"
72304	//   ]
72305	// }
72306
72307}
72308
72309// method id "compute.httpsHealthChecks.insert":
72310
72311type HttpsHealthChecksInsertCall struct {
72312	s                *Service
72313	project          string
72314	httpshealthcheck *HttpsHealthCheck
72315	urlParams_       gensupport.URLParams
72316	ctx_             context.Context
72317	header_          http.Header
72318}
72319
72320// Insert: Creates a HttpsHealthCheck resource in the specified project
72321// using the data included in the request. (== suppress_warning
72322// http-rest-shadowed ==)
72323func (r *HttpsHealthChecksService) Insert(project string, httpshealthcheck *HttpsHealthCheck) *HttpsHealthChecksInsertCall {
72324	c := &HttpsHealthChecksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
72325	c.project = project
72326	c.httpshealthcheck = httpshealthcheck
72327	return c
72328}
72329
72330// RequestId sets the optional parameter "requestId": An optional
72331// request ID to identify requests. Specify a unique request ID so that
72332// if you must retry your request, the server will know to ignore the
72333// request if it has already been completed.
72334//
72335// For example, consider a situation where you make an initial request
72336// and the request times out. If you make the request again with the
72337// same request ID, the server can check if original operation with the
72338// same request ID was received, and if so, will ignore the second
72339// request. This prevents clients from accidentally creating duplicate
72340// commitments.
72341//
72342// The request ID must be a valid UUID with the exception that zero UUID
72343// is not supported (00000000-0000-0000-0000-000000000000).
72344func (c *HttpsHealthChecksInsertCall) RequestId(requestId string) *HttpsHealthChecksInsertCall {
72345	c.urlParams_.Set("requestId", requestId)
72346	return c
72347}
72348
72349// Fields allows partial responses to be retrieved. See
72350// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
72351// for more information.
72352func (c *HttpsHealthChecksInsertCall) Fields(s ...googleapi.Field) *HttpsHealthChecksInsertCall {
72353	c.urlParams_.Set("fields", googleapi.CombineFields(s))
72354	return c
72355}
72356
72357// Context sets the context to be used in this call's Do method. Any
72358// pending HTTP request will be aborted if the provided context is
72359// canceled.
72360func (c *HttpsHealthChecksInsertCall) Context(ctx context.Context) *HttpsHealthChecksInsertCall {
72361	c.ctx_ = ctx
72362	return c
72363}
72364
72365// Header returns an http.Header that can be modified by the caller to
72366// add HTTP headers to the request.
72367func (c *HttpsHealthChecksInsertCall) Header() http.Header {
72368	if c.header_ == nil {
72369		c.header_ = make(http.Header)
72370	}
72371	return c.header_
72372}
72373
72374func (c *HttpsHealthChecksInsertCall) doRequest(alt string) (*http.Response, error) {
72375	reqHeaders := make(http.Header)
72376	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
72377	for k, v := range c.header_ {
72378		reqHeaders[k] = v
72379	}
72380	reqHeaders.Set("User-Agent", c.s.userAgent())
72381	var body io.Reader = nil
72382	body, err := googleapi.WithoutDataWrapper.JSONReader(c.httpshealthcheck)
72383	if err != nil {
72384		return nil, err
72385	}
72386	reqHeaders.Set("Content-Type", "application/json")
72387	c.urlParams_.Set("alt", alt)
72388	c.urlParams_.Set("prettyPrint", "false")
72389	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/httpsHealthChecks")
72390	urls += "?" + c.urlParams_.Encode()
72391	req, err := http.NewRequest("POST", urls, body)
72392	if err != nil {
72393		return nil, err
72394	}
72395	req.Header = reqHeaders
72396	googleapi.Expand(req.URL, map[string]string{
72397		"project": c.project,
72398	})
72399	return gensupport.SendRequest(c.ctx_, c.s.client, req)
72400}
72401
72402// Do executes the "compute.httpsHealthChecks.insert" call.
72403// Exactly one of *Operation or error will be non-nil. Any non-2xx
72404// status code is an error. Response headers are in either
72405// *Operation.ServerResponse.Header or (if a response was returned at
72406// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
72407// to check whether the returned error was because
72408// http.StatusNotModified was returned.
72409func (c *HttpsHealthChecksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
72410	gensupport.SetOptions(c.urlParams_, opts...)
72411	res, err := c.doRequest("json")
72412	if res != nil && res.StatusCode == http.StatusNotModified {
72413		if res.Body != nil {
72414			res.Body.Close()
72415		}
72416		return nil, &googleapi.Error{
72417			Code:   res.StatusCode,
72418			Header: res.Header,
72419		}
72420	}
72421	if err != nil {
72422		return nil, err
72423	}
72424	defer googleapi.CloseBody(res)
72425	if err := googleapi.CheckResponse(res); err != nil {
72426		return nil, err
72427	}
72428	ret := &Operation{
72429		ServerResponse: googleapi.ServerResponse{
72430			Header:         res.Header,
72431			HTTPStatusCode: res.StatusCode,
72432		},
72433	}
72434	target := &ret
72435	if err := gensupport.DecodeResponse(target, res); err != nil {
72436		return nil, err
72437	}
72438	return ret, nil
72439	// {
72440	//   "description": "Creates a HttpsHealthCheck resource in the specified project using the data included in the request. (== suppress_warning http-rest-shadowed ==)",
72441	//   "httpMethod": "POST",
72442	//   "id": "compute.httpsHealthChecks.insert",
72443	//   "parameterOrder": [
72444	//     "project"
72445	//   ],
72446	//   "parameters": {
72447	//     "project": {
72448	//       "description": "Project ID for this request.",
72449	//       "location": "path",
72450	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
72451	//       "required": true,
72452	//       "type": "string"
72453	//     },
72454	//     "requestId": {
72455	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
72456	//       "location": "query",
72457	//       "type": "string"
72458	//     }
72459	//   },
72460	//   "path": "{project}/global/httpsHealthChecks",
72461	//   "request": {
72462	//     "$ref": "HttpsHealthCheck"
72463	//   },
72464	//   "response": {
72465	//     "$ref": "Operation"
72466	//   },
72467	//   "scopes": [
72468	//     "https://www.googleapis.com/auth/cloud-platform",
72469	//     "https://www.googleapis.com/auth/compute"
72470	//   ]
72471	// }
72472
72473}
72474
72475// method id "compute.httpsHealthChecks.list":
72476
72477type HttpsHealthChecksListCall struct {
72478	s            *Service
72479	project      string
72480	urlParams_   gensupport.URLParams
72481	ifNoneMatch_ string
72482	ctx_         context.Context
72483	header_      http.Header
72484}
72485
72486// List: Retrieves the list of HttpsHealthCheck resources available to
72487// the specified project. (== suppress_warning http-rest-shadowed ==)
72488func (r *HttpsHealthChecksService) List(project string) *HttpsHealthChecksListCall {
72489	c := &HttpsHealthChecksListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
72490	c.project = project
72491	return c
72492}
72493
72494// Filter sets the optional parameter "filter": A filter expression that
72495// filters resources listed in the response. The expression must specify
72496// the field name, a comparison operator, and the value that you want to
72497// use for filtering. The value must be a string, a number, or a
72498// boolean. The comparison operator must be either =, !=, >, or <.
72499//
72500// For example, if you are filtering Compute Engine instances, you can
72501// exclude instances named example-instance by specifying name !=
72502// example-instance.
72503//
72504// You can also filter nested fields. For example, you could specify
72505// scheduling.automaticRestart = false to include instances only if they
72506// are not scheduled for automatic restarts. You can use filtering on
72507// nested fields to filter based on resource labels.
72508//
72509// To filter on multiple expressions, provide each separate expression
72510// within parentheses. For example, (scheduling.automaticRestart = true)
72511// (cpuPlatform = "Intel Skylake"). By default, each expression is an
72512// AND expression. However, you can include AND and OR expressions
72513// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
72514// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
72515// true).
72516func (c *HttpsHealthChecksListCall) Filter(filter string) *HttpsHealthChecksListCall {
72517	c.urlParams_.Set("filter", filter)
72518	return c
72519}
72520
72521// MaxResults sets the optional parameter "maxResults": The maximum
72522// number of results per page that should be returned. If the number of
72523// available results is larger than maxResults, Compute Engine returns a
72524// nextPageToken that can be used to get the next page of results in
72525// subsequent list requests. Acceptable values are 0 to 500, inclusive.
72526// (Default: 500)
72527func (c *HttpsHealthChecksListCall) MaxResults(maxResults int64) *HttpsHealthChecksListCall {
72528	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
72529	return c
72530}
72531
72532// OrderBy sets the optional parameter "orderBy": Sorts list results by
72533// a certain order. By default, results are returned in alphanumerical
72534// order based on the resource name.
72535//
72536// You can also sort results in descending order based on the creation
72537// timestamp using orderBy="creationTimestamp desc". This sorts results
72538// based on the creationTimestamp field in reverse chronological order
72539// (newest result first). Use this to sort resources like operations so
72540// that the newest operation is returned first.
72541//
72542// Currently, only sorting by name or creationTimestamp desc is
72543// supported.
72544func (c *HttpsHealthChecksListCall) OrderBy(orderBy string) *HttpsHealthChecksListCall {
72545	c.urlParams_.Set("orderBy", orderBy)
72546	return c
72547}
72548
72549// PageToken sets the optional parameter "pageToken": Specifies a page
72550// token to use. Set pageToken to the nextPageToken returned by a
72551// previous list request to get the next page of results.
72552func (c *HttpsHealthChecksListCall) PageToken(pageToken string) *HttpsHealthChecksListCall {
72553	c.urlParams_.Set("pageToken", pageToken)
72554	return c
72555}
72556
72557// Fields allows partial responses to be retrieved. See
72558// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
72559// for more information.
72560func (c *HttpsHealthChecksListCall) Fields(s ...googleapi.Field) *HttpsHealthChecksListCall {
72561	c.urlParams_.Set("fields", googleapi.CombineFields(s))
72562	return c
72563}
72564
72565// IfNoneMatch sets the optional parameter which makes the operation
72566// fail if the object's ETag matches the given value. This is useful for
72567// getting updates only after the object has changed since the last
72568// request. Use googleapi.IsNotModified to check whether the response
72569// error from Do is the result of In-None-Match.
72570func (c *HttpsHealthChecksListCall) IfNoneMatch(entityTag string) *HttpsHealthChecksListCall {
72571	c.ifNoneMatch_ = entityTag
72572	return c
72573}
72574
72575// Context sets the context to be used in this call's Do method. Any
72576// pending HTTP request will be aborted if the provided context is
72577// canceled.
72578func (c *HttpsHealthChecksListCall) Context(ctx context.Context) *HttpsHealthChecksListCall {
72579	c.ctx_ = ctx
72580	return c
72581}
72582
72583// Header returns an http.Header that can be modified by the caller to
72584// add HTTP headers to the request.
72585func (c *HttpsHealthChecksListCall) Header() http.Header {
72586	if c.header_ == nil {
72587		c.header_ = make(http.Header)
72588	}
72589	return c.header_
72590}
72591
72592func (c *HttpsHealthChecksListCall) doRequest(alt string) (*http.Response, error) {
72593	reqHeaders := make(http.Header)
72594	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
72595	for k, v := range c.header_ {
72596		reqHeaders[k] = v
72597	}
72598	reqHeaders.Set("User-Agent", c.s.userAgent())
72599	if c.ifNoneMatch_ != "" {
72600		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
72601	}
72602	var body io.Reader = nil
72603	c.urlParams_.Set("alt", alt)
72604	c.urlParams_.Set("prettyPrint", "false")
72605	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/httpsHealthChecks")
72606	urls += "?" + c.urlParams_.Encode()
72607	req, err := http.NewRequest("GET", urls, body)
72608	if err != nil {
72609		return nil, err
72610	}
72611	req.Header = reqHeaders
72612	googleapi.Expand(req.URL, map[string]string{
72613		"project": c.project,
72614	})
72615	return gensupport.SendRequest(c.ctx_, c.s.client, req)
72616}
72617
72618// Do executes the "compute.httpsHealthChecks.list" call.
72619// Exactly one of *HttpsHealthCheckList or error will be non-nil. Any
72620// non-2xx status code is an error. Response headers are in either
72621// *HttpsHealthCheckList.ServerResponse.Header or (if a response was
72622// returned at all) in error.(*googleapi.Error).Header. Use
72623// googleapi.IsNotModified to check whether the returned error was
72624// because http.StatusNotModified was returned.
72625func (c *HttpsHealthChecksListCall) Do(opts ...googleapi.CallOption) (*HttpsHealthCheckList, error) {
72626	gensupport.SetOptions(c.urlParams_, opts...)
72627	res, err := c.doRequest("json")
72628	if res != nil && res.StatusCode == http.StatusNotModified {
72629		if res.Body != nil {
72630			res.Body.Close()
72631		}
72632		return nil, &googleapi.Error{
72633			Code:   res.StatusCode,
72634			Header: res.Header,
72635		}
72636	}
72637	if err != nil {
72638		return nil, err
72639	}
72640	defer googleapi.CloseBody(res)
72641	if err := googleapi.CheckResponse(res); err != nil {
72642		return nil, err
72643	}
72644	ret := &HttpsHealthCheckList{
72645		ServerResponse: googleapi.ServerResponse{
72646			Header:         res.Header,
72647			HTTPStatusCode: res.StatusCode,
72648		},
72649	}
72650	target := &ret
72651	if err := gensupport.DecodeResponse(target, res); err != nil {
72652		return nil, err
72653	}
72654	return ret, nil
72655	// {
72656	//   "description": "Retrieves the list of HttpsHealthCheck resources available to the specified project. (== suppress_warning http-rest-shadowed ==)",
72657	//   "httpMethod": "GET",
72658	//   "id": "compute.httpsHealthChecks.list",
72659	//   "parameterOrder": [
72660	//     "project"
72661	//   ],
72662	//   "parameters": {
72663	//     "filter": {
72664	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
72665	//       "location": "query",
72666	//       "type": "string"
72667	//     },
72668	//     "maxResults": {
72669	//       "default": "500",
72670	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
72671	//       "format": "uint32",
72672	//       "location": "query",
72673	//       "minimum": "0",
72674	//       "type": "integer"
72675	//     },
72676	//     "orderBy": {
72677	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
72678	//       "location": "query",
72679	//       "type": "string"
72680	//     },
72681	//     "pageToken": {
72682	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
72683	//       "location": "query",
72684	//       "type": "string"
72685	//     },
72686	//     "project": {
72687	//       "description": "Project ID for this request.",
72688	//       "location": "path",
72689	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
72690	//       "required": true,
72691	//       "type": "string"
72692	//     }
72693	//   },
72694	//   "path": "{project}/global/httpsHealthChecks",
72695	//   "response": {
72696	//     "$ref": "HttpsHealthCheckList"
72697	//   },
72698	//   "scopes": [
72699	//     "https://www.googleapis.com/auth/cloud-platform",
72700	//     "https://www.googleapis.com/auth/compute",
72701	//     "https://www.googleapis.com/auth/compute.readonly"
72702	//   ]
72703	// }
72704
72705}
72706
72707// Pages invokes f for each page of results.
72708// A non-nil error returned from f will halt the iteration.
72709// The provided context supersedes any context provided to the Context method.
72710func (c *HttpsHealthChecksListCall) Pages(ctx context.Context, f func(*HttpsHealthCheckList) error) error {
72711	c.ctx_ = ctx
72712	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
72713	for {
72714		x, err := c.Do()
72715		if err != nil {
72716			return err
72717		}
72718		if err := f(x); err != nil {
72719			return err
72720		}
72721		if x.NextPageToken == "" {
72722			return nil
72723		}
72724		c.PageToken(x.NextPageToken)
72725	}
72726}
72727
72728// method id "compute.httpsHealthChecks.patch":
72729
72730type HttpsHealthChecksPatchCall struct {
72731	s                *Service
72732	project          string
72733	httpsHealthCheck string
72734	httpshealthcheck *HttpsHealthCheck
72735	urlParams_       gensupport.URLParams
72736	ctx_             context.Context
72737	header_          http.Header
72738}
72739
72740// Patch: Updates a HttpsHealthCheck resource in the specified project
72741// using the data included in the request. This method supports PATCH
72742// semantics and uses the JSON merge patch format and processing rules.
72743// (== suppress_warning http-rest-shadowed ==)
72744func (r *HttpsHealthChecksService) Patch(project string, httpsHealthCheck string, httpshealthcheck *HttpsHealthCheck) *HttpsHealthChecksPatchCall {
72745	c := &HttpsHealthChecksPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
72746	c.project = project
72747	c.httpsHealthCheck = httpsHealthCheck
72748	c.httpshealthcheck = httpshealthcheck
72749	return c
72750}
72751
72752// RequestId sets the optional parameter "requestId": An optional
72753// request ID to identify requests. Specify a unique request ID so that
72754// if you must retry your request, the server will know to ignore the
72755// request if it has already been completed.
72756//
72757// For example, consider a situation where you make an initial request
72758// and the request times out. If you make the request again with the
72759// same request ID, the server can check if original operation with the
72760// same request ID was received, and if so, will ignore the second
72761// request. This prevents clients from accidentally creating duplicate
72762// commitments.
72763//
72764// The request ID must be a valid UUID with the exception that zero UUID
72765// is not supported (00000000-0000-0000-0000-000000000000).
72766func (c *HttpsHealthChecksPatchCall) RequestId(requestId string) *HttpsHealthChecksPatchCall {
72767	c.urlParams_.Set("requestId", requestId)
72768	return c
72769}
72770
72771// Fields allows partial responses to be retrieved. See
72772// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
72773// for more information.
72774func (c *HttpsHealthChecksPatchCall) Fields(s ...googleapi.Field) *HttpsHealthChecksPatchCall {
72775	c.urlParams_.Set("fields", googleapi.CombineFields(s))
72776	return c
72777}
72778
72779// Context sets the context to be used in this call's Do method. Any
72780// pending HTTP request will be aborted if the provided context is
72781// canceled.
72782func (c *HttpsHealthChecksPatchCall) Context(ctx context.Context) *HttpsHealthChecksPatchCall {
72783	c.ctx_ = ctx
72784	return c
72785}
72786
72787// Header returns an http.Header that can be modified by the caller to
72788// add HTTP headers to the request.
72789func (c *HttpsHealthChecksPatchCall) Header() http.Header {
72790	if c.header_ == nil {
72791		c.header_ = make(http.Header)
72792	}
72793	return c.header_
72794}
72795
72796func (c *HttpsHealthChecksPatchCall) doRequest(alt string) (*http.Response, error) {
72797	reqHeaders := make(http.Header)
72798	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
72799	for k, v := range c.header_ {
72800		reqHeaders[k] = v
72801	}
72802	reqHeaders.Set("User-Agent", c.s.userAgent())
72803	var body io.Reader = nil
72804	body, err := googleapi.WithoutDataWrapper.JSONReader(c.httpshealthcheck)
72805	if err != nil {
72806		return nil, err
72807	}
72808	reqHeaders.Set("Content-Type", "application/json")
72809	c.urlParams_.Set("alt", alt)
72810	c.urlParams_.Set("prettyPrint", "false")
72811	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/httpsHealthChecks/{httpsHealthCheck}")
72812	urls += "?" + c.urlParams_.Encode()
72813	req, err := http.NewRequest("PATCH", urls, body)
72814	if err != nil {
72815		return nil, err
72816	}
72817	req.Header = reqHeaders
72818	googleapi.Expand(req.URL, map[string]string{
72819		"project":          c.project,
72820		"httpsHealthCheck": c.httpsHealthCheck,
72821	})
72822	return gensupport.SendRequest(c.ctx_, c.s.client, req)
72823}
72824
72825// Do executes the "compute.httpsHealthChecks.patch" call.
72826// Exactly one of *Operation or error will be non-nil. Any non-2xx
72827// status code is an error. Response headers are in either
72828// *Operation.ServerResponse.Header or (if a response was returned at
72829// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
72830// to check whether the returned error was because
72831// http.StatusNotModified was returned.
72832func (c *HttpsHealthChecksPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
72833	gensupport.SetOptions(c.urlParams_, opts...)
72834	res, err := c.doRequest("json")
72835	if res != nil && res.StatusCode == http.StatusNotModified {
72836		if res.Body != nil {
72837			res.Body.Close()
72838		}
72839		return nil, &googleapi.Error{
72840			Code:   res.StatusCode,
72841			Header: res.Header,
72842		}
72843	}
72844	if err != nil {
72845		return nil, err
72846	}
72847	defer googleapi.CloseBody(res)
72848	if err := googleapi.CheckResponse(res); err != nil {
72849		return nil, err
72850	}
72851	ret := &Operation{
72852		ServerResponse: googleapi.ServerResponse{
72853			Header:         res.Header,
72854			HTTPStatusCode: res.StatusCode,
72855		},
72856	}
72857	target := &ret
72858	if err := gensupport.DecodeResponse(target, res); err != nil {
72859		return nil, err
72860	}
72861	return ret, nil
72862	// {
72863	//   "description": "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. (== suppress_warning http-rest-shadowed ==)",
72864	//   "httpMethod": "PATCH",
72865	//   "id": "compute.httpsHealthChecks.patch",
72866	//   "parameterOrder": [
72867	//     "project",
72868	//     "httpsHealthCheck"
72869	//   ],
72870	//   "parameters": {
72871	//     "httpsHealthCheck": {
72872	//       "description": "Name of the HttpsHealthCheck resource to patch.",
72873	//       "location": "path",
72874	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
72875	//       "required": true,
72876	//       "type": "string"
72877	//     },
72878	//     "project": {
72879	//       "description": "Project ID for this request.",
72880	//       "location": "path",
72881	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
72882	//       "required": true,
72883	//       "type": "string"
72884	//     },
72885	//     "requestId": {
72886	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
72887	//       "location": "query",
72888	//       "type": "string"
72889	//     }
72890	//   },
72891	//   "path": "{project}/global/httpsHealthChecks/{httpsHealthCheck}",
72892	//   "request": {
72893	//     "$ref": "HttpsHealthCheck"
72894	//   },
72895	//   "response": {
72896	//     "$ref": "Operation"
72897	//   },
72898	//   "scopes": [
72899	//     "https://www.googleapis.com/auth/cloud-platform",
72900	//     "https://www.googleapis.com/auth/compute"
72901	//   ]
72902	// }
72903
72904}
72905
72906// method id "compute.httpsHealthChecks.testIamPermissions":
72907
72908type HttpsHealthChecksTestIamPermissionsCall struct {
72909	s                      *Service
72910	project                string
72911	resource               string
72912	testpermissionsrequest *TestPermissionsRequest
72913	urlParams_             gensupport.URLParams
72914	ctx_                   context.Context
72915	header_                http.Header
72916}
72917
72918// TestIamPermissions: Returns permissions that a caller has on the
72919// specified resource. (== suppress_warning http-rest-shadowed ==)
72920func (r *HttpsHealthChecksService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *HttpsHealthChecksTestIamPermissionsCall {
72921	c := &HttpsHealthChecksTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
72922	c.project = project
72923	c.resource = resource
72924	c.testpermissionsrequest = testpermissionsrequest
72925	return c
72926}
72927
72928// Fields allows partial responses to be retrieved. See
72929// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
72930// for more information.
72931func (c *HttpsHealthChecksTestIamPermissionsCall) Fields(s ...googleapi.Field) *HttpsHealthChecksTestIamPermissionsCall {
72932	c.urlParams_.Set("fields", googleapi.CombineFields(s))
72933	return c
72934}
72935
72936// Context sets the context to be used in this call's Do method. Any
72937// pending HTTP request will be aborted if the provided context is
72938// canceled.
72939func (c *HttpsHealthChecksTestIamPermissionsCall) Context(ctx context.Context) *HttpsHealthChecksTestIamPermissionsCall {
72940	c.ctx_ = ctx
72941	return c
72942}
72943
72944// Header returns an http.Header that can be modified by the caller to
72945// add HTTP headers to the request.
72946func (c *HttpsHealthChecksTestIamPermissionsCall) Header() http.Header {
72947	if c.header_ == nil {
72948		c.header_ = make(http.Header)
72949	}
72950	return c.header_
72951}
72952
72953func (c *HttpsHealthChecksTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
72954	reqHeaders := make(http.Header)
72955	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
72956	for k, v := range c.header_ {
72957		reqHeaders[k] = v
72958	}
72959	reqHeaders.Set("User-Agent", c.s.userAgent())
72960	var body io.Reader = nil
72961	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
72962	if err != nil {
72963		return nil, err
72964	}
72965	reqHeaders.Set("Content-Type", "application/json")
72966	c.urlParams_.Set("alt", alt)
72967	c.urlParams_.Set("prettyPrint", "false")
72968	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/httpsHealthChecks/{resource}/testIamPermissions")
72969	urls += "?" + c.urlParams_.Encode()
72970	req, err := http.NewRequest("POST", urls, body)
72971	if err != nil {
72972		return nil, err
72973	}
72974	req.Header = reqHeaders
72975	googleapi.Expand(req.URL, map[string]string{
72976		"project":  c.project,
72977		"resource": c.resource,
72978	})
72979	return gensupport.SendRequest(c.ctx_, c.s.client, req)
72980}
72981
72982// Do executes the "compute.httpsHealthChecks.testIamPermissions" call.
72983// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
72984// non-2xx status code is an error. Response headers are in either
72985// *TestPermissionsResponse.ServerResponse.Header or (if a response was
72986// returned at all) in error.(*googleapi.Error).Header. Use
72987// googleapi.IsNotModified to check whether the returned error was
72988// because http.StatusNotModified was returned.
72989func (c *HttpsHealthChecksTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
72990	gensupport.SetOptions(c.urlParams_, opts...)
72991	res, err := c.doRequest("json")
72992	if res != nil && res.StatusCode == http.StatusNotModified {
72993		if res.Body != nil {
72994			res.Body.Close()
72995		}
72996		return nil, &googleapi.Error{
72997			Code:   res.StatusCode,
72998			Header: res.Header,
72999		}
73000	}
73001	if err != nil {
73002		return nil, err
73003	}
73004	defer googleapi.CloseBody(res)
73005	if err := googleapi.CheckResponse(res); err != nil {
73006		return nil, err
73007	}
73008	ret := &TestPermissionsResponse{
73009		ServerResponse: googleapi.ServerResponse{
73010			Header:         res.Header,
73011			HTTPStatusCode: res.StatusCode,
73012		},
73013	}
73014	target := &ret
73015	if err := gensupport.DecodeResponse(target, res); err != nil {
73016		return nil, err
73017	}
73018	return ret, nil
73019	// {
73020	//   "description": "Returns permissions that a caller has on the specified resource. (== suppress_warning http-rest-shadowed ==)",
73021	//   "httpMethod": "POST",
73022	//   "id": "compute.httpsHealthChecks.testIamPermissions",
73023	//   "parameterOrder": [
73024	//     "project",
73025	//     "resource"
73026	//   ],
73027	//   "parameters": {
73028	//     "project": {
73029	//       "description": "Project ID for this request.",
73030	//       "location": "path",
73031	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
73032	//       "required": true,
73033	//       "type": "string"
73034	//     },
73035	//     "resource": {
73036	//       "description": "Name or id of the resource for this request.",
73037	//       "location": "path",
73038	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
73039	//       "required": true,
73040	//       "type": "string"
73041	//     }
73042	//   },
73043	//   "path": "{project}/global/httpsHealthChecks/{resource}/testIamPermissions",
73044	//   "request": {
73045	//     "$ref": "TestPermissionsRequest"
73046	//   },
73047	//   "response": {
73048	//     "$ref": "TestPermissionsResponse"
73049	//   },
73050	//   "scopes": [
73051	//     "https://www.googleapis.com/auth/cloud-platform",
73052	//     "https://www.googleapis.com/auth/compute",
73053	//     "https://www.googleapis.com/auth/compute.readonly"
73054	//   ]
73055	// }
73056
73057}
73058
73059// method id "compute.httpsHealthChecks.update":
73060
73061type HttpsHealthChecksUpdateCall struct {
73062	s                *Service
73063	project          string
73064	httpsHealthCheck string
73065	httpshealthcheck *HttpsHealthCheck
73066	urlParams_       gensupport.URLParams
73067	ctx_             context.Context
73068	header_          http.Header
73069}
73070
73071// Update: Updates a HttpsHealthCheck resource in the specified project
73072// using the data included in the request. (== suppress_warning
73073// http-rest-shadowed ==)
73074func (r *HttpsHealthChecksService) Update(project string, httpsHealthCheck string, httpshealthcheck *HttpsHealthCheck) *HttpsHealthChecksUpdateCall {
73075	c := &HttpsHealthChecksUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
73076	c.project = project
73077	c.httpsHealthCheck = httpsHealthCheck
73078	c.httpshealthcheck = httpshealthcheck
73079	return c
73080}
73081
73082// RequestId sets the optional parameter "requestId": An optional
73083// request ID to identify requests. Specify a unique request ID so that
73084// if you must retry your request, the server will know to ignore the
73085// request if it has already been completed.
73086//
73087// For example, consider a situation where you make an initial request
73088// and the request times out. If you make the request again with the
73089// same request ID, the server can check if original operation with the
73090// same request ID was received, and if so, will ignore the second
73091// request. This prevents clients from accidentally creating duplicate
73092// commitments.
73093//
73094// The request ID must be a valid UUID with the exception that zero UUID
73095// is not supported (00000000-0000-0000-0000-000000000000).
73096func (c *HttpsHealthChecksUpdateCall) RequestId(requestId string) *HttpsHealthChecksUpdateCall {
73097	c.urlParams_.Set("requestId", requestId)
73098	return c
73099}
73100
73101// Fields allows partial responses to be retrieved. See
73102// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
73103// for more information.
73104func (c *HttpsHealthChecksUpdateCall) Fields(s ...googleapi.Field) *HttpsHealthChecksUpdateCall {
73105	c.urlParams_.Set("fields", googleapi.CombineFields(s))
73106	return c
73107}
73108
73109// Context sets the context to be used in this call's Do method. Any
73110// pending HTTP request will be aborted if the provided context is
73111// canceled.
73112func (c *HttpsHealthChecksUpdateCall) Context(ctx context.Context) *HttpsHealthChecksUpdateCall {
73113	c.ctx_ = ctx
73114	return c
73115}
73116
73117// Header returns an http.Header that can be modified by the caller to
73118// add HTTP headers to the request.
73119func (c *HttpsHealthChecksUpdateCall) Header() http.Header {
73120	if c.header_ == nil {
73121		c.header_ = make(http.Header)
73122	}
73123	return c.header_
73124}
73125
73126func (c *HttpsHealthChecksUpdateCall) doRequest(alt string) (*http.Response, error) {
73127	reqHeaders := make(http.Header)
73128	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
73129	for k, v := range c.header_ {
73130		reqHeaders[k] = v
73131	}
73132	reqHeaders.Set("User-Agent", c.s.userAgent())
73133	var body io.Reader = nil
73134	body, err := googleapi.WithoutDataWrapper.JSONReader(c.httpshealthcheck)
73135	if err != nil {
73136		return nil, err
73137	}
73138	reqHeaders.Set("Content-Type", "application/json")
73139	c.urlParams_.Set("alt", alt)
73140	c.urlParams_.Set("prettyPrint", "false")
73141	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/httpsHealthChecks/{httpsHealthCheck}")
73142	urls += "?" + c.urlParams_.Encode()
73143	req, err := http.NewRequest("PUT", urls, body)
73144	if err != nil {
73145		return nil, err
73146	}
73147	req.Header = reqHeaders
73148	googleapi.Expand(req.URL, map[string]string{
73149		"project":          c.project,
73150		"httpsHealthCheck": c.httpsHealthCheck,
73151	})
73152	return gensupport.SendRequest(c.ctx_, c.s.client, req)
73153}
73154
73155// Do executes the "compute.httpsHealthChecks.update" call.
73156// Exactly one of *Operation or error will be non-nil. Any non-2xx
73157// status code is an error. Response headers are in either
73158// *Operation.ServerResponse.Header or (if a response was returned at
73159// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
73160// to check whether the returned error was because
73161// http.StatusNotModified was returned.
73162func (c *HttpsHealthChecksUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
73163	gensupport.SetOptions(c.urlParams_, opts...)
73164	res, err := c.doRequest("json")
73165	if res != nil && res.StatusCode == http.StatusNotModified {
73166		if res.Body != nil {
73167			res.Body.Close()
73168		}
73169		return nil, &googleapi.Error{
73170			Code:   res.StatusCode,
73171			Header: res.Header,
73172		}
73173	}
73174	if err != nil {
73175		return nil, err
73176	}
73177	defer googleapi.CloseBody(res)
73178	if err := googleapi.CheckResponse(res); err != nil {
73179		return nil, err
73180	}
73181	ret := &Operation{
73182		ServerResponse: googleapi.ServerResponse{
73183			Header:         res.Header,
73184			HTTPStatusCode: res.StatusCode,
73185		},
73186	}
73187	target := &ret
73188	if err := gensupport.DecodeResponse(target, res); err != nil {
73189		return nil, err
73190	}
73191	return ret, nil
73192	// {
73193	//   "description": "Updates a HttpsHealthCheck resource in the specified project using the data included in the request. (== suppress_warning http-rest-shadowed ==)",
73194	//   "httpMethod": "PUT",
73195	//   "id": "compute.httpsHealthChecks.update",
73196	//   "parameterOrder": [
73197	//     "project",
73198	//     "httpsHealthCheck"
73199	//   ],
73200	//   "parameters": {
73201	//     "httpsHealthCheck": {
73202	//       "description": "Name of the HttpsHealthCheck resource to update.",
73203	//       "location": "path",
73204	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
73205	//       "required": true,
73206	//       "type": "string"
73207	//     },
73208	//     "project": {
73209	//       "description": "Project ID for this request.",
73210	//       "location": "path",
73211	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
73212	//       "required": true,
73213	//       "type": "string"
73214	//     },
73215	//     "requestId": {
73216	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
73217	//       "location": "query",
73218	//       "type": "string"
73219	//     }
73220	//   },
73221	//   "path": "{project}/global/httpsHealthChecks/{httpsHealthCheck}",
73222	//   "request": {
73223	//     "$ref": "HttpsHealthCheck"
73224	//   },
73225	//   "response": {
73226	//     "$ref": "Operation"
73227	//   },
73228	//   "scopes": [
73229	//     "https://www.googleapis.com/auth/cloud-platform",
73230	//     "https://www.googleapis.com/auth/compute"
73231	//   ]
73232	// }
73233
73234}
73235
73236// method id "compute.images.delete":
73237
73238type ImagesDeleteCall struct {
73239	s          *Service
73240	project    string
73241	image      string
73242	urlParams_ gensupport.URLParams
73243	ctx_       context.Context
73244	header_    http.Header
73245}
73246
73247// Delete: Deletes the specified image. (== suppress_warning
73248// http-rest-shadowed ==)
73249// For details, see https://cloud.google.com/compute/docs/reference/latest/images/delete
73250func (r *ImagesService) Delete(project string, image string) *ImagesDeleteCall {
73251	c := &ImagesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
73252	c.project = project
73253	c.image = image
73254	return c
73255}
73256
73257// RequestId sets the optional parameter "requestId": An optional
73258// request ID to identify requests. Specify a unique request ID so that
73259// if you must retry your request, the server will know to ignore the
73260// request if it has already been completed.
73261//
73262// For example, consider a situation where you make an initial request
73263// and the request times out. If you make the request again with the
73264// same request ID, the server can check if original operation with the
73265// same request ID was received, and if so, will ignore the second
73266// request. This prevents clients from accidentally creating duplicate
73267// commitments.
73268//
73269// The request ID must be a valid UUID with the exception that zero UUID
73270// is not supported (00000000-0000-0000-0000-000000000000).
73271func (c *ImagesDeleteCall) RequestId(requestId string) *ImagesDeleteCall {
73272	c.urlParams_.Set("requestId", requestId)
73273	return c
73274}
73275
73276// Fields allows partial responses to be retrieved. See
73277// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
73278// for more information.
73279func (c *ImagesDeleteCall) Fields(s ...googleapi.Field) *ImagesDeleteCall {
73280	c.urlParams_.Set("fields", googleapi.CombineFields(s))
73281	return c
73282}
73283
73284// Context sets the context to be used in this call's Do method. Any
73285// pending HTTP request will be aborted if the provided context is
73286// canceled.
73287func (c *ImagesDeleteCall) Context(ctx context.Context) *ImagesDeleteCall {
73288	c.ctx_ = ctx
73289	return c
73290}
73291
73292// Header returns an http.Header that can be modified by the caller to
73293// add HTTP headers to the request.
73294func (c *ImagesDeleteCall) Header() http.Header {
73295	if c.header_ == nil {
73296		c.header_ = make(http.Header)
73297	}
73298	return c.header_
73299}
73300
73301func (c *ImagesDeleteCall) doRequest(alt string) (*http.Response, error) {
73302	reqHeaders := make(http.Header)
73303	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
73304	for k, v := range c.header_ {
73305		reqHeaders[k] = v
73306	}
73307	reqHeaders.Set("User-Agent", c.s.userAgent())
73308	var body io.Reader = nil
73309	c.urlParams_.Set("alt", alt)
73310	c.urlParams_.Set("prettyPrint", "false")
73311	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/images/{image}")
73312	urls += "?" + c.urlParams_.Encode()
73313	req, err := http.NewRequest("DELETE", urls, body)
73314	if err != nil {
73315		return nil, err
73316	}
73317	req.Header = reqHeaders
73318	googleapi.Expand(req.URL, map[string]string{
73319		"project": c.project,
73320		"image":   c.image,
73321	})
73322	return gensupport.SendRequest(c.ctx_, c.s.client, req)
73323}
73324
73325// Do executes the "compute.images.delete" call.
73326// Exactly one of *Operation or error will be non-nil. Any non-2xx
73327// status code is an error. Response headers are in either
73328// *Operation.ServerResponse.Header or (if a response was returned at
73329// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
73330// to check whether the returned error was because
73331// http.StatusNotModified was returned.
73332func (c *ImagesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
73333	gensupport.SetOptions(c.urlParams_, opts...)
73334	res, err := c.doRequest("json")
73335	if res != nil && res.StatusCode == http.StatusNotModified {
73336		if res.Body != nil {
73337			res.Body.Close()
73338		}
73339		return nil, &googleapi.Error{
73340			Code:   res.StatusCode,
73341			Header: res.Header,
73342		}
73343	}
73344	if err != nil {
73345		return nil, err
73346	}
73347	defer googleapi.CloseBody(res)
73348	if err := googleapi.CheckResponse(res); err != nil {
73349		return nil, err
73350	}
73351	ret := &Operation{
73352		ServerResponse: googleapi.ServerResponse{
73353			Header:         res.Header,
73354			HTTPStatusCode: res.StatusCode,
73355		},
73356	}
73357	target := &ret
73358	if err := gensupport.DecodeResponse(target, res); err != nil {
73359		return nil, err
73360	}
73361	return ret, nil
73362	// {
73363	//   "description": "Deletes the specified image. (== suppress_warning http-rest-shadowed ==)",
73364	//   "httpMethod": "DELETE",
73365	//   "id": "compute.images.delete",
73366	//   "parameterOrder": [
73367	//     "project",
73368	//     "image"
73369	//   ],
73370	//   "parameters": {
73371	//     "image": {
73372	//       "description": "Name of the image resource to delete.",
73373	//       "location": "path",
73374	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
73375	//       "required": true,
73376	//       "type": "string"
73377	//     },
73378	//     "project": {
73379	//       "description": "Project ID for this request.",
73380	//       "location": "path",
73381	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
73382	//       "required": true,
73383	//       "type": "string"
73384	//     },
73385	//     "requestId": {
73386	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
73387	//       "location": "query",
73388	//       "type": "string"
73389	//     }
73390	//   },
73391	//   "path": "{project}/global/images/{image}",
73392	//   "response": {
73393	//     "$ref": "Operation"
73394	//   },
73395	//   "scopes": [
73396	//     "https://www.googleapis.com/auth/cloud-platform",
73397	//     "https://www.googleapis.com/auth/compute"
73398	//   ]
73399	// }
73400
73401}
73402
73403// method id "compute.images.deprecate":
73404
73405type ImagesDeprecateCall struct {
73406	s                 *Service
73407	project           string
73408	image             string
73409	deprecationstatus *DeprecationStatus
73410	urlParams_        gensupport.URLParams
73411	ctx_              context.Context
73412	header_           http.Header
73413}
73414
73415// Deprecate: Sets the deprecation status of an image.
73416//
73417// If an empty request body is given, clears the deprecation status
73418// instead. (== suppress_warning http-rest-shadowed ==)
73419// For details, see https://cloud.google.com/compute/docs/reference/latest/images/deprecate
73420func (r *ImagesService) Deprecate(project string, image string, deprecationstatus *DeprecationStatus) *ImagesDeprecateCall {
73421	c := &ImagesDeprecateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
73422	c.project = project
73423	c.image = image
73424	c.deprecationstatus = deprecationstatus
73425	return c
73426}
73427
73428// RequestId sets the optional parameter "requestId": An optional
73429// request ID to identify requests. Specify a unique request ID so that
73430// if you must retry your request, the server will know to ignore the
73431// request if it has already been completed.
73432//
73433// For example, consider a situation where you make an initial request
73434// and the request times out. If you make the request again with the
73435// same request ID, the server can check if original operation with the
73436// same request ID was received, and if so, will ignore the second
73437// request. This prevents clients from accidentally creating duplicate
73438// commitments.
73439//
73440// The request ID must be a valid UUID with the exception that zero UUID
73441// is not supported (00000000-0000-0000-0000-000000000000).
73442func (c *ImagesDeprecateCall) RequestId(requestId string) *ImagesDeprecateCall {
73443	c.urlParams_.Set("requestId", requestId)
73444	return c
73445}
73446
73447// Fields allows partial responses to be retrieved. See
73448// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
73449// for more information.
73450func (c *ImagesDeprecateCall) Fields(s ...googleapi.Field) *ImagesDeprecateCall {
73451	c.urlParams_.Set("fields", googleapi.CombineFields(s))
73452	return c
73453}
73454
73455// Context sets the context to be used in this call's Do method. Any
73456// pending HTTP request will be aborted if the provided context is
73457// canceled.
73458func (c *ImagesDeprecateCall) Context(ctx context.Context) *ImagesDeprecateCall {
73459	c.ctx_ = ctx
73460	return c
73461}
73462
73463// Header returns an http.Header that can be modified by the caller to
73464// add HTTP headers to the request.
73465func (c *ImagesDeprecateCall) Header() http.Header {
73466	if c.header_ == nil {
73467		c.header_ = make(http.Header)
73468	}
73469	return c.header_
73470}
73471
73472func (c *ImagesDeprecateCall) doRequest(alt string) (*http.Response, error) {
73473	reqHeaders := make(http.Header)
73474	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
73475	for k, v := range c.header_ {
73476		reqHeaders[k] = v
73477	}
73478	reqHeaders.Set("User-Agent", c.s.userAgent())
73479	var body io.Reader = nil
73480	body, err := googleapi.WithoutDataWrapper.JSONReader(c.deprecationstatus)
73481	if err != nil {
73482		return nil, err
73483	}
73484	reqHeaders.Set("Content-Type", "application/json")
73485	c.urlParams_.Set("alt", alt)
73486	c.urlParams_.Set("prettyPrint", "false")
73487	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/images/{image}/deprecate")
73488	urls += "?" + c.urlParams_.Encode()
73489	req, err := http.NewRequest("POST", urls, body)
73490	if err != nil {
73491		return nil, err
73492	}
73493	req.Header = reqHeaders
73494	googleapi.Expand(req.URL, map[string]string{
73495		"project": c.project,
73496		"image":   c.image,
73497	})
73498	return gensupport.SendRequest(c.ctx_, c.s.client, req)
73499}
73500
73501// Do executes the "compute.images.deprecate" call.
73502// Exactly one of *Operation or error will be non-nil. Any non-2xx
73503// status code is an error. Response headers are in either
73504// *Operation.ServerResponse.Header or (if a response was returned at
73505// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
73506// to check whether the returned error was because
73507// http.StatusNotModified was returned.
73508func (c *ImagesDeprecateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
73509	gensupport.SetOptions(c.urlParams_, opts...)
73510	res, err := c.doRequest("json")
73511	if res != nil && res.StatusCode == http.StatusNotModified {
73512		if res.Body != nil {
73513			res.Body.Close()
73514		}
73515		return nil, &googleapi.Error{
73516			Code:   res.StatusCode,
73517			Header: res.Header,
73518		}
73519	}
73520	if err != nil {
73521		return nil, err
73522	}
73523	defer googleapi.CloseBody(res)
73524	if err := googleapi.CheckResponse(res); err != nil {
73525		return nil, err
73526	}
73527	ret := &Operation{
73528		ServerResponse: googleapi.ServerResponse{
73529			Header:         res.Header,
73530			HTTPStatusCode: res.StatusCode,
73531		},
73532	}
73533	target := &ret
73534	if err := gensupport.DecodeResponse(target, res); err != nil {
73535		return nil, err
73536	}
73537	return ret, nil
73538	// {
73539	//   "description": "Sets the deprecation status of an image.\n\nIf an empty request body is given, clears the deprecation status instead. (== suppress_warning http-rest-shadowed ==)",
73540	//   "httpMethod": "POST",
73541	//   "id": "compute.images.deprecate",
73542	//   "parameterOrder": [
73543	//     "project",
73544	//     "image"
73545	//   ],
73546	//   "parameters": {
73547	//     "image": {
73548	//       "description": "Image name.",
73549	//       "location": "path",
73550	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
73551	//       "required": true,
73552	//       "type": "string"
73553	//     },
73554	//     "project": {
73555	//       "description": "Project ID for this request.",
73556	//       "location": "path",
73557	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
73558	//       "required": true,
73559	//       "type": "string"
73560	//     },
73561	//     "requestId": {
73562	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
73563	//       "location": "query",
73564	//       "type": "string"
73565	//     }
73566	//   },
73567	//   "path": "{project}/global/images/{image}/deprecate",
73568	//   "request": {
73569	//     "$ref": "DeprecationStatus"
73570	//   },
73571	//   "response": {
73572	//     "$ref": "Operation"
73573	//   },
73574	//   "scopes": [
73575	//     "https://www.googleapis.com/auth/cloud-platform",
73576	//     "https://www.googleapis.com/auth/compute"
73577	//   ]
73578	// }
73579
73580}
73581
73582// method id "compute.images.get":
73583
73584type ImagesGetCall struct {
73585	s            *Service
73586	project      string
73587	image        string
73588	urlParams_   gensupport.URLParams
73589	ifNoneMatch_ string
73590	ctx_         context.Context
73591	header_      http.Header
73592}
73593
73594// Get: Returns the specified image. Gets a list of available images by
73595// making a list() request. (== suppress_warning http-rest-shadowed ==)
73596// For details, see https://cloud.google.com/compute/docs/reference/latest/images/get
73597func (r *ImagesService) Get(project string, image string) *ImagesGetCall {
73598	c := &ImagesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
73599	c.project = project
73600	c.image = image
73601	return c
73602}
73603
73604// Fields allows partial responses to be retrieved. See
73605// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
73606// for more information.
73607func (c *ImagesGetCall) Fields(s ...googleapi.Field) *ImagesGetCall {
73608	c.urlParams_.Set("fields", googleapi.CombineFields(s))
73609	return c
73610}
73611
73612// IfNoneMatch sets the optional parameter which makes the operation
73613// fail if the object's ETag matches the given value. This is useful for
73614// getting updates only after the object has changed since the last
73615// request. Use googleapi.IsNotModified to check whether the response
73616// error from Do is the result of In-None-Match.
73617func (c *ImagesGetCall) IfNoneMatch(entityTag string) *ImagesGetCall {
73618	c.ifNoneMatch_ = entityTag
73619	return c
73620}
73621
73622// Context sets the context to be used in this call's Do method. Any
73623// pending HTTP request will be aborted if the provided context is
73624// canceled.
73625func (c *ImagesGetCall) Context(ctx context.Context) *ImagesGetCall {
73626	c.ctx_ = ctx
73627	return c
73628}
73629
73630// Header returns an http.Header that can be modified by the caller to
73631// add HTTP headers to the request.
73632func (c *ImagesGetCall) Header() http.Header {
73633	if c.header_ == nil {
73634		c.header_ = make(http.Header)
73635	}
73636	return c.header_
73637}
73638
73639func (c *ImagesGetCall) doRequest(alt string) (*http.Response, error) {
73640	reqHeaders := make(http.Header)
73641	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
73642	for k, v := range c.header_ {
73643		reqHeaders[k] = v
73644	}
73645	reqHeaders.Set("User-Agent", c.s.userAgent())
73646	if c.ifNoneMatch_ != "" {
73647		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
73648	}
73649	var body io.Reader = nil
73650	c.urlParams_.Set("alt", alt)
73651	c.urlParams_.Set("prettyPrint", "false")
73652	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/images/{image}")
73653	urls += "?" + c.urlParams_.Encode()
73654	req, err := http.NewRequest("GET", urls, body)
73655	if err != nil {
73656		return nil, err
73657	}
73658	req.Header = reqHeaders
73659	googleapi.Expand(req.URL, map[string]string{
73660		"project": c.project,
73661		"image":   c.image,
73662	})
73663	return gensupport.SendRequest(c.ctx_, c.s.client, req)
73664}
73665
73666// Do executes the "compute.images.get" call.
73667// Exactly one of *Image or error will be non-nil. Any non-2xx status
73668// code is an error. Response headers are in either
73669// *Image.ServerResponse.Header or (if a response was returned at all)
73670// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
73671// check whether the returned error was because http.StatusNotModified
73672// was returned.
73673func (c *ImagesGetCall) Do(opts ...googleapi.CallOption) (*Image, error) {
73674	gensupport.SetOptions(c.urlParams_, opts...)
73675	res, err := c.doRequest("json")
73676	if res != nil && res.StatusCode == http.StatusNotModified {
73677		if res.Body != nil {
73678			res.Body.Close()
73679		}
73680		return nil, &googleapi.Error{
73681			Code:   res.StatusCode,
73682			Header: res.Header,
73683		}
73684	}
73685	if err != nil {
73686		return nil, err
73687	}
73688	defer googleapi.CloseBody(res)
73689	if err := googleapi.CheckResponse(res); err != nil {
73690		return nil, err
73691	}
73692	ret := &Image{
73693		ServerResponse: googleapi.ServerResponse{
73694			Header:         res.Header,
73695			HTTPStatusCode: res.StatusCode,
73696		},
73697	}
73698	target := &ret
73699	if err := gensupport.DecodeResponse(target, res); err != nil {
73700		return nil, err
73701	}
73702	return ret, nil
73703	// {
73704	//   "description": "Returns the specified image. Gets a list of available images by making a list() request. (== suppress_warning http-rest-shadowed ==)",
73705	//   "httpMethod": "GET",
73706	//   "id": "compute.images.get",
73707	//   "parameterOrder": [
73708	//     "project",
73709	//     "image"
73710	//   ],
73711	//   "parameters": {
73712	//     "image": {
73713	//       "description": "Name of the image resource to return.",
73714	//       "location": "path",
73715	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
73716	//       "required": true,
73717	//       "type": "string"
73718	//     },
73719	//     "project": {
73720	//       "description": "Project ID for this request.",
73721	//       "location": "path",
73722	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
73723	//       "required": true,
73724	//       "type": "string"
73725	//     }
73726	//   },
73727	//   "path": "{project}/global/images/{image}",
73728	//   "response": {
73729	//     "$ref": "Image"
73730	//   },
73731	//   "scopes": [
73732	//     "https://www.googleapis.com/auth/cloud-platform",
73733	//     "https://www.googleapis.com/auth/compute",
73734	//     "https://www.googleapis.com/auth/compute.readonly"
73735	//   ]
73736	// }
73737
73738}
73739
73740// method id "compute.images.getFromFamily":
73741
73742type ImagesGetFromFamilyCall struct {
73743	s            *Service
73744	project      string
73745	family       string
73746	urlParams_   gensupport.URLParams
73747	ifNoneMatch_ string
73748	ctx_         context.Context
73749	header_      http.Header
73750}
73751
73752// GetFromFamily: Returns the latest image that is part of an image
73753// family and is not deprecated. (== suppress_warning http-rest-shadowed
73754// ==)
73755func (r *ImagesService) GetFromFamily(project string, family string) *ImagesGetFromFamilyCall {
73756	c := &ImagesGetFromFamilyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
73757	c.project = project
73758	c.family = family
73759	return c
73760}
73761
73762// Fields allows partial responses to be retrieved. See
73763// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
73764// for more information.
73765func (c *ImagesGetFromFamilyCall) Fields(s ...googleapi.Field) *ImagesGetFromFamilyCall {
73766	c.urlParams_.Set("fields", googleapi.CombineFields(s))
73767	return c
73768}
73769
73770// IfNoneMatch sets the optional parameter which makes the operation
73771// fail if the object's ETag matches the given value. This is useful for
73772// getting updates only after the object has changed since the last
73773// request. Use googleapi.IsNotModified to check whether the response
73774// error from Do is the result of In-None-Match.
73775func (c *ImagesGetFromFamilyCall) IfNoneMatch(entityTag string) *ImagesGetFromFamilyCall {
73776	c.ifNoneMatch_ = entityTag
73777	return c
73778}
73779
73780// Context sets the context to be used in this call's Do method. Any
73781// pending HTTP request will be aborted if the provided context is
73782// canceled.
73783func (c *ImagesGetFromFamilyCall) Context(ctx context.Context) *ImagesGetFromFamilyCall {
73784	c.ctx_ = ctx
73785	return c
73786}
73787
73788// Header returns an http.Header that can be modified by the caller to
73789// add HTTP headers to the request.
73790func (c *ImagesGetFromFamilyCall) Header() http.Header {
73791	if c.header_ == nil {
73792		c.header_ = make(http.Header)
73793	}
73794	return c.header_
73795}
73796
73797func (c *ImagesGetFromFamilyCall) doRequest(alt string) (*http.Response, error) {
73798	reqHeaders := make(http.Header)
73799	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
73800	for k, v := range c.header_ {
73801		reqHeaders[k] = v
73802	}
73803	reqHeaders.Set("User-Agent", c.s.userAgent())
73804	if c.ifNoneMatch_ != "" {
73805		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
73806	}
73807	var body io.Reader = nil
73808	c.urlParams_.Set("alt", alt)
73809	c.urlParams_.Set("prettyPrint", "false")
73810	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/images/family/{family}")
73811	urls += "?" + c.urlParams_.Encode()
73812	req, err := http.NewRequest("GET", urls, body)
73813	if err != nil {
73814		return nil, err
73815	}
73816	req.Header = reqHeaders
73817	googleapi.Expand(req.URL, map[string]string{
73818		"project": c.project,
73819		"family":  c.family,
73820	})
73821	return gensupport.SendRequest(c.ctx_, c.s.client, req)
73822}
73823
73824// Do executes the "compute.images.getFromFamily" call.
73825// Exactly one of *Image or error will be non-nil. Any non-2xx status
73826// code is an error. Response headers are in either
73827// *Image.ServerResponse.Header or (if a response was returned at all)
73828// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
73829// check whether the returned error was because http.StatusNotModified
73830// was returned.
73831func (c *ImagesGetFromFamilyCall) Do(opts ...googleapi.CallOption) (*Image, error) {
73832	gensupport.SetOptions(c.urlParams_, opts...)
73833	res, err := c.doRequest("json")
73834	if res != nil && res.StatusCode == http.StatusNotModified {
73835		if res.Body != nil {
73836			res.Body.Close()
73837		}
73838		return nil, &googleapi.Error{
73839			Code:   res.StatusCode,
73840			Header: res.Header,
73841		}
73842	}
73843	if err != nil {
73844		return nil, err
73845	}
73846	defer googleapi.CloseBody(res)
73847	if err := googleapi.CheckResponse(res); err != nil {
73848		return nil, err
73849	}
73850	ret := &Image{
73851		ServerResponse: googleapi.ServerResponse{
73852			Header:         res.Header,
73853			HTTPStatusCode: res.StatusCode,
73854		},
73855	}
73856	target := &ret
73857	if err := gensupport.DecodeResponse(target, res); err != nil {
73858		return nil, err
73859	}
73860	return ret, nil
73861	// {
73862	//   "description": "Returns the latest image that is part of an image family and is not deprecated. (== suppress_warning http-rest-shadowed ==)",
73863	//   "httpMethod": "GET",
73864	//   "id": "compute.images.getFromFamily",
73865	//   "parameterOrder": [
73866	//     "project",
73867	//     "family"
73868	//   ],
73869	//   "parameters": {
73870	//     "family": {
73871	//       "description": "Name of the image family to search for.",
73872	//       "location": "path",
73873	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
73874	//       "required": true,
73875	//       "type": "string"
73876	//     },
73877	//     "project": {
73878	//       "description": "Project ID for this request.",
73879	//       "location": "path",
73880	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
73881	//       "required": true,
73882	//       "type": "string"
73883	//     }
73884	//   },
73885	//   "path": "{project}/global/images/family/{family}",
73886	//   "response": {
73887	//     "$ref": "Image"
73888	//   },
73889	//   "scopes": [
73890	//     "https://www.googleapis.com/auth/cloud-platform",
73891	//     "https://www.googleapis.com/auth/compute",
73892	//     "https://www.googleapis.com/auth/compute.readonly"
73893	//   ]
73894	// }
73895
73896}
73897
73898// method id "compute.images.getIamPolicy":
73899
73900type ImagesGetIamPolicyCall struct {
73901	s            *Service
73902	project      string
73903	resource     string
73904	urlParams_   gensupport.URLParams
73905	ifNoneMatch_ string
73906	ctx_         context.Context
73907	header_      http.Header
73908}
73909
73910// GetIamPolicy: Gets the access control policy for a resource. May be
73911// empty if no such policy or resource exists. (== suppress_warning
73912// http-rest-shadowed ==)
73913func (r *ImagesService) GetIamPolicy(project string, resource string) *ImagesGetIamPolicyCall {
73914	c := &ImagesGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
73915	c.project = project
73916	c.resource = resource
73917	return c
73918}
73919
73920// OptionsRequestedPolicyVersion sets the optional parameter
73921// "optionsRequestedPolicyVersion": Requested IAM Policy version.
73922func (c *ImagesGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *ImagesGetIamPolicyCall {
73923	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
73924	return c
73925}
73926
73927// Fields allows partial responses to be retrieved. See
73928// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
73929// for more information.
73930func (c *ImagesGetIamPolicyCall) Fields(s ...googleapi.Field) *ImagesGetIamPolicyCall {
73931	c.urlParams_.Set("fields", googleapi.CombineFields(s))
73932	return c
73933}
73934
73935// IfNoneMatch sets the optional parameter which makes the operation
73936// fail if the object's ETag matches the given value. This is useful for
73937// getting updates only after the object has changed since the last
73938// request. Use googleapi.IsNotModified to check whether the response
73939// error from Do is the result of In-None-Match.
73940func (c *ImagesGetIamPolicyCall) IfNoneMatch(entityTag string) *ImagesGetIamPolicyCall {
73941	c.ifNoneMatch_ = entityTag
73942	return c
73943}
73944
73945// Context sets the context to be used in this call's Do method. Any
73946// pending HTTP request will be aborted if the provided context is
73947// canceled.
73948func (c *ImagesGetIamPolicyCall) Context(ctx context.Context) *ImagesGetIamPolicyCall {
73949	c.ctx_ = ctx
73950	return c
73951}
73952
73953// Header returns an http.Header that can be modified by the caller to
73954// add HTTP headers to the request.
73955func (c *ImagesGetIamPolicyCall) Header() http.Header {
73956	if c.header_ == nil {
73957		c.header_ = make(http.Header)
73958	}
73959	return c.header_
73960}
73961
73962func (c *ImagesGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
73963	reqHeaders := make(http.Header)
73964	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
73965	for k, v := range c.header_ {
73966		reqHeaders[k] = v
73967	}
73968	reqHeaders.Set("User-Agent", c.s.userAgent())
73969	if c.ifNoneMatch_ != "" {
73970		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
73971	}
73972	var body io.Reader = nil
73973	c.urlParams_.Set("alt", alt)
73974	c.urlParams_.Set("prettyPrint", "false")
73975	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/images/{resource}/getIamPolicy")
73976	urls += "?" + c.urlParams_.Encode()
73977	req, err := http.NewRequest("GET", urls, body)
73978	if err != nil {
73979		return nil, err
73980	}
73981	req.Header = reqHeaders
73982	googleapi.Expand(req.URL, map[string]string{
73983		"project":  c.project,
73984		"resource": c.resource,
73985	})
73986	return gensupport.SendRequest(c.ctx_, c.s.client, req)
73987}
73988
73989// Do executes the "compute.images.getIamPolicy" call.
73990// Exactly one of *Policy or error will be non-nil. Any non-2xx status
73991// code is an error. Response headers are in either
73992// *Policy.ServerResponse.Header or (if a response was returned at all)
73993// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
73994// check whether the returned error was because http.StatusNotModified
73995// was returned.
73996func (c *ImagesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
73997	gensupport.SetOptions(c.urlParams_, opts...)
73998	res, err := c.doRequest("json")
73999	if res != nil && res.StatusCode == http.StatusNotModified {
74000		if res.Body != nil {
74001			res.Body.Close()
74002		}
74003		return nil, &googleapi.Error{
74004			Code:   res.StatusCode,
74005			Header: res.Header,
74006		}
74007	}
74008	if err != nil {
74009		return nil, err
74010	}
74011	defer googleapi.CloseBody(res)
74012	if err := googleapi.CheckResponse(res); err != nil {
74013		return nil, err
74014	}
74015	ret := &Policy{
74016		ServerResponse: googleapi.ServerResponse{
74017			Header:         res.Header,
74018			HTTPStatusCode: res.StatusCode,
74019		},
74020	}
74021	target := &ret
74022	if err := gensupport.DecodeResponse(target, res); err != nil {
74023		return nil, err
74024	}
74025	return ret, nil
74026	// {
74027	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists. (== suppress_warning http-rest-shadowed ==)",
74028	//   "httpMethod": "GET",
74029	//   "id": "compute.images.getIamPolicy",
74030	//   "parameterOrder": [
74031	//     "project",
74032	//     "resource"
74033	//   ],
74034	//   "parameters": {
74035	//     "optionsRequestedPolicyVersion": {
74036	//       "description": "Requested IAM Policy version.",
74037	//       "format": "int32",
74038	//       "location": "query",
74039	//       "type": "integer"
74040	//     },
74041	//     "project": {
74042	//       "description": "Project ID for this request.",
74043	//       "location": "path",
74044	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
74045	//       "required": true,
74046	//       "type": "string"
74047	//     },
74048	//     "resource": {
74049	//       "description": "Name or id of the resource for this request.",
74050	//       "location": "path",
74051	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
74052	//       "required": true,
74053	//       "type": "string"
74054	//     }
74055	//   },
74056	//   "path": "{project}/global/images/{resource}/getIamPolicy",
74057	//   "response": {
74058	//     "$ref": "Policy"
74059	//   },
74060	//   "scopes": [
74061	//     "https://www.googleapis.com/auth/cloud-platform",
74062	//     "https://www.googleapis.com/auth/compute",
74063	//     "https://www.googleapis.com/auth/compute.readonly"
74064	//   ]
74065	// }
74066
74067}
74068
74069// method id "compute.images.insert":
74070
74071type ImagesInsertCall struct {
74072	s          *Service
74073	project    string
74074	image      *Image
74075	urlParams_ gensupport.URLParams
74076	ctx_       context.Context
74077	header_    http.Header
74078}
74079
74080// Insert: Creates an image in the specified project using the data
74081// included in the request. (== suppress_warning http-rest-shadowed ==)
74082// For details, see https://cloud.google.com/compute/docs/reference/latest/images/insert
74083func (r *ImagesService) Insert(project string, image *Image) *ImagesInsertCall {
74084	c := &ImagesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
74085	c.project = project
74086	c.image = image
74087	return c
74088}
74089
74090// ForceCreate sets the optional parameter "forceCreate": Force image
74091// creation if true.
74092func (c *ImagesInsertCall) ForceCreate(forceCreate bool) *ImagesInsertCall {
74093	c.urlParams_.Set("forceCreate", fmt.Sprint(forceCreate))
74094	return c
74095}
74096
74097// RequestId sets the optional parameter "requestId": An optional
74098// request ID to identify requests. Specify a unique request ID so that
74099// if you must retry your request, the server will know to ignore the
74100// request if it has already been completed.
74101//
74102// For example, consider a situation where you make an initial request
74103// and the request times out. If you make the request again with the
74104// same request ID, the server can check if original operation with the
74105// same request ID was received, and if so, will ignore the second
74106// request. This prevents clients from accidentally creating duplicate
74107// commitments.
74108//
74109// The request ID must be a valid UUID with the exception that zero UUID
74110// is not supported (00000000-0000-0000-0000-000000000000).
74111func (c *ImagesInsertCall) RequestId(requestId string) *ImagesInsertCall {
74112	c.urlParams_.Set("requestId", requestId)
74113	return c
74114}
74115
74116// Fields allows partial responses to be retrieved. See
74117// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
74118// for more information.
74119func (c *ImagesInsertCall) Fields(s ...googleapi.Field) *ImagesInsertCall {
74120	c.urlParams_.Set("fields", googleapi.CombineFields(s))
74121	return c
74122}
74123
74124// Context sets the context to be used in this call's Do method. Any
74125// pending HTTP request will be aborted if the provided context is
74126// canceled.
74127func (c *ImagesInsertCall) Context(ctx context.Context) *ImagesInsertCall {
74128	c.ctx_ = ctx
74129	return c
74130}
74131
74132// Header returns an http.Header that can be modified by the caller to
74133// add HTTP headers to the request.
74134func (c *ImagesInsertCall) Header() http.Header {
74135	if c.header_ == nil {
74136		c.header_ = make(http.Header)
74137	}
74138	return c.header_
74139}
74140
74141func (c *ImagesInsertCall) doRequest(alt string) (*http.Response, error) {
74142	reqHeaders := make(http.Header)
74143	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
74144	for k, v := range c.header_ {
74145		reqHeaders[k] = v
74146	}
74147	reqHeaders.Set("User-Agent", c.s.userAgent())
74148	var body io.Reader = nil
74149	body, err := googleapi.WithoutDataWrapper.JSONReader(c.image)
74150	if err != nil {
74151		return nil, err
74152	}
74153	reqHeaders.Set("Content-Type", "application/json")
74154	c.urlParams_.Set("alt", alt)
74155	c.urlParams_.Set("prettyPrint", "false")
74156	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/images")
74157	urls += "?" + c.urlParams_.Encode()
74158	req, err := http.NewRequest("POST", urls, body)
74159	if err != nil {
74160		return nil, err
74161	}
74162	req.Header = reqHeaders
74163	googleapi.Expand(req.URL, map[string]string{
74164		"project": c.project,
74165	})
74166	return gensupport.SendRequest(c.ctx_, c.s.client, req)
74167}
74168
74169// Do executes the "compute.images.insert" call.
74170// Exactly one of *Operation or error will be non-nil. Any non-2xx
74171// status code is an error. Response headers are in either
74172// *Operation.ServerResponse.Header or (if a response was returned at
74173// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
74174// to check whether the returned error was because
74175// http.StatusNotModified was returned.
74176func (c *ImagesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
74177	gensupport.SetOptions(c.urlParams_, opts...)
74178	res, err := c.doRequest("json")
74179	if res != nil && res.StatusCode == http.StatusNotModified {
74180		if res.Body != nil {
74181			res.Body.Close()
74182		}
74183		return nil, &googleapi.Error{
74184			Code:   res.StatusCode,
74185			Header: res.Header,
74186		}
74187	}
74188	if err != nil {
74189		return nil, err
74190	}
74191	defer googleapi.CloseBody(res)
74192	if err := googleapi.CheckResponse(res); err != nil {
74193		return nil, err
74194	}
74195	ret := &Operation{
74196		ServerResponse: googleapi.ServerResponse{
74197			Header:         res.Header,
74198			HTTPStatusCode: res.StatusCode,
74199		},
74200	}
74201	target := &ret
74202	if err := gensupport.DecodeResponse(target, res); err != nil {
74203		return nil, err
74204	}
74205	return ret, nil
74206	// {
74207	//   "description": "Creates an image in the specified project using the data included in the request. (== suppress_warning http-rest-shadowed ==)",
74208	//   "httpMethod": "POST",
74209	//   "id": "compute.images.insert",
74210	//   "parameterOrder": [
74211	//     "project"
74212	//   ],
74213	//   "parameters": {
74214	//     "forceCreate": {
74215	//       "description": "Force image creation if true.",
74216	//       "location": "query",
74217	//       "type": "boolean"
74218	//     },
74219	//     "project": {
74220	//       "description": "Project ID for this request.",
74221	//       "location": "path",
74222	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
74223	//       "required": true,
74224	//       "type": "string"
74225	//     },
74226	//     "requestId": {
74227	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
74228	//       "location": "query",
74229	//       "type": "string"
74230	//     }
74231	//   },
74232	//   "path": "{project}/global/images",
74233	//   "request": {
74234	//     "$ref": "Image"
74235	//   },
74236	//   "response": {
74237	//     "$ref": "Operation"
74238	//   },
74239	//   "scopes": [
74240	//     "https://www.googleapis.com/auth/cloud-platform",
74241	//     "https://www.googleapis.com/auth/compute",
74242	//     "https://www.googleapis.com/auth/devstorage.full_control",
74243	//     "https://www.googleapis.com/auth/devstorage.read_only",
74244	//     "https://www.googleapis.com/auth/devstorage.read_write"
74245	//   ]
74246	// }
74247
74248}
74249
74250// method id "compute.images.list":
74251
74252type ImagesListCall struct {
74253	s            *Service
74254	project      string
74255	urlParams_   gensupport.URLParams
74256	ifNoneMatch_ string
74257	ctx_         context.Context
74258	header_      http.Header
74259}
74260
74261// List: Retrieves the list of custom images available to the specified
74262// project. Custom images are images you create that belong to your
74263// project. This method does not get any images that belong to other
74264// projects, including publicly-available images, like Debian 8. If you
74265// want to get a list of publicly-available images, use this method to
74266// make a request to the respective image project, such as debian-cloud
74267// or windows-cloud. (== suppress_warning http-rest-shadowed ==)
74268// For details, see https://cloud.google.com/compute/docs/reference/latest/images/list
74269func (r *ImagesService) List(project string) *ImagesListCall {
74270	c := &ImagesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
74271	c.project = project
74272	return c
74273}
74274
74275// Filter sets the optional parameter "filter": A filter expression that
74276// filters resources listed in the response. The expression must specify
74277// the field name, a comparison operator, and the value that you want to
74278// use for filtering. The value must be a string, a number, or a
74279// boolean. The comparison operator must be either =, !=, >, or <.
74280//
74281// For example, if you are filtering Compute Engine instances, you can
74282// exclude instances named example-instance by specifying name !=
74283// example-instance.
74284//
74285// You can also filter nested fields. For example, you could specify
74286// scheduling.automaticRestart = false to include instances only if they
74287// are not scheduled for automatic restarts. You can use filtering on
74288// nested fields to filter based on resource labels.
74289//
74290// To filter on multiple expressions, provide each separate expression
74291// within parentheses. For example, (scheduling.automaticRestart = true)
74292// (cpuPlatform = "Intel Skylake"). By default, each expression is an
74293// AND expression. However, you can include AND and OR expressions
74294// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
74295// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
74296// true).
74297func (c *ImagesListCall) Filter(filter string) *ImagesListCall {
74298	c.urlParams_.Set("filter", filter)
74299	return c
74300}
74301
74302// MaxResults sets the optional parameter "maxResults": The maximum
74303// number of results per page that should be returned. If the number of
74304// available results is larger than maxResults, Compute Engine returns a
74305// nextPageToken that can be used to get the next page of results in
74306// subsequent list requests. Acceptable values are 0 to 500, inclusive.
74307// (Default: 500)
74308func (c *ImagesListCall) MaxResults(maxResults int64) *ImagesListCall {
74309	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
74310	return c
74311}
74312
74313// OrderBy sets the optional parameter "orderBy": Sorts list results by
74314// a certain order. By default, results are returned in alphanumerical
74315// order based on the resource name.
74316//
74317// You can also sort results in descending order based on the creation
74318// timestamp using orderBy="creationTimestamp desc". This sorts results
74319// based on the creationTimestamp field in reverse chronological order
74320// (newest result first). Use this to sort resources like operations so
74321// that the newest operation is returned first.
74322//
74323// Currently, only sorting by name or creationTimestamp desc is
74324// supported.
74325func (c *ImagesListCall) OrderBy(orderBy string) *ImagesListCall {
74326	c.urlParams_.Set("orderBy", orderBy)
74327	return c
74328}
74329
74330// PageToken sets the optional parameter "pageToken": Specifies a page
74331// token to use. Set pageToken to the nextPageToken returned by a
74332// previous list request to get the next page of results.
74333func (c *ImagesListCall) PageToken(pageToken string) *ImagesListCall {
74334	c.urlParams_.Set("pageToken", pageToken)
74335	return c
74336}
74337
74338// Fields allows partial responses to be retrieved. See
74339// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
74340// for more information.
74341func (c *ImagesListCall) Fields(s ...googleapi.Field) *ImagesListCall {
74342	c.urlParams_.Set("fields", googleapi.CombineFields(s))
74343	return c
74344}
74345
74346// IfNoneMatch sets the optional parameter which makes the operation
74347// fail if the object's ETag matches the given value. This is useful for
74348// getting updates only after the object has changed since the last
74349// request. Use googleapi.IsNotModified to check whether the response
74350// error from Do is the result of In-None-Match.
74351func (c *ImagesListCall) IfNoneMatch(entityTag string) *ImagesListCall {
74352	c.ifNoneMatch_ = entityTag
74353	return c
74354}
74355
74356// Context sets the context to be used in this call's Do method. Any
74357// pending HTTP request will be aborted if the provided context is
74358// canceled.
74359func (c *ImagesListCall) Context(ctx context.Context) *ImagesListCall {
74360	c.ctx_ = ctx
74361	return c
74362}
74363
74364// Header returns an http.Header that can be modified by the caller to
74365// add HTTP headers to the request.
74366func (c *ImagesListCall) Header() http.Header {
74367	if c.header_ == nil {
74368		c.header_ = make(http.Header)
74369	}
74370	return c.header_
74371}
74372
74373func (c *ImagesListCall) doRequest(alt string) (*http.Response, error) {
74374	reqHeaders := make(http.Header)
74375	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
74376	for k, v := range c.header_ {
74377		reqHeaders[k] = v
74378	}
74379	reqHeaders.Set("User-Agent", c.s.userAgent())
74380	if c.ifNoneMatch_ != "" {
74381		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
74382	}
74383	var body io.Reader = nil
74384	c.urlParams_.Set("alt", alt)
74385	c.urlParams_.Set("prettyPrint", "false")
74386	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/images")
74387	urls += "?" + c.urlParams_.Encode()
74388	req, err := http.NewRequest("GET", urls, body)
74389	if err != nil {
74390		return nil, err
74391	}
74392	req.Header = reqHeaders
74393	googleapi.Expand(req.URL, map[string]string{
74394		"project": c.project,
74395	})
74396	return gensupport.SendRequest(c.ctx_, c.s.client, req)
74397}
74398
74399// Do executes the "compute.images.list" call.
74400// Exactly one of *ImageList or error will be non-nil. Any non-2xx
74401// status code is an error. Response headers are in either
74402// *ImageList.ServerResponse.Header or (if a response was returned at
74403// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
74404// to check whether the returned error was because
74405// http.StatusNotModified was returned.
74406func (c *ImagesListCall) Do(opts ...googleapi.CallOption) (*ImageList, error) {
74407	gensupport.SetOptions(c.urlParams_, opts...)
74408	res, err := c.doRequest("json")
74409	if res != nil && res.StatusCode == http.StatusNotModified {
74410		if res.Body != nil {
74411			res.Body.Close()
74412		}
74413		return nil, &googleapi.Error{
74414			Code:   res.StatusCode,
74415			Header: res.Header,
74416		}
74417	}
74418	if err != nil {
74419		return nil, err
74420	}
74421	defer googleapi.CloseBody(res)
74422	if err := googleapi.CheckResponse(res); err != nil {
74423		return nil, err
74424	}
74425	ret := &ImageList{
74426		ServerResponse: googleapi.ServerResponse{
74427			Header:         res.Header,
74428			HTTPStatusCode: res.StatusCode,
74429		},
74430	}
74431	target := &ret
74432	if err := gensupport.DecodeResponse(target, res); err != nil {
74433		return nil, err
74434	}
74435	return ret, nil
74436	// {
74437	//   "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. (== suppress_warning http-rest-shadowed ==)",
74438	//   "httpMethod": "GET",
74439	//   "id": "compute.images.list",
74440	//   "parameterOrder": [
74441	//     "project"
74442	//   ],
74443	//   "parameters": {
74444	//     "filter": {
74445	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
74446	//       "location": "query",
74447	//       "type": "string"
74448	//     },
74449	//     "maxResults": {
74450	//       "default": "500",
74451	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
74452	//       "format": "uint32",
74453	//       "location": "query",
74454	//       "minimum": "0",
74455	//       "type": "integer"
74456	//     },
74457	//     "orderBy": {
74458	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
74459	//       "location": "query",
74460	//       "type": "string"
74461	//     },
74462	//     "pageToken": {
74463	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
74464	//       "location": "query",
74465	//       "type": "string"
74466	//     },
74467	//     "project": {
74468	//       "description": "Project ID for this request.",
74469	//       "location": "path",
74470	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
74471	//       "required": true,
74472	//       "type": "string"
74473	//     }
74474	//   },
74475	//   "path": "{project}/global/images",
74476	//   "response": {
74477	//     "$ref": "ImageList"
74478	//   },
74479	//   "scopes": [
74480	//     "https://www.googleapis.com/auth/cloud-platform",
74481	//     "https://www.googleapis.com/auth/compute",
74482	//     "https://www.googleapis.com/auth/compute.readonly"
74483	//   ]
74484	// }
74485
74486}
74487
74488// Pages invokes f for each page of results.
74489// A non-nil error returned from f will halt the iteration.
74490// The provided context supersedes any context provided to the Context method.
74491func (c *ImagesListCall) Pages(ctx context.Context, f func(*ImageList) error) error {
74492	c.ctx_ = ctx
74493	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
74494	for {
74495		x, err := c.Do()
74496		if err != nil {
74497			return err
74498		}
74499		if err := f(x); err != nil {
74500			return err
74501		}
74502		if x.NextPageToken == "" {
74503			return nil
74504		}
74505		c.PageToken(x.NextPageToken)
74506	}
74507}
74508
74509// method id "compute.images.setIamPolicy":
74510
74511type ImagesSetIamPolicyCall struct {
74512	s                      *Service
74513	project                string
74514	resource               string
74515	globalsetpolicyrequest *GlobalSetPolicyRequest
74516	urlParams_             gensupport.URLParams
74517	ctx_                   context.Context
74518	header_                http.Header
74519}
74520
74521// SetIamPolicy: Sets the access control policy on the specified
74522// resource. Replaces any existing policy. (== suppress_warning
74523// http-rest-shadowed ==)
74524func (r *ImagesService) SetIamPolicy(project string, resource string, globalsetpolicyrequest *GlobalSetPolicyRequest) *ImagesSetIamPolicyCall {
74525	c := &ImagesSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
74526	c.project = project
74527	c.resource = resource
74528	c.globalsetpolicyrequest = globalsetpolicyrequest
74529	return c
74530}
74531
74532// Fields allows partial responses to be retrieved. See
74533// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
74534// for more information.
74535func (c *ImagesSetIamPolicyCall) Fields(s ...googleapi.Field) *ImagesSetIamPolicyCall {
74536	c.urlParams_.Set("fields", googleapi.CombineFields(s))
74537	return c
74538}
74539
74540// Context sets the context to be used in this call's Do method. Any
74541// pending HTTP request will be aborted if the provided context is
74542// canceled.
74543func (c *ImagesSetIamPolicyCall) Context(ctx context.Context) *ImagesSetIamPolicyCall {
74544	c.ctx_ = ctx
74545	return c
74546}
74547
74548// Header returns an http.Header that can be modified by the caller to
74549// add HTTP headers to the request.
74550func (c *ImagesSetIamPolicyCall) Header() http.Header {
74551	if c.header_ == nil {
74552		c.header_ = make(http.Header)
74553	}
74554	return c.header_
74555}
74556
74557func (c *ImagesSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
74558	reqHeaders := make(http.Header)
74559	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
74560	for k, v := range c.header_ {
74561		reqHeaders[k] = v
74562	}
74563	reqHeaders.Set("User-Agent", c.s.userAgent())
74564	var body io.Reader = nil
74565	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetpolicyrequest)
74566	if err != nil {
74567		return nil, err
74568	}
74569	reqHeaders.Set("Content-Type", "application/json")
74570	c.urlParams_.Set("alt", alt)
74571	c.urlParams_.Set("prettyPrint", "false")
74572	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/images/{resource}/setIamPolicy")
74573	urls += "?" + c.urlParams_.Encode()
74574	req, err := http.NewRequest("POST", urls, body)
74575	if err != nil {
74576		return nil, err
74577	}
74578	req.Header = reqHeaders
74579	googleapi.Expand(req.URL, map[string]string{
74580		"project":  c.project,
74581		"resource": c.resource,
74582	})
74583	return gensupport.SendRequest(c.ctx_, c.s.client, req)
74584}
74585
74586// Do executes the "compute.images.setIamPolicy" call.
74587// Exactly one of *Policy or error will be non-nil. Any non-2xx status
74588// code is an error. Response headers are in either
74589// *Policy.ServerResponse.Header or (if a response was returned at all)
74590// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
74591// check whether the returned error was because http.StatusNotModified
74592// was returned.
74593func (c *ImagesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
74594	gensupport.SetOptions(c.urlParams_, opts...)
74595	res, err := c.doRequest("json")
74596	if res != nil && res.StatusCode == http.StatusNotModified {
74597		if res.Body != nil {
74598			res.Body.Close()
74599		}
74600		return nil, &googleapi.Error{
74601			Code:   res.StatusCode,
74602			Header: res.Header,
74603		}
74604	}
74605	if err != nil {
74606		return nil, err
74607	}
74608	defer googleapi.CloseBody(res)
74609	if err := googleapi.CheckResponse(res); err != nil {
74610		return nil, err
74611	}
74612	ret := &Policy{
74613		ServerResponse: googleapi.ServerResponse{
74614			Header:         res.Header,
74615			HTTPStatusCode: res.StatusCode,
74616		},
74617	}
74618	target := &ret
74619	if err := gensupport.DecodeResponse(target, res); err != nil {
74620		return nil, err
74621	}
74622	return ret, nil
74623	// {
74624	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy. (== suppress_warning http-rest-shadowed ==)",
74625	//   "httpMethod": "POST",
74626	//   "id": "compute.images.setIamPolicy",
74627	//   "parameterOrder": [
74628	//     "project",
74629	//     "resource"
74630	//   ],
74631	//   "parameters": {
74632	//     "project": {
74633	//       "description": "Project ID for this request.",
74634	//       "location": "path",
74635	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
74636	//       "required": true,
74637	//       "type": "string"
74638	//     },
74639	//     "resource": {
74640	//       "description": "Name or id of the resource for this request.",
74641	//       "location": "path",
74642	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
74643	//       "required": true,
74644	//       "type": "string"
74645	//     }
74646	//   },
74647	//   "path": "{project}/global/images/{resource}/setIamPolicy",
74648	//   "request": {
74649	//     "$ref": "GlobalSetPolicyRequest"
74650	//   },
74651	//   "response": {
74652	//     "$ref": "Policy"
74653	//   },
74654	//   "scopes": [
74655	//     "https://www.googleapis.com/auth/cloud-platform",
74656	//     "https://www.googleapis.com/auth/compute"
74657	//   ]
74658	// }
74659
74660}
74661
74662// method id "compute.images.setLabels":
74663
74664type ImagesSetLabelsCall struct {
74665	s                      *Service
74666	project                string
74667	resource               string
74668	globalsetlabelsrequest *GlobalSetLabelsRequest
74669	urlParams_             gensupport.URLParams
74670	ctx_                   context.Context
74671	header_                http.Header
74672}
74673
74674// SetLabels: Sets the labels on an image. To learn more about labels,
74675// read the Labeling Resources documentation. (== suppress_warning
74676// http-rest-shadowed ==)
74677func (r *ImagesService) SetLabels(project string, resource string, globalsetlabelsrequest *GlobalSetLabelsRequest) *ImagesSetLabelsCall {
74678	c := &ImagesSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
74679	c.project = project
74680	c.resource = resource
74681	c.globalsetlabelsrequest = globalsetlabelsrequest
74682	return c
74683}
74684
74685// Fields allows partial responses to be retrieved. See
74686// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
74687// for more information.
74688func (c *ImagesSetLabelsCall) Fields(s ...googleapi.Field) *ImagesSetLabelsCall {
74689	c.urlParams_.Set("fields", googleapi.CombineFields(s))
74690	return c
74691}
74692
74693// Context sets the context to be used in this call's Do method. Any
74694// pending HTTP request will be aborted if the provided context is
74695// canceled.
74696func (c *ImagesSetLabelsCall) Context(ctx context.Context) *ImagesSetLabelsCall {
74697	c.ctx_ = ctx
74698	return c
74699}
74700
74701// Header returns an http.Header that can be modified by the caller to
74702// add HTTP headers to the request.
74703func (c *ImagesSetLabelsCall) Header() http.Header {
74704	if c.header_ == nil {
74705		c.header_ = make(http.Header)
74706	}
74707	return c.header_
74708}
74709
74710func (c *ImagesSetLabelsCall) doRequest(alt string) (*http.Response, error) {
74711	reqHeaders := make(http.Header)
74712	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
74713	for k, v := range c.header_ {
74714		reqHeaders[k] = v
74715	}
74716	reqHeaders.Set("User-Agent", c.s.userAgent())
74717	var body io.Reader = nil
74718	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetlabelsrequest)
74719	if err != nil {
74720		return nil, err
74721	}
74722	reqHeaders.Set("Content-Type", "application/json")
74723	c.urlParams_.Set("alt", alt)
74724	c.urlParams_.Set("prettyPrint", "false")
74725	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/images/{resource}/setLabels")
74726	urls += "?" + c.urlParams_.Encode()
74727	req, err := http.NewRequest("POST", urls, body)
74728	if err != nil {
74729		return nil, err
74730	}
74731	req.Header = reqHeaders
74732	googleapi.Expand(req.URL, map[string]string{
74733		"project":  c.project,
74734		"resource": c.resource,
74735	})
74736	return gensupport.SendRequest(c.ctx_, c.s.client, req)
74737}
74738
74739// Do executes the "compute.images.setLabels" call.
74740// Exactly one of *Operation or error will be non-nil. Any non-2xx
74741// status code is an error. Response headers are in either
74742// *Operation.ServerResponse.Header or (if a response was returned at
74743// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
74744// to check whether the returned error was because
74745// http.StatusNotModified was returned.
74746func (c *ImagesSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
74747	gensupport.SetOptions(c.urlParams_, opts...)
74748	res, err := c.doRequest("json")
74749	if res != nil && res.StatusCode == http.StatusNotModified {
74750		if res.Body != nil {
74751			res.Body.Close()
74752		}
74753		return nil, &googleapi.Error{
74754			Code:   res.StatusCode,
74755			Header: res.Header,
74756		}
74757	}
74758	if err != nil {
74759		return nil, err
74760	}
74761	defer googleapi.CloseBody(res)
74762	if err := googleapi.CheckResponse(res); err != nil {
74763		return nil, err
74764	}
74765	ret := &Operation{
74766		ServerResponse: googleapi.ServerResponse{
74767			Header:         res.Header,
74768			HTTPStatusCode: res.StatusCode,
74769		},
74770	}
74771	target := &ret
74772	if err := gensupport.DecodeResponse(target, res); err != nil {
74773		return nil, err
74774	}
74775	return ret, nil
74776	// {
74777	//   "description": "Sets the labels on an image. To learn more about labels, read the Labeling Resources documentation. (== suppress_warning http-rest-shadowed ==)",
74778	//   "httpMethod": "POST",
74779	//   "id": "compute.images.setLabels",
74780	//   "parameterOrder": [
74781	//     "project",
74782	//     "resource"
74783	//   ],
74784	//   "parameters": {
74785	//     "project": {
74786	//       "description": "Project ID for this request.",
74787	//       "location": "path",
74788	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
74789	//       "required": true,
74790	//       "type": "string"
74791	//     },
74792	//     "resource": {
74793	//       "description": "Name or id of the resource for this request.",
74794	//       "location": "path",
74795	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
74796	//       "required": true,
74797	//       "type": "string"
74798	//     }
74799	//   },
74800	//   "path": "{project}/global/images/{resource}/setLabels",
74801	//   "request": {
74802	//     "$ref": "GlobalSetLabelsRequest"
74803	//   },
74804	//   "response": {
74805	//     "$ref": "Operation"
74806	//   },
74807	//   "scopes": [
74808	//     "https://www.googleapis.com/auth/cloud-platform",
74809	//     "https://www.googleapis.com/auth/compute"
74810	//   ]
74811	// }
74812
74813}
74814
74815// method id "compute.images.testIamPermissions":
74816
74817type ImagesTestIamPermissionsCall struct {
74818	s                      *Service
74819	project                string
74820	resource               string
74821	testpermissionsrequest *TestPermissionsRequest
74822	urlParams_             gensupport.URLParams
74823	ctx_                   context.Context
74824	header_                http.Header
74825}
74826
74827// TestIamPermissions: Returns permissions that a caller has on the
74828// specified resource. (== suppress_warning http-rest-shadowed ==)
74829func (r *ImagesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *ImagesTestIamPermissionsCall {
74830	c := &ImagesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
74831	c.project = project
74832	c.resource = resource
74833	c.testpermissionsrequest = testpermissionsrequest
74834	return c
74835}
74836
74837// Fields allows partial responses to be retrieved. See
74838// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
74839// for more information.
74840func (c *ImagesTestIamPermissionsCall) Fields(s ...googleapi.Field) *ImagesTestIamPermissionsCall {
74841	c.urlParams_.Set("fields", googleapi.CombineFields(s))
74842	return c
74843}
74844
74845// Context sets the context to be used in this call's Do method. Any
74846// pending HTTP request will be aborted if the provided context is
74847// canceled.
74848func (c *ImagesTestIamPermissionsCall) Context(ctx context.Context) *ImagesTestIamPermissionsCall {
74849	c.ctx_ = ctx
74850	return c
74851}
74852
74853// Header returns an http.Header that can be modified by the caller to
74854// add HTTP headers to the request.
74855func (c *ImagesTestIamPermissionsCall) Header() http.Header {
74856	if c.header_ == nil {
74857		c.header_ = make(http.Header)
74858	}
74859	return c.header_
74860}
74861
74862func (c *ImagesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
74863	reqHeaders := make(http.Header)
74864	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
74865	for k, v := range c.header_ {
74866		reqHeaders[k] = v
74867	}
74868	reqHeaders.Set("User-Agent", c.s.userAgent())
74869	var body io.Reader = nil
74870	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
74871	if err != nil {
74872		return nil, err
74873	}
74874	reqHeaders.Set("Content-Type", "application/json")
74875	c.urlParams_.Set("alt", alt)
74876	c.urlParams_.Set("prettyPrint", "false")
74877	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/images/{resource}/testIamPermissions")
74878	urls += "?" + c.urlParams_.Encode()
74879	req, err := http.NewRequest("POST", urls, body)
74880	if err != nil {
74881		return nil, err
74882	}
74883	req.Header = reqHeaders
74884	googleapi.Expand(req.URL, map[string]string{
74885		"project":  c.project,
74886		"resource": c.resource,
74887	})
74888	return gensupport.SendRequest(c.ctx_, c.s.client, req)
74889}
74890
74891// Do executes the "compute.images.testIamPermissions" call.
74892// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
74893// non-2xx status code is an error. Response headers are in either
74894// *TestPermissionsResponse.ServerResponse.Header or (if a response was
74895// returned at all) in error.(*googleapi.Error).Header. Use
74896// googleapi.IsNotModified to check whether the returned error was
74897// because http.StatusNotModified was returned.
74898func (c *ImagesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
74899	gensupport.SetOptions(c.urlParams_, opts...)
74900	res, err := c.doRequest("json")
74901	if res != nil && res.StatusCode == http.StatusNotModified {
74902		if res.Body != nil {
74903			res.Body.Close()
74904		}
74905		return nil, &googleapi.Error{
74906			Code:   res.StatusCode,
74907			Header: res.Header,
74908		}
74909	}
74910	if err != nil {
74911		return nil, err
74912	}
74913	defer googleapi.CloseBody(res)
74914	if err := googleapi.CheckResponse(res); err != nil {
74915		return nil, err
74916	}
74917	ret := &TestPermissionsResponse{
74918		ServerResponse: googleapi.ServerResponse{
74919			Header:         res.Header,
74920			HTTPStatusCode: res.StatusCode,
74921		},
74922	}
74923	target := &ret
74924	if err := gensupport.DecodeResponse(target, res); err != nil {
74925		return nil, err
74926	}
74927	return ret, nil
74928	// {
74929	//   "description": "Returns permissions that a caller has on the specified resource. (== suppress_warning http-rest-shadowed ==)",
74930	//   "httpMethod": "POST",
74931	//   "id": "compute.images.testIamPermissions",
74932	//   "parameterOrder": [
74933	//     "project",
74934	//     "resource"
74935	//   ],
74936	//   "parameters": {
74937	//     "project": {
74938	//       "description": "Project ID for this request.",
74939	//       "location": "path",
74940	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
74941	//       "required": true,
74942	//       "type": "string"
74943	//     },
74944	//     "resource": {
74945	//       "description": "Name or id of the resource for this request.",
74946	//       "location": "path",
74947	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
74948	//       "required": true,
74949	//       "type": "string"
74950	//     }
74951	//   },
74952	//   "path": "{project}/global/images/{resource}/testIamPermissions",
74953	//   "request": {
74954	//     "$ref": "TestPermissionsRequest"
74955	//   },
74956	//   "response": {
74957	//     "$ref": "TestPermissionsResponse"
74958	//   },
74959	//   "scopes": [
74960	//     "https://www.googleapis.com/auth/cloud-platform",
74961	//     "https://www.googleapis.com/auth/compute",
74962	//     "https://www.googleapis.com/auth/compute.readonly"
74963	//   ]
74964	// }
74965
74966}
74967
74968// method id "compute.instanceGroupManagers.abandonInstances":
74969
74970type InstanceGroupManagersAbandonInstancesCall struct {
74971	s                                            *Service
74972	project                                      string
74973	zone                                         string
74974	instanceGroupManager                         string
74975	instancegroupmanagersabandoninstancesrequest *InstanceGroupManagersAbandonInstancesRequest
74976	urlParams_                                   gensupport.URLParams
74977	ctx_                                         context.Context
74978	header_                                      http.Header
74979}
74980
74981// AbandonInstances: Flags the specified instances to be removed from
74982// the managed instance group. Abandoning an instance does not delete
74983// the instance, but it does remove the instance from any target pools
74984// that are applied by the managed instance group. This method reduces
74985// the targetSize of the managed instance group by the number of
74986// instances that you abandon. This operation is marked as DONE when the
74987// action is scheduled even if the instances have not yet been removed
74988// from the group. You must separately verify the status of the
74989// abandoning action with the listmanagedinstances method.
74990//
74991// If the group is part of a backend service that has enabled connection
74992// draining, it can take up to 60 seconds after the connection draining
74993// duration has elapsed before the VM instance is removed or
74994// deleted.
74995//
74996// You can specify a maximum of 1000 instances with this method per
74997// request. (== suppress_warning http-rest-shadowed ==)
74998func (r *InstanceGroupManagersService) AbandonInstances(project string, zone string, instanceGroupManager string, instancegroupmanagersabandoninstancesrequest *InstanceGroupManagersAbandonInstancesRequest) *InstanceGroupManagersAbandonInstancesCall {
74999	c := &InstanceGroupManagersAbandonInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
75000	c.project = project
75001	c.zone = zone
75002	c.instanceGroupManager = instanceGroupManager
75003	c.instancegroupmanagersabandoninstancesrequest = instancegroupmanagersabandoninstancesrequest
75004	return c
75005}
75006
75007// RequestId sets the optional parameter "requestId": An optional
75008// request ID to identify requests. Specify a unique request ID so that
75009// if you must retry your request, the server will know to ignore the
75010// request if it has already been completed.
75011//
75012// For example, consider a situation where you make an initial request
75013// and the request times out. If you make the request again with the
75014// same request ID, the server can check if original operation with the
75015// same request ID was received, and if so, will ignore the second
75016// request. This prevents clients from accidentally creating duplicate
75017// commitments.
75018//
75019// The request ID must be a valid UUID with the exception that zero UUID
75020// is not supported (00000000-0000-0000-0000-000000000000).
75021func (c *InstanceGroupManagersAbandonInstancesCall) RequestId(requestId string) *InstanceGroupManagersAbandonInstancesCall {
75022	c.urlParams_.Set("requestId", requestId)
75023	return c
75024}
75025
75026// Fields allows partial responses to be retrieved. See
75027// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
75028// for more information.
75029func (c *InstanceGroupManagersAbandonInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupManagersAbandonInstancesCall {
75030	c.urlParams_.Set("fields", googleapi.CombineFields(s))
75031	return c
75032}
75033
75034// Context sets the context to be used in this call's Do method. Any
75035// pending HTTP request will be aborted if the provided context is
75036// canceled.
75037func (c *InstanceGroupManagersAbandonInstancesCall) Context(ctx context.Context) *InstanceGroupManagersAbandonInstancesCall {
75038	c.ctx_ = ctx
75039	return c
75040}
75041
75042// Header returns an http.Header that can be modified by the caller to
75043// add HTTP headers to the request.
75044func (c *InstanceGroupManagersAbandonInstancesCall) Header() http.Header {
75045	if c.header_ == nil {
75046		c.header_ = make(http.Header)
75047	}
75048	return c.header_
75049}
75050
75051func (c *InstanceGroupManagersAbandonInstancesCall) doRequest(alt string) (*http.Response, error) {
75052	reqHeaders := make(http.Header)
75053	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
75054	for k, v := range c.header_ {
75055		reqHeaders[k] = v
75056	}
75057	reqHeaders.Set("User-Agent", c.s.userAgent())
75058	var body io.Reader = nil
75059	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagersabandoninstancesrequest)
75060	if err != nil {
75061		return nil, err
75062	}
75063	reqHeaders.Set("Content-Type", "application/json")
75064	c.urlParams_.Set("alt", alt)
75065	c.urlParams_.Set("prettyPrint", "false")
75066	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/abandonInstances")
75067	urls += "?" + c.urlParams_.Encode()
75068	req, err := http.NewRequest("POST", urls, body)
75069	if err != nil {
75070		return nil, err
75071	}
75072	req.Header = reqHeaders
75073	googleapi.Expand(req.URL, map[string]string{
75074		"project":              c.project,
75075		"zone":                 c.zone,
75076		"instanceGroupManager": c.instanceGroupManager,
75077	})
75078	return gensupport.SendRequest(c.ctx_, c.s.client, req)
75079}
75080
75081// Do executes the "compute.instanceGroupManagers.abandonInstances" call.
75082// Exactly one of *Operation or error will be non-nil. Any non-2xx
75083// status code is an error. Response headers are in either
75084// *Operation.ServerResponse.Header or (if a response was returned at
75085// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
75086// to check whether the returned error was because
75087// http.StatusNotModified was returned.
75088func (c *InstanceGroupManagersAbandonInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
75089	gensupport.SetOptions(c.urlParams_, opts...)
75090	res, err := c.doRequest("json")
75091	if res != nil && res.StatusCode == http.StatusNotModified {
75092		if res.Body != nil {
75093			res.Body.Close()
75094		}
75095		return nil, &googleapi.Error{
75096			Code:   res.StatusCode,
75097			Header: res.Header,
75098		}
75099	}
75100	if err != nil {
75101		return nil, err
75102	}
75103	defer googleapi.CloseBody(res)
75104	if err := googleapi.CheckResponse(res); err != nil {
75105		return nil, err
75106	}
75107	ret := &Operation{
75108		ServerResponse: googleapi.ServerResponse{
75109			Header:         res.Header,
75110			HTTPStatusCode: res.StatusCode,
75111		},
75112	}
75113	target := &ret
75114	if err := gensupport.DecodeResponse(target, res); err != nil {
75115		return nil, err
75116	}
75117	return ret, nil
75118	// {
75119	//   "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. (== suppress_warning http-rest-shadowed ==)",
75120	//   "httpMethod": "POST",
75121	//   "id": "compute.instanceGroupManagers.abandonInstances",
75122	//   "parameterOrder": [
75123	//     "project",
75124	//     "zone",
75125	//     "instanceGroupManager"
75126	//   ],
75127	//   "parameters": {
75128	//     "instanceGroupManager": {
75129	//       "description": "The name of the managed instance group.",
75130	//       "location": "path",
75131	//       "required": true,
75132	//       "type": "string"
75133	//     },
75134	//     "project": {
75135	//       "description": "Project ID for this request.",
75136	//       "location": "path",
75137	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
75138	//       "required": true,
75139	//       "type": "string"
75140	//     },
75141	//     "requestId": {
75142	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
75143	//       "location": "query",
75144	//       "type": "string"
75145	//     },
75146	//     "zone": {
75147	//       "description": "The name of the zone where the managed instance group is located.",
75148	//       "location": "path",
75149	//       "required": true,
75150	//       "type": "string"
75151	//     }
75152	//   },
75153	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/abandonInstances",
75154	//   "request": {
75155	//     "$ref": "InstanceGroupManagersAbandonInstancesRequest"
75156	//   },
75157	//   "response": {
75158	//     "$ref": "Operation"
75159	//   },
75160	//   "scopes": [
75161	//     "https://www.googleapis.com/auth/cloud-platform",
75162	//     "https://www.googleapis.com/auth/compute"
75163	//   ]
75164	// }
75165
75166}
75167
75168// method id "compute.instanceGroupManagers.aggregatedList":
75169
75170type InstanceGroupManagersAggregatedListCall struct {
75171	s            *Service
75172	project      string
75173	urlParams_   gensupport.URLParams
75174	ifNoneMatch_ string
75175	ctx_         context.Context
75176	header_      http.Header
75177}
75178
75179// AggregatedList: Retrieves the list of managed instance groups and
75180// groups them by zone. (== suppress_warning http-rest-shadowed ==)
75181func (r *InstanceGroupManagersService) AggregatedList(project string) *InstanceGroupManagersAggregatedListCall {
75182	c := &InstanceGroupManagersAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
75183	c.project = project
75184	return c
75185}
75186
75187// Filter sets the optional parameter "filter": A filter expression that
75188// filters resources listed in the response. The expression must specify
75189// the field name, a comparison operator, and the value that you want to
75190// use for filtering. The value must be a string, a number, or a
75191// boolean. The comparison operator must be either =, !=, >, or <.
75192//
75193// For example, if you are filtering Compute Engine instances, you can
75194// exclude instances named example-instance by specifying name !=
75195// example-instance.
75196//
75197// You can also filter nested fields. For example, you could specify
75198// scheduling.automaticRestart = false to include instances only if they
75199// are not scheduled for automatic restarts. You can use filtering on
75200// nested fields to filter based on resource labels.
75201//
75202// To filter on multiple expressions, provide each separate expression
75203// within parentheses. For example, (scheduling.automaticRestart = true)
75204// (cpuPlatform = "Intel Skylake"). By default, each expression is an
75205// AND expression. However, you can include AND and OR expressions
75206// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
75207// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
75208// true).
75209func (c *InstanceGroupManagersAggregatedListCall) Filter(filter string) *InstanceGroupManagersAggregatedListCall {
75210	c.urlParams_.Set("filter", filter)
75211	return c
75212}
75213
75214// MaxResults sets the optional parameter "maxResults": The maximum
75215// number of results per page that should be returned. If the number of
75216// available results is larger than maxResults, Compute Engine returns a
75217// nextPageToken that can be used to get the next page of results in
75218// subsequent list requests. Acceptable values are 0 to 500, inclusive.
75219// (Default: 500)
75220func (c *InstanceGroupManagersAggregatedListCall) MaxResults(maxResults int64) *InstanceGroupManagersAggregatedListCall {
75221	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
75222	return c
75223}
75224
75225// OrderBy sets the optional parameter "orderBy": Sorts list results by
75226// a certain order. By default, results are returned in alphanumerical
75227// order based on the resource name.
75228//
75229// You can also sort results in descending order based on the creation
75230// timestamp using orderBy="creationTimestamp desc". This sorts results
75231// based on the creationTimestamp field in reverse chronological order
75232// (newest result first). Use this to sort resources like operations so
75233// that the newest operation is returned first.
75234//
75235// Currently, only sorting by name or creationTimestamp desc is
75236// supported.
75237func (c *InstanceGroupManagersAggregatedListCall) OrderBy(orderBy string) *InstanceGroupManagersAggregatedListCall {
75238	c.urlParams_.Set("orderBy", orderBy)
75239	return c
75240}
75241
75242// PageToken sets the optional parameter "pageToken": Specifies a page
75243// token to use. Set pageToken to the nextPageToken returned by a
75244// previous list request to get the next page of results.
75245func (c *InstanceGroupManagersAggregatedListCall) PageToken(pageToken string) *InstanceGroupManagersAggregatedListCall {
75246	c.urlParams_.Set("pageToken", pageToken)
75247	return c
75248}
75249
75250// Fields allows partial responses to be retrieved. See
75251// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
75252// for more information.
75253func (c *InstanceGroupManagersAggregatedListCall) Fields(s ...googleapi.Field) *InstanceGroupManagersAggregatedListCall {
75254	c.urlParams_.Set("fields", googleapi.CombineFields(s))
75255	return c
75256}
75257
75258// IfNoneMatch sets the optional parameter which makes the operation
75259// fail if the object's ETag matches the given value. This is useful for
75260// getting updates only after the object has changed since the last
75261// request. Use googleapi.IsNotModified to check whether the response
75262// error from Do is the result of In-None-Match.
75263func (c *InstanceGroupManagersAggregatedListCall) IfNoneMatch(entityTag string) *InstanceGroupManagersAggregatedListCall {
75264	c.ifNoneMatch_ = entityTag
75265	return c
75266}
75267
75268// Context sets the context to be used in this call's Do method. Any
75269// pending HTTP request will be aborted if the provided context is
75270// canceled.
75271func (c *InstanceGroupManagersAggregatedListCall) Context(ctx context.Context) *InstanceGroupManagersAggregatedListCall {
75272	c.ctx_ = ctx
75273	return c
75274}
75275
75276// Header returns an http.Header that can be modified by the caller to
75277// add HTTP headers to the request.
75278func (c *InstanceGroupManagersAggregatedListCall) Header() http.Header {
75279	if c.header_ == nil {
75280		c.header_ = make(http.Header)
75281	}
75282	return c.header_
75283}
75284
75285func (c *InstanceGroupManagersAggregatedListCall) doRequest(alt string) (*http.Response, error) {
75286	reqHeaders := make(http.Header)
75287	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
75288	for k, v := range c.header_ {
75289		reqHeaders[k] = v
75290	}
75291	reqHeaders.Set("User-Agent", c.s.userAgent())
75292	if c.ifNoneMatch_ != "" {
75293		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
75294	}
75295	var body io.Reader = nil
75296	c.urlParams_.Set("alt", alt)
75297	c.urlParams_.Set("prettyPrint", "false")
75298	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/instanceGroupManagers")
75299	urls += "?" + c.urlParams_.Encode()
75300	req, err := http.NewRequest("GET", urls, body)
75301	if err != nil {
75302		return nil, err
75303	}
75304	req.Header = reqHeaders
75305	googleapi.Expand(req.URL, map[string]string{
75306		"project": c.project,
75307	})
75308	return gensupport.SendRequest(c.ctx_, c.s.client, req)
75309}
75310
75311// Do executes the "compute.instanceGroupManagers.aggregatedList" call.
75312// Exactly one of *InstanceGroupManagerAggregatedList or error will be
75313// non-nil. Any non-2xx status code is an error. Response headers are in
75314// either *InstanceGroupManagerAggregatedList.ServerResponse.Header or
75315// (if a response was returned at all) in
75316// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
75317// whether the returned error was because http.StatusNotModified was
75318// returned.
75319func (c *InstanceGroupManagersAggregatedListCall) Do(opts ...googleapi.CallOption) (*InstanceGroupManagerAggregatedList, error) {
75320	gensupport.SetOptions(c.urlParams_, opts...)
75321	res, err := c.doRequest("json")
75322	if res != nil && res.StatusCode == http.StatusNotModified {
75323		if res.Body != nil {
75324			res.Body.Close()
75325		}
75326		return nil, &googleapi.Error{
75327			Code:   res.StatusCode,
75328			Header: res.Header,
75329		}
75330	}
75331	if err != nil {
75332		return nil, err
75333	}
75334	defer googleapi.CloseBody(res)
75335	if err := googleapi.CheckResponse(res); err != nil {
75336		return nil, err
75337	}
75338	ret := &InstanceGroupManagerAggregatedList{
75339		ServerResponse: googleapi.ServerResponse{
75340			Header:         res.Header,
75341			HTTPStatusCode: res.StatusCode,
75342		},
75343	}
75344	target := &ret
75345	if err := gensupport.DecodeResponse(target, res); err != nil {
75346		return nil, err
75347	}
75348	return ret, nil
75349	// {
75350	//   "description": "Retrieves the list of managed instance groups and groups them by zone. (== suppress_warning http-rest-shadowed ==)",
75351	//   "httpMethod": "GET",
75352	//   "id": "compute.instanceGroupManagers.aggregatedList",
75353	//   "parameterOrder": [
75354	//     "project"
75355	//   ],
75356	//   "parameters": {
75357	//     "filter": {
75358	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
75359	//       "location": "query",
75360	//       "type": "string"
75361	//     },
75362	//     "maxResults": {
75363	//       "default": "500",
75364	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
75365	//       "format": "uint32",
75366	//       "location": "query",
75367	//       "minimum": "0",
75368	//       "type": "integer"
75369	//     },
75370	//     "orderBy": {
75371	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
75372	//       "location": "query",
75373	//       "type": "string"
75374	//     },
75375	//     "pageToken": {
75376	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
75377	//       "location": "query",
75378	//       "type": "string"
75379	//     },
75380	//     "project": {
75381	//       "description": "Project ID for this request.",
75382	//       "location": "path",
75383	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
75384	//       "required": true,
75385	//       "type": "string"
75386	//     }
75387	//   },
75388	//   "path": "{project}/aggregated/instanceGroupManagers",
75389	//   "response": {
75390	//     "$ref": "InstanceGroupManagerAggregatedList"
75391	//   },
75392	//   "scopes": [
75393	//     "https://www.googleapis.com/auth/cloud-platform",
75394	//     "https://www.googleapis.com/auth/compute",
75395	//     "https://www.googleapis.com/auth/compute.readonly"
75396	//   ]
75397	// }
75398
75399}
75400
75401// Pages invokes f for each page of results.
75402// A non-nil error returned from f will halt the iteration.
75403// The provided context supersedes any context provided to the Context method.
75404func (c *InstanceGroupManagersAggregatedListCall) Pages(ctx context.Context, f func(*InstanceGroupManagerAggregatedList) error) error {
75405	c.ctx_ = ctx
75406	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
75407	for {
75408		x, err := c.Do()
75409		if err != nil {
75410			return err
75411		}
75412		if err := f(x); err != nil {
75413			return err
75414		}
75415		if x.NextPageToken == "" {
75416			return nil
75417		}
75418		c.PageToken(x.NextPageToken)
75419	}
75420}
75421
75422// method id "compute.instanceGroupManagers.applyUpdatesToInstances":
75423
75424type InstanceGroupManagersApplyUpdatesToInstancesCall struct {
75425	s                                        *Service
75426	project                                  string
75427	zone                                     string
75428	instanceGroupManager                     string
75429	instancegroupmanagersapplyupdatesrequest *InstanceGroupManagersApplyUpdatesRequest
75430	urlParams_                               gensupport.URLParams
75431	ctx_                                     context.Context
75432	header_                                  http.Header
75433}
75434
75435// ApplyUpdatesToInstances: Apply changes to selected instances on the
75436// managed instance group. This method can be used to apply new
75437// overrides and/or new versions. (== suppress_warning
75438// http-rest-shadowed ==)
75439func (r *InstanceGroupManagersService) ApplyUpdatesToInstances(project string, zone string, instanceGroupManager string, instancegroupmanagersapplyupdatesrequest *InstanceGroupManagersApplyUpdatesRequest) *InstanceGroupManagersApplyUpdatesToInstancesCall {
75440	c := &InstanceGroupManagersApplyUpdatesToInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
75441	c.project = project
75442	c.zone = zone
75443	c.instanceGroupManager = instanceGroupManager
75444	c.instancegroupmanagersapplyupdatesrequest = instancegroupmanagersapplyupdatesrequest
75445	return c
75446}
75447
75448// Fields allows partial responses to be retrieved. See
75449// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
75450// for more information.
75451func (c *InstanceGroupManagersApplyUpdatesToInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupManagersApplyUpdatesToInstancesCall {
75452	c.urlParams_.Set("fields", googleapi.CombineFields(s))
75453	return c
75454}
75455
75456// Context sets the context to be used in this call's Do method. Any
75457// pending HTTP request will be aborted if the provided context is
75458// canceled.
75459func (c *InstanceGroupManagersApplyUpdatesToInstancesCall) Context(ctx context.Context) *InstanceGroupManagersApplyUpdatesToInstancesCall {
75460	c.ctx_ = ctx
75461	return c
75462}
75463
75464// Header returns an http.Header that can be modified by the caller to
75465// add HTTP headers to the request.
75466func (c *InstanceGroupManagersApplyUpdatesToInstancesCall) Header() http.Header {
75467	if c.header_ == nil {
75468		c.header_ = make(http.Header)
75469	}
75470	return c.header_
75471}
75472
75473func (c *InstanceGroupManagersApplyUpdatesToInstancesCall) doRequest(alt string) (*http.Response, error) {
75474	reqHeaders := make(http.Header)
75475	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
75476	for k, v := range c.header_ {
75477		reqHeaders[k] = v
75478	}
75479	reqHeaders.Set("User-Agent", c.s.userAgent())
75480	var body io.Reader = nil
75481	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagersapplyupdatesrequest)
75482	if err != nil {
75483		return nil, err
75484	}
75485	reqHeaders.Set("Content-Type", "application/json")
75486	c.urlParams_.Set("alt", alt)
75487	c.urlParams_.Set("prettyPrint", "false")
75488	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/applyUpdatesToInstances")
75489	urls += "?" + c.urlParams_.Encode()
75490	req, err := http.NewRequest("POST", urls, body)
75491	if err != nil {
75492		return nil, err
75493	}
75494	req.Header = reqHeaders
75495	googleapi.Expand(req.URL, map[string]string{
75496		"project":              c.project,
75497		"zone":                 c.zone,
75498		"instanceGroupManager": c.instanceGroupManager,
75499	})
75500	return gensupport.SendRequest(c.ctx_, c.s.client, req)
75501}
75502
75503// Do executes the "compute.instanceGroupManagers.applyUpdatesToInstances" call.
75504// Exactly one of *Operation or error will be non-nil. Any non-2xx
75505// status code is an error. Response headers are in either
75506// *Operation.ServerResponse.Header or (if a response was returned at
75507// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
75508// to check whether the returned error was because
75509// http.StatusNotModified was returned.
75510func (c *InstanceGroupManagersApplyUpdatesToInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
75511	gensupport.SetOptions(c.urlParams_, opts...)
75512	res, err := c.doRequest("json")
75513	if res != nil && res.StatusCode == http.StatusNotModified {
75514		if res.Body != nil {
75515			res.Body.Close()
75516		}
75517		return nil, &googleapi.Error{
75518			Code:   res.StatusCode,
75519			Header: res.Header,
75520		}
75521	}
75522	if err != nil {
75523		return nil, err
75524	}
75525	defer googleapi.CloseBody(res)
75526	if err := googleapi.CheckResponse(res); err != nil {
75527		return nil, err
75528	}
75529	ret := &Operation{
75530		ServerResponse: googleapi.ServerResponse{
75531			Header:         res.Header,
75532			HTTPStatusCode: res.StatusCode,
75533		},
75534	}
75535	target := &ret
75536	if err := gensupport.DecodeResponse(target, res); err != nil {
75537		return nil, err
75538	}
75539	return ret, nil
75540	// {
75541	//   "description": "Apply changes to selected instances on the managed instance group. This method can be used to apply new overrides and/or new versions. (== suppress_warning http-rest-shadowed ==)",
75542	//   "httpMethod": "POST",
75543	//   "id": "compute.instanceGroupManagers.applyUpdatesToInstances",
75544	//   "parameterOrder": [
75545	//     "project",
75546	//     "zone",
75547	//     "instanceGroupManager"
75548	//   ],
75549	//   "parameters": {
75550	//     "instanceGroupManager": {
75551	//       "description": "The name of the managed instance group, should conform to RFC1035.",
75552	//       "location": "path",
75553	//       "required": true,
75554	//       "type": "string"
75555	//     },
75556	//     "project": {
75557	//       "description": "Project ID for this request.",
75558	//       "location": "path",
75559	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
75560	//       "required": true,
75561	//       "type": "string"
75562	//     },
75563	//     "zone": {
75564	//       "description": "The name of the zone where the managed instance group is located. Should conform to RFC1035.",
75565	//       "location": "path",
75566	//       "required": true,
75567	//       "type": "string"
75568	//     }
75569	//   },
75570	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/applyUpdatesToInstances",
75571	//   "request": {
75572	//     "$ref": "InstanceGroupManagersApplyUpdatesRequest"
75573	//   },
75574	//   "response": {
75575	//     "$ref": "Operation"
75576	//   },
75577	//   "scopes": [
75578	//     "https://www.googleapis.com/auth/cloud-platform",
75579	//     "https://www.googleapis.com/auth/compute"
75580	//   ]
75581	// }
75582
75583}
75584
75585// method id "compute.instanceGroupManagers.createInstances":
75586
75587type InstanceGroupManagersCreateInstancesCall struct {
75588	s                                           *Service
75589	project                                     string
75590	zone                                        string
75591	instanceGroupManager                        string
75592	instancegroupmanagerscreateinstancesrequest *InstanceGroupManagersCreateInstancesRequest
75593	urlParams_                                  gensupport.URLParams
75594	ctx_                                        context.Context
75595	header_                                     http.Header
75596}
75597
75598// CreateInstances: Creates instances with per-instance configs in this
75599// managed instance group. Instances are created using the current
75600// instance template. The create instances operation is marked DONE if
75601// the createInstances request is successful. The underlying actions
75602// take additional time. You must separately verify the status of the
75603// creating or actions with the listmanagedinstances method. (==
75604// suppress_warning http-rest-shadowed ==)
75605func (r *InstanceGroupManagersService) CreateInstances(project string, zone string, instanceGroupManager string, instancegroupmanagerscreateinstancesrequest *InstanceGroupManagersCreateInstancesRequest) *InstanceGroupManagersCreateInstancesCall {
75606	c := &InstanceGroupManagersCreateInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
75607	c.project = project
75608	c.zone = zone
75609	c.instanceGroupManager = instanceGroupManager
75610	c.instancegroupmanagerscreateinstancesrequest = instancegroupmanagerscreateinstancesrequest
75611	return c
75612}
75613
75614// RequestId sets the optional parameter "requestId": An optional
75615// request ID to identify requests. Specify a unique request ID so that
75616// if you must retry your request, the server will know to ignore the
75617// request if it has already been completed.
75618//
75619// For example, consider a situation where you make an initial request
75620// and the request times out. If you make the request again with the
75621// same request ID, the server can check if original operation with the
75622// same request ID was received, and if so, will ignore the second
75623// request.
75624//
75625// The request ID must be a valid UUID with the exception that zero UUID
75626// is not supported (00000000-0000-0000-0000-000000000000).
75627func (c *InstanceGroupManagersCreateInstancesCall) RequestId(requestId string) *InstanceGroupManagersCreateInstancesCall {
75628	c.urlParams_.Set("requestId", requestId)
75629	return c
75630}
75631
75632// Fields allows partial responses to be retrieved. See
75633// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
75634// for more information.
75635func (c *InstanceGroupManagersCreateInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupManagersCreateInstancesCall {
75636	c.urlParams_.Set("fields", googleapi.CombineFields(s))
75637	return c
75638}
75639
75640// Context sets the context to be used in this call's Do method. Any
75641// pending HTTP request will be aborted if the provided context is
75642// canceled.
75643func (c *InstanceGroupManagersCreateInstancesCall) Context(ctx context.Context) *InstanceGroupManagersCreateInstancesCall {
75644	c.ctx_ = ctx
75645	return c
75646}
75647
75648// Header returns an http.Header that can be modified by the caller to
75649// add HTTP headers to the request.
75650func (c *InstanceGroupManagersCreateInstancesCall) Header() http.Header {
75651	if c.header_ == nil {
75652		c.header_ = make(http.Header)
75653	}
75654	return c.header_
75655}
75656
75657func (c *InstanceGroupManagersCreateInstancesCall) doRequest(alt string) (*http.Response, error) {
75658	reqHeaders := make(http.Header)
75659	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
75660	for k, v := range c.header_ {
75661		reqHeaders[k] = v
75662	}
75663	reqHeaders.Set("User-Agent", c.s.userAgent())
75664	var body io.Reader = nil
75665	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagerscreateinstancesrequest)
75666	if err != nil {
75667		return nil, err
75668	}
75669	reqHeaders.Set("Content-Type", "application/json")
75670	c.urlParams_.Set("alt", alt)
75671	c.urlParams_.Set("prettyPrint", "false")
75672	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/createInstances")
75673	urls += "?" + c.urlParams_.Encode()
75674	req, err := http.NewRequest("POST", urls, body)
75675	if err != nil {
75676		return nil, err
75677	}
75678	req.Header = reqHeaders
75679	googleapi.Expand(req.URL, map[string]string{
75680		"project":              c.project,
75681		"zone":                 c.zone,
75682		"instanceGroupManager": c.instanceGroupManager,
75683	})
75684	return gensupport.SendRequest(c.ctx_, c.s.client, req)
75685}
75686
75687// Do executes the "compute.instanceGroupManagers.createInstances" call.
75688// Exactly one of *Operation or error will be non-nil. Any non-2xx
75689// status code is an error. Response headers are in either
75690// *Operation.ServerResponse.Header or (if a response was returned at
75691// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
75692// to check whether the returned error was because
75693// http.StatusNotModified was returned.
75694func (c *InstanceGroupManagersCreateInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
75695	gensupport.SetOptions(c.urlParams_, opts...)
75696	res, err := c.doRequest("json")
75697	if res != nil && res.StatusCode == http.StatusNotModified {
75698		if res.Body != nil {
75699			res.Body.Close()
75700		}
75701		return nil, &googleapi.Error{
75702			Code:   res.StatusCode,
75703			Header: res.Header,
75704		}
75705	}
75706	if err != nil {
75707		return nil, err
75708	}
75709	defer googleapi.CloseBody(res)
75710	if err := googleapi.CheckResponse(res); err != nil {
75711		return nil, err
75712	}
75713	ret := &Operation{
75714		ServerResponse: googleapi.ServerResponse{
75715			Header:         res.Header,
75716			HTTPStatusCode: res.StatusCode,
75717		},
75718	}
75719	target := &ret
75720	if err := gensupport.DecodeResponse(target, res); err != nil {
75721		return nil, err
75722	}
75723	return ret, nil
75724	// {
75725	//   "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. (== suppress_warning http-rest-shadowed ==)",
75726	//   "httpMethod": "POST",
75727	//   "id": "compute.instanceGroupManagers.createInstances",
75728	//   "parameterOrder": [
75729	//     "project",
75730	//     "zone",
75731	//     "instanceGroupManager"
75732	//   ],
75733	//   "parameters": {
75734	//     "instanceGroupManager": {
75735	//       "description": "The name of the managed instance group. It should conform to RFC1035.",
75736	//       "location": "path",
75737	//       "required": true,
75738	//       "type": "string"
75739	//     },
75740	//     "project": {
75741	//       "description": "Project ID for this request.",
75742	//       "location": "path",
75743	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
75744	//       "required": true,
75745	//       "type": "string"
75746	//     },
75747	//     "requestId": {
75748	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same 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).",
75749	//       "location": "query",
75750	//       "type": "string"
75751	//     },
75752	//     "zone": {
75753	//       "description": "The name of the zone where the managed instance group is located. It should conform to RFC1035.",
75754	//       "location": "path",
75755	//       "required": true,
75756	//       "type": "string"
75757	//     }
75758	//   },
75759	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/createInstances",
75760	//   "request": {
75761	//     "$ref": "InstanceGroupManagersCreateInstancesRequest"
75762	//   },
75763	//   "response": {
75764	//     "$ref": "Operation"
75765	//   },
75766	//   "scopes": [
75767	//     "https://www.googleapis.com/auth/cloud-platform",
75768	//     "https://www.googleapis.com/auth/compute"
75769	//   ]
75770	// }
75771
75772}
75773
75774// method id "compute.instanceGroupManagers.delete":
75775
75776type InstanceGroupManagersDeleteCall struct {
75777	s                    *Service
75778	project              string
75779	zone                 string
75780	instanceGroupManager string
75781	urlParams_           gensupport.URLParams
75782	ctx_                 context.Context
75783	header_              http.Header
75784}
75785
75786// Delete: Deletes the specified managed instance group and all of the
75787// instances in that group. Note that the instance group must not belong
75788// to a backend service. Read  Deleting an instance group for more
75789// information. (== suppress_warning http-rest-shadowed ==)
75790func (r *InstanceGroupManagersService) Delete(project string, zone string, instanceGroupManager string) *InstanceGroupManagersDeleteCall {
75791	c := &InstanceGroupManagersDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
75792	c.project = project
75793	c.zone = zone
75794	c.instanceGroupManager = instanceGroupManager
75795	return c
75796}
75797
75798// RequestId sets the optional parameter "requestId": An optional
75799// request ID to identify requests. Specify a unique request ID so that
75800// if you must retry your request, the server will know to ignore the
75801// request if it has already been completed.
75802//
75803// For example, consider a situation where you make an initial request
75804// and the request times out. If you make the request again with the
75805// same request ID, the server can check if original operation with the
75806// same request ID was received, and if so, will ignore the second
75807// request. This prevents clients from accidentally creating duplicate
75808// commitments.
75809//
75810// The request ID must be a valid UUID with the exception that zero UUID
75811// is not supported (00000000-0000-0000-0000-000000000000).
75812func (c *InstanceGroupManagersDeleteCall) RequestId(requestId string) *InstanceGroupManagersDeleteCall {
75813	c.urlParams_.Set("requestId", requestId)
75814	return c
75815}
75816
75817// Fields allows partial responses to be retrieved. See
75818// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
75819// for more information.
75820func (c *InstanceGroupManagersDeleteCall) Fields(s ...googleapi.Field) *InstanceGroupManagersDeleteCall {
75821	c.urlParams_.Set("fields", googleapi.CombineFields(s))
75822	return c
75823}
75824
75825// Context sets the context to be used in this call's Do method. Any
75826// pending HTTP request will be aborted if the provided context is
75827// canceled.
75828func (c *InstanceGroupManagersDeleteCall) Context(ctx context.Context) *InstanceGroupManagersDeleteCall {
75829	c.ctx_ = ctx
75830	return c
75831}
75832
75833// Header returns an http.Header that can be modified by the caller to
75834// add HTTP headers to the request.
75835func (c *InstanceGroupManagersDeleteCall) Header() http.Header {
75836	if c.header_ == nil {
75837		c.header_ = make(http.Header)
75838	}
75839	return c.header_
75840}
75841
75842func (c *InstanceGroupManagersDeleteCall) doRequest(alt string) (*http.Response, error) {
75843	reqHeaders := make(http.Header)
75844	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
75845	for k, v := range c.header_ {
75846		reqHeaders[k] = v
75847	}
75848	reqHeaders.Set("User-Agent", c.s.userAgent())
75849	var body io.Reader = nil
75850	c.urlParams_.Set("alt", alt)
75851	c.urlParams_.Set("prettyPrint", "false")
75852	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}")
75853	urls += "?" + c.urlParams_.Encode()
75854	req, err := http.NewRequest("DELETE", urls, body)
75855	if err != nil {
75856		return nil, err
75857	}
75858	req.Header = reqHeaders
75859	googleapi.Expand(req.URL, map[string]string{
75860		"project":              c.project,
75861		"zone":                 c.zone,
75862		"instanceGroupManager": c.instanceGroupManager,
75863	})
75864	return gensupport.SendRequest(c.ctx_, c.s.client, req)
75865}
75866
75867// Do executes the "compute.instanceGroupManagers.delete" call.
75868// Exactly one of *Operation or error will be non-nil. Any non-2xx
75869// status code is an error. Response headers are in either
75870// *Operation.ServerResponse.Header or (if a response was returned at
75871// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
75872// to check whether the returned error was because
75873// http.StatusNotModified was returned.
75874func (c *InstanceGroupManagersDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
75875	gensupport.SetOptions(c.urlParams_, opts...)
75876	res, err := c.doRequest("json")
75877	if res != nil && res.StatusCode == http.StatusNotModified {
75878		if res.Body != nil {
75879			res.Body.Close()
75880		}
75881		return nil, &googleapi.Error{
75882			Code:   res.StatusCode,
75883			Header: res.Header,
75884		}
75885	}
75886	if err != nil {
75887		return nil, err
75888	}
75889	defer googleapi.CloseBody(res)
75890	if err := googleapi.CheckResponse(res); err != nil {
75891		return nil, err
75892	}
75893	ret := &Operation{
75894		ServerResponse: googleapi.ServerResponse{
75895			Header:         res.Header,
75896			HTTPStatusCode: res.StatusCode,
75897		},
75898	}
75899	target := &ret
75900	if err := gensupport.DecodeResponse(target, res); err != nil {
75901		return nil, err
75902	}
75903	return ret, nil
75904	// {
75905	//   "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. (== suppress_warning http-rest-shadowed ==)",
75906	//   "httpMethod": "DELETE",
75907	//   "id": "compute.instanceGroupManagers.delete",
75908	//   "parameterOrder": [
75909	//     "project",
75910	//     "zone",
75911	//     "instanceGroupManager"
75912	//   ],
75913	//   "parameters": {
75914	//     "instanceGroupManager": {
75915	//       "description": "The name of the managed instance group to delete.",
75916	//       "location": "path",
75917	//       "required": true,
75918	//       "type": "string"
75919	//     },
75920	//     "project": {
75921	//       "description": "Project ID for this request.",
75922	//       "location": "path",
75923	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
75924	//       "required": true,
75925	//       "type": "string"
75926	//     },
75927	//     "requestId": {
75928	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
75929	//       "location": "query",
75930	//       "type": "string"
75931	//     },
75932	//     "zone": {
75933	//       "description": "The name of the zone where the managed instance group is located.",
75934	//       "location": "path",
75935	//       "required": true,
75936	//       "type": "string"
75937	//     }
75938	//   },
75939	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}",
75940	//   "response": {
75941	//     "$ref": "Operation"
75942	//   },
75943	//   "scopes": [
75944	//     "https://www.googleapis.com/auth/cloud-platform",
75945	//     "https://www.googleapis.com/auth/compute"
75946	//   ]
75947	// }
75948
75949}
75950
75951// method id "compute.instanceGroupManagers.deleteInstances":
75952
75953type InstanceGroupManagersDeleteInstancesCall struct {
75954	s                                           *Service
75955	project                                     string
75956	zone                                        string
75957	instanceGroupManager                        string
75958	instancegroupmanagersdeleteinstancesrequest *InstanceGroupManagersDeleteInstancesRequest
75959	urlParams_                                  gensupport.URLParams
75960	ctx_                                        context.Context
75961	header_                                     http.Header
75962}
75963
75964// DeleteInstances: Flags the specified instances in the managed
75965// instance group for immediate deletion. The instances are also removed
75966// from any target pools of which they were a member. This method
75967// reduces the targetSize of the managed instance group by the number of
75968// instances that you delete. This operation is marked as DONE when the
75969// action is scheduled even if the instances are still being deleted.
75970// You must separately verify the status of the deleting action with the
75971// listmanagedinstances method.
75972//
75973// If the group is part of a backend service that has enabled connection
75974// draining, it can take up to 60 seconds after the connection draining
75975// duration has elapsed before the VM instance is removed or
75976// deleted.
75977//
75978// You can specify a maximum of 1000 instances with this method per
75979// request. (== suppress_warning http-rest-shadowed ==)
75980func (r *InstanceGroupManagersService) DeleteInstances(project string, zone string, instanceGroupManager string, instancegroupmanagersdeleteinstancesrequest *InstanceGroupManagersDeleteInstancesRequest) *InstanceGroupManagersDeleteInstancesCall {
75981	c := &InstanceGroupManagersDeleteInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
75982	c.project = project
75983	c.zone = zone
75984	c.instanceGroupManager = instanceGroupManager
75985	c.instancegroupmanagersdeleteinstancesrequest = instancegroupmanagersdeleteinstancesrequest
75986	return c
75987}
75988
75989// RequestId sets the optional parameter "requestId": An optional
75990// request ID to identify requests. Specify a unique request ID so that
75991// if you must retry your request, the server will know to ignore the
75992// request if it has already been completed.
75993//
75994// For example, consider a situation where you make an initial request
75995// and the request times out. If you make the request again with the
75996// same request ID, the server can check if original operation with the
75997// same request ID was received, and if so, will ignore the second
75998// request. This prevents clients from accidentally creating duplicate
75999// commitments.
76000//
76001// The request ID must be a valid UUID with the exception that zero UUID
76002// is not supported (00000000-0000-0000-0000-000000000000).
76003func (c *InstanceGroupManagersDeleteInstancesCall) RequestId(requestId string) *InstanceGroupManagersDeleteInstancesCall {
76004	c.urlParams_.Set("requestId", requestId)
76005	return c
76006}
76007
76008// Fields allows partial responses to be retrieved. See
76009// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
76010// for more information.
76011func (c *InstanceGroupManagersDeleteInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupManagersDeleteInstancesCall {
76012	c.urlParams_.Set("fields", googleapi.CombineFields(s))
76013	return c
76014}
76015
76016// Context sets the context to be used in this call's Do method. Any
76017// pending HTTP request will be aborted if the provided context is
76018// canceled.
76019func (c *InstanceGroupManagersDeleteInstancesCall) Context(ctx context.Context) *InstanceGroupManagersDeleteInstancesCall {
76020	c.ctx_ = ctx
76021	return c
76022}
76023
76024// Header returns an http.Header that can be modified by the caller to
76025// add HTTP headers to the request.
76026func (c *InstanceGroupManagersDeleteInstancesCall) Header() http.Header {
76027	if c.header_ == nil {
76028		c.header_ = make(http.Header)
76029	}
76030	return c.header_
76031}
76032
76033func (c *InstanceGroupManagersDeleteInstancesCall) doRequest(alt string) (*http.Response, error) {
76034	reqHeaders := make(http.Header)
76035	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
76036	for k, v := range c.header_ {
76037		reqHeaders[k] = v
76038	}
76039	reqHeaders.Set("User-Agent", c.s.userAgent())
76040	var body io.Reader = nil
76041	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagersdeleteinstancesrequest)
76042	if err != nil {
76043		return nil, err
76044	}
76045	reqHeaders.Set("Content-Type", "application/json")
76046	c.urlParams_.Set("alt", alt)
76047	c.urlParams_.Set("prettyPrint", "false")
76048	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/deleteInstances")
76049	urls += "?" + c.urlParams_.Encode()
76050	req, err := http.NewRequest("POST", urls, body)
76051	if err != nil {
76052		return nil, err
76053	}
76054	req.Header = reqHeaders
76055	googleapi.Expand(req.URL, map[string]string{
76056		"project":              c.project,
76057		"zone":                 c.zone,
76058		"instanceGroupManager": c.instanceGroupManager,
76059	})
76060	return gensupport.SendRequest(c.ctx_, c.s.client, req)
76061}
76062
76063// Do executes the "compute.instanceGroupManagers.deleteInstances" call.
76064// Exactly one of *Operation or error will be non-nil. Any non-2xx
76065// status code is an error. Response headers are in either
76066// *Operation.ServerResponse.Header or (if a response was returned at
76067// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
76068// to check whether the returned error was because
76069// http.StatusNotModified was returned.
76070func (c *InstanceGroupManagersDeleteInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
76071	gensupport.SetOptions(c.urlParams_, opts...)
76072	res, err := c.doRequest("json")
76073	if res != nil && res.StatusCode == http.StatusNotModified {
76074		if res.Body != nil {
76075			res.Body.Close()
76076		}
76077		return nil, &googleapi.Error{
76078			Code:   res.StatusCode,
76079			Header: res.Header,
76080		}
76081	}
76082	if err != nil {
76083		return nil, err
76084	}
76085	defer googleapi.CloseBody(res)
76086	if err := googleapi.CheckResponse(res); err != nil {
76087		return nil, err
76088	}
76089	ret := &Operation{
76090		ServerResponse: googleapi.ServerResponse{
76091			Header:         res.Header,
76092			HTTPStatusCode: res.StatusCode,
76093		},
76094	}
76095	target := &ret
76096	if err := gensupport.DecodeResponse(target, res); err != nil {
76097		return nil, err
76098	}
76099	return ret, nil
76100	// {
76101	//   "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. (== suppress_warning http-rest-shadowed ==)",
76102	//   "httpMethod": "POST",
76103	//   "id": "compute.instanceGroupManagers.deleteInstances",
76104	//   "parameterOrder": [
76105	//     "project",
76106	//     "zone",
76107	//     "instanceGroupManager"
76108	//   ],
76109	//   "parameters": {
76110	//     "instanceGroupManager": {
76111	//       "description": "The name of the managed instance group.",
76112	//       "location": "path",
76113	//       "required": true,
76114	//       "type": "string"
76115	//     },
76116	//     "project": {
76117	//       "description": "Project ID for this request.",
76118	//       "location": "path",
76119	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
76120	//       "required": true,
76121	//       "type": "string"
76122	//     },
76123	//     "requestId": {
76124	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
76125	//       "location": "query",
76126	//       "type": "string"
76127	//     },
76128	//     "zone": {
76129	//       "description": "The name of the zone where the managed instance group is located.",
76130	//       "location": "path",
76131	//       "required": true,
76132	//       "type": "string"
76133	//     }
76134	//   },
76135	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/deleteInstances",
76136	//   "request": {
76137	//     "$ref": "InstanceGroupManagersDeleteInstancesRequest"
76138	//   },
76139	//   "response": {
76140	//     "$ref": "Operation"
76141	//   },
76142	//   "scopes": [
76143	//     "https://www.googleapis.com/auth/cloud-platform",
76144	//     "https://www.googleapis.com/auth/compute"
76145	//   ]
76146	// }
76147
76148}
76149
76150// method id "compute.instanceGroupManagers.deletePerInstanceConfigs":
76151
76152type InstanceGroupManagersDeletePerInstanceConfigsCall struct {
76153	s                                                *Service
76154	project                                          string
76155	zone                                             string
76156	instanceGroupManager                             string
76157	instancegroupmanagersdeleteperinstanceconfigsreq *InstanceGroupManagersDeletePerInstanceConfigsReq
76158	urlParams_                                       gensupport.URLParams
76159	ctx_                                             context.Context
76160	header_                                          http.Header
76161}
76162
76163// DeletePerInstanceConfigs: Deletes selected per-instance configs for
76164// the managed instance group. (== suppress_warning http-rest-shadowed
76165// ==)
76166func (r *InstanceGroupManagersService) DeletePerInstanceConfigs(project string, zone string, instanceGroupManager string, instancegroupmanagersdeleteperinstanceconfigsreq *InstanceGroupManagersDeletePerInstanceConfigsReq) *InstanceGroupManagersDeletePerInstanceConfigsCall {
76167	c := &InstanceGroupManagersDeletePerInstanceConfigsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
76168	c.project = project
76169	c.zone = zone
76170	c.instanceGroupManager = instanceGroupManager
76171	c.instancegroupmanagersdeleteperinstanceconfigsreq = instancegroupmanagersdeleteperinstanceconfigsreq
76172	return c
76173}
76174
76175// Fields allows partial responses to be retrieved. See
76176// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
76177// for more information.
76178func (c *InstanceGroupManagersDeletePerInstanceConfigsCall) Fields(s ...googleapi.Field) *InstanceGroupManagersDeletePerInstanceConfigsCall {
76179	c.urlParams_.Set("fields", googleapi.CombineFields(s))
76180	return c
76181}
76182
76183// Context sets the context to be used in this call's Do method. Any
76184// pending HTTP request will be aborted if the provided context is
76185// canceled.
76186func (c *InstanceGroupManagersDeletePerInstanceConfigsCall) Context(ctx context.Context) *InstanceGroupManagersDeletePerInstanceConfigsCall {
76187	c.ctx_ = ctx
76188	return c
76189}
76190
76191// Header returns an http.Header that can be modified by the caller to
76192// add HTTP headers to the request.
76193func (c *InstanceGroupManagersDeletePerInstanceConfigsCall) Header() http.Header {
76194	if c.header_ == nil {
76195		c.header_ = make(http.Header)
76196	}
76197	return c.header_
76198}
76199
76200func (c *InstanceGroupManagersDeletePerInstanceConfigsCall) doRequest(alt string) (*http.Response, error) {
76201	reqHeaders := make(http.Header)
76202	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
76203	for k, v := range c.header_ {
76204		reqHeaders[k] = v
76205	}
76206	reqHeaders.Set("User-Agent", c.s.userAgent())
76207	var body io.Reader = nil
76208	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagersdeleteperinstanceconfigsreq)
76209	if err != nil {
76210		return nil, err
76211	}
76212	reqHeaders.Set("Content-Type", "application/json")
76213	c.urlParams_.Set("alt", alt)
76214	c.urlParams_.Set("prettyPrint", "false")
76215	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/deletePerInstanceConfigs")
76216	urls += "?" + c.urlParams_.Encode()
76217	req, err := http.NewRequest("POST", urls, body)
76218	if err != nil {
76219		return nil, err
76220	}
76221	req.Header = reqHeaders
76222	googleapi.Expand(req.URL, map[string]string{
76223		"project":              c.project,
76224		"zone":                 c.zone,
76225		"instanceGroupManager": c.instanceGroupManager,
76226	})
76227	return gensupport.SendRequest(c.ctx_, c.s.client, req)
76228}
76229
76230// Do executes the "compute.instanceGroupManagers.deletePerInstanceConfigs" call.
76231// Exactly one of *Operation or error will be non-nil. Any non-2xx
76232// status code is an error. Response headers are in either
76233// *Operation.ServerResponse.Header or (if a response was returned at
76234// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
76235// to check whether the returned error was because
76236// http.StatusNotModified was returned.
76237func (c *InstanceGroupManagersDeletePerInstanceConfigsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
76238	gensupport.SetOptions(c.urlParams_, opts...)
76239	res, err := c.doRequest("json")
76240	if res != nil && res.StatusCode == http.StatusNotModified {
76241		if res.Body != nil {
76242			res.Body.Close()
76243		}
76244		return nil, &googleapi.Error{
76245			Code:   res.StatusCode,
76246			Header: res.Header,
76247		}
76248	}
76249	if err != nil {
76250		return nil, err
76251	}
76252	defer googleapi.CloseBody(res)
76253	if err := googleapi.CheckResponse(res); err != nil {
76254		return nil, err
76255	}
76256	ret := &Operation{
76257		ServerResponse: googleapi.ServerResponse{
76258			Header:         res.Header,
76259			HTTPStatusCode: res.StatusCode,
76260		},
76261	}
76262	target := &ret
76263	if err := gensupport.DecodeResponse(target, res); err != nil {
76264		return nil, err
76265	}
76266	return ret, nil
76267	// {
76268	//   "description": "Deletes selected per-instance configs for the managed instance group. (== suppress_warning http-rest-shadowed ==)",
76269	//   "httpMethod": "POST",
76270	//   "id": "compute.instanceGroupManagers.deletePerInstanceConfigs",
76271	//   "parameterOrder": [
76272	//     "project",
76273	//     "zone",
76274	//     "instanceGroupManager"
76275	//   ],
76276	//   "parameters": {
76277	//     "instanceGroupManager": {
76278	//       "description": "The name of the managed instance group. It should conform to RFC1035.",
76279	//       "location": "path",
76280	//       "required": true,
76281	//       "type": "string"
76282	//     },
76283	//     "project": {
76284	//       "description": "Project ID for this request.",
76285	//       "location": "path",
76286	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
76287	//       "required": true,
76288	//       "type": "string"
76289	//     },
76290	//     "zone": {
76291	//       "description": "The name of the zone where the managed instance group is located. It should conform to RFC1035.",
76292	//       "location": "path",
76293	//       "required": true,
76294	//       "type": "string"
76295	//     }
76296	//   },
76297	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/deletePerInstanceConfigs",
76298	//   "request": {
76299	//     "$ref": "InstanceGroupManagersDeletePerInstanceConfigsReq"
76300	//   },
76301	//   "response": {
76302	//     "$ref": "Operation"
76303	//   },
76304	//   "scopes": [
76305	//     "https://www.googleapis.com/auth/cloud-platform",
76306	//     "https://www.googleapis.com/auth/compute"
76307	//   ]
76308	// }
76309
76310}
76311
76312// method id "compute.instanceGroupManagers.get":
76313
76314type InstanceGroupManagersGetCall struct {
76315	s                    *Service
76316	project              string
76317	zone                 string
76318	instanceGroupManager string
76319	urlParams_           gensupport.URLParams
76320	ifNoneMatch_         string
76321	ctx_                 context.Context
76322	header_              http.Header
76323}
76324
76325// Get: Returns all of the details about the specified managed instance
76326// group. Gets a list of available managed instance groups by making a
76327// list() request. (== suppress_warning http-rest-shadowed ==)
76328func (r *InstanceGroupManagersService) Get(project string, zone string, instanceGroupManager string) *InstanceGroupManagersGetCall {
76329	c := &InstanceGroupManagersGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
76330	c.project = project
76331	c.zone = zone
76332	c.instanceGroupManager = instanceGroupManager
76333	return c
76334}
76335
76336// Fields allows partial responses to be retrieved. See
76337// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
76338// for more information.
76339func (c *InstanceGroupManagersGetCall) Fields(s ...googleapi.Field) *InstanceGroupManagersGetCall {
76340	c.urlParams_.Set("fields", googleapi.CombineFields(s))
76341	return c
76342}
76343
76344// IfNoneMatch sets the optional parameter which makes the operation
76345// fail if the object's ETag matches the given value. This is useful for
76346// getting updates only after the object has changed since the last
76347// request. Use googleapi.IsNotModified to check whether the response
76348// error from Do is the result of In-None-Match.
76349func (c *InstanceGroupManagersGetCall) IfNoneMatch(entityTag string) *InstanceGroupManagersGetCall {
76350	c.ifNoneMatch_ = entityTag
76351	return c
76352}
76353
76354// Context sets the context to be used in this call's Do method. Any
76355// pending HTTP request will be aborted if the provided context is
76356// canceled.
76357func (c *InstanceGroupManagersGetCall) Context(ctx context.Context) *InstanceGroupManagersGetCall {
76358	c.ctx_ = ctx
76359	return c
76360}
76361
76362// Header returns an http.Header that can be modified by the caller to
76363// add HTTP headers to the request.
76364func (c *InstanceGroupManagersGetCall) Header() http.Header {
76365	if c.header_ == nil {
76366		c.header_ = make(http.Header)
76367	}
76368	return c.header_
76369}
76370
76371func (c *InstanceGroupManagersGetCall) doRequest(alt string) (*http.Response, error) {
76372	reqHeaders := make(http.Header)
76373	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
76374	for k, v := range c.header_ {
76375		reqHeaders[k] = v
76376	}
76377	reqHeaders.Set("User-Agent", c.s.userAgent())
76378	if c.ifNoneMatch_ != "" {
76379		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
76380	}
76381	var body io.Reader = nil
76382	c.urlParams_.Set("alt", alt)
76383	c.urlParams_.Set("prettyPrint", "false")
76384	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}")
76385	urls += "?" + c.urlParams_.Encode()
76386	req, err := http.NewRequest("GET", urls, body)
76387	if err != nil {
76388		return nil, err
76389	}
76390	req.Header = reqHeaders
76391	googleapi.Expand(req.URL, map[string]string{
76392		"project":              c.project,
76393		"zone":                 c.zone,
76394		"instanceGroupManager": c.instanceGroupManager,
76395	})
76396	return gensupport.SendRequest(c.ctx_, c.s.client, req)
76397}
76398
76399// Do executes the "compute.instanceGroupManagers.get" call.
76400// Exactly one of *InstanceGroupManager or error will be non-nil. Any
76401// non-2xx status code is an error. Response headers are in either
76402// *InstanceGroupManager.ServerResponse.Header or (if a response was
76403// returned at all) in error.(*googleapi.Error).Header. Use
76404// googleapi.IsNotModified to check whether the returned error was
76405// because http.StatusNotModified was returned.
76406func (c *InstanceGroupManagersGetCall) Do(opts ...googleapi.CallOption) (*InstanceGroupManager, error) {
76407	gensupport.SetOptions(c.urlParams_, opts...)
76408	res, err := c.doRequest("json")
76409	if res != nil && res.StatusCode == http.StatusNotModified {
76410		if res.Body != nil {
76411			res.Body.Close()
76412		}
76413		return nil, &googleapi.Error{
76414			Code:   res.StatusCode,
76415			Header: res.Header,
76416		}
76417	}
76418	if err != nil {
76419		return nil, err
76420	}
76421	defer googleapi.CloseBody(res)
76422	if err := googleapi.CheckResponse(res); err != nil {
76423		return nil, err
76424	}
76425	ret := &InstanceGroupManager{
76426		ServerResponse: googleapi.ServerResponse{
76427			Header:         res.Header,
76428			HTTPStatusCode: res.StatusCode,
76429		},
76430	}
76431	target := &ret
76432	if err := gensupport.DecodeResponse(target, res); err != nil {
76433		return nil, err
76434	}
76435	return ret, nil
76436	// {
76437	//   "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. (== suppress_warning http-rest-shadowed ==)",
76438	//   "httpMethod": "GET",
76439	//   "id": "compute.instanceGroupManagers.get",
76440	//   "parameterOrder": [
76441	//     "project",
76442	//     "zone",
76443	//     "instanceGroupManager"
76444	//   ],
76445	//   "parameters": {
76446	//     "instanceGroupManager": {
76447	//       "description": "The name of the managed instance group.",
76448	//       "location": "path",
76449	//       "required": true,
76450	//       "type": "string"
76451	//     },
76452	//     "project": {
76453	//       "description": "Project ID for this request.",
76454	//       "location": "path",
76455	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
76456	//       "required": true,
76457	//       "type": "string"
76458	//     },
76459	//     "zone": {
76460	//       "description": "The name of the zone where the managed instance group is located.",
76461	//       "location": "path",
76462	//       "required": true,
76463	//       "type": "string"
76464	//     }
76465	//   },
76466	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}",
76467	//   "response": {
76468	//     "$ref": "InstanceGroupManager"
76469	//   },
76470	//   "scopes": [
76471	//     "https://www.googleapis.com/auth/cloud-platform",
76472	//     "https://www.googleapis.com/auth/compute",
76473	//     "https://www.googleapis.com/auth/compute.readonly"
76474	//   ]
76475	// }
76476
76477}
76478
76479// method id "compute.instanceGroupManagers.insert":
76480
76481type InstanceGroupManagersInsertCall struct {
76482	s                    *Service
76483	project              string
76484	zone                 string
76485	instancegroupmanager *InstanceGroupManager
76486	urlParams_           gensupport.URLParams
76487	ctx_                 context.Context
76488	header_              http.Header
76489}
76490
76491// Insert: Creates a managed instance group using the information that
76492// you specify in the request. After the group is created, instances in
76493// the group are created using the specified instance template. This
76494// operation is marked as DONE when the group is created even if the
76495// instances in the group have not yet been created. You must separately
76496// verify the status of the individual instances with the
76497// listmanagedinstances method.
76498//
76499// A managed instance group can have up to 1000 VM instances per group.
76500// Please contact Cloud Support if you need an increase in this limit.
76501// (== suppress_warning http-rest-shadowed ==)
76502func (r *InstanceGroupManagersService) Insert(project string, zone string, instancegroupmanager *InstanceGroupManager) *InstanceGroupManagersInsertCall {
76503	c := &InstanceGroupManagersInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
76504	c.project = project
76505	c.zone = zone
76506	c.instancegroupmanager = instancegroupmanager
76507	return c
76508}
76509
76510// RequestId sets the optional parameter "requestId": An optional
76511// request ID to identify requests. Specify a unique request ID so that
76512// if you must retry your request, the server will know to ignore the
76513// request if it has already been completed.
76514//
76515// For example, consider a situation where you make an initial request
76516// and the request times out. If you make the request again with the
76517// same request ID, the server can check if original operation with the
76518// same request ID was received, and if so, will ignore the second
76519// request. This prevents clients from accidentally creating duplicate
76520// commitments.
76521//
76522// The request ID must be a valid UUID with the exception that zero UUID
76523// is not supported (00000000-0000-0000-0000-000000000000).
76524func (c *InstanceGroupManagersInsertCall) RequestId(requestId string) *InstanceGroupManagersInsertCall {
76525	c.urlParams_.Set("requestId", requestId)
76526	return c
76527}
76528
76529// Fields allows partial responses to be retrieved. See
76530// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
76531// for more information.
76532func (c *InstanceGroupManagersInsertCall) Fields(s ...googleapi.Field) *InstanceGroupManagersInsertCall {
76533	c.urlParams_.Set("fields", googleapi.CombineFields(s))
76534	return c
76535}
76536
76537// Context sets the context to be used in this call's Do method. Any
76538// pending HTTP request will be aborted if the provided context is
76539// canceled.
76540func (c *InstanceGroupManagersInsertCall) Context(ctx context.Context) *InstanceGroupManagersInsertCall {
76541	c.ctx_ = ctx
76542	return c
76543}
76544
76545// Header returns an http.Header that can be modified by the caller to
76546// add HTTP headers to the request.
76547func (c *InstanceGroupManagersInsertCall) Header() http.Header {
76548	if c.header_ == nil {
76549		c.header_ = make(http.Header)
76550	}
76551	return c.header_
76552}
76553
76554func (c *InstanceGroupManagersInsertCall) doRequest(alt string) (*http.Response, error) {
76555	reqHeaders := make(http.Header)
76556	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
76557	for k, v := range c.header_ {
76558		reqHeaders[k] = v
76559	}
76560	reqHeaders.Set("User-Agent", c.s.userAgent())
76561	var body io.Reader = nil
76562	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanager)
76563	if err != nil {
76564		return nil, err
76565	}
76566	reqHeaders.Set("Content-Type", "application/json")
76567	c.urlParams_.Set("alt", alt)
76568	c.urlParams_.Set("prettyPrint", "false")
76569	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers")
76570	urls += "?" + c.urlParams_.Encode()
76571	req, err := http.NewRequest("POST", urls, body)
76572	if err != nil {
76573		return nil, err
76574	}
76575	req.Header = reqHeaders
76576	googleapi.Expand(req.URL, map[string]string{
76577		"project": c.project,
76578		"zone":    c.zone,
76579	})
76580	return gensupport.SendRequest(c.ctx_, c.s.client, req)
76581}
76582
76583// Do executes the "compute.instanceGroupManagers.insert" call.
76584// Exactly one of *Operation or error will be non-nil. Any non-2xx
76585// status code is an error. Response headers are in either
76586// *Operation.ServerResponse.Header or (if a response was returned at
76587// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
76588// to check whether the returned error was because
76589// http.StatusNotModified was returned.
76590func (c *InstanceGroupManagersInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
76591	gensupport.SetOptions(c.urlParams_, opts...)
76592	res, err := c.doRequest("json")
76593	if res != nil && res.StatusCode == http.StatusNotModified {
76594		if res.Body != nil {
76595			res.Body.Close()
76596		}
76597		return nil, &googleapi.Error{
76598			Code:   res.StatusCode,
76599			Header: res.Header,
76600		}
76601	}
76602	if err != nil {
76603		return nil, err
76604	}
76605	defer googleapi.CloseBody(res)
76606	if err := googleapi.CheckResponse(res); err != nil {
76607		return nil, err
76608	}
76609	ret := &Operation{
76610		ServerResponse: googleapi.ServerResponse{
76611			Header:         res.Header,
76612			HTTPStatusCode: res.StatusCode,
76613		},
76614	}
76615	target := &ret
76616	if err := gensupport.DecodeResponse(target, res); err != nil {
76617		return nil, err
76618	}
76619	return ret, nil
76620	// {
76621	//   "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. (== suppress_warning http-rest-shadowed ==)",
76622	//   "httpMethod": "POST",
76623	//   "id": "compute.instanceGroupManagers.insert",
76624	//   "parameterOrder": [
76625	//     "project",
76626	//     "zone"
76627	//   ],
76628	//   "parameters": {
76629	//     "project": {
76630	//       "description": "Project ID for this request.",
76631	//       "location": "path",
76632	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
76633	//       "required": true,
76634	//       "type": "string"
76635	//     },
76636	//     "requestId": {
76637	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
76638	//       "location": "query",
76639	//       "type": "string"
76640	//     },
76641	//     "zone": {
76642	//       "description": "The name of the zone where you want to create the managed instance group.",
76643	//       "location": "path",
76644	//       "required": true,
76645	//       "type": "string"
76646	//     }
76647	//   },
76648	//   "path": "{project}/zones/{zone}/instanceGroupManagers",
76649	//   "request": {
76650	//     "$ref": "InstanceGroupManager"
76651	//   },
76652	//   "response": {
76653	//     "$ref": "Operation"
76654	//   },
76655	//   "scopes": [
76656	//     "https://www.googleapis.com/auth/cloud-platform",
76657	//     "https://www.googleapis.com/auth/compute"
76658	//   ]
76659	// }
76660
76661}
76662
76663// method id "compute.instanceGroupManagers.list":
76664
76665type InstanceGroupManagersListCall struct {
76666	s            *Service
76667	project      string
76668	zone         string
76669	urlParams_   gensupport.URLParams
76670	ifNoneMatch_ string
76671	ctx_         context.Context
76672	header_      http.Header
76673}
76674
76675// List: Retrieves a list of managed instance groups that are contained
76676// within the specified project and zone. (== suppress_warning
76677// http-rest-shadowed ==)
76678func (r *InstanceGroupManagersService) List(project string, zone string) *InstanceGroupManagersListCall {
76679	c := &InstanceGroupManagersListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
76680	c.project = project
76681	c.zone = zone
76682	return c
76683}
76684
76685// Filter sets the optional parameter "filter": A filter expression that
76686// filters resources listed in the response. The expression must specify
76687// the field name, a comparison operator, and the value that you want to
76688// use for filtering. The value must be a string, a number, or a
76689// boolean. The comparison operator must be either =, !=, >, or <.
76690//
76691// For example, if you are filtering Compute Engine instances, you can
76692// exclude instances named example-instance by specifying name !=
76693// example-instance.
76694//
76695// You can also filter nested fields. For example, you could specify
76696// scheduling.automaticRestart = false to include instances only if they
76697// are not scheduled for automatic restarts. You can use filtering on
76698// nested fields to filter based on resource labels.
76699//
76700// To filter on multiple expressions, provide each separate expression
76701// within parentheses. For example, (scheduling.automaticRestart = true)
76702// (cpuPlatform = "Intel Skylake"). By default, each expression is an
76703// AND expression. However, you can include AND and OR expressions
76704// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
76705// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
76706// true).
76707func (c *InstanceGroupManagersListCall) Filter(filter string) *InstanceGroupManagersListCall {
76708	c.urlParams_.Set("filter", filter)
76709	return c
76710}
76711
76712// MaxResults sets the optional parameter "maxResults": The maximum
76713// number of results per page that should be returned. If the number of
76714// available results is larger than maxResults, Compute Engine returns a
76715// nextPageToken that can be used to get the next page of results in
76716// subsequent list requests. Acceptable values are 0 to 500, inclusive.
76717// (Default: 500)
76718func (c *InstanceGroupManagersListCall) MaxResults(maxResults int64) *InstanceGroupManagersListCall {
76719	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
76720	return c
76721}
76722
76723// OrderBy sets the optional parameter "orderBy": Sorts list results by
76724// a certain order. By default, results are returned in alphanumerical
76725// order based on the resource name.
76726//
76727// You can also sort results in descending order based on the creation
76728// timestamp using orderBy="creationTimestamp desc". This sorts results
76729// based on the creationTimestamp field in reverse chronological order
76730// (newest result first). Use this to sort resources like operations so
76731// that the newest operation is returned first.
76732//
76733// Currently, only sorting by name or creationTimestamp desc is
76734// supported.
76735func (c *InstanceGroupManagersListCall) OrderBy(orderBy string) *InstanceGroupManagersListCall {
76736	c.urlParams_.Set("orderBy", orderBy)
76737	return c
76738}
76739
76740// PageToken sets the optional parameter "pageToken": Specifies a page
76741// token to use. Set pageToken to the nextPageToken returned by a
76742// previous list request to get the next page of results.
76743func (c *InstanceGroupManagersListCall) PageToken(pageToken string) *InstanceGroupManagersListCall {
76744	c.urlParams_.Set("pageToken", pageToken)
76745	return c
76746}
76747
76748// Fields allows partial responses to be retrieved. See
76749// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
76750// for more information.
76751func (c *InstanceGroupManagersListCall) Fields(s ...googleapi.Field) *InstanceGroupManagersListCall {
76752	c.urlParams_.Set("fields", googleapi.CombineFields(s))
76753	return c
76754}
76755
76756// IfNoneMatch sets the optional parameter which makes the operation
76757// fail if the object's ETag matches the given value. This is useful for
76758// getting updates only after the object has changed since the last
76759// request. Use googleapi.IsNotModified to check whether the response
76760// error from Do is the result of In-None-Match.
76761func (c *InstanceGroupManagersListCall) IfNoneMatch(entityTag string) *InstanceGroupManagersListCall {
76762	c.ifNoneMatch_ = entityTag
76763	return c
76764}
76765
76766// Context sets the context to be used in this call's Do method. Any
76767// pending HTTP request will be aborted if the provided context is
76768// canceled.
76769func (c *InstanceGroupManagersListCall) Context(ctx context.Context) *InstanceGroupManagersListCall {
76770	c.ctx_ = ctx
76771	return c
76772}
76773
76774// Header returns an http.Header that can be modified by the caller to
76775// add HTTP headers to the request.
76776func (c *InstanceGroupManagersListCall) Header() http.Header {
76777	if c.header_ == nil {
76778		c.header_ = make(http.Header)
76779	}
76780	return c.header_
76781}
76782
76783func (c *InstanceGroupManagersListCall) doRequest(alt string) (*http.Response, error) {
76784	reqHeaders := make(http.Header)
76785	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
76786	for k, v := range c.header_ {
76787		reqHeaders[k] = v
76788	}
76789	reqHeaders.Set("User-Agent", c.s.userAgent())
76790	if c.ifNoneMatch_ != "" {
76791		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
76792	}
76793	var body io.Reader = nil
76794	c.urlParams_.Set("alt", alt)
76795	c.urlParams_.Set("prettyPrint", "false")
76796	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers")
76797	urls += "?" + c.urlParams_.Encode()
76798	req, err := http.NewRequest("GET", urls, body)
76799	if err != nil {
76800		return nil, err
76801	}
76802	req.Header = reqHeaders
76803	googleapi.Expand(req.URL, map[string]string{
76804		"project": c.project,
76805		"zone":    c.zone,
76806	})
76807	return gensupport.SendRequest(c.ctx_, c.s.client, req)
76808}
76809
76810// Do executes the "compute.instanceGroupManagers.list" call.
76811// Exactly one of *InstanceGroupManagerList or error will be non-nil.
76812// Any non-2xx status code is an error. Response headers are in either
76813// *InstanceGroupManagerList.ServerResponse.Header or (if a response was
76814// returned at all) in error.(*googleapi.Error).Header. Use
76815// googleapi.IsNotModified to check whether the returned error was
76816// because http.StatusNotModified was returned.
76817func (c *InstanceGroupManagersListCall) Do(opts ...googleapi.CallOption) (*InstanceGroupManagerList, error) {
76818	gensupport.SetOptions(c.urlParams_, opts...)
76819	res, err := c.doRequest("json")
76820	if res != nil && res.StatusCode == http.StatusNotModified {
76821		if res.Body != nil {
76822			res.Body.Close()
76823		}
76824		return nil, &googleapi.Error{
76825			Code:   res.StatusCode,
76826			Header: res.Header,
76827		}
76828	}
76829	if err != nil {
76830		return nil, err
76831	}
76832	defer googleapi.CloseBody(res)
76833	if err := googleapi.CheckResponse(res); err != nil {
76834		return nil, err
76835	}
76836	ret := &InstanceGroupManagerList{
76837		ServerResponse: googleapi.ServerResponse{
76838			Header:         res.Header,
76839			HTTPStatusCode: res.StatusCode,
76840		},
76841	}
76842	target := &ret
76843	if err := gensupport.DecodeResponse(target, res); err != nil {
76844		return nil, err
76845	}
76846	return ret, nil
76847	// {
76848	//   "description": "Retrieves a list of managed instance groups that are contained within the specified project and zone. (== suppress_warning http-rest-shadowed ==)",
76849	//   "httpMethod": "GET",
76850	//   "id": "compute.instanceGroupManagers.list",
76851	//   "parameterOrder": [
76852	//     "project",
76853	//     "zone"
76854	//   ],
76855	//   "parameters": {
76856	//     "filter": {
76857	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
76858	//       "location": "query",
76859	//       "type": "string"
76860	//     },
76861	//     "maxResults": {
76862	//       "default": "500",
76863	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
76864	//       "format": "uint32",
76865	//       "location": "query",
76866	//       "minimum": "0",
76867	//       "type": "integer"
76868	//     },
76869	//     "orderBy": {
76870	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
76871	//       "location": "query",
76872	//       "type": "string"
76873	//     },
76874	//     "pageToken": {
76875	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
76876	//       "location": "query",
76877	//       "type": "string"
76878	//     },
76879	//     "project": {
76880	//       "description": "Project ID for this request.",
76881	//       "location": "path",
76882	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
76883	//       "required": true,
76884	//       "type": "string"
76885	//     },
76886	//     "zone": {
76887	//       "description": "The name of the zone where the managed instance group is located.",
76888	//       "location": "path",
76889	//       "required": true,
76890	//       "type": "string"
76891	//     }
76892	//   },
76893	//   "path": "{project}/zones/{zone}/instanceGroupManagers",
76894	//   "response": {
76895	//     "$ref": "InstanceGroupManagerList"
76896	//   },
76897	//   "scopes": [
76898	//     "https://www.googleapis.com/auth/cloud-platform",
76899	//     "https://www.googleapis.com/auth/compute",
76900	//     "https://www.googleapis.com/auth/compute.readonly"
76901	//   ]
76902	// }
76903
76904}
76905
76906// Pages invokes f for each page of results.
76907// A non-nil error returned from f will halt the iteration.
76908// The provided context supersedes any context provided to the Context method.
76909func (c *InstanceGroupManagersListCall) Pages(ctx context.Context, f func(*InstanceGroupManagerList) error) error {
76910	c.ctx_ = ctx
76911	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
76912	for {
76913		x, err := c.Do()
76914		if err != nil {
76915			return err
76916		}
76917		if err := f(x); err != nil {
76918			return err
76919		}
76920		if x.NextPageToken == "" {
76921			return nil
76922		}
76923		c.PageToken(x.NextPageToken)
76924	}
76925}
76926
76927// method id "compute.instanceGroupManagers.listErrors":
76928
76929type InstanceGroupManagersListErrorsCall struct {
76930	s                    *Service
76931	project              string
76932	zone                 string
76933	instanceGroupManager string
76934	urlParams_           gensupport.URLParams
76935	ifNoneMatch_         string
76936	ctx_                 context.Context
76937	header_              http.Header
76938}
76939
76940// ListErrors: Lists all errors thrown by actions on instances for a
76941// given managed instance group. (== suppress_warning http-rest-shadowed
76942// ==)
76943func (r *InstanceGroupManagersService) ListErrors(project string, zone string, instanceGroupManager string) *InstanceGroupManagersListErrorsCall {
76944	c := &InstanceGroupManagersListErrorsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
76945	c.project = project
76946	c.zone = zone
76947	c.instanceGroupManager = instanceGroupManager
76948	return c
76949}
76950
76951// Filter sets the optional parameter "filter": A filter expression that
76952// filters resources listed in the response. The expression must specify
76953// the field name, a comparison operator, and the value that you want to
76954// use for filtering. The value must be a string, a number, or a
76955// boolean. The comparison operator must be either =, !=, >, or <.
76956//
76957// For example, if you are filtering Compute Engine instances, you can
76958// exclude instances named example-instance by specifying name !=
76959// example-instance.
76960//
76961// You can also filter nested fields. For example, you could specify
76962// scheduling.automaticRestart = false to include instances only if they
76963// are not scheduled for automatic restarts. You can use filtering on
76964// nested fields to filter based on resource labels.
76965//
76966// To filter on multiple expressions, provide each separate expression
76967// within parentheses. For example, (scheduling.automaticRestart = true)
76968// (cpuPlatform = "Intel Skylake"). By default, each expression is an
76969// AND expression. However, you can include AND and OR expressions
76970// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
76971// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
76972// true).
76973func (c *InstanceGroupManagersListErrorsCall) Filter(filter string) *InstanceGroupManagersListErrorsCall {
76974	c.urlParams_.Set("filter", filter)
76975	return c
76976}
76977
76978// MaxResults sets the optional parameter "maxResults": The maximum
76979// number of results per page that should be returned. If the number of
76980// available results is larger than maxResults, Compute Engine returns a
76981// nextPageToken that can be used to get the next page of results in
76982// subsequent list requests. Acceptable values are 0 to 500, inclusive.
76983// (Default: 500)
76984func (c *InstanceGroupManagersListErrorsCall) MaxResults(maxResults int64) *InstanceGroupManagersListErrorsCall {
76985	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
76986	return c
76987}
76988
76989// OrderBy sets the optional parameter "orderBy": Sorts list results by
76990// a certain order. By default, results are returned in alphanumerical
76991// order based on the resource name.
76992//
76993// You can also sort results in descending order based on the creation
76994// timestamp using orderBy="creationTimestamp desc". This sorts results
76995// based on the creationTimestamp field in reverse chronological order
76996// (newest result first). Use this to sort resources like operations so
76997// that the newest operation is returned first.
76998//
76999// Currently, only sorting by name or creationTimestamp desc is
77000// supported.
77001func (c *InstanceGroupManagersListErrorsCall) OrderBy(orderBy string) *InstanceGroupManagersListErrorsCall {
77002	c.urlParams_.Set("orderBy", orderBy)
77003	return c
77004}
77005
77006// PageToken sets the optional parameter "pageToken": Specifies a page
77007// token to use. Set pageToken to the nextPageToken returned by a
77008// previous list request to get the next page of results.
77009func (c *InstanceGroupManagersListErrorsCall) PageToken(pageToken string) *InstanceGroupManagersListErrorsCall {
77010	c.urlParams_.Set("pageToken", pageToken)
77011	return c
77012}
77013
77014// Fields allows partial responses to be retrieved. See
77015// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
77016// for more information.
77017func (c *InstanceGroupManagersListErrorsCall) Fields(s ...googleapi.Field) *InstanceGroupManagersListErrorsCall {
77018	c.urlParams_.Set("fields", googleapi.CombineFields(s))
77019	return c
77020}
77021
77022// IfNoneMatch sets the optional parameter which makes the operation
77023// fail if the object's ETag matches the given value. This is useful for
77024// getting updates only after the object has changed since the last
77025// request. Use googleapi.IsNotModified to check whether the response
77026// error from Do is the result of In-None-Match.
77027func (c *InstanceGroupManagersListErrorsCall) IfNoneMatch(entityTag string) *InstanceGroupManagersListErrorsCall {
77028	c.ifNoneMatch_ = entityTag
77029	return c
77030}
77031
77032// Context sets the context to be used in this call's Do method. Any
77033// pending HTTP request will be aborted if the provided context is
77034// canceled.
77035func (c *InstanceGroupManagersListErrorsCall) Context(ctx context.Context) *InstanceGroupManagersListErrorsCall {
77036	c.ctx_ = ctx
77037	return c
77038}
77039
77040// Header returns an http.Header that can be modified by the caller to
77041// add HTTP headers to the request.
77042func (c *InstanceGroupManagersListErrorsCall) Header() http.Header {
77043	if c.header_ == nil {
77044		c.header_ = make(http.Header)
77045	}
77046	return c.header_
77047}
77048
77049func (c *InstanceGroupManagersListErrorsCall) doRequest(alt string) (*http.Response, error) {
77050	reqHeaders := make(http.Header)
77051	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
77052	for k, v := range c.header_ {
77053		reqHeaders[k] = v
77054	}
77055	reqHeaders.Set("User-Agent", c.s.userAgent())
77056	if c.ifNoneMatch_ != "" {
77057		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
77058	}
77059	var body io.Reader = nil
77060	c.urlParams_.Set("alt", alt)
77061	c.urlParams_.Set("prettyPrint", "false")
77062	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listErrors")
77063	urls += "?" + c.urlParams_.Encode()
77064	req, err := http.NewRequest("GET", urls, body)
77065	if err != nil {
77066		return nil, err
77067	}
77068	req.Header = reqHeaders
77069	googleapi.Expand(req.URL, map[string]string{
77070		"project":              c.project,
77071		"zone":                 c.zone,
77072		"instanceGroupManager": c.instanceGroupManager,
77073	})
77074	return gensupport.SendRequest(c.ctx_, c.s.client, req)
77075}
77076
77077// Do executes the "compute.instanceGroupManagers.listErrors" call.
77078// Exactly one of *InstanceGroupManagersListErrorsResponse or error will
77079// be non-nil. Any non-2xx status code is an error. Response headers are
77080// in either
77081// *InstanceGroupManagersListErrorsResponse.ServerResponse.Header or (if
77082// a response was returned at all) in error.(*googleapi.Error).Header.
77083// Use googleapi.IsNotModified to check whether the returned error was
77084// because http.StatusNotModified was returned.
77085func (c *InstanceGroupManagersListErrorsCall) Do(opts ...googleapi.CallOption) (*InstanceGroupManagersListErrorsResponse, error) {
77086	gensupport.SetOptions(c.urlParams_, opts...)
77087	res, err := c.doRequest("json")
77088	if res != nil && res.StatusCode == http.StatusNotModified {
77089		if res.Body != nil {
77090			res.Body.Close()
77091		}
77092		return nil, &googleapi.Error{
77093			Code:   res.StatusCode,
77094			Header: res.Header,
77095		}
77096	}
77097	if err != nil {
77098		return nil, err
77099	}
77100	defer googleapi.CloseBody(res)
77101	if err := googleapi.CheckResponse(res); err != nil {
77102		return nil, err
77103	}
77104	ret := &InstanceGroupManagersListErrorsResponse{
77105		ServerResponse: googleapi.ServerResponse{
77106			Header:         res.Header,
77107			HTTPStatusCode: res.StatusCode,
77108		},
77109	}
77110	target := &ret
77111	if err := gensupport.DecodeResponse(target, res); err != nil {
77112		return nil, err
77113	}
77114	return ret, nil
77115	// {
77116	//   "description": "Lists all errors thrown by actions on instances for a given managed instance group. (== suppress_warning http-rest-shadowed ==)",
77117	//   "httpMethod": "GET",
77118	//   "id": "compute.instanceGroupManagers.listErrors",
77119	//   "parameterOrder": [
77120	//     "project",
77121	//     "zone",
77122	//     "instanceGroupManager"
77123	//   ],
77124	//   "parameters": {
77125	//     "filter": {
77126	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
77127	//       "location": "query",
77128	//       "type": "string"
77129	//     },
77130	//     "instanceGroupManager": {
77131	//       "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}.",
77132	//       "location": "path",
77133	//       "required": true,
77134	//       "type": "string"
77135	//     },
77136	//     "maxResults": {
77137	//       "default": "500",
77138	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
77139	//       "format": "uint32",
77140	//       "location": "query",
77141	//       "minimum": "0",
77142	//       "type": "integer"
77143	//     },
77144	//     "orderBy": {
77145	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
77146	//       "location": "query",
77147	//       "type": "string"
77148	//     },
77149	//     "pageToken": {
77150	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
77151	//       "location": "query",
77152	//       "type": "string"
77153	//     },
77154	//     "project": {
77155	//       "description": "Project ID for this request.",
77156	//       "location": "path",
77157	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
77158	//       "required": true,
77159	//       "type": "string"
77160	//     },
77161	//     "zone": {
77162	//       "description": "The name of the zone where the managed instance group is located. It should conform to RFC1035.",
77163	//       "location": "path",
77164	//       "required": true,
77165	//       "type": "string"
77166	//     }
77167	//   },
77168	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listErrors",
77169	//   "response": {
77170	//     "$ref": "InstanceGroupManagersListErrorsResponse"
77171	//   },
77172	//   "scopes": [
77173	//     "https://www.googleapis.com/auth/cloud-platform",
77174	//     "https://www.googleapis.com/auth/compute",
77175	//     "https://www.googleapis.com/auth/compute.readonly"
77176	//   ]
77177	// }
77178
77179}
77180
77181// Pages invokes f for each page of results.
77182// A non-nil error returned from f will halt the iteration.
77183// The provided context supersedes any context provided to the Context method.
77184func (c *InstanceGroupManagersListErrorsCall) Pages(ctx context.Context, f func(*InstanceGroupManagersListErrorsResponse) error) error {
77185	c.ctx_ = ctx
77186	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
77187	for {
77188		x, err := c.Do()
77189		if err != nil {
77190			return err
77191		}
77192		if err := f(x); err != nil {
77193			return err
77194		}
77195		if x.NextPageToken == "" {
77196			return nil
77197		}
77198		c.PageToken(x.NextPageToken)
77199	}
77200}
77201
77202// method id "compute.instanceGroupManagers.listManagedInstances":
77203
77204type InstanceGroupManagersListManagedInstancesCall struct {
77205	s                    *Service
77206	project              string
77207	zone                 string
77208	instanceGroupManager string
77209	urlParams_           gensupport.URLParams
77210	ctx_                 context.Context
77211	header_              http.Header
77212}
77213
77214// ListManagedInstances: Lists all of the instances in the managed
77215// instance group. Each instance in the list has a currentAction, which
77216// indicates the action that the managed instance group is performing on
77217// the instance. For example, if the group is still creating an
77218// instance, the currentAction is CREATING. If a previous action failed,
77219// the list displays the errors for that failed action. (==
77220// suppress_warning http-rest-shadowed ==)
77221func (r *InstanceGroupManagersService) ListManagedInstances(project string, zone string, instanceGroupManager string) *InstanceGroupManagersListManagedInstancesCall {
77222	c := &InstanceGroupManagersListManagedInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
77223	c.project = project
77224	c.zone = zone
77225	c.instanceGroupManager = instanceGroupManager
77226	return c
77227}
77228
77229// Filter sets the optional parameter "filter": A filter expression that
77230// filters resources listed in the response. The expression must specify
77231// the field name, a comparison operator, and the value that you want to
77232// use for filtering. The value must be a string, a number, or a
77233// boolean. The comparison operator must be either =, !=, >, or <.
77234//
77235// For example, if you are filtering Compute Engine instances, you can
77236// exclude instances named example-instance by specifying name !=
77237// example-instance.
77238//
77239// You can also filter nested fields. For example, you could specify
77240// scheduling.automaticRestart = false to include instances only if they
77241// are not scheduled for automatic restarts. You can use filtering on
77242// nested fields to filter based on resource labels.
77243//
77244// To filter on multiple expressions, provide each separate expression
77245// within parentheses. For example, (scheduling.automaticRestart = true)
77246// (cpuPlatform = "Intel Skylake"). By default, each expression is an
77247// AND expression. However, you can include AND and OR expressions
77248// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
77249// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
77250// true).
77251func (c *InstanceGroupManagersListManagedInstancesCall) Filter(filter string) *InstanceGroupManagersListManagedInstancesCall {
77252	c.urlParams_.Set("filter", filter)
77253	return c
77254}
77255
77256// MaxResults sets the optional parameter "maxResults": The maximum
77257// number of results per page that should be returned. If the number of
77258// available results is larger than maxResults, Compute Engine returns a
77259// nextPageToken that can be used to get the next page of results in
77260// subsequent list requests. Acceptable values are 0 to 500, inclusive.
77261// (Default: 500)
77262func (c *InstanceGroupManagersListManagedInstancesCall) MaxResults(maxResults int64) *InstanceGroupManagersListManagedInstancesCall {
77263	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
77264	return c
77265}
77266
77267// OrderBy sets the optional parameter "order_by": Sorts list results by
77268// a certain order. By default, results are returned in alphanumerical
77269// order based on the resource name.
77270//
77271// You can also sort results in descending order based on the creation
77272// timestamp using orderBy="creationTimestamp desc". This sorts results
77273// based on the creationTimestamp field in reverse chronological order
77274// (newest result first). Use this to sort resources like operations so
77275// that the newest operation is returned first.
77276//
77277// Currently, only sorting by name or creationTimestamp desc is
77278// supported.
77279func (c *InstanceGroupManagersListManagedInstancesCall) OrderBy(orderBy string) *InstanceGroupManagersListManagedInstancesCall {
77280	c.urlParams_.Set("order_by", orderBy)
77281	return c
77282}
77283
77284// PageToken sets the optional parameter "pageToken": Specifies a page
77285// token to use. Set pageToken to the nextPageToken returned by a
77286// previous list request to get the next page of results.
77287func (c *InstanceGroupManagersListManagedInstancesCall) PageToken(pageToken string) *InstanceGroupManagersListManagedInstancesCall {
77288	c.urlParams_.Set("pageToken", pageToken)
77289	return c
77290}
77291
77292// Fields allows partial responses to be retrieved. See
77293// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
77294// for more information.
77295func (c *InstanceGroupManagersListManagedInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupManagersListManagedInstancesCall {
77296	c.urlParams_.Set("fields", googleapi.CombineFields(s))
77297	return c
77298}
77299
77300// Context sets the context to be used in this call's Do method. Any
77301// pending HTTP request will be aborted if the provided context is
77302// canceled.
77303func (c *InstanceGroupManagersListManagedInstancesCall) Context(ctx context.Context) *InstanceGroupManagersListManagedInstancesCall {
77304	c.ctx_ = ctx
77305	return c
77306}
77307
77308// Header returns an http.Header that can be modified by the caller to
77309// add HTTP headers to the request.
77310func (c *InstanceGroupManagersListManagedInstancesCall) Header() http.Header {
77311	if c.header_ == nil {
77312		c.header_ = make(http.Header)
77313	}
77314	return c.header_
77315}
77316
77317func (c *InstanceGroupManagersListManagedInstancesCall) doRequest(alt string) (*http.Response, error) {
77318	reqHeaders := make(http.Header)
77319	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
77320	for k, v := range c.header_ {
77321		reqHeaders[k] = v
77322	}
77323	reqHeaders.Set("User-Agent", c.s.userAgent())
77324	var body io.Reader = nil
77325	c.urlParams_.Set("alt", alt)
77326	c.urlParams_.Set("prettyPrint", "false")
77327	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listManagedInstances")
77328	urls += "?" + c.urlParams_.Encode()
77329	req, err := http.NewRequest("POST", urls, body)
77330	if err != nil {
77331		return nil, err
77332	}
77333	req.Header = reqHeaders
77334	googleapi.Expand(req.URL, map[string]string{
77335		"project":              c.project,
77336		"zone":                 c.zone,
77337		"instanceGroupManager": c.instanceGroupManager,
77338	})
77339	return gensupport.SendRequest(c.ctx_, c.s.client, req)
77340}
77341
77342// Do executes the "compute.instanceGroupManagers.listManagedInstances" call.
77343// Exactly one of *InstanceGroupManagersListManagedInstancesResponse or
77344// error will be non-nil. Any non-2xx status code is an error. Response
77345// headers are in either
77346// *InstanceGroupManagersListManagedInstancesResponse.ServerResponse.Head
77347// er or (if a response was returned at all) in
77348// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
77349// whether the returned error was because http.StatusNotModified was
77350// returned.
77351func (c *InstanceGroupManagersListManagedInstancesCall) Do(opts ...googleapi.CallOption) (*InstanceGroupManagersListManagedInstancesResponse, error) {
77352	gensupport.SetOptions(c.urlParams_, opts...)
77353	res, err := c.doRequest("json")
77354	if res != nil && res.StatusCode == http.StatusNotModified {
77355		if res.Body != nil {
77356			res.Body.Close()
77357		}
77358		return nil, &googleapi.Error{
77359			Code:   res.StatusCode,
77360			Header: res.Header,
77361		}
77362	}
77363	if err != nil {
77364		return nil, err
77365	}
77366	defer googleapi.CloseBody(res)
77367	if err := googleapi.CheckResponse(res); err != nil {
77368		return nil, err
77369	}
77370	ret := &InstanceGroupManagersListManagedInstancesResponse{
77371		ServerResponse: googleapi.ServerResponse{
77372			Header:         res.Header,
77373			HTTPStatusCode: res.StatusCode,
77374		},
77375	}
77376	target := &ret
77377	if err := gensupport.DecodeResponse(target, res); err != nil {
77378		return nil, err
77379	}
77380	return ret, nil
77381	// {
77382	//   "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. (== suppress_warning http-rest-shadowed ==)",
77383	//   "httpMethod": "POST",
77384	//   "id": "compute.instanceGroupManagers.listManagedInstances",
77385	//   "parameterOrder": [
77386	//     "project",
77387	//     "zone",
77388	//     "instanceGroupManager"
77389	//   ],
77390	//   "parameters": {
77391	//     "filter": {
77392	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
77393	//       "location": "query",
77394	//       "type": "string"
77395	//     },
77396	//     "instanceGroupManager": {
77397	//       "description": "The name of the managed instance group.",
77398	//       "location": "path",
77399	//       "required": true,
77400	//       "type": "string"
77401	//     },
77402	//     "maxResults": {
77403	//       "default": "500",
77404	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
77405	//       "format": "uint32",
77406	//       "location": "query",
77407	//       "minimum": "0",
77408	//       "type": "integer"
77409	//     },
77410	//     "order_by": {
77411	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
77412	//       "location": "query",
77413	//       "type": "string"
77414	//     },
77415	//     "pageToken": {
77416	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
77417	//       "location": "query",
77418	//       "type": "string"
77419	//     },
77420	//     "project": {
77421	//       "description": "Project ID for this request.",
77422	//       "location": "path",
77423	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
77424	//       "required": true,
77425	//       "type": "string"
77426	//     },
77427	//     "zone": {
77428	//       "description": "The name of the zone where the managed instance group is located.",
77429	//       "location": "path",
77430	//       "required": true,
77431	//       "type": "string"
77432	//     }
77433	//   },
77434	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listManagedInstances",
77435	//   "response": {
77436	//     "$ref": "InstanceGroupManagersListManagedInstancesResponse"
77437	//   },
77438	//   "scopes": [
77439	//     "https://www.googleapis.com/auth/cloud-platform",
77440	//     "https://www.googleapis.com/auth/compute",
77441	//     "https://www.googleapis.com/auth/compute.readonly"
77442	//   ]
77443	// }
77444
77445}
77446
77447// Pages invokes f for each page of results.
77448// A non-nil error returned from f will halt the iteration.
77449// The provided context supersedes any context provided to the Context method.
77450func (c *InstanceGroupManagersListManagedInstancesCall) Pages(ctx context.Context, f func(*InstanceGroupManagersListManagedInstancesResponse) error) error {
77451	c.ctx_ = ctx
77452	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
77453	for {
77454		x, err := c.Do()
77455		if err != nil {
77456			return err
77457		}
77458		if err := f(x); err != nil {
77459			return err
77460		}
77461		if x.NextPageToken == "" {
77462			return nil
77463		}
77464		c.PageToken(x.NextPageToken)
77465	}
77466}
77467
77468// method id "compute.instanceGroupManagers.listPerInstanceConfigs":
77469
77470type InstanceGroupManagersListPerInstanceConfigsCall struct {
77471	s                    *Service
77472	project              string
77473	zone                 string
77474	instanceGroupManager string
77475	urlParams_           gensupport.URLParams
77476	ctx_                 context.Context
77477	header_              http.Header
77478}
77479
77480// ListPerInstanceConfigs: Lists all of the per-instance configs defined
77481// for the managed instance group. (== suppress_warning
77482// http-rest-shadowed ==)
77483func (r *InstanceGroupManagersService) ListPerInstanceConfigs(project string, zone string, instanceGroupManager string) *InstanceGroupManagersListPerInstanceConfigsCall {
77484	c := &InstanceGroupManagersListPerInstanceConfigsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
77485	c.project = project
77486	c.zone = zone
77487	c.instanceGroupManager = instanceGroupManager
77488	return c
77489}
77490
77491// Filter sets the optional parameter "filter": A filter expression that
77492// filters resources listed in the response. The expression must specify
77493// the field name, a comparison operator, and the value that you want to
77494// use for filtering. The value must be a string, a number, or a
77495// boolean. The comparison operator must be either =, !=, >, or <.
77496//
77497// For example, if you are filtering Compute Engine instances, you can
77498// exclude instances named example-instance by specifying name !=
77499// example-instance.
77500//
77501// You can also filter nested fields. For example, you could specify
77502// scheduling.automaticRestart = false to include instances only if they
77503// are not scheduled for automatic restarts. You can use filtering on
77504// nested fields to filter based on resource labels.
77505//
77506// To filter on multiple expressions, provide each separate expression
77507// within parentheses. For example, (scheduling.automaticRestart = true)
77508// (cpuPlatform = "Intel Skylake"). By default, each expression is an
77509// AND expression. However, you can include AND and OR expressions
77510// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
77511// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
77512// true).
77513func (c *InstanceGroupManagersListPerInstanceConfigsCall) Filter(filter string) *InstanceGroupManagersListPerInstanceConfigsCall {
77514	c.urlParams_.Set("filter", filter)
77515	return c
77516}
77517
77518// MaxResults sets the optional parameter "maxResults": The maximum
77519// number of results per page that should be returned. If the number of
77520// available results is larger than maxResults, Compute Engine returns a
77521// nextPageToken that can be used to get the next page of results in
77522// subsequent list requests. Acceptable values are 0 to 500, inclusive.
77523// (Default: 500)
77524func (c *InstanceGroupManagersListPerInstanceConfigsCall) MaxResults(maxResults int64) *InstanceGroupManagersListPerInstanceConfigsCall {
77525	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
77526	return c
77527}
77528
77529// OrderBy sets the optional parameter "orderBy": Sorts list results by
77530// a certain order. By default, results are returned in alphanumerical
77531// order based on the resource name.
77532//
77533// You can also sort results in descending order based on the creation
77534// timestamp using orderBy="creationTimestamp desc". This sorts results
77535// based on the creationTimestamp field in reverse chronological order
77536// (newest result first). Use this to sort resources like operations so
77537// that the newest operation is returned first.
77538//
77539// Currently, only sorting by name or creationTimestamp desc is
77540// supported.
77541func (c *InstanceGroupManagersListPerInstanceConfigsCall) OrderBy(orderBy string) *InstanceGroupManagersListPerInstanceConfigsCall {
77542	c.urlParams_.Set("orderBy", orderBy)
77543	return c
77544}
77545
77546// PageToken sets the optional parameter "pageToken": Specifies a page
77547// token to use. Set pageToken to the nextPageToken returned by a
77548// previous list request to get the next page of results.
77549func (c *InstanceGroupManagersListPerInstanceConfigsCall) PageToken(pageToken string) *InstanceGroupManagersListPerInstanceConfigsCall {
77550	c.urlParams_.Set("pageToken", pageToken)
77551	return c
77552}
77553
77554// Fields allows partial responses to be retrieved. See
77555// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
77556// for more information.
77557func (c *InstanceGroupManagersListPerInstanceConfigsCall) Fields(s ...googleapi.Field) *InstanceGroupManagersListPerInstanceConfigsCall {
77558	c.urlParams_.Set("fields", googleapi.CombineFields(s))
77559	return c
77560}
77561
77562// Context sets the context to be used in this call's Do method. Any
77563// pending HTTP request will be aborted if the provided context is
77564// canceled.
77565func (c *InstanceGroupManagersListPerInstanceConfigsCall) Context(ctx context.Context) *InstanceGroupManagersListPerInstanceConfigsCall {
77566	c.ctx_ = ctx
77567	return c
77568}
77569
77570// Header returns an http.Header that can be modified by the caller to
77571// add HTTP headers to the request.
77572func (c *InstanceGroupManagersListPerInstanceConfigsCall) Header() http.Header {
77573	if c.header_ == nil {
77574		c.header_ = make(http.Header)
77575	}
77576	return c.header_
77577}
77578
77579func (c *InstanceGroupManagersListPerInstanceConfigsCall) doRequest(alt string) (*http.Response, error) {
77580	reqHeaders := make(http.Header)
77581	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
77582	for k, v := range c.header_ {
77583		reqHeaders[k] = v
77584	}
77585	reqHeaders.Set("User-Agent", c.s.userAgent())
77586	var body io.Reader = nil
77587	c.urlParams_.Set("alt", alt)
77588	c.urlParams_.Set("prettyPrint", "false")
77589	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listPerInstanceConfigs")
77590	urls += "?" + c.urlParams_.Encode()
77591	req, err := http.NewRequest("POST", urls, body)
77592	if err != nil {
77593		return nil, err
77594	}
77595	req.Header = reqHeaders
77596	googleapi.Expand(req.URL, map[string]string{
77597		"project":              c.project,
77598		"zone":                 c.zone,
77599		"instanceGroupManager": c.instanceGroupManager,
77600	})
77601	return gensupport.SendRequest(c.ctx_, c.s.client, req)
77602}
77603
77604// Do executes the "compute.instanceGroupManagers.listPerInstanceConfigs" call.
77605// Exactly one of *InstanceGroupManagersListPerInstanceConfigsResp or
77606// error will be non-nil. Any non-2xx status code is an error. Response
77607// headers are in either
77608// *InstanceGroupManagersListPerInstanceConfigsResp.ServerResponse.Header
77609//  or (if a response was returned at all) in
77610// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
77611// whether the returned error was because http.StatusNotModified was
77612// returned.
77613func (c *InstanceGroupManagersListPerInstanceConfigsCall) Do(opts ...googleapi.CallOption) (*InstanceGroupManagersListPerInstanceConfigsResp, error) {
77614	gensupport.SetOptions(c.urlParams_, opts...)
77615	res, err := c.doRequest("json")
77616	if res != nil && res.StatusCode == http.StatusNotModified {
77617		if res.Body != nil {
77618			res.Body.Close()
77619		}
77620		return nil, &googleapi.Error{
77621			Code:   res.StatusCode,
77622			Header: res.Header,
77623		}
77624	}
77625	if err != nil {
77626		return nil, err
77627	}
77628	defer googleapi.CloseBody(res)
77629	if err := googleapi.CheckResponse(res); err != nil {
77630		return nil, err
77631	}
77632	ret := &InstanceGroupManagersListPerInstanceConfigsResp{
77633		ServerResponse: googleapi.ServerResponse{
77634			Header:         res.Header,
77635			HTTPStatusCode: res.StatusCode,
77636		},
77637	}
77638	target := &ret
77639	if err := gensupport.DecodeResponse(target, res); err != nil {
77640		return nil, err
77641	}
77642	return ret, nil
77643	// {
77644	//   "description": "Lists all of the per-instance configs defined for the managed instance group. (== suppress_warning http-rest-shadowed ==)",
77645	//   "httpMethod": "POST",
77646	//   "id": "compute.instanceGroupManagers.listPerInstanceConfigs",
77647	//   "parameterOrder": [
77648	//     "project",
77649	//     "zone",
77650	//     "instanceGroupManager"
77651	//   ],
77652	//   "parameters": {
77653	//     "filter": {
77654	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
77655	//       "location": "query",
77656	//       "type": "string"
77657	//     },
77658	//     "instanceGroupManager": {
77659	//       "description": "The name of the managed instance group. It should conform to RFC1035.",
77660	//       "location": "path",
77661	//       "required": true,
77662	//       "type": "string"
77663	//     },
77664	//     "maxResults": {
77665	//       "default": "500",
77666	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
77667	//       "format": "uint32",
77668	//       "location": "query",
77669	//       "minimum": "0",
77670	//       "type": "integer"
77671	//     },
77672	//     "orderBy": {
77673	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
77674	//       "location": "query",
77675	//       "type": "string"
77676	//     },
77677	//     "pageToken": {
77678	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
77679	//       "location": "query",
77680	//       "type": "string"
77681	//     },
77682	//     "project": {
77683	//       "description": "Project ID for this request.",
77684	//       "location": "path",
77685	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
77686	//       "required": true,
77687	//       "type": "string"
77688	//     },
77689	//     "zone": {
77690	//       "description": "The name of the zone where the managed instance group is located. It should conform to RFC1035.",
77691	//       "location": "path",
77692	//       "required": true,
77693	//       "type": "string"
77694	//     }
77695	//   },
77696	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listPerInstanceConfigs",
77697	//   "response": {
77698	//     "$ref": "InstanceGroupManagersListPerInstanceConfigsResp"
77699	//   },
77700	//   "scopes": [
77701	//     "https://www.googleapis.com/auth/cloud-platform",
77702	//     "https://www.googleapis.com/auth/compute",
77703	//     "https://www.googleapis.com/auth/compute.readonly"
77704	//   ]
77705	// }
77706
77707}
77708
77709// Pages invokes f for each page of results.
77710// A non-nil error returned from f will halt the iteration.
77711// The provided context supersedes any context provided to the Context method.
77712func (c *InstanceGroupManagersListPerInstanceConfigsCall) Pages(ctx context.Context, f func(*InstanceGroupManagersListPerInstanceConfigsResp) error) error {
77713	c.ctx_ = ctx
77714	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
77715	for {
77716		x, err := c.Do()
77717		if err != nil {
77718			return err
77719		}
77720		if err := f(x); err != nil {
77721			return err
77722		}
77723		if x.NextPageToken == "" {
77724			return nil
77725		}
77726		c.PageToken(x.NextPageToken)
77727	}
77728}
77729
77730// method id "compute.instanceGroupManagers.patch":
77731
77732type InstanceGroupManagersPatchCall struct {
77733	s                    *Service
77734	project              string
77735	zone                 string
77736	instanceGroupManager string
77737	instancegroupmanager *InstanceGroupManager
77738	urlParams_           gensupport.URLParams
77739	ctx_                 context.Context
77740	header_              http.Header
77741}
77742
77743// Patch: Updates a managed instance group using the information that
77744// you specify in the request. This operation is marked as DONE when the
77745// group is patched even if the instances in the group are still in the
77746// process of being patched. You must separately verify the status of
77747// the individual instances with the listManagedInstances method. This
77748// method supports PATCH semantics and uses the JSON merge patch format
77749// and processing rules. (== suppress_warning http-rest-shadowed ==)
77750func (r *InstanceGroupManagersService) Patch(project string, zone string, instanceGroupManager string, instancegroupmanager *InstanceGroupManager) *InstanceGroupManagersPatchCall {
77751	c := &InstanceGroupManagersPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
77752	c.project = project
77753	c.zone = zone
77754	c.instanceGroupManager = instanceGroupManager
77755	c.instancegroupmanager = instancegroupmanager
77756	return c
77757}
77758
77759// RequestId sets the optional parameter "requestId": An optional
77760// request ID to identify requests. Specify a unique request ID so that
77761// if you must retry your request, the server will know to ignore the
77762// request if it has already been completed.
77763//
77764// For example, consider a situation where you make an initial request
77765// and the request times out. If you make the request again with the
77766// same request ID, the server can check if original operation with the
77767// same request ID was received, and if so, will ignore the second
77768// request. This prevents clients from accidentally creating duplicate
77769// commitments.
77770//
77771// The request ID must be a valid UUID with the exception that zero UUID
77772// is not supported (00000000-0000-0000-0000-000000000000).
77773func (c *InstanceGroupManagersPatchCall) RequestId(requestId string) *InstanceGroupManagersPatchCall {
77774	c.urlParams_.Set("requestId", requestId)
77775	return c
77776}
77777
77778// Fields allows partial responses to be retrieved. See
77779// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
77780// for more information.
77781func (c *InstanceGroupManagersPatchCall) Fields(s ...googleapi.Field) *InstanceGroupManagersPatchCall {
77782	c.urlParams_.Set("fields", googleapi.CombineFields(s))
77783	return c
77784}
77785
77786// Context sets the context to be used in this call's Do method. Any
77787// pending HTTP request will be aborted if the provided context is
77788// canceled.
77789func (c *InstanceGroupManagersPatchCall) Context(ctx context.Context) *InstanceGroupManagersPatchCall {
77790	c.ctx_ = ctx
77791	return c
77792}
77793
77794// Header returns an http.Header that can be modified by the caller to
77795// add HTTP headers to the request.
77796func (c *InstanceGroupManagersPatchCall) Header() http.Header {
77797	if c.header_ == nil {
77798		c.header_ = make(http.Header)
77799	}
77800	return c.header_
77801}
77802
77803func (c *InstanceGroupManagersPatchCall) doRequest(alt string) (*http.Response, error) {
77804	reqHeaders := make(http.Header)
77805	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
77806	for k, v := range c.header_ {
77807		reqHeaders[k] = v
77808	}
77809	reqHeaders.Set("User-Agent", c.s.userAgent())
77810	var body io.Reader = nil
77811	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanager)
77812	if err != nil {
77813		return nil, err
77814	}
77815	reqHeaders.Set("Content-Type", "application/json")
77816	c.urlParams_.Set("alt", alt)
77817	c.urlParams_.Set("prettyPrint", "false")
77818	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}")
77819	urls += "?" + c.urlParams_.Encode()
77820	req, err := http.NewRequest("PATCH", urls, body)
77821	if err != nil {
77822		return nil, err
77823	}
77824	req.Header = reqHeaders
77825	googleapi.Expand(req.URL, map[string]string{
77826		"project":              c.project,
77827		"zone":                 c.zone,
77828		"instanceGroupManager": c.instanceGroupManager,
77829	})
77830	return gensupport.SendRequest(c.ctx_, c.s.client, req)
77831}
77832
77833// Do executes the "compute.instanceGroupManagers.patch" call.
77834// Exactly one of *Operation or error will be non-nil. Any non-2xx
77835// status code is an error. Response headers are in either
77836// *Operation.ServerResponse.Header or (if a response was returned at
77837// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
77838// to check whether the returned error was because
77839// http.StatusNotModified was returned.
77840func (c *InstanceGroupManagersPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
77841	gensupport.SetOptions(c.urlParams_, opts...)
77842	res, err := c.doRequest("json")
77843	if res != nil && res.StatusCode == http.StatusNotModified {
77844		if res.Body != nil {
77845			res.Body.Close()
77846		}
77847		return nil, &googleapi.Error{
77848			Code:   res.StatusCode,
77849			Header: res.Header,
77850		}
77851	}
77852	if err != nil {
77853		return nil, err
77854	}
77855	defer googleapi.CloseBody(res)
77856	if err := googleapi.CheckResponse(res); err != nil {
77857		return nil, err
77858	}
77859	ret := &Operation{
77860		ServerResponse: googleapi.ServerResponse{
77861			Header:         res.Header,
77862			HTTPStatusCode: res.StatusCode,
77863		},
77864	}
77865	target := &ret
77866	if err := gensupport.DecodeResponse(target, res); err != nil {
77867		return nil, err
77868	}
77869	return ret, nil
77870	// {
77871	//   "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. (== suppress_warning http-rest-shadowed ==)",
77872	//   "httpMethod": "PATCH",
77873	//   "id": "compute.instanceGroupManagers.patch",
77874	//   "parameterOrder": [
77875	//     "project",
77876	//     "zone",
77877	//     "instanceGroupManager"
77878	//   ],
77879	//   "parameters": {
77880	//     "instanceGroupManager": {
77881	//       "description": "The name of the instance group manager.",
77882	//       "location": "path",
77883	//       "required": true,
77884	//       "type": "string"
77885	//     },
77886	//     "project": {
77887	//       "description": "Project ID for this request.",
77888	//       "location": "path",
77889	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
77890	//       "required": true,
77891	//       "type": "string"
77892	//     },
77893	//     "requestId": {
77894	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
77895	//       "location": "query",
77896	//       "type": "string"
77897	//     },
77898	//     "zone": {
77899	//       "description": "The name of the zone where you want to create the managed instance group.",
77900	//       "location": "path",
77901	//       "required": true,
77902	//       "type": "string"
77903	//     }
77904	//   },
77905	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}",
77906	//   "request": {
77907	//     "$ref": "InstanceGroupManager"
77908	//   },
77909	//   "response": {
77910	//     "$ref": "Operation"
77911	//   },
77912	//   "scopes": [
77913	//     "https://www.googleapis.com/auth/cloud-platform",
77914	//     "https://www.googleapis.com/auth/compute"
77915	//   ]
77916	// }
77917
77918}
77919
77920// method id "compute.instanceGroupManagers.patchPerInstanceConfigs":
77921
77922type InstanceGroupManagersPatchPerInstanceConfigsCall struct {
77923	s                                               *Service
77924	project                                         string
77925	zone                                            string
77926	instanceGroupManager                            string
77927	instancegroupmanagerspatchperinstanceconfigsreq *InstanceGroupManagersPatchPerInstanceConfigsReq
77928	urlParams_                                      gensupport.URLParams
77929	ctx_                                            context.Context
77930	header_                                         http.Header
77931}
77932
77933// PatchPerInstanceConfigs: Insert or patch (for the ones that already
77934// exist) per-instance configs for the managed instance group.
77935// perInstanceConfig.instance serves as a key used to distinguish
77936// whether to perform insert or patch. (== suppress_warning
77937// http-rest-shadowed ==)
77938func (r *InstanceGroupManagersService) PatchPerInstanceConfigs(project string, zone string, instanceGroupManager string, instancegroupmanagerspatchperinstanceconfigsreq *InstanceGroupManagersPatchPerInstanceConfigsReq) *InstanceGroupManagersPatchPerInstanceConfigsCall {
77939	c := &InstanceGroupManagersPatchPerInstanceConfigsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
77940	c.project = project
77941	c.zone = zone
77942	c.instanceGroupManager = instanceGroupManager
77943	c.instancegroupmanagerspatchperinstanceconfigsreq = instancegroupmanagerspatchperinstanceconfigsreq
77944	return c
77945}
77946
77947// RequestId sets the optional parameter "requestId": An optional
77948// request ID to identify requests. Specify a unique request ID so that
77949// if you must retry your request, the server will know to ignore the
77950// request if it has already been completed.
77951//
77952// For example, consider a situation where you make an initial request
77953// and the request times out. If you make the request again with the
77954// same request ID, the server can check if original operation with the
77955// same request ID was received, and if so, will ignore the second
77956// request. This prevents clients from accidentally creating duplicate
77957// commitments.
77958//
77959// The request ID must be a valid UUID with the exception that zero UUID
77960// is not supported (00000000-0000-0000-0000-000000000000).
77961func (c *InstanceGroupManagersPatchPerInstanceConfigsCall) RequestId(requestId string) *InstanceGroupManagersPatchPerInstanceConfigsCall {
77962	c.urlParams_.Set("requestId", requestId)
77963	return c
77964}
77965
77966// Fields allows partial responses to be retrieved. See
77967// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
77968// for more information.
77969func (c *InstanceGroupManagersPatchPerInstanceConfigsCall) Fields(s ...googleapi.Field) *InstanceGroupManagersPatchPerInstanceConfigsCall {
77970	c.urlParams_.Set("fields", googleapi.CombineFields(s))
77971	return c
77972}
77973
77974// Context sets the context to be used in this call's Do method. Any
77975// pending HTTP request will be aborted if the provided context is
77976// canceled.
77977func (c *InstanceGroupManagersPatchPerInstanceConfigsCall) Context(ctx context.Context) *InstanceGroupManagersPatchPerInstanceConfigsCall {
77978	c.ctx_ = ctx
77979	return c
77980}
77981
77982// Header returns an http.Header that can be modified by the caller to
77983// add HTTP headers to the request.
77984func (c *InstanceGroupManagersPatchPerInstanceConfigsCall) Header() http.Header {
77985	if c.header_ == nil {
77986		c.header_ = make(http.Header)
77987	}
77988	return c.header_
77989}
77990
77991func (c *InstanceGroupManagersPatchPerInstanceConfigsCall) doRequest(alt string) (*http.Response, error) {
77992	reqHeaders := make(http.Header)
77993	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
77994	for k, v := range c.header_ {
77995		reqHeaders[k] = v
77996	}
77997	reqHeaders.Set("User-Agent", c.s.userAgent())
77998	var body io.Reader = nil
77999	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagerspatchperinstanceconfigsreq)
78000	if err != nil {
78001		return nil, err
78002	}
78003	reqHeaders.Set("Content-Type", "application/json")
78004	c.urlParams_.Set("alt", alt)
78005	c.urlParams_.Set("prettyPrint", "false")
78006	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/patchPerInstanceConfigs")
78007	urls += "?" + c.urlParams_.Encode()
78008	req, err := http.NewRequest("POST", urls, body)
78009	if err != nil {
78010		return nil, err
78011	}
78012	req.Header = reqHeaders
78013	googleapi.Expand(req.URL, map[string]string{
78014		"project":              c.project,
78015		"zone":                 c.zone,
78016		"instanceGroupManager": c.instanceGroupManager,
78017	})
78018	return gensupport.SendRequest(c.ctx_, c.s.client, req)
78019}
78020
78021// Do executes the "compute.instanceGroupManagers.patchPerInstanceConfigs" call.
78022// Exactly one of *Operation or error will be non-nil. Any non-2xx
78023// status code is an error. Response headers are in either
78024// *Operation.ServerResponse.Header or (if a response was returned at
78025// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
78026// to check whether the returned error was because
78027// http.StatusNotModified was returned.
78028func (c *InstanceGroupManagersPatchPerInstanceConfigsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
78029	gensupport.SetOptions(c.urlParams_, opts...)
78030	res, err := c.doRequest("json")
78031	if res != nil && res.StatusCode == http.StatusNotModified {
78032		if res.Body != nil {
78033			res.Body.Close()
78034		}
78035		return nil, &googleapi.Error{
78036			Code:   res.StatusCode,
78037			Header: res.Header,
78038		}
78039	}
78040	if err != nil {
78041		return nil, err
78042	}
78043	defer googleapi.CloseBody(res)
78044	if err := googleapi.CheckResponse(res); err != nil {
78045		return nil, err
78046	}
78047	ret := &Operation{
78048		ServerResponse: googleapi.ServerResponse{
78049			Header:         res.Header,
78050			HTTPStatusCode: res.StatusCode,
78051		},
78052	}
78053	target := &ret
78054	if err := gensupport.DecodeResponse(target, res); err != nil {
78055		return nil, err
78056	}
78057	return ret, nil
78058	// {
78059	//   "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. (== suppress_warning http-rest-shadowed ==)",
78060	//   "httpMethod": "POST",
78061	//   "id": "compute.instanceGroupManagers.patchPerInstanceConfigs",
78062	//   "parameterOrder": [
78063	//     "project",
78064	//     "zone",
78065	//     "instanceGroupManager"
78066	//   ],
78067	//   "parameters": {
78068	//     "instanceGroupManager": {
78069	//       "description": "The name of the managed instance group. It should conform to RFC1035.",
78070	//       "location": "path",
78071	//       "required": true,
78072	//       "type": "string"
78073	//     },
78074	//     "project": {
78075	//       "description": "Project ID for this request.",
78076	//       "location": "path",
78077	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
78078	//       "required": true,
78079	//       "type": "string"
78080	//     },
78081	//     "requestId": {
78082	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
78083	//       "location": "query",
78084	//       "type": "string"
78085	//     },
78086	//     "zone": {
78087	//       "description": "The name of the zone where the managed instance group is located. It should conform to RFC1035.",
78088	//       "location": "path",
78089	//       "required": true,
78090	//       "type": "string"
78091	//     }
78092	//   },
78093	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/patchPerInstanceConfigs",
78094	//   "request": {
78095	//     "$ref": "InstanceGroupManagersPatchPerInstanceConfigsReq"
78096	//   },
78097	//   "response": {
78098	//     "$ref": "Operation"
78099	//   },
78100	//   "scopes": [
78101	//     "https://www.googleapis.com/auth/cloud-platform",
78102	//     "https://www.googleapis.com/auth/compute"
78103	//   ]
78104	// }
78105
78106}
78107
78108// method id "compute.instanceGroupManagers.recreateInstances":
78109
78110type InstanceGroupManagersRecreateInstancesCall struct {
78111	s                                             *Service
78112	project                                       string
78113	zone                                          string
78114	instanceGroupManager                          string
78115	instancegroupmanagersrecreateinstancesrequest *InstanceGroupManagersRecreateInstancesRequest
78116	urlParams_                                    gensupport.URLParams
78117	ctx_                                          context.Context
78118	header_                                       http.Header
78119}
78120
78121// RecreateInstances: Flags the specified instances in the managed
78122// instance group to be immediately recreated. The instances are deleted
78123// and recreated using the current instance template for the managed
78124// instance group. This operation is marked as DONE when the flag is set
78125// even if the instances have not yet been recreated. You must
78126// separately verify the status of the recreating action with the
78127// listmanagedinstances method.
78128//
78129// If the group is part of a backend service that has enabled connection
78130// draining, it can take up to 60 seconds after the connection draining
78131// duration has elapsed before the VM instance is removed or
78132// deleted.
78133//
78134// You can specify a maximum of 1000 instances with this method per
78135// request. (== suppress_warning http-rest-shadowed ==)
78136func (r *InstanceGroupManagersService) RecreateInstances(project string, zone string, instanceGroupManager string, instancegroupmanagersrecreateinstancesrequest *InstanceGroupManagersRecreateInstancesRequest) *InstanceGroupManagersRecreateInstancesCall {
78137	c := &InstanceGroupManagersRecreateInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
78138	c.project = project
78139	c.zone = zone
78140	c.instanceGroupManager = instanceGroupManager
78141	c.instancegroupmanagersrecreateinstancesrequest = instancegroupmanagersrecreateinstancesrequest
78142	return c
78143}
78144
78145// RequestId sets the optional parameter "requestId": An optional
78146// request ID to identify requests. Specify a unique request ID so that
78147// if you must retry your request, the server will know to ignore the
78148// request if it has already been completed.
78149//
78150// For example, consider a situation where you make an initial request
78151// and the request times out. If you make the request again with the
78152// same request ID, the server can check if original operation with the
78153// same request ID was received, and if so, will ignore the second
78154// request. This prevents clients from accidentally creating duplicate
78155// commitments.
78156//
78157// The request ID must be a valid UUID with the exception that zero UUID
78158// is not supported (00000000-0000-0000-0000-000000000000).
78159func (c *InstanceGroupManagersRecreateInstancesCall) RequestId(requestId string) *InstanceGroupManagersRecreateInstancesCall {
78160	c.urlParams_.Set("requestId", requestId)
78161	return c
78162}
78163
78164// Fields allows partial responses to be retrieved. See
78165// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
78166// for more information.
78167func (c *InstanceGroupManagersRecreateInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupManagersRecreateInstancesCall {
78168	c.urlParams_.Set("fields", googleapi.CombineFields(s))
78169	return c
78170}
78171
78172// Context sets the context to be used in this call's Do method. Any
78173// pending HTTP request will be aborted if the provided context is
78174// canceled.
78175func (c *InstanceGroupManagersRecreateInstancesCall) Context(ctx context.Context) *InstanceGroupManagersRecreateInstancesCall {
78176	c.ctx_ = ctx
78177	return c
78178}
78179
78180// Header returns an http.Header that can be modified by the caller to
78181// add HTTP headers to the request.
78182func (c *InstanceGroupManagersRecreateInstancesCall) Header() http.Header {
78183	if c.header_ == nil {
78184		c.header_ = make(http.Header)
78185	}
78186	return c.header_
78187}
78188
78189func (c *InstanceGroupManagersRecreateInstancesCall) doRequest(alt string) (*http.Response, error) {
78190	reqHeaders := make(http.Header)
78191	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
78192	for k, v := range c.header_ {
78193		reqHeaders[k] = v
78194	}
78195	reqHeaders.Set("User-Agent", c.s.userAgent())
78196	var body io.Reader = nil
78197	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagersrecreateinstancesrequest)
78198	if err != nil {
78199		return nil, err
78200	}
78201	reqHeaders.Set("Content-Type", "application/json")
78202	c.urlParams_.Set("alt", alt)
78203	c.urlParams_.Set("prettyPrint", "false")
78204	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/recreateInstances")
78205	urls += "?" + c.urlParams_.Encode()
78206	req, err := http.NewRequest("POST", urls, body)
78207	if err != nil {
78208		return nil, err
78209	}
78210	req.Header = reqHeaders
78211	googleapi.Expand(req.URL, map[string]string{
78212		"project":              c.project,
78213		"zone":                 c.zone,
78214		"instanceGroupManager": c.instanceGroupManager,
78215	})
78216	return gensupport.SendRequest(c.ctx_, c.s.client, req)
78217}
78218
78219// Do executes the "compute.instanceGroupManagers.recreateInstances" call.
78220// Exactly one of *Operation or error will be non-nil. Any non-2xx
78221// status code is an error. Response headers are in either
78222// *Operation.ServerResponse.Header or (if a response was returned at
78223// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
78224// to check whether the returned error was because
78225// http.StatusNotModified was returned.
78226func (c *InstanceGroupManagersRecreateInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
78227	gensupport.SetOptions(c.urlParams_, opts...)
78228	res, err := c.doRequest("json")
78229	if res != nil && res.StatusCode == http.StatusNotModified {
78230		if res.Body != nil {
78231			res.Body.Close()
78232		}
78233		return nil, &googleapi.Error{
78234			Code:   res.StatusCode,
78235			Header: res.Header,
78236		}
78237	}
78238	if err != nil {
78239		return nil, err
78240	}
78241	defer googleapi.CloseBody(res)
78242	if err := googleapi.CheckResponse(res); err != nil {
78243		return nil, err
78244	}
78245	ret := &Operation{
78246		ServerResponse: googleapi.ServerResponse{
78247			Header:         res.Header,
78248			HTTPStatusCode: res.StatusCode,
78249		},
78250	}
78251	target := &ret
78252	if err := gensupport.DecodeResponse(target, res); err != nil {
78253		return nil, err
78254	}
78255	return ret, nil
78256	// {
78257	//   "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. (== suppress_warning http-rest-shadowed ==)",
78258	//   "httpMethod": "POST",
78259	//   "id": "compute.instanceGroupManagers.recreateInstances",
78260	//   "parameterOrder": [
78261	//     "project",
78262	//     "zone",
78263	//     "instanceGroupManager"
78264	//   ],
78265	//   "parameters": {
78266	//     "instanceGroupManager": {
78267	//       "description": "The name of the managed instance group.",
78268	//       "location": "path",
78269	//       "required": true,
78270	//       "type": "string"
78271	//     },
78272	//     "project": {
78273	//       "description": "Project ID for this request.",
78274	//       "location": "path",
78275	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
78276	//       "required": true,
78277	//       "type": "string"
78278	//     },
78279	//     "requestId": {
78280	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
78281	//       "location": "query",
78282	//       "type": "string"
78283	//     },
78284	//     "zone": {
78285	//       "description": "The name of the zone where the managed instance group is located.",
78286	//       "location": "path",
78287	//       "required": true,
78288	//       "type": "string"
78289	//     }
78290	//   },
78291	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/recreateInstances",
78292	//   "request": {
78293	//     "$ref": "InstanceGroupManagersRecreateInstancesRequest"
78294	//   },
78295	//   "response": {
78296	//     "$ref": "Operation"
78297	//   },
78298	//   "scopes": [
78299	//     "https://www.googleapis.com/auth/cloud-platform",
78300	//     "https://www.googleapis.com/auth/compute"
78301	//   ]
78302	// }
78303
78304}
78305
78306// method id "compute.instanceGroupManagers.resize":
78307
78308type InstanceGroupManagersResizeCall struct {
78309	s                    *Service
78310	project              string
78311	zone                 string
78312	instanceGroupManager string
78313	urlParams_           gensupport.URLParams
78314	ctx_                 context.Context
78315	header_              http.Header
78316}
78317
78318// Resize: Resizes the managed instance group. If you increase the size,
78319// the group creates new instances using the current instance template.
78320// If you decrease the size, the group deletes instances. The resize
78321// operation is marked DONE when the resize actions are scheduled even
78322// if the group has not yet added or deleted any instances. You must
78323// separately verify the status of the creating or deleting actions with
78324// the listmanagedinstances method.
78325//
78326// When resizing down, the instance group arbitrarily chooses the order
78327// in which VMs are deleted. The group takes into account some VM
78328// attributes when making the selection including:
78329//
78330// + The status of the VM instance. + The health of the VM instance. +
78331// The instance template version the VM is based on. + For regional
78332// managed instance groups, the location of the VM instance.
78333//
78334// This list is subject to change.
78335//
78336// If the group is part of a backend service that has enabled connection
78337// draining, it can take up to 60 seconds after the connection draining
78338// duration has elapsed before the VM instance is removed or deleted.
78339// (== suppress_warning http-rest-shadowed ==)
78340func (r *InstanceGroupManagersService) Resize(project string, zone string, instanceGroupManager string, size int64) *InstanceGroupManagersResizeCall {
78341	c := &InstanceGroupManagersResizeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
78342	c.project = project
78343	c.zone = zone
78344	c.instanceGroupManager = instanceGroupManager
78345	c.urlParams_.Set("size", fmt.Sprint(size))
78346	return c
78347}
78348
78349// RequestId sets the optional parameter "requestId": An optional
78350// request ID to identify requests. Specify a unique request ID so that
78351// if you must retry your request, the server will know to ignore the
78352// request if it has already been completed.
78353//
78354// For example, consider a situation where you make an initial request
78355// and the request times out. If you make the request again with the
78356// same request ID, the server can check if original operation with the
78357// same request ID was received, and if so, will ignore the second
78358// request. This prevents clients from accidentally creating duplicate
78359// commitments.
78360//
78361// The request ID must be a valid UUID with the exception that zero UUID
78362// is not supported (00000000-0000-0000-0000-000000000000).
78363func (c *InstanceGroupManagersResizeCall) RequestId(requestId string) *InstanceGroupManagersResizeCall {
78364	c.urlParams_.Set("requestId", requestId)
78365	return c
78366}
78367
78368// Fields allows partial responses to be retrieved. See
78369// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
78370// for more information.
78371func (c *InstanceGroupManagersResizeCall) Fields(s ...googleapi.Field) *InstanceGroupManagersResizeCall {
78372	c.urlParams_.Set("fields", googleapi.CombineFields(s))
78373	return c
78374}
78375
78376// Context sets the context to be used in this call's Do method. Any
78377// pending HTTP request will be aborted if the provided context is
78378// canceled.
78379func (c *InstanceGroupManagersResizeCall) Context(ctx context.Context) *InstanceGroupManagersResizeCall {
78380	c.ctx_ = ctx
78381	return c
78382}
78383
78384// Header returns an http.Header that can be modified by the caller to
78385// add HTTP headers to the request.
78386func (c *InstanceGroupManagersResizeCall) Header() http.Header {
78387	if c.header_ == nil {
78388		c.header_ = make(http.Header)
78389	}
78390	return c.header_
78391}
78392
78393func (c *InstanceGroupManagersResizeCall) doRequest(alt string) (*http.Response, error) {
78394	reqHeaders := make(http.Header)
78395	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
78396	for k, v := range c.header_ {
78397		reqHeaders[k] = v
78398	}
78399	reqHeaders.Set("User-Agent", c.s.userAgent())
78400	var body io.Reader = nil
78401	c.urlParams_.Set("alt", alt)
78402	c.urlParams_.Set("prettyPrint", "false")
78403	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/resize")
78404	urls += "?" + c.urlParams_.Encode()
78405	req, err := http.NewRequest("POST", urls, body)
78406	if err != nil {
78407		return nil, err
78408	}
78409	req.Header = reqHeaders
78410	googleapi.Expand(req.URL, map[string]string{
78411		"project":              c.project,
78412		"zone":                 c.zone,
78413		"instanceGroupManager": c.instanceGroupManager,
78414	})
78415	return gensupport.SendRequest(c.ctx_, c.s.client, req)
78416}
78417
78418// Do executes the "compute.instanceGroupManagers.resize" call.
78419// Exactly one of *Operation or error will be non-nil. Any non-2xx
78420// status code is an error. Response headers are in either
78421// *Operation.ServerResponse.Header or (if a response was returned at
78422// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
78423// to check whether the returned error was because
78424// http.StatusNotModified was returned.
78425func (c *InstanceGroupManagersResizeCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
78426	gensupport.SetOptions(c.urlParams_, opts...)
78427	res, err := c.doRequest("json")
78428	if res != nil && res.StatusCode == http.StatusNotModified {
78429		if res.Body != nil {
78430			res.Body.Close()
78431		}
78432		return nil, &googleapi.Error{
78433			Code:   res.StatusCode,
78434			Header: res.Header,
78435		}
78436	}
78437	if err != nil {
78438		return nil, err
78439	}
78440	defer googleapi.CloseBody(res)
78441	if err := googleapi.CheckResponse(res); err != nil {
78442		return nil, err
78443	}
78444	ret := &Operation{
78445		ServerResponse: googleapi.ServerResponse{
78446			Header:         res.Header,
78447			HTTPStatusCode: res.StatusCode,
78448		},
78449	}
78450	target := &ret
78451	if err := gensupport.DecodeResponse(target, res); err != nil {
78452		return nil, err
78453	}
78454	return ret, nil
78455	// {
78456	//   "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. (== suppress_warning http-rest-shadowed ==)",
78457	//   "httpMethod": "POST",
78458	//   "id": "compute.instanceGroupManagers.resize",
78459	//   "parameterOrder": [
78460	//     "project",
78461	//     "zone",
78462	//     "instanceGroupManager",
78463	//     "size"
78464	//   ],
78465	//   "parameters": {
78466	//     "instanceGroupManager": {
78467	//       "description": "The name of the managed instance group.",
78468	//       "location": "path",
78469	//       "required": true,
78470	//       "type": "string"
78471	//     },
78472	//     "project": {
78473	//       "description": "Project ID for this request.",
78474	//       "location": "path",
78475	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
78476	//       "required": true,
78477	//       "type": "string"
78478	//     },
78479	//     "requestId": {
78480	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
78481	//       "location": "query",
78482	//       "type": "string"
78483	//     },
78484	//     "size": {
78485	//       "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.",
78486	//       "format": "int32",
78487	//       "location": "query",
78488	//       "required": true,
78489	//       "type": "integer"
78490	//     },
78491	//     "zone": {
78492	//       "description": "The name of the zone where the managed instance group is located.",
78493	//       "location": "path",
78494	//       "required": true,
78495	//       "type": "string"
78496	//     }
78497	//   },
78498	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/resize",
78499	//   "response": {
78500	//     "$ref": "Operation"
78501	//   },
78502	//   "scopes": [
78503	//     "https://www.googleapis.com/auth/cloud-platform",
78504	//     "https://www.googleapis.com/auth/compute"
78505	//   ]
78506	// }
78507
78508}
78509
78510// method id "compute.instanceGroupManagers.resizeAdvanced":
78511
78512type InstanceGroupManagersResizeAdvancedCall struct {
78513	s                                          *Service
78514	project                                    string
78515	zone                                       string
78516	instanceGroupManager                       string
78517	instancegroupmanagersresizeadvancedrequest *InstanceGroupManagersResizeAdvancedRequest
78518	urlParams_                                 gensupport.URLParams
78519	ctx_                                       context.Context
78520	header_                                    http.Header
78521}
78522
78523// ResizeAdvanced: Resizes the managed instance group with advanced
78524// configuration options like disabling creation retries. This is an
78525// extended version of the resize method.
78526//
78527// If you increase the size of the instance group, the group creates new
78528// instances using the current instance template. If you decrease the
78529// size, the group deletes instances. The resize operation is marked
78530// DONE when the resize actions are scheduled even if the group has not
78531// yet added or deleted any instances. You must separately verify the
78532// status of the creating, creatingWithoutRetries, or deleting actions
78533// with the get or listmanagedinstances method.
78534//
78535// If the group is part of a backend service that has enabled connection
78536// draining, it can take up to 60 seconds after the connection draining
78537// duration has elapsed before the VM instance is removed or deleted.
78538// (== suppress_warning http-rest-shadowed ==)
78539func (r *InstanceGroupManagersService) ResizeAdvanced(project string, zone string, instanceGroupManager string, instancegroupmanagersresizeadvancedrequest *InstanceGroupManagersResizeAdvancedRequest) *InstanceGroupManagersResizeAdvancedCall {
78540	c := &InstanceGroupManagersResizeAdvancedCall{s: r.s, urlParams_: make(gensupport.URLParams)}
78541	c.project = project
78542	c.zone = zone
78543	c.instanceGroupManager = instanceGroupManager
78544	c.instancegroupmanagersresizeadvancedrequest = instancegroupmanagersresizeadvancedrequest
78545	return c
78546}
78547
78548// RequestId sets the optional parameter "requestId": An optional
78549// request ID to identify requests. Specify a unique request ID so that
78550// if you must retry your request, the server will know to ignore the
78551// request if it has already been completed.
78552//
78553// For example, consider a situation where you make an initial request
78554// and the request times out. If you make the request again with the
78555// same request ID, the server can check if original operation with the
78556// same request ID was received, and if so, will ignore the second
78557// request. This prevents clients from accidentally creating duplicate
78558// commitments.
78559//
78560// The request ID must be a valid UUID with the exception that zero UUID
78561// is not supported (00000000-0000-0000-0000-000000000000).
78562func (c *InstanceGroupManagersResizeAdvancedCall) RequestId(requestId string) *InstanceGroupManagersResizeAdvancedCall {
78563	c.urlParams_.Set("requestId", requestId)
78564	return c
78565}
78566
78567// Fields allows partial responses to be retrieved. See
78568// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
78569// for more information.
78570func (c *InstanceGroupManagersResizeAdvancedCall) Fields(s ...googleapi.Field) *InstanceGroupManagersResizeAdvancedCall {
78571	c.urlParams_.Set("fields", googleapi.CombineFields(s))
78572	return c
78573}
78574
78575// Context sets the context to be used in this call's Do method. Any
78576// pending HTTP request will be aborted if the provided context is
78577// canceled.
78578func (c *InstanceGroupManagersResizeAdvancedCall) Context(ctx context.Context) *InstanceGroupManagersResizeAdvancedCall {
78579	c.ctx_ = ctx
78580	return c
78581}
78582
78583// Header returns an http.Header that can be modified by the caller to
78584// add HTTP headers to the request.
78585func (c *InstanceGroupManagersResizeAdvancedCall) Header() http.Header {
78586	if c.header_ == nil {
78587		c.header_ = make(http.Header)
78588	}
78589	return c.header_
78590}
78591
78592func (c *InstanceGroupManagersResizeAdvancedCall) doRequest(alt string) (*http.Response, error) {
78593	reqHeaders := make(http.Header)
78594	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
78595	for k, v := range c.header_ {
78596		reqHeaders[k] = v
78597	}
78598	reqHeaders.Set("User-Agent", c.s.userAgent())
78599	var body io.Reader = nil
78600	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagersresizeadvancedrequest)
78601	if err != nil {
78602		return nil, err
78603	}
78604	reqHeaders.Set("Content-Type", "application/json")
78605	c.urlParams_.Set("alt", alt)
78606	c.urlParams_.Set("prettyPrint", "false")
78607	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/resizeAdvanced")
78608	urls += "?" + c.urlParams_.Encode()
78609	req, err := http.NewRequest("POST", urls, body)
78610	if err != nil {
78611		return nil, err
78612	}
78613	req.Header = reqHeaders
78614	googleapi.Expand(req.URL, map[string]string{
78615		"project":              c.project,
78616		"zone":                 c.zone,
78617		"instanceGroupManager": c.instanceGroupManager,
78618	})
78619	return gensupport.SendRequest(c.ctx_, c.s.client, req)
78620}
78621
78622// Do executes the "compute.instanceGroupManagers.resizeAdvanced" call.
78623// Exactly one of *Operation or error will be non-nil. Any non-2xx
78624// status code is an error. Response headers are in either
78625// *Operation.ServerResponse.Header or (if a response was returned at
78626// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
78627// to check whether the returned error was because
78628// http.StatusNotModified was returned.
78629func (c *InstanceGroupManagersResizeAdvancedCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
78630	gensupport.SetOptions(c.urlParams_, opts...)
78631	res, err := c.doRequest("json")
78632	if res != nil && res.StatusCode == http.StatusNotModified {
78633		if res.Body != nil {
78634			res.Body.Close()
78635		}
78636		return nil, &googleapi.Error{
78637			Code:   res.StatusCode,
78638			Header: res.Header,
78639		}
78640	}
78641	if err != nil {
78642		return nil, err
78643	}
78644	defer googleapi.CloseBody(res)
78645	if err := googleapi.CheckResponse(res); err != nil {
78646		return nil, err
78647	}
78648	ret := &Operation{
78649		ServerResponse: googleapi.ServerResponse{
78650			Header:         res.Header,
78651			HTTPStatusCode: res.StatusCode,
78652		},
78653	}
78654	target := &ret
78655	if err := gensupport.DecodeResponse(target, res); err != nil {
78656		return nil, err
78657	}
78658	return ret, nil
78659	// {
78660	//   "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. (== suppress_warning http-rest-shadowed ==)",
78661	//   "httpMethod": "POST",
78662	//   "id": "compute.instanceGroupManagers.resizeAdvanced",
78663	//   "parameterOrder": [
78664	//     "project",
78665	//     "zone",
78666	//     "instanceGroupManager"
78667	//   ],
78668	//   "parameters": {
78669	//     "instanceGroupManager": {
78670	//       "description": "The name of the managed instance group.",
78671	//       "location": "path",
78672	//       "required": true,
78673	//       "type": "string"
78674	//     },
78675	//     "project": {
78676	//       "description": "Project ID for this request.",
78677	//       "location": "path",
78678	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
78679	//       "required": true,
78680	//       "type": "string"
78681	//     },
78682	//     "requestId": {
78683	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
78684	//       "location": "query",
78685	//       "type": "string"
78686	//     },
78687	//     "zone": {
78688	//       "description": "The name of the zone where the managed instance group is located.",
78689	//       "location": "path",
78690	//       "required": true,
78691	//       "type": "string"
78692	//     }
78693	//   },
78694	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/resizeAdvanced",
78695	//   "request": {
78696	//     "$ref": "InstanceGroupManagersResizeAdvancedRequest"
78697	//   },
78698	//   "response": {
78699	//     "$ref": "Operation"
78700	//   },
78701	//   "scopes": [
78702	//     "https://www.googleapis.com/auth/cloud-platform",
78703	//     "https://www.googleapis.com/auth/compute"
78704	//   ]
78705	// }
78706
78707}
78708
78709// method id "compute.instanceGroupManagers.setAutoHealingPolicies":
78710
78711type InstanceGroupManagersSetAutoHealingPoliciesCall struct {
78712	s                                          *Service
78713	project                                    string
78714	zone                                       string
78715	instanceGroupManager                       string
78716	instancegroupmanagerssetautohealingrequest *InstanceGroupManagersSetAutoHealingRequest
78717	urlParams_                                 gensupport.URLParams
78718	ctx_                                       context.Context
78719	header_                                    http.Header
78720}
78721
78722// SetAutoHealingPolicies: Modifies the autohealing policies.
78723// [Deprecated] This method is deprecated. Please use Patch instead. (==
78724// suppress_warning http-rest-shadowed ==)
78725func (r *InstanceGroupManagersService) SetAutoHealingPolicies(project string, zone string, instanceGroupManager string, instancegroupmanagerssetautohealingrequest *InstanceGroupManagersSetAutoHealingRequest) *InstanceGroupManagersSetAutoHealingPoliciesCall {
78726	c := &InstanceGroupManagersSetAutoHealingPoliciesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
78727	c.project = project
78728	c.zone = zone
78729	c.instanceGroupManager = instanceGroupManager
78730	c.instancegroupmanagerssetautohealingrequest = instancegroupmanagerssetautohealingrequest
78731	return c
78732}
78733
78734// RequestId sets the optional parameter "requestId": An optional
78735// request ID to identify requests. Specify a unique request ID so that
78736// if you must retry your request, the server will know to ignore the
78737// request if it has already been completed.
78738//
78739// For example, consider a situation where you make an initial request
78740// and the request times out. If you make the request again with the
78741// same request ID, the server can check if original operation with the
78742// same request ID was received, and if so, will ignore the second
78743// request. This prevents clients from accidentally creating duplicate
78744// commitments.
78745//
78746// The request ID must be a valid UUID with the exception that zero UUID
78747// is not supported (00000000-0000-0000-0000-000000000000).
78748func (c *InstanceGroupManagersSetAutoHealingPoliciesCall) RequestId(requestId string) *InstanceGroupManagersSetAutoHealingPoliciesCall {
78749	c.urlParams_.Set("requestId", requestId)
78750	return c
78751}
78752
78753// Fields allows partial responses to be retrieved. See
78754// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
78755// for more information.
78756func (c *InstanceGroupManagersSetAutoHealingPoliciesCall) Fields(s ...googleapi.Field) *InstanceGroupManagersSetAutoHealingPoliciesCall {
78757	c.urlParams_.Set("fields", googleapi.CombineFields(s))
78758	return c
78759}
78760
78761// Context sets the context to be used in this call's Do method. Any
78762// pending HTTP request will be aborted if the provided context is
78763// canceled.
78764func (c *InstanceGroupManagersSetAutoHealingPoliciesCall) Context(ctx context.Context) *InstanceGroupManagersSetAutoHealingPoliciesCall {
78765	c.ctx_ = ctx
78766	return c
78767}
78768
78769// Header returns an http.Header that can be modified by the caller to
78770// add HTTP headers to the request.
78771func (c *InstanceGroupManagersSetAutoHealingPoliciesCall) Header() http.Header {
78772	if c.header_ == nil {
78773		c.header_ = make(http.Header)
78774	}
78775	return c.header_
78776}
78777
78778func (c *InstanceGroupManagersSetAutoHealingPoliciesCall) doRequest(alt string) (*http.Response, error) {
78779	reqHeaders := make(http.Header)
78780	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
78781	for k, v := range c.header_ {
78782		reqHeaders[k] = v
78783	}
78784	reqHeaders.Set("User-Agent", c.s.userAgent())
78785	var body io.Reader = nil
78786	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagerssetautohealingrequest)
78787	if err != nil {
78788		return nil, err
78789	}
78790	reqHeaders.Set("Content-Type", "application/json")
78791	c.urlParams_.Set("alt", alt)
78792	c.urlParams_.Set("prettyPrint", "false")
78793	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/setAutoHealingPolicies")
78794	urls += "?" + c.urlParams_.Encode()
78795	req, err := http.NewRequest("POST", urls, body)
78796	if err != nil {
78797		return nil, err
78798	}
78799	req.Header = reqHeaders
78800	googleapi.Expand(req.URL, map[string]string{
78801		"project":              c.project,
78802		"zone":                 c.zone,
78803		"instanceGroupManager": c.instanceGroupManager,
78804	})
78805	return gensupport.SendRequest(c.ctx_, c.s.client, req)
78806}
78807
78808// Do executes the "compute.instanceGroupManagers.setAutoHealingPolicies" call.
78809// Exactly one of *Operation or error will be non-nil. Any non-2xx
78810// status code is an error. Response headers are in either
78811// *Operation.ServerResponse.Header or (if a response was returned at
78812// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
78813// to check whether the returned error was because
78814// http.StatusNotModified was returned.
78815func (c *InstanceGroupManagersSetAutoHealingPoliciesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
78816	gensupport.SetOptions(c.urlParams_, opts...)
78817	res, err := c.doRequest("json")
78818	if res != nil && res.StatusCode == http.StatusNotModified {
78819		if res.Body != nil {
78820			res.Body.Close()
78821		}
78822		return nil, &googleapi.Error{
78823			Code:   res.StatusCode,
78824			Header: res.Header,
78825		}
78826	}
78827	if err != nil {
78828		return nil, err
78829	}
78830	defer googleapi.CloseBody(res)
78831	if err := googleapi.CheckResponse(res); err != nil {
78832		return nil, err
78833	}
78834	ret := &Operation{
78835		ServerResponse: googleapi.ServerResponse{
78836			Header:         res.Header,
78837			HTTPStatusCode: res.StatusCode,
78838		},
78839	}
78840	target := &ret
78841	if err := gensupport.DecodeResponse(target, res); err != nil {
78842		return nil, err
78843	}
78844	return ret, nil
78845	// {
78846	//   "description": "Modifies the autohealing policies. [Deprecated] This method is deprecated. Please use Patch instead. (== suppress_warning http-rest-shadowed ==)",
78847	//   "httpMethod": "POST",
78848	//   "id": "compute.instanceGroupManagers.setAutoHealingPolicies",
78849	//   "parameterOrder": [
78850	//     "project",
78851	//     "zone",
78852	//     "instanceGroupManager"
78853	//   ],
78854	//   "parameters": {
78855	//     "instanceGroupManager": {
78856	//       "description": "The name of the instance group manager.",
78857	//       "location": "path",
78858	//       "required": true,
78859	//       "type": "string"
78860	//     },
78861	//     "project": {
78862	//       "description": "Project ID for this request.",
78863	//       "location": "path",
78864	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
78865	//       "required": true,
78866	//       "type": "string"
78867	//     },
78868	//     "requestId": {
78869	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
78870	//       "location": "query",
78871	//       "type": "string"
78872	//     },
78873	//     "zone": {
78874	//       "description": "The name of the zone where the managed instance group is located.",
78875	//       "location": "path",
78876	//       "required": true,
78877	//       "type": "string"
78878	//     }
78879	//   },
78880	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/setAutoHealingPolicies",
78881	//   "request": {
78882	//     "$ref": "InstanceGroupManagersSetAutoHealingRequest"
78883	//   },
78884	//   "response": {
78885	//     "$ref": "Operation"
78886	//   },
78887	//   "scopes": [
78888	//     "https://www.googleapis.com/auth/cloud-platform",
78889	//     "https://www.googleapis.com/auth/compute"
78890	//   ]
78891	// }
78892
78893}
78894
78895// method id "compute.instanceGroupManagers.setInstanceTemplate":
78896
78897type InstanceGroupManagersSetInstanceTemplateCall struct {
78898	s                                               *Service
78899	project                                         string
78900	zone                                            string
78901	instanceGroupManager                            string
78902	instancegroupmanagerssetinstancetemplaterequest *InstanceGroupManagersSetInstanceTemplateRequest
78903	urlParams_                                      gensupport.URLParams
78904	ctx_                                            context.Context
78905	header_                                         http.Header
78906}
78907
78908// SetInstanceTemplate: Specifies the instance template to use when
78909// creating new instances in this group. The templates for existing
78910// instances in the group do not change unless you recreate them. (==
78911// suppress_warning http-rest-shadowed ==)
78912func (r *InstanceGroupManagersService) SetInstanceTemplate(project string, zone string, instanceGroupManager string, instancegroupmanagerssetinstancetemplaterequest *InstanceGroupManagersSetInstanceTemplateRequest) *InstanceGroupManagersSetInstanceTemplateCall {
78913	c := &InstanceGroupManagersSetInstanceTemplateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
78914	c.project = project
78915	c.zone = zone
78916	c.instanceGroupManager = instanceGroupManager
78917	c.instancegroupmanagerssetinstancetemplaterequest = instancegroupmanagerssetinstancetemplaterequest
78918	return c
78919}
78920
78921// RequestId sets the optional parameter "requestId": An optional
78922// request ID to identify requests. Specify a unique request ID so that
78923// if you must retry your request, the server will know to ignore the
78924// request if it has already been completed.
78925//
78926// For example, consider a situation where you make an initial request
78927// and the request times out. If you make the request again with the
78928// same request ID, the server can check if original operation with the
78929// same request ID was received, and if so, will ignore the second
78930// request. This prevents clients from accidentally creating duplicate
78931// commitments.
78932//
78933// The request ID must be a valid UUID with the exception that zero UUID
78934// is not supported (00000000-0000-0000-0000-000000000000).
78935func (c *InstanceGroupManagersSetInstanceTemplateCall) RequestId(requestId string) *InstanceGroupManagersSetInstanceTemplateCall {
78936	c.urlParams_.Set("requestId", requestId)
78937	return c
78938}
78939
78940// Fields allows partial responses to be retrieved. See
78941// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
78942// for more information.
78943func (c *InstanceGroupManagersSetInstanceTemplateCall) Fields(s ...googleapi.Field) *InstanceGroupManagersSetInstanceTemplateCall {
78944	c.urlParams_.Set("fields", googleapi.CombineFields(s))
78945	return c
78946}
78947
78948// Context sets the context to be used in this call's Do method. Any
78949// pending HTTP request will be aborted if the provided context is
78950// canceled.
78951func (c *InstanceGroupManagersSetInstanceTemplateCall) Context(ctx context.Context) *InstanceGroupManagersSetInstanceTemplateCall {
78952	c.ctx_ = ctx
78953	return c
78954}
78955
78956// Header returns an http.Header that can be modified by the caller to
78957// add HTTP headers to the request.
78958func (c *InstanceGroupManagersSetInstanceTemplateCall) Header() http.Header {
78959	if c.header_ == nil {
78960		c.header_ = make(http.Header)
78961	}
78962	return c.header_
78963}
78964
78965func (c *InstanceGroupManagersSetInstanceTemplateCall) doRequest(alt string) (*http.Response, error) {
78966	reqHeaders := make(http.Header)
78967	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
78968	for k, v := range c.header_ {
78969		reqHeaders[k] = v
78970	}
78971	reqHeaders.Set("User-Agent", c.s.userAgent())
78972	var body io.Reader = nil
78973	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagerssetinstancetemplaterequest)
78974	if err != nil {
78975		return nil, err
78976	}
78977	reqHeaders.Set("Content-Type", "application/json")
78978	c.urlParams_.Set("alt", alt)
78979	c.urlParams_.Set("prettyPrint", "false")
78980	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/setInstanceTemplate")
78981	urls += "?" + c.urlParams_.Encode()
78982	req, err := http.NewRequest("POST", urls, body)
78983	if err != nil {
78984		return nil, err
78985	}
78986	req.Header = reqHeaders
78987	googleapi.Expand(req.URL, map[string]string{
78988		"project":              c.project,
78989		"zone":                 c.zone,
78990		"instanceGroupManager": c.instanceGroupManager,
78991	})
78992	return gensupport.SendRequest(c.ctx_, c.s.client, req)
78993}
78994
78995// Do executes the "compute.instanceGroupManagers.setInstanceTemplate" call.
78996// Exactly one of *Operation or error will be non-nil. Any non-2xx
78997// status code is an error. Response headers are in either
78998// *Operation.ServerResponse.Header or (if a response was returned at
78999// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
79000// to check whether the returned error was because
79001// http.StatusNotModified was returned.
79002func (c *InstanceGroupManagersSetInstanceTemplateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
79003	gensupport.SetOptions(c.urlParams_, opts...)
79004	res, err := c.doRequest("json")
79005	if res != nil && res.StatusCode == http.StatusNotModified {
79006		if res.Body != nil {
79007			res.Body.Close()
79008		}
79009		return nil, &googleapi.Error{
79010			Code:   res.StatusCode,
79011			Header: res.Header,
79012		}
79013	}
79014	if err != nil {
79015		return nil, err
79016	}
79017	defer googleapi.CloseBody(res)
79018	if err := googleapi.CheckResponse(res); err != nil {
79019		return nil, err
79020	}
79021	ret := &Operation{
79022		ServerResponse: googleapi.ServerResponse{
79023			Header:         res.Header,
79024			HTTPStatusCode: res.StatusCode,
79025		},
79026	}
79027	target := &ret
79028	if err := gensupport.DecodeResponse(target, res); err != nil {
79029		return nil, err
79030	}
79031	return ret, nil
79032	// {
79033	//   "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. (== suppress_warning http-rest-shadowed ==)",
79034	//   "httpMethod": "POST",
79035	//   "id": "compute.instanceGroupManagers.setInstanceTemplate",
79036	//   "parameterOrder": [
79037	//     "project",
79038	//     "zone",
79039	//     "instanceGroupManager"
79040	//   ],
79041	//   "parameters": {
79042	//     "instanceGroupManager": {
79043	//       "description": "The name of the managed instance group.",
79044	//       "location": "path",
79045	//       "required": true,
79046	//       "type": "string"
79047	//     },
79048	//     "project": {
79049	//       "description": "Project ID for this request.",
79050	//       "location": "path",
79051	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
79052	//       "required": true,
79053	//       "type": "string"
79054	//     },
79055	//     "requestId": {
79056	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
79057	//       "location": "query",
79058	//       "type": "string"
79059	//     },
79060	//     "zone": {
79061	//       "description": "The name of the zone where the managed instance group is located.",
79062	//       "location": "path",
79063	//       "required": true,
79064	//       "type": "string"
79065	//     }
79066	//   },
79067	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/setInstanceTemplate",
79068	//   "request": {
79069	//     "$ref": "InstanceGroupManagersSetInstanceTemplateRequest"
79070	//   },
79071	//   "response": {
79072	//     "$ref": "Operation"
79073	//   },
79074	//   "scopes": [
79075	//     "https://www.googleapis.com/auth/cloud-platform",
79076	//     "https://www.googleapis.com/auth/compute"
79077	//   ]
79078	// }
79079
79080}
79081
79082// method id "compute.instanceGroupManagers.setTargetPools":
79083
79084type InstanceGroupManagersSetTargetPoolsCall struct {
79085	s                                          *Service
79086	project                                    string
79087	zone                                       string
79088	instanceGroupManager                       string
79089	instancegroupmanagerssettargetpoolsrequest *InstanceGroupManagersSetTargetPoolsRequest
79090	urlParams_                                 gensupport.URLParams
79091	ctx_                                       context.Context
79092	header_                                    http.Header
79093}
79094
79095// SetTargetPools: Modifies the target pools to which all instances in
79096// this managed instance group are assigned. The target pools
79097// automatically apply to all of the instances in the managed instance
79098// group. This operation is marked DONE when you make the request even
79099// if the instances have not yet been added to their target pools. The
79100// change might take some time to apply to all of the instances in the
79101// group depending on the size of the group. (== suppress_warning
79102// http-rest-shadowed ==)
79103func (r *InstanceGroupManagersService) SetTargetPools(project string, zone string, instanceGroupManager string, instancegroupmanagerssettargetpoolsrequest *InstanceGroupManagersSetTargetPoolsRequest) *InstanceGroupManagersSetTargetPoolsCall {
79104	c := &InstanceGroupManagersSetTargetPoolsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
79105	c.project = project
79106	c.zone = zone
79107	c.instanceGroupManager = instanceGroupManager
79108	c.instancegroupmanagerssettargetpoolsrequest = instancegroupmanagerssettargetpoolsrequest
79109	return c
79110}
79111
79112// RequestId sets the optional parameter "requestId": An optional
79113// request ID to identify requests. Specify a unique request ID so that
79114// if you must retry your request, the server will know to ignore the
79115// request if it has already been completed.
79116//
79117// For example, consider a situation where you make an initial request
79118// and the request times out. If you make the request again with the
79119// same request ID, the server can check if original operation with the
79120// same request ID was received, and if so, will ignore the second
79121// request. This prevents clients from accidentally creating duplicate
79122// commitments.
79123//
79124// The request ID must be a valid UUID with the exception that zero UUID
79125// is not supported (00000000-0000-0000-0000-000000000000).
79126func (c *InstanceGroupManagersSetTargetPoolsCall) RequestId(requestId string) *InstanceGroupManagersSetTargetPoolsCall {
79127	c.urlParams_.Set("requestId", requestId)
79128	return c
79129}
79130
79131// Fields allows partial responses to be retrieved. See
79132// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
79133// for more information.
79134func (c *InstanceGroupManagersSetTargetPoolsCall) Fields(s ...googleapi.Field) *InstanceGroupManagersSetTargetPoolsCall {
79135	c.urlParams_.Set("fields", googleapi.CombineFields(s))
79136	return c
79137}
79138
79139// Context sets the context to be used in this call's Do method. Any
79140// pending HTTP request will be aborted if the provided context is
79141// canceled.
79142func (c *InstanceGroupManagersSetTargetPoolsCall) Context(ctx context.Context) *InstanceGroupManagersSetTargetPoolsCall {
79143	c.ctx_ = ctx
79144	return c
79145}
79146
79147// Header returns an http.Header that can be modified by the caller to
79148// add HTTP headers to the request.
79149func (c *InstanceGroupManagersSetTargetPoolsCall) Header() http.Header {
79150	if c.header_ == nil {
79151		c.header_ = make(http.Header)
79152	}
79153	return c.header_
79154}
79155
79156func (c *InstanceGroupManagersSetTargetPoolsCall) doRequest(alt string) (*http.Response, error) {
79157	reqHeaders := make(http.Header)
79158	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
79159	for k, v := range c.header_ {
79160		reqHeaders[k] = v
79161	}
79162	reqHeaders.Set("User-Agent", c.s.userAgent())
79163	var body io.Reader = nil
79164	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagerssettargetpoolsrequest)
79165	if err != nil {
79166		return nil, err
79167	}
79168	reqHeaders.Set("Content-Type", "application/json")
79169	c.urlParams_.Set("alt", alt)
79170	c.urlParams_.Set("prettyPrint", "false")
79171	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/setTargetPools")
79172	urls += "?" + c.urlParams_.Encode()
79173	req, err := http.NewRequest("POST", urls, body)
79174	if err != nil {
79175		return nil, err
79176	}
79177	req.Header = reqHeaders
79178	googleapi.Expand(req.URL, map[string]string{
79179		"project":              c.project,
79180		"zone":                 c.zone,
79181		"instanceGroupManager": c.instanceGroupManager,
79182	})
79183	return gensupport.SendRequest(c.ctx_, c.s.client, req)
79184}
79185
79186// Do executes the "compute.instanceGroupManagers.setTargetPools" call.
79187// Exactly one of *Operation or error will be non-nil. Any non-2xx
79188// status code is an error. Response headers are in either
79189// *Operation.ServerResponse.Header or (if a response was returned at
79190// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
79191// to check whether the returned error was because
79192// http.StatusNotModified was returned.
79193func (c *InstanceGroupManagersSetTargetPoolsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
79194	gensupport.SetOptions(c.urlParams_, opts...)
79195	res, err := c.doRequest("json")
79196	if res != nil && res.StatusCode == http.StatusNotModified {
79197		if res.Body != nil {
79198			res.Body.Close()
79199		}
79200		return nil, &googleapi.Error{
79201			Code:   res.StatusCode,
79202			Header: res.Header,
79203		}
79204	}
79205	if err != nil {
79206		return nil, err
79207	}
79208	defer googleapi.CloseBody(res)
79209	if err := googleapi.CheckResponse(res); err != nil {
79210		return nil, err
79211	}
79212	ret := &Operation{
79213		ServerResponse: googleapi.ServerResponse{
79214			Header:         res.Header,
79215			HTTPStatusCode: res.StatusCode,
79216		},
79217	}
79218	target := &ret
79219	if err := gensupport.DecodeResponse(target, res); err != nil {
79220		return nil, err
79221	}
79222	return ret, nil
79223	// {
79224	//   "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. (== suppress_warning http-rest-shadowed ==)",
79225	//   "httpMethod": "POST",
79226	//   "id": "compute.instanceGroupManagers.setTargetPools",
79227	//   "parameterOrder": [
79228	//     "project",
79229	//     "zone",
79230	//     "instanceGroupManager"
79231	//   ],
79232	//   "parameters": {
79233	//     "instanceGroupManager": {
79234	//       "description": "The name of the managed instance group.",
79235	//       "location": "path",
79236	//       "required": true,
79237	//       "type": "string"
79238	//     },
79239	//     "project": {
79240	//       "description": "Project ID for this request.",
79241	//       "location": "path",
79242	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
79243	//       "required": true,
79244	//       "type": "string"
79245	//     },
79246	//     "requestId": {
79247	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
79248	//       "location": "query",
79249	//       "type": "string"
79250	//     },
79251	//     "zone": {
79252	//       "description": "The name of the zone where the managed instance group is located.",
79253	//       "location": "path",
79254	//       "required": true,
79255	//       "type": "string"
79256	//     }
79257	//   },
79258	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/setTargetPools",
79259	//   "request": {
79260	//     "$ref": "InstanceGroupManagersSetTargetPoolsRequest"
79261	//   },
79262	//   "response": {
79263	//     "$ref": "Operation"
79264	//   },
79265	//   "scopes": [
79266	//     "https://www.googleapis.com/auth/cloud-platform",
79267	//     "https://www.googleapis.com/auth/compute"
79268	//   ]
79269	// }
79270
79271}
79272
79273// method id "compute.instanceGroupManagers.testIamPermissions":
79274
79275type InstanceGroupManagersTestIamPermissionsCall struct {
79276	s                      *Service
79277	project                string
79278	zone                   string
79279	resource               string
79280	testpermissionsrequest *TestPermissionsRequest
79281	urlParams_             gensupport.URLParams
79282	ctx_                   context.Context
79283	header_                http.Header
79284}
79285
79286// TestIamPermissions: Returns permissions that a caller has on the
79287// specified resource. (== suppress_warning http-rest-shadowed ==)
79288func (r *InstanceGroupManagersService) TestIamPermissions(project string, zone string, resource string, testpermissionsrequest *TestPermissionsRequest) *InstanceGroupManagersTestIamPermissionsCall {
79289	c := &InstanceGroupManagersTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
79290	c.project = project
79291	c.zone = zone
79292	c.resource = resource
79293	c.testpermissionsrequest = testpermissionsrequest
79294	return c
79295}
79296
79297// Fields allows partial responses to be retrieved. See
79298// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
79299// for more information.
79300func (c *InstanceGroupManagersTestIamPermissionsCall) Fields(s ...googleapi.Field) *InstanceGroupManagersTestIamPermissionsCall {
79301	c.urlParams_.Set("fields", googleapi.CombineFields(s))
79302	return c
79303}
79304
79305// Context sets the context to be used in this call's Do method. Any
79306// pending HTTP request will be aborted if the provided context is
79307// canceled.
79308func (c *InstanceGroupManagersTestIamPermissionsCall) Context(ctx context.Context) *InstanceGroupManagersTestIamPermissionsCall {
79309	c.ctx_ = ctx
79310	return c
79311}
79312
79313// Header returns an http.Header that can be modified by the caller to
79314// add HTTP headers to the request.
79315func (c *InstanceGroupManagersTestIamPermissionsCall) Header() http.Header {
79316	if c.header_ == nil {
79317		c.header_ = make(http.Header)
79318	}
79319	return c.header_
79320}
79321
79322func (c *InstanceGroupManagersTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
79323	reqHeaders := make(http.Header)
79324	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
79325	for k, v := range c.header_ {
79326		reqHeaders[k] = v
79327	}
79328	reqHeaders.Set("User-Agent", c.s.userAgent())
79329	var body io.Reader = nil
79330	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
79331	if err != nil {
79332		return nil, err
79333	}
79334	reqHeaders.Set("Content-Type", "application/json")
79335	c.urlParams_.Set("alt", alt)
79336	c.urlParams_.Set("prettyPrint", "false")
79337	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{resource}/testIamPermissions")
79338	urls += "?" + c.urlParams_.Encode()
79339	req, err := http.NewRequest("POST", urls, body)
79340	if err != nil {
79341		return nil, err
79342	}
79343	req.Header = reqHeaders
79344	googleapi.Expand(req.URL, map[string]string{
79345		"project":  c.project,
79346		"zone":     c.zone,
79347		"resource": c.resource,
79348	})
79349	return gensupport.SendRequest(c.ctx_, c.s.client, req)
79350}
79351
79352// Do executes the "compute.instanceGroupManagers.testIamPermissions" call.
79353// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
79354// non-2xx status code is an error. Response headers are in either
79355// *TestPermissionsResponse.ServerResponse.Header or (if a response was
79356// returned at all) in error.(*googleapi.Error).Header. Use
79357// googleapi.IsNotModified to check whether the returned error was
79358// because http.StatusNotModified was returned.
79359func (c *InstanceGroupManagersTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
79360	gensupport.SetOptions(c.urlParams_, opts...)
79361	res, err := c.doRequest("json")
79362	if res != nil && res.StatusCode == http.StatusNotModified {
79363		if res.Body != nil {
79364			res.Body.Close()
79365		}
79366		return nil, &googleapi.Error{
79367			Code:   res.StatusCode,
79368			Header: res.Header,
79369		}
79370	}
79371	if err != nil {
79372		return nil, err
79373	}
79374	defer googleapi.CloseBody(res)
79375	if err := googleapi.CheckResponse(res); err != nil {
79376		return nil, err
79377	}
79378	ret := &TestPermissionsResponse{
79379		ServerResponse: googleapi.ServerResponse{
79380			Header:         res.Header,
79381			HTTPStatusCode: res.StatusCode,
79382		},
79383	}
79384	target := &ret
79385	if err := gensupport.DecodeResponse(target, res); err != nil {
79386		return nil, err
79387	}
79388	return ret, nil
79389	// {
79390	//   "description": "Returns permissions that a caller has on the specified resource. (== suppress_warning http-rest-shadowed ==)",
79391	//   "httpMethod": "POST",
79392	//   "id": "compute.instanceGroupManagers.testIamPermissions",
79393	//   "parameterOrder": [
79394	//     "project",
79395	//     "zone",
79396	//     "resource"
79397	//   ],
79398	//   "parameters": {
79399	//     "project": {
79400	//       "description": "Project ID for this request.",
79401	//       "location": "path",
79402	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
79403	//       "required": true,
79404	//       "type": "string"
79405	//     },
79406	//     "resource": {
79407	//       "description": "Name or id of the resource for this request.",
79408	//       "location": "path",
79409	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
79410	//       "required": true,
79411	//       "type": "string"
79412	//     },
79413	//     "zone": {
79414	//       "description": "The name of the zone for this request.",
79415	//       "location": "path",
79416	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
79417	//       "required": true,
79418	//       "type": "string"
79419	//     }
79420	//   },
79421	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{resource}/testIamPermissions",
79422	//   "request": {
79423	//     "$ref": "TestPermissionsRequest"
79424	//   },
79425	//   "response": {
79426	//     "$ref": "TestPermissionsResponse"
79427	//   },
79428	//   "scopes": [
79429	//     "https://www.googleapis.com/auth/cloud-platform",
79430	//     "https://www.googleapis.com/auth/compute",
79431	//     "https://www.googleapis.com/auth/compute.readonly"
79432	//   ]
79433	// }
79434
79435}
79436
79437// method id "compute.instanceGroupManagers.update":
79438
79439type InstanceGroupManagersUpdateCall struct {
79440	s                    *Service
79441	project              string
79442	zone                 string
79443	instanceGroupManager string
79444	instancegroupmanager *InstanceGroupManager
79445	urlParams_           gensupport.URLParams
79446	ctx_                 context.Context
79447	header_              http.Header
79448}
79449
79450// Update: Updates a managed instance group using the information that
79451// you specify in the request. This operation is marked as DONE when the
79452// group is updated even if the instances in the group have not yet been
79453// updated. You must separately verify the status of the individual
79454// instances with the listManagedInstances method. (== suppress_warning
79455// http-rest-shadowed ==)
79456func (r *InstanceGroupManagersService) Update(project string, zone string, instanceGroupManager string, instancegroupmanager *InstanceGroupManager) *InstanceGroupManagersUpdateCall {
79457	c := &InstanceGroupManagersUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
79458	c.project = project
79459	c.zone = zone
79460	c.instanceGroupManager = instanceGroupManager
79461	c.instancegroupmanager = instancegroupmanager
79462	return c
79463}
79464
79465// RequestId sets the optional parameter "requestId": An optional
79466// request ID to identify requests. Specify a unique request ID so that
79467// if you must retry your request, the server will know to ignore the
79468// request if it has already been completed.
79469//
79470// For example, consider a situation where you make an initial request
79471// and the request times out. If you make the request again with the
79472// same request ID, the server can check if original operation with the
79473// same request ID was received, and if so, will ignore the second
79474// request. This prevents clients from accidentally creating duplicate
79475// commitments.
79476//
79477// The request ID must be a valid UUID with the exception that zero UUID
79478// is not supported (00000000-0000-0000-0000-000000000000).
79479func (c *InstanceGroupManagersUpdateCall) RequestId(requestId string) *InstanceGroupManagersUpdateCall {
79480	c.urlParams_.Set("requestId", requestId)
79481	return c
79482}
79483
79484// Fields allows partial responses to be retrieved. See
79485// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
79486// for more information.
79487func (c *InstanceGroupManagersUpdateCall) Fields(s ...googleapi.Field) *InstanceGroupManagersUpdateCall {
79488	c.urlParams_.Set("fields", googleapi.CombineFields(s))
79489	return c
79490}
79491
79492// Context sets the context to be used in this call's Do method. Any
79493// pending HTTP request will be aborted if the provided context is
79494// canceled.
79495func (c *InstanceGroupManagersUpdateCall) Context(ctx context.Context) *InstanceGroupManagersUpdateCall {
79496	c.ctx_ = ctx
79497	return c
79498}
79499
79500// Header returns an http.Header that can be modified by the caller to
79501// add HTTP headers to the request.
79502func (c *InstanceGroupManagersUpdateCall) Header() http.Header {
79503	if c.header_ == nil {
79504		c.header_ = make(http.Header)
79505	}
79506	return c.header_
79507}
79508
79509func (c *InstanceGroupManagersUpdateCall) doRequest(alt string) (*http.Response, error) {
79510	reqHeaders := make(http.Header)
79511	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
79512	for k, v := range c.header_ {
79513		reqHeaders[k] = v
79514	}
79515	reqHeaders.Set("User-Agent", c.s.userAgent())
79516	var body io.Reader = nil
79517	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanager)
79518	if err != nil {
79519		return nil, err
79520	}
79521	reqHeaders.Set("Content-Type", "application/json")
79522	c.urlParams_.Set("alt", alt)
79523	c.urlParams_.Set("prettyPrint", "false")
79524	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}")
79525	urls += "?" + c.urlParams_.Encode()
79526	req, err := http.NewRequest("PUT", urls, body)
79527	if err != nil {
79528		return nil, err
79529	}
79530	req.Header = reqHeaders
79531	googleapi.Expand(req.URL, map[string]string{
79532		"project":              c.project,
79533		"zone":                 c.zone,
79534		"instanceGroupManager": c.instanceGroupManager,
79535	})
79536	return gensupport.SendRequest(c.ctx_, c.s.client, req)
79537}
79538
79539// Do executes the "compute.instanceGroupManagers.update" call.
79540// Exactly one of *Operation or error will be non-nil. Any non-2xx
79541// status code is an error. Response headers are in either
79542// *Operation.ServerResponse.Header or (if a response was returned at
79543// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
79544// to check whether the returned error was because
79545// http.StatusNotModified was returned.
79546func (c *InstanceGroupManagersUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
79547	gensupport.SetOptions(c.urlParams_, opts...)
79548	res, err := c.doRequest("json")
79549	if res != nil && res.StatusCode == http.StatusNotModified {
79550		if res.Body != nil {
79551			res.Body.Close()
79552		}
79553		return nil, &googleapi.Error{
79554			Code:   res.StatusCode,
79555			Header: res.Header,
79556		}
79557	}
79558	if err != nil {
79559		return nil, err
79560	}
79561	defer googleapi.CloseBody(res)
79562	if err := googleapi.CheckResponse(res); err != nil {
79563		return nil, err
79564	}
79565	ret := &Operation{
79566		ServerResponse: googleapi.ServerResponse{
79567			Header:         res.Header,
79568			HTTPStatusCode: res.StatusCode,
79569		},
79570	}
79571	target := &ret
79572	if err := gensupport.DecodeResponse(target, res); err != nil {
79573		return nil, err
79574	}
79575	return ret, nil
79576	// {
79577	//   "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. (== suppress_warning http-rest-shadowed ==)",
79578	//   "httpMethod": "PUT",
79579	//   "id": "compute.instanceGroupManagers.update",
79580	//   "parameterOrder": [
79581	//     "project",
79582	//     "zone",
79583	//     "instanceGroupManager"
79584	//   ],
79585	//   "parameters": {
79586	//     "instanceGroupManager": {
79587	//       "description": "The name of the instance group manager.",
79588	//       "location": "path",
79589	//       "required": true,
79590	//       "type": "string"
79591	//     },
79592	//     "project": {
79593	//       "description": "Project ID for this request.",
79594	//       "location": "path",
79595	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
79596	//       "required": true,
79597	//       "type": "string"
79598	//     },
79599	//     "requestId": {
79600	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
79601	//       "location": "query",
79602	//       "type": "string"
79603	//     },
79604	//     "zone": {
79605	//       "description": "The name of the zone where you want to create the managed instance group.",
79606	//       "location": "path",
79607	//       "required": true,
79608	//       "type": "string"
79609	//     }
79610	//   },
79611	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}",
79612	//   "request": {
79613	//     "$ref": "InstanceGroupManager"
79614	//   },
79615	//   "response": {
79616	//     "$ref": "Operation"
79617	//   },
79618	//   "scopes": [
79619	//     "https://www.googleapis.com/auth/cloud-platform",
79620	//     "https://www.googleapis.com/auth/compute"
79621	//   ]
79622	// }
79623
79624}
79625
79626// method id "compute.instanceGroupManagers.updatePerInstanceConfigs":
79627
79628type InstanceGroupManagersUpdatePerInstanceConfigsCall struct {
79629	s                                                *Service
79630	project                                          string
79631	zone                                             string
79632	instanceGroupManager                             string
79633	instancegroupmanagersupdateperinstanceconfigsreq *InstanceGroupManagersUpdatePerInstanceConfigsReq
79634	urlParams_                                       gensupport.URLParams
79635	ctx_                                             context.Context
79636	header_                                          http.Header
79637}
79638
79639// UpdatePerInstanceConfigs: Insert or update (for the ones that already
79640// exist) per-instance configs for the managed instance group.
79641// perInstanceConfig.instance serves as a key used to distinguish
79642// whether to perform insert or patch. (== suppress_warning
79643// http-rest-shadowed ==)
79644func (r *InstanceGroupManagersService) UpdatePerInstanceConfigs(project string, zone string, instanceGroupManager string, instancegroupmanagersupdateperinstanceconfigsreq *InstanceGroupManagersUpdatePerInstanceConfigsReq) *InstanceGroupManagersUpdatePerInstanceConfigsCall {
79645	c := &InstanceGroupManagersUpdatePerInstanceConfigsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
79646	c.project = project
79647	c.zone = zone
79648	c.instanceGroupManager = instanceGroupManager
79649	c.instancegroupmanagersupdateperinstanceconfigsreq = instancegroupmanagersupdateperinstanceconfigsreq
79650	return c
79651}
79652
79653// RequestId sets the optional parameter "requestId": An optional
79654// request ID to identify requests. Specify a unique request ID so that
79655// if you must retry your request, the server will know to ignore the
79656// request if it has already been completed.
79657//
79658// For example, consider a situation where you make an initial request
79659// and the request times out. If you make the request again with the
79660// same request ID, the server can check if original operation with the
79661// same request ID was received, and if so, will ignore the second
79662// request. This prevents clients from accidentally creating duplicate
79663// commitments.
79664//
79665// The request ID must be a valid UUID with the exception that zero UUID
79666// is not supported (00000000-0000-0000-0000-000000000000).
79667func (c *InstanceGroupManagersUpdatePerInstanceConfigsCall) RequestId(requestId string) *InstanceGroupManagersUpdatePerInstanceConfigsCall {
79668	c.urlParams_.Set("requestId", requestId)
79669	return c
79670}
79671
79672// Fields allows partial responses to be retrieved. See
79673// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
79674// for more information.
79675func (c *InstanceGroupManagersUpdatePerInstanceConfigsCall) Fields(s ...googleapi.Field) *InstanceGroupManagersUpdatePerInstanceConfigsCall {
79676	c.urlParams_.Set("fields", googleapi.CombineFields(s))
79677	return c
79678}
79679
79680// Context sets the context to be used in this call's Do method. Any
79681// pending HTTP request will be aborted if the provided context is
79682// canceled.
79683func (c *InstanceGroupManagersUpdatePerInstanceConfigsCall) Context(ctx context.Context) *InstanceGroupManagersUpdatePerInstanceConfigsCall {
79684	c.ctx_ = ctx
79685	return c
79686}
79687
79688// Header returns an http.Header that can be modified by the caller to
79689// add HTTP headers to the request.
79690func (c *InstanceGroupManagersUpdatePerInstanceConfigsCall) Header() http.Header {
79691	if c.header_ == nil {
79692		c.header_ = make(http.Header)
79693	}
79694	return c.header_
79695}
79696
79697func (c *InstanceGroupManagersUpdatePerInstanceConfigsCall) doRequest(alt string) (*http.Response, error) {
79698	reqHeaders := make(http.Header)
79699	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
79700	for k, v := range c.header_ {
79701		reqHeaders[k] = v
79702	}
79703	reqHeaders.Set("User-Agent", c.s.userAgent())
79704	var body io.Reader = nil
79705	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagersupdateperinstanceconfigsreq)
79706	if err != nil {
79707		return nil, err
79708	}
79709	reqHeaders.Set("Content-Type", "application/json")
79710	c.urlParams_.Set("alt", alt)
79711	c.urlParams_.Set("prettyPrint", "false")
79712	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/updatePerInstanceConfigs")
79713	urls += "?" + c.urlParams_.Encode()
79714	req, err := http.NewRequest("POST", urls, body)
79715	if err != nil {
79716		return nil, err
79717	}
79718	req.Header = reqHeaders
79719	googleapi.Expand(req.URL, map[string]string{
79720		"project":              c.project,
79721		"zone":                 c.zone,
79722		"instanceGroupManager": c.instanceGroupManager,
79723	})
79724	return gensupport.SendRequest(c.ctx_, c.s.client, req)
79725}
79726
79727// Do executes the "compute.instanceGroupManagers.updatePerInstanceConfigs" call.
79728// Exactly one of *Operation or error will be non-nil. Any non-2xx
79729// status code is an error. Response headers are in either
79730// *Operation.ServerResponse.Header or (if a response was returned at
79731// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
79732// to check whether the returned error was because
79733// http.StatusNotModified was returned.
79734func (c *InstanceGroupManagersUpdatePerInstanceConfigsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
79735	gensupport.SetOptions(c.urlParams_, opts...)
79736	res, err := c.doRequest("json")
79737	if res != nil && res.StatusCode == http.StatusNotModified {
79738		if res.Body != nil {
79739			res.Body.Close()
79740		}
79741		return nil, &googleapi.Error{
79742			Code:   res.StatusCode,
79743			Header: res.Header,
79744		}
79745	}
79746	if err != nil {
79747		return nil, err
79748	}
79749	defer googleapi.CloseBody(res)
79750	if err := googleapi.CheckResponse(res); err != nil {
79751		return nil, err
79752	}
79753	ret := &Operation{
79754		ServerResponse: googleapi.ServerResponse{
79755			Header:         res.Header,
79756			HTTPStatusCode: res.StatusCode,
79757		},
79758	}
79759	target := &ret
79760	if err := gensupport.DecodeResponse(target, res); err != nil {
79761		return nil, err
79762	}
79763	return ret, nil
79764	// {
79765	//   "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. (== suppress_warning http-rest-shadowed ==)",
79766	//   "httpMethod": "POST",
79767	//   "id": "compute.instanceGroupManagers.updatePerInstanceConfigs",
79768	//   "parameterOrder": [
79769	//     "project",
79770	//     "zone",
79771	//     "instanceGroupManager"
79772	//   ],
79773	//   "parameters": {
79774	//     "instanceGroupManager": {
79775	//       "description": "The name of the managed instance group. It should conform to RFC1035.",
79776	//       "location": "path",
79777	//       "required": true,
79778	//       "type": "string"
79779	//     },
79780	//     "project": {
79781	//       "description": "Project ID for this request.",
79782	//       "location": "path",
79783	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
79784	//       "required": true,
79785	//       "type": "string"
79786	//     },
79787	//     "requestId": {
79788	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
79789	//       "location": "query",
79790	//       "type": "string"
79791	//     },
79792	//     "zone": {
79793	//       "description": "The name of the zone where the managed instance group is located. It should conform to RFC1035.",
79794	//       "location": "path",
79795	//       "required": true,
79796	//       "type": "string"
79797	//     }
79798	//   },
79799	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/updatePerInstanceConfigs",
79800	//   "request": {
79801	//     "$ref": "InstanceGroupManagersUpdatePerInstanceConfigsReq"
79802	//   },
79803	//   "response": {
79804	//     "$ref": "Operation"
79805	//   },
79806	//   "scopes": [
79807	//     "https://www.googleapis.com/auth/cloud-platform",
79808	//     "https://www.googleapis.com/auth/compute"
79809	//   ]
79810	// }
79811
79812}
79813
79814// method id "compute.instanceGroups.addInstances":
79815
79816type InstanceGroupsAddInstancesCall struct {
79817	s                                 *Service
79818	project                           string
79819	zone                              string
79820	instanceGroup                     string
79821	instancegroupsaddinstancesrequest *InstanceGroupsAddInstancesRequest
79822	urlParams_                        gensupport.URLParams
79823	ctx_                              context.Context
79824	header_                           http.Header
79825}
79826
79827// AddInstances: Adds a list of instances to the specified instance
79828// group. All of the instances in the instance group must be in the same
79829// network/subnetwork. Read  Adding instances for more information. (==
79830// suppress_warning http-rest-shadowed ==)
79831func (r *InstanceGroupsService) AddInstances(project string, zone string, instanceGroup string, instancegroupsaddinstancesrequest *InstanceGroupsAddInstancesRequest) *InstanceGroupsAddInstancesCall {
79832	c := &InstanceGroupsAddInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
79833	c.project = project
79834	c.zone = zone
79835	c.instanceGroup = instanceGroup
79836	c.instancegroupsaddinstancesrequest = instancegroupsaddinstancesrequest
79837	return c
79838}
79839
79840// RequestId sets the optional parameter "requestId": An optional
79841// request ID to identify requests. Specify a unique request ID so that
79842// if you must retry your request, the server will know to ignore the
79843// request if it has already been completed.
79844//
79845// For example, consider a situation where you make an initial request
79846// and the request times out. If you make the request again with the
79847// same request ID, the server can check if original operation with the
79848// same request ID was received, and if so, will ignore the second
79849// request. This prevents clients from accidentally creating duplicate
79850// commitments.
79851//
79852// The request ID must be a valid UUID with the exception that zero UUID
79853// is not supported (00000000-0000-0000-0000-000000000000).
79854func (c *InstanceGroupsAddInstancesCall) RequestId(requestId string) *InstanceGroupsAddInstancesCall {
79855	c.urlParams_.Set("requestId", requestId)
79856	return c
79857}
79858
79859// Fields allows partial responses to be retrieved. See
79860// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
79861// for more information.
79862func (c *InstanceGroupsAddInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupsAddInstancesCall {
79863	c.urlParams_.Set("fields", googleapi.CombineFields(s))
79864	return c
79865}
79866
79867// Context sets the context to be used in this call's Do method. Any
79868// pending HTTP request will be aborted if the provided context is
79869// canceled.
79870func (c *InstanceGroupsAddInstancesCall) Context(ctx context.Context) *InstanceGroupsAddInstancesCall {
79871	c.ctx_ = ctx
79872	return c
79873}
79874
79875// Header returns an http.Header that can be modified by the caller to
79876// add HTTP headers to the request.
79877func (c *InstanceGroupsAddInstancesCall) Header() http.Header {
79878	if c.header_ == nil {
79879		c.header_ = make(http.Header)
79880	}
79881	return c.header_
79882}
79883
79884func (c *InstanceGroupsAddInstancesCall) doRequest(alt string) (*http.Response, error) {
79885	reqHeaders := make(http.Header)
79886	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
79887	for k, v := range c.header_ {
79888		reqHeaders[k] = v
79889	}
79890	reqHeaders.Set("User-Agent", c.s.userAgent())
79891	var body io.Reader = nil
79892	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupsaddinstancesrequest)
79893	if err != nil {
79894		return nil, err
79895	}
79896	reqHeaders.Set("Content-Type", "application/json")
79897	c.urlParams_.Set("alt", alt)
79898	c.urlParams_.Set("prettyPrint", "false")
79899	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroups/{instanceGroup}/addInstances")
79900	urls += "?" + c.urlParams_.Encode()
79901	req, err := http.NewRequest("POST", urls, body)
79902	if err != nil {
79903		return nil, err
79904	}
79905	req.Header = reqHeaders
79906	googleapi.Expand(req.URL, map[string]string{
79907		"project":       c.project,
79908		"zone":          c.zone,
79909		"instanceGroup": c.instanceGroup,
79910	})
79911	return gensupport.SendRequest(c.ctx_, c.s.client, req)
79912}
79913
79914// Do executes the "compute.instanceGroups.addInstances" call.
79915// Exactly one of *Operation or error will be non-nil. Any non-2xx
79916// status code is an error. Response headers are in either
79917// *Operation.ServerResponse.Header or (if a response was returned at
79918// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
79919// to check whether the returned error was because
79920// http.StatusNotModified was returned.
79921func (c *InstanceGroupsAddInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
79922	gensupport.SetOptions(c.urlParams_, opts...)
79923	res, err := c.doRequest("json")
79924	if res != nil && res.StatusCode == http.StatusNotModified {
79925		if res.Body != nil {
79926			res.Body.Close()
79927		}
79928		return nil, &googleapi.Error{
79929			Code:   res.StatusCode,
79930			Header: res.Header,
79931		}
79932	}
79933	if err != nil {
79934		return nil, err
79935	}
79936	defer googleapi.CloseBody(res)
79937	if err := googleapi.CheckResponse(res); err != nil {
79938		return nil, err
79939	}
79940	ret := &Operation{
79941		ServerResponse: googleapi.ServerResponse{
79942			Header:         res.Header,
79943			HTTPStatusCode: res.StatusCode,
79944		},
79945	}
79946	target := &ret
79947	if err := gensupport.DecodeResponse(target, res); err != nil {
79948		return nil, err
79949	}
79950	return ret, nil
79951	// {
79952	//   "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. (== suppress_warning http-rest-shadowed ==)",
79953	//   "httpMethod": "POST",
79954	//   "id": "compute.instanceGroups.addInstances",
79955	//   "parameterOrder": [
79956	//     "project",
79957	//     "zone",
79958	//     "instanceGroup"
79959	//   ],
79960	//   "parameters": {
79961	//     "instanceGroup": {
79962	//       "description": "The name of the instance group where you are adding instances.",
79963	//       "location": "path",
79964	//       "required": true,
79965	//       "type": "string"
79966	//     },
79967	//     "project": {
79968	//       "description": "Project ID for this request.",
79969	//       "location": "path",
79970	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
79971	//       "required": true,
79972	//       "type": "string"
79973	//     },
79974	//     "requestId": {
79975	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
79976	//       "location": "query",
79977	//       "type": "string"
79978	//     },
79979	//     "zone": {
79980	//       "description": "The name of the zone where the instance group is located.",
79981	//       "location": "path",
79982	//       "required": true,
79983	//       "type": "string"
79984	//     }
79985	//   },
79986	//   "path": "{project}/zones/{zone}/instanceGroups/{instanceGroup}/addInstances",
79987	//   "request": {
79988	//     "$ref": "InstanceGroupsAddInstancesRequest"
79989	//   },
79990	//   "response": {
79991	//     "$ref": "Operation"
79992	//   },
79993	//   "scopes": [
79994	//     "https://www.googleapis.com/auth/cloud-platform",
79995	//     "https://www.googleapis.com/auth/compute"
79996	//   ]
79997	// }
79998
79999}
80000
80001// method id "compute.instanceGroups.aggregatedList":
80002
80003type InstanceGroupsAggregatedListCall struct {
80004	s            *Service
80005	project      string
80006	urlParams_   gensupport.URLParams
80007	ifNoneMatch_ string
80008	ctx_         context.Context
80009	header_      http.Header
80010}
80011
80012// AggregatedList: Retrieves the list of instance groups and sorts them
80013// by zone. (== suppress_warning http-rest-shadowed ==)
80014func (r *InstanceGroupsService) AggregatedList(project string) *InstanceGroupsAggregatedListCall {
80015	c := &InstanceGroupsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
80016	c.project = project
80017	return c
80018}
80019
80020// Filter sets the optional parameter "filter": A filter expression that
80021// filters resources listed in the response. The expression must specify
80022// the field name, a comparison operator, and the value that you want to
80023// use for filtering. The value must be a string, a number, or a
80024// boolean. The comparison operator must be either =, !=, >, or <.
80025//
80026// For example, if you are filtering Compute Engine instances, you can
80027// exclude instances named example-instance by specifying name !=
80028// example-instance.
80029//
80030// You can also filter nested fields. For example, you could specify
80031// scheduling.automaticRestart = false to include instances only if they
80032// are not scheduled for automatic restarts. You can use filtering on
80033// nested fields to filter based on resource labels.
80034//
80035// To filter on multiple expressions, provide each separate expression
80036// within parentheses. For example, (scheduling.automaticRestart = true)
80037// (cpuPlatform = "Intel Skylake"). By default, each expression is an
80038// AND expression. However, you can include AND and OR expressions
80039// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
80040// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
80041// true).
80042func (c *InstanceGroupsAggregatedListCall) Filter(filter string) *InstanceGroupsAggregatedListCall {
80043	c.urlParams_.Set("filter", filter)
80044	return c
80045}
80046
80047// MaxResults sets the optional parameter "maxResults": The maximum
80048// number of results per page that should be returned. If the number of
80049// available results is larger than maxResults, Compute Engine returns a
80050// nextPageToken that can be used to get the next page of results in
80051// subsequent list requests. Acceptable values are 0 to 500, inclusive.
80052// (Default: 500)
80053func (c *InstanceGroupsAggregatedListCall) MaxResults(maxResults int64) *InstanceGroupsAggregatedListCall {
80054	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
80055	return c
80056}
80057
80058// OrderBy sets the optional parameter "orderBy": Sorts list results by
80059// a certain order. By default, results are returned in alphanumerical
80060// order based on the resource name.
80061//
80062// You can also sort results in descending order based on the creation
80063// timestamp using orderBy="creationTimestamp desc". This sorts results
80064// based on the creationTimestamp field in reverse chronological order
80065// (newest result first). Use this to sort resources like operations so
80066// that the newest operation is returned first.
80067//
80068// Currently, only sorting by name or creationTimestamp desc is
80069// supported.
80070func (c *InstanceGroupsAggregatedListCall) OrderBy(orderBy string) *InstanceGroupsAggregatedListCall {
80071	c.urlParams_.Set("orderBy", orderBy)
80072	return c
80073}
80074
80075// PageToken sets the optional parameter "pageToken": Specifies a page
80076// token to use. Set pageToken to the nextPageToken returned by a
80077// previous list request to get the next page of results.
80078func (c *InstanceGroupsAggregatedListCall) PageToken(pageToken string) *InstanceGroupsAggregatedListCall {
80079	c.urlParams_.Set("pageToken", pageToken)
80080	return c
80081}
80082
80083// Fields allows partial responses to be retrieved. See
80084// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
80085// for more information.
80086func (c *InstanceGroupsAggregatedListCall) Fields(s ...googleapi.Field) *InstanceGroupsAggregatedListCall {
80087	c.urlParams_.Set("fields", googleapi.CombineFields(s))
80088	return c
80089}
80090
80091// IfNoneMatch sets the optional parameter which makes the operation
80092// fail if the object's ETag matches the given value. This is useful for
80093// getting updates only after the object has changed since the last
80094// request. Use googleapi.IsNotModified to check whether the response
80095// error from Do is the result of In-None-Match.
80096func (c *InstanceGroupsAggregatedListCall) IfNoneMatch(entityTag string) *InstanceGroupsAggregatedListCall {
80097	c.ifNoneMatch_ = entityTag
80098	return c
80099}
80100
80101// Context sets the context to be used in this call's Do method. Any
80102// pending HTTP request will be aborted if the provided context is
80103// canceled.
80104func (c *InstanceGroupsAggregatedListCall) Context(ctx context.Context) *InstanceGroupsAggregatedListCall {
80105	c.ctx_ = ctx
80106	return c
80107}
80108
80109// Header returns an http.Header that can be modified by the caller to
80110// add HTTP headers to the request.
80111func (c *InstanceGroupsAggregatedListCall) Header() http.Header {
80112	if c.header_ == nil {
80113		c.header_ = make(http.Header)
80114	}
80115	return c.header_
80116}
80117
80118func (c *InstanceGroupsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
80119	reqHeaders := make(http.Header)
80120	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
80121	for k, v := range c.header_ {
80122		reqHeaders[k] = v
80123	}
80124	reqHeaders.Set("User-Agent", c.s.userAgent())
80125	if c.ifNoneMatch_ != "" {
80126		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
80127	}
80128	var body io.Reader = nil
80129	c.urlParams_.Set("alt", alt)
80130	c.urlParams_.Set("prettyPrint", "false")
80131	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/instanceGroups")
80132	urls += "?" + c.urlParams_.Encode()
80133	req, err := http.NewRequest("GET", urls, body)
80134	if err != nil {
80135		return nil, err
80136	}
80137	req.Header = reqHeaders
80138	googleapi.Expand(req.URL, map[string]string{
80139		"project": c.project,
80140	})
80141	return gensupport.SendRequest(c.ctx_, c.s.client, req)
80142}
80143
80144// Do executes the "compute.instanceGroups.aggregatedList" call.
80145// Exactly one of *InstanceGroupAggregatedList or error will be non-nil.
80146// Any non-2xx status code is an error. Response headers are in either
80147// *InstanceGroupAggregatedList.ServerResponse.Header or (if a response
80148// was returned at all) in error.(*googleapi.Error).Header. Use
80149// googleapi.IsNotModified to check whether the returned error was
80150// because http.StatusNotModified was returned.
80151func (c *InstanceGroupsAggregatedListCall) Do(opts ...googleapi.CallOption) (*InstanceGroupAggregatedList, error) {
80152	gensupport.SetOptions(c.urlParams_, opts...)
80153	res, err := c.doRequest("json")
80154	if res != nil && res.StatusCode == http.StatusNotModified {
80155		if res.Body != nil {
80156			res.Body.Close()
80157		}
80158		return nil, &googleapi.Error{
80159			Code:   res.StatusCode,
80160			Header: res.Header,
80161		}
80162	}
80163	if err != nil {
80164		return nil, err
80165	}
80166	defer googleapi.CloseBody(res)
80167	if err := googleapi.CheckResponse(res); err != nil {
80168		return nil, err
80169	}
80170	ret := &InstanceGroupAggregatedList{
80171		ServerResponse: googleapi.ServerResponse{
80172			Header:         res.Header,
80173			HTTPStatusCode: res.StatusCode,
80174		},
80175	}
80176	target := &ret
80177	if err := gensupport.DecodeResponse(target, res); err != nil {
80178		return nil, err
80179	}
80180	return ret, nil
80181	// {
80182	//   "description": "Retrieves the list of instance groups and sorts them by zone. (== suppress_warning http-rest-shadowed ==)",
80183	//   "httpMethod": "GET",
80184	//   "id": "compute.instanceGroups.aggregatedList",
80185	//   "parameterOrder": [
80186	//     "project"
80187	//   ],
80188	//   "parameters": {
80189	//     "filter": {
80190	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
80191	//       "location": "query",
80192	//       "type": "string"
80193	//     },
80194	//     "maxResults": {
80195	//       "default": "500",
80196	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
80197	//       "format": "uint32",
80198	//       "location": "query",
80199	//       "minimum": "0",
80200	//       "type": "integer"
80201	//     },
80202	//     "orderBy": {
80203	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
80204	//       "location": "query",
80205	//       "type": "string"
80206	//     },
80207	//     "pageToken": {
80208	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
80209	//       "location": "query",
80210	//       "type": "string"
80211	//     },
80212	//     "project": {
80213	//       "description": "Project ID for this request.",
80214	//       "location": "path",
80215	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
80216	//       "required": true,
80217	//       "type": "string"
80218	//     }
80219	//   },
80220	//   "path": "{project}/aggregated/instanceGroups",
80221	//   "response": {
80222	//     "$ref": "InstanceGroupAggregatedList"
80223	//   },
80224	//   "scopes": [
80225	//     "https://www.googleapis.com/auth/cloud-platform",
80226	//     "https://www.googleapis.com/auth/compute",
80227	//     "https://www.googleapis.com/auth/compute.readonly"
80228	//   ]
80229	// }
80230
80231}
80232
80233// Pages invokes f for each page of results.
80234// A non-nil error returned from f will halt the iteration.
80235// The provided context supersedes any context provided to the Context method.
80236func (c *InstanceGroupsAggregatedListCall) Pages(ctx context.Context, f func(*InstanceGroupAggregatedList) error) error {
80237	c.ctx_ = ctx
80238	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
80239	for {
80240		x, err := c.Do()
80241		if err != nil {
80242			return err
80243		}
80244		if err := f(x); err != nil {
80245			return err
80246		}
80247		if x.NextPageToken == "" {
80248			return nil
80249		}
80250		c.PageToken(x.NextPageToken)
80251	}
80252}
80253
80254// method id "compute.instanceGroups.delete":
80255
80256type InstanceGroupsDeleteCall struct {
80257	s             *Service
80258	project       string
80259	zone          string
80260	instanceGroup string
80261	urlParams_    gensupport.URLParams
80262	ctx_          context.Context
80263	header_       http.Header
80264}
80265
80266// Delete: Deletes the specified instance group. The instances in the
80267// group are not deleted. Note that instance group must not belong to a
80268// backend service. Read  Deleting an instance group for more
80269// information. (== suppress_warning http-rest-shadowed ==)
80270func (r *InstanceGroupsService) Delete(project string, zone string, instanceGroup string) *InstanceGroupsDeleteCall {
80271	c := &InstanceGroupsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
80272	c.project = project
80273	c.zone = zone
80274	c.instanceGroup = instanceGroup
80275	return c
80276}
80277
80278// RequestId sets the optional parameter "requestId": An optional
80279// request ID to identify requests. Specify a unique request ID so that
80280// if you must retry your request, the server will know to ignore the
80281// request if it has already been completed.
80282//
80283// For example, consider a situation where you make an initial request
80284// and the request times out. If you make the request again with the
80285// same request ID, the server can check if original operation with the
80286// same request ID was received, and if so, will ignore the second
80287// request. This prevents clients from accidentally creating duplicate
80288// commitments.
80289//
80290// The request ID must be a valid UUID with the exception that zero UUID
80291// is not supported (00000000-0000-0000-0000-000000000000).
80292func (c *InstanceGroupsDeleteCall) RequestId(requestId string) *InstanceGroupsDeleteCall {
80293	c.urlParams_.Set("requestId", requestId)
80294	return c
80295}
80296
80297// Fields allows partial responses to be retrieved. See
80298// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
80299// for more information.
80300func (c *InstanceGroupsDeleteCall) Fields(s ...googleapi.Field) *InstanceGroupsDeleteCall {
80301	c.urlParams_.Set("fields", googleapi.CombineFields(s))
80302	return c
80303}
80304
80305// Context sets the context to be used in this call's Do method. Any
80306// pending HTTP request will be aborted if the provided context is
80307// canceled.
80308func (c *InstanceGroupsDeleteCall) Context(ctx context.Context) *InstanceGroupsDeleteCall {
80309	c.ctx_ = ctx
80310	return c
80311}
80312
80313// Header returns an http.Header that can be modified by the caller to
80314// add HTTP headers to the request.
80315func (c *InstanceGroupsDeleteCall) Header() http.Header {
80316	if c.header_ == nil {
80317		c.header_ = make(http.Header)
80318	}
80319	return c.header_
80320}
80321
80322func (c *InstanceGroupsDeleteCall) doRequest(alt string) (*http.Response, error) {
80323	reqHeaders := make(http.Header)
80324	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
80325	for k, v := range c.header_ {
80326		reqHeaders[k] = v
80327	}
80328	reqHeaders.Set("User-Agent", c.s.userAgent())
80329	var body io.Reader = nil
80330	c.urlParams_.Set("alt", alt)
80331	c.urlParams_.Set("prettyPrint", "false")
80332	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroups/{instanceGroup}")
80333	urls += "?" + c.urlParams_.Encode()
80334	req, err := http.NewRequest("DELETE", urls, body)
80335	if err != nil {
80336		return nil, err
80337	}
80338	req.Header = reqHeaders
80339	googleapi.Expand(req.URL, map[string]string{
80340		"project":       c.project,
80341		"zone":          c.zone,
80342		"instanceGroup": c.instanceGroup,
80343	})
80344	return gensupport.SendRequest(c.ctx_, c.s.client, req)
80345}
80346
80347// Do executes the "compute.instanceGroups.delete" call.
80348// Exactly one of *Operation or error will be non-nil. Any non-2xx
80349// status code is an error. Response headers are in either
80350// *Operation.ServerResponse.Header or (if a response was returned at
80351// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
80352// to check whether the returned error was because
80353// http.StatusNotModified was returned.
80354func (c *InstanceGroupsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
80355	gensupport.SetOptions(c.urlParams_, opts...)
80356	res, err := c.doRequest("json")
80357	if res != nil && res.StatusCode == http.StatusNotModified {
80358		if res.Body != nil {
80359			res.Body.Close()
80360		}
80361		return nil, &googleapi.Error{
80362			Code:   res.StatusCode,
80363			Header: res.Header,
80364		}
80365	}
80366	if err != nil {
80367		return nil, err
80368	}
80369	defer googleapi.CloseBody(res)
80370	if err := googleapi.CheckResponse(res); err != nil {
80371		return nil, err
80372	}
80373	ret := &Operation{
80374		ServerResponse: googleapi.ServerResponse{
80375			Header:         res.Header,
80376			HTTPStatusCode: res.StatusCode,
80377		},
80378	}
80379	target := &ret
80380	if err := gensupport.DecodeResponse(target, res); err != nil {
80381		return nil, err
80382	}
80383	return ret, nil
80384	// {
80385	//   "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. (== suppress_warning http-rest-shadowed ==)",
80386	//   "httpMethod": "DELETE",
80387	//   "id": "compute.instanceGroups.delete",
80388	//   "parameterOrder": [
80389	//     "project",
80390	//     "zone",
80391	//     "instanceGroup"
80392	//   ],
80393	//   "parameters": {
80394	//     "instanceGroup": {
80395	//       "description": "The name of the instance group to delete.",
80396	//       "location": "path",
80397	//       "required": true,
80398	//       "type": "string"
80399	//     },
80400	//     "project": {
80401	//       "description": "Project ID for this request.",
80402	//       "location": "path",
80403	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
80404	//       "required": true,
80405	//       "type": "string"
80406	//     },
80407	//     "requestId": {
80408	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
80409	//       "location": "query",
80410	//       "type": "string"
80411	//     },
80412	//     "zone": {
80413	//       "description": "The name of the zone where the instance group is located.",
80414	//       "location": "path",
80415	//       "required": true,
80416	//       "type": "string"
80417	//     }
80418	//   },
80419	//   "path": "{project}/zones/{zone}/instanceGroups/{instanceGroup}",
80420	//   "response": {
80421	//     "$ref": "Operation"
80422	//   },
80423	//   "scopes": [
80424	//     "https://www.googleapis.com/auth/cloud-platform",
80425	//     "https://www.googleapis.com/auth/compute"
80426	//   ]
80427	// }
80428
80429}
80430
80431// method id "compute.instanceGroups.get":
80432
80433type InstanceGroupsGetCall struct {
80434	s             *Service
80435	project       string
80436	zone          string
80437	instanceGroup string
80438	urlParams_    gensupport.URLParams
80439	ifNoneMatch_  string
80440	ctx_          context.Context
80441	header_       http.Header
80442}
80443
80444// Get: Returns the specified instance group. Gets a list of available
80445// instance groups by making a list() request. (== suppress_warning
80446// http-rest-shadowed ==)
80447func (r *InstanceGroupsService) Get(project string, zone string, instanceGroup string) *InstanceGroupsGetCall {
80448	c := &InstanceGroupsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
80449	c.project = project
80450	c.zone = zone
80451	c.instanceGroup = instanceGroup
80452	return c
80453}
80454
80455// Fields allows partial responses to be retrieved. See
80456// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
80457// for more information.
80458func (c *InstanceGroupsGetCall) Fields(s ...googleapi.Field) *InstanceGroupsGetCall {
80459	c.urlParams_.Set("fields", googleapi.CombineFields(s))
80460	return c
80461}
80462
80463// IfNoneMatch sets the optional parameter which makes the operation
80464// fail if the object's ETag matches the given value. This is useful for
80465// getting updates only after the object has changed since the last
80466// request. Use googleapi.IsNotModified to check whether the response
80467// error from Do is the result of In-None-Match.
80468func (c *InstanceGroupsGetCall) IfNoneMatch(entityTag string) *InstanceGroupsGetCall {
80469	c.ifNoneMatch_ = entityTag
80470	return c
80471}
80472
80473// Context sets the context to be used in this call's Do method. Any
80474// pending HTTP request will be aborted if the provided context is
80475// canceled.
80476func (c *InstanceGroupsGetCall) Context(ctx context.Context) *InstanceGroupsGetCall {
80477	c.ctx_ = ctx
80478	return c
80479}
80480
80481// Header returns an http.Header that can be modified by the caller to
80482// add HTTP headers to the request.
80483func (c *InstanceGroupsGetCall) Header() http.Header {
80484	if c.header_ == nil {
80485		c.header_ = make(http.Header)
80486	}
80487	return c.header_
80488}
80489
80490func (c *InstanceGroupsGetCall) doRequest(alt string) (*http.Response, error) {
80491	reqHeaders := make(http.Header)
80492	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
80493	for k, v := range c.header_ {
80494		reqHeaders[k] = v
80495	}
80496	reqHeaders.Set("User-Agent", c.s.userAgent())
80497	if c.ifNoneMatch_ != "" {
80498		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
80499	}
80500	var body io.Reader = nil
80501	c.urlParams_.Set("alt", alt)
80502	c.urlParams_.Set("prettyPrint", "false")
80503	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroups/{instanceGroup}")
80504	urls += "?" + c.urlParams_.Encode()
80505	req, err := http.NewRequest("GET", urls, body)
80506	if err != nil {
80507		return nil, err
80508	}
80509	req.Header = reqHeaders
80510	googleapi.Expand(req.URL, map[string]string{
80511		"project":       c.project,
80512		"zone":          c.zone,
80513		"instanceGroup": c.instanceGroup,
80514	})
80515	return gensupport.SendRequest(c.ctx_, c.s.client, req)
80516}
80517
80518// Do executes the "compute.instanceGroups.get" call.
80519// Exactly one of *InstanceGroup or error will be non-nil. Any non-2xx
80520// status code is an error. Response headers are in either
80521// *InstanceGroup.ServerResponse.Header or (if a response was returned
80522// at all) in error.(*googleapi.Error).Header. Use
80523// googleapi.IsNotModified to check whether the returned error was
80524// because http.StatusNotModified was returned.
80525func (c *InstanceGroupsGetCall) Do(opts ...googleapi.CallOption) (*InstanceGroup, error) {
80526	gensupport.SetOptions(c.urlParams_, opts...)
80527	res, err := c.doRequest("json")
80528	if res != nil && res.StatusCode == http.StatusNotModified {
80529		if res.Body != nil {
80530			res.Body.Close()
80531		}
80532		return nil, &googleapi.Error{
80533			Code:   res.StatusCode,
80534			Header: res.Header,
80535		}
80536	}
80537	if err != nil {
80538		return nil, err
80539	}
80540	defer googleapi.CloseBody(res)
80541	if err := googleapi.CheckResponse(res); err != nil {
80542		return nil, err
80543	}
80544	ret := &InstanceGroup{
80545		ServerResponse: googleapi.ServerResponse{
80546			Header:         res.Header,
80547			HTTPStatusCode: res.StatusCode,
80548		},
80549	}
80550	target := &ret
80551	if err := gensupport.DecodeResponse(target, res); err != nil {
80552		return nil, err
80553	}
80554	return ret, nil
80555	// {
80556	//   "description": "Returns the specified instance group. Gets a list of available instance groups by making a list() request. (== suppress_warning http-rest-shadowed ==)",
80557	//   "httpMethod": "GET",
80558	//   "id": "compute.instanceGroups.get",
80559	//   "parameterOrder": [
80560	//     "project",
80561	//     "zone",
80562	//     "instanceGroup"
80563	//   ],
80564	//   "parameters": {
80565	//     "instanceGroup": {
80566	//       "description": "The name of the instance group.",
80567	//       "location": "path",
80568	//       "required": true,
80569	//       "type": "string"
80570	//     },
80571	//     "project": {
80572	//       "description": "Project ID for this request.",
80573	//       "location": "path",
80574	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
80575	//       "required": true,
80576	//       "type": "string"
80577	//     },
80578	//     "zone": {
80579	//       "description": "The name of the zone where the instance group is located.",
80580	//       "location": "path",
80581	//       "required": true,
80582	//       "type": "string"
80583	//     }
80584	//   },
80585	//   "path": "{project}/zones/{zone}/instanceGroups/{instanceGroup}",
80586	//   "response": {
80587	//     "$ref": "InstanceGroup"
80588	//   },
80589	//   "scopes": [
80590	//     "https://www.googleapis.com/auth/cloud-platform",
80591	//     "https://www.googleapis.com/auth/compute",
80592	//     "https://www.googleapis.com/auth/compute.readonly"
80593	//   ]
80594	// }
80595
80596}
80597
80598// method id "compute.instanceGroups.insert":
80599
80600type InstanceGroupsInsertCall struct {
80601	s             *Service
80602	project       string
80603	zone          string
80604	instancegroup *InstanceGroup
80605	urlParams_    gensupport.URLParams
80606	ctx_          context.Context
80607	header_       http.Header
80608}
80609
80610// Insert: Creates an instance group in the specified project using the
80611// parameters that are included in the request. (== suppress_warning
80612// http-rest-shadowed ==)
80613func (r *InstanceGroupsService) Insert(project string, zone string, instancegroup *InstanceGroup) *InstanceGroupsInsertCall {
80614	c := &InstanceGroupsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
80615	c.project = project
80616	c.zone = zone
80617	c.instancegroup = instancegroup
80618	return c
80619}
80620
80621// RequestId sets the optional parameter "requestId": An optional
80622// request ID to identify requests. Specify a unique request ID so that
80623// if you must retry your request, the server will know to ignore the
80624// request if it has already been completed.
80625//
80626// For example, consider a situation where you make an initial request
80627// and the request times out. If you make the request again with the
80628// same request ID, the server can check if original operation with the
80629// same request ID was received, and if so, will ignore the second
80630// request. This prevents clients from accidentally creating duplicate
80631// commitments.
80632//
80633// The request ID must be a valid UUID with the exception that zero UUID
80634// is not supported (00000000-0000-0000-0000-000000000000).
80635func (c *InstanceGroupsInsertCall) RequestId(requestId string) *InstanceGroupsInsertCall {
80636	c.urlParams_.Set("requestId", requestId)
80637	return c
80638}
80639
80640// Fields allows partial responses to be retrieved. See
80641// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
80642// for more information.
80643func (c *InstanceGroupsInsertCall) Fields(s ...googleapi.Field) *InstanceGroupsInsertCall {
80644	c.urlParams_.Set("fields", googleapi.CombineFields(s))
80645	return c
80646}
80647
80648// Context sets the context to be used in this call's Do method. Any
80649// pending HTTP request will be aborted if the provided context is
80650// canceled.
80651func (c *InstanceGroupsInsertCall) Context(ctx context.Context) *InstanceGroupsInsertCall {
80652	c.ctx_ = ctx
80653	return c
80654}
80655
80656// Header returns an http.Header that can be modified by the caller to
80657// add HTTP headers to the request.
80658func (c *InstanceGroupsInsertCall) Header() http.Header {
80659	if c.header_ == nil {
80660		c.header_ = make(http.Header)
80661	}
80662	return c.header_
80663}
80664
80665func (c *InstanceGroupsInsertCall) doRequest(alt string) (*http.Response, error) {
80666	reqHeaders := make(http.Header)
80667	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
80668	for k, v := range c.header_ {
80669		reqHeaders[k] = v
80670	}
80671	reqHeaders.Set("User-Agent", c.s.userAgent())
80672	var body io.Reader = nil
80673	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroup)
80674	if err != nil {
80675		return nil, err
80676	}
80677	reqHeaders.Set("Content-Type", "application/json")
80678	c.urlParams_.Set("alt", alt)
80679	c.urlParams_.Set("prettyPrint", "false")
80680	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroups")
80681	urls += "?" + c.urlParams_.Encode()
80682	req, err := http.NewRequest("POST", urls, body)
80683	if err != nil {
80684		return nil, err
80685	}
80686	req.Header = reqHeaders
80687	googleapi.Expand(req.URL, map[string]string{
80688		"project": c.project,
80689		"zone":    c.zone,
80690	})
80691	return gensupport.SendRequest(c.ctx_, c.s.client, req)
80692}
80693
80694// Do executes the "compute.instanceGroups.insert" call.
80695// Exactly one of *Operation or error will be non-nil. Any non-2xx
80696// status code is an error. Response headers are in either
80697// *Operation.ServerResponse.Header or (if a response was returned at
80698// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
80699// to check whether the returned error was because
80700// http.StatusNotModified was returned.
80701func (c *InstanceGroupsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
80702	gensupport.SetOptions(c.urlParams_, opts...)
80703	res, err := c.doRequest("json")
80704	if res != nil && res.StatusCode == http.StatusNotModified {
80705		if res.Body != nil {
80706			res.Body.Close()
80707		}
80708		return nil, &googleapi.Error{
80709			Code:   res.StatusCode,
80710			Header: res.Header,
80711		}
80712	}
80713	if err != nil {
80714		return nil, err
80715	}
80716	defer googleapi.CloseBody(res)
80717	if err := googleapi.CheckResponse(res); err != nil {
80718		return nil, err
80719	}
80720	ret := &Operation{
80721		ServerResponse: googleapi.ServerResponse{
80722			Header:         res.Header,
80723			HTTPStatusCode: res.StatusCode,
80724		},
80725	}
80726	target := &ret
80727	if err := gensupport.DecodeResponse(target, res); err != nil {
80728		return nil, err
80729	}
80730	return ret, nil
80731	// {
80732	//   "description": "Creates an instance group in the specified project using the parameters that are included in the request. (== suppress_warning http-rest-shadowed ==)",
80733	//   "httpMethod": "POST",
80734	//   "id": "compute.instanceGroups.insert",
80735	//   "parameterOrder": [
80736	//     "project",
80737	//     "zone"
80738	//   ],
80739	//   "parameters": {
80740	//     "project": {
80741	//       "description": "Project ID for this request.",
80742	//       "location": "path",
80743	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
80744	//       "required": true,
80745	//       "type": "string"
80746	//     },
80747	//     "requestId": {
80748	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
80749	//       "location": "query",
80750	//       "type": "string"
80751	//     },
80752	//     "zone": {
80753	//       "description": "The name of the zone where you want to create the instance group.",
80754	//       "location": "path",
80755	//       "required": true,
80756	//       "type": "string"
80757	//     }
80758	//   },
80759	//   "path": "{project}/zones/{zone}/instanceGroups",
80760	//   "request": {
80761	//     "$ref": "InstanceGroup"
80762	//   },
80763	//   "response": {
80764	//     "$ref": "Operation"
80765	//   },
80766	//   "scopes": [
80767	//     "https://www.googleapis.com/auth/cloud-platform",
80768	//     "https://www.googleapis.com/auth/compute"
80769	//   ]
80770	// }
80771
80772}
80773
80774// method id "compute.instanceGroups.list":
80775
80776type InstanceGroupsListCall struct {
80777	s            *Service
80778	project      string
80779	zone         string
80780	urlParams_   gensupport.URLParams
80781	ifNoneMatch_ string
80782	ctx_         context.Context
80783	header_      http.Header
80784}
80785
80786// List: Retrieves the list of instance groups that are located in the
80787// specified project and zone. (== suppress_warning http-rest-shadowed
80788// ==)
80789func (r *InstanceGroupsService) List(project string, zone string) *InstanceGroupsListCall {
80790	c := &InstanceGroupsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
80791	c.project = project
80792	c.zone = zone
80793	return c
80794}
80795
80796// Filter sets the optional parameter "filter": A filter expression that
80797// filters resources listed in the response. The expression must specify
80798// the field name, a comparison operator, and the value that you want to
80799// use for filtering. The value must be a string, a number, or a
80800// boolean. The comparison operator must be either =, !=, >, or <.
80801//
80802// For example, if you are filtering Compute Engine instances, you can
80803// exclude instances named example-instance by specifying name !=
80804// example-instance.
80805//
80806// You can also filter nested fields. For example, you could specify
80807// scheduling.automaticRestart = false to include instances only if they
80808// are not scheduled for automatic restarts. You can use filtering on
80809// nested fields to filter based on resource labels.
80810//
80811// To filter on multiple expressions, provide each separate expression
80812// within parentheses. For example, (scheduling.automaticRestart = true)
80813// (cpuPlatform = "Intel Skylake"). By default, each expression is an
80814// AND expression. However, you can include AND and OR expressions
80815// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
80816// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
80817// true).
80818func (c *InstanceGroupsListCall) Filter(filter string) *InstanceGroupsListCall {
80819	c.urlParams_.Set("filter", filter)
80820	return c
80821}
80822
80823// MaxResults sets the optional parameter "maxResults": The maximum
80824// number of results per page that should be returned. If the number of
80825// available results is larger than maxResults, Compute Engine returns a
80826// nextPageToken that can be used to get the next page of results in
80827// subsequent list requests. Acceptable values are 0 to 500, inclusive.
80828// (Default: 500)
80829func (c *InstanceGroupsListCall) MaxResults(maxResults int64) *InstanceGroupsListCall {
80830	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
80831	return c
80832}
80833
80834// OrderBy sets the optional parameter "orderBy": Sorts list results by
80835// a certain order. By default, results are returned in alphanumerical
80836// order based on the resource name.
80837//
80838// You can also sort results in descending order based on the creation
80839// timestamp using orderBy="creationTimestamp desc". This sorts results
80840// based on the creationTimestamp field in reverse chronological order
80841// (newest result first). Use this to sort resources like operations so
80842// that the newest operation is returned first.
80843//
80844// Currently, only sorting by name or creationTimestamp desc is
80845// supported.
80846func (c *InstanceGroupsListCall) OrderBy(orderBy string) *InstanceGroupsListCall {
80847	c.urlParams_.Set("orderBy", orderBy)
80848	return c
80849}
80850
80851// PageToken sets the optional parameter "pageToken": Specifies a page
80852// token to use. Set pageToken to the nextPageToken returned by a
80853// previous list request to get the next page of results.
80854func (c *InstanceGroupsListCall) PageToken(pageToken string) *InstanceGroupsListCall {
80855	c.urlParams_.Set("pageToken", pageToken)
80856	return c
80857}
80858
80859// Fields allows partial responses to be retrieved. See
80860// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
80861// for more information.
80862func (c *InstanceGroupsListCall) Fields(s ...googleapi.Field) *InstanceGroupsListCall {
80863	c.urlParams_.Set("fields", googleapi.CombineFields(s))
80864	return c
80865}
80866
80867// IfNoneMatch sets the optional parameter which makes the operation
80868// fail if the object's ETag matches the given value. This is useful for
80869// getting updates only after the object has changed since the last
80870// request. Use googleapi.IsNotModified to check whether the response
80871// error from Do is the result of In-None-Match.
80872func (c *InstanceGroupsListCall) IfNoneMatch(entityTag string) *InstanceGroupsListCall {
80873	c.ifNoneMatch_ = entityTag
80874	return c
80875}
80876
80877// Context sets the context to be used in this call's Do method. Any
80878// pending HTTP request will be aborted if the provided context is
80879// canceled.
80880func (c *InstanceGroupsListCall) Context(ctx context.Context) *InstanceGroupsListCall {
80881	c.ctx_ = ctx
80882	return c
80883}
80884
80885// Header returns an http.Header that can be modified by the caller to
80886// add HTTP headers to the request.
80887func (c *InstanceGroupsListCall) Header() http.Header {
80888	if c.header_ == nil {
80889		c.header_ = make(http.Header)
80890	}
80891	return c.header_
80892}
80893
80894func (c *InstanceGroupsListCall) doRequest(alt string) (*http.Response, error) {
80895	reqHeaders := make(http.Header)
80896	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
80897	for k, v := range c.header_ {
80898		reqHeaders[k] = v
80899	}
80900	reqHeaders.Set("User-Agent", c.s.userAgent())
80901	if c.ifNoneMatch_ != "" {
80902		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
80903	}
80904	var body io.Reader = nil
80905	c.urlParams_.Set("alt", alt)
80906	c.urlParams_.Set("prettyPrint", "false")
80907	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroups")
80908	urls += "?" + c.urlParams_.Encode()
80909	req, err := http.NewRequest("GET", urls, body)
80910	if err != nil {
80911		return nil, err
80912	}
80913	req.Header = reqHeaders
80914	googleapi.Expand(req.URL, map[string]string{
80915		"project": c.project,
80916		"zone":    c.zone,
80917	})
80918	return gensupport.SendRequest(c.ctx_, c.s.client, req)
80919}
80920
80921// Do executes the "compute.instanceGroups.list" call.
80922// Exactly one of *InstanceGroupList or error will be non-nil. Any
80923// non-2xx status code is an error. Response headers are in either
80924// *InstanceGroupList.ServerResponse.Header or (if a response was
80925// returned at all) in error.(*googleapi.Error).Header. Use
80926// googleapi.IsNotModified to check whether the returned error was
80927// because http.StatusNotModified was returned.
80928func (c *InstanceGroupsListCall) Do(opts ...googleapi.CallOption) (*InstanceGroupList, error) {
80929	gensupport.SetOptions(c.urlParams_, opts...)
80930	res, err := c.doRequest("json")
80931	if res != nil && res.StatusCode == http.StatusNotModified {
80932		if res.Body != nil {
80933			res.Body.Close()
80934		}
80935		return nil, &googleapi.Error{
80936			Code:   res.StatusCode,
80937			Header: res.Header,
80938		}
80939	}
80940	if err != nil {
80941		return nil, err
80942	}
80943	defer googleapi.CloseBody(res)
80944	if err := googleapi.CheckResponse(res); err != nil {
80945		return nil, err
80946	}
80947	ret := &InstanceGroupList{
80948		ServerResponse: googleapi.ServerResponse{
80949			Header:         res.Header,
80950			HTTPStatusCode: res.StatusCode,
80951		},
80952	}
80953	target := &ret
80954	if err := gensupport.DecodeResponse(target, res); err != nil {
80955		return nil, err
80956	}
80957	return ret, nil
80958	// {
80959	//   "description": "Retrieves the list of instance groups that are located in the specified project and zone. (== suppress_warning http-rest-shadowed ==)",
80960	//   "httpMethod": "GET",
80961	//   "id": "compute.instanceGroups.list",
80962	//   "parameterOrder": [
80963	//     "project",
80964	//     "zone"
80965	//   ],
80966	//   "parameters": {
80967	//     "filter": {
80968	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
80969	//       "location": "query",
80970	//       "type": "string"
80971	//     },
80972	//     "maxResults": {
80973	//       "default": "500",
80974	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
80975	//       "format": "uint32",
80976	//       "location": "query",
80977	//       "minimum": "0",
80978	//       "type": "integer"
80979	//     },
80980	//     "orderBy": {
80981	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
80982	//       "location": "query",
80983	//       "type": "string"
80984	//     },
80985	//     "pageToken": {
80986	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
80987	//       "location": "query",
80988	//       "type": "string"
80989	//     },
80990	//     "project": {
80991	//       "description": "Project ID for this request.",
80992	//       "location": "path",
80993	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
80994	//       "required": true,
80995	//       "type": "string"
80996	//     },
80997	//     "zone": {
80998	//       "description": "The name of the zone where the instance group is located.",
80999	//       "location": "path",
81000	//       "required": true,
81001	//       "type": "string"
81002	//     }
81003	//   },
81004	//   "path": "{project}/zones/{zone}/instanceGroups",
81005	//   "response": {
81006	//     "$ref": "InstanceGroupList"
81007	//   },
81008	//   "scopes": [
81009	//     "https://www.googleapis.com/auth/cloud-platform",
81010	//     "https://www.googleapis.com/auth/compute",
81011	//     "https://www.googleapis.com/auth/compute.readonly"
81012	//   ]
81013	// }
81014
81015}
81016
81017// Pages invokes f for each page of results.
81018// A non-nil error returned from f will halt the iteration.
81019// The provided context supersedes any context provided to the Context method.
81020func (c *InstanceGroupsListCall) Pages(ctx context.Context, f func(*InstanceGroupList) error) error {
81021	c.ctx_ = ctx
81022	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
81023	for {
81024		x, err := c.Do()
81025		if err != nil {
81026			return err
81027		}
81028		if err := f(x); err != nil {
81029			return err
81030		}
81031		if x.NextPageToken == "" {
81032			return nil
81033		}
81034		c.PageToken(x.NextPageToken)
81035	}
81036}
81037
81038// method id "compute.instanceGroups.listInstances":
81039
81040type InstanceGroupsListInstancesCall struct {
81041	s                                  *Service
81042	project                            string
81043	zone                               string
81044	instanceGroup                      string
81045	instancegroupslistinstancesrequest *InstanceGroupsListInstancesRequest
81046	urlParams_                         gensupport.URLParams
81047	ctx_                               context.Context
81048	header_                            http.Header
81049}
81050
81051// ListInstances: Lists the instances in the specified instance group.
81052// (== suppress_warning http-rest-shadowed ==)
81053func (r *InstanceGroupsService) ListInstances(project string, zone string, instanceGroup string, instancegroupslistinstancesrequest *InstanceGroupsListInstancesRequest) *InstanceGroupsListInstancesCall {
81054	c := &InstanceGroupsListInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
81055	c.project = project
81056	c.zone = zone
81057	c.instanceGroup = instanceGroup
81058	c.instancegroupslistinstancesrequest = instancegroupslistinstancesrequest
81059	return c
81060}
81061
81062// Filter sets the optional parameter "filter": A filter expression that
81063// filters resources listed in the response. The expression must specify
81064// the field name, a comparison operator, and the value that you want to
81065// use for filtering. The value must be a string, a number, or a
81066// boolean. The comparison operator must be either =, !=, >, or <.
81067//
81068// For example, if you are filtering Compute Engine instances, you can
81069// exclude instances named example-instance by specifying name !=
81070// example-instance.
81071//
81072// You can also filter nested fields. For example, you could specify
81073// scheduling.automaticRestart = false to include instances only if they
81074// are not scheduled for automatic restarts. You can use filtering on
81075// nested fields to filter based on resource labels.
81076//
81077// To filter on multiple expressions, provide each separate expression
81078// within parentheses. For example, (scheduling.automaticRestart = true)
81079// (cpuPlatform = "Intel Skylake"). By default, each expression is an
81080// AND expression. However, you can include AND and OR expressions
81081// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
81082// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
81083// true).
81084func (c *InstanceGroupsListInstancesCall) Filter(filter string) *InstanceGroupsListInstancesCall {
81085	c.urlParams_.Set("filter", filter)
81086	return c
81087}
81088
81089// MaxResults sets the optional parameter "maxResults": The maximum
81090// number of results per page that should be returned. If the number of
81091// available results is larger than maxResults, Compute Engine returns a
81092// nextPageToken that can be used to get the next page of results in
81093// subsequent list requests. Acceptable values are 0 to 500, inclusive.
81094// (Default: 500)
81095func (c *InstanceGroupsListInstancesCall) MaxResults(maxResults int64) *InstanceGroupsListInstancesCall {
81096	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
81097	return c
81098}
81099
81100// OrderBy sets the optional parameter "orderBy": Sorts list results by
81101// a certain order. By default, results are returned in alphanumerical
81102// order based on the resource name.
81103//
81104// You can also sort results in descending order based on the creation
81105// timestamp using orderBy="creationTimestamp desc". This sorts results
81106// based on the creationTimestamp field in reverse chronological order
81107// (newest result first). Use this to sort resources like operations so
81108// that the newest operation is returned first.
81109//
81110// Currently, only sorting by name or creationTimestamp desc is
81111// supported.
81112func (c *InstanceGroupsListInstancesCall) OrderBy(orderBy string) *InstanceGroupsListInstancesCall {
81113	c.urlParams_.Set("orderBy", orderBy)
81114	return c
81115}
81116
81117// PageToken sets the optional parameter "pageToken": Specifies a page
81118// token to use. Set pageToken to the nextPageToken returned by a
81119// previous list request to get the next page of results.
81120func (c *InstanceGroupsListInstancesCall) PageToken(pageToken string) *InstanceGroupsListInstancesCall {
81121	c.urlParams_.Set("pageToken", pageToken)
81122	return c
81123}
81124
81125// Fields allows partial responses to be retrieved. See
81126// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
81127// for more information.
81128func (c *InstanceGroupsListInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupsListInstancesCall {
81129	c.urlParams_.Set("fields", googleapi.CombineFields(s))
81130	return c
81131}
81132
81133// Context sets the context to be used in this call's Do method. Any
81134// pending HTTP request will be aborted if the provided context is
81135// canceled.
81136func (c *InstanceGroupsListInstancesCall) Context(ctx context.Context) *InstanceGroupsListInstancesCall {
81137	c.ctx_ = ctx
81138	return c
81139}
81140
81141// Header returns an http.Header that can be modified by the caller to
81142// add HTTP headers to the request.
81143func (c *InstanceGroupsListInstancesCall) Header() http.Header {
81144	if c.header_ == nil {
81145		c.header_ = make(http.Header)
81146	}
81147	return c.header_
81148}
81149
81150func (c *InstanceGroupsListInstancesCall) doRequest(alt string) (*http.Response, error) {
81151	reqHeaders := make(http.Header)
81152	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
81153	for k, v := range c.header_ {
81154		reqHeaders[k] = v
81155	}
81156	reqHeaders.Set("User-Agent", c.s.userAgent())
81157	var body io.Reader = nil
81158	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupslistinstancesrequest)
81159	if err != nil {
81160		return nil, err
81161	}
81162	reqHeaders.Set("Content-Type", "application/json")
81163	c.urlParams_.Set("alt", alt)
81164	c.urlParams_.Set("prettyPrint", "false")
81165	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroups/{instanceGroup}/listInstances")
81166	urls += "?" + c.urlParams_.Encode()
81167	req, err := http.NewRequest("POST", urls, body)
81168	if err != nil {
81169		return nil, err
81170	}
81171	req.Header = reqHeaders
81172	googleapi.Expand(req.URL, map[string]string{
81173		"project":       c.project,
81174		"zone":          c.zone,
81175		"instanceGroup": c.instanceGroup,
81176	})
81177	return gensupport.SendRequest(c.ctx_, c.s.client, req)
81178}
81179
81180// Do executes the "compute.instanceGroups.listInstances" call.
81181// Exactly one of *InstanceGroupsListInstances or error will be non-nil.
81182// Any non-2xx status code is an error. Response headers are in either
81183// *InstanceGroupsListInstances.ServerResponse.Header or (if a response
81184// was returned at all) in error.(*googleapi.Error).Header. Use
81185// googleapi.IsNotModified to check whether the returned error was
81186// because http.StatusNotModified was returned.
81187func (c *InstanceGroupsListInstancesCall) Do(opts ...googleapi.CallOption) (*InstanceGroupsListInstances, error) {
81188	gensupport.SetOptions(c.urlParams_, opts...)
81189	res, err := c.doRequest("json")
81190	if res != nil && res.StatusCode == http.StatusNotModified {
81191		if res.Body != nil {
81192			res.Body.Close()
81193		}
81194		return nil, &googleapi.Error{
81195			Code:   res.StatusCode,
81196			Header: res.Header,
81197		}
81198	}
81199	if err != nil {
81200		return nil, err
81201	}
81202	defer googleapi.CloseBody(res)
81203	if err := googleapi.CheckResponse(res); err != nil {
81204		return nil, err
81205	}
81206	ret := &InstanceGroupsListInstances{
81207		ServerResponse: googleapi.ServerResponse{
81208			Header:         res.Header,
81209			HTTPStatusCode: res.StatusCode,
81210		},
81211	}
81212	target := &ret
81213	if err := gensupport.DecodeResponse(target, res); err != nil {
81214		return nil, err
81215	}
81216	return ret, nil
81217	// {
81218	//   "description": "Lists the instances in the specified instance group. (== suppress_warning http-rest-shadowed ==)",
81219	//   "httpMethod": "POST",
81220	//   "id": "compute.instanceGroups.listInstances",
81221	//   "parameterOrder": [
81222	//     "project",
81223	//     "zone",
81224	//     "instanceGroup"
81225	//   ],
81226	//   "parameters": {
81227	//     "filter": {
81228	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
81229	//       "location": "query",
81230	//       "type": "string"
81231	//     },
81232	//     "instanceGroup": {
81233	//       "description": "The name of the instance group from which you want to generate a list of included instances.",
81234	//       "location": "path",
81235	//       "required": true,
81236	//       "type": "string"
81237	//     },
81238	//     "maxResults": {
81239	//       "default": "500",
81240	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
81241	//       "format": "uint32",
81242	//       "location": "query",
81243	//       "minimum": "0",
81244	//       "type": "integer"
81245	//     },
81246	//     "orderBy": {
81247	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
81248	//       "location": "query",
81249	//       "type": "string"
81250	//     },
81251	//     "pageToken": {
81252	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
81253	//       "location": "query",
81254	//       "type": "string"
81255	//     },
81256	//     "project": {
81257	//       "description": "Project ID for this request.",
81258	//       "location": "path",
81259	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
81260	//       "required": true,
81261	//       "type": "string"
81262	//     },
81263	//     "zone": {
81264	//       "description": "The name of the zone where the instance group is located.",
81265	//       "location": "path",
81266	//       "required": true,
81267	//       "type": "string"
81268	//     }
81269	//   },
81270	//   "path": "{project}/zones/{zone}/instanceGroups/{instanceGroup}/listInstances",
81271	//   "request": {
81272	//     "$ref": "InstanceGroupsListInstancesRequest"
81273	//   },
81274	//   "response": {
81275	//     "$ref": "InstanceGroupsListInstances"
81276	//   },
81277	//   "scopes": [
81278	//     "https://www.googleapis.com/auth/cloud-platform",
81279	//     "https://www.googleapis.com/auth/compute",
81280	//     "https://www.googleapis.com/auth/compute.readonly"
81281	//   ]
81282	// }
81283
81284}
81285
81286// Pages invokes f for each page of results.
81287// A non-nil error returned from f will halt the iteration.
81288// The provided context supersedes any context provided to the Context method.
81289func (c *InstanceGroupsListInstancesCall) Pages(ctx context.Context, f func(*InstanceGroupsListInstances) error) error {
81290	c.ctx_ = ctx
81291	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
81292	for {
81293		x, err := c.Do()
81294		if err != nil {
81295			return err
81296		}
81297		if err := f(x); err != nil {
81298			return err
81299		}
81300		if x.NextPageToken == "" {
81301			return nil
81302		}
81303		c.PageToken(x.NextPageToken)
81304	}
81305}
81306
81307// method id "compute.instanceGroups.removeInstances":
81308
81309type InstanceGroupsRemoveInstancesCall struct {
81310	s                                    *Service
81311	project                              string
81312	zone                                 string
81313	instanceGroup                        string
81314	instancegroupsremoveinstancesrequest *InstanceGroupsRemoveInstancesRequest
81315	urlParams_                           gensupport.URLParams
81316	ctx_                                 context.Context
81317	header_                              http.Header
81318}
81319
81320// RemoveInstances: Removes one or more instances from the specified
81321// instance group, but does not delete those instances.
81322//
81323// If the group is part of a backend service that has enabled connection
81324// draining, it can take up to 60 seconds after the connection draining
81325// duration before the VM instance is removed or deleted. (==
81326// suppress_warning http-rest-shadowed ==)
81327func (r *InstanceGroupsService) RemoveInstances(project string, zone string, instanceGroup string, instancegroupsremoveinstancesrequest *InstanceGroupsRemoveInstancesRequest) *InstanceGroupsRemoveInstancesCall {
81328	c := &InstanceGroupsRemoveInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
81329	c.project = project
81330	c.zone = zone
81331	c.instanceGroup = instanceGroup
81332	c.instancegroupsremoveinstancesrequest = instancegroupsremoveinstancesrequest
81333	return c
81334}
81335
81336// RequestId sets the optional parameter "requestId": An optional
81337// request ID to identify requests. Specify a unique request ID so that
81338// if you must retry your request, the server will know to ignore the
81339// request if it has already been completed.
81340//
81341// For example, consider a situation where you make an initial request
81342// and the request times out. If you make the request again with the
81343// same request ID, the server can check if original operation with the
81344// same request ID was received, and if so, will ignore the second
81345// request. This prevents clients from accidentally creating duplicate
81346// commitments.
81347//
81348// The request ID must be a valid UUID with the exception that zero UUID
81349// is not supported (00000000-0000-0000-0000-000000000000).
81350func (c *InstanceGroupsRemoveInstancesCall) RequestId(requestId string) *InstanceGroupsRemoveInstancesCall {
81351	c.urlParams_.Set("requestId", requestId)
81352	return c
81353}
81354
81355// Fields allows partial responses to be retrieved. See
81356// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
81357// for more information.
81358func (c *InstanceGroupsRemoveInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupsRemoveInstancesCall {
81359	c.urlParams_.Set("fields", googleapi.CombineFields(s))
81360	return c
81361}
81362
81363// Context sets the context to be used in this call's Do method. Any
81364// pending HTTP request will be aborted if the provided context is
81365// canceled.
81366func (c *InstanceGroupsRemoveInstancesCall) Context(ctx context.Context) *InstanceGroupsRemoveInstancesCall {
81367	c.ctx_ = ctx
81368	return c
81369}
81370
81371// Header returns an http.Header that can be modified by the caller to
81372// add HTTP headers to the request.
81373func (c *InstanceGroupsRemoveInstancesCall) Header() http.Header {
81374	if c.header_ == nil {
81375		c.header_ = make(http.Header)
81376	}
81377	return c.header_
81378}
81379
81380func (c *InstanceGroupsRemoveInstancesCall) doRequest(alt string) (*http.Response, error) {
81381	reqHeaders := make(http.Header)
81382	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
81383	for k, v := range c.header_ {
81384		reqHeaders[k] = v
81385	}
81386	reqHeaders.Set("User-Agent", c.s.userAgent())
81387	var body io.Reader = nil
81388	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupsremoveinstancesrequest)
81389	if err != nil {
81390		return nil, err
81391	}
81392	reqHeaders.Set("Content-Type", "application/json")
81393	c.urlParams_.Set("alt", alt)
81394	c.urlParams_.Set("prettyPrint", "false")
81395	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroups/{instanceGroup}/removeInstances")
81396	urls += "?" + c.urlParams_.Encode()
81397	req, err := http.NewRequest("POST", urls, body)
81398	if err != nil {
81399		return nil, err
81400	}
81401	req.Header = reqHeaders
81402	googleapi.Expand(req.URL, map[string]string{
81403		"project":       c.project,
81404		"zone":          c.zone,
81405		"instanceGroup": c.instanceGroup,
81406	})
81407	return gensupport.SendRequest(c.ctx_, c.s.client, req)
81408}
81409
81410// Do executes the "compute.instanceGroups.removeInstances" call.
81411// Exactly one of *Operation or error will be non-nil. Any non-2xx
81412// status code is an error. Response headers are in either
81413// *Operation.ServerResponse.Header or (if a response was returned at
81414// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
81415// to check whether the returned error was because
81416// http.StatusNotModified was returned.
81417func (c *InstanceGroupsRemoveInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
81418	gensupport.SetOptions(c.urlParams_, opts...)
81419	res, err := c.doRequest("json")
81420	if res != nil && res.StatusCode == http.StatusNotModified {
81421		if res.Body != nil {
81422			res.Body.Close()
81423		}
81424		return nil, &googleapi.Error{
81425			Code:   res.StatusCode,
81426			Header: res.Header,
81427		}
81428	}
81429	if err != nil {
81430		return nil, err
81431	}
81432	defer googleapi.CloseBody(res)
81433	if err := googleapi.CheckResponse(res); err != nil {
81434		return nil, err
81435	}
81436	ret := &Operation{
81437		ServerResponse: googleapi.ServerResponse{
81438			Header:         res.Header,
81439			HTTPStatusCode: res.StatusCode,
81440		},
81441	}
81442	target := &ret
81443	if err := gensupport.DecodeResponse(target, res); err != nil {
81444		return nil, err
81445	}
81446	return ret, nil
81447	// {
81448	//   "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. (== suppress_warning http-rest-shadowed ==)",
81449	//   "httpMethod": "POST",
81450	//   "id": "compute.instanceGroups.removeInstances",
81451	//   "parameterOrder": [
81452	//     "project",
81453	//     "zone",
81454	//     "instanceGroup"
81455	//   ],
81456	//   "parameters": {
81457	//     "instanceGroup": {
81458	//       "description": "The name of the instance group where the specified instances will be removed.",
81459	//       "location": "path",
81460	//       "required": true,
81461	//       "type": "string"
81462	//     },
81463	//     "project": {
81464	//       "description": "Project ID for this request.",
81465	//       "location": "path",
81466	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
81467	//       "required": true,
81468	//       "type": "string"
81469	//     },
81470	//     "requestId": {
81471	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
81472	//       "location": "query",
81473	//       "type": "string"
81474	//     },
81475	//     "zone": {
81476	//       "description": "The name of the zone where the instance group is located.",
81477	//       "location": "path",
81478	//       "required": true,
81479	//       "type": "string"
81480	//     }
81481	//   },
81482	//   "path": "{project}/zones/{zone}/instanceGroups/{instanceGroup}/removeInstances",
81483	//   "request": {
81484	//     "$ref": "InstanceGroupsRemoveInstancesRequest"
81485	//   },
81486	//   "response": {
81487	//     "$ref": "Operation"
81488	//   },
81489	//   "scopes": [
81490	//     "https://www.googleapis.com/auth/cloud-platform",
81491	//     "https://www.googleapis.com/auth/compute"
81492	//   ]
81493	// }
81494
81495}
81496
81497// method id "compute.instanceGroups.setNamedPorts":
81498
81499type InstanceGroupsSetNamedPortsCall struct {
81500	s                                  *Service
81501	project                            string
81502	zone                               string
81503	instanceGroup                      string
81504	instancegroupssetnamedportsrequest *InstanceGroupsSetNamedPortsRequest
81505	urlParams_                         gensupport.URLParams
81506	ctx_                               context.Context
81507	header_                            http.Header
81508}
81509
81510// SetNamedPorts: Sets the named ports for the specified instance group.
81511// (== suppress_warning http-rest-shadowed ==)
81512func (r *InstanceGroupsService) SetNamedPorts(project string, zone string, instanceGroup string, instancegroupssetnamedportsrequest *InstanceGroupsSetNamedPortsRequest) *InstanceGroupsSetNamedPortsCall {
81513	c := &InstanceGroupsSetNamedPortsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
81514	c.project = project
81515	c.zone = zone
81516	c.instanceGroup = instanceGroup
81517	c.instancegroupssetnamedportsrequest = instancegroupssetnamedportsrequest
81518	return c
81519}
81520
81521// RequestId sets the optional parameter "requestId": An optional
81522// request ID to identify requests. Specify a unique request ID so that
81523// if you must retry your request, the server will know to ignore the
81524// request if it has already been completed.
81525//
81526// For example, consider a situation where you make an initial request
81527// and the request times out. If you make the request again with the
81528// same request ID, the server can check if original operation with the
81529// same request ID was received, and if so, will ignore the second
81530// request. This prevents clients from accidentally creating duplicate
81531// commitments.
81532//
81533// The request ID must be a valid UUID with the exception that zero UUID
81534// is not supported (00000000-0000-0000-0000-000000000000).
81535func (c *InstanceGroupsSetNamedPortsCall) RequestId(requestId string) *InstanceGroupsSetNamedPortsCall {
81536	c.urlParams_.Set("requestId", requestId)
81537	return c
81538}
81539
81540// Fields allows partial responses to be retrieved. See
81541// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
81542// for more information.
81543func (c *InstanceGroupsSetNamedPortsCall) Fields(s ...googleapi.Field) *InstanceGroupsSetNamedPortsCall {
81544	c.urlParams_.Set("fields", googleapi.CombineFields(s))
81545	return c
81546}
81547
81548// Context sets the context to be used in this call's Do method. Any
81549// pending HTTP request will be aborted if the provided context is
81550// canceled.
81551func (c *InstanceGroupsSetNamedPortsCall) Context(ctx context.Context) *InstanceGroupsSetNamedPortsCall {
81552	c.ctx_ = ctx
81553	return c
81554}
81555
81556// Header returns an http.Header that can be modified by the caller to
81557// add HTTP headers to the request.
81558func (c *InstanceGroupsSetNamedPortsCall) Header() http.Header {
81559	if c.header_ == nil {
81560		c.header_ = make(http.Header)
81561	}
81562	return c.header_
81563}
81564
81565func (c *InstanceGroupsSetNamedPortsCall) doRequest(alt string) (*http.Response, error) {
81566	reqHeaders := make(http.Header)
81567	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
81568	for k, v := range c.header_ {
81569		reqHeaders[k] = v
81570	}
81571	reqHeaders.Set("User-Agent", c.s.userAgent())
81572	var body io.Reader = nil
81573	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupssetnamedportsrequest)
81574	if err != nil {
81575		return nil, err
81576	}
81577	reqHeaders.Set("Content-Type", "application/json")
81578	c.urlParams_.Set("alt", alt)
81579	c.urlParams_.Set("prettyPrint", "false")
81580	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroups/{instanceGroup}/setNamedPorts")
81581	urls += "?" + c.urlParams_.Encode()
81582	req, err := http.NewRequest("POST", urls, body)
81583	if err != nil {
81584		return nil, err
81585	}
81586	req.Header = reqHeaders
81587	googleapi.Expand(req.URL, map[string]string{
81588		"project":       c.project,
81589		"zone":          c.zone,
81590		"instanceGroup": c.instanceGroup,
81591	})
81592	return gensupport.SendRequest(c.ctx_, c.s.client, req)
81593}
81594
81595// Do executes the "compute.instanceGroups.setNamedPorts" call.
81596// Exactly one of *Operation or error will be non-nil. Any non-2xx
81597// status code is an error. Response headers are in either
81598// *Operation.ServerResponse.Header or (if a response was returned at
81599// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
81600// to check whether the returned error was because
81601// http.StatusNotModified was returned.
81602func (c *InstanceGroupsSetNamedPortsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
81603	gensupport.SetOptions(c.urlParams_, opts...)
81604	res, err := c.doRequest("json")
81605	if res != nil && res.StatusCode == http.StatusNotModified {
81606		if res.Body != nil {
81607			res.Body.Close()
81608		}
81609		return nil, &googleapi.Error{
81610			Code:   res.StatusCode,
81611			Header: res.Header,
81612		}
81613	}
81614	if err != nil {
81615		return nil, err
81616	}
81617	defer googleapi.CloseBody(res)
81618	if err := googleapi.CheckResponse(res); err != nil {
81619		return nil, err
81620	}
81621	ret := &Operation{
81622		ServerResponse: googleapi.ServerResponse{
81623			Header:         res.Header,
81624			HTTPStatusCode: res.StatusCode,
81625		},
81626	}
81627	target := &ret
81628	if err := gensupport.DecodeResponse(target, res); err != nil {
81629		return nil, err
81630	}
81631	return ret, nil
81632	// {
81633	//   "description": "Sets the named ports for the specified instance group. (== suppress_warning http-rest-shadowed ==)",
81634	//   "httpMethod": "POST",
81635	//   "id": "compute.instanceGroups.setNamedPorts",
81636	//   "parameterOrder": [
81637	//     "project",
81638	//     "zone",
81639	//     "instanceGroup"
81640	//   ],
81641	//   "parameters": {
81642	//     "instanceGroup": {
81643	//       "description": "The name of the instance group where the named ports are updated.",
81644	//       "location": "path",
81645	//       "required": true,
81646	//       "type": "string"
81647	//     },
81648	//     "project": {
81649	//       "description": "Project ID for this request.",
81650	//       "location": "path",
81651	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
81652	//       "required": true,
81653	//       "type": "string"
81654	//     },
81655	//     "requestId": {
81656	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
81657	//       "location": "query",
81658	//       "type": "string"
81659	//     },
81660	//     "zone": {
81661	//       "description": "The name of the zone where the instance group is located.",
81662	//       "location": "path",
81663	//       "required": true,
81664	//       "type": "string"
81665	//     }
81666	//   },
81667	//   "path": "{project}/zones/{zone}/instanceGroups/{instanceGroup}/setNamedPorts",
81668	//   "request": {
81669	//     "$ref": "InstanceGroupsSetNamedPortsRequest"
81670	//   },
81671	//   "response": {
81672	//     "$ref": "Operation"
81673	//   },
81674	//   "scopes": [
81675	//     "https://www.googleapis.com/auth/cloud-platform",
81676	//     "https://www.googleapis.com/auth/compute"
81677	//   ]
81678	// }
81679
81680}
81681
81682// method id "compute.instanceGroups.testIamPermissions":
81683
81684type InstanceGroupsTestIamPermissionsCall struct {
81685	s                      *Service
81686	project                string
81687	zone                   string
81688	resource               string
81689	testpermissionsrequest *TestPermissionsRequest
81690	urlParams_             gensupport.URLParams
81691	ctx_                   context.Context
81692	header_                http.Header
81693}
81694
81695// TestIamPermissions: Returns permissions that a caller has on the
81696// specified resource. (== suppress_warning http-rest-shadowed ==)
81697func (r *InstanceGroupsService) TestIamPermissions(project string, zone string, resource string, testpermissionsrequest *TestPermissionsRequest) *InstanceGroupsTestIamPermissionsCall {
81698	c := &InstanceGroupsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
81699	c.project = project
81700	c.zone = zone
81701	c.resource = resource
81702	c.testpermissionsrequest = testpermissionsrequest
81703	return c
81704}
81705
81706// Fields allows partial responses to be retrieved. See
81707// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
81708// for more information.
81709func (c *InstanceGroupsTestIamPermissionsCall) Fields(s ...googleapi.Field) *InstanceGroupsTestIamPermissionsCall {
81710	c.urlParams_.Set("fields", googleapi.CombineFields(s))
81711	return c
81712}
81713
81714// Context sets the context to be used in this call's Do method. Any
81715// pending HTTP request will be aborted if the provided context is
81716// canceled.
81717func (c *InstanceGroupsTestIamPermissionsCall) Context(ctx context.Context) *InstanceGroupsTestIamPermissionsCall {
81718	c.ctx_ = ctx
81719	return c
81720}
81721
81722// Header returns an http.Header that can be modified by the caller to
81723// add HTTP headers to the request.
81724func (c *InstanceGroupsTestIamPermissionsCall) Header() http.Header {
81725	if c.header_ == nil {
81726		c.header_ = make(http.Header)
81727	}
81728	return c.header_
81729}
81730
81731func (c *InstanceGroupsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
81732	reqHeaders := make(http.Header)
81733	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
81734	for k, v := range c.header_ {
81735		reqHeaders[k] = v
81736	}
81737	reqHeaders.Set("User-Agent", c.s.userAgent())
81738	var body io.Reader = nil
81739	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
81740	if err != nil {
81741		return nil, err
81742	}
81743	reqHeaders.Set("Content-Type", "application/json")
81744	c.urlParams_.Set("alt", alt)
81745	c.urlParams_.Set("prettyPrint", "false")
81746	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroups/{resource}/testIamPermissions")
81747	urls += "?" + c.urlParams_.Encode()
81748	req, err := http.NewRequest("POST", urls, body)
81749	if err != nil {
81750		return nil, err
81751	}
81752	req.Header = reqHeaders
81753	googleapi.Expand(req.URL, map[string]string{
81754		"project":  c.project,
81755		"zone":     c.zone,
81756		"resource": c.resource,
81757	})
81758	return gensupport.SendRequest(c.ctx_, c.s.client, req)
81759}
81760
81761// Do executes the "compute.instanceGroups.testIamPermissions" call.
81762// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
81763// non-2xx status code is an error. Response headers are in either
81764// *TestPermissionsResponse.ServerResponse.Header or (if a response was
81765// returned at all) in error.(*googleapi.Error).Header. Use
81766// googleapi.IsNotModified to check whether the returned error was
81767// because http.StatusNotModified was returned.
81768func (c *InstanceGroupsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
81769	gensupport.SetOptions(c.urlParams_, opts...)
81770	res, err := c.doRequest("json")
81771	if res != nil && res.StatusCode == http.StatusNotModified {
81772		if res.Body != nil {
81773			res.Body.Close()
81774		}
81775		return nil, &googleapi.Error{
81776			Code:   res.StatusCode,
81777			Header: res.Header,
81778		}
81779	}
81780	if err != nil {
81781		return nil, err
81782	}
81783	defer googleapi.CloseBody(res)
81784	if err := googleapi.CheckResponse(res); err != nil {
81785		return nil, err
81786	}
81787	ret := &TestPermissionsResponse{
81788		ServerResponse: googleapi.ServerResponse{
81789			Header:         res.Header,
81790			HTTPStatusCode: res.StatusCode,
81791		},
81792	}
81793	target := &ret
81794	if err := gensupport.DecodeResponse(target, res); err != nil {
81795		return nil, err
81796	}
81797	return ret, nil
81798	// {
81799	//   "description": "Returns permissions that a caller has on the specified resource. (== suppress_warning http-rest-shadowed ==)",
81800	//   "httpMethod": "POST",
81801	//   "id": "compute.instanceGroups.testIamPermissions",
81802	//   "parameterOrder": [
81803	//     "project",
81804	//     "zone",
81805	//     "resource"
81806	//   ],
81807	//   "parameters": {
81808	//     "project": {
81809	//       "description": "Project ID for this request.",
81810	//       "location": "path",
81811	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
81812	//       "required": true,
81813	//       "type": "string"
81814	//     },
81815	//     "resource": {
81816	//       "description": "Name or id of the resource for this request.",
81817	//       "location": "path",
81818	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
81819	//       "required": true,
81820	//       "type": "string"
81821	//     },
81822	//     "zone": {
81823	//       "description": "The name of the zone for this request.",
81824	//       "location": "path",
81825	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
81826	//       "required": true,
81827	//       "type": "string"
81828	//     }
81829	//   },
81830	//   "path": "{project}/zones/{zone}/instanceGroups/{resource}/testIamPermissions",
81831	//   "request": {
81832	//     "$ref": "TestPermissionsRequest"
81833	//   },
81834	//   "response": {
81835	//     "$ref": "TestPermissionsResponse"
81836	//   },
81837	//   "scopes": [
81838	//     "https://www.googleapis.com/auth/cloud-platform",
81839	//     "https://www.googleapis.com/auth/compute",
81840	//     "https://www.googleapis.com/auth/compute.readonly"
81841	//   ]
81842	// }
81843
81844}
81845
81846// method id "compute.instanceTemplates.delete":
81847
81848type InstanceTemplatesDeleteCall struct {
81849	s                *Service
81850	project          string
81851	instanceTemplate string
81852	urlParams_       gensupport.URLParams
81853	ctx_             context.Context
81854	header_          http.Header
81855}
81856
81857// Delete: Deletes the specified instance template. Deleting an instance
81858// template is permanent and cannot be undone. It is not possible to
81859// delete templates that are already in use by a managed instance group.
81860// (== suppress_warning http-rest-shadowed ==)
81861// For details, see https://cloud.google.com/compute/docs/reference/latest/instanceTemplates/delete
81862func (r *InstanceTemplatesService) Delete(project string, instanceTemplate string) *InstanceTemplatesDeleteCall {
81863	c := &InstanceTemplatesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
81864	c.project = project
81865	c.instanceTemplate = instanceTemplate
81866	return c
81867}
81868
81869// RequestId sets the optional parameter "requestId": An optional
81870// request ID to identify requests. Specify a unique request ID so that
81871// if you must retry your request, the server will know to ignore the
81872// request if it has already been completed.
81873//
81874// For example, consider a situation where you make an initial request
81875// and the request times out. If you make the request again with the
81876// same request ID, the server can check if original operation with the
81877// same request ID was received, and if so, will ignore the second
81878// request. This prevents clients from accidentally creating duplicate
81879// commitments.
81880//
81881// The request ID must be a valid UUID with the exception that zero UUID
81882// is not supported (00000000-0000-0000-0000-000000000000).
81883func (c *InstanceTemplatesDeleteCall) RequestId(requestId string) *InstanceTemplatesDeleteCall {
81884	c.urlParams_.Set("requestId", requestId)
81885	return c
81886}
81887
81888// Fields allows partial responses to be retrieved. See
81889// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
81890// for more information.
81891func (c *InstanceTemplatesDeleteCall) Fields(s ...googleapi.Field) *InstanceTemplatesDeleteCall {
81892	c.urlParams_.Set("fields", googleapi.CombineFields(s))
81893	return c
81894}
81895
81896// Context sets the context to be used in this call's Do method. Any
81897// pending HTTP request will be aborted if the provided context is
81898// canceled.
81899func (c *InstanceTemplatesDeleteCall) Context(ctx context.Context) *InstanceTemplatesDeleteCall {
81900	c.ctx_ = ctx
81901	return c
81902}
81903
81904// Header returns an http.Header that can be modified by the caller to
81905// add HTTP headers to the request.
81906func (c *InstanceTemplatesDeleteCall) Header() http.Header {
81907	if c.header_ == nil {
81908		c.header_ = make(http.Header)
81909	}
81910	return c.header_
81911}
81912
81913func (c *InstanceTemplatesDeleteCall) doRequest(alt string) (*http.Response, error) {
81914	reqHeaders := make(http.Header)
81915	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
81916	for k, v := range c.header_ {
81917		reqHeaders[k] = v
81918	}
81919	reqHeaders.Set("User-Agent", c.s.userAgent())
81920	var body io.Reader = nil
81921	c.urlParams_.Set("alt", alt)
81922	c.urlParams_.Set("prettyPrint", "false")
81923	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/instanceTemplates/{instanceTemplate}")
81924	urls += "?" + c.urlParams_.Encode()
81925	req, err := http.NewRequest("DELETE", urls, body)
81926	if err != nil {
81927		return nil, err
81928	}
81929	req.Header = reqHeaders
81930	googleapi.Expand(req.URL, map[string]string{
81931		"project":          c.project,
81932		"instanceTemplate": c.instanceTemplate,
81933	})
81934	return gensupport.SendRequest(c.ctx_, c.s.client, req)
81935}
81936
81937// Do executes the "compute.instanceTemplates.delete" call.
81938// Exactly one of *Operation or error will be non-nil. Any non-2xx
81939// status code is an error. Response headers are in either
81940// *Operation.ServerResponse.Header or (if a response was returned at
81941// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
81942// to check whether the returned error was because
81943// http.StatusNotModified was returned.
81944func (c *InstanceTemplatesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
81945	gensupport.SetOptions(c.urlParams_, opts...)
81946	res, err := c.doRequest("json")
81947	if res != nil && res.StatusCode == http.StatusNotModified {
81948		if res.Body != nil {
81949			res.Body.Close()
81950		}
81951		return nil, &googleapi.Error{
81952			Code:   res.StatusCode,
81953			Header: res.Header,
81954		}
81955	}
81956	if err != nil {
81957		return nil, err
81958	}
81959	defer googleapi.CloseBody(res)
81960	if err := googleapi.CheckResponse(res); err != nil {
81961		return nil, err
81962	}
81963	ret := &Operation{
81964		ServerResponse: googleapi.ServerResponse{
81965			Header:         res.Header,
81966			HTTPStatusCode: res.StatusCode,
81967		},
81968	}
81969	target := &ret
81970	if err := gensupport.DecodeResponse(target, res); err != nil {
81971		return nil, err
81972	}
81973	return ret, nil
81974	// {
81975	//   "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. (== suppress_warning http-rest-shadowed ==)",
81976	//   "httpMethod": "DELETE",
81977	//   "id": "compute.instanceTemplates.delete",
81978	//   "parameterOrder": [
81979	//     "project",
81980	//     "instanceTemplate"
81981	//   ],
81982	//   "parameters": {
81983	//     "instanceTemplate": {
81984	//       "description": "The name of the instance template to delete.",
81985	//       "location": "path",
81986	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
81987	//       "required": true,
81988	//       "type": "string"
81989	//     },
81990	//     "project": {
81991	//       "description": "Project ID for this request.",
81992	//       "location": "path",
81993	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
81994	//       "required": true,
81995	//       "type": "string"
81996	//     },
81997	//     "requestId": {
81998	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
81999	//       "location": "query",
82000	//       "type": "string"
82001	//     }
82002	//   },
82003	//   "path": "{project}/global/instanceTemplates/{instanceTemplate}",
82004	//   "response": {
82005	//     "$ref": "Operation"
82006	//   },
82007	//   "scopes": [
82008	//     "https://www.googleapis.com/auth/cloud-platform",
82009	//     "https://www.googleapis.com/auth/compute"
82010	//   ]
82011	// }
82012
82013}
82014
82015// method id "compute.instanceTemplates.get":
82016
82017type InstanceTemplatesGetCall struct {
82018	s                *Service
82019	project          string
82020	instanceTemplate string
82021	urlParams_       gensupport.URLParams
82022	ifNoneMatch_     string
82023	ctx_             context.Context
82024	header_          http.Header
82025}
82026
82027// Get: Returns the specified instance template. Gets a list of
82028// available instance templates by making a list() request. (==
82029// suppress_warning http-rest-shadowed ==)
82030// For details, see https://cloud.google.com/compute/docs/reference/latest/instanceTemplates/get
82031func (r *InstanceTemplatesService) Get(project string, instanceTemplate string) *InstanceTemplatesGetCall {
82032	c := &InstanceTemplatesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
82033	c.project = project
82034	c.instanceTemplate = instanceTemplate
82035	return c
82036}
82037
82038// Fields allows partial responses to be retrieved. See
82039// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
82040// for more information.
82041func (c *InstanceTemplatesGetCall) Fields(s ...googleapi.Field) *InstanceTemplatesGetCall {
82042	c.urlParams_.Set("fields", googleapi.CombineFields(s))
82043	return c
82044}
82045
82046// IfNoneMatch sets the optional parameter which makes the operation
82047// fail if the object's ETag matches the given value. This is useful for
82048// getting updates only after the object has changed since the last
82049// request. Use googleapi.IsNotModified to check whether the response
82050// error from Do is the result of In-None-Match.
82051func (c *InstanceTemplatesGetCall) IfNoneMatch(entityTag string) *InstanceTemplatesGetCall {
82052	c.ifNoneMatch_ = entityTag
82053	return c
82054}
82055
82056// Context sets the context to be used in this call's Do method. Any
82057// pending HTTP request will be aborted if the provided context is
82058// canceled.
82059func (c *InstanceTemplatesGetCall) Context(ctx context.Context) *InstanceTemplatesGetCall {
82060	c.ctx_ = ctx
82061	return c
82062}
82063
82064// Header returns an http.Header that can be modified by the caller to
82065// add HTTP headers to the request.
82066func (c *InstanceTemplatesGetCall) Header() http.Header {
82067	if c.header_ == nil {
82068		c.header_ = make(http.Header)
82069	}
82070	return c.header_
82071}
82072
82073func (c *InstanceTemplatesGetCall) doRequest(alt string) (*http.Response, error) {
82074	reqHeaders := make(http.Header)
82075	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
82076	for k, v := range c.header_ {
82077		reqHeaders[k] = v
82078	}
82079	reqHeaders.Set("User-Agent", c.s.userAgent())
82080	if c.ifNoneMatch_ != "" {
82081		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
82082	}
82083	var body io.Reader = nil
82084	c.urlParams_.Set("alt", alt)
82085	c.urlParams_.Set("prettyPrint", "false")
82086	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/instanceTemplates/{instanceTemplate}")
82087	urls += "?" + c.urlParams_.Encode()
82088	req, err := http.NewRequest("GET", urls, body)
82089	if err != nil {
82090		return nil, err
82091	}
82092	req.Header = reqHeaders
82093	googleapi.Expand(req.URL, map[string]string{
82094		"project":          c.project,
82095		"instanceTemplate": c.instanceTemplate,
82096	})
82097	return gensupport.SendRequest(c.ctx_, c.s.client, req)
82098}
82099
82100// Do executes the "compute.instanceTemplates.get" call.
82101// Exactly one of *InstanceTemplate or error will be non-nil. Any
82102// non-2xx status code is an error. Response headers are in either
82103// *InstanceTemplate.ServerResponse.Header or (if a response was
82104// returned at all) in error.(*googleapi.Error).Header. Use
82105// googleapi.IsNotModified to check whether the returned error was
82106// because http.StatusNotModified was returned.
82107func (c *InstanceTemplatesGetCall) Do(opts ...googleapi.CallOption) (*InstanceTemplate, error) {
82108	gensupport.SetOptions(c.urlParams_, opts...)
82109	res, err := c.doRequest("json")
82110	if res != nil && res.StatusCode == http.StatusNotModified {
82111		if res.Body != nil {
82112			res.Body.Close()
82113		}
82114		return nil, &googleapi.Error{
82115			Code:   res.StatusCode,
82116			Header: res.Header,
82117		}
82118	}
82119	if err != nil {
82120		return nil, err
82121	}
82122	defer googleapi.CloseBody(res)
82123	if err := googleapi.CheckResponse(res); err != nil {
82124		return nil, err
82125	}
82126	ret := &InstanceTemplate{
82127		ServerResponse: googleapi.ServerResponse{
82128			Header:         res.Header,
82129			HTTPStatusCode: res.StatusCode,
82130		},
82131	}
82132	target := &ret
82133	if err := gensupport.DecodeResponse(target, res); err != nil {
82134		return nil, err
82135	}
82136	return ret, nil
82137	// {
82138	//   "description": "Returns the specified instance template. Gets a list of available instance templates by making a list() request. (== suppress_warning http-rest-shadowed ==)",
82139	//   "httpMethod": "GET",
82140	//   "id": "compute.instanceTemplates.get",
82141	//   "parameterOrder": [
82142	//     "project",
82143	//     "instanceTemplate"
82144	//   ],
82145	//   "parameters": {
82146	//     "instanceTemplate": {
82147	//       "description": "The name of the instance template.",
82148	//       "location": "path",
82149	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
82150	//       "required": true,
82151	//       "type": "string"
82152	//     },
82153	//     "project": {
82154	//       "description": "Project ID for this request.",
82155	//       "location": "path",
82156	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
82157	//       "required": true,
82158	//       "type": "string"
82159	//     }
82160	//   },
82161	//   "path": "{project}/global/instanceTemplates/{instanceTemplate}",
82162	//   "response": {
82163	//     "$ref": "InstanceTemplate"
82164	//   },
82165	//   "scopes": [
82166	//     "https://www.googleapis.com/auth/cloud-platform",
82167	//     "https://www.googleapis.com/auth/compute",
82168	//     "https://www.googleapis.com/auth/compute.readonly"
82169	//   ]
82170	// }
82171
82172}
82173
82174// method id "compute.instanceTemplates.getIamPolicy":
82175
82176type InstanceTemplatesGetIamPolicyCall struct {
82177	s            *Service
82178	project      string
82179	resource     string
82180	urlParams_   gensupport.URLParams
82181	ifNoneMatch_ string
82182	ctx_         context.Context
82183	header_      http.Header
82184}
82185
82186// GetIamPolicy: Gets the access control policy for a resource. May be
82187// empty if no such policy or resource exists. (== suppress_warning
82188// http-rest-shadowed ==)
82189func (r *InstanceTemplatesService) GetIamPolicy(project string, resource string) *InstanceTemplatesGetIamPolicyCall {
82190	c := &InstanceTemplatesGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
82191	c.project = project
82192	c.resource = resource
82193	return c
82194}
82195
82196// OptionsRequestedPolicyVersion sets the optional parameter
82197// "optionsRequestedPolicyVersion": Requested IAM Policy version.
82198func (c *InstanceTemplatesGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *InstanceTemplatesGetIamPolicyCall {
82199	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
82200	return c
82201}
82202
82203// Fields allows partial responses to be retrieved. See
82204// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
82205// for more information.
82206func (c *InstanceTemplatesGetIamPolicyCall) Fields(s ...googleapi.Field) *InstanceTemplatesGetIamPolicyCall {
82207	c.urlParams_.Set("fields", googleapi.CombineFields(s))
82208	return c
82209}
82210
82211// IfNoneMatch sets the optional parameter which makes the operation
82212// fail if the object's ETag matches the given value. This is useful for
82213// getting updates only after the object has changed since the last
82214// request. Use googleapi.IsNotModified to check whether the response
82215// error from Do is the result of In-None-Match.
82216func (c *InstanceTemplatesGetIamPolicyCall) IfNoneMatch(entityTag string) *InstanceTemplatesGetIamPolicyCall {
82217	c.ifNoneMatch_ = entityTag
82218	return c
82219}
82220
82221// Context sets the context to be used in this call's Do method. Any
82222// pending HTTP request will be aborted if the provided context is
82223// canceled.
82224func (c *InstanceTemplatesGetIamPolicyCall) Context(ctx context.Context) *InstanceTemplatesGetIamPolicyCall {
82225	c.ctx_ = ctx
82226	return c
82227}
82228
82229// Header returns an http.Header that can be modified by the caller to
82230// add HTTP headers to the request.
82231func (c *InstanceTemplatesGetIamPolicyCall) Header() http.Header {
82232	if c.header_ == nil {
82233		c.header_ = make(http.Header)
82234	}
82235	return c.header_
82236}
82237
82238func (c *InstanceTemplatesGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
82239	reqHeaders := make(http.Header)
82240	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
82241	for k, v := range c.header_ {
82242		reqHeaders[k] = v
82243	}
82244	reqHeaders.Set("User-Agent", c.s.userAgent())
82245	if c.ifNoneMatch_ != "" {
82246		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
82247	}
82248	var body io.Reader = nil
82249	c.urlParams_.Set("alt", alt)
82250	c.urlParams_.Set("prettyPrint", "false")
82251	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/instanceTemplates/{resource}/getIamPolicy")
82252	urls += "?" + c.urlParams_.Encode()
82253	req, err := http.NewRequest("GET", urls, body)
82254	if err != nil {
82255		return nil, err
82256	}
82257	req.Header = reqHeaders
82258	googleapi.Expand(req.URL, map[string]string{
82259		"project":  c.project,
82260		"resource": c.resource,
82261	})
82262	return gensupport.SendRequest(c.ctx_, c.s.client, req)
82263}
82264
82265// Do executes the "compute.instanceTemplates.getIamPolicy" call.
82266// Exactly one of *Policy or error will be non-nil. Any non-2xx status
82267// code is an error. Response headers are in either
82268// *Policy.ServerResponse.Header or (if a response was returned at all)
82269// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
82270// check whether the returned error was because http.StatusNotModified
82271// was returned.
82272func (c *InstanceTemplatesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
82273	gensupport.SetOptions(c.urlParams_, opts...)
82274	res, err := c.doRequest("json")
82275	if res != nil && res.StatusCode == http.StatusNotModified {
82276		if res.Body != nil {
82277			res.Body.Close()
82278		}
82279		return nil, &googleapi.Error{
82280			Code:   res.StatusCode,
82281			Header: res.Header,
82282		}
82283	}
82284	if err != nil {
82285		return nil, err
82286	}
82287	defer googleapi.CloseBody(res)
82288	if err := googleapi.CheckResponse(res); err != nil {
82289		return nil, err
82290	}
82291	ret := &Policy{
82292		ServerResponse: googleapi.ServerResponse{
82293			Header:         res.Header,
82294			HTTPStatusCode: res.StatusCode,
82295		},
82296	}
82297	target := &ret
82298	if err := gensupport.DecodeResponse(target, res); err != nil {
82299		return nil, err
82300	}
82301	return ret, nil
82302	// {
82303	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists. (== suppress_warning http-rest-shadowed ==)",
82304	//   "httpMethod": "GET",
82305	//   "id": "compute.instanceTemplates.getIamPolicy",
82306	//   "parameterOrder": [
82307	//     "project",
82308	//     "resource"
82309	//   ],
82310	//   "parameters": {
82311	//     "optionsRequestedPolicyVersion": {
82312	//       "description": "Requested IAM Policy version.",
82313	//       "format": "int32",
82314	//       "location": "query",
82315	//       "type": "integer"
82316	//     },
82317	//     "project": {
82318	//       "description": "Project ID for this request.",
82319	//       "location": "path",
82320	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
82321	//       "required": true,
82322	//       "type": "string"
82323	//     },
82324	//     "resource": {
82325	//       "description": "Name or id of the resource for this request.",
82326	//       "location": "path",
82327	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
82328	//       "required": true,
82329	//       "type": "string"
82330	//     }
82331	//   },
82332	//   "path": "{project}/global/instanceTemplates/{resource}/getIamPolicy",
82333	//   "response": {
82334	//     "$ref": "Policy"
82335	//   },
82336	//   "scopes": [
82337	//     "https://www.googleapis.com/auth/cloud-platform",
82338	//     "https://www.googleapis.com/auth/compute",
82339	//     "https://www.googleapis.com/auth/compute.readonly"
82340	//   ]
82341	// }
82342
82343}
82344
82345// method id "compute.instanceTemplates.insert":
82346
82347type InstanceTemplatesInsertCall struct {
82348	s                *Service
82349	project          string
82350	instancetemplate *InstanceTemplate
82351	urlParams_       gensupport.URLParams
82352	ctx_             context.Context
82353	header_          http.Header
82354}
82355
82356// Insert: Creates an instance template in the specified project using
82357// the data that is included in the request. If you are creating a new
82358// template to update an existing instance group, your new instance
82359// template must use the same network or, if applicable, the same
82360// subnetwork as the original template. (== suppress_warning
82361// http-rest-shadowed ==)
82362// For details, see https://cloud.google.com/compute/docs/reference/latest/instanceTemplates/insert
82363func (r *InstanceTemplatesService) Insert(project string, instancetemplate *InstanceTemplate) *InstanceTemplatesInsertCall {
82364	c := &InstanceTemplatesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
82365	c.project = project
82366	c.instancetemplate = instancetemplate
82367	return c
82368}
82369
82370// RequestId sets the optional parameter "requestId": An optional
82371// request ID to identify requests. Specify a unique request ID so that
82372// if you must retry your request, the server will know to ignore the
82373// request if it has already been completed.
82374//
82375// For example, consider a situation where you make an initial request
82376// and the request times out. If you make the request again with the
82377// same request ID, the server can check if original operation with the
82378// same request ID was received, and if so, will ignore the second
82379// request. This prevents clients from accidentally creating duplicate
82380// commitments.
82381//
82382// The request ID must be a valid UUID with the exception that zero UUID
82383// is not supported (00000000-0000-0000-0000-000000000000).
82384func (c *InstanceTemplatesInsertCall) RequestId(requestId string) *InstanceTemplatesInsertCall {
82385	c.urlParams_.Set("requestId", requestId)
82386	return c
82387}
82388
82389// Fields allows partial responses to be retrieved. See
82390// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
82391// for more information.
82392func (c *InstanceTemplatesInsertCall) Fields(s ...googleapi.Field) *InstanceTemplatesInsertCall {
82393	c.urlParams_.Set("fields", googleapi.CombineFields(s))
82394	return c
82395}
82396
82397// Context sets the context to be used in this call's Do method. Any
82398// pending HTTP request will be aborted if the provided context is
82399// canceled.
82400func (c *InstanceTemplatesInsertCall) Context(ctx context.Context) *InstanceTemplatesInsertCall {
82401	c.ctx_ = ctx
82402	return c
82403}
82404
82405// Header returns an http.Header that can be modified by the caller to
82406// add HTTP headers to the request.
82407func (c *InstanceTemplatesInsertCall) Header() http.Header {
82408	if c.header_ == nil {
82409		c.header_ = make(http.Header)
82410	}
82411	return c.header_
82412}
82413
82414func (c *InstanceTemplatesInsertCall) doRequest(alt string) (*http.Response, error) {
82415	reqHeaders := make(http.Header)
82416	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
82417	for k, v := range c.header_ {
82418		reqHeaders[k] = v
82419	}
82420	reqHeaders.Set("User-Agent", c.s.userAgent())
82421	var body io.Reader = nil
82422	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancetemplate)
82423	if err != nil {
82424		return nil, err
82425	}
82426	reqHeaders.Set("Content-Type", "application/json")
82427	c.urlParams_.Set("alt", alt)
82428	c.urlParams_.Set("prettyPrint", "false")
82429	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/instanceTemplates")
82430	urls += "?" + c.urlParams_.Encode()
82431	req, err := http.NewRequest("POST", urls, body)
82432	if err != nil {
82433		return nil, err
82434	}
82435	req.Header = reqHeaders
82436	googleapi.Expand(req.URL, map[string]string{
82437		"project": c.project,
82438	})
82439	return gensupport.SendRequest(c.ctx_, c.s.client, req)
82440}
82441
82442// Do executes the "compute.instanceTemplates.insert" call.
82443// Exactly one of *Operation or error will be non-nil. Any non-2xx
82444// status code is an error. Response headers are in either
82445// *Operation.ServerResponse.Header or (if a response was returned at
82446// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
82447// to check whether the returned error was because
82448// http.StatusNotModified was returned.
82449func (c *InstanceTemplatesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
82450	gensupport.SetOptions(c.urlParams_, opts...)
82451	res, err := c.doRequest("json")
82452	if res != nil && res.StatusCode == http.StatusNotModified {
82453		if res.Body != nil {
82454			res.Body.Close()
82455		}
82456		return nil, &googleapi.Error{
82457			Code:   res.StatusCode,
82458			Header: res.Header,
82459		}
82460	}
82461	if err != nil {
82462		return nil, err
82463	}
82464	defer googleapi.CloseBody(res)
82465	if err := googleapi.CheckResponse(res); err != nil {
82466		return nil, err
82467	}
82468	ret := &Operation{
82469		ServerResponse: googleapi.ServerResponse{
82470			Header:         res.Header,
82471			HTTPStatusCode: res.StatusCode,
82472		},
82473	}
82474	target := &ret
82475	if err := gensupport.DecodeResponse(target, res); err != nil {
82476		return nil, err
82477	}
82478	return ret, nil
82479	// {
82480	//   "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. (== suppress_warning http-rest-shadowed ==)",
82481	//   "httpMethod": "POST",
82482	//   "id": "compute.instanceTemplates.insert",
82483	//   "parameterOrder": [
82484	//     "project"
82485	//   ],
82486	//   "parameters": {
82487	//     "project": {
82488	//       "description": "Project ID for this request.",
82489	//       "location": "path",
82490	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
82491	//       "required": true,
82492	//       "type": "string"
82493	//     },
82494	//     "requestId": {
82495	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
82496	//       "location": "query",
82497	//       "type": "string"
82498	//     }
82499	//   },
82500	//   "path": "{project}/global/instanceTemplates",
82501	//   "request": {
82502	//     "$ref": "InstanceTemplate"
82503	//   },
82504	//   "response": {
82505	//     "$ref": "Operation"
82506	//   },
82507	//   "scopes": [
82508	//     "https://www.googleapis.com/auth/cloud-platform",
82509	//     "https://www.googleapis.com/auth/compute"
82510	//   ]
82511	// }
82512
82513}
82514
82515// method id "compute.instanceTemplates.list":
82516
82517type InstanceTemplatesListCall struct {
82518	s            *Service
82519	project      string
82520	urlParams_   gensupport.URLParams
82521	ifNoneMatch_ string
82522	ctx_         context.Context
82523	header_      http.Header
82524}
82525
82526// List: Retrieves a list of instance templates that are contained
82527// within the specified project. (== suppress_warning http-rest-shadowed
82528// ==)
82529// For details, see https://cloud.google.com/compute/docs/reference/latest/instanceTemplates/list
82530func (r *InstanceTemplatesService) List(project string) *InstanceTemplatesListCall {
82531	c := &InstanceTemplatesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
82532	c.project = project
82533	return c
82534}
82535
82536// Filter sets the optional parameter "filter": A filter expression that
82537// filters resources listed in the response. The expression must specify
82538// the field name, a comparison operator, and the value that you want to
82539// use for filtering. The value must be a string, a number, or a
82540// boolean. The comparison operator must be either =, !=, >, or <.
82541//
82542// For example, if you are filtering Compute Engine instances, you can
82543// exclude instances named example-instance by specifying name !=
82544// example-instance.
82545//
82546// You can also filter nested fields. For example, you could specify
82547// scheduling.automaticRestart = false to include instances only if they
82548// are not scheduled for automatic restarts. You can use filtering on
82549// nested fields to filter based on resource labels.
82550//
82551// To filter on multiple expressions, provide each separate expression
82552// within parentheses. For example, (scheduling.automaticRestart = true)
82553// (cpuPlatform = "Intel Skylake"). By default, each expression is an
82554// AND expression. However, you can include AND and OR expressions
82555// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
82556// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
82557// true).
82558func (c *InstanceTemplatesListCall) Filter(filter string) *InstanceTemplatesListCall {
82559	c.urlParams_.Set("filter", filter)
82560	return c
82561}
82562
82563// MaxResults sets the optional parameter "maxResults": The maximum
82564// number of results per page that should be returned. If the number of
82565// available results is larger than maxResults, Compute Engine returns a
82566// nextPageToken that can be used to get the next page of results in
82567// subsequent list requests. Acceptable values are 0 to 500, inclusive.
82568// (Default: 500)
82569func (c *InstanceTemplatesListCall) MaxResults(maxResults int64) *InstanceTemplatesListCall {
82570	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
82571	return c
82572}
82573
82574// OrderBy sets the optional parameter "orderBy": Sorts list results by
82575// a certain order. By default, results are returned in alphanumerical
82576// order based on the resource name.
82577//
82578// You can also sort results in descending order based on the creation
82579// timestamp using orderBy="creationTimestamp desc". This sorts results
82580// based on the creationTimestamp field in reverse chronological order
82581// (newest result first). Use this to sort resources like operations so
82582// that the newest operation is returned first.
82583//
82584// Currently, only sorting by name or creationTimestamp desc is
82585// supported.
82586func (c *InstanceTemplatesListCall) OrderBy(orderBy string) *InstanceTemplatesListCall {
82587	c.urlParams_.Set("orderBy", orderBy)
82588	return c
82589}
82590
82591// PageToken sets the optional parameter "pageToken": Specifies a page
82592// token to use. Set pageToken to the nextPageToken returned by a
82593// previous list request to get the next page of results.
82594func (c *InstanceTemplatesListCall) PageToken(pageToken string) *InstanceTemplatesListCall {
82595	c.urlParams_.Set("pageToken", pageToken)
82596	return c
82597}
82598
82599// Fields allows partial responses to be retrieved. See
82600// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
82601// for more information.
82602func (c *InstanceTemplatesListCall) Fields(s ...googleapi.Field) *InstanceTemplatesListCall {
82603	c.urlParams_.Set("fields", googleapi.CombineFields(s))
82604	return c
82605}
82606
82607// IfNoneMatch sets the optional parameter which makes the operation
82608// fail if the object's ETag matches the given value. This is useful for
82609// getting updates only after the object has changed since the last
82610// request. Use googleapi.IsNotModified to check whether the response
82611// error from Do is the result of In-None-Match.
82612func (c *InstanceTemplatesListCall) IfNoneMatch(entityTag string) *InstanceTemplatesListCall {
82613	c.ifNoneMatch_ = entityTag
82614	return c
82615}
82616
82617// Context sets the context to be used in this call's Do method. Any
82618// pending HTTP request will be aborted if the provided context is
82619// canceled.
82620func (c *InstanceTemplatesListCall) Context(ctx context.Context) *InstanceTemplatesListCall {
82621	c.ctx_ = ctx
82622	return c
82623}
82624
82625// Header returns an http.Header that can be modified by the caller to
82626// add HTTP headers to the request.
82627func (c *InstanceTemplatesListCall) Header() http.Header {
82628	if c.header_ == nil {
82629		c.header_ = make(http.Header)
82630	}
82631	return c.header_
82632}
82633
82634func (c *InstanceTemplatesListCall) doRequest(alt string) (*http.Response, error) {
82635	reqHeaders := make(http.Header)
82636	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
82637	for k, v := range c.header_ {
82638		reqHeaders[k] = v
82639	}
82640	reqHeaders.Set("User-Agent", c.s.userAgent())
82641	if c.ifNoneMatch_ != "" {
82642		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
82643	}
82644	var body io.Reader = nil
82645	c.urlParams_.Set("alt", alt)
82646	c.urlParams_.Set("prettyPrint", "false")
82647	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/instanceTemplates")
82648	urls += "?" + c.urlParams_.Encode()
82649	req, err := http.NewRequest("GET", urls, body)
82650	if err != nil {
82651		return nil, err
82652	}
82653	req.Header = reqHeaders
82654	googleapi.Expand(req.URL, map[string]string{
82655		"project": c.project,
82656	})
82657	return gensupport.SendRequest(c.ctx_, c.s.client, req)
82658}
82659
82660// Do executes the "compute.instanceTemplates.list" call.
82661// Exactly one of *InstanceTemplateList or error will be non-nil. Any
82662// non-2xx status code is an error. Response headers are in either
82663// *InstanceTemplateList.ServerResponse.Header or (if a response was
82664// returned at all) in error.(*googleapi.Error).Header. Use
82665// googleapi.IsNotModified to check whether the returned error was
82666// because http.StatusNotModified was returned.
82667func (c *InstanceTemplatesListCall) Do(opts ...googleapi.CallOption) (*InstanceTemplateList, error) {
82668	gensupport.SetOptions(c.urlParams_, opts...)
82669	res, err := c.doRequest("json")
82670	if res != nil && res.StatusCode == http.StatusNotModified {
82671		if res.Body != nil {
82672			res.Body.Close()
82673		}
82674		return nil, &googleapi.Error{
82675			Code:   res.StatusCode,
82676			Header: res.Header,
82677		}
82678	}
82679	if err != nil {
82680		return nil, err
82681	}
82682	defer googleapi.CloseBody(res)
82683	if err := googleapi.CheckResponse(res); err != nil {
82684		return nil, err
82685	}
82686	ret := &InstanceTemplateList{
82687		ServerResponse: googleapi.ServerResponse{
82688			Header:         res.Header,
82689			HTTPStatusCode: res.StatusCode,
82690		},
82691	}
82692	target := &ret
82693	if err := gensupport.DecodeResponse(target, res); err != nil {
82694		return nil, err
82695	}
82696	return ret, nil
82697	// {
82698	//   "description": "Retrieves a list of instance templates that are contained within the specified project. (== suppress_warning http-rest-shadowed ==)",
82699	//   "httpMethod": "GET",
82700	//   "id": "compute.instanceTemplates.list",
82701	//   "parameterOrder": [
82702	//     "project"
82703	//   ],
82704	//   "parameters": {
82705	//     "filter": {
82706	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
82707	//       "location": "query",
82708	//       "type": "string"
82709	//     },
82710	//     "maxResults": {
82711	//       "default": "500",
82712	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
82713	//       "format": "uint32",
82714	//       "location": "query",
82715	//       "minimum": "0",
82716	//       "type": "integer"
82717	//     },
82718	//     "orderBy": {
82719	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
82720	//       "location": "query",
82721	//       "type": "string"
82722	//     },
82723	//     "pageToken": {
82724	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
82725	//       "location": "query",
82726	//       "type": "string"
82727	//     },
82728	//     "project": {
82729	//       "description": "Project ID for this request.",
82730	//       "location": "path",
82731	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
82732	//       "required": true,
82733	//       "type": "string"
82734	//     }
82735	//   },
82736	//   "path": "{project}/global/instanceTemplates",
82737	//   "response": {
82738	//     "$ref": "InstanceTemplateList"
82739	//   },
82740	//   "scopes": [
82741	//     "https://www.googleapis.com/auth/cloud-platform",
82742	//     "https://www.googleapis.com/auth/compute",
82743	//     "https://www.googleapis.com/auth/compute.readonly"
82744	//   ]
82745	// }
82746
82747}
82748
82749// Pages invokes f for each page of results.
82750// A non-nil error returned from f will halt the iteration.
82751// The provided context supersedes any context provided to the Context method.
82752func (c *InstanceTemplatesListCall) Pages(ctx context.Context, f func(*InstanceTemplateList) error) error {
82753	c.ctx_ = ctx
82754	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
82755	for {
82756		x, err := c.Do()
82757		if err != nil {
82758			return err
82759		}
82760		if err := f(x); err != nil {
82761			return err
82762		}
82763		if x.NextPageToken == "" {
82764			return nil
82765		}
82766		c.PageToken(x.NextPageToken)
82767	}
82768}
82769
82770// method id "compute.instanceTemplates.setIamPolicy":
82771
82772type InstanceTemplatesSetIamPolicyCall struct {
82773	s                      *Service
82774	project                string
82775	resource               string
82776	globalsetpolicyrequest *GlobalSetPolicyRequest
82777	urlParams_             gensupport.URLParams
82778	ctx_                   context.Context
82779	header_                http.Header
82780}
82781
82782// SetIamPolicy: Sets the access control policy on the specified
82783// resource. Replaces any existing policy. (== suppress_warning
82784// http-rest-shadowed ==)
82785func (r *InstanceTemplatesService) SetIamPolicy(project string, resource string, globalsetpolicyrequest *GlobalSetPolicyRequest) *InstanceTemplatesSetIamPolicyCall {
82786	c := &InstanceTemplatesSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
82787	c.project = project
82788	c.resource = resource
82789	c.globalsetpolicyrequest = globalsetpolicyrequest
82790	return c
82791}
82792
82793// Fields allows partial responses to be retrieved. See
82794// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
82795// for more information.
82796func (c *InstanceTemplatesSetIamPolicyCall) Fields(s ...googleapi.Field) *InstanceTemplatesSetIamPolicyCall {
82797	c.urlParams_.Set("fields", googleapi.CombineFields(s))
82798	return c
82799}
82800
82801// Context sets the context to be used in this call's Do method. Any
82802// pending HTTP request will be aborted if the provided context is
82803// canceled.
82804func (c *InstanceTemplatesSetIamPolicyCall) Context(ctx context.Context) *InstanceTemplatesSetIamPolicyCall {
82805	c.ctx_ = ctx
82806	return c
82807}
82808
82809// Header returns an http.Header that can be modified by the caller to
82810// add HTTP headers to the request.
82811func (c *InstanceTemplatesSetIamPolicyCall) Header() http.Header {
82812	if c.header_ == nil {
82813		c.header_ = make(http.Header)
82814	}
82815	return c.header_
82816}
82817
82818func (c *InstanceTemplatesSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
82819	reqHeaders := make(http.Header)
82820	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
82821	for k, v := range c.header_ {
82822		reqHeaders[k] = v
82823	}
82824	reqHeaders.Set("User-Agent", c.s.userAgent())
82825	var body io.Reader = nil
82826	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetpolicyrequest)
82827	if err != nil {
82828		return nil, err
82829	}
82830	reqHeaders.Set("Content-Type", "application/json")
82831	c.urlParams_.Set("alt", alt)
82832	c.urlParams_.Set("prettyPrint", "false")
82833	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/instanceTemplates/{resource}/setIamPolicy")
82834	urls += "?" + c.urlParams_.Encode()
82835	req, err := http.NewRequest("POST", urls, body)
82836	if err != nil {
82837		return nil, err
82838	}
82839	req.Header = reqHeaders
82840	googleapi.Expand(req.URL, map[string]string{
82841		"project":  c.project,
82842		"resource": c.resource,
82843	})
82844	return gensupport.SendRequest(c.ctx_, c.s.client, req)
82845}
82846
82847// Do executes the "compute.instanceTemplates.setIamPolicy" call.
82848// Exactly one of *Policy or error will be non-nil. Any non-2xx status
82849// code is an error. Response headers are in either
82850// *Policy.ServerResponse.Header or (if a response was returned at all)
82851// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
82852// check whether the returned error was because http.StatusNotModified
82853// was returned.
82854func (c *InstanceTemplatesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
82855	gensupport.SetOptions(c.urlParams_, opts...)
82856	res, err := c.doRequest("json")
82857	if res != nil && res.StatusCode == http.StatusNotModified {
82858		if res.Body != nil {
82859			res.Body.Close()
82860		}
82861		return nil, &googleapi.Error{
82862			Code:   res.StatusCode,
82863			Header: res.Header,
82864		}
82865	}
82866	if err != nil {
82867		return nil, err
82868	}
82869	defer googleapi.CloseBody(res)
82870	if err := googleapi.CheckResponse(res); err != nil {
82871		return nil, err
82872	}
82873	ret := &Policy{
82874		ServerResponse: googleapi.ServerResponse{
82875			Header:         res.Header,
82876			HTTPStatusCode: res.StatusCode,
82877		},
82878	}
82879	target := &ret
82880	if err := gensupport.DecodeResponse(target, res); err != nil {
82881		return nil, err
82882	}
82883	return ret, nil
82884	// {
82885	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy. (== suppress_warning http-rest-shadowed ==)",
82886	//   "httpMethod": "POST",
82887	//   "id": "compute.instanceTemplates.setIamPolicy",
82888	//   "parameterOrder": [
82889	//     "project",
82890	//     "resource"
82891	//   ],
82892	//   "parameters": {
82893	//     "project": {
82894	//       "description": "Project ID for this request.",
82895	//       "location": "path",
82896	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
82897	//       "required": true,
82898	//       "type": "string"
82899	//     },
82900	//     "resource": {
82901	//       "description": "Name or id of the resource for this request.",
82902	//       "location": "path",
82903	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
82904	//       "required": true,
82905	//       "type": "string"
82906	//     }
82907	//   },
82908	//   "path": "{project}/global/instanceTemplates/{resource}/setIamPolicy",
82909	//   "request": {
82910	//     "$ref": "GlobalSetPolicyRequest"
82911	//   },
82912	//   "response": {
82913	//     "$ref": "Policy"
82914	//   },
82915	//   "scopes": [
82916	//     "https://www.googleapis.com/auth/cloud-platform",
82917	//     "https://www.googleapis.com/auth/compute"
82918	//   ]
82919	// }
82920
82921}
82922
82923// method id "compute.instanceTemplates.testIamPermissions":
82924
82925type InstanceTemplatesTestIamPermissionsCall struct {
82926	s                      *Service
82927	project                string
82928	resource               string
82929	testpermissionsrequest *TestPermissionsRequest
82930	urlParams_             gensupport.URLParams
82931	ctx_                   context.Context
82932	header_                http.Header
82933}
82934
82935// TestIamPermissions: Returns permissions that a caller has on the
82936// specified resource. (== suppress_warning http-rest-shadowed ==)
82937func (r *InstanceTemplatesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *InstanceTemplatesTestIamPermissionsCall {
82938	c := &InstanceTemplatesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
82939	c.project = project
82940	c.resource = resource
82941	c.testpermissionsrequest = testpermissionsrequest
82942	return c
82943}
82944
82945// Fields allows partial responses to be retrieved. See
82946// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
82947// for more information.
82948func (c *InstanceTemplatesTestIamPermissionsCall) Fields(s ...googleapi.Field) *InstanceTemplatesTestIamPermissionsCall {
82949	c.urlParams_.Set("fields", googleapi.CombineFields(s))
82950	return c
82951}
82952
82953// Context sets the context to be used in this call's Do method. Any
82954// pending HTTP request will be aborted if the provided context is
82955// canceled.
82956func (c *InstanceTemplatesTestIamPermissionsCall) Context(ctx context.Context) *InstanceTemplatesTestIamPermissionsCall {
82957	c.ctx_ = ctx
82958	return c
82959}
82960
82961// Header returns an http.Header that can be modified by the caller to
82962// add HTTP headers to the request.
82963func (c *InstanceTemplatesTestIamPermissionsCall) Header() http.Header {
82964	if c.header_ == nil {
82965		c.header_ = make(http.Header)
82966	}
82967	return c.header_
82968}
82969
82970func (c *InstanceTemplatesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
82971	reqHeaders := make(http.Header)
82972	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
82973	for k, v := range c.header_ {
82974		reqHeaders[k] = v
82975	}
82976	reqHeaders.Set("User-Agent", c.s.userAgent())
82977	var body io.Reader = nil
82978	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
82979	if err != nil {
82980		return nil, err
82981	}
82982	reqHeaders.Set("Content-Type", "application/json")
82983	c.urlParams_.Set("alt", alt)
82984	c.urlParams_.Set("prettyPrint", "false")
82985	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/instanceTemplates/{resource}/testIamPermissions")
82986	urls += "?" + c.urlParams_.Encode()
82987	req, err := http.NewRequest("POST", urls, body)
82988	if err != nil {
82989		return nil, err
82990	}
82991	req.Header = reqHeaders
82992	googleapi.Expand(req.URL, map[string]string{
82993		"project":  c.project,
82994		"resource": c.resource,
82995	})
82996	return gensupport.SendRequest(c.ctx_, c.s.client, req)
82997}
82998
82999// Do executes the "compute.instanceTemplates.testIamPermissions" call.
83000// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
83001// non-2xx status code is an error. Response headers are in either
83002// *TestPermissionsResponse.ServerResponse.Header or (if a response was
83003// returned at all) in error.(*googleapi.Error).Header. Use
83004// googleapi.IsNotModified to check whether the returned error was
83005// because http.StatusNotModified was returned.
83006func (c *InstanceTemplatesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
83007	gensupport.SetOptions(c.urlParams_, opts...)
83008	res, err := c.doRequest("json")
83009	if res != nil && res.StatusCode == http.StatusNotModified {
83010		if res.Body != nil {
83011			res.Body.Close()
83012		}
83013		return nil, &googleapi.Error{
83014			Code:   res.StatusCode,
83015			Header: res.Header,
83016		}
83017	}
83018	if err != nil {
83019		return nil, err
83020	}
83021	defer googleapi.CloseBody(res)
83022	if err := googleapi.CheckResponse(res); err != nil {
83023		return nil, err
83024	}
83025	ret := &TestPermissionsResponse{
83026		ServerResponse: googleapi.ServerResponse{
83027			Header:         res.Header,
83028			HTTPStatusCode: res.StatusCode,
83029		},
83030	}
83031	target := &ret
83032	if err := gensupport.DecodeResponse(target, res); err != nil {
83033		return nil, err
83034	}
83035	return ret, nil
83036	// {
83037	//   "description": "Returns permissions that a caller has on the specified resource. (== suppress_warning http-rest-shadowed ==)",
83038	//   "httpMethod": "POST",
83039	//   "id": "compute.instanceTemplates.testIamPermissions",
83040	//   "parameterOrder": [
83041	//     "project",
83042	//     "resource"
83043	//   ],
83044	//   "parameters": {
83045	//     "project": {
83046	//       "description": "Project ID for this request.",
83047	//       "location": "path",
83048	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
83049	//       "required": true,
83050	//       "type": "string"
83051	//     },
83052	//     "resource": {
83053	//       "description": "Name or id of the resource for this request.",
83054	//       "location": "path",
83055	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
83056	//       "required": true,
83057	//       "type": "string"
83058	//     }
83059	//   },
83060	//   "path": "{project}/global/instanceTemplates/{resource}/testIamPermissions",
83061	//   "request": {
83062	//     "$ref": "TestPermissionsRequest"
83063	//   },
83064	//   "response": {
83065	//     "$ref": "TestPermissionsResponse"
83066	//   },
83067	//   "scopes": [
83068	//     "https://www.googleapis.com/auth/cloud-platform",
83069	//     "https://www.googleapis.com/auth/compute",
83070	//     "https://www.googleapis.com/auth/compute.readonly"
83071	//   ]
83072	// }
83073
83074}
83075
83076// method id "compute.instances.addAccessConfig":
83077
83078type InstancesAddAccessConfigCall struct {
83079	s            *Service
83080	project      string
83081	zone         string
83082	instance     string
83083	accessconfig *AccessConfig
83084	urlParams_   gensupport.URLParams
83085	ctx_         context.Context
83086	header_      http.Header
83087}
83088
83089// AddAccessConfig: Adds an access config to an instance's network
83090// interface. (== suppress_warning http-rest-shadowed ==)
83091// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/addAccessConfig
83092func (r *InstancesService) AddAccessConfig(project string, zone string, instance string, networkInterface string, accessconfig *AccessConfig) *InstancesAddAccessConfigCall {
83093	c := &InstancesAddAccessConfigCall{s: r.s, urlParams_: make(gensupport.URLParams)}
83094	c.project = project
83095	c.zone = zone
83096	c.instance = instance
83097	c.urlParams_.Set("networkInterface", networkInterface)
83098	c.accessconfig = accessconfig
83099	return c
83100}
83101
83102// RequestId sets the optional parameter "requestId": An optional
83103// request ID to identify requests. Specify a unique request ID so that
83104// if you must retry your request, the server will know to ignore the
83105// request if it has already been completed.
83106//
83107// For example, consider a situation where you make an initial request
83108// and the request times out. If you make the request again with the
83109// same request ID, the server can check if original operation with the
83110// same request ID was received, and if so, will ignore the second
83111// request. This prevents clients from accidentally creating duplicate
83112// commitments.
83113//
83114// The request ID must be a valid UUID with the exception that zero UUID
83115// is not supported (00000000-0000-0000-0000-000000000000).
83116func (c *InstancesAddAccessConfigCall) RequestId(requestId string) *InstancesAddAccessConfigCall {
83117	c.urlParams_.Set("requestId", requestId)
83118	return c
83119}
83120
83121// Fields allows partial responses to be retrieved. See
83122// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
83123// for more information.
83124func (c *InstancesAddAccessConfigCall) Fields(s ...googleapi.Field) *InstancesAddAccessConfigCall {
83125	c.urlParams_.Set("fields", googleapi.CombineFields(s))
83126	return c
83127}
83128
83129// Context sets the context to be used in this call's Do method. Any
83130// pending HTTP request will be aborted if the provided context is
83131// canceled.
83132func (c *InstancesAddAccessConfigCall) Context(ctx context.Context) *InstancesAddAccessConfigCall {
83133	c.ctx_ = ctx
83134	return c
83135}
83136
83137// Header returns an http.Header that can be modified by the caller to
83138// add HTTP headers to the request.
83139func (c *InstancesAddAccessConfigCall) Header() http.Header {
83140	if c.header_ == nil {
83141		c.header_ = make(http.Header)
83142	}
83143	return c.header_
83144}
83145
83146func (c *InstancesAddAccessConfigCall) doRequest(alt string) (*http.Response, error) {
83147	reqHeaders := make(http.Header)
83148	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
83149	for k, v := range c.header_ {
83150		reqHeaders[k] = v
83151	}
83152	reqHeaders.Set("User-Agent", c.s.userAgent())
83153	var body io.Reader = nil
83154	body, err := googleapi.WithoutDataWrapper.JSONReader(c.accessconfig)
83155	if err != nil {
83156		return nil, err
83157	}
83158	reqHeaders.Set("Content-Type", "application/json")
83159	c.urlParams_.Set("alt", alt)
83160	c.urlParams_.Set("prettyPrint", "false")
83161	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/addAccessConfig")
83162	urls += "?" + c.urlParams_.Encode()
83163	req, err := http.NewRequest("POST", urls, body)
83164	if err != nil {
83165		return nil, err
83166	}
83167	req.Header = reqHeaders
83168	googleapi.Expand(req.URL, map[string]string{
83169		"project":  c.project,
83170		"zone":     c.zone,
83171		"instance": c.instance,
83172	})
83173	return gensupport.SendRequest(c.ctx_, c.s.client, req)
83174}
83175
83176// Do executes the "compute.instances.addAccessConfig" call.
83177// Exactly one of *Operation or error will be non-nil. Any non-2xx
83178// status code is an error. Response headers are in either
83179// *Operation.ServerResponse.Header or (if a response was returned at
83180// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
83181// to check whether the returned error was because
83182// http.StatusNotModified was returned.
83183func (c *InstancesAddAccessConfigCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
83184	gensupport.SetOptions(c.urlParams_, opts...)
83185	res, err := c.doRequest("json")
83186	if res != nil && res.StatusCode == http.StatusNotModified {
83187		if res.Body != nil {
83188			res.Body.Close()
83189		}
83190		return nil, &googleapi.Error{
83191			Code:   res.StatusCode,
83192			Header: res.Header,
83193		}
83194	}
83195	if err != nil {
83196		return nil, err
83197	}
83198	defer googleapi.CloseBody(res)
83199	if err := googleapi.CheckResponse(res); err != nil {
83200		return nil, err
83201	}
83202	ret := &Operation{
83203		ServerResponse: googleapi.ServerResponse{
83204			Header:         res.Header,
83205			HTTPStatusCode: res.StatusCode,
83206		},
83207	}
83208	target := &ret
83209	if err := gensupport.DecodeResponse(target, res); err != nil {
83210		return nil, err
83211	}
83212	return ret, nil
83213	// {
83214	//   "description": "Adds an access config to an instance's network interface. (== suppress_warning http-rest-shadowed ==)",
83215	//   "httpMethod": "POST",
83216	//   "id": "compute.instances.addAccessConfig",
83217	//   "parameterOrder": [
83218	//     "project",
83219	//     "zone",
83220	//     "instance",
83221	//     "networkInterface"
83222	//   ],
83223	//   "parameters": {
83224	//     "instance": {
83225	//       "description": "The instance name for this request.",
83226	//       "location": "path",
83227	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
83228	//       "required": true,
83229	//       "type": "string"
83230	//     },
83231	//     "networkInterface": {
83232	//       "description": "The name of the network interface to add to this instance.",
83233	//       "location": "query",
83234	//       "required": true,
83235	//       "type": "string"
83236	//     },
83237	//     "project": {
83238	//       "description": "Project ID for this request.",
83239	//       "location": "path",
83240	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
83241	//       "required": true,
83242	//       "type": "string"
83243	//     },
83244	//     "requestId": {
83245	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
83246	//       "location": "query",
83247	//       "type": "string"
83248	//     },
83249	//     "zone": {
83250	//       "description": "The name of the zone for this request.",
83251	//       "location": "path",
83252	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
83253	//       "required": true,
83254	//       "type": "string"
83255	//     }
83256	//   },
83257	//   "path": "{project}/zones/{zone}/instances/{instance}/addAccessConfig",
83258	//   "request": {
83259	//     "$ref": "AccessConfig"
83260	//   },
83261	//   "response": {
83262	//     "$ref": "Operation"
83263	//   },
83264	//   "scopes": [
83265	//     "https://www.googleapis.com/auth/cloud-platform",
83266	//     "https://www.googleapis.com/auth/compute"
83267	//   ]
83268	// }
83269
83270}
83271
83272// method id "compute.instances.addResourcePolicies":
83273
83274type InstancesAddResourcePoliciesCall struct {
83275	s                                   *Service
83276	project                             string
83277	zone                                string
83278	instance                            string
83279	instancesaddresourcepoliciesrequest *InstancesAddResourcePoliciesRequest
83280	urlParams_                          gensupport.URLParams
83281	ctx_                                context.Context
83282	header_                             http.Header
83283}
83284
83285// AddResourcePolicies: Adds existing resource policies to an instance.
83286// You can only add one policy right now which will be applied to this
83287// instance for scheduling live migrations. (== suppress_warning
83288// http-rest-shadowed ==)
83289func (r *InstancesService) AddResourcePolicies(project string, zone string, instance string, instancesaddresourcepoliciesrequest *InstancesAddResourcePoliciesRequest) *InstancesAddResourcePoliciesCall {
83290	c := &InstancesAddResourcePoliciesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
83291	c.project = project
83292	c.zone = zone
83293	c.instance = instance
83294	c.instancesaddresourcepoliciesrequest = instancesaddresourcepoliciesrequest
83295	return c
83296}
83297
83298// RequestId sets the optional parameter "requestId": An optional
83299// request ID to identify requests. Specify a unique request ID so that
83300// if you must retry your request, the server will know to ignore the
83301// request if it has already been completed.
83302//
83303// For example, consider a situation where you make an initial request
83304// and the request times out. If you make the request again with the
83305// same request ID, the server can check if original operation with the
83306// same request ID was received, and if so, will ignore the second
83307// request. This prevents clients from accidentally creating duplicate
83308// commitments.
83309//
83310// The request ID must be a valid UUID with the exception that zero UUID
83311// is not supported (00000000-0000-0000-0000-000000000000).
83312func (c *InstancesAddResourcePoliciesCall) RequestId(requestId string) *InstancesAddResourcePoliciesCall {
83313	c.urlParams_.Set("requestId", requestId)
83314	return c
83315}
83316
83317// Fields allows partial responses to be retrieved. See
83318// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
83319// for more information.
83320func (c *InstancesAddResourcePoliciesCall) Fields(s ...googleapi.Field) *InstancesAddResourcePoliciesCall {
83321	c.urlParams_.Set("fields", googleapi.CombineFields(s))
83322	return c
83323}
83324
83325// Context sets the context to be used in this call's Do method. Any
83326// pending HTTP request will be aborted if the provided context is
83327// canceled.
83328func (c *InstancesAddResourcePoliciesCall) Context(ctx context.Context) *InstancesAddResourcePoliciesCall {
83329	c.ctx_ = ctx
83330	return c
83331}
83332
83333// Header returns an http.Header that can be modified by the caller to
83334// add HTTP headers to the request.
83335func (c *InstancesAddResourcePoliciesCall) Header() http.Header {
83336	if c.header_ == nil {
83337		c.header_ = make(http.Header)
83338	}
83339	return c.header_
83340}
83341
83342func (c *InstancesAddResourcePoliciesCall) doRequest(alt string) (*http.Response, error) {
83343	reqHeaders := make(http.Header)
83344	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
83345	for k, v := range c.header_ {
83346		reqHeaders[k] = v
83347	}
83348	reqHeaders.Set("User-Agent", c.s.userAgent())
83349	var body io.Reader = nil
83350	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancesaddresourcepoliciesrequest)
83351	if err != nil {
83352		return nil, err
83353	}
83354	reqHeaders.Set("Content-Type", "application/json")
83355	c.urlParams_.Set("alt", alt)
83356	c.urlParams_.Set("prettyPrint", "false")
83357	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/addResourcePolicies")
83358	urls += "?" + c.urlParams_.Encode()
83359	req, err := http.NewRequest("POST", urls, body)
83360	if err != nil {
83361		return nil, err
83362	}
83363	req.Header = reqHeaders
83364	googleapi.Expand(req.URL, map[string]string{
83365		"project":  c.project,
83366		"zone":     c.zone,
83367		"instance": c.instance,
83368	})
83369	return gensupport.SendRequest(c.ctx_, c.s.client, req)
83370}
83371
83372// Do executes the "compute.instances.addResourcePolicies" call.
83373// Exactly one of *Operation or error will be non-nil. Any non-2xx
83374// status code is an error. Response headers are in either
83375// *Operation.ServerResponse.Header or (if a response was returned at
83376// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
83377// to check whether the returned error was because
83378// http.StatusNotModified was returned.
83379func (c *InstancesAddResourcePoliciesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
83380	gensupport.SetOptions(c.urlParams_, opts...)
83381	res, err := c.doRequest("json")
83382	if res != nil && res.StatusCode == http.StatusNotModified {
83383		if res.Body != nil {
83384			res.Body.Close()
83385		}
83386		return nil, &googleapi.Error{
83387			Code:   res.StatusCode,
83388			Header: res.Header,
83389		}
83390	}
83391	if err != nil {
83392		return nil, err
83393	}
83394	defer googleapi.CloseBody(res)
83395	if err := googleapi.CheckResponse(res); err != nil {
83396		return nil, err
83397	}
83398	ret := &Operation{
83399		ServerResponse: googleapi.ServerResponse{
83400			Header:         res.Header,
83401			HTTPStatusCode: res.StatusCode,
83402		},
83403	}
83404	target := &ret
83405	if err := gensupport.DecodeResponse(target, res); err != nil {
83406		return nil, err
83407	}
83408	return ret, nil
83409	// {
83410	//   "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. (== suppress_warning http-rest-shadowed ==)",
83411	//   "httpMethod": "POST",
83412	//   "id": "compute.instances.addResourcePolicies",
83413	//   "parameterOrder": [
83414	//     "project",
83415	//     "zone",
83416	//     "instance"
83417	//   ],
83418	//   "parameters": {
83419	//     "instance": {
83420	//       "description": "The instance name for this request.",
83421	//       "location": "path",
83422	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
83423	//       "required": true,
83424	//       "type": "string"
83425	//     },
83426	//     "project": {
83427	//       "description": "Project ID for this request.",
83428	//       "location": "path",
83429	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
83430	//       "required": true,
83431	//       "type": "string"
83432	//     },
83433	//     "requestId": {
83434	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
83435	//       "location": "query",
83436	//       "type": "string"
83437	//     },
83438	//     "zone": {
83439	//       "description": "The name of the zone for this request.",
83440	//       "location": "path",
83441	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
83442	//       "required": true,
83443	//       "type": "string"
83444	//     }
83445	//   },
83446	//   "path": "{project}/zones/{zone}/instances/{instance}/addResourcePolicies",
83447	//   "request": {
83448	//     "$ref": "InstancesAddResourcePoliciesRequest"
83449	//   },
83450	//   "response": {
83451	//     "$ref": "Operation"
83452	//   },
83453	//   "scopes": [
83454	//     "https://www.googleapis.com/auth/cloud-platform",
83455	//     "https://www.googleapis.com/auth/compute"
83456	//   ]
83457	// }
83458
83459}
83460
83461// method id "compute.instances.aggregatedList":
83462
83463type InstancesAggregatedListCall struct {
83464	s            *Service
83465	project      string
83466	urlParams_   gensupport.URLParams
83467	ifNoneMatch_ string
83468	ctx_         context.Context
83469	header_      http.Header
83470}
83471
83472// AggregatedList: Retrieves aggregated list of all of the instances in
83473// your project across all regions and zones. (== suppress_warning
83474// http-rest-shadowed ==)
83475// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/aggregatedList
83476func (r *InstancesService) AggregatedList(project string) *InstancesAggregatedListCall {
83477	c := &InstancesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
83478	c.project = project
83479	return c
83480}
83481
83482// Filter sets the optional parameter "filter": A filter expression that
83483// filters resources listed in the response. The expression must specify
83484// the field name, a comparison operator, and the value that you want to
83485// use for filtering. The value must be a string, a number, or a
83486// boolean. The comparison operator must be either =, !=, >, or <.
83487//
83488// For example, if you are filtering Compute Engine instances, you can
83489// exclude instances named example-instance by specifying name !=
83490// example-instance.
83491//
83492// You can also filter nested fields. For example, you could specify
83493// scheduling.automaticRestart = false to include instances only if they
83494// are not scheduled for automatic restarts. You can use filtering on
83495// nested fields to filter based on resource labels.
83496//
83497// To filter on multiple expressions, provide each separate expression
83498// within parentheses. For example, (scheduling.automaticRestart = true)
83499// (cpuPlatform = "Intel Skylake"). By default, each expression is an
83500// AND expression. However, you can include AND and OR expressions
83501// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
83502// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
83503// true).
83504func (c *InstancesAggregatedListCall) Filter(filter string) *InstancesAggregatedListCall {
83505	c.urlParams_.Set("filter", filter)
83506	return c
83507}
83508
83509// MaxResults sets the optional parameter "maxResults": The maximum
83510// number of results per page that should be returned. If the number of
83511// available results is larger than maxResults, Compute Engine returns a
83512// nextPageToken that can be used to get the next page of results in
83513// subsequent list requests. Acceptable values are 0 to 500, inclusive.
83514// (Default: 500)
83515func (c *InstancesAggregatedListCall) MaxResults(maxResults int64) *InstancesAggregatedListCall {
83516	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
83517	return c
83518}
83519
83520// OrderBy sets the optional parameter "orderBy": Sorts list results by
83521// a certain order. By default, results are returned in alphanumerical
83522// order based on the resource name.
83523//
83524// You can also sort results in descending order based on the creation
83525// timestamp using orderBy="creationTimestamp desc". This sorts results
83526// based on the creationTimestamp field in reverse chronological order
83527// (newest result first). Use this to sort resources like operations so
83528// that the newest operation is returned first.
83529//
83530// Currently, only sorting by name or creationTimestamp desc is
83531// supported.
83532func (c *InstancesAggregatedListCall) OrderBy(orderBy string) *InstancesAggregatedListCall {
83533	c.urlParams_.Set("orderBy", orderBy)
83534	return c
83535}
83536
83537// PageToken sets the optional parameter "pageToken": Specifies a page
83538// token to use. Set pageToken to the nextPageToken returned by a
83539// previous list request to get the next page of results.
83540func (c *InstancesAggregatedListCall) PageToken(pageToken string) *InstancesAggregatedListCall {
83541	c.urlParams_.Set("pageToken", pageToken)
83542	return c
83543}
83544
83545// Fields allows partial responses to be retrieved. See
83546// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
83547// for more information.
83548func (c *InstancesAggregatedListCall) Fields(s ...googleapi.Field) *InstancesAggregatedListCall {
83549	c.urlParams_.Set("fields", googleapi.CombineFields(s))
83550	return c
83551}
83552
83553// IfNoneMatch sets the optional parameter which makes the operation
83554// fail if the object's ETag matches the given value. This is useful for
83555// getting updates only after the object has changed since the last
83556// request. Use googleapi.IsNotModified to check whether the response
83557// error from Do is the result of In-None-Match.
83558func (c *InstancesAggregatedListCall) IfNoneMatch(entityTag string) *InstancesAggregatedListCall {
83559	c.ifNoneMatch_ = entityTag
83560	return c
83561}
83562
83563// Context sets the context to be used in this call's Do method. Any
83564// pending HTTP request will be aborted if the provided context is
83565// canceled.
83566func (c *InstancesAggregatedListCall) Context(ctx context.Context) *InstancesAggregatedListCall {
83567	c.ctx_ = ctx
83568	return c
83569}
83570
83571// Header returns an http.Header that can be modified by the caller to
83572// add HTTP headers to the request.
83573func (c *InstancesAggregatedListCall) Header() http.Header {
83574	if c.header_ == nil {
83575		c.header_ = make(http.Header)
83576	}
83577	return c.header_
83578}
83579
83580func (c *InstancesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
83581	reqHeaders := make(http.Header)
83582	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
83583	for k, v := range c.header_ {
83584		reqHeaders[k] = v
83585	}
83586	reqHeaders.Set("User-Agent", c.s.userAgent())
83587	if c.ifNoneMatch_ != "" {
83588		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
83589	}
83590	var body io.Reader = nil
83591	c.urlParams_.Set("alt", alt)
83592	c.urlParams_.Set("prettyPrint", "false")
83593	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/instances")
83594	urls += "?" + c.urlParams_.Encode()
83595	req, err := http.NewRequest("GET", urls, body)
83596	if err != nil {
83597		return nil, err
83598	}
83599	req.Header = reqHeaders
83600	googleapi.Expand(req.URL, map[string]string{
83601		"project": c.project,
83602	})
83603	return gensupport.SendRequest(c.ctx_, c.s.client, req)
83604}
83605
83606// Do executes the "compute.instances.aggregatedList" call.
83607// Exactly one of *InstanceAggregatedList or error will be non-nil. Any
83608// non-2xx status code is an error. Response headers are in either
83609// *InstanceAggregatedList.ServerResponse.Header or (if a response was
83610// returned at all) in error.(*googleapi.Error).Header. Use
83611// googleapi.IsNotModified to check whether the returned error was
83612// because http.StatusNotModified was returned.
83613func (c *InstancesAggregatedListCall) Do(opts ...googleapi.CallOption) (*InstanceAggregatedList, error) {
83614	gensupport.SetOptions(c.urlParams_, opts...)
83615	res, err := c.doRequest("json")
83616	if res != nil && res.StatusCode == http.StatusNotModified {
83617		if res.Body != nil {
83618			res.Body.Close()
83619		}
83620		return nil, &googleapi.Error{
83621			Code:   res.StatusCode,
83622			Header: res.Header,
83623		}
83624	}
83625	if err != nil {
83626		return nil, err
83627	}
83628	defer googleapi.CloseBody(res)
83629	if err := googleapi.CheckResponse(res); err != nil {
83630		return nil, err
83631	}
83632	ret := &InstanceAggregatedList{
83633		ServerResponse: googleapi.ServerResponse{
83634			Header:         res.Header,
83635			HTTPStatusCode: res.StatusCode,
83636		},
83637	}
83638	target := &ret
83639	if err := gensupport.DecodeResponse(target, res); err != nil {
83640		return nil, err
83641	}
83642	return ret, nil
83643	// {
83644	//   "description": "Retrieves aggregated list of all of the instances in your project across all regions and zones. (== suppress_warning http-rest-shadowed ==)",
83645	//   "httpMethod": "GET",
83646	//   "id": "compute.instances.aggregatedList",
83647	//   "parameterOrder": [
83648	//     "project"
83649	//   ],
83650	//   "parameters": {
83651	//     "filter": {
83652	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
83653	//       "location": "query",
83654	//       "type": "string"
83655	//     },
83656	//     "maxResults": {
83657	//       "default": "500",
83658	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
83659	//       "format": "uint32",
83660	//       "location": "query",
83661	//       "minimum": "0",
83662	//       "type": "integer"
83663	//     },
83664	//     "orderBy": {
83665	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
83666	//       "location": "query",
83667	//       "type": "string"
83668	//     },
83669	//     "pageToken": {
83670	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
83671	//       "location": "query",
83672	//       "type": "string"
83673	//     },
83674	//     "project": {
83675	//       "description": "Project ID for this request.",
83676	//       "location": "path",
83677	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
83678	//       "required": true,
83679	//       "type": "string"
83680	//     }
83681	//   },
83682	//   "path": "{project}/aggregated/instances",
83683	//   "response": {
83684	//     "$ref": "InstanceAggregatedList"
83685	//   },
83686	//   "scopes": [
83687	//     "https://www.googleapis.com/auth/cloud-platform",
83688	//     "https://www.googleapis.com/auth/compute",
83689	//     "https://www.googleapis.com/auth/compute.readonly"
83690	//   ]
83691	// }
83692
83693}
83694
83695// Pages invokes f for each page of results.
83696// A non-nil error returned from f will halt the iteration.
83697// The provided context supersedes any context provided to the Context method.
83698func (c *InstancesAggregatedListCall) Pages(ctx context.Context, f func(*InstanceAggregatedList) error) error {
83699	c.ctx_ = ctx
83700	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
83701	for {
83702		x, err := c.Do()
83703		if err != nil {
83704			return err
83705		}
83706		if err := f(x); err != nil {
83707			return err
83708		}
83709		if x.NextPageToken == "" {
83710			return nil
83711		}
83712		c.PageToken(x.NextPageToken)
83713	}
83714}
83715
83716// method id "compute.instances.attachDisk":
83717
83718type InstancesAttachDiskCall struct {
83719	s            *Service
83720	project      string
83721	zone         string
83722	instance     string
83723	attacheddisk *AttachedDisk
83724	urlParams_   gensupport.URLParams
83725	ctx_         context.Context
83726	header_      http.Header
83727}
83728
83729// AttachDisk: Attaches an existing Disk resource to an instance. You
83730// must first create the disk before you can attach it. It is not
83731// possible to create and attach a disk at the same time. For more
83732// information, read Adding a persistent disk to your instance. (==
83733// suppress_warning http-rest-shadowed ==)
83734// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/attachDisk
83735func (r *InstancesService) AttachDisk(project string, zone string, instance string, attacheddisk *AttachedDisk) *InstancesAttachDiskCall {
83736	c := &InstancesAttachDiskCall{s: r.s, urlParams_: make(gensupport.URLParams)}
83737	c.project = project
83738	c.zone = zone
83739	c.instance = instance
83740	c.attacheddisk = attacheddisk
83741	return c
83742}
83743
83744// ForceAttach sets the optional parameter "forceAttach": Whether to
83745// force attach the disk even if it's currently attached to another
83746// instance.
83747func (c *InstancesAttachDiskCall) ForceAttach(forceAttach bool) *InstancesAttachDiskCall {
83748	c.urlParams_.Set("forceAttach", fmt.Sprint(forceAttach))
83749	return c
83750}
83751
83752// RequestId sets the optional parameter "requestId": An optional
83753// request ID to identify requests. Specify a unique request ID so that
83754// if you must retry your request, the server will know to ignore the
83755// request if it has already been completed.
83756//
83757// For example, consider a situation where you make an initial request
83758// and the request times out. If you make the request again with the
83759// same request ID, the server can check if original operation with the
83760// same request ID was received, and if so, will ignore the second
83761// request. This prevents clients from accidentally creating duplicate
83762// commitments.
83763//
83764// The request ID must be a valid UUID with the exception that zero UUID
83765// is not supported (00000000-0000-0000-0000-000000000000).
83766func (c *InstancesAttachDiskCall) RequestId(requestId string) *InstancesAttachDiskCall {
83767	c.urlParams_.Set("requestId", requestId)
83768	return c
83769}
83770
83771// Fields allows partial responses to be retrieved. See
83772// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
83773// for more information.
83774func (c *InstancesAttachDiskCall) Fields(s ...googleapi.Field) *InstancesAttachDiskCall {
83775	c.urlParams_.Set("fields", googleapi.CombineFields(s))
83776	return c
83777}
83778
83779// Context sets the context to be used in this call's Do method. Any
83780// pending HTTP request will be aborted if the provided context is
83781// canceled.
83782func (c *InstancesAttachDiskCall) Context(ctx context.Context) *InstancesAttachDiskCall {
83783	c.ctx_ = ctx
83784	return c
83785}
83786
83787// Header returns an http.Header that can be modified by the caller to
83788// add HTTP headers to the request.
83789func (c *InstancesAttachDiskCall) Header() http.Header {
83790	if c.header_ == nil {
83791		c.header_ = make(http.Header)
83792	}
83793	return c.header_
83794}
83795
83796func (c *InstancesAttachDiskCall) doRequest(alt string) (*http.Response, error) {
83797	reqHeaders := make(http.Header)
83798	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
83799	for k, v := range c.header_ {
83800		reqHeaders[k] = v
83801	}
83802	reqHeaders.Set("User-Agent", c.s.userAgent())
83803	var body io.Reader = nil
83804	body, err := googleapi.WithoutDataWrapper.JSONReader(c.attacheddisk)
83805	if err != nil {
83806		return nil, err
83807	}
83808	reqHeaders.Set("Content-Type", "application/json")
83809	c.urlParams_.Set("alt", alt)
83810	c.urlParams_.Set("prettyPrint", "false")
83811	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/attachDisk")
83812	urls += "?" + c.urlParams_.Encode()
83813	req, err := http.NewRequest("POST", urls, body)
83814	if err != nil {
83815		return nil, err
83816	}
83817	req.Header = reqHeaders
83818	googleapi.Expand(req.URL, map[string]string{
83819		"project":  c.project,
83820		"zone":     c.zone,
83821		"instance": c.instance,
83822	})
83823	return gensupport.SendRequest(c.ctx_, c.s.client, req)
83824}
83825
83826// Do executes the "compute.instances.attachDisk" call.
83827// Exactly one of *Operation or error will be non-nil. Any non-2xx
83828// status code is an error. Response headers are in either
83829// *Operation.ServerResponse.Header or (if a response was returned at
83830// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
83831// to check whether the returned error was because
83832// http.StatusNotModified was returned.
83833func (c *InstancesAttachDiskCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
83834	gensupport.SetOptions(c.urlParams_, opts...)
83835	res, err := c.doRequest("json")
83836	if res != nil && res.StatusCode == http.StatusNotModified {
83837		if res.Body != nil {
83838			res.Body.Close()
83839		}
83840		return nil, &googleapi.Error{
83841			Code:   res.StatusCode,
83842			Header: res.Header,
83843		}
83844	}
83845	if err != nil {
83846		return nil, err
83847	}
83848	defer googleapi.CloseBody(res)
83849	if err := googleapi.CheckResponse(res); err != nil {
83850		return nil, err
83851	}
83852	ret := &Operation{
83853		ServerResponse: googleapi.ServerResponse{
83854			Header:         res.Header,
83855			HTTPStatusCode: res.StatusCode,
83856		},
83857	}
83858	target := &ret
83859	if err := gensupport.DecodeResponse(target, res); err != nil {
83860		return nil, err
83861	}
83862	return ret, nil
83863	// {
83864	//   "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. (== suppress_warning http-rest-shadowed ==)",
83865	//   "httpMethod": "POST",
83866	//   "id": "compute.instances.attachDisk",
83867	//   "parameterOrder": [
83868	//     "project",
83869	//     "zone",
83870	//     "instance"
83871	//   ],
83872	//   "parameters": {
83873	//     "forceAttach": {
83874	//       "description": "Whether to force attach the disk even if it's currently attached to another instance.",
83875	//       "location": "query",
83876	//       "type": "boolean"
83877	//     },
83878	//     "instance": {
83879	//       "description": "The instance name for this request.",
83880	//       "location": "path",
83881	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
83882	//       "required": true,
83883	//       "type": "string"
83884	//     },
83885	//     "project": {
83886	//       "description": "Project ID for this request.",
83887	//       "location": "path",
83888	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
83889	//       "required": true,
83890	//       "type": "string"
83891	//     },
83892	//     "requestId": {
83893	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
83894	//       "location": "query",
83895	//       "type": "string"
83896	//     },
83897	//     "zone": {
83898	//       "description": "The name of the zone for this request.",
83899	//       "location": "path",
83900	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
83901	//       "required": true,
83902	//       "type": "string"
83903	//     }
83904	//   },
83905	//   "path": "{project}/zones/{zone}/instances/{instance}/attachDisk",
83906	//   "request": {
83907	//     "$ref": "AttachedDisk"
83908	//   },
83909	//   "response": {
83910	//     "$ref": "Operation"
83911	//   },
83912	//   "scopes": [
83913	//     "https://www.googleapis.com/auth/cloud-platform",
83914	//     "https://www.googleapis.com/auth/compute"
83915	//   ]
83916	// }
83917
83918}
83919
83920// method id "compute.instances.delete":
83921
83922type InstancesDeleteCall struct {
83923	s          *Service
83924	project    string
83925	zone       string
83926	instance   string
83927	urlParams_ gensupport.URLParams
83928	ctx_       context.Context
83929	header_    http.Header
83930}
83931
83932// Delete: Deletes the specified Instance resource. For more
83933// information, see Stopping or Deleting an Instance. (==
83934// suppress_warning http-rest-shadowed ==)
83935// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/delete
83936func (r *InstancesService) Delete(project string, zone string, instance string) *InstancesDeleteCall {
83937	c := &InstancesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
83938	c.project = project
83939	c.zone = zone
83940	c.instance = instance
83941	return c
83942}
83943
83944// RequestId sets the optional parameter "requestId": An optional
83945// request ID to identify requests. Specify a unique request ID so that
83946// if you must retry your request, the server will know to ignore the
83947// request if it has already been completed.
83948//
83949// For example, consider a situation where you make an initial request
83950// and the request times out. If you make the request again with the
83951// same request ID, the server can check if original operation with the
83952// same request ID was received, and if so, will ignore the second
83953// request. This prevents clients from accidentally creating duplicate
83954// commitments.
83955//
83956// The request ID must be a valid UUID with the exception that zero UUID
83957// is not supported (00000000-0000-0000-0000-000000000000).
83958func (c *InstancesDeleteCall) RequestId(requestId string) *InstancesDeleteCall {
83959	c.urlParams_.Set("requestId", requestId)
83960	return c
83961}
83962
83963// Fields allows partial responses to be retrieved. See
83964// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
83965// for more information.
83966func (c *InstancesDeleteCall) Fields(s ...googleapi.Field) *InstancesDeleteCall {
83967	c.urlParams_.Set("fields", googleapi.CombineFields(s))
83968	return c
83969}
83970
83971// Context sets the context to be used in this call's Do method. Any
83972// pending HTTP request will be aborted if the provided context is
83973// canceled.
83974func (c *InstancesDeleteCall) Context(ctx context.Context) *InstancesDeleteCall {
83975	c.ctx_ = ctx
83976	return c
83977}
83978
83979// Header returns an http.Header that can be modified by the caller to
83980// add HTTP headers to the request.
83981func (c *InstancesDeleteCall) Header() http.Header {
83982	if c.header_ == nil {
83983		c.header_ = make(http.Header)
83984	}
83985	return c.header_
83986}
83987
83988func (c *InstancesDeleteCall) doRequest(alt string) (*http.Response, error) {
83989	reqHeaders := make(http.Header)
83990	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
83991	for k, v := range c.header_ {
83992		reqHeaders[k] = v
83993	}
83994	reqHeaders.Set("User-Agent", c.s.userAgent())
83995	var body io.Reader = nil
83996	c.urlParams_.Set("alt", alt)
83997	c.urlParams_.Set("prettyPrint", "false")
83998	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}")
83999	urls += "?" + c.urlParams_.Encode()
84000	req, err := http.NewRequest("DELETE", urls, body)
84001	if err != nil {
84002		return nil, err
84003	}
84004	req.Header = reqHeaders
84005	googleapi.Expand(req.URL, map[string]string{
84006		"project":  c.project,
84007		"zone":     c.zone,
84008		"instance": c.instance,
84009	})
84010	return gensupport.SendRequest(c.ctx_, c.s.client, req)
84011}
84012
84013// Do executes the "compute.instances.delete" call.
84014// Exactly one of *Operation or error will be non-nil. Any non-2xx
84015// status code is an error. Response headers are in either
84016// *Operation.ServerResponse.Header or (if a response was returned at
84017// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
84018// to check whether the returned error was because
84019// http.StatusNotModified was returned.
84020func (c *InstancesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
84021	gensupport.SetOptions(c.urlParams_, opts...)
84022	res, err := c.doRequest("json")
84023	if res != nil && res.StatusCode == http.StatusNotModified {
84024		if res.Body != nil {
84025			res.Body.Close()
84026		}
84027		return nil, &googleapi.Error{
84028			Code:   res.StatusCode,
84029			Header: res.Header,
84030		}
84031	}
84032	if err != nil {
84033		return nil, err
84034	}
84035	defer googleapi.CloseBody(res)
84036	if err := googleapi.CheckResponse(res); err != nil {
84037		return nil, err
84038	}
84039	ret := &Operation{
84040		ServerResponse: googleapi.ServerResponse{
84041			Header:         res.Header,
84042			HTTPStatusCode: res.StatusCode,
84043		},
84044	}
84045	target := &ret
84046	if err := gensupport.DecodeResponse(target, res); err != nil {
84047		return nil, err
84048	}
84049	return ret, nil
84050	// {
84051	//   "description": "Deletes the specified Instance resource. For more information, see Stopping or Deleting an Instance. (== suppress_warning http-rest-shadowed ==)",
84052	//   "httpMethod": "DELETE",
84053	//   "id": "compute.instances.delete",
84054	//   "parameterOrder": [
84055	//     "project",
84056	//     "zone",
84057	//     "instance"
84058	//   ],
84059	//   "parameters": {
84060	//     "instance": {
84061	//       "description": "Name of the instance resource to delete.",
84062	//       "location": "path",
84063	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
84064	//       "required": true,
84065	//       "type": "string"
84066	//     },
84067	//     "project": {
84068	//       "description": "Project ID for this request.",
84069	//       "location": "path",
84070	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
84071	//       "required": true,
84072	//       "type": "string"
84073	//     },
84074	//     "requestId": {
84075	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
84076	//       "location": "query",
84077	//       "type": "string"
84078	//     },
84079	//     "zone": {
84080	//       "description": "The name of the zone for this request.",
84081	//       "location": "path",
84082	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
84083	//       "required": true,
84084	//       "type": "string"
84085	//     }
84086	//   },
84087	//   "path": "{project}/zones/{zone}/instances/{instance}",
84088	//   "response": {
84089	//     "$ref": "Operation"
84090	//   },
84091	//   "scopes": [
84092	//     "https://www.googleapis.com/auth/cloud-platform",
84093	//     "https://www.googleapis.com/auth/compute"
84094	//   ]
84095	// }
84096
84097}
84098
84099// method id "compute.instances.deleteAccessConfig":
84100
84101type InstancesDeleteAccessConfigCall struct {
84102	s          *Service
84103	project    string
84104	zone       string
84105	instance   string
84106	urlParams_ gensupport.URLParams
84107	ctx_       context.Context
84108	header_    http.Header
84109}
84110
84111// DeleteAccessConfig: Deletes an access config from an instance's
84112// network interface. (== suppress_warning http-rest-shadowed ==)
84113// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/deleteAccessConfig
84114func (r *InstancesService) DeleteAccessConfig(project string, zone string, instance string, accessConfig string, networkInterface string) *InstancesDeleteAccessConfigCall {
84115	c := &InstancesDeleteAccessConfigCall{s: r.s, urlParams_: make(gensupport.URLParams)}
84116	c.project = project
84117	c.zone = zone
84118	c.instance = instance
84119	c.urlParams_.Set("accessConfig", accessConfig)
84120	c.urlParams_.Set("networkInterface", networkInterface)
84121	return c
84122}
84123
84124// RequestId sets the optional parameter "requestId": An optional
84125// request ID to identify requests. Specify a unique request ID so that
84126// if you must retry your request, the server will know to ignore the
84127// request if it has already been completed.
84128//
84129// For example, consider a situation where you make an initial request
84130// and the request times out. If you make the request again with the
84131// same request ID, the server can check if original operation with the
84132// same request ID was received, and if so, will ignore the second
84133// request. This prevents clients from accidentally creating duplicate
84134// commitments.
84135//
84136// The request ID must be a valid UUID with the exception that zero UUID
84137// is not supported (00000000-0000-0000-0000-000000000000).
84138func (c *InstancesDeleteAccessConfigCall) RequestId(requestId string) *InstancesDeleteAccessConfigCall {
84139	c.urlParams_.Set("requestId", requestId)
84140	return c
84141}
84142
84143// Fields allows partial responses to be retrieved. See
84144// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
84145// for more information.
84146func (c *InstancesDeleteAccessConfigCall) Fields(s ...googleapi.Field) *InstancesDeleteAccessConfigCall {
84147	c.urlParams_.Set("fields", googleapi.CombineFields(s))
84148	return c
84149}
84150
84151// Context sets the context to be used in this call's Do method. Any
84152// pending HTTP request will be aborted if the provided context is
84153// canceled.
84154func (c *InstancesDeleteAccessConfigCall) Context(ctx context.Context) *InstancesDeleteAccessConfigCall {
84155	c.ctx_ = ctx
84156	return c
84157}
84158
84159// Header returns an http.Header that can be modified by the caller to
84160// add HTTP headers to the request.
84161func (c *InstancesDeleteAccessConfigCall) Header() http.Header {
84162	if c.header_ == nil {
84163		c.header_ = make(http.Header)
84164	}
84165	return c.header_
84166}
84167
84168func (c *InstancesDeleteAccessConfigCall) doRequest(alt string) (*http.Response, error) {
84169	reqHeaders := make(http.Header)
84170	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
84171	for k, v := range c.header_ {
84172		reqHeaders[k] = v
84173	}
84174	reqHeaders.Set("User-Agent", c.s.userAgent())
84175	var body io.Reader = nil
84176	c.urlParams_.Set("alt", alt)
84177	c.urlParams_.Set("prettyPrint", "false")
84178	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/deleteAccessConfig")
84179	urls += "?" + c.urlParams_.Encode()
84180	req, err := http.NewRequest("POST", urls, body)
84181	if err != nil {
84182		return nil, err
84183	}
84184	req.Header = reqHeaders
84185	googleapi.Expand(req.URL, map[string]string{
84186		"project":  c.project,
84187		"zone":     c.zone,
84188		"instance": c.instance,
84189	})
84190	return gensupport.SendRequest(c.ctx_, c.s.client, req)
84191}
84192
84193// Do executes the "compute.instances.deleteAccessConfig" call.
84194// Exactly one of *Operation or error will be non-nil. Any non-2xx
84195// status code is an error. Response headers are in either
84196// *Operation.ServerResponse.Header or (if a response was returned at
84197// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
84198// to check whether the returned error was because
84199// http.StatusNotModified was returned.
84200func (c *InstancesDeleteAccessConfigCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
84201	gensupport.SetOptions(c.urlParams_, opts...)
84202	res, err := c.doRequest("json")
84203	if res != nil && res.StatusCode == http.StatusNotModified {
84204		if res.Body != nil {
84205			res.Body.Close()
84206		}
84207		return nil, &googleapi.Error{
84208			Code:   res.StatusCode,
84209			Header: res.Header,
84210		}
84211	}
84212	if err != nil {
84213		return nil, err
84214	}
84215	defer googleapi.CloseBody(res)
84216	if err := googleapi.CheckResponse(res); err != nil {
84217		return nil, err
84218	}
84219	ret := &Operation{
84220		ServerResponse: googleapi.ServerResponse{
84221			Header:         res.Header,
84222			HTTPStatusCode: res.StatusCode,
84223		},
84224	}
84225	target := &ret
84226	if err := gensupport.DecodeResponse(target, res); err != nil {
84227		return nil, err
84228	}
84229	return ret, nil
84230	// {
84231	//   "description": "Deletes an access config from an instance's network interface. (== suppress_warning http-rest-shadowed ==)",
84232	//   "httpMethod": "POST",
84233	//   "id": "compute.instances.deleteAccessConfig",
84234	//   "parameterOrder": [
84235	//     "project",
84236	//     "zone",
84237	//     "instance",
84238	//     "accessConfig",
84239	//     "networkInterface"
84240	//   ],
84241	//   "parameters": {
84242	//     "accessConfig": {
84243	//       "description": "The name of the access config to delete.",
84244	//       "location": "query",
84245	//       "required": true,
84246	//       "type": "string"
84247	//     },
84248	//     "instance": {
84249	//       "description": "The instance name for this request.",
84250	//       "location": "path",
84251	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
84252	//       "required": true,
84253	//       "type": "string"
84254	//     },
84255	//     "networkInterface": {
84256	//       "description": "The name of the network interface.",
84257	//       "location": "query",
84258	//       "required": true,
84259	//       "type": "string"
84260	//     },
84261	//     "project": {
84262	//       "description": "Project ID for this request.",
84263	//       "location": "path",
84264	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
84265	//       "required": true,
84266	//       "type": "string"
84267	//     },
84268	//     "requestId": {
84269	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
84270	//       "location": "query",
84271	//       "type": "string"
84272	//     },
84273	//     "zone": {
84274	//       "description": "The name of the zone for this request.",
84275	//       "location": "path",
84276	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
84277	//       "required": true,
84278	//       "type": "string"
84279	//     }
84280	//   },
84281	//   "path": "{project}/zones/{zone}/instances/{instance}/deleteAccessConfig",
84282	//   "response": {
84283	//     "$ref": "Operation"
84284	//   },
84285	//   "scopes": [
84286	//     "https://www.googleapis.com/auth/cloud-platform",
84287	//     "https://www.googleapis.com/auth/compute"
84288	//   ]
84289	// }
84290
84291}
84292
84293// method id "compute.instances.detachDisk":
84294
84295type InstancesDetachDiskCall struct {
84296	s          *Service
84297	project    string
84298	zone       string
84299	instance   string
84300	urlParams_ gensupport.URLParams
84301	ctx_       context.Context
84302	header_    http.Header
84303}
84304
84305// DetachDisk: Detaches a disk from an instance. (== suppress_warning
84306// http-rest-shadowed ==)
84307// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/detachDisk
84308func (r *InstancesService) DetachDisk(project string, zone string, instance string, deviceName string) *InstancesDetachDiskCall {
84309	c := &InstancesDetachDiskCall{s: r.s, urlParams_: make(gensupport.URLParams)}
84310	c.project = project
84311	c.zone = zone
84312	c.instance = instance
84313	c.urlParams_.Set("deviceName", deviceName)
84314	return c
84315}
84316
84317// RequestId sets the optional parameter "requestId": An optional
84318// request ID to identify requests. Specify a unique request ID so that
84319// if you must retry your request, the server will know to ignore the
84320// request if it has already been completed.
84321//
84322// For example, consider a situation where you make an initial request
84323// and the request times out. If you make the request again with the
84324// same request ID, the server can check if original operation with the
84325// same request ID was received, and if so, will ignore the second
84326// request. This prevents clients from accidentally creating duplicate
84327// commitments.
84328//
84329// The request ID must be a valid UUID with the exception that zero UUID
84330// is not supported (00000000-0000-0000-0000-000000000000).
84331func (c *InstancesDetachDiskCall) RequestId(requestId string) *InstancesDetachDiskCall {
84332	c.urlParams_.Set("requestId", requestId)
84333	return c
84334}
84335
84336// Fields allows partial responses to be retrieved. See
84337// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
84338// for more information.
84339func (c *InstancesDetachDiskCall) Fields(s ...googleapi.Field) *InstancesDetachDiskCall {
84340	c.urlParams_.Set("fields", googleapi.CombineFields(s))
84341	return c
84342}
84343
84344// Context sets the context to be used in this call's Do method. Any
84345// pending HTTP request will be aborted if the provided context is
84346// canceled.
84347func (c *InstancesDetachDiskCall) Context(ctx context.Context) *InstancesDetachDiskCall {
84348	c.ctx_ = ctx
84349	return c
84350}
84351
84352// Header returns an http.Header that can be modified by the caller to
84353// add HTTP headers to the request.
84354func (c *InstancesDetachDiskCall) Header() http.Header {
84355	if c.header_ == nil {
84356		c.header_ = make(http.Header)
84357	}
84358	return c.header_
84359}
84360
84361func (c *InstancesDetachDiskCall) doRequest(alt string) (*http.Response, error) {
84362	reqHeaders := make(http.Header)
84363	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
84364	for k, v := range c.header_ {
84365		reqHeaders[k] = v
84366	}
84367	reqHeaders.Set("User-Agent", c.s.userAgent())
84368	var body io.Reader = nil
84369	c.urlParams_.Set("alt", alt)
84370	c.urlParams_.Set("prettyPrint", "false")
84371	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/detachDisk")
84372	urls += "?" + c.urlParams_.Encode()
84373	req, err := http.NewRequest("POST", urls, body)
84374	if err != nil {
84375		return nil, err
84376	}
84377	req.Header = reqHeaders
84378	googleapi.Expand(req.URL, map[string]string{
84379		"project":  c.project,
84380		"zone":     c.zone,
84381		"instance": c.instance,
84382	})
84383	return gensupport.SendRequest(c.ctx_, c.s.client, req)
84384}
84385
84386// Do executes the "compute.instances.detachDisk" call.
84387// Exactly one of *Operation or error will be non-nil. Any non-2xx
84388// status code is an error. Response headers are in either
84389// *Operation.ServerResponse.Header or (if a response was returned at
84390// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
84391// to check whether the returned error was because
84392// http.StatusNotModified was returned.
84393func (c *InstancesDetachDiskCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
84394	gensupport.SetOptions(c.urlParams_, opts...)
84395	res, err := c.doRequest("json")
84396	if res != nil && res.StatusCode == http.StatusNotModified {
84397		if res.Body != nil {
84398			res.Body.Close()
84399		}
84400		return nil, &googleapi.Error{
84401			Code:   res.StatusCode,
84402			Header: res.Header,
84403		}
84404	}
84405	if err != nil {
84406		return nil, err
84407	}
84408	defer googleapi.CloseBody(res)
84409	if err := googleapi.CheckResponse(res); err != nil {
84410		return nil, err
84411	}
84412	ret := &Operation{
84413		ServerResponse: googleapi.ServerResponse{
84414			Header:         res.Header,
84415			HTTPStatusCode: res.StatusCode,
84416		},
84417	}
84418	target := &ret
84419	if err := gensupport.DecodeResponse(target, res); err != nil {
84420		return nil, err
84421	}
84422	return ret, nil
84423	// {
84424	//   "description": "Detaches a disk from an instance. (== suppress_warning http-rest-shadowed ==)",
84425	//   "httpMethod": "POST",
84426	//   "id": "compute.instances.detachDisk",
84427	//   "parameterOrder": [
84428	//     "project",
84429	//     "zone",
84430	//     "instance",
84431	//     "deviceName"
84432	//   ],
84433	//   "parameters": {
84434	//     "deviceName": {
84435	//       "description": "The device name of the disk to detach. Make a get() request on the instance to view currently attached disks and device names.",
84436	//       "location": "query",
84437	//       "required": true,
84438	//       "type": "string"
84439	//     },
84440	//     "instance": {
84441	//       "description": "Instance name for this request.",
84442	//       "location": "path",
84443	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
84444	//       "required": true,
84445	//       "type": "string"
84446	//     },
84447	//     "project": {
84448	//       "description": "Project ID for this request.",
84449	//       "location": "path",
84450	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
84451	//       "required": true,
84452	//       "type": "string"
84453	//     },
84454	//     "requestId": {
84455	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
84456	//       "location": "query",
84457	//       "type": "string"
84458	//     },
84459	//     "zone": {
84460	//       "description": "The name of the zone for this request.",
84461	//       "location": "path",
84462	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
84463	//       "required": true,
84464	//       "type": "string"
84465	//     }
84466	//   },
84467	//   "path": "{project}/zones/{zone}/instances/{instance}/detachDisk",
84468	//   "response": {
84469	//     "$ref": "Operation"
84470	//   },
84471	//   "scopes": [
84472	//     "https://www.googleapis.com/auth/cloud-platform",
84473	//     "https://www.googleapis.com/auth/compute"
84474	//   ]
84475	// }
84476
84477}
84478
84479// method id "compute.instances.get":
84480
84481type InstancesGetCall struct {
84482	s            *Service
84483	project      string
84484	zone         string
84485	instance     string
84486	urlParams_   gensupport.URLParams
84487	ifNoneMatch_ string
84488	ctx_         context.Context
84489	header_      http.Header
84490}
84491
84492// Get: Returns the specified Instance resource. Gets a list of
84493// available instances by making a list() request. (== suppress_warning
84494// http-rest-shadowed ==)
84495// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/get
84496func (r *InstancesService) Get(project string, zone string, instance string) *InstancesGetCall {
84497	c := &InstancesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
84498	c.project = project
84499	c.zone = zone
84500	c.instance = instance
84501	return c
84502}
84503
84504// Fields allows partial responses to be retrieved. See
84505// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
84506// for more information.
84507func (c *InstancesGetCall) Fields(s ...googleapi.Field) *InstancesGetCall {
84508	c.urlParams_.Set("fields", googleapi.CombineFields(s))
84509	return c
84510}
84511
84512// IfNoneMatch sets the optional parameter which makes the operation
84513// fail if the object's ETag matches the given value. This is useful for
84514// getting updates only after the object has changed since the last
84515// request. Use googleapi.IsNotModified to check whether the response
84516// error from Do is the result of In-None-Match.
84517func (c *InstancesGetCall) IfNoneMatch(entityTag string) *InstancesGetCall {
84518	c.ifNoneMatch_ = entityTag
84519	return c
84520}
84521
84522// Context sets the context to be used in this call's Do method. Any
84523// pending HTTP request will be aborted if the provided context is
84524// canceled.
84525func (c *InstancesGetCall) Context(ctx context.Context) *InstancesGetCall {
84526	c.ctx_ = ctx
84527	return c
84528}
84529
84530// Header returns an http.Header that can be modified by the caller to
84531// add HTTP headers to the request.
84532func (c *InstancesGetCall) Header() http.Header {
84533	if c.header_ == nil {
84534		c.header_ = make(http.Header)
84535	}
84536	return c.header_
84537}
84538
84539func (c *InstancesGetCall) doRequest(alt string) (*http.Response, error) {
84540	reqHeaders := make(http.Header)
84541	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
84542	for k, v := range c.header_ {
84543		reqHeaders[k] = v
84544	}
84545	reqHeaders.Set("User-Agent", c.s.userAgent())
84546	if c.ifNoneMatch_ != "" {
84547		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
84548	}
84549	var body io.Reader = nil
84550	c.urlParams_.Set("alt", alt)
84551	c.urlParams_.Set("prettyPrint", "false")
84552	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}")
84553	urls += "?" + c.urlParams_.Encode()
84554	req, err := http.NewRequest("GET", urls, body)
84555	if err != nil {
84556		return nil, err
84557	}
84558	req.Header = reqHeaders
84559	googleapi.Expand(req.URL, map[string]string{
84560		"project":  c.project,
84561		"zone":     c.zone,
84562		"instance": c.instance,
84563	})
84564	return gensupport.SendRequest(c.ctx_, c.s.client, req)
84565}
84566
84567// Do executes the "compute.instances.get" call.
84568// Exactly one of *Instance or error will be non-nil. Any non-2xx status
84569// code is an error. Response headers are in either
84570// *Instance.ServerResponse.Header or (if a response was returned at
84571// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
84572// to check whether the returned error was because
84573// http.StatusNotModified was returned.
84574func (c *InstancesGetCall) Do(opts ...googleapi.CallOption) (*Instance, error) {
84575	gensupport.SetOptions(c.urlParams_, opts...)
84576	res, err := c.doRequest("json")
84577	if res != nil && res.StatusCode == http.StatusNotModified {
84578		if res.Body != nil {
84579			res.Body.Close()
84580		}
84581		return nil, &googleapi.Error{
84582			Code:   res.StatusCode,
84583			Header: res.Header,
84584		}
84585	}
84586	if err != nil {
84587		return nil, err
84588	}
84589	defer googleapi.CloseBody(res)
84590	if err := googleapi.CheckResponse(res); err != nil {
84591		return nil, err
84592	}
84593	ret := &Instance{
84594		ServerResponse: googleapi.ServerResponse{
84595			Header:         res.Header,
84596			HTTPStatusCode: res.StatusCode,
84597		},
84598	}
84599	target := &ret
84600	if err := gensupport.DecodeResponse(target, res); err != nil {
84601		return nil, err
84602	}
84603	return ret, nil
84604	// {
84605	//   "description": "Returns the specified Instance resource. Gets a list of available instances by making a list() request. (== suppress_warning http-rest-shadowed ==)",
84606	//   "httpMethod": "GET",
84607	//   "id": "compute.instances.get",
84608	//   "parameterOrder": [
84609	//     "project",
84610	//     "zone",
84611	//     "instance"
84612	//   ],
84613	//   "parameters": {
84614	//     "instance": {
84615	//       "description": "Name of the instance resource to return.",
84616	//       "location": "path",
84617	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
84618	//       "required": true,
84619	//       "type": "string"
84620	//     },
84621	//     "project": {
84622	//       "description": "Project ID for this request.",
84623	//       "location": "path",
84624	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
84625	//       "required": true,
84626	//       "type": "string"
84627	//     },
84628	//     "zone": {
84629	//       "description": "The name of the zone for this request.",
84630	//       "location": "path",
84631	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
84632	//       "required": true,
84633	//       "type": "string"
84634	//     }
84635	//   },
84636	//   "path": "{project}/zones/{zone}/instances/{instance}",
84637	//   "response": {
84638	//     "$ref": "Instance"
84639	//   },
84640	//   "scopes": [
84641	//     "https://www.googleapis.com/auth/cloud-platform",
84642	//     "https://www.googleapis.com/auth/compute",
84643	//     "https://www.googleapis.com/auth/compute.readonly"
84644	//   ]
84645	// }
84646
84647}
84648
84649// method id "compute.instances.getEffectiveFirewalls":
84650
84651type InstancesGetEffectiveFirewallsCall struct {
84652	s            *Service
84653	project      string
84654	zone         string
84655	instance     string
84656	urlParams_   gensupport.URLParams
84657	ifNoneMatch_ string
84658	ctx_         context.Context
84659	header_      http.Header
84660}
84661
84662// GetEffectiveFirewalls: Returns effective firewalls applied to an
84663// interface of the instance. (== suppress_warning http-rest-shadowed
84664// ==)
84665func (r *InstancesService) GetEffectiveFirewalls(project string, zone string, instance string, networkInterface string) *InstancesGetEffectiveFirewallsCall {
84666	c := &InstancesGetEffectiveFirewallsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
84667	c.project = project
84668	c.zone = zone
84669	c.instance = instance
84670	c.urlParams_.Set("networkInterface", networkInterface)
84671	return c
84672}
84673
84674// Fields allows partial responses to be retrieved. See
84675// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
84676// for more information.
84677func (c *InstancesGetEffectiveFirewallsCall) Fields(s ...googleapi.Field) *InstancesGetEffectiveFirewallsCall {
84678	c.urlParams_.Set("fields", googleapi.CombineFields(s))
84679	return c
84680}
84681
84682// IfNoneMatch sets the optional parameter which makes the operation
84683// fail if the object's ETag matches the given value. This is useful for
84684// getting updates only after the object has changed since the last
84685// request. Use googleapi.IsNotModified to check whether the response
84686// error from Do is the result of In-None-Match.
84687func (c *InstancesGetEffectiveFirewallsCall) IfNoneMatch(entityTag string) *InstancesGetEffectiveFirewallsCall {
84688	c.ifNoneMatch_ = entityTag
84689	return c
84690}
84691
84692// Context sets the context to be used in this call's Do method. Any
84693// pending HTTP request will be aborted if the provided context is
84694// canceled.
84695func (c *InstancesGetEffectiveFirewallsCall) Context(ctx context.Context) *InstancesGetEffectiveFirewallsCall {
84696	c.ctx_ = ctx
84697	return c
84698}
84699
84700// Header returns an http.Header that can be modified by the caller to
84701// add HTTP headers to the request.
84702func (c *InstancesGetEffectiveFirewallsCall) Header() http.Header {
84703	if c.header_ == nil {
84704		c.header_ = make(http.Header)
84705	}
84706	return c.header_
84707}
84708
84709func (c *InstancesGetEffectiveFirewallsCall) doRequest(alt string) (*http.Response, error) {
84710	reqHeaders := make(http.Header)
84711	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
84712	for k, v := range c.header_ {
84713		reqHeaders[k] = v
84714	}
84715	reqHeaders.Set("User-Agent", c.s.userAgent())
84716	if c.ifNoneMatch_ != "" {
84717		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
84718	}
84719	var body io.Reader = nil
84720	c.urlParams_.Set("alt", alt)
84721	c.urlParams_.Set("prettyPrint", "false")
84722	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/getEffectiveFirewalls")
84723	urls += "?" + c.urlParams_.Encode()
84724	req, err := http.NewRequest("GET", urls, body)
84725	if err != nil {
84726		return nil, err
84727	}
84728	req.Header = reqHeaders
84729	googleapi.Expand(req.URL, map[string]string{
84730		"project":  c.project,
84731		"zone":     c.zone,
84732		"instance": c.instance,
84733	})
84734	return gensupport.SendRequest(c.ctx_, c.s.client, req)
84735}
84736
84737// Do executes the "compute.instances.getEffectiveFirewalls" call.
84738// Exactly one of *InstancesGetEffectiveFirewallsResponse or error will
84739// be non-nil. Any non-2xx status code is an error. Response headers are
84740// in either
84741// *InstancesGetEffectiveFirewallsResponse.ServerResponse.Header or (if
84742// a response was returned at all) in error.(*googleapi.Error).Header.
84743// Use googleapi.IsNotModified to check whether the returned error was
84744// because http.StatusNotModified was returned.
84745func (c *InstancesGetEffectiveFirewallsCall) Do(opts ...googleapi.CallOption) (*InstancesGetEffectiveFirewallsResponse, error) {
84746	gensupport.SetOptions(c.urlParams_, opts...)
84747	res, err := c.doRequest("json")
84748	if res != nil && res.StatusCode == http.StatusNotModified {
84749		if res.Body != nil {
84750			res.Body.Close()
84751		}
84752		return nil, &googleapi.Error{
84753			Code:   res.StatusCode,
84754			Header: res.Header,
84755		}
84756	}
84757	if err != nil {
84758		return nil, err
84759	}
84760	defer googleapi.CloseBody(res)
84761	if err := googleapi.CheckResponse(res); err != nil {
84762		return nil, err
84763	}
84764	ret := &InstancesGetEffectiveFirewallsResponse{
84765		ServerResponse: googleapi.ServerResponse{
84766			Header:         res.Header,
84767			HTTPStatusCode: res.StatusCode,
84768		},
84769	}
84770	target := &ret
84771	if err := gensupport.DecodeResponse(target, res); err != nil {
84772		return nil, err
84773	}
84774	return ret, nil
84775	// {
84776	//   "description": "Returns effective firewalls applied to an interface of the instance. (== suppress_warning http-rest-shadowed ==)",
84777	//   "httpMethod": "GET",
84778	//   "id": "compute.instances.getEffectiveFirewalls",
84779	//   "parameterOrder": [
84780	//     "project",
84781	//     "zone",
84782	//     "instance",
84783	//     "networkInterface"
84784	//   ],
84785	//   "parameters": {
84786	//     "instance": {
84787	//       "description": "Name of the instance scoping this request.",
84788	//       "location": "path",
84789	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
84790	//       "required": true,
84791	//       "type": "string"
84792	//     },
84793	//     "networkInterface": {
84794	//       "description": "The name of the network interface to get the effective firewalls.",
84795	//       "location": "query",
84796	//       "required": true,
84797	//       "type": "string"
84798	//     },
84799	//     "project": {
84800	//       "description": "Project ID for this request.",
84801	//       "location": "path",
84802	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
84803	//       "required": true,
84804	//       "type": "string"
84805	//     },
84806	//     "zone": {
84807	//       "description": "The name of the zone for this request.",
84808	//       "location": "path",
84809	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
84810	//       "required": true,
84811	//       "type": "string"
84812	//     }
84813	//   },
84814	//   "path": "{project}/zones/{zone}/instances/{instance}/getEffectiveFirewalls",
84815	//   "response": {
84816	//     "$ref": "InstancesGetEffectiveFirewallsResponse"
84817	//   },
84818	//   "scopes": [
84819	//     "https://www.googleapis.com/auth/cloud-platform",
84820	//     "https://www.googleapis.com/auth/compute",
84821	//     "https://www.googleapis.com/auth/compute.readonly"
84822	//   ]
84823	// }
84824
84825}
84826
84827// method id "compute.instances.getGuestAttributes":
84828
84829type InstancesGetGuestAttributesCall struct {
84830	s            *Service
84831	project      string
84832	zone         string
84833	instance     string
84834	urlParams_   gensupport.URLParams
84835	ifNoneMatch_ string
84836	ctx_         context.Context
84837	header_      http.Header
84838}
84839
84840// GetGuestAttributes: Returns the specified guest attributes entry. (==
84841// suppress_warning http-rest-shadowed ==)
84842func (r *InstancesService) GetGuestAttributes(project string, zone string, instance string) *InstancesGetGuestAttributesCall {
84843	c := &InstancesGetGuestAttributesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
84844	c.project = project
84845	c.zone = zone
84846	c.instance = instance
84847	return c
84848}
84849
84850// QueryPath sets the optional parameter "queryPath": Specifies the
84851// guest attributes path to be queried.
84852func (c *InstancesGetGuestAttributesCall) QueryPath(queryPath string) *InstancesGetGuestAttributesCall {
84853	c.urlParams_.Set("queryPath", queryPath)
84854	return c
84855}
84856
84857// VariableKey sets the optional parameter "variableKey": Specifies the
84858// key for the guest attributes entry.
84859func (c *InstancesGetGuestAttributesCall) VariableKey(variableKey string) *InstancesGetGuestAttributesCall {
84860	c.urlParams_.Set("variableKey", variableKey)
84861	return c
84862}
84863
84864// Fields allows partial responses to be retrieved. See
84865// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
84866// for more information.
84867func (c *InstancesGetGuestAttributesCall) Fields(s ...googleapi.Field) *InstancesGetGuestAttributesCall {
84868	c.urlParams_.Set("fields", googleapi.CombineFields(s))
84869	return c
84870}
84871
84872// IfNoneMatch sets the optional parameter which makes the operation
84873// fail if the object's ETag matches the given value. This is useful for
84874// getting updates only after the object has changed since the last
84875// request. Use googleapi.IsNotModified to check whether the response
84876// error from Do is the result of In-None-Match.
84877func (c *InstancesGetGuestAttributesCall) IfNoneMatch(entityTag string) *InstancesGetGuestAttributesCall {
84878	c.ifNoneMatch_ = entityTag
84879	return c
84880}
84881
84882// Context sets the context to be used in this call's Do method. Any
84883// pending HTTP request will be aborted if the provided context is
84884// canceled.
84885func (c *InstancesGetGuestAttributesCall) Context(ctx context.Context) *InstancesGetGuestAttributesCall {
84886	c.ctx_ = ctx
84887	return c
84888}
84889
84890// Header returns an http.Header that can be modified by the caller to
84891// add HTTP headers to the request.
84892func (c *InstancesGetGuestAttributesCall) Header() http.Header {
84893	if c.header_ == nil {
84894		c.header_ = make(http.Header)
84895	}
84896	return c.header_
84897}
84898
84899func (c *InstancesGetGuestAttributesCall) doRequest(alt string) (*http.Response, error) {
84900	reqHeaders := make(http.Header)
84901	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
84902	for k, v := range c.header_ {
84903		reqHeaders[k] = v
84904	}
84905	reqHeaders.Set("User-Agent", c.s.userAgent())
84906	if c.ifNoneMatch_ != "" {
84907		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
84908	}
84909	var body io.Reader = nil
84910	c.urlParams_.Set("alt", alt)
84911	c.urlParams_.Set("prettyPrint", "false")
84912	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/getGuestAttributes")
84913	urls += "?" + c.urlParams_.Encode()
84914	req, err := http.NewRequest("GET", urls, body)
84915	if err != nil {
84916		return nil, err
84917	}
84918	req.Header = reqHeaders
84919	googleapi.Expand(req.URL, map[string]string{
84920		"project":  c.project,
84921		"zone":     c.zone,
84922		"instance": c.instance,
84923	})
84924	return gensupport.SendRequest(c.ctx_, c.s.client, req)
84925}
84926
84927// Do executes the "compute.instances.getGuestAttributes" call.
84928// Exactly one of *GuestAttributes or error will be non-nil. Any non-2xx
84929// status code is an error. Response headers are in either
84930// *GuestAttributes.ServerResponse.Header or (if a response was returned
84931// at all) in error.(*googleapi.Error).Header. Use
84932// googleapi.IsNotModified to check whether the returned error was
84933// because http.StatusNotModified was returned.
84934func (c *InstancesGetGuestAttributesCall) Do(opts ...googleapi.CallOption) (*GuestAttributes, error) {
84935	gensupport.SetOptions(c.urlParams_, opts...)
84936	res, err := c.doRequest("json")
84937	if res != nil && res.StatusCode == http.StatusNotModified {
84938		if res.Body != nil {
84939			res.Body.Close()
84940		}
84941		return nil, &googleapi.Error{
84942			Code:   res.StatusCode,
84943			Header: res.Header,
84944		}
84945	}
84946	if err != nil {
84947		return nil, err
84948	}
84949	defer googleapi.CloseBody(res)
84950	if err := googleapi.CheckResponse(res); err != nil {
84951		return nil, err
84952	}
84953	ret := &GuestAttributes{
84954		ServerResponse: googleapi.ServerResponse{
84955			Header:         res.Header,
84956			HTTPStatusCode: res.StatusCode,
84957		},
84958	}
84959	target := &ret
84960	if err := gensupport.DecodeResponse(target, res); err != nil {
84961		return nil, err
84962	}
84963	return ret, nil
84964	// {
84965	//   "description": "Returns the specified guest attributes entry. (== suppress_warning http-rest-shadowed ==)",
84966	//   "httpMethod": "GET",
84967	//   "id": "compute.instances.getGuestAttributes",
84968	//   "parameterOrder": [
84969	//     "project",
84970	//     "zone",
84971	//     "instance"
84972	//   ],
84973	//   "parameters": {
84974	//     "instance": {
84975	//       "description": "Name of the instance scoping this request.",
84976	//       "location": "path",
84977	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
84978	//       "required": true,
84979	//       "type": "string"
84980	//     },
84981	//     "project": {
84982	//       "description": "Project ID for this request.",
84983	//       "location": "path",
84984	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
84985	//       "required": true,
84986	//       "type": "string"
84987	//     },
84988	//     "queryPath": {
84989	//       "description": "Specifies the guest attributes path to be queried.",
84990	//       "location": "query",
84991	//       "type": "string"
84992	//     },
84993	//     "variableKey": {
84994	//       "description": "Specifies the key for the guest attributes entry.",
84995	//       "location": "query",
84996	//       "type": "string"
84997	//     },
84998	//     "zone": {
84999	//       "description": "The name of the zone for this request.",
85000	//       "location": "path",
85001	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
85002	//       "required": true,
85003	//       "type": "string"
85004	//     }
85005	//   },
85006	//   "path": "{project}/zones/{zone}/instances/{instance}/getGuestAttributes",
85007	//   "response": {
85008	//     "$ref": "GuestAttributes"
85009	//   },
85010	//   "scopes": [
85011	//     "https://www.googleapis.com/auth/cloud-platform",
85012	//     "https://www.googleapis.com/auth/compute",
85013	//     "https://www.googleapis.com/auth/compute.readonly"
85014	//   ]
85015	// }
85016
85017}
85018
85019// method id "compute.instances.getIamPolicy":
85020
85021type InstancesGetIamPolicyCall struct {
85022	s            *Service
85023	project      string
85024	zone         string
85025	resource     string
85026	urlParams_   gensupport.URLParams
85027	ifNoneMatch_ string
85028	ctx_         context.Context
85029	header_      http.Header
85030}
85031
85032// GetIamPolicy: Gets the access control policy for a resource. May be
85033// empty if no such policy or resource exists. (== suppress_warning
85034// http-rest-shadowed ==)
85035func (r *InstancesService) GetIamPolicy(project string, zone string, resource string) *InstancesGetIamPolicyCall {
85036	c := &InstancesGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
85037	c.project = project
85038	c.zone = zone
85039	c.resource = resource
85040	return c
85041}
85042
85043// OptionsRequestedPolicyVersion sets the optional parameter
85044// "optionsRequestedPolicyVersion": Requested IAM Policy version.
85045func (c *InstancesGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *InstancesGetIamPolicyCall {
85046	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
85047	return c
85048}
85049
85050// Fields allows partial responses to be retrieved. See
85051// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
85052// for more information.
85053func (c *InstancesGetIamPolicyCall) Fields(s ...googleapi.Field) *InstancesGetIamPolicyCall {
85054	c.urlParams_.Set("fields", googleapi.CombineFields(s))
85055	return c
85056}
85057
85058// IfNoneMatch sets the optional parameter which makes the operation
85059// fail if the object's ETag matches the given value. This is useful for
85060// getting updates only after the object has changed since the last
85061// request. Use googleapi.IsNotModified to check whether the response
85062// error from Do is the result of In-None-Match.
85063func (c *InstancesGetIamPolicyCall) IfNoneMatch(entityTag string) *InstancesGetIamPolicyCall {
85064	c.ifNoneMatch_ = entityTag
85065	return c
85066}
85067
85068// Context sets the context to be used in this call's Do method. Any
85069// pending HTTP request will be aborted if the provided context is
85070// canceled.
85071func (c *InstancesGetIamPolicyCall) Context(ctx context.Context) *InstancesGetIamPolicyCall {
85072	c.ctx_ = ctx
85073	return c
85074}
85075
85076// Header returns an http.Header that can be modified by the caller to
85077// add HTTP headers to the request.
85078func (c *InstancesGetIamPolicyCall) Header() http.Header {
85079	if c.header_ == nil {
85080		c.header_ = make(http.Header)
85081	}
85082	return c.header_
85083}
85084
85085func (c *InstancesGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
85086	reqHeaders := make(http.Header)
85087	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
85088	for k, v := range c.header_ {
85089		reqHeaders[k] = v
85090	}
85091	reqHeaders.Set("User-Agent", c.s.userAgent())
85092	if c.ifNoneMatch_ != "" {
85093		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
85094	}
85095	var body io.Reader = nil
85096	c.urlParams_.Set("alt", alt)
85097	c.urlParams_.Set("prettyPrint", "false")
85098	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{resource}/getIamPolicy")
85099	urls += "?" + c.urlParams_.Encode()
85100	req, err := http.NewRequest("GET", urls, body)
85101	if err != nil {
85102		return nil, err
85103	}
85104	req.Header = reqHeaders
85105	googleapi.Expand(req.URL, map[string]string{
85106		"project":  c.project,
85107		"zone":     c.zone,
85108		"resource": c.resource,
85109	})
85110	return gensupport.SendRequest(c.ctx_, c.s.client, req)
85111}
85112
85113// Do executes the "compute.instances.getIamPolicy" call.
85114// Exactly one of *Policy or error will be non-nil. Any non-2xx status
85115// code is an error. Response headers are in either
85116// *Policy.ServerResponse.Header or (if a response was returned at all)
85117// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
85118// check whether the returned error was because http.StatusNotModified
85119// was returned.
85120func (c *InstancesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
85121	gensupport.SetOptions(c.urlParams_, opts...)
85122	res, err := c.doRequest("json")
85123	if res != nil && res.StatusCode == http.StatusNotModified {
85124		if res.Body != nil {
85125			res.Body.Close()
85126		}
85127		return nil, &googleapi.Error{
85128			Code:   res.StatusCode,
85129			Header: res.Header,
85130		}
85131	}
85132	if err != nil {
85133		return nil, err
85134	}
85135	defer googleapi.CloseBody(res)
85136	if err := googleapi.CheckResponse(res); err != nil {
85137		return nil, err
85138	}
85139	ret := &Policy{
85140		ServerResponse: googleapi.ServerResponse{
85141			Header:         res.Header,
85142			HTTPStatusCode: res.StatusCode,
85143		},
85144	}
85145	target := &ret
85146	if err := gensupport.DecodeResponse(target, res); err != nil {
85147		return nil, err
85148	}
85149	return ret, nil
85150	// {
85151	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists. (== suppress_warning http-rest-shadowed ==)",
85152	//   "httpMethod": "GET",
85153	//   "id": "compute.instances.getIamPolicy",
85154	//   "parameterOrder": [
85155	//     "project",
85156	//     "zone",
85157	//     "resource"
85158	//   ],
85159	//   "parameters": {
85160	//     "optionsRequestedPolicyVersion": {
85161	//       "description": "Requested IAM Policy version.",
85162	//       "format": "int32",
85163	//       "location": "query",
85164	//       "type": "integer"
85165	//     },
85166	//     "project": {
85167	//       "description": "Project ID for this request.",
85168	//       "location": "path",
85169	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
85170	//       "required": true,
85171	//       "type": "string"
85172	//     },
85173	//     "resource": {
85174	//       "description": "Name or id of the resource for this request.",
85175	//       "location": "path",
85176	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
85177	//       "required": true,
85178	//       "type": "string"
85179	//     },
85180	//     "zone": {
85181	//       "description": "The name of the zone for this request.",
85182	//       "location": "path",
85183	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
85184	//       "required": true,
85185	//       "type": "string"
85186	//     }
85187	//   },
85188	//   "path": "{project}/zones/{zone}/instances/{resource}/getIamPolicy",
85189	//   "response": {
85190	//     "$ref": "Policy"
85191	//   },
85192	//   "scopes": [
85193	//     "https://www.googleapis.com/auth/cloud-platform",
85194	//     "https://www.googleapis.com/auth/compute",
85195	//     "https://www.googleapis.com/auth/compute.readonly"
85196	//   ]
85197	// }
85198
85199}
85200
85201// method id "compute.instances.getSerialPortOutput":
85202
85203type InstancesGetSerialPortOutputCall struct {
85204	s            *Service
85205	project      string
85206	zone         string
85207	instance     string
85208	urlParams_   gensupport.URLParams
85209	ifNoneMatch_ string
85210	ctx_         context.Context
85211	header_      http.Header
85212}
85213
85214// GetSerialPortOutput: Returns the last 1 MB of serial port output from
85215// the specified instance. (== suppress_warning http-rest-shadowed ==)
85216// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/getSerialPortOutput
85217func (r *InstancesService) GetSerialPortOutput(project string, zone string, instance string) *InstancesGetSerialPortOutputCall {
85218	c := &InstancesGetSerialPortOutputCall{s: r.s, urlParams_: make(gensupport.URLParams)}
85219	c.project = project
85220	c.zone = zone
85221	c.instance = instance
85222	return c
85223}
85224
85225// Port sets the optional parameter "port": Specifies which COM or
85226// serial port to retrieve data from.
85227func (c *InstancesGetSerialPortOutputCall) Port(port int64) *InstancesGetSerialPortOutputCall {
85228	c.urlParams_.Set("port", fmt.Sprint(port))
85229	return c
85230}
85231
85232// Start sets the optional parameter "start": Returns output starting
85233// from a specific byte position. Use this to page through output when
85234// the output is too large to return in a single request. For the
85235// initial request, leave this field unspecified. For subsequent calls,
85236// this field should be set to the next value returned in the previous
85237// call.
85238func (c *InstancesGetSerialPortOutputCall) Start(start int64) *InstancesGetSerialPortOutputCall {
85239	c.urlParams_.Set("start", fmt.Sprint(start))
85240	return c
85241}
85242
85243// Fields allows partial responses to be retrieved. See
85244// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
85245// for more information.
85246func (c *InstancesGetSerialPortOutputCall) Fields(s ...googleapi.Field) *InstancesGetSerialPortOutputCall {
85247	c.urlParams_.Set("fields", googleapi.CombineFields(s))
85248	return c
85249}
85250
85251// IfNoneMatch sets the optional parameter which makes the operation
85252// fail if the object's ETag matches the given value. This is useful for
85253// getting updates only after the object has changed since the last
85254// request. Use googleapi.IsNotModified to check whether the response
85255// error from Do is the result of In-None-Match.
85256func (c *InstancesGetSerialPortOutputCall) IfNoneMatch(entityTag string) *InstancesGetSerialPortOutputCall {
85257	c.ifNoneMatch_ = entityTag
85258	return c
85259}
85260
85261// Context sets the context to be used in this call's Do method. Any
85262// pending HTTP request will be aborted if the provided context is
85263// canceled.
85264func (c *InstancesGetSerialPortOutputCall) Context(ctx context.Context) *InstancesGetSerialPortOutputCall {
85265	c.ctx_ = ctx
85266	return c
85267}
85268
85269// Header returns an http.Header that can be modified by the caller to
85270// add HTTP headers to the request.
85271func (c *InstancesGetSerialPortOutputCall) Header() http.Header {
85272	if c.header_ == nil {
85273		c.header_ = make(http.Header)
85274	}
85275	return c.header_
85276}
85277
85278func (c *InstancesGetSerialPortOutputCall) doRequest(alt string) (*http.Response, error) {
85279	reqHeaders := make(http.Header)
85280	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
85281	for k, v := range c.header_ {
85282		reqHeaders[k] = v
85283	}
85284	reqHeaders.Set("User-Agent", c.s.userAgent())
85285	if c.ifNoneMatch_ != "" {
85286		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
85287	}
85288	var body io.Reader = nil
85289	c.urlParams_.Set("alt", alt)
85290	c.urlParams_.Set("prettyPrint", "false")
85291	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/serialPort")
85292	urls += "?" + c.urlParams_.Encode()
85293	req, err := http.NewRequest("GET", urls, body)
85294	if err != nil {
85295		return nil, err
85296	}
85297	req.Header = reqHeaders
85298	googleapi.Expand(req.URL, map[string]string{
85299		"project":  c.project,
85300		"zone":     c.zone,
85301		"instance": c.instance,
85302	})
85303	return gensupport.SendRequest(c.ctx_, c.s.client, req)
85304}
85305
85306// Do executes the "compute.instances.getSerialPortOutput" call.
85307// Exactly one of *SerialPortOutput or error will be non-nil. Any
85308// non-2xx status code is an error. Response headers are in either
85309// *SerialPortOutput.ServerResponse.Header or (if a response was
85310// returned at all) in error.(*googleapi.Error).Header. Use
85311// googleapi.IsNotModified to check whether the returned error was
85312// because http.StatusNotModified was returned.
85313func (c *InstancesGetSerialPortOutputCall) Do(opts ...googleapi.CallOption) (*SerialPortOutput, error) {
85314	gensupport.SetOptions(c.urlParams_, opts...)
85315	res, err := c.doRequest("json")
85316	if res != nil && res.StatusCode == http.StatusNotModified {
85317		if res.Body != nil {
85318			res.Body.Close()
85319		}
85320		return nil, &googleapi.Error{
85321			Code:   res.StatusCode,
85322			Header: res.Header,
85323		}
85324	}
85325	if err != nil {
85326		return nil, err
85327	}
85328	defer googleapi.CloseBody(res)
85329	if err := googleapi.CheckResponse(res); err != nil {
85330		return nil, err
85331	}
85332	ret := &SerialPortOutput{
85333		ServerResponse: googleapi.ServerResponse{
85334			Header:         res.Header,
85335			HTTPStatusCode: res.StatusCode,
85336		},
85337	}
85338	target := &ret
85339	if err := gensupport.DecodeResponse(target, res); err != nil {
85340		return nil, err
85341	}
85342	return ret, nil
85343	// {
85344	//   "description": "Returns the last 1 MB of serial port output from the specified instance. (== suppress_warning http-rest-shadowed ==)",
85345	//   "httpMethod": "GET",
85346	//   "id": "compute.instances.getSerialPortOutput",
85347	//   "parameterOrder": [
85348	//     "project",
85349	//     "zone",
85350	//     "instance"
85351	//   ],
85352	//   "parameters": {
85353	//     "instance": {
85354	//       "description": "Name of the instance scoping this request.",
85355	//       "location": "path",
85356	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
85357	//       "required": true,
85358	//       "type": "string"
85359	//     },
85360	//     "port": {
85361	//       "default": "1",
85362	//       "description": "Specifies which COM or serial port to retrieve data from.",
85363	//       "format": "int32",
85364	//       "location": "query",
85365	//       "maximum": "4",
85366	//       "minimum": "1",
85367	//       "type": "integer"
85368	//     },
85369	//     "project": {
85370	//       "description": "Project ID for this request.",
85371	//       "location": "path",
85372	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
85373	//       "required": true,
85374	//       "type": "string"
85375	//     },
85376	//     "start": {
85377	//       "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.",
85378	//       "format": "int64",
85379	//       "location": "query",
85380	//       "type": "string"
85381	//     },
85382	//     "zone": {
85383	//       "description": "The name of the zone for this request.",
85384	//       "location": "path",
85385	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
85386	//       "required": true,
85387	//       "type": "string"
85388	//     }
85389	//   },
85390	//   "path": "{project}/zones/{zone}/instances/{instance}/serialPort",
85391	//   "response": {
85392	//     "$ref": "SerialPortOutput"
85393	//   },
85394	//   "scopes": [
85395	//     "https://www.googleapis.com/auth/cloud-platform",
85396	//     "https://www.googleapis.com/auth/compute",
85397	//     "https://www.googleapis.com/auth/compute.readonly"
85398	//   ]
85399	// }
85400
85401}
85402
85403// method id "compute.instances.getShieldedInstanceIdentity":
85404
85405type InstancesGetShieldedInstanceIdentityCall struct {
85406	s            *Service
85407	project      string
85408	zone         string
85409	instance     string
85410	urlParams_   gensupport.URLParams
85411	ifNoneMatch_ string
85412	ctx_         context.Context
85413	header_      http.Header
85414}
85415
85416// GetShieldedInstanceIdentity: Returns the Shielded Instance Identity
85417// of an instance (== suppress_warning http-rest-shadowed ==)
85418func (r *InstancesService) GetShieldedInstanceIdentity(project string, zone string, instance string) *InstancesGetShieldedInstanceIdentityCall {
85419	c := &InstancesGetShieldedInstanceIdentityCall{s: r.s, urlParams_: make(gensupport.URLParams)}
85420	c.project = project
85421	c.zone = zone
85422	c.instance = instance
85423	return c
85424}
85425
85426// Fields allows partial responses to be retrieved. See
85427// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
85428// for more information.
85429func (c *InstancesGetShieldedInstanceIdentityCall) Fields(s ...googleapi.Field) *InstancesGetShieldedInstanceIdentityCall {
85430	c.urlParams_.Set("fields", googleapi.CombineFields(s))
85431	return c
85432}
85433
85434// IfNoneMatch sets the optional parameter which makes the operation
85435// fail if the object's ETag matches the given value. This is useful for
85436// getting updates only after the object has changed since the last
85437// request. Use googleapi.IsNotModified to check whether the response
85438// error from Do is the result of In-None-Match.
85439func (c *InstancesGetShieldedInstanceIdentityCall) IfNoneMatch(entityTag string) *InstancesGetShieldedInstanceIdentityCall {
85440	c.ifNoneMatch_ = entityTag
85441	return c
85442}
85443
85444// Context sets the context to be used in this call's Do method. Any
85445// pending HTTP request will be aborted if the provided context is
85446// canceled.
85447func (c *InstancesGetShieldedInstanceIdentityCall) Context(ctx context.Context) *InstancesGetShieldedInstanceIdentityCall {
85448	c.ctx_ = ctx
85449	return c
85450}
85451
85452// Header returns an http.Header that can be modified by the caller to
85453// add HTTP headers to the request.
85454func (c *InstancesGetShieldedInstanceIdentityCall) Header() http.Header {
85455	if c.header_ == nil {
85456		c.header_ = make(http.Header)
85457	}
85458	return c.header_
85459}
85460
85461func (c *InstancesGetShieldedInstanceIdentityCall) doRequest(alt string) (*http.Response, error) {
85462	reqHeaders := make(http.Header)
85463	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
85464	for k, v := range c.header_ {
85465		reqHeaders[k] = v
85466	}
85467	reqHeaders.Set("User-Agent", c.s.userAgent())
85468	if c.ifNoneMatch_ != "" {
85469		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
85470	}
85471	var body io.Reader = nil
85472	c.urlParams_.Set("alt", alt)
85473	c.urlParams_.Set("prettyPrint", "false")
85474	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/getShieldedInstanceIdentity")
85475	urls += "?" + c.urlParams_.Encode()
85476	req, err := http.NewRequest("GET", urls, body)
85477	if err != nil {
85478		return nil, err
85479	}
85480	req.Header = reqHeaders
85481	googleapi.Expand(req.URL, map[string]string{
85482		"project":  c.project,
85483		"zone":     c.zone,
85484		"instance": c.instance,
85485	})
85486	return gensupport.SendRequest(c.ctx_, c.s.client, req)
85487}
85488
85489// Do executes the "compute.instances.getShieldedInstanceIdentity" call.
85490// Exactly one of *ShieldedInstanceIdentity or error will be non-nil.
85491// Any non-2xx status code is an error. Response headers are in either
85492// *ShieldedInstanceIdentity.ServerResponse.Header or (if a response was
85493// returned at all) in error.(*googleapi.Error).Header. Use
85494// googleapi.IsNotModified to check whether the returned error was
85495// because http.StatusNotModified was returned.
85496func (c *InstancesGetShieldedInstanceIdentityCall) Do(opts ...googleapi.CallOption) (*ShieldedInstanceIdentity, error) {
85497	gensupport.SetOptions(c.urlParams_, opts...)
85498	res, err := c.doRequest("json")
85499	if res != nil && res.StatusCode == http.StatusNotModified {
85500		if res.Body != nil {
85501			res.Body.Close()
85502		}
85503		return nil, &googleapi.Error{
85504			Code:   res.StatusCode,
85505			Header: res.Header,
85506		}
85507	}
85508	if err != nil {
85509		return nil, err
85510	}
85511	defer googleapi.CloseBody(res)
85512	if err := googleapi.CheckResponse(res); err != nil {
85513		return nil, err
85514	}
85515	ret := &ShieldedInstanceIdentity{
85516		ServerResponse: googleapi.ServerResponse{
85517			Header:         res.Header,
85518			HTTPStatusCode: res.StatusCode,
85519		},
85520	}
85521	target := &ret
85522	if err := gensupport.DecodeResponse(target, res); err != nil {
85523		return nil, err
85524	}
85525	return ret, nil
85526	// {
85527	//   "description": "Returns the Shielded Instance Identity of an instance (== suppress_warning http-rest-shadowed ==)",
85528	//   "httpMethod": "GET",
85529	//   "id": "compute.instances.getShieldedInstanceIdentity",
85530	//   "parameterOrder": [
85531	//     "project",
85532	//     "zone",
85533	//     "instance"
85534	//   ],
85535	//   "parameters": {
85536	//     "instance": {
85537	//       "description": "Name or id of the instance scoping this request.",
85538	//       "location": "path",
85539	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
85540	//       "required": true,
85541	//       "type": "string"
85542	//     },
85543	//     "project": {
85544	//       "description": "Project ID for this request.",
85545	//       "location": "path",
85546	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
85547	//       "required": true,
85548	//       "type": "string"
85549	//     },
85550	//     "zone": {
85551	//       "description": "The name of the zone for this request.",
85552	//       "location": "path",
85553	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
85554	//       "required": true,
85555	//       "type": "string"
85556	//     }
85557	//   },
85558	//   "path": "{project}/zones/{zone}/instances/{instance}/getShieldedInstanceIdentity",
85559	//   "response": {
85560	//     "$ref": "ShieldedInstanceIdentity"
85561	//   },
85562	//   "scopes": [
85563	//     "https://www.googleapis.com/auth/cloud-platform",
85564	//     "https://www.googleapis.com/auth/compute",
85565	//     "https://www.googleapis.com/auth/compute.readonly"
85566	//   ]
85567	// }
85568
85569}
85570
85571// method id "compute.instances.getShieldedVmIdentity":
85572
85573type InstancesGetShieldedVmIdentityCall struct {
85574	s            *Service
85575	project      string
85576	zone         string
85577	instance     string
85578	urlParams_   gensupport.URLParams
85579	ifNoneMatch_ string
85580	ctx_         context.Context
85581	header_      http.Header
85582}
85583
85584// GetShieldedVmIdentity: Returns the Shielded VM Identity of an
85585// instance (== suppress_warning http-rest-shadowed ==)
85586func (r *InstancesService) GetShieldedVmIdentity(project string, zone string, instance string) *InstancesGetShieldedVmIdentityCall {
85587	c := &InstancesGetShieldedVmIdentityCall{s: r.s, urlParams_: make(gensupport.URLParams)}
85588	c.project = project
85589	c.zone = zone
85590	c.instance = instance
85591	return c
85592}
85593
85594// Fields allows partial responses to be retrieved. See
85595// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
85596// for more information.
85597func (c *InstancesGetShieldedVmIdentityCall) Fields(s ...googleapi.Field) *InstancesGetShieldedVmIdentityCall {
85598	c.urlParams_.Set("fields", googleapi.CombineFields(s))
85599	return c
85600}
85601
85602// IfNoneMatch sets the optional parameter which makes the operation
85603// fail if the object's ETag matches the given value. This is useful for
85604// getting updates only after the object has changed since the last
85605// request. Use googleapi.IsNotModified to check whether the response
85606// error from Do is the result of In-None-Match.
85607func (c *InstancesGetShieldedVmIdentityCall) IfNoneMatch(entityTag string) *InstancesGetShieldedVmIdentityCall {
85608	c.ifNoneMatch_ = entityTag
85609	return c
85610}
85611
85612// Context sets the context to be used in this call's Do method. Any
85613// pending HTTP request will be aborted if the provided context is
85614// canceled.
85615func (c *InstancesGetShieldedVmIdentityCall) Context(ctx context.Context) *InstancesGetShieldedVmIdentityCall {
85616	c.ctx_ = ctx
85617	return c
85618}
85619
85620// Header returns an http.Header that can be modified by the caller to
85621// add HTTP headers to the request.
85622func (c *InstancesGetShieldedVmIdentityCall) Header() http.Header {
85623	if c.header_ == nil {
85624		c.header_ = make(http.Header)
85625	}
85626	return c.header_
85627}
85628
85629func (c *InstancesGetShieldedVmIdentityCall) doRequest(alt string) (*http.Response, error) {
85630	reqHeaders := make(http.Header)
85631	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
85632	for k, v := range c.header_ {
85633		reqHeaders[k] = v
85634	}
85635	reqHeaders.Set("User-Agent", c.s.userAgent())
85636	if c.ifNoneMatch_ != "" {
85637		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
85638	}
85639	var body io.Reader = nil
85640	c.urlParams_.Set("alt", alt)
85641	c.urlParams_.Set("prettyPrint", "false")
85642	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/getShieldedVmIdentity")
85643	urls += "?" + c.urlParams_.Encode()
85644	req, err := http.NewRequest("GET", urls, body)
85645	if err != nil {
85646		return nil, err
85647	}
85648	req.Header = reqHeaders
85649	googleapi.Expand(req.URL, map[string]string{
85650		"project":  c.project,
85651		"zone":     c.zone,
85652		"instance": c.instance,
85653	})
85654	return gensupport.SendRequest(c.ctx_, c.s.client, req)
85655}
85656
85657// Do executes the "compute.instances.getShieldedVmIdentity" call.
85658// Exactly one of *ShieldedVmIdentity or error will be non-nil. Any
85659// non-2xx status code is an error. Response headers are in either
85660// *ShieldedVmIdentity.ServerResponse.Header or (if a response was
85661// returned at all) in error.(*googleapi.Error).Header. Use
85662// googleapi.IsNotModified to check whether the returned error was
85663// because http.StatusNotModified was returned.
85664func (c *InstancesGetShieldedVmIdentityCall) Do(opts ...googleapi.CallOption) (*ShieldedVmIdentity, error) {
85665	gensupport.SetOptions(c.urlParams_, opts...)
85666	res, err := c.doRequest("json")
85667	if res != nil && res.StatusCode == http.StatusNotModified {
85668		if res.Body != nil {
85669			res.Body.Close()
85670		}
85671		return nil, &googleapi.Error{
85672			Code:   res.StatusCode,
85673			Header: res.Header,
85674		}
85675	}
85676	if err != nil {
85677		return nil, err
85678	}
85679	defer googleapi.CloseBody(res)
85680	if err := googleapi.CheckResponse(res); err != nil {
85681		return nil, err
85682	}
85683	ret := &ShieldedVmIdentity{
85684		ServerResponse: googleapi.ServerResponse{
85685			Header:         res.Header,
85686			HTTPStatusCode: res.StatusCode,
85687		},
85688	}
85689	target := &ret
85690	if err := gensupport.DecodeResponse(target, res); err != nil {
85691		return nil, err
85692	}
85693	return ret, nil
85694	// {
85695	//   "description": "Returns the Shielded VM Identity of an instance (== suppress_warning http-rest-shadowed ==)",
85696	//   "httpMethod": "GET",
85697	//   "id": "compute.instances.getShieldedVmIdentity",
85698	//   "parameterOrder": [
85699	//     "project",
85700	//     "zone",
85701	//     "instance"
85702	//   ],
85703	//   "parameters": {
85704	//     "instance": {
85705	//       "description": "Name of the instance scoping this request.",
85706	//       "location": "path",
85707	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
85708	//       "required": true,
85709	//       "type": "string"
85710	//     },
85711	//     "project": {
85712	//       "description": "Project ID for this request.",
85713	//       "location": "path",
85714	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
85715	//       "required": true,
85716	//       "type": "string"
85717	//     },
85718	//     "zone": {
85719	//       "description": "The name of the zone for this request.",
85720	//       "location": "path",
85721	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
85722	//       "required": true,
85723	//       "type": "string"
85724	//     }
85725	//   },
85726	//   "path": "{project}/zones/{zone}/instances/{instance}/getShieldedVmIdentity",
85727	//   "response": {
85728	//     "$ref": "ShieldedVmIdentity"
85729	//   },
85730	//   "scopes": [
85731	//     "https://www.googleapis.com/auth/cloud-platform",
85732	//     "https://www.googleapis.com/auth/compute",
85733	//     "https://www.googleapis.com/auth/compute.readonly"
85734	//   ]
85735	// }
85736
85737}
85738
85739// method id "compute.instances.insert":
85740
85741type InstancesInsertCall struct {
85742	s          *Service
85743	project    string
85744	zone       string
85745	instance   *Instance
85746	urlParams_ gensupport.URLParams
85747	ctx_       context.Context
85748	header_    http.Header
85749}
85750
85751// Insert: Creates an instance resource in the specified project using
85752// the data included in the request. (== suppress_warning
85753// http-rest-shadowed ==)
85754// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/insert
85755func (r *InstancesService) Insert(project string, zone string, instance *Instance) *InstancesInsertCall {
85756	c := &InstancesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
85757	c.project = project
85758	c.zone = zone
85759	c.instance = instance
85760	return c
85761}
85762
85763// RequestId sets the optional parameter "requestId": An optional
85764// request ID to identify requests. Specify a unique request ID so that
85765// if you must retry your request, the server will know to ignore the
85766// request if it has already been completed.
85767//
85768// For example, consider a situation where you make an initial request
85769// and the request times out. If you make the request again with the
85770// same request ID, the server can check if original operation with the
85771// same request ID was received, and if so, will ignore the second
85772// request. This prevents clients from accidentally creating duplicate
85773// commitments.
85774//
85775// The request ID must be a valid UUID with the exception that zero UUID
85776// is not supported (00000000-0000-0000-0000-000000000000).
85777func (c *InstancesInsertCall) RequestId(requestId string) *InstancesInsertCall {
85778	c.urlParams_.Set("requestId", requestId)
85779	return c
85780}
85781
85782// SourceInstanceTemplate sets the optional parameter
85783// "sourceInstanceTemplate": Specifies instance template to create the
85784// instance.
85785//
85786// This field is optional. It can be a full or partial URL. For example,
85787// the following are all valid URLs to an instance template:
85788// -
85789// https://www.googleapis.com/compute/v1/projects/project/global/instanceTemplates/instanceTemplate
85790// - projects/project/global/instanceTemplates/instanceTemplate
85791// - global/instanceTemplates/instanceTemplate
85792func (c *InstancesInsertCall) SourceInstanceTemplate(sourceInstanceTemplate string) *InstancesInsertCall {
85793	c.urlParams_.Set("sourceInstanceTemplate", sourceInstanceTemplate)
85794	return c
85795}
85796
85797// SourceMachineImage sets the optional parameter "sourceMachineImage":
85798// Specifies instance machine to create the instance.
85799//
85800// This field is optional. It can be a full or partial URL. For example,
85801// the following are all valid URLs to an instance template:
85802// -
85803// https://www.googleapis.com/compute/v1/projects/project/global/global/machineImages/machineImage
85804// - projects/project/global/global/machineImages/machineImage
85805// - global/machineImages/machineImage
85806func (c *InstancesInsertCall) SourceMachineImage(sourceMachineImage string) *InstancesInsertCall {
85807	c.urlParams_.Set("sourceMachineImage", sourceMachineImage)
85808	return c
85809}
85810
85811// Fields allows partial responses to be retrieved. See
85812// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
85813// for more information.
85814func (c *InstancesInsertCall) Fields(s ...googleapi.Field) *InstancesInsertCall {
85815	c.urlParams_.Set("fields", googleapi.CombineFields(s))
85816	return c
85817}
85818
85819// Context sets the context to be used in this call's Do method. Any
85820// pending HTTP request will be aborted if the provided context is
85821// canceled.
85822func (c *InstancesInsertCall) Context(ctx context.Context) *InstancesInsertCall {
85823	c.ctx_ = ctx
85824	return c
85825}
85826
85827// Header returns an http.Header that can be modified by the caller to
85828// add HTTP headers to the request.
85829func (c *InstancesInsertCall) Header() http.Header {
85830	if c.header_ == nil {
85831		c.header_ = make(http.Header)
85832	}
85833	return c.header_
85834}
85835
85836func (c *InstancesInsertCall) doRequest(alt string) (*http.Response, error) {
85837	reqHeaders := make(http.Header)
85838	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
85839	for k, v := range c.header_ {
85840		reqHeaders[k] = v
85841	}
85842	reqHeaders.Set("User-Agent", c.s.userAgent())
85843	var body io.Reader = nil
85844	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instance)
85845	if err != nil {
85846		return nil, err
85847	}
85848	reqHeaders.Set("Content-Type", "application/json")
85849	c.urlParams_.Set("alt", alt)
85850	c.urlParams_.Set("prettyPrint", "false")
85851	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances")
85852	urls += "?" + c.urlParams_.Encode()
85853	req, err := http.NewRequest("POST", urls, body)
85854	if err != nil {
85855		return nil, err
85856	}
85857	req.Header = reqHeaders
85858	googleapi.Expand(req.URL, map[string]string{
85859		"project": c.project,
85860		"zone":    c.zone,
85861	})
85862	return gensupport.SendRequest(c.ctx_, c.s.client, req)
85863}
85864
85865// Do executes the "compute.instances.insert" call.
85866// Exactly one of *Operation or error will be non-nil. Any non-2xx
85867// status code is an error. Response headers are in either
85868// *Operation.ServerResponse.Header or (if a response was returned at
85869// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
85870// to check whether the returned error was because
85871// http.StatusNotModified was returned.
85872func (c *InstancesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
85873	gensupport.SetOptions(c.urlParams_, opts...)
85874	res, err := c.doRequest("json")
85875	if res != nil && res.StatusCode == http.StatusNotModified {
85876		if res.Body != nil {
85877			res.Body.Close()
85878		}
85879		return nil, &googleapi.Error{
85880			Code:   res.StatusCode,
85881			Header: res.Header,
85882		}
85883	}
85884	if err != nil {
85885		return nil, err
85886	}
85887	defer googleapi.CloseBody(res)
85888	if err := googleapi.CheckResponse(res); err != nil {
85889		return nil, err
85890	}
85891	ret := &Operation{
85892		ServerResponse: googleapi.ServerResponse{
85893			Header:         res.Header,
85894			HTTPStatusCode: res.StatusCode,
85895		},
85896	}
85897	target := &ret
85898	if err := gensupport.DecodeResponse(target, res); err != nil {
85899		return nil, err
85900	}
85901	return ret, nil
85902	// {
85903	//   "description": "Creates an instance resource in the specified project using the data included in the request. (== suppress_warning http-rest-shadowed ==)",
85904	//   "httpMethod": "POST",
85905	//   "id": "compute.instances.insert",
85906	//   "parameterOrder": [
85907	//     "project",
85908	//     "zone"
85909	//   ],
85910	//   "parameters": {
85911	//     "project": {
85912	//       "description": "Project ID for this request.",
85913	//       "location": "path",
85914	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
85915	//       "required": true,
85916	//       "type": "string"
85917	//     },
85918	//     "requestId": {
85919	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
85920	//       "location": "query",
85921	//       "type": "string"
85922	//     },
85923	//     "sourceInstanceTemplate": {
85924	//       "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",
85925	//       "location": "query",
85926	//       "type": "string"
85927	//     },
85928	//     "sourceMachineImage": {
85929	//       "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",
85930	//       "location": "query",
85931	//       "type": "string"
85932	//     },
85933	//     "zone": {
85934	//       "description": "The name of the zone for this request.",
85935	//       "location": "path",
85936	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
85937	//       "required": true,
85938	//       "type": "string"
85939	//     }
85940	//   },
85941	//   "path": "{project}/zones/{zone}/instances",
85942	//   "request": {
85943	//     "$ref": "Instance"
85944	//   },
85945	//   "response": {
85946	//     "$ref": "Operation"
85947	//   },
85948	//   "scopes": [
85949	//     "https://www.googleapis.com/auth/cloud-platform",
85950	//     "https://www.googleapis.com/auth/compute"
85951	//   ]
85952	// }
85953
85954}
85955
85956// method id "compute.instances.list":
85957
85958type InstancesListCall struct {
85959	s            *Service
85960	project      string
85961	zone         string
85962	urlParams_   gensupport.URLParams
85963	ifNoneMatch_ string
85964	ctx_         context.Context
85965	header_      http.Header
85966}
85967
85968// List: Retrieves the list of instances contained within the specified
85969// zone. (== suppress_warning http-rest-shadowed ==)
85970// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/list
85971func (r *InstancesService) List(project string, zone string) *InstancesListCall {
85972	c := &InstancesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
85973	c.project = project
85974	c.zone = zone
85975	return c
85976}
85977
85978// Filter sets the optional parameter "filter": A filter expression that
85979// filters resources listed in the response. The expression must specify
85980// the field name, a comparison operator, and the value that you want to
85981// use for filtering. The value must be a string, a number, or a
85982// boolean. The comparison operator must be either =, !=, >, or <.
85983//
85984// For example, if you are filtering Compute Engine instances, you can
85985// exclude instances named example-instance by specifying name !=
85986// example-instance.
85987//
85988// You can also filter nested fields. For example, you could specify
85989// scheduling.automaticRestart = false to include instances only if they
85990// are not scheduled for automatic restarts. You can use filtering on
85991// nested fields to filter based on resource labels.
85992//
85993// To filter on multiple expressions, provide each separate expression
85994// within parentheses. For example, (scheduling.automaticRestart = true)
85995// (cpuPlatform = "Intel Skylake"). By default, each expression is an
85996// AND expression. However, you can include AND and OR expressions
85997// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
85998// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
85999// true).
86000func (c *InstancesListCall) Filter(filter string) *InstancesListCall {
86001	c.urlParams_.Set("filter", filter)
86002	return c
86003}
86004
86005// MaxResults sets the optional parameter "maxResults": The maximum
86006// number of results per page that should be returned. If the number of
86007// available results is larger than maxResults, Compute Engine returns a
86008// nextPageToken that can be used to get the next page of results in
86009// subsequent list requests. Acceptable values are 0 to 500, inclusive.
86010// (Default: 500)
86011func (c *InstancesListCall) MaxResults(maxResults int64) *InstancesListCall {
86012	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
86013	return c
86014}
86015
86016// OrderBy sets the optional parameter "orderBy": Sorts list results by
86017// a certain order. By default, results are returned in alphanumerical
86018// order based on the resource name.
86019//
86020// You can also sort results in descending order based on the creation
86021// timestamp using orderBy="creationTimestamp desc". This sorts results
86022// based on the creationTimestamp field in reverse chronological order
86023// (newest result first). Use this to sort resources like operations so
86024// that the newest operation is returned first.
86025//
86026// Currently, only sorting by name or creationTimestamp desc is
86027// supported.
86028func (c *InstancesListCall) OrderBy(orderBy string) *InstancesListCall {
86029	c.urlParams_.Set("orderBy", orderBy)
86030	return c
86031}
86032
86033// PageToken sets the optional parameter "pageToken": Specifies a page
86034// token to use. Set pageToken to the nextPageToken returned by a
86035// previous list request to get the next page of results.
86036func (c *InstancesListCall) PageToken(pageToken string) *InstancesListCall {
86037	c.urlParams_.Set("pageToken", pageToken)
86038	return c
86039}
86040
86041// Fields allows partial responses to be retrieved. See
86042// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
86043// for more information.
86044func (c *InstancesListCall) Fields(s ...googleapi.Field) *InstancesListCall {
86045	c.urlParams_.Set("fields", googleapi.CombineFields(s))
86046	return c
86047}
86048
86049// IfNoneMatch sets the optional parameter which makes the operation
86050// fail if the object's ETag matches the given value. This is useful for
86051// getting updates only after the object has changed since the last
86052// request. Use googleapi.IsNotModified to check whether the response
86053// error from Do is the result of In-None-Match.
86054func (c *InstancesListCall) IfNoneMatch(entityTag string) *InstancesListCall {
86055	c.ifNoneMatch_ = entityTag
86056	return c
86057}
86058
86059// Context sets the context to be used in this call's Do method. Any
86060// pending HTTP request will be aborted if the provided context is
86061// canceled.
86062func (c *InstancesListCall) Context(ctx context.Context) *InstancesListCall {
86063	c.ctx_ = ctx
86064	return c
86065}
86066
86067// Header returns an http.Header that can be modified by the caller to
86068// add HTTP headers to the request.
86069func (c *InstancesListCall) Header() http.Header {
86070	if c.header_ == nil {
86071		c.header_ = make(http.Header)
86072	}
86073	return c.header_
86074}
86075
86076func (c *InstancesListCall) doRequest(alt string) (*http.Response, error) {
86077	reqHeaders := make(http.Header)
86078	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
86079	for k, v := range c.header_ {
86080		reqHeaders[k] = v
86081	}
86082	reqHeaders.Set("User-Agent", c.s.userAgent())
86083	if c.ifNoneMatch_ != "" {
86084		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
86085	}
86086	var body io.Reader = nil
86087	c.urlParams_.Set("alt", alt)
86088	c.urlParams_.Set("prettyPrint", "false")
86089	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances")
86090	urls += "?" + c.urlParams_.Encode()
86091	req, err := http.NewRequest("GET", urls, body)
86092	if err != nil {
86093		return nil, err
86094	}
86095	req.Header = reqHeaders
86096	googleapi.Expand(req.URL, map[string]string{
86097		"project": c.project,
86098		"zone":    c.zone,
86099	})
86100	return gensupport.SendRequest(c.ctx_, c.s.client, req)
86101}
86102
86103// Do executes the "compute.instances.list" call.
86104// Exactly one of *InstanceList or error will be non-nil. Any non-2xx
86105// status code is an error. Response headers are in either
86106// *InstanceList.ServerResponse.Header or (if a response was returned at
86107// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
86108// to check whether the returned error was because
86109// http.StatusNotModified was returned.
86110func (c *InstancesListCall) Do(opts ...googleapi.CallOption) (*InstanceList, error) {
86111	gensupport.SetOptions(c.urlParams_, opts...)
86112	res, err := c.doRequest("json")
86113	if res != nil && res.StatusCode == http.StatusNotModified {
86114		if res.Body != nil {
86115			res.Body.Close()
86116		}
86117		return nil, &googleapi.Error{
86118			Code:   res.StatusCode,
86119			Header: res.Header,
86120		}
86121	}
86122	if err != nil {
86123		return nil, err
86124	}
86125	defer googleapi.CloseBody(res)
86126	if err := googleapi.CheckResponse(res); err != nil {
86127		return nil, err
86128	}
86129	ret := &InstanceList{
86130		ServerResponse: googleapi.ServerResponse{
86131			Header:         res.Header,
86132			HTTPStatusCode: res.StatusCode,
86133		},
86134	}
86135	target := &ret
86136	if err := gensupport.DecodeResponse(target, res); err != nil {
86137		return nil, err
86138	}
86139	return ret, nil
86140	// {
86141	//   "description": "Retrieves the list of instances contained within the specified zone. (== suppress_warning http-rest-shadowed ==)",
86142	//   "httpMethod": "GET",
86143	//   "id": "compute.instances.list",
86144	//   "parameterOrder": [
86145	//     "project",
86146	//     "zone"
86147	//   ],
86148	//   "parameters": {
86149	//     "filter": {
86150	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
86151	//       "location": "query",
86152	//       "type": "string"
86153	//     },
86154	//     "maxResults": {
86155	//       "default": "500",
86156	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
86157	//       "format": "uint32",
86158	//       "location": "query",
86159	//       "minimum": "0",
86160	//       "type": "integer"
86161	//     },
86162	//     "orderBy": {
86163	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
86164	//       "location": "query",
86165	//       "type": "string"
86166	//     },
86167	//     "pageToken": {
86168	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
86169	//       "location": "query",
86170	//       "type": "string"
86171	//     },
86172	//     "project": {
86173	//       "description": "Project ID for this request.",
86174	//       "location": "path",
86175	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
86176	//       "required": true,
86177	//       "type": "string"
86178	//     },
86179	//     "zone": {
86180	//       "description": "The name of the zone for this request.",
86181	//       "location": "path",
86182	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
86183	//       "required": true,
86184	//       "type": "string"
86185	//     }
86186	//   },
86187	//   "path": "{project}/zones/{zone}/instances",
86188	//   "response": {
86189	//     "$ref": "InstanceList"
86190	//   },
86191	//   "scopes": [
86192	//     "https://www.googleapis.com/auth/cloud-platform",
86193	//     "https://www.googleapis.com/auth/compute",
86194	//     "https://www.googleapis.com/auth/compute.readonly"
86195	//   ]
86196	// }
86197
86198}
86199
86200// Pages invokes f for each page of results.
86201// A non-nil error returned from f will halt the iteration.
86202// The provided context supersedes any context provided to the Context method.
86203func (c *InstancesListCall) Pages(ctx context.Context, f func(*InstanceList) error) error {
86204	c.ctx_ = ctx
86205	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
86206	for {
86207		x, err := c.Do()
86208		if err != nil {
86209			return err
86210		}
86211		if err := f(x); err != nil {
86212			return err
86213		}
86214		if x.NextPageToken == "" {
86215			return nil
86216		}
86217		c.PageToken(x.NextPageToken)
86218	}
86219}
86220
86221// method id "compute.instances.listReferrers":
86222
86223type InstancesListReferrersCall struct {
86224	s            *Service
86225	project      string
86226	zone         string
86227	instance     string
86228	urlParams_   gensupport.URLParams
86229	ifNoneMatch_ string
86230	ctx_         context.Context
86231	header_      http.Header
86232}
86233
86234// ListReferrers: Retrieves the list of referrers to instances contained
86235// within the specified zone. For more information, read Viewing
86236// Referrers to VM Instances. (== suppress_warning http-rest-shadowed
86237// ==)
86238func (r *InstancesService) ListReferrers(project string, zone string, instance string) *InstancesListReferrersCall {
86239	c := &InstancesListReferrersCall{s: r.s, urlParams_: make(gensupport.URLParams)}
86240	c.project = project
86241	c.zone = zone
86242	c.instance = instance
86243	return c
86244}
86245
86246// Filter sets the optional parameter "filter": A filter expression that
86247// filters resources listed in the response. The expression must specify
86248// the field name, a comparison operator, and the value that you want to
86249// use for filtering. The value must be a string, a number, or a
86250// boolean. The comparison operator must be either =, !=, >, or <.
86251//
86252// For example, if you are filtering Compute Engine instances, you can
86253// exclude instances named example-instance by specifying name !=
86254// example-instance.
86255//
86256// You can also filter nested fields. For example, you could specify
86257// scheduling.automaticRestart = false to include instances only if they
86258// are not scheduled for automatic restarts. You can use filtering on
86259// nested fields to filter based on resource labels.
86260//
86261// To filter on multiple expressions, provide each separate expression
86262// within parentheses. For example, (scheduling.automaticRestart = true)
86263// (cpuPlatform = "Intel Skylake"). By default, each expression is an
86264// AND expression. However, you can include AND and OR expressions
86265// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
86266// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
86267// true).
86268func (c *InstancesListReferrersCall) Filter(filter string) *InstancesListReferrersCall {
86269	c.urlParams_.Set("filter", filter)
86270	return c
86271}
86272
86273// MaxResults sets the optional parameter "maxResults": The maximum
86274// number of results per page that should be returned. If the number of
86275// available results is larger than maxResults, Compute Engine returns a
86276// nextPageToken that can be used to get the next page of results in
86277// subsequent list requests. Acceptable values are 0 to 500, inclusive.
86278// (Default: 500)
86279func (c *InstancesListReferrersCall) MaxResults(maxResults int64) *InstancesListReferrersCall {
86280	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
86281	return c
86282}
86283
86284// OrderBy sets the optional parameter "orderBy": Sorts list results by
86285// a certain order. By default, results are returned in alphanumerical
86286// order based on the resource name.
86287//
86288// You can also sort results in descending order based on the creation
86289// timestamp using orderBy="creationTimestamp desc". This sorts results
86290// based on the creationTimestamp field in reverse chronological order
86291// (newest result first). Use this to sort resources like operations so
86292// that the newest operation is returned first.
86293//
86294// Currently, only sorting by name or creationTimestamp desc is
86295// supported.
86296func (c *InstancesListReferrersCall) OrderBy(orderBy string) *InstancesListReferrersCall {
86297	c.urlParams_.Set("orderBy", orderBy)
86298	return c
86299}
86300
86301// PageToken sets the optional parameter "pageToken": Specifies a page
86302// token to use. Set pageToken to the nextPageToken returned by a
86303// previous list request to get the next page of results.
86304func (c *InstancesListReferrersCall) PageToken(pageToken string) *InstancesListReferrersCall {
86305	c.urlParams_.Set("pageToken", pageToken)
86306	return c
86307}
86308
86309// Fields allows partial responses to be retrieved. See
86310// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
86311// for more information.
86312func (c *InstancesListReferrersCall) Fields(s ...googleapi.Field) *InstancesListReferrersCall {
86313	c.urlParams_.Set("fields", googleapi.CombineFields(s))
86314	return c
86315}
86316
86317// IfNoneMatch sets the optional parameter which makes the operation
86318// fail if the object's ETag matches the given value. This is useful for
86319// getting updates only after the object has changed since the last
86320// request. Use googleapi.IsNotModified to check whether the response
86321// error from Do is the result of In-None-Match.
86322func (c *InstancesListReferrersCall) IfNoneMatch(entityTag string) *InstancesListReferrersCall {
86323	c.ifNoneMatch_ = entityTag
86324	return c
86325}
86326
86327// Context sets the context to be used in this call's Do method. Any
86328// pending HTTP request will be aborted if the provided context is
86329// canceled.
86330func (c *InstancesListReferrersCall) Context(ctx context.Context) *InstancesListReferrersCall {
86331	c.ctx_ = ctx
86332	return c
86333}
86334
86335// Header returns an http.Header that can be modified by the caller to
86336// add HTTP headers to the request.
86337func (c *InstancesListReferrersCall) Header() http.Header {
86338	if c.header_ == nil {
86339		c.header_ = make(http.Header)
86340	}
86341	return c.header_
86342}
86343
86344func (c *InstancesListReferrersCall) doRequest(alt string) (*http.Response, error) {
86345	reqHeaders := make(http.Header)
86346	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
86347	for k, v := range c.header_ {
86348		reqHeaders[k] = v
86349	}
86350	reqHeaders.Set("User-Agent", c.s.userAgent())
86351	if c.ifNoneMatch_ != "" {
86352		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
86353	}
86354	var body io.Reader = nil
86355	c.urlParams_.Set("alt", alt)
86356	c.urlParams_.Set("prettyPrint", "false")
86357	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/referrers")
86358	urls += "?" + c.urlParams_.Encode()
86359	req, err := http.NewRequest("GET", urls, body)
86360	if err != nil {
86361		return nil, err
86362	}
86363	req.Header = reqHeaders
86364	googleapi.Expand(req.URL, map[string]string{
86365		"project":  c.project,
86366		"zone":     c.zone,
86367		"instance": c.instance,
86368	})
86369	return gensupport.SendRequest(c.ctx_, c.s.client, req)
86370}
86371
86372// Do executes the "compute.instances.listReferrers" call.
86373// Exactly one of *InstanceListReferrers or error will be non-nil. Any
86374// non-2xx status code is an error. Response headers are in either
86375// *InstanceListReferrers.ServerResponse.Header or (if a response was
86376// returned at all) in error.(*googleapi.Error).Header. Use
86377// googleapi.IsNotModified to check whether the returned error was
86378// because http.StatusNotModified was returned.
86379func (c *InstancesListReferrersCall) Do(opts ...googleapi.CallOption) (*InstanceListReferrers, error) {
86380	gensupport.SetOptions(c.urlParams_, opts...)
86381	res, err := c.doRequest("json")
86382	if res != nil && res.StatusCode == http.StatusNotModified {
86383		if res.Body != nil {
86384			res.Body.Close()
86385		}
86386		return nil, &googleapi.Error{
86387			Code:   res.StatusCode,
86388			Header: res.Header,
86389		}
86390	}
86391	if err != nil {
86392		return nil, err
86393	}
86394	defer googleapi.CloseBody(res)
86395	if err := googleapi.CheckResponse(res); err != nil {
86396		return nil, err
86397	}
86398	ret := &InstanceListReferrers{
86399		ServerResponse: googleapi.ServerResponse{
86400			Header:         res.Header,
86401			HTTPStatusCode: res.StatusCode,
86402		},
86403	}
86404	target := &ret
86405	if err := gensupport.DecodeResponse(target, res); err != nil {
86406		return nil, err
86407	}
86408	return ret, nil
86409	// {
86410	//   "description": "Retrieves the list of referrers to instances contained within the specified zone. For more information, read Viewing Referrers to VM Instances. (== suppress_warning http-rest-shadowed ==)",
86411	//   "httpMethod": "GET",
86412	//   "id": "compute.instances.listReferrers",
86413	//   "parameterOrder": [
86414	//     "project",
86415	//     "zone",
86416	//     "instance"
86417	//   ],
86418	//   "parameters": {
86419	//     "filter": {
86420	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
86421	//       "location": "query",
86422	//       "type": "string"
86423	//     },
86424	//     "instance": {
86425	//       "description": "Name of the target instance scoping this request, or '-' if the request should span over all instances in the container.",
86426	//       "location": "path",
86427	//       "pattern": "-|[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
86428	//       "required": true,
86429	//       "type": "string"
86430	//     },
86431	//     "maxResults": {
86432	//       "default": "500",
86433	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
86434	//       "format": "uint32",
86435	//       "location": "query",
86436	//       "minimum": "0",
86437	//       "type": "integer"
86438	//     },
86439	//     "orderBy": {
86440	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
86441	//       "location": "query",
86442	//       "type": "string"
86443	//     },
86444	//     "pageToken": {
86445	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
86446	//       "location": "query",
86447	//       "type": "string"
86448	//     },
86449	//     "project": {
86450	//       "description": "Project ID for this request.",
86451	//       "location": "path",
86452	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
86453	//       "required": true,
86454	//       "type": "string"
86455	//     },
86456	//     "zone": {
86457	//       "description": "The name of the zone for this request.",
86458	//       "location": "path",
86459	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
86460	//       "required": true,
86461	//       "type": "string"
86462	//     }
86463	//   },
86464	//   "path": "{project}/zones/{zone}/instances/{instance}/referrers",
86465	//   "response": {
86466	//     "$ref": "InstanceListReferrers"
86467	//   },
86468	//   "scopes": [
86469	//     "https://www.googleapis.com/auth/cloud-platform",
86470	//     "https://www.googleapis.com/auth/compute",
86471	//     "https://www.googleapis.com/auth/compute.readonly"
86472	//   ]
86473	// }
86474
86475}
86476
86477// Pages invokes f for each page of results.
86478// A non-nil error returned from f will halt the iteration.
86479// The provided context supersedes any context provided to the Context method.
86480func (c *InstancesListReferrersCall) Pages(ctx context.Context, f func(*InstanceListReferrers) error) error {
86481	c.ctx_ = ctx
86482	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
86483	for {
86484		x, err := c.Do()
86485		if err != nil {
86486			return err
86487		}
86488		if err := f(x); err != nil {
86489			return err
86490		}
86491		if x.NextPageToken == "" {
86492			return nil
86493		}
86494		c.PageToken(x.NextPageToken)
86495	}
86496}
86497
86498// method id "compute.instances.removeResourcePolicies":
86499
86500type InstancesRemoveResourcePoliciesCall struct {
86501	s                                      *Service
86502	project                                string
86503	zone                                   string
86504	instance                               string
86505	instancesremoveresourcepoliciesrequest *InstancesRemoveResourcePoliciesRequest
86506	urlParams_                             gensupport.URLParams
86507	ctx_                                   context.Context
86508	header_                                http.Header
86509}
86510
86511// RemoveResourcePolicies: Removes resource policies from an instance.
86512// (== suppress_warning http-rest-shadowed ==)
86513func (r *InstancesService) RemoveResourcePolicies(project string, zone string, instance string, instancesremoveresourcepoliciesrequest *InstancesRemoveResourcePoliciesRequest) *InstancesRemoveResourcePoliciesCall {
86514	c := &InstancesRemoveResourcePoliciesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
86515	c.project = project
86516	c.zone = zone
86517	c.instance = instance
86518	c.instancesremoveresourcepoliciesrequest = instancesremoveresourcepoliciesrequest
86519	return c
86520}
86521
86522// RequestId sets the optional parameter "requestId": An optional
86523// request ID to identify requests. Specify a unique request ID so that
86524// if you must retry your request, the server will know to ignore the
86525// request if it has already been completed.
86526//
86527// For example, consider a situation where you make an initial request
86528// and the request times out. If you make the request again with the
86529// same request ID, the server can check if original operation with the
86530// same request ID was received, and if so, will ignore the second
86531// request. This prevents clients from accidentally creating duplicate
86532// commitments.
86533//
86534// The request ID must be a valid UUID with the exception that zero UUID
86535// is not supported (00000000-0000-0000-0000-000000000000).
86536func (c *InstancesRemoveResourcePoliciesCall) RequestId(requestId string) *InstancesRemoveResourcePoliciesCall {
86537	c.urlParams_.Set("requestId", requestId)
86538	return c
86539}
86540
86541// Fields allows partial responses to be retrieved. See
86542// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
86543// for more information.
86544func (c *InstancesRemoveResourcePoliciesCall) Fields(s ...googleapi.Field) *InstancesRemoveResourcePoliciesCall {
86545	c.urlParams_.Set("fields", googleapi.CombineFields(s))
86546	return c
86547}
86548
86549// Context sets the context to be used in this call's Do method. Any
86550// pending HTTP request will be aborted if the provided context is
86551// canceled.
86552func (c *InstancesRemoveResourcePoliciesCall) Context(ctx context.Context) *InstancesRemoveResourcePoliciesCall {
86553	c.ctx_ = ctx
86554	return c
86555}
86556
86557// Header returns an http.Header that can be modified by the caller to
86558// add HTTP headers to the request.
86559func (c *InstancesRemoveResourcePoliciesCall) Header() http.Header {
86560	if c.header_ == nil {
86561		c.header_ = make(http.Header)
86562	}
86563	return c.header_
86564}
86565
86566func (c *InstancesRemoveResourcePoliciesCall) doRequest(alt string) (*http.Response, error) {
86567	reqHeaders := make(http.Header)
86568	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
86569	for k, v := range c.header_ {
86570		reqHeaders[k] = v
86571	}
86572	reqHeaders.Set("User-Agent", c.s.userAgent())
86573	var body io.Reader = nil
86574	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancesremoveresourcepoliciesrequest)
86575	if err != nil {
86576		return nil, err
86577	}
86578	reqHeaders.Set("Content-Type", "application/json")
86579	c.urlParams_.Set("alt", alt)
86580	c.urlParams_.Set("prettyPrint", "false")
86581	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/removeResourcePolicies")
86582	urls += "?" + c.urlParams_.Encode()
86583	req, err := http.NewRequest("POST", urls, body)
86584	if err != nil {
86585		return nil, err
86586	}
86587	req.Header = reqHeaders
86588	googleapi.Expand(req.URL, map[string]string{
86589		"project":  c.project,
86590		"zone":     c.zone,
86591		"instance": c.instance,
86592	})
86593	return gensupport.SendRequest(c.ctx_, c.s.client, req)
86594}
86595
86596// Do executes the "compute.instances.removeResourcePolicies" call.
86597// Exactly one of *Operation or error will be non-nil. Any non-2xx
86598// status code is an error. Response headers are in either
86599// *Operation.ServerResponse.Header or (if a response was returned at
86600// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
86601// to check whether the returned error was because
86602// http.StatusNotModified was returned.
86603func (c *InstancesRemoveResourcePoliciesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
86604	gensupport.SetOptions(c.urlParams_, opts...)
86605	res, err := c.doRequest("json")
86606	if res != nil && res.StatusCode == http.StatusNotModified {
86607		if res.Body != nil {
86608			res.Body.Close()
86609		}
86610		return nil, &googleapi.Error{
86611			Code:   res.StatusCode,
86612			Header: res.Header,
86613		}
86614	}
86615	if err != nil {
86616		return nil, err
86617	}
86618	defer googleapi.CloseBody(res)
86619	if err := googleapi.CheckResponse(res); err != nil {
86620		return nil, err
86621	}
86622	ret := &Operation{
86623		ServerResponse: googleapi.ServerResponse{
86624			Header:         res.Header,
86625			HTTPStatusCode: res.StatusCode,
86626		},
86627	}
86628	target := &ret
86629	if err := gensupport.DecodeResponse(target, res); err != nil {
86630		return nil, err
86631	}
86632	return ret, nil
86633	// {
86634	//   "description": "Removes resource policies from an instance. (== suppress_warning http-rest-shadowed ==)",
86635	//   "httpMethod": "POST",
86636	//   "id": "compute.instances.removeResourcePolicies",
86637	//   "parameterOrder": [
86638	//     "project",
86639	//     "zone",
86640	//     "instance"
86641	//   ],
86642	//   "parameters": {
86643	//     "instance": {
86644	//       "description": "The instance name for this request.",
86645	//       "location": "path",
86646	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
86647	//       "required": true,
86648	//       "type": "string"
86649	//     },
86650	//     "project": {
86651	//       "description": "Project ID for this request.",
86652	//       "location": "path",
86653	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
86654	//       "required": true,
86655	//       "type": "string"
86656	//     },
86657	//     "requestId": {
86658	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
86659	//       "location": "query",
86660	//       "type": "string"
86661	//     },
86662	//     "zone": {
86663	//       "description": "The name of the zone for this request.",
86664	//       "location": "path",
86665	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
86666	//       "required": true,
86667	//       "type": "string"
86668	//     }
86669	//   },
86670	//   "path": "{project}/zones/{zone}/instances/{instance}/removeResourcePolicies",
86671	//   "request": {
86672	//     "$ref": "InstancesRemoveResourcePoliciesRequest"
86673	//   },
86674	//   "response": {
86675	//     "$ref": "Operation"
86676	//   },
86677	//   "scopes": [
86678	//     "https://www.googleapis.com/auth/cloud-platform",
86679	//     "https://www.googleapis.com/auth/compute"
86680	//   ]
86681	// }
86682
86683}
86684
86685// method id "compute.instances.reset":
86686
86687type InstancesResetCall struct {
86688	s          *Service
86689	project    string
86690	zone       string
86691	instance   string
86692	urlParams_ gensupport.URLParams
86693	ctx_       context.Context
86694	header_    http.Header
86695}
86696
86697// Reset: Performs a reset on the instance. This is a hard reset the VM
86698// does not do a graceful shutdown. For more information, see Resetting
86699// an instance. (== suppress_warning http-rest-shadowed ==)
86700// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/reset
86701func (r *InstancesService) Reset(project string, zone string, instance string) *InstancesResetCall {
86702	c := &InstancesResetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
86703	c.project = project
86704	c.zone = zone
86705	c.instance = instance
86706	return c
86707}
86708
86709// RequestId sets the optional parameter "requestId": An optional
86710// request ID to identify requests. Specify a unique request ID so that
86711// if you must retry your request, the server will know to ignore the
86712// request if it has already been completed.
86713//
86714// For example, consider a situation where you make an initial request
86715// and the request times out. If you make the request again with the
86716// same request ID, the server can check if original operation with the
86717// same request ID was received, and if so, will ignore the second
86718// request. This prevents clients from accidentally creating duplicate
86719// commitments.
86720//
86721// The request ID must be a valid UUID with the exception that zero UUID
86722// is not supported (00000000-0000-0000-0000-000000000000).
86723func (c *InstancesResetCall) RequestId(requestId string) *InstancesResetCall {
86724	c.urlParams_.Set("requestId", requestId)
86725	return c
86726}
86727
86728// Fields allows partial responses to be retrieved. See
86729// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
86730// for more information.
86731func (c *InstancesResetCall) Fields(s ...googleapi.Field) *InstancesResetCall {
86732	c.urlParams_.Set("fields", googleapi.CombineFields(s))
86733	return c
86734}
86735
86736// Context sets the context to be used in this call's Do method. Any
86737// pending HTTP request will be aborted if the provided context is
86738// canceled.
86739func (c *InstancesResetCall) Context(ctx context.Context) *InstancesResetCall {
86740	c.ctx_ = ctx
86741	return c
86742}
86743
86744// Header returns an http.Header that can be modified by the caller to
86745// add HTTP headers to the request.
86746func (c *InstancesResetCall) Header() http.Header {
86747	if c.header_ == nil {
86748		c.header_ = make(http.Header)
86749	}
86750	return c.header_
86751}
86752
86753func (c *InstancesResetCall) doRequest(alt string) (*http.Response, error) {
86754	reqHeaders := make(http.Header)
86755	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
86756	for k, v := range c.header_ {
86757		reqHeaders[k] = v
86758	}
86759	reqHeaders.Set("User-Agent", c.s.userAgent())
86760	var body io.Reader = nil
86761	c.urlParams_.Set("alt", alt)
86762	c.urlParams_.Set("prettyPrint", "false")
86763	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/reset")
86764	urls += "?" + c.urlParams_.Encode()
86765	req, err := http.NewRequest("POST", urls, body)
86766	if err != nil {
86767		return nil, err
86768	}
86769	req.Header = reqHeaders
86770	googleapi.Expand(req.URL, map[string]string{
86771		"project":  c.project,
86772		"zone":     c.zone,
86773		"instance": c.instance,
86774	})
86775	return gensupport.SendRequest(c.ctx_, c.s.client, req)
86776}
86777
86778// Do executes the "compute.instances.reset" call.
86779// Exactly one of *Operation or error will be non-nil. Any non-2xx
86780// status code is an error. Response headers are in either
86781// *Operation.ServerResponse.Header or (if a response was returned at
86782// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
86783// to check whether the returned error was because
86784// http.StatusNotModified was returned.
86785func (c *InstancesResetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
86786	gensupport.SetOptions(c.urlParams_, opts...)
86787	res, err := c.doRequest("json")
86788	if res != nil && res.StatusCode == http.StatusNotModified {
86789		if res.Body != nil {
86790			res.Body.Close()
86791		}
86792		return nil, &googleapi.Error{
86793			Code:   res.StatusCode,
86794			Header: res.Header,
86795		}
86796	}
86797	if err != nil {
86798		return nil, err
86799	}
86800	defer googleapi.CloseBody(res)
86801	if err := googleapi.CheckResponse(res); err != nil {
86802		return nil, err
86803	}
86804	ret := &Operation{
86805		ServerResponse: googleapi.ServerResponse{
86806			Header:         res.Header,
86807			HTTPStatusCode: res.StatusCode,
86808		},
86809	}
86810	target := &ret
86811	if err := gensupport.DecodeResponse(target, res); err != nil {
86812		return nil, err
86813	}
86814	return ret, nil
86815	// {
86816	//   "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. (== suppress_warning http-rest-shadowed ==)",
86817	//   "httpMethod": "POST",
86818	//   "id": "compute.instances.reset",
86819	//   "parameterOrder": [
86820	//     "project",
86821	//     "zone",
86822	//     "instance"
86823	//   ],
86824	//   "parameters": {
86825	//     "instance": {
86826	//       "description": "Name of the instance scoping this request.",
86827	//       "location": "path",
86828	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
86829	//       "required": true,
86830	//       "type": "string"
86831	//     },
86832	//     "project": {
86833	//       "description": "Project ID for this request.",
86834	//       "location": "path",
86835	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
86836	//       "required": true,
86837	//       "type": "string"
86838	//     },
86839	//     "requestId": {
86840	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
86841	//       "location": "query",
86842	//       "type": "string"
86843	//     },
86844	//     "zone": {
86845	//       "description": "The name of the zone for this request.",
86846	//       "location": "path",
86847	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
86848	//       "required": true,
86849	//       "type": "string"
86850	//     }
86851	//   },
86852	//   "path": "{project}/zones/{zone}/instances/{instance}/reset",
86853	//   "response": {
86854	//     "$ref": "Operation"
86855	//   },
86856	//   "scopes": [
86857	//     "https://www.googleapis.com/auth/cloud-platform",
86858	//     "https://www.googleapis.com/auth/compute"
86859	//   ]
86860	// }
86861
86862}
86863
86864// method id "compute.instances.resume":
86865
86866type InstancesResumeCall struct {
86867	s                      *Service
86868	project                string
86869	zone                   string
86870	instance               string
86871	instancesresumerequest *InstancesResumeRequest
86872	urlParams_             gensupport.URLParams
86873	ctx_                   context.Context
86874	header_                http.Header
86875}
86876
86877// Resume: Resumes an instance that was suspended using the
86878// instances().suspend method. (== suppress_warning http-rest-shadowed
86879// ==)
86880func (r *InstancesService) Resume(project string, zone string, instance string, instancesresumerequest *InstancesResumeRequest) *InstancesResumeCall {
86881	c := &InstancesResumeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
86882	c.project = project
86883	c.zone = zone
86884	c.instance = instance
86885	c.instancesresumerequest = instancesresumerequest
86886	return c
86887}
86888
86889// RequestId sets the optional parameter "requestId": An optional
86890// request ID to identify requests. Specify a unique request ID so that
86891// if you must retry your request, the server will know to ignore the
86892// request if it has already been completed.
86893//
86894// For example, consider a situation where you make an initial request
86895// and the request times out. If you make the request again with the
86896// same request ID, the server can check if original operation with the
86897// same request ID was received, and if so, will ignore the second
86898// request. This prevents clients from accidentally creating duplicate
86899// commitments.
86900//
86901// The request ID must be a valid UUID with the exception that zero UUID
86902// is not supported (00000000-0000-0000-0000-000000000000).
86903func (c *InstancesResumeCall) RequestId(requestId string) *InstancesResumeCall {
86904	c.urlParams_.Set("requestId", requestId)
86905	return c
86906}
86907
86908// Fields allows partial responses to be retrieved. See
86909// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
86910// for more information.
86911func (c *InstancesResumeCall) Fields(s ...googleapi.Field) *InstancesResumeCall {
86912	c.urlParams_.Set("fields", googleapi.CombineFields(s))
86913	return c
86914}
86915
86916// Context sets the context to be used in this call's Do method. Any
86917// pending HTTP request will be aborted if the provided context is
86918// canceled.
86919func (c *InstancesResumeCall) Context(ctx context.Context) *InstancesResumeCall {
86920	c.ctx_ = ctx
86921	return c
86922}
86923
86924// Header returns an http.Header that can be modified by the caller to
86925// add HTTP headers to the request.
86926func (c *InstancesResumeCall) Header() http.Header {
86927	if c.header_ == nil {
86928		c.header_ = make(http.Header)
86929	}
86930	return c.header_
86931}
86932
86933func (c *InstancesResumeCall) doRequest(alt string) (*http.Response, error) {
86934	reqHeaders := make(http.Header)
86935	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
86936	for k, v := range c.header_ {
86937		reqHeaders[k] = v
86938	}
86939	reqHeaders.Set("User-Agent", c.s.userAgent())
86940	var body io.Reader = nil
86941	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancesresumerequest)
86942	if err != nil {
86943		return nil, err
86944	}
86945	reqHeaders.Set("Content-Type", "application/json")
86946	c.urlParams_.Set("alt", alt)
86947	c.urlParams_.Set("prettyPrint", "false")
86948	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/resume")
86949	urls += "?" + c.urlParams_.Encode()
86950	req, err := http.NewRequest("POST", urls, body)
86951	if err != nil {
86952		return nil, err
86953	}
86954	req.Header = reqHeaders
86955	googleapi.Expand(req.URL, map[string]string{
86956		"project":  c.project,
86957		"zone":     c.zone,
86958		"instance": c.instance,
86959	})
86960	return gensupport.SendRequest(c.ctx_, c.s.client, req)
86961}
86962
86963// Do executes the "compute.instances.resume" call.
86964// Exactly one of *Operation or error will be non-nil. Any non-2xx
86965// status code is an error. Response headers are in either
86966// *Operation.ServerResponse.Header or (if a response was returned at
86967// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
86968// to check whether the returned error was because
86969// http.StatusNotModified was returned.
86970func (c *InstancesResumeCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
86971	gensupport.SetOptions(c.urlParams_, opts...)
86972	res, err := c.doRequest("json")
86973	if res != nil && res.StatusCode == http.StatusNotModified {
86974		if res.Body != nil {
86975			res.Body.Close()
86976		}
86977		return nil, &googleapi.Error{
86978			Code:   res.StatusCode,
86979			Header: res.Header,
86980		}
86981	}
86982	if err != nil {
86983		return nil, err
86984	}
86985	defer googleapi.CloseBody(res)
86986	if err := googleapi.CheckResponse(res); err != nil {
86987		return nil, err
86988	}
86989	ret := &Operation{
86990		ServerResponse: googleapi.ServerResponse{
86991			Header:         res.Header,
86992			HTTPStatusCode: res.StatusCode,
86993		},
86994	}
86995	target := &ret
86996	if err := gensupport.DecodeResponse(target, res); err != nil {
86997		return nil, err
86998	}
86999	return ret, nil
87000	// {
87001	//   "description": "Resumes an instance that was suspended using the instances().suspend method. (== suppress_warning http-rest-shadowed ==)",
87002	//   "httpMethod": "POST",
87003	//   "id": "compute.instances.resume",
87004	//   "parameterOrder": [
87005	//     "project",
87006	//     "zone",
87007	//     "instance"
87008	//   ],
87009	//   "parameters": {
87010	//     "instance": {
87011	//       "description": "Name of the instance resource to resume.",
87012	//       "location": "path",
87013	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
87014	//       "required": true,
87015	//       "type": "string"
87016	//     },
87017	//     "project": {
87018	//       "description": "Project ID for this request.",
87019	//       "location": "path",
87020	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
87021	//       "required": true,
87022	//       "type": "string"
87023	//     },
87024	//     "requestId": {
87025	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
87026	//       "location": "query",
87027	//       "type": "string"
87028	//     },
87029	//     "zone": {
87030	//       "description": "The name of the zone for this request.",
87031	//       "location": "path",
87032	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
87033	//       "required": true,
87034	//       "type": "string"
87035	//     }
87036	//   },
87037	//   "path": "{project}/zones/{zone}/instances/{instance}/resume",
87038	//   "request": {
87039	//     "$ref": "InstancesResumeRequest"
87040	//   },
87041	//   "response": {
87042	//     "$ref": "Operation"
87043	//   },
87044	//   "scopes": [
87045	//     "https://www.googleapis.com/auth/cloud-platform",
87046	//     "https://www.googleapis.com/auth/compute"
87047	//   ]
87048	// }
87049
87050}
87051
87052// method id "compute.instances.setDeletionProtection":
87053
87054type InstancesSetDeletionProtectionCall struct {
87055	s          *Service
87056	project    string
87057	zone       string
87058	resource   string
87059	urlParams_ gensupport.URLParams
87060	ctx_       context.Context
87061	header_    http.Header
87062}
87063
87064// SetDeletionProtection: Sets deletion protection on the instance. (==
87065// suppress_warning http-rest-shadowed ==)
87066func (r *InstancesService) SetDeletionProtection(project string, zone string, resource string) *InstancesSetDeletionProtectionCall {
87067	c := &InstancesSetDeletionProtectionCall{s: r.s, urlParams_: make(gensupport.URLParams)}
87068	c.project = project
87069	c.zone = zone
87070	c.resource = resource
87071	return c
87072}
87073
87074// DeletionProtection sets the optional parameter "deletionProtection":
87075// Whether the resource should be protected against deletion.
87076func (c *InstancesSetDeletionProtectionCall) DeletionProtection(deletionProtection bool) *InstancesSetDeletionProtectionCall {
87077	c.urlParams_.Set("deletionProtection", fmt.Sprint(deletionProtection))
87078	return c
87079}
87080
87081// RequestId sets the optional parameter "requestId": An optional
87082// request ID to identify requests. Specify a unique request ID so that
87083// if you must retry your request, the server will know to ignore the
87084// request if it has already been completed.
87085//
87086// For example, consider a situation where you make an initial request
87087// and the request times out. If you make the request again with the
87088// same request ID, the server can check if original operation with the
87089// same request ID was received, and if so, will ignore the second
87090// request. This prevents clients from accidentally creating duplicate
87091// commitments.
87092//
87093// The request ID must be a valid UUID with the exception that zero UUID
87094// is not supported (00000000-0000-0000-0000-000000000000).
87095func (c *InstancesSetDeletionProtectionCall) RequestId(requestId string) *InstancesSetDeletionProtectionCall {
87096	c.urlParams_.Set("requestId", requestId)
87097	return c
87098}
87099
87100// Fields allows partial responses to be retrieved. See
87101// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
87102// for more information.
87103func (c *InstancesSetDeletionProtectionCall) Fields(s ...googleapi.Field) *InstancesSetDeletionProtectionCall {
87104	c.urlParams_.Set("fields", googleapi.CombineFields(s))
87105	return c
87106}
87107
87108// Context sets the context to be used in this call's Do method. Any
87109// pending HTTP request will be aborted if the provided context is
87110// canceled.
87111func (c *InstancesSetDeletionProtectionCall) Context(ctx context.Context) *InstancesSetDeletionProtectionCall {
87112	c.ctx_ = ctx
87113	return c
87114}
87115
87116// Header returns an http.Header that can be modified by the caller to
87117// add HTTP headers to the request.
87118func (c *InstancesSetDeletionProtectionCall) Header() http.Header {
87119	if c.header_ == nil {
87120		c.header_ = make(http.Header)
87121	}
87122	return c.header_
87123}
87124
87125func (c *InstancesSetDeletionProtectionCall) doRequest(alt string) (*http.Response, error) {
87126	reqHeaders := make(http.Header)
87127	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
87128	for k, v := range c.header_ {
87129		reqHeaders[k] = v
87130	}
87131	reqHeaders.Set("User-Agent", c.s.userAgent())
87132	var body io.Reader = nil
87133	c.urlParams_.Set("alt", alt)
87134	c.urlParams_.Set("prettyPrint", "false")
87135	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{resource}/setDeletionProtection")
87136	urls += "?" + c.urlParams_.Encode()
87137	req, err := http.NewRequest("POST", urls, body)
87138	if err != nil {
87139		return nil, err
87140	}
87141	req.Header = reqHeaders
87142	googleapi.Expand(req.URL, map[string]string{
87143		"project":  c.project,
87144		"zone":     c.zone,
87145		"resource": c.resource,
87146	})
87147	return gensupport.SendRequest(c.ctx_, c.s.client, req)
87148}
87149
87150// Do executes the "compute.instances.setDeletionProtection" call.
87151// Exactly one of *Operation or error will be non-nil. Any non-2xx
87152// status code is an error. Response headers are in either
87153// *Operation.ServerResponse.Header or (if a response was returned at
87154// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
87155// to check whether the returned error was because
87156// http.StatusNotModified was returned.
87157func (c *InstancesSetDeletionProtectionCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
87158	gensupport.SetOptions(c.urlParams_, opts...)
87159	res, err := c.doRequest("json")
87160	if res != nil && res.StatusCode == http.StatusNotModified {
87161		if res.Body != nil {
87162			res.Body.Close()
87163		}
87164		return nil, &googleapi.Error{
87165			Code:   res.StatusCode,
87166			Header: res.Header,
87167		}
87168	}
87169	if err != nil {
87170		return nil, err
87171	}
87172	defer googleapi.CloseBody(res)
87173	if err := googleapi.CheckResponse(res); err != nil {
87174		return nil, err
87175	}
87176	ret := &Operation{
87177		ServerResponse: googleapi.ServerResponse{
87178			Header:         res.Header,
87179			HTTPStatusCode: res.StatusCode,
87180		},
87181	}
87182	target := &ret
87183	if err := gensupport.DecodeResponse(target, res); err != nil {
87184		return nil, err
87185	}
87186	return ret, nil
87187	// {
87188	//   "description": "Sets deletion protection on the instance. (== suppress_warning http-rest-shadowed ==)",
87189	//   "httpMethod": "POST",
87190	//   "id": "compute.instances.setDeletionProtection",
87191	//   "parameterOrder": [
87192	//     "project",
87193	//     "zone",
87194	//     "resource"
87195	//   ],
87196	//   "parameters": {
87197	//     "deletionProtection": {
87198	//       "default": "true",
87199	//       "description": "Whether the resource should be protected against deletion.",
87200	//       "location": "query",
87201	//       "type": "boolean"
87202	//     },
87203	//     "project": {
87204	//       "description": "Project ID for this request.",
87205	//       "location": "path",
87206	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
87207	//       "required": true,
87208	//       "type": "string"
87209	//     },
87210	//     "requestId": {
87211	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
87212	//       "location": "query",
87213	//       "type": "string"
87214	//     },
87215	//     "resource": {
87216	//       "description": "Name or id of the resource for this request.",
87217	//       "location": "path",
87218	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
87219	//       "required": true,
87220	//       "type": "string"
87221	//     },
87222	//     "zone": {
87223	//       "description": "The name of the zone for this request.",
87224	//       "location": "path",
87225	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
87226	//       "required": true,
87227	//       "type": "string"
87228	//     }
87229	//   },
87230	//   "path": "{project}/zones/{zone}/instances/{resource}/setDeletionProtection",
87231	//   "response": {
87232	//     "$ref": "Operation"
87233	//   },
87234	//   "scopes": [
87235	//     "https://www.googleapis.com/auth/cloud-platform",
87236	//     "https://www.googleapis.com/auth/compute"
87237	//   ]
87238	// }
87239
87240}
87241
87242// method id "compute.instances.setDiskAutoDelete":
87243
87244type InstancesSetDiskAutoDeleteCall struct {
87245	s          *Service
87246	project    string
87247	zone       string
87248	instance   string
87249	urlParams_ gensupport.URLParams
87250	ctx_       context.Context
87251	header_    http.Header
87252}
87253
87254// SetDiskAutoDelete: Sets the auto-delete flag for a disk attached to
87255// an instance. (== suppress_warning http-rest-shadowed ==)
87256// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/setDiskAutoDelete
87257func (r *InstancesService) SetDiskAutoDelete(project string, zone string, instance string, autoDelete bool, deviceName string) *InstancesSetDiskAutoDeleteCall {
87258	c := &InstancesSetDiskAutoDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
87259	c.project = project
87260	c.zone = zone
87261	c.instance = instance
87262	c.urlParams_.Set("autoDelete", fmt.Sprint(autoDelete))
87263	c.urlParams_.Set("deviceName", deviceName)
87264	return c
87265}
87266
87267// RequestId sets the optional parameter "requestId": An optional
87268// request ID to identify requests. Specify a unique request ID so that
87269// if you must retry your request, the server will know to ignore the
87270// request if it has already been completed.
87271//
87272// For example, consider a situation where you make an initial request
87273// and the request times out. If you make the request again with the
87274// same request ID, the server can check if original operation with the
87275// same request ID was received, and if so, will ignore the second
87276// request. This prevents clients from accidentally creating duplicate
87277// commitments.
87278//
87279// The request ID must be a valid UUID with the exception that zero UUID
87280// is not supported (00000000-0000-0000-0000-000000000000).
87281func (c *InstancesSetDiskAutoDeleteCall) RequestId(requestId string) *InstancesSetDiskAutoDeleteCall {
87282	c.urlParams_.Set("requestId", requestId)
87283	return c
87284}
87285
87286// Fields allows partial responses to be retrieved. See
87287// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
87288// for more information.
87289func (c *InstancesSetDiskAutoDeleteCall) Fields(s ...googleapi.Field) *InstancesSetDiskAutoDeleteCall {
87290	c.urlParams_.Set("fields", googleapi.CombineFields(s))
87291	return c
87292}
87293
87294// Context sets the context to be used in this call's Do method. Any
87295// pending HTTP request will be aborted if the provided context is
87296// canceled.
87297func (c *InstancesSetDiskAutoDeleteCall) Context(ctx context.Context) *InstancesSetDiskAutoDeleteCall {
87298	c.ctx_ = ctx
87299	return c
87300}
87301
87302// Header returns an http.Header that can be modified by the caller to
87303// add HTTP headers to the request.
87304func (c *InstancesSetDiskAutoDeleteCall) Header() http.Header {
87305	if c.header_ == nil {
87306		c.header_ = make(http.Header)
87307	}
87308	return c.header_
87309}
87310
87311func (c *InstancesSetDiskAutoDeleteCall) doRequest(alt string) (*http.Response, error) {
87312	reqHeaders := make(http.Header)
87313	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
87314	for k, v := range c.header_ {
87315		reqHeaders[k] = v
87316	}
87317	reqHeaders.Set("User-Agent", c.s.userAgent())
87318	var body io.Reader = nil
87319	c.urlParams_.Set("alt", alt)
87320	c.urlParams_.Set("prettyPrint", "false")
87321	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/setDiskAutoDelete")
87322	urls += "?" + c.urlParams_.Encode()
87323	req, err := http.NewRequest("POST", urls, body)
87324	if err != nil {
87325		return nil, err
87326	}
87327	req.Header = reqHeaders
87328	googleapi.Expand(req.URL, map[string]string{
87329		"project":  c.project,
87330		"zone":     c.zone,
87331		"instance": c.instance,
87332	})
87333	return gensupport.SendRequest(c.ctx_, c.s.client, req)
87334}
87335
87336// Do executes the "compute.instances.setDiskAutoDelete" call.
87337// Exactly one of *Operation or error will be non-nil. Any non-2xx
87338// status code is an error. Response headers are in either
87339// *Operation.ServerResponse.Header or (if a response was returned at
87340// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
87341// to check whether the returned error was because
87342// http.StatusNotModified was returned.
87343func (c *InstancesSetDiskAutoDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
87344	gensupport.SetOptions(c.urlParams_, opts...)
87345	res, err := c.doRequest("json")
87346	if res != nil && res.StatusCode == http.StatusNotModified {
87347		if res.Body != nil {
87348			res.Body.Close()
87349		}
87350		return nil, &googleapi.Error{
87351			Code:   res.StatusCode,
87352			Header: res.Header,
87353		}
87354	}
87355	if err != nil {
87356		return nil, err
87357	}
87358	defer googleapi.CloseBody(res)
87359	if err := googleapi.CheckResponse(res); err != nil {
87360		return nil, err
87361	}
87362	ret := &Operation{
87363		ServerResponse: googleapi.ServerResponse{
87364			Header:         res.Header,
87365			HTTPStatusCode: res.StatusCode,
87366		},
87367	}
87368	target := &ret
87369	if err := gensupport.DecodeResponse(target, res); err != nil {
87370		return nil, err
87371	}
87372	return ret, nil
87373	// {
87374	//   "description": "Sets the auto-delete flag for a disk attached to an instance. (== suppress_warning http-rest-shadowed ==)",
87375	//   "httpMethod": "POST",
87376	//   "id": "compute.instances.setDiskAutoDelete",
87377	//   "parameterOrder": [
87378	//     "project",
87379	//     "zone",
87380	//     "instance",
87381	//     "autoDelete",
87382	//     "deviceName"
87383	//   ],
87384	//   "parameters": {
87385	//     "autoDelete": {
87386	//       "description": "Whether to auto-delete the disk when the instance is deleted.",
87387	//       "location": "query",
87388	//       "required": true,
87389	//       "type": "boolean"
87390	//     },
87391	//     "deviceName": {
87392	//       "description": "The device name of the disk to modify. Make a get() request on the instance to view currently attached disks and device names.",
87393	//       "location": "query",
87394	//       "pattern": "\\w[\\w.-]{0,254}",
87395	//       "required": true,
87396	//       "type": "string"
87397	//     },
87398	//     "instance": {
87399	//       "description": "The instance name for this request.",
87400	//       "location": "path",
87401	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
87402	//       "required": true,
87403	//       "type": "string"
87404	//     },
87405	//     "project": {
87406	//       "description": "Project ID for this request.",
87407	//       "location": "path",
87408	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
87409	//       "required": true,
87410	//       "type": "string"
87411	//     },
87412	//     "requestId": {
87413	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
87414	//       "location": "query",
87415	//       "type": "string"
87416	//     },
87417	//     "zone": {
87418	//       "description": "The name of the zone for this request.",
87419	//       "location": "path",
87420	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
87421	//       "required": true,
87422	//       "type": "string"
87423	//     }
87424	//   },
87425	//   "path": "{project}/zones/{zone}/instances/{instance}/setDiskAutoDelete",
87426	//   "response": {
87427	//     "$ref": "Operation"
87428	//   },
87429	//   "scopes": [
87430	//     "https://www.googleapis.com/auth/cloud-platform",
87431	//     "https://www.googleapis.com/auth/compute"
87432	//   ]
87433	// }
87434
87435}
87436
87437// method id "compute.instances.setIamPolicy":
87438
87439type InstancesSetIamPolicyCall struct {
87440	s                    *Service
87441	project              string
87442	zone                 string
87443	resource             string
87444	zonesetpolicyrequest *ZoneSetPolicyRequest
87445	urlParams_           gensupport.URLParams
87446	ctx_                 context.Context
87447	header_              http.Header
87448}
87449
87450// SetIamPolicy: Sets the access control policy on the specified
87451// resource. Replaces any existing policy. (== suppress_warning
87452// http-rest-shadowed ==)
87453func (r *InstancesService) SetIamPolicy(project string, zone string, resource string, zonesetpolicyrequest *ZoneSetPolicyRequest) *InstancesSetIamPolicyCall {
87454	c := &InstancesSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
87455	c.project = project
87456	c.zone = zone
87457	c.resource = resource
87458	c.zonesetpolicyrequest = zonesetpolicyrequest
87459	return c
87460}
87461
87462// Fields allows partial responses to be retrieved. See
87463// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
87464// for more information.
87465func (c *InstancesSetIamPolicyCall) Fields(s ...googleapi.Field) *InstancesSetIamPolicyCall {
87466	c.urlParams_.Set("fields", googleapi.CombineFields(s))
87467	return c
87468}
87469
87470// Context sets the context to be used in this call's Do method. Any
87471// pending HTTP request will be aborted if the provided context is
87472// canceled.
87473func (c *InstancesSetIamPolicyCall) Context(ctx context.Context) *InstancesSetIamPolicyCall {
87474	c.ctx_ = ctx
87475	return c
87476}
87477
87478// Header returns an http.Header that can be modified by the caller to
87479// add HTTP headers to the request.
87480func (c *InstancesSetIamPolicyCall) Header() http.Header {
87481	if c.header_ == nil {
87482		c.header_ = make(http.Header)
87483	}
87484	return c.header_
87485}
87486
87487func (c *InstancesSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
87488	reqHeaders := make(http.Header)
87489	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
87490	for k, v := range c.header_ {
87491		reqHeaders[k] = v
87492	}
87493	reqHeaders.Set("User-Agent", c.s.userAgent())
87494	var body io.Reader = nil
87495	body, err := googleapi.WithoutDataWrapper.JSONReader(c.zonesetpolicyrequest)
87496	if err != nil {
87497		return nil, err
87498	}
87499	reqHeaders.Set("Content-Type", "application/json")
87500	c.urlParams_.Set("alt", alt)
87501	c.urlParams_.Set("prettyPrint", "false")
87502	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{resource}/setIamPolicy")
87503	urls += "?" + c.urlParams_.Encode()
87504	req, err := http.NewRequest("POST", urls, body)
87505	if err != nil {
87506		return nil, err
87507	}
87508	req.Header = reqHeaders
87509	googleapi.Expand(req.URL, map[string]string{
87510		"project":  c.project,
87511		"zone":     c.zone,
87512		"resource": c.resource,
87513	})
87514	return gensupport.SendRequest(c.ctx_, c.s.client, req)
87515}
87516
87517// Do executes the "compute.instances.setIamPolicy" call.
87518// Exactly one of *Policy or error will be non-nil. Any non-2xx status
87519// code is an error. Response headers are in either
87520// *Policy.ServerResponse.Header or (if a response was returned at all)
87521// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
87522// check whether the returned error was because http.StatusNotModified
87523// was returned.
87524func (c *InstancesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
87525	gensupport.SetOptions(c.urlParams_, opts...)
87526	res, err := c.doRequest("json")
87527	if res != nil && res.StatusCode == http.StatusNotModified {
87528		if res.Body != nil {
87529			res.Body.Close()
87530		}
87531		return nil, &googleapi.Error{
87532			Code:   res.StatusCode,
87533			Header: res.Header,
87534		}
87535	}
87536	if err != nil {
87537		return nil, err
87538	}
87539	defer googleapi.CloseBody(res)
87540	if err := googleapi.CheckResponse(res); err != nil {
87541		return nil, err
87542	}
87543	ret := &Policy{
87544		ServerResponse: googleapi.ServerResponse{
87545			Header:         res.Header,
87546			HTTPStatusCode: res.StatusCode,
87547		},
87548	}
87549	target := &ret
87550	if err := gensupport.DecodeResponse(target, res); err != nil {
87551		return nil, err
87552	}
87553	return ret, nil
87554	// {
87555	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy. (== suppress_warning http-rest-shadowed ==)",
87556	//   "httpMethod": "POST",
87557	//   "id": "compute.instances.setIamPolicy",
87558	//   "parameterOrder": [
87559	//     "project",
87560	//     "zone",
87561	//     "resource"
87562	//   ],
87563	//   "parameters": {
87564	//     "project": {
87565	//       "description": "Project ID for this request.",
87566	//       "location": "path",
87567	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
87568	//       "required": true,
87569	//       "type": "string"
87570	//     },
87571	//     "resource": {
87572	//       "description": "Name or id of the resource for this request.",
87573	//       "location": "path",
87574	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
87575	//       "required": true,
87576	//       "type": "string"
87577	//     },
87578	//     "zone": {
87579	//       "description": "The name of the zone for this request.",
87580	//       "location": "path",
87581	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
87582	//       "required": true,
87583	//       "type": "string"
87584	//     }
87585	//   },
87586	//   "path": "{project}/zones/{zone}/instances/{resource}/setIamPolicy",
87587	//   "request": {
87588	//     "$ref": "ZoneSetPolicyRequest"
87589	//   },
87590	//   "response": {
87591	//     "$ref": "Policy"
87592	//   },
87593	//   "scopes": [
87594	//     "https://www.googleapis.com/auth/cloud-platform",
87595	//     "https://www.googleapis.com/auth/compute"
87596	//   ]
87597	// }
87598
87599}
87600
87601// method id "compute.instances.setLabels":
87602
87603type InstancesSetLabelsCall struct {
87604	s                         *Service
87605	project                   string
87606	zone                      string
87607	instance                  string
87608	instancessetlabelsrequest *InstancesSetLabelsRequest
87609	urlParams_                gensupport.URLParams
87610	ctx_                      context.Context
87611	header_                   http.Header
87612}
87613
87614// SetLabels: Sets labels on an instance. To learn more about labels,
87615// read the Labeling Resources documentation. (== suppress_warning
87616// http-rest-shadowed ==)
87617func (r *InstancesService) SetLabels(project string, zone string, instance string, instancessetlabelsrequest *InstancesSetLabelsRequest) *InstancesSetLabelsCall {
87618	c := &InstancesSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
87619	c.project = project
87620	c.zone = zone
87621	c.instance = instance
87622	c.instancessetlabelsrequest = instancessetlabelsrequest
87623	return c
87624}
87625
87626// RequestId sets the optional parameter "requestId": An optional
87627// request ID to identify requests. Specify a unique request ID so that
87628// if you must retry your request, the server will know to ignore the
87629// request if it has already been completed.
87630//
87631// For example, consider a situation where you make an initial request
87632// and the request times out. If you make the request again with the
87633// same request ID, the server can check if original operation with the
87634// same request ID was received, and if so, will ignore the second
87635// request. This prevents clients from accidentally creating duplicate
87636// commitments.
87637//
87638// The request ID must be a valid UUID with the exception that zero UUID
87639// is not supported (00000000-0000-0000-0000-000000000000).
87640func (c *InstancesSetLabelsCall) RequestId(requestId string) *InstancesSetLabelsCall {
87641	c.urlParams_.Set("requestId", requestId)
87642	return c
87643}
87644
87645// Fields allows partial responses to be retrieved. See
87646// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
87647// for more information.
87648func (c *InstancesSetLabelsCall) Fields(s ...googleapi.Field) *InstancesSetLabelsCall {
87649	c.urlParams_.Set("fields", googleapi.CombineFields(s))
87650	return c
87651}
87652
87653// Context sets the context to be used in this call's Do method. Any
87654// pending HTTP request will be aborted if the provided context is
87655// canceled.
87656func (c *InstancesSetLabelsCall) Context(ctx context.Context) *InstancesSetLabelsCall {
87657	c.ctx_ = ctx
87658	return c
87659}
87660
87661// Header returns an http.Header that can be modified by the caller to
87662// add HTTP headers to the request.
87663func (c *InstancesSetLabelsCall) Header() http.Header {
87664	if c.header_ == nil {
87665		c.header_ = make(http.Header)
87666	}
87667	return c.header_
87668}
87669
87670func (c *InstancesSetLabelsCall) doRequest(alt string) (*http.Response, error) {
87671	reqHeaders := make(http.Header)
87672	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
87673	for k, v := range c.header_ {
87674		reqHeaders[k] = v
87675	}
87676	reqHeaders.Set("User-Agent", c.s.userAgent())
87677	var body io.Reader = nil
87678	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancessetlabelsrequest)
87679	if err != nil {
87680		return nil, err
87681	}
87682	reqHeaders.Set("Content-Type", "application/json")
87683	c.urlParams_.Set("alt", alt)
87684	c.urlParams_.Set("prettyPrint", "false")
87685	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/setLabels")
87686	urls += "?" + c.urlParams_.Encode()
87687	req, err := http.NewRequest("POST", urls, body)
87688	if err != nil {
87689		return nil, err
87690	}
87691	req.Header = reqHeaders
87692	googleapi.Expand(req.URL, map[string]string{
87693		"project":  c.project,
87694		"zone":     c.zone,
87695		"instance": c.instance,
87696	})
87697	return gensupport.SendRequest(c.ctx_, c.s.client, req)
87698}
87699
87700// Do executes the "compute.instances.setLabels" call.
87701// Exactly one of *Operation or error will be non-nil. Any non-2xx
87702// status code is an error. Response headers are in either
87703// *Operation.ServerResponse.Header or (if a response was returned at
87704// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
87705// to check whether the returned error was because
87706// http.StatusNotModified was returned.
87707func (c *InstancesSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
87708	gensupport.SetOptions(c.urlParams_, opts...)
87709	res, err := c.doRequest("json")
87710	if res != nil && res.StatusCode == http.StatusNotModified {
87711		if res.Body != nil {
87712			res.Body.Close()
87713		}
87714		return nil, &googleapi.Error{
87715			Code:   res.StatusCode,
87716			Header: res.Header,
87717		}
87718	}
87719	if err != nil {
87720		return nil, err
87721	}
87722	defer googleapi.CloseBody(res)
87723	if err := googleapi.CheckResponse(res); err != nil {
87724		return nil, err
87725	}
87726	ret := &Operation{
87727		ServerResponse: googleapi.ServerResponse{
87728			Header:         res.Header,
87729			HTTPStatusCode: res.StatusCode,
87730		},
87731	}
87732	target := &ret
87733	if err := gensupport.DecodeResponse(target, res); err != nil {
87734		return nil, err
87735	}
87736	return ret, nil
87737	// {
87738	//   "description": "Sets labels on an instance. To learn more about labels, read the Labeling Resources documentation. (== suppress_warning http-rest-shadowed ==)",
87739	//   "httpMethod": "POST",
87740	//   "id": "compute.instances.setLabels",
87741	//   "parameterOrder": [
87742	//     "project",
87743	//     "zone",
87744	//     "instance"
87745	//   ],
87746	//   "parameters": {
87747	//     "instance": {
87748	//       "description": "Name of the instance scoping this request.",
87749	//       "location": "path",
87750	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
87751	//       "required": true,
87752	//       "type": "string"
87753	//     },
87754	//     "project": {
87755	//       "description": "Project ID for this request.",
87756	//       "location": "path",
87757	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
87758	//       "required": true,
87759	//       "type": "string"
87760	//     },
87761	//     "requestId": {
87762	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
87763	//       "location": "query",
87764	//       "type": "string"
87765	//     },
87766	//     "zone": {
87767	//       "description": "The name of the zone for this request.",
87768	//       "location": "path",
87769	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
87770	//       "required": true,
87771	//       "type": "string"
87772	//     }
87773	//   },
87774	//   "path": "{project}/zones/{zone}/instances/{instance}/setLabels",
87775	//   "request": {
87776	//     "$ref": "InstancesSetLabelsRequest"
87777	//   },
87778	//   "response": {
87779	//     "$ref": "Operation"
87780	//   },
87781	//   "scopes": [
87782	//     "https://www.googleapis.com/auth/cloud-platform",
87783	//     "https://www.googleapis.com/auth/compute"
87784	//   ]
87785	// }
87786
87787}
87788
87789// method id "compute.instances.setMachineResources":
87790
87791type InstancesSetMachineResourcesCall struct {
87792	s                                   *Service
87793	project                             string
87794	zone                                string
87795	instance                            string
87796	instancessetmachineresourcesrequest *InstancesSetMachineResourcesRequest
87797	urlParams_                          gensupport.URLParams
87798	ctx_                                context.Context
87799	header_                             http.Header
87800}
87801
87802// SetMachineResources: Changes the number and/or type of accelerator
87803// for a stopped instance to the values specified in the request. (==
87804// suppress_warning http-rest-shadowed ==)
87805func (r *InstancesService) SetMachineResources(project string, zone string, instance string, instancessetmachineresourcesrequest *InstancesSetMachineResourcesRequest) *InstancesSetMachineResourcesCall {
87806	c := &InstancesSetMachineResourcesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
87807	c.project = project
87808	c.zone = zone
87809	c.instance = instance
87810	c.instancessetmachineresourcesrequest = instancessetmachineresourcesrequest
87811	return c
87812}
87813
87814// RequestId sets the optional parameter "requestId": An optional
87815// request ID to identify requests. Specify a unique request ID so that
87816// if you must retry your request, the server will know to ignore the
87817// request if it has already been completed.
87818//
87819// For example, consider a situation where you make an initial request
87820// and the request times out. If you make the request again with the
87821// same request ID, the server can check if original operation with the
87822// same request ID was received, and if so, will ignore the second
87823// request. This prevents clients from accidentally creating duplicate
87824// commitments.
87825//
87826// The request ID must be a valid UUID with the exception that zero UUID
87827// is not supported (00000000-0000-0000-0000-000000000000).
87828func (c *InstancesSetMachineResourcesCall) RequestId(requestId string) *InstancesSetMachineResourcesCall {
87829	c.urlParams_.Set("requestId", requestId)
87830	return c
87831}
87832
87833// Fields allows partial responses to be retrieved. See
87834// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
87835// for more information.
87836func (c *InstancesSetMachineResourcesCall) Fields(s ...googleapi.Field) *InstancesSetMachineResourcesCall {
87837	c.urlParams_.Set("fields", googleapi.CombineFields(s))
87838	return c
87839}
87840
87841// Context sets the context to be used in this call's Do method. Any
87842// pending HTTP request will be aborted if the provided context is
87843// canceled.
87844func (c *InstancesSetMachineResourcesCall) Context(ctx context.Context) *InstancesSetMachineResourcesCall {
87845	c.ctx_ = ctx
87846	return c
87847}
87848
87849// Header returns an http.Header that can be modified by the caller to
87850// add HTTP headers to the request.
87851func (c *InstancesSetMachineResourcesCall) Header() http.Header {
87852	if c.header_ == nil {
87853		c.header_ = make(http.Header)
87854	}
87855	return c.header_
87856}
87857
87858func (c *InstancesSetMachineResourcesCall) doRequest(alt string) (*http.Response, error) {
87859	reqHeaders := make(http.Header)
87860	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
87861	for k, v := range c.header_ {
87862		reqHeaders[k] = v
87863	}
87864	reqHeaders.Set("User-Agent", c.s.userAgent())
87865	var body io.Reader = nil
87866	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancessetmachineresourcesrequest)
87867	if err != nil {
87868		return nil, err
87869	}
87870	reqHeaders.Set("Content-Type", "application/json")
87871	c.urlParams_.Set("alt", alt)
87872	c.urlParams_.Set("prettyPrint", "false")
87873	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/setMachineResources")
87874	urls += "?" + c.urlParams_.Encode()
87875	req, err := http.NewRequest("POST", urls, body)
87876	if err != nil {
87877		return nil, err
87878	}
87879	req.Header = reqHeaders
87880	googleapi.Expand(req.URL, map[string]string{
87881		"project":  c.project,
87882		"zone":     c.zone,
87883		"instance": c.instance,
87884	})
87885	return gensupport.SendRequest(c.ctx_, c.s.client, req)
87886}
87887
87888// Do executes the "compute.instances.setMachineResources" call.
87889// Exactly one of *Operation or error will be non-nil. Any non-2xx
87890// status code is an error. Response headers are in either
87891// *Operation.ServerResponse.Header or (if a response was returned at
87892// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
87893// to check whether the returned error was because
87894// http.StatusNotModified was returned.
87895func (c *InstancesSetMachineResourcesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
87896	gensupport.SetOptions(c.urlParams_, opts...)
87897	res, err := c.doRequest("json")
87898	if res != nil && res.StatusCode == http.StatusNotModified {
87899		if res.Body != nil {
87900			res.Body.Close()
87901		}
87902		return nil, &googleapi.Error{
87903			Code:   res.StatusCode,
87904			Header: res.Header,
87905		}
87906	}
87907	if err != nil {
87908		return nil, err
87909	}
87910	defer googleapi.CloseBody(res)
87911	if err := googleapi.CheckResponse(res); err != nil {
87912		return nil, err
87913	}
87914	ret := &Operation{
87915		ServerResponse: googleapi.ServerResponse{
87916			Header:         res.Header,
87917			HTTPStatusCode: res.StatusCode,
87918		},
87919	}
87920	target := &ret
87921	if err := gensupport.DecodeResponse(target, res); err != nil {
87922		return nil, err
87923	}
87924	return ret, nil
87925	// {
87926	//   "description": "Changes the number and/or type of accelerator for a stopped instance to the values specified in the request. (== suppress_warning http-rest-shadowed ==)",
87927	//   "httpMethod": "POST",
87928	//   "id": "compute.instances.setMachineResources",
87929	//   "parameterOrder": [
87930	//     "project",
87931	//     "zone",
87932	//     "instance"
87933	//   ],
87934	//   "parameters": {
87935	//     "instance": {
87936	//       "description": "Name of the instance scoping this request.",
87937	//       "location": "path",
87938	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
87939	//       "required": true,
87940	//       "type": "string"
87941	//     },
87942	//     "project": {
87943	//       "description": "Project ID for this request.",
87944	//       "location": "path",
87945	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
87946	//       "required": true,
87947	//       "type": "string"
87948	//     },
87949	//     "requestId": {
87950	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
87951	//       "location": "query",
87952	//       "type": "string"
87953	//     },
87954	//     "zone": {
87955	//       "description": "The name of the zone for this request.",
87956	//       "location": "path",
87957	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
87958	//       "required": true,
87959	//       "type": "string"
87960	//     }
87961	//   },
87962	//   "path": "{project}/zones/{zone}/instances/{instance}/setMachineResources",
87963	//   "request": {
87964	//     "$ref": "InstancesSetMachineResourcesRequest"
87965	//   },
87966	//   "response": {
87967	//     "$ref": "Operation"
87968	//   },
87969	//   "scopes": [
87970	//     "https://www.googleapis.com/auth/cloud-platform",
87971	//     "https://www.googleapis.com/auth/compute"
87972	//   ]
87973	// }
87974
87975}
87976
87977// method id "compute.instances.setMachineType":
87978
87979type InstancesSetMachineTypeCall struct {
87980	s                              *Service
87981	project                        string
87982	zone                           string
87983	instance                       string
87984	instancessetmachinetyperequest *InstancesSetMachineTypeRequest
87985	urlParams_                     gensupport.URLParams
87986	ctx_                           context.Context
87987	header_                        http.Header
87988}
87989
87990// SetMachineType: Changes the machine type for a stopped instance to
87991// the machine type specified in the request. (== suppress_warning
87992// http-rest-shadowed ==)
87993func (r *InstancesService) SetMachineType(project string, zone string, instance string, instancessetmachinetyperequest *InstancesSetMachineTypeRequest) *InstancesSetMachineTypeCall {
87994	c := &InstancesSetMachineTypeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
87995	c.project = project
87996	c.zone = zone
87997	c.instance = instance
87998	c.instancessetmachinetyperequest = instancessetmachinetyperequest
87999	return c
88000}
88001
88002// RequestId sets the optional parameter "requestId": An optional
88003// request ID to identify requests. Specify a unique request ID so that
88004// if you must retry your request, the server will know to ignore the
88005// request if it has already been completed.
88006//
88007// For example, consider a situation where you make an initial request
88008// and the request times out. If you make the request again with the
88009// same request ID, the server can check if original operation with the
88010// same request ID was received, and if so, will ignore the second
88011// request. This prevents clients from accidentally creating duplicate
88012// commitments.
88013//
88014// The request ID must be a valid UUID with the exception that zero UUID
88015// is not supported (00000000-0000-0000-0000-000000000000).
88016func (c *InstancesSetMachineTypeCall) RequestId(requestId string) *InstancesSetMachineTypeCall {
88017	c.urlParams_.Set("requestId", requestId)
88018	return c
88019}
88020
88021// Fields allows partial responses to be retrieved. See
88022// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
88023// for more information.
88024func (c *InstancesSetMachineTypeCall) Fields(s ...googleapi.Field) *InstancesSetMachineTypeCall {
88025	c.urlParams_.Set("fields", googleapi.CombineFields(s))
88026	return c
88027}
88028
88029// Context sets the context to be used in this call's Do method. Any
88030// pending HTTP request will be aborted if the provided context is
88031// canceled.
88032func (c *InstancesSetMachineTypeCall) Context(ctx context.Context) *InstancesSetMachineTypeCall {
88033	c.ctx_ = ctx
88034	return c
88035}
88036
88037// Header returns an http.Header that can be modified by the caller to
88038// add HTTP headers to the request.
88039func (c *InstancesSetMachineTypeCall) Header() http.Header {
88040	if c.header_ == nil {
88041		c.header_ = make(http.Header)
88042	}
88043	return c.header_
88044}
88045
88046func (c *InstancesSetMachineTypeCall) doRequest(alt string) (*http.Response, error) {
88047	reqHeaders := make(http.Header)
88048	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
88049	for k, v := range c.header_ {
88050		reqHeaders[k] = v
88051	}
88052	reqHeaders.Set("User-Agent", c.s.userAgent())
88053	var body io.Reader = nil
88054	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancessetmachinetyperequest)
88055	if err != nil {
88056		return nil, err
88057	}
88058	reqHeaders.Set("Content-Type", "application/json")
88059	c.urlParams_.Set("alt", alt)
88060	c.urlParams_.Set("prettyPrint", "false")
88061	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/setMachineType")
88062	urls += "?" + c.urlParams_.Encode()
88063	req, err := http.NewRequest("POST", urls, body)
88064	if err != nil {
88065		return nil, err
88066	}
88067	req.Header = reqHeaders
88068	googleapi.Expand(req.URL, map[string]string{
88069		"project":  c.project,
88070		"zone":     c.zone,
88071		"instance": c.instance,
88072	})
88073	return gensupport.SendRequest(c.ctx_, c.s.client, req)
88074}
88075
88076// Do executes the "compute.instances.setMachineType" call.
88077// Exactly one of *Operation or error will be non-nil. Any non-2xx
88078// status code is an error. Response headers are in either
88079// *Operation.ServerResponse.Header or (if a response was returned at
88080// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
88081// to check whether the returned error was because
88082// http.StatusNotModified was returned.
88083func (c *InstancesSetMachineTypeCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
88084	gensupport.SetOptions(c.urlParams_, opts...)
88085	res, err := c.doRequest("json")
88086	if res != nil && res.StatusCode == http.StatusNotModified {
88087		if res.Body != nil {
88088			res.Body.Close()
88089		}
88090		return nil, &googleapi.Error{
88091			Code:   res.StatusCode,
88092			Header: res.Header,
88093		}
88094	}
88095	if err != nil {
88096		return nil, err
88097	}
88098	defer googleapi.CloseBody(res)
88099	if err := googleapi.CheckResponse(res); err != nil {
88100		return nil, err
88101	}
88102	ret := &Operation{
88103		ServerResponse: googleapi.ServerResponse{
88104			Header:         res.Header,
88105			HTTPStatusCode: res.StatusCode,
88106		},
88107	}
88108	target := &ret
88109	if err := gensupport.DecodeResponse(target, res); err != nil {
88110		return nil, err
88111	}
88112	return ret, nil
88113	// {
88114	//   "description": "Changes the machine type for a stopped instance to the machine type specified in the request. (== suppress_warning http-rest-shadowed ==)",
88115	//   "httpMethod": "POST",
88116	//   "id": "compute.instances.setMachineType",
88117	//   "parameterOrder": [
88118	//     "project",
88119	//     "zone",
88120	//     "instance"
88121	//   ],
88122	//   "parameters": {
88123	//     "instance": {
88124	//       "description": "Name of the instance scoping this request.",
88125	//       "location": "path",
88126	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
88127	//       "required": true,
88128	//       "type": "string"
88129	//     },
88130	//     "project": {
88131	//       "description": "Project ID for this request.",
88132	//       "location": "path",
88133	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
88134	//       "required": true,
88135	//       "type": "string"
88136	//     },
88137	//     "requestId": {
88138	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
88139	//       "location": "query",
88140	//       "type": "string"
88141	//     },
88142	//     "zone": {
88143	//       "description": "The name of the zone for this request.",
88144	//       "location": "path",
88145	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
88146	//       "required": true,
88147	//       "type": "string"
88148	//     }
88149	//   },
88150	//   "path": "{project}/zones/{zone}/instances/{instance}/setMachineType",
88151	//   "request": {
88152	//     "$ref": "InstancesSetMachineTypeRequest"
88153	//   },
88154	//   "response": {
88155	//     "$ref": "Operation"
88156	//   },
88157	//   "scopes": [
88158	//     "https://www.googleapis.com/auth/cloud-platform",
88159	//     "https://www.googleapis.com/auth/compute"
88160	//   ]
88161	// }
88162
88163}
88164
88165// method id "compute.instances.setMetadata":
88166
88167type InstancesSetMetadataCall struct {
88168	s          *Service
88169	project    string
88170	zone       string
88171	instance   string
88172	metadata   *Metadata
88173	urlParams_ gensupport.URLParams
88174	ctx_       context.Context
88175	header_    http.Header
88176}
88177
88178// SetMetadata: Sets metadata for the specified instance to the data
88179// included in the request. (== suppress_warning http-rest-shadowed ==)
88180// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/setMetadata
88181func (r *InstancesService) SetMetadata(project string, zone string, instance string, metadata *Metadata) *InstancesSetMetadataCall {
88182	c := &InstancesSetMetadataCall{s: r.s, urlParams_: make(gensupport.URLParams)}
88183	c.project = project
88184	c.zone = zone
88185	c.instance = instance
88186	c.metadata = metadata
88187	return c
88188}
88189
88190// RequestId sets the optional parameter "requestId": An optional
88191// request ID to identify requests. Specify a unique request ID so that
88192// if you must retry your request, the server will know to ignore the
88193// request if it has already been completed.
88194//
88195// For example, consider a situation where you make an initial request
88196// and the request times out. If you make the request again with the
88197// same request ID, the server can check if original operation with the
88198// same request ID was received, and if so, will ignore the second
88199// request. This prevents clients from accidentally creating duplicate
88200// commitments.
88201//
88202// The request ID must be a valid UUID with the exception that zero UUID
88203// is not supported (00000000-0000-0000-0000-000000000000).
88204func (c *InstancesSetMetadataCall) RequestId(requestId string) *InstancesSetMetadataCall {
88205	c.urlParams_.Set("requestId", requestId)
88206	return c
88207}
88208
88209// Fields allows partial responses to be retrieved. See
88210// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
88211// for more information.
88212func (c *InstancesSetMetadataCall) Fields(s ...googleapi.Field) *InstancesSetMetadataCall {
88213	c.urlParams_.Set("fields", googleapi.CombineFields(s))
88214	return c
88215}
88216
88217// Context sets the context to be used in this call's Do method. Any
88218// pending HTTP request will be aborted if the provided context is
88219// canceled.
88220func (c *InstancesSetMetadataCall) Context(ctx context.Context) *InstancesSetMetadataCall {
88221	c.ctx_ = ctx
88222	return c
88223}
88224
88225// Header returns an http.Header that can be modified by the caller to
88226// add HTTP headers to the request.
88227func (c *InstancesSetMetadataCall) Header() http.Header {
88228	if c.header_ == nil {
88229		c.header_ = make(http.Header)
88230	}
88231	return c.header_
88232}
88233
88234func (c *InstancesSetMetadataCall) doRequest(alt string) (*http.Response, error) {
88235	reqHeaders := make(http.Header)
88236	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
88237	for k, v := range c.header_ {
88238		reqHeaders[k] = v
88239	}
88240	reqHeaders.Set("User-Agent", c.s.userAgent())
88241	var body io.Reader = nil
88242	body, err := googleapi.WithoutDataWrapper.JSONReader(c.metadata)
88243	if err != nil {
88244		return nil, err
88245	}
88246	reqHeaders.Set("Content-Type", "application/json")
88247	c.urlParams_.Set("alt", alt)
88248	c.urlParams_.Set("prettyPrint", "false")
88249	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/setMetadata")
88250	urls += "?" + c.urlParams_.Encode()
88251	req, err := http.NewRequest("POST", urls, body)
88252	if err != nil {
88253		return nil, err
88254	}
88255	req.Header = reqHeaders
88256	googleapi.Expand(req.URL, map[string]string{
88257		"project":  c.project,
88258		"zone":     c.zone,
88259		"instance": c.instance,
88260	})
88261	return gensupport.SendRequest(c.ctx_, c.s.client, req)
88262}
88263
88264// Do executes the "compute.instances.setMetadata" call.
88265// Exactly one of *Operation or error will be non-nil. Any non-2xx
88266// status code is an error. Response headers are in either
88267// *Operation.ServerResponse.Header or (if a response was returned at
88268// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
88269// to check whether the returned error was because
88270// http.StatusNotModified was returned.
88271func (c *InstancesSetMetadataCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
88272	gensupport.SetOptions(c.urlParams_, opts...)
88273	res, err := c.doRequest("json")
88274	if res != nil && res.StatusCode == http.StatusNotModified {
88275		if res.Body != nil {
88276			res.Body.Close()
88277		}
88278		return nil, &googleapi.Error{
88279			Code:   res.StatusCode,
88280			Header: res.Header,
88281		}
88282	}
88283	if err != nil {
88284		return nil, err
88285	}
88286	defer googleapi.CloseBody(res)
88287	if err := googleapi.CheckResponse(res); err != nil {
88288		return nil, err
88289	}
88290	ret := &Operation{
88291		ServerResponse: googleapi.ServerResponse{
88292			Header:         res.Header,
88293			HTTPStatusCode: res.StatusCode,
88294		},
88295	}
88296	target := &ret
88297	if err := gensupport.DecodeResponse(target, res); err != nil {
88298		return nil, err
88299	}
88300	return ret, nil
88301	// {
88302	//   "description": "Sets metadata for the specified instance to the data included in the request. (== suppress_warning http-rest-shadowed ==)",
88303	//   "httpMethod": "POST",
88304	//   "id": "compute.instances.setMetadata",
88305	//   "parameterOrder": [
88306	//     "project",
88307	//     "zone",
88308	//     "instance"
88309	//   ],
88310	//   "parameters": {
88311	//     "instance": {
88312	//       "description": "Name of the instance scoping this request.",
88313	//       "location": "path",
88314	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
88315	//       "required": true,
88316	//       "type": "string"
88317	//     },
88318	//     "project": {
88319	//       "description": "Project ID for this request.",
88320	//       "location": "path",
88321	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
88322	//       "required": true,
88323	//       "type": "string"
88324	//     },
88325	//     "requestId": {
88326	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
88327	//       "location": "query",
88328	//       "type": "string"
88329	//     },
88330	//     "zone": {
88331	//       "description": "The name of the zone for this request.",
88332	//       "location": "path",
88333	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
88334	//       "required": true,
88335	//       "type": "string"
88336	//     }
88337	//   },
88338	//   "path": "{project}/zones/{zone}/instances/{instance}/setMetadata",
88339	//   "request": {
88340	//     "$ref": "Metadata"
88341	//   },
88342	//   "response": {
88343	//     "$ref": "Operation"
88344	//   },
88345	//   "scopes": [
88346	//     "https://www.googleapis.com/auth/cloud-platform",
88347	//     "https://www.googleapis.com/auth/compute"
88348	//   ]
88349	// }
88350
88351}
88352
88353// method id "compute.instances.setMinCpuPlatform":
88354
88355type InstancesSetMinCpuPlatformCall struct {
88356	s                                 *Service
88357	project                           string
88358	zone                              string
88359	instance                          string
88360	instancessetmincpuplatformrequest *InstancesSetMinCpuPlatformRequest
88361	urlParams_                        gensupport.URLParams
88362	ctx_                              context.Context
88363	header_                           http.Header
88364}
88365
88366// SetMinCpuPlatform: Changes the minimum CPU platform that this
88367// instance should use. This method can only be called on a stopped
88368// instance. For more information, read Specifying a Minimum CPU
88369// Platform. (== suppress_warning http-rest-shadowed ==)
88370func (r *InstancesService) SetMinCpuPlatform(project string, zone string, instance string, instancessetmincpuplatformrequest *InstancesSetMinCpuPlatformRequest) *InstancesSetMinCpuPlatformCall {
88371	c := &InstancesSetMinCpuPlatformCall{s: r.s, urlParams_: make(gensupport.URLParams)}
88372	c.project = project
88373	c.zone = zone
88374	c.instance = instance
88375	c.instancessetmincpuplatformrequest = instancessetmincpuplatformrequest
88376	return c
88377}
88378
88379// RequestId sets the optional parameter "requestId": An optional
88380// request ID to identify requests. Specify a unique request ID so that
88381// if you must retry your request, the server will know to ignore the
88382// request if it has already been completed.
88383//
88384// For example, consider a situation where you make an initial request
88385// and the request times out. If you make the request again with the
88386// same request ID, the server can check if original operation with the
88387// same request ID was received, and if so, will ignore the second
88388// request. This prevents clients from accidentally creating duplicate
88389// commitments.
88390//
88391// The request ID must be a valid UUID with the exception that zero UUID
88392// is not supported (00000000-0000-0000-0000-000000000000).
88393func (c *InstancesSetMinCpuPlatformCall) RequestId(requestId string) *InstancesSetMinCpuPlatformCall {
88394	c.urlParams_.Set("requestId", requestId)
88395	return c
88396}
88397
88398// Fields allows partial responses to be retrieved. See
88399// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
88400// for more information.
88401func (c *InstancesSetMinCpuPlatformCall) Fields(s ...googleapi.Field) *InstancesSetMinCpuPlatformCall {
88402	c.urlParams_.Set("fields", googleapi.CombineFields(s))
88403	return c
88404}
88405
88406// Context sets the context to be used in this call's Do method. Any
88407// pending HTTP request will be aborted if the provided context is
88408// canceled.
88409func (c *InstancesSetMinCpuPlatformCall) Context(ctx context.Context) *InstancesSetMinCpuPlatformCall {
88410	c.ctx_ = ctx
88411	return c
88412}
88413
88414// Header returns an http.Header that can be modified by the caller to
88415// add HTTP headers to the request.
88416func (c *InstancesSetMinCpuPlatformCall) Header() http.Header {
88417	if c.header_ == nil {
88418		c.header_ = make(http.Header)
88419	}
88420	return c.header_
88421}
88422
88423func (c *InstancesSetMinCpuPlatformCall) doRequest(alt string) (*http.Response, error) {
88424	reqHeaders := make(http.Header)
88425	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
88426	for k, v := range c.header_ {
88427		reqHeaders[k] = v
88428	}
88429	reqHeaders.Set("User-Agent", c.s.userAgent())
88430	var body io.Reader = nil
88431	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancessetmincpuplatformrequest)
88432	if err != nil {
88433		return nil, err
88434	}
88435	reqHeaders.Set("Content-Type", "application/json")
88436	c.urlParams_.Set("alt", alt)
88437	c.urlParams_.Set("prettyPrint", "false")
88438	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/setMinCpuPlatform")
88439	urls += "?" + c.urlParams_.Encode()
88440	req, err := http.NewRequest("POST", urls, body)
88441	if err != nil {
88442		return nil, err
88443	}
88444	req.Header = reqHeaders
88445	googleapi.Expand(req.URL, map[string]string{
88446		"project":  c.project,
88447		"zone":     c.zone,
88448		"instance": c.instance,
88449	})
88450	return gensupport.SendRequest(c.ctx_, c.s.client, req)
88451}
88452
88453// Do executes the "compute.instances.setMinCpuPlatform" call.
88454// Exactly one of *Operation or error will be non-nil. Any non-2xx
88455// status code is an error. Response headers are in either
88456// *Operation.ServerResponse.Header or (if a response was returned at
88457// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
88458// to check whether the returned error was because
88459// http.StatusNotModified was returned.
88460func (c *InstancesSetMinCpuPlatformCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
88461	gensupport.SetOptions(c.urlParams_, opts...)
88462	res, err := c.doRequest("json")
88463	if res != nil && res.StatusCode == http.StatusNotModified {
88464		if res.Body != nil {
88465			res.Body.Close()
88466		}
88467		return nil, &googleapi.Error{
88468			Code:   res.StatusCode,
88469			Header: res.Header,
88470		}
88471	}
88472	if err != nil {
88473		return nil, err
88474	}
88475	defer googleapi.CloseBody(res)
88476	if err := googleapi.CheckResponse(res); err != nil {
88477		return nil, err
88478	}
88479	ret := &Operation{
88480		ServerResponse: googleapi.ServerResponse{
88481			Header:         res.Header,
88482			HTTPStatusCode: res.StatusCode,
88483		},
88484	}
88485	target := &ret
88486	if err := gensupport.DecodeResponse(target, res); err != nil {
88487		return nil, err
88488	}
88489	return ret, nil
88490	// {
88491	//   "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. (== suppress_warning http-rest-shadowed ==)",
88492	//   "httpMethod": "POST",
88493	//   "id": "compute.instances.setMinCpuPlatform",
88494	//   "parameterOrder": [
88495	//     "project",
88496	//     "zone",
88497	//     "instance"
88498	//   ],
88499	//   "parameters": {
88500	//     "instance": {
88501	//       "description": "Name of the instance scoping this request.",
88502	//       "location": "path",
88503	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
88504	//       "required": true,
88505	//       "type": "string"
88506	//     },
88507	//     "project": {
88508	//       "description": "Project ID for this request.",
88509	//       "location": "path",
88510	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
88511	//       "required": true,
88512	//       "type": "string"
88513	//     },
88514	//     "requestId": {
88515	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
88516	//       "location": "query",
88517	//       "type": "string"
88518	//     },
88519	//     "zone": {
88520	//       "description": "The name of the zone for this request.",
88521	//       "location": "path",
88522	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
88523	//       "required": true,
88524	//       "type": "string"
88525	//     }
88526	//   },
88527	//   "path": "{project}/zones/{zone}/instances/{instance}/setMinCpuPlatform",
88528	//   "request": {
88529	//     "$ref": "InstancesSetMinCpuPlatformRequest"
88530	//   },
88531	//   "response": {
88532	//     "$ref": "Operation"
88533	//   },
88534	//   "scopes": [
88535	//     "https://www.googleapis.com/auth/cloud-platform",
88536	//     "https://www.googleapis.com/auth/compute"
88537	//   ]
88538	// }
88539
88540}
88541
88542// method id "compute.instances.setName":
88543
88544type InstancesSetNameCall struct {
88545	s                       *Service
88546	project                 string
88547	zone                    string
88548	instance                string
88549	instancessetnamerequest *InstancesSetNameRequest
88550	urlParams_              gensupport.URLParams
88551	ctx_                    context.Context
88552	header_                 http.Header
88553}
88554
88555// SetName: Sets name of an instance. (== suppress_warning
88556// http-rest-shadowed ==)
88557func (r *InstancesService) SetName(project string, zone string, instance string, instancessetnamerequest *InstancesSetNameRequest) *InstancesSetNameCall {
88558	c := &InstancesSetNameCall{s: r.s, urlParams_: make(gensupport.URLParams)}
88559	c.project = project
88560	c.zone = zone
88561	c.instance = instance
88562	c.instancessetnamerequest = instancessetnamerequest
88563	return c
88564}
88565
88566// RequestId sets the optional parameter "requestId": An optional
88567// request ID to identify requests. Specify a unique request ID so that
88568// if you must retry your request, the server will know to ignore the
88569// request if it has already been completed.
88570//
88571// For example, consider a situation where you make an initial request
88572// and the request times out. If you make the request again with the
88573// same request ID, the server can check if original operation with the
88574// same request ID was received, and if so, will ignore the second
88575// request. This prevents clients from accidentally creating duplicate
88576// commitments.
88577//
88578// The request ID must be a valid UUID with the exception that zero UUID
88579// is not supported (00000000-0000-0000-0000-000000000000).
88580func (c *InstancesSetNameCall) RequestId(requestId string) *InstancesSetNameCall {
88581	c.urlParams_.Set("requestId", requestId)
88582	return c
88583}
88584
88585// Fields allows partial responses to be retrieved. See
88586// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
88587// for more information.
88588func (c *InstancesSetNameCall) Fields(s ...googleapi.Field) *InstancesSetNameCall {
88589	c.urlParams_.Set("fields", googleapi.CombineFields(s))
88590	return c
88591}
88592
88593// Context sets the context to be used in this call's Do method. Any
88594// pending HTTP request will be aborted if the provided context is
88595// canceled.
88596func (c *InstancesSetNameCall) Context(ctx context.Context) *InstancesSetNameCall {
88597	c.ctx_ = ctx
88598	return c
88599}
88600
88601// Header returns an http.Header that can be modified by the caller to
88602// add HTTP headers to the request.
88603func (c *InstancesSetNameCall) Header() http.Header {
88604	if c.header_ == nil {
88605		c.header_ = make(http.Header)
88606	}
88607	return c.header_
88608}
88609
88610func (c *InstancesSetNameCall) doRequest(alt string) (*http.Response, error) {
88611	reqHeaders := make(http.Header)
88612	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
88613	for k, v := range c.header_ {
88614		reqHeaders[k] = v
88615	}
88616	reqHeaders.Set("User-Agent", c.s.userAgent())
88617	var body io.Reader = nil
88618	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancessetnamerequest)
88619	if err != nil {
88620		return nil, err
88621	}
88622	reqHeaders.Set("Content-Type", "application/json")
88623	c.urlParams_.Set("alt", alt)
88624	c.urlParams_.Set("prettyPrint", "false")
88625	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/setName")
88626	urls += "?" + c.urlParams_.Encode()
88627	req, err := http.NewRequest("POST", urls, body)
88628	if err != nil {
88629		return nil, err
88630	}
88631	req.Header = reqHeaders
88632	googleapi.Expand(req.URL, map[string]string{
88633		"project":  c.project,
88634		"zone":     c.zone,
88635		"instance": c.instance,
88636	})
88637	return gensupport.SendRequest(c.ctx_, c.s.client, req)
88638}
88639
88640// Do executes the "compute.instances.setName" call.
88641// Exactly one of *Operation or error will be non-nil. Any non-2xx
88642// status code is an error. Response headers are in either
88643// *Operation.ServerResponse.Header or (if a response was returned at
88644// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
88645// to check whether the returned error was because
88646// http.StatusNotModified was returned.
88647func (c *InstancesSetNameCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
88648	gensupport.SetOptions(c.urlParams_, opts...)
88649	res, err := c.doRequest("json")
88650	if res != nil && res.StatusCode == http.StatusNotModified {
88651		if res.Body != nil {
88652			res.Body.Close()
88653		}
88654		return nil, &googleapi.Error{
88655			Code:   res.StatusCode,
88656			Header: res.Header,
88657		}
88658	}
88659	if err != nil {
88660		return nil, err
88661	}
88662	defer googleapi.CloseBody(res)
88663	if err := googleapi.CheckResponse(res); err != nil {
88664		return nil, err
88665	}
88666	ret := &Operation{
88667		ServerResponse: googleapi.ServerResponse{
88668			Header:         res.Header,
88669			HTTPStatusCode: res.StatusCode,
88670		},
88671	}
88672	target := &ret
88673	if err := gensupport.DecodeResponse(target, res); err != nil {
88674		return nil, err
88675	}
88676	return ret, nil
88677	// {
88678	//   "description": "Sets name of an instance. (== suppress_warning http-rest-shadowed ==)",
88679	//   "httpMethod": "POST",
88680	//   "id": "compute.instances.setName",
88681	//   "parameterOrder": [
88682	//     "project",
88683	//     "zone",
88684	//     "instance"
88685	//   ],
88686	//   "parameters": {
88687	//     "instance": {
88688	//       "description": "The instance name for this request.",
88689	//       "location": "path",
88690	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
88691	//       "required": true,
88692	//       "type": "string"
88693	//     },
88694	//     "project": {
88695	//       "description": "Project ID for this request.",
88696	//       "location": "path",
88697	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
88698	//       "required": true,
88699	//       "type": "string"
88700	//     },
88701	//     "requestId": {
88702	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
88703	//       "location": "query",
88704	//       "type": "string"
88705	//     },
88706	//     "zone": {
88707	//       "description": "The name of the zone for this request.",
88708	//       "location": "path",
88709	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
88710	//       "required": true,
88711	//       "type": "string"
88712	//     }
88713	//   },
88714	//   "path": "{project}/zones/{zone}/instances/{instance}/setName",
88715	//   "request": {
88716	//     "$ref": "InstancesSetNameRequest"
88717	//   },
88718	//   "response": {
88719	//     "$ref": "Operation"
88720	//   },
88721	//   "scopes": [
88722	//     "https://www.googleapis.com/auth/cloud-platform",
88723	//     "https://www.googleapis.com/auth/compute"
88724	//   ]
88725	// }
88726
88727}
88728
88729// method id "compute.instances.setScheduling":
88730
88731type InstancesSetSchedulingCall struct {
88732	s          *Service
88733	project    string
88734	zone       string
88735	instance   string
88736	scheduling *Scheduling
88737	urlParams_ gensupport.URLParams
88738	ctx_       context.Context
88739	header_    http.Header
88740}
88741
88742// SetScheduling: Sets an instance's scheduling options. (==
88743// suppress_warning http-rest-shadowed ==)
88744// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/setScheduling
88745func (r *InstancesService) SetScheduling(project string, zone string, instance string, scheduling *Scheduling) *InstancesSetSchedulingCall {
88746	c := &InstancesSetSchedulingCall{s: r.s, urlParams_: make(gensupport.URLParams)}
88747	c.project = project
88748	c.zone = zone
88749	c.instance = instance
88750	c.scheduling = scheduling
88751	return c
88752}
88753
88754// RequestId sets the optional parameter "requestId": An optional
88755// request ID to identify requests. Specify a unique request ID so that
88756// if you must retry your request, the server will know to ignore the
88757// request if it has already been completed.
88758//
88759// For example, consider a situation where you make an initial request
88760// and the request times out. If you make the request again with the
88761// same request ID, the server can check if original operation with the
88762// same request ID was received, and if so, will ignore the second
88763// request. This prevents clients from accidentally creating duplicate
88764// commitments.
88765//
88766// The request ID must be a valid UUID with the exception that zero UUID
88767// is not supported (00000000-0000-0000-0000-000000000000).
88768func (c *InstancesSetSchedulingCall) RequestId(requestId string) *InstancesSetSchedulingCall {
88769	c.urlParams_.Set("requestId", requestId)
88770	return c
88771}
88772
88773// Fields allows partial responses to be retrieved. See
88774// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
88775// for more information.
88776func (c *InstancesSetSchedulingCall) Fields(s ...googleapi.Field) *InstancesSetSchedulingCall {
88777	c.urlParams_.Set("fields", googleapi.CombineFields(s))
88778	return c
88779}
88780
88781// Context sets the context to be used in this call's Do method. Any
88782// pending HTTP request will be aborted if the provided context is
88783// canceled.
88784func (c *InstancesSetSchedulingCall) Context(ctx context.Context) *InstancesSetSchedulingCall {
88785	c.ctx_ = ctx
88786	return c
88787}
88788
88789// Header returns an http.Header that can be modified by the caller to
88790// add HTTP headers to the request.
88791func (c *InstancesSetSchedulingCall) Header() http.Header {
88792	if c.header_ == nil {
88793		c.header_ = make(http.Header)
88794	}
88795	return c.header_
88796}
88797
88798func (c *InstancesSetSchedulingCall) doRequest(alt string) (*http.Response, error) {
88799	reqHeaders := make(http.Header)
88800	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
88801	for k, v := range c.header_ {
88802		reqHeaders[k] = v
88803	}
88804	reqHeaders.Set("User-Agent", c.s.userAgent())
88805	var body io.Reader = nil
88806	body, err := googleapi.WithoutDataWrapper.JSONReader(c.scheduling)
88807	if err != nil {
88808		return nil, err
88809	}
88810	reqHeaders.Set("Content-Type", "application/json")
88811	c.urlParams_.Set("alt", alt)
88812	c.urlParams_.Set("prettyPrint", "false")
88813	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/setScheduling")
88814	urls += "?" + c.urlParams_.Encode()
88815	req, err := http.NewRequest("POST", urls, body)
88816	if err != nil {
88817		return nil, err
88818	}
88819	req.Header = reqHeaders
88820	googleapi.Expand(req.URL, map[string]string{
88821		"project":  c.project,
88822		"zone":     c.zone,
88823		"instance": c.instance,
88824	})
88825	return gensupport.SendRequest(c.ctx_, c.s.client, req)
88826}
88827
88828// Do executes the "compute.instances.setScheduling" call.
88829// Exactly one of *Operation or error will be non-nil. Any non-2xx
88830// status code is an error. Response headers are in either
88831// *Operation.ServerResponse.Header or (if a response was returned at
88832// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
88833// to check whether the returned error was because
88834// http.StatusNotModified was returned.
88835func (c *InstancesSetSchedulingCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
88836	gensupport.SetOptions(c.urlParams_, opts...)
88837	res, err := c.doRequest("json")
88838	if res != nil && res.StatusCode == http.StatusNotModified {
88839		if res.Body != nil {
88840			res.Body.Close()
88841		}
88842		return nil, &googleapi.Error{
88843			Code:   res.StatusCode,
88844			Header: res.Header,
88845		}
88846	}
88847	if err != nil {
88848		return nil, err
88849	}
88850	defer googleapi.CloseBody(res)
88851	if err := googleapi.CheckResponse(res); err != nil {
88852		return nil, err
88853	}
88854	ret := &Operation{
88855		ServerResponse: googleapi.ServerResponse{
88856			Header:         res.Header,
88857			HTTPStatusCode: res.StatusCode,
88858		},
88859	}
88860	target := &ret
88861	if err := gensupport.DecodeResponse(target, res); err != nil {
88862		return nil, err
88863	}
88864	return ret, nil
88865	// {
88866	//   "description": "Sets an instance's scheduling options. (== suppress_warning http-rest-shadowed ==)",
88867	//   "httpMethod": "POST",
88868	//   "id": "compute.instances.setScheduling",
88869	//   "parameterOrder": [
88870	//     "project",
88871	//     "zone",
88872	//     "instance"
88873	//   ],
88874	//   "parameters": {
88875	//     "instance": {
88876	//       "description": "Instance name for this request.",
88877	//       "location": "path",
88878	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
88879	//       "required": true,
88880	//       "type": "string"
88881	//     },
88882	//     "project": {
88883	//       "description": "Project ID for this request.",
88884	//       "location": "path",
88885	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
88886	//       "required": true,
88887	//       "type": "string"
88888	//     },
88889	//     "requestId": {
88890	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
88891	//       "location": "query",
88892	//       "type": "string"
88893	//     },
88894	//     "zone": {
88895	//       "description": "The name of the zone for this request.",
88896	//       "location": "path",
88897	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
88898	//       "required": true,
88899	//       "type": "string"
88900	//     }
88901	//   },
88902	//   "path": "{project}/zones/{zone}/instances/{instance}/setScheduling",
88903	//   "request": {
88904	//     "$ref": "Scheduling"
88905	//   },
88906	//   "response": {
88907	//     "$ref": "Operation"
88908	//   },
88909	//   "scopes": [
88910	//     "https://www.googleapis.com/auth/cloud-platform",
88911	//     "https://www.googleapis.com/auth/compute"
88912	//   ]
88913	// }
88914
88915}
88916
88917// method id "compute.instances.setServiceAccount":
88918
88919type InstancesSetServiceAccountCall struct {
88920	s                                 *Service
88921	project                           string
88922	zone                              string
88923	instance                          string
88924	instancessetserviceaccountrequest *InstancesSetServiceAccountRequest
88925	urlParams_                        gensupport.URLParams
88926	ctx_                              context.Context
88927	header_                           http.Header
88928}
88929
88930// SetServiceAccount: Sets the service account on the instance. For more
88931// information, read Changing the service account and access scopes for
88932// an instance. (== suppress_warning http-rest-shadowed ==)
88933func (r *InstancesService) SetServiceAccount(project string, zone string, instance string, instancessetserviceaccountrequest *InstancesSetServiceAccountRequest) *InstancesSetServiceAccountCall {
88934	c := &InstancesSetServiceAccountCall{s: r.s, urlParams_: make(gensupport.URLParams)}
88935	c.project = project
88936	c.zone = zone
88937	c.instance = instance
88938	c.instancessetserviceaccountrequest = instancessetserviceaccountrequest
88939	return c
88940}
88941
88942// RequestId sets the optional parameter "requestId": An optional
88943// request ID to identify requests. Specify a unique request ID so that
88944// if you must retry your request, the server will know to ignore the
88945// request if it has already been completed.
88946//
88947// For example, consider a situation where you make an initial request
88948// and the request times out. If you make the request again with the
88949// same request ID, the server can check if original operation with the
88950// same request ID was received, and if so, will ignore the second
88951// request. This prevents clients from accidentally creating duplicate
88952// commitments.
88953//
88954// The request ID must be a valid UUID with the exception that zero UUID
88955// is not supported (00000000-0000-0000-0000-000000000000).
88956func (c *InstancesSetServiceAccountCall) RequestId(requestId string) *InstancesSetServiceAccountCall {
88957	c.urlParams_.Set("requestId", requestId)
88958	return c
88959}
88960
88961// Fields allows partial responses to be retrieved. See
88962// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
88963// for more information.
88964func (c *InstancesSetServiceAccountCall) Fields(s ...googleapi.Field) *InstancesSetServiceAccountCall {
88965	c.urlParams_.Set("fields", googleapi.CombineFields(s))
88966	return c
88967}
88968
88969// Context sets the context to be used in this call's Do method. Any
88970// pending HTTP request will be aborted if the provided context is
88971// canceled.
88972func (c *InstancesSetServiceAccountCall) Context(ctx context.Context) *InstancesSetServiceAccountCall {
88973	c.ctx_ = ctx
88974	return c
88975}
88976
88977// Header returns an http.Header that can be modified by the caller to
88978// add HTTP headers to the request.
88979func (c *InstancesSetServiceAccountCall) Header() http.Header {
88980	if c.header_ == nil {
88981		c.header_ = make(http.Header)
88982	}
88983	return c.header_
88984}
88985
88986func (c *InstancesSetServiceAccountCall) doRequest(alt string) (*http.Response, error) {
88987	reqHeaders := make(http.Header)
88988	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
88989	for k, v := range c.header_ {
88990		reqHeaders[k] = v
88991	}
88992	reqHeaders.Set("User-Agent", c.s.userAgent())
88993	var body io.Reader = nil
88994	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancessetserviceaccountrequest)
88995	if err != nil {
88996		return nil, err
88997	}
88998	reqHeaders.Set("Content-Type", "application/json")
88999	c.urlParams_.Set("alt", alt)
89000	c.urlParams_.Set("prettyPrint", "false")
89001	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/setServiceAccount")
89002	urls += "?" + c.urlParams_.Encode()
89003	req, err := http.NewRequest("POST", urls, body)
89004	if err != nil {
89005		return nil, err
89006	}
89007	req.Header = reqHeaders
89008	googleapi.Expand(req.URL, map[string]string{
89009		"project":  c.project,
89010		"zone":     c.zone,
89011		"instance": c.instance,
89012	})
89013	return gensupport.SendRequest(c.ctx_, c.s.client, req)
89014}
89015
89016// Do executes the "compute.instances.setServiceAccount" call.
89017// Exactly one of *Operation or error will be non-nil. Any non-2xx
89018// status code is an error. Response headers are in either
89019// *Operation.ServerResponse.Header or (if a response was returned at
89020// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
89021// to check whether the returned error was because
89022// http.StatusNotModified was returned.
89023func (c *InstancesSetServiceAccountCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
89024	gensupport.SetOptions(c.urlParams_, opts...)
89025	res, err := c.doRequest("json")
89026	if res != nil && res.StatusCode == http.StatusNotModified {
89027		if res.Body != nil {
89028			res.Body.Close()
89029		}
89030		return nil, &googleapi.Error{
89031			Code:   res.StatusCode,
89032			Header: res.Header,
89033		}
89034	}
89035	if err != nil {
89036		return nil, err
89037	}
89038	defer googleapi.CloseBody(res)
89039	if err := googleapi.CheckResponse(res); err != nil {
89040		return nil, err
89041	}
89042	ret := &Operation{
89043		ServerResponse: googleapi.ServerResponse{
89044			Header:         res.Header,
89045			HTTPStatusCode: res.StatusCode,
89046		},
89047	}
89048	target := &ret
89049	if err := gensupport.DecodeResponse(target, res); err != nil {
89050		return nil, err
89051	}
89052	return ret, nil
89053	// {
89054	//   "description": "Sets the service account on the instance. For more information, read Changing the service account and access scopes for an instance. (== suppress_warning http-rest-shadowed ==)",
89055	//   "httpMethod": "POST",
89056	//   "id": "compute.instances.setServiceAccount",
89057	//   "parameterOrder": [
89058	//     "project",
89059	//     "zone",
89060	//     "instance"
89061	//   ],
89062	//   "parameters": {
89063	//     "instance": {
89064	//       "description": "Name of the instance resource to start.",
89065	//       "location": "path",
89066	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
89067	//       "required": true,
89068	//       "type": "string"
89069	//     },
89070	//     "project": {
89071	//       "description": "Project ID for this request.",
89072	//       "location": "path",
89073	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
89074	//       "required": true,
89075	//       "type": "string"
89076	//     },
89077	//     "requestId": {
89078	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
89079	//       "location": "query",
89080	//       "type": "string"
89081	//     },
89082	//     "zone": {
89083	//       "description": "The name of the zone for this request.",
89084	//       "location": "path",
89085	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
89086	//       "required": true,
89087	//       "type": "string"
89088	//     }
89089	//   },
89090	//   "path": "{project}/zones/{zone}/instances/{instance}/setServiceAccount",
89091	//   "request": {
89092	//     "$ref": "InstancesSetServiceAccountRequest"
89093	//   },
89094	//   "response": {
89095	//     "$ref": "Operation"
89096	//   },
89097	//   "scopes": [
89098	//     "https://www.googleapis.com/auth/cloud-platform",
89099	//     "https://www.googleapis.com/auth/compute"
89100	//   ]
89101	// }
89102
89103}
89104
89105// method id "compute.instances.setShieldedInstanceIntegrityPolicy":
89106
89107type InstancesSetShieldedInstanceIntegrityPolicyCall struct {
89108	s                               *Service
89109	project                         string
89110	zone                            string
89111	instance                        string
89112	shieldedinstanceintegritypolicy *ShieldedInstanceIntegrityPolicy
89113	urlParams_                      gensupport.URLParams
89114	ctx_                            context.Context
89115	header_                         http.Header
89116}
89117
89118// SetShieldedInstanceIntegrityPolicy: Sets the Shielded Instance
89119// integrity policy for an instance. You can only use this method on a
89120// running instance. This method supports PATCH semantics and uses the
89121// JSON merge patch format and processing rules. (== suppress_warning
89122// http-rest-shadowed ==)
89123func (r *InstancesService) SetShieldedInstanceIntegrityPolicy(project string, zone string, instance string, shieldedinstanceintegritypolicy *ShieldedInstanceIntegrityPolicy) *InstancesSetShieldedInstanceIntegrityPolicyCall {
89124	c := &InstancesSetShieldedInstanceIntegrityPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
89125	c.project = project
89126	c.zone = zone
89127	c.instance = instance
89128	c.shieldedinstanceintegritypolicy = shieldedinstanceintegritypolicy
89129	return c
89130}
89131
89132// RequestId sets the optional parameter "requestId": An optional
89133// request ID to identify requests. Specify a unique request ID so that
89134// if you must retry your request, the server will know to ignore the
89135// request if it has already been completed.
89136//
89137// For example, consider a situation where you make an initial request
89138// and the request times out. If you make the request again with the
89139// same request ID, the server can check if original operation with the
89140// same request ID was received, and if so, will ignore the second
89141// request. This prevents clients from accidentally creating duplicate
89142// commitments.
89143//
89144// The request ID must be a valid UUID with the exception that zero UUID
89145// is not supported (00000000-0000-0000-0000-000000000000).
89146func (c *InstancesSetShieldedInstanceIntegrityPolicyCall) RequestId(requestId string) *InstancesSetShieldedInstanceIntegrityPolicyCall {
89147	c.urlParams_.Set("requestId", requestId)
89148	return c
89149}
89150
89151// Fields allows partial responses to be retrieved. See
89152// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
89153// for more information.
89154func (c *InstancesSetShieldedInstanceIntegrityPolicyCall) Fields(s ...googleapi.Field) *InstancesSetShieldedInstanceIntegrityPolicyCall {
89155	c.urlParams_.Set("fields", googleapi.CombineFields(s))
89156	return c
89157}
89158
89159// Context sets the context to be used in this call's Do method. Any
89160// pending HTTP request will be aborted if the provided context is
89161// canceled.
89162func (c *InstancesSetShieldedInstanceIntegrityPolicyCall) Context(ctx context.Context) *InstancesSetShieldedInstanceIntegrityPolicyCall {
89163	c.ctx_ = ctx
89164	return c
89165}
89166
89167// Header returns an http.Header that can be modified by the caller to
89168// add HTTP headers to the request.
89169func (c *InstancesSetShieldedInstanceIntegrityPolicyCall) Header() http.Header {
89170	if c.header_ == nil {
89171		c.header_ = make(http.Header)
89172	}
89173	return c.header_
89174}
89175
89176func (c *InstancesSetShieldedInstanceIntegrityPolicyCall) doRequest(alt string) (*http.Response, error) {
89177	reqHeaders := make(http.Header)
89178	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
89179	for k, v := range c.header_ {
89180		reqHeaders[k] = v
89181	}
89182	reqHeaders.Set("User-Agent", c.s.userAgent())
89183	var body io.Reader = nil
89184	body, err := googleapi.WithoutDataWrapper.JSONReader(c.shieldedinstanceintegritypolicy)
89185	if err != nil {
89186		return nil, err
89187	}
89188	reqHeaders.Set("Content-Type", "application/json")
89189	c.urlParams_.Set("alt", alt)
89190	c.urlParams_.Set("prettyPrint", "false")
89191	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/setShieldedInstanceIntegrityPolicy")
89192	urls += "?" + c.urlParams_.Encode()
89193	req, err := http.NewRequest("PATCH", urls, body)
89194	if err != nil {
89195		return nil, err
89196	}
89197	req.Header = reqHeaders
89198	googleapi.Expand(req.URL, map[string]string{
89199		"project":  c.project,
89200		"zone":     c.zone,
89201		"instance": c.instance,
89202	})
89203	return gensupport.SendRequest(c.ctx_, c.s.client, req)
89204}
89205
89206// Do executes the "compute.instances.setShieldedInstanceIntegrityPolicy" call.
89207// Exactly one of *Operation or error will be non-nil. Any non-2xx
89208// status code is an error. Response headers are in either
89209// *Operation.ServerResponse.Header or (if a response was returned at
89210// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
89211// to check whether the returned error was because
89212// http.StatusNotModified was returned.
89213func (c *InstancesSetShieldedInstanceIntegrityPolicyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
89214	gensupport.SetOptions(c.urlParams_, opts...)
89215	res, err := c.doRequest("json")
89216	if res != nil && res.StatusCode == http.StatusNotModified {
89217		if res.Body != nil {
89218			res.Body.Close()
89219		}
89220		return nil, &googleapi.Error{
89221			Code:   res.StatusCode,
89222			Header: res.Header,
89223		}
89224	}
89225	if err != nil {
89226		return nil, err
89227	}
89228	defer googleapi.CloseBody(res)
89229	if err := googleapi.CheckResponse(res); err != nil {
89230		return nil, err
89231	}
89232	ret := &Operation{
89233		ServerResponse: googleapi.ServerResponse{
89234			Header:         res.Header,
89235			HTTPStatusCode: res.StatusCode,
89236		},
89237	}
89238	target := &ret
89239	if err := gensupport.DecodeResponse(target, res); err != nil {
89240		return nil, err
89241	}
89242	return ret, nil
89243	// {
89244	//   "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. (== suppress_warning http-rest-shadowed ==)",
89245	//   "httpMethod": "PATCH",
89246	//   "id": "compute.instances.setShieldedInstanceIntegrityPolicy",
89247	//   "parameterOrder": [
89248	//     "project",
89249	//     "zone",
89250	//     "instance"
89251	//   ],
89252	//   "parameters": {
89253	//     "instance": {
89254	//       "description": "Name or id of the instance scoping this request.",
89255	//       "location": "path",
89256	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
89257	//       "required": true,
89258	//       "type": "string"
89259	//     },
89260	//     "project": {
89261	//       "description": "Project ID for this request.",
89262	//       "location": "path",
89263	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
89264	//       "required": true,
89265	//       "type": "string"
89266	//     },
89267	//     "requestId": {
89268	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
89269	//       "location": "query",
89270	//       "type": "string"
89271	//     },
89272	//     "zone": {
89273	//       "description": "The name of the zone for this request.",
89274	//       "location": "path",
89275	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
89276	//       "required": true,
89277	//       "type": "string"
89278	//     }
89279	//   },
89280	//   "path": "{project}/zones/{zone}/instances/{instance}/setShieldedInstanceIntegrityPolicy",
89281	//   "request": {
89282	//     "$ref": "ShieldedInstanceIntegrityPolicy"
89283	//   },
89284	//   "response": {
89285	//     "$ref": "Operation"
89286	//   },
89287	//   "scopes": [
89288	//     "https://www.googleapis.com/auth/cloud-platform",
89289	//     "https://www.googleapis.com/auth/compute"
89290	//   ]
89291	// }
89292
89293}
89294
89295// method id "compute.instances.setShieldedVmIntegrityPolicy":
89296
89297type InstancesSetShieldedVmIntegrityPolicyCall struct {
89298	s                         *Service
89299	project                   string
89300	zone                      string
89301	instance                  string
89302	shieldedvmintegritypolicy *ShieldedVmIntegrityPolicy
89303	urlParams_                gensupport.URLParams
89304	ctx_                      context.Context
89305	header_                   http.Header
89306}
89307
89308// SetShieldedVmIntegrityPolicy: Sets the Shielded VM integrity policy
89309// for a VM instance. You can only use this method on a running VM
89310// instance. This method supports PATCH semantics and uses the JSON
89311// merge patch format and processing rules. (== suppress_warning
89312// http-rest-shadowed ==)
89313func (r *InstancesService) SetShieldedVmIntegrityPolicy(project string, zone string, instance string, shieldedvmintegritypolicy *ShieldedVmIntegrityPolicy) *InstancesSetShieldedVmIntegrityPolicyCall {
89314	c := &InstancesSetShieldedVmIntegrityPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
89315	c.project = project
89316	c.zone = zone
89317	c.instance = instance
89318	c.shieldedvmintegritypolicy = shieldedvmintegritypolicy
89319	return c
89320}
89321
89322// RequestId sets the optional parameter "requestId": An optional
89323// request ID to identify requests. Specify a unique request ID so that
89324// if you must retry your request, the server will know to ignore the
89325// request if it has already been completed.
89326//
89327// For example, consider a situation where you make an initial request
89328// and the request times out. If you make the request again with the
89329// same request ID, the server can check if original operation with the
89330// same request ID was received, and if so, will ignore the second
89331// request. This prevents clients from accidentally creating duplicate
89332// commitments.
89333//
89334// The request ID must be a valid UUID with the exception that zero UUID
89335// is not supported (00000000-0000-0000-0000-000000000000).
89336func (c *InstancesSetShieldedVmIntegrityPolicyCall) RequestId(requestId string) *InstancesSetShieldedVmIntegrityPolicyCall {
89337	c.urlParams_.Set("requestId", requestId)
89338	return c
89339}
89340
89341// Fields allows partial responses to be retrieved. See
89342// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
89343// for more information.
89344func (c *InstancesSetShieldedVmIntegrityPolicyCall) Fields(s ...googleapi.Field) *InstancesSetShieldedVmIntegrityPolicyCall {
89345	c.urlParams_.Set("fields", googleapi.CombineFields(s))
89346	return c
89347}
89348
89349// Context sets the context to be used in this call's Do method. Any
89350// pending HTTP request will be aborted if the provided context is
89351// canceled.
89352func (c *InstancesSetShieldedVmIntegrityPolicyCall) Context(ctx context.Context) *InstancesSetShieldedVmIntegrityPolicyCall {
89353	c.ctx_ = ctx
89354	return c
89355}
89356
89357// Header returns an http.Header that can be modified by the caller to
89358// add HTTP headers to the request.
89359func (c *InstancesSetShieldedVmIntegrityPolicyCall) Header() http.Header {
89360	if c.header_ == nil {
89361		c.header_ = make(http.Header)
89362	}
89363	return c.header_
89364}
89365
89366func (c *InstancesSetShieldedVmIntegrityPolicyCall) doRequest(alt string) (*http.Response, error) {
89367	reqHeaders := make(http.Header)
89368	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
89369	for k, v := range c.header_ {
89370		reqHeaders[k] = v
89371	}
89372	reqHeaders.Set("User-Agent", c.s.userAgent())
89373	var body io.Reader = nil
89374	body, err := googleapi.WithoutDataWrapper.JSONReader(c.shieldedvmintegritypolicy)
89375	if err != nil {
89376		return nil, err
89377	}
89378	reqHeaders.Set("Content-Type", "application/json")
89379	c.urlParams_.Set("alt", alt)
89380	c.urlParams_.Set("prettyPrint", "false")
89381	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/setShieldedVmIntegrityPolicy")
89382	urls += "?" + c.urlParams_.Encode()
89383	req, err := http.NewRequest("PATCH", urls, body)
89384	if err != nil {
89385		return nil, err
89386	}
89387	req.Header = reqHeaders
89388	googleapi.Expand(req.URL, map[string]string{
89389		"project":  c.project,
89390		"zone":     c.zone,
89391		"instance": c.instance,
89392	})
89393	return gensupport.SendRequest(c.ctx_, c.s.client, req)
89394}
89395
89396// Do executes the "compute.instances.setShieldedVmIntegrityPolicy" call.
89397// Exactly one of *Operation or error will be non-nil. Any non-2xx
89398// status code is an error. Response headers are in either
89399// *Operation.ServerResponse.Header or (if a response was returned at
89400// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
89401// to check whether the returned error was because
89402// http.StatusNotModified was returned.
89403func (c *InstancesSetShieldedVmIntegrityPolicyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
89404	gensupport.SetOptions(c.urlParams_, opts...)
89405	res, err := c.doRequest("json")
89406	if res != nil && res.StatusCode == http.StatusNotModified {
89407		if res.Body != nil {
89408			res.Body.Close()
89409		}
89410		return nil, &googleapi.Error{
89411			Code:   res.StatusCode,
89412			Header: res.Header,
89413		}
89414	}
89415	if err != nil {
89416		return nil, err
89417	}
89418	defer googleapi.CloseBody(res)
89419	if err := googleapi.CheckResponse(res); err != nil {
89420		return nil, err
89421	}
89422	ret := &Operation{
89423		ServerResponse: googleapi.ServerResponse{
89424			Header:         res.Header,
89425			HTTPStatusCode: res.StatusCode,
89426		},
89427	}
89428	target := &ret
89429	if err := gensupport.DecodeResponse(target, res); err != nil {
89430		return nil, err
89431	}
89432	return ret, nil
89433	// {
89434	//   "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. (== suppress_warning http-rest-shadowed ==)",
89435	//   "httpMethod": "PATCH",
89436	//   "id": "compute.instances.setShieldedVmIntegrityPolicy",
89437	//   "parameterOrder": [
89438	//     "project",
89439	//     "zone",
89440	//     "instance"
89441	//   ],
89442	//   "parameters": {
89443	//     "instance": {
89444	//       "description": "Name of the instance scoping this request.",
89445	//       "location": "path",
89446	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
89447	//       "required": true,
89448	//       "type": "string"
89449	//     },
89450	//     "project": {
89451	//       "description": "Project ID for this request.",
89452	//       "location": "path",
89453	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
89454	//       "required": true,
89455	//       "type": "string"
89456	//     },
89457	//     "requestId": {
89458	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
89459	//       "location": "query",
89460	//       "type": "string"
89461	//     },
89462	//     "zone": {
89463	//       "description": "The name of the zone for this request.",
89464	//       "location": "path",
89465	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
89466	//       "required": true,
89467	//       "type": "string"
89468	//     }
89469	//   },
89470	//   "path": "{project}/zones/{zone}/instances/{instance}/setShieldedVmIntegrityPolicy",
89471	//   "request": {
89472	//     "$ref": "ShieldedVmIntegrityPolicy"
89473	//   },
89474	//   "response": {
89475	//     "$ref": "Operation"
89476	//   },
89477	//   "scopes": [
89478	//     "https://www.googleapis.com/auth/cloud-platform",
89479	//     "https://www.googleapis.com/auth/compute"
89480	//   ]
89481	// }
89482
89483}
89484
89485// method id "compute.instances.setTags":
89486
89487type InstancesSetTagsCall struct {
89488	s          *Service
89489	project    string
89490	zone       string
89491	instance   string
89492	tags       *Tags
89493	urlParams_ gensupport.URLParams
89494	ctx_       context.Context
89495	header_    http.Header
89496}
89497
89498// SetTags: Sets network tags for the specified instance to the data
89499// included in the request. (== suppress_warning http-rest-shadowed ==)
89500// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/setTags
89501func (r *InstancesService) SetTags(project string, zone string, instance string, tags *Tags) *InstancesSetTagsCall {
89502	c := &InstancesSetTagsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
89503	c.project = project
89504	c.zone = zone
89505	c.instance = instance
89506	c.tags = tags
89507	return c
89508}
89509
89510// RequestId sets the optional parameter "requestId": An optional
89511// request ID to identify requests. Specify a unique request ID so that
89512// if you must retry your request, the server will know to ignore the
89513// request if it has already been completed.
89514//
89515// For example, consider a situation where you make an initial request
89516// and the request times out. If you make the request again with the
89517// same request ID, the server can check if original operation with the
89518// same request ID was received, and if so, will ignore the second
89519// request. This prevents clients from accidentally creating duplicate
89520// commitments.
89521//
89522// The request ID must be a valid UUID with the exception that zero UUID
89523// is not supported (00000000-0000-0000-0000-000000000000).
89524func (c *InstancesSetTagsCall) RequestId(requestId string) *InstancesSetTagsCall {
89525	c.urlParams_.Set("requestId", requestId)
89526	return c
89527}
89528
89529// Fields allows partial responses to be retrieved. See
89530// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
89531// for more information.
89532func (c *InstancesSetTagsCall) Fields(s ...googleapi.Field) *InstancesSetTagsCall {
89533	c.urlParams_.Set("fields", googleapi.CombineFields(s))
89534	return c
89535}
89536
89537// Context sets the context to be used in this call's Do method. Any
89538// pending HTTP request will be aborted if the provided context is
89539// canceled.
89540func (c *InstancesSetTagsCall) Context(ctx context.Context) *InstancesSetTagsCall {
89541	c.ctx_ = ctx
89542	return c
89543}
89544
89545// Header returns an http.Header that can be modified by the caller to
89546// add HTTP headers to the request.
89547func (c *InstancesSetTagsCall) Header() http.Header {
89548	if c.header_ == nil {
89549		c.header_ = make(http.Header)
89550	}
89551	return c.header_
89552}
89553
89554func (c *InstancesSetTagsCall) doRequest(alt string) (*http.Response, error) {
89555	reqHeaders := make(http.Header)
89556	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
89557	for k, v := range c.header_ {
89558		reqHeaders[k] = v
89559	}
89560	reqHeaders.Set("User-Agent", c.s.userAgent())
89561	var body io.Reader = nil
89562	body, err := googleapi.WithoutDataWrapper.JSONReader(c.tags)
89563	if err != nil {
89564		return nil, err
89565	}
89566	reqHeaders.Set("Content-Type", "application/json")
89567	c.urlParams_.Set("alt", alt)
89568	c.urlParams_.Set("prettyPrint", "false")
89569	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/setTags")
89570	urls += "?" + c.urlParams_.Encode()
89571	req, err := http.NewRequest("POST", urls, body)
89572	if err != nil {
89573		return nil, err
89574	}
89575	req.Header = reqHeaders
89576	googleapi.Expand(req.URL, map[string]string{
89577		"project":  c.project,
89578		"zone":     c.zone,
89579		"instance": c.instance,
89580	})
89581	return gensupport.SendRequest(c.ctx_, c.s.client, req)
89582}
89583
89584// Do executes the "compute.instances.setTags" call.
89585// Exactly one of *Operation or error will be non-nil. Any non-2xx
89586// status code is an error. Response headers are in either
89587// *Operation.ServerResponse.Header or (if a response was returned at
89588// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
89589// to check whether the returned error was because
89590// http.StatusNotModified was returned.
89591func (c *InstancesSetTagsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
89592	gensupport.SetOptions(c.urlParams_, opts...)
89593	res, err := c.doRequest("json")
89594	if res != nil && res.StatusCode == http.StatusNotModified {
89595		if res.Body != nil {
89596			res.Body.Close()
89597		}
89598		return nil, &googleapi.Error{
89599			Code:   res.StatusCode,
89600			Header: res.Header,
89601		}
89602	}
89603	if err != nil {
89604		return nil, err
89605	}
89606	defer googleapi.CloseBody(res)
89607	if err := googleapi.CheckResponse(res); err != nil {
89608		return nil, err
89609	}
89610	ret := &Operation{
89611		ServerResponse: googleapi.ServerResponse{
89612			Header:         res.Header,
89613			HTTPStatusCode: res.StatusCode,
89614		},
89615	}
89616	target := &ret
89617	if err := gensupport.DecodeResponse(target, res); err != nil {
89618		return nil, err
89619	}
89620	return ret, nil
89621	// {
89622	//   "description": "Sets network tags for the specified instance to the data included in the request. (== suppress_warning http-rest-shadowed ==)",
89623	//   "httpMethod": "POST",
89624	//   "id": "compute.instances.setTags",
89625	//   "parameterOrder": [
89626	//     "project",
89627	//     "zone",
89628	//     "instance"
89629	//   ],
89630	//   "parameters": {
89631	//     "instance": {
89632	//       "description": "Name of the instance scoping this request.",
89633	//       "location": "path",
89634	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
89635	//       "required": true,
89636	//       "type": "string"
89637	//     },
89638	//     "project": {
89639	//       "description": "Project ID for this request.",
89640	//       "location": "path",
89641	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
89642	//       "required": true,
89643	//       "type": "string"
89644	//     },
89645	//     "requestId": {
89646	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
89647	//       "location": "query",
89648	//       "type": "string"
89649	//     },
89650	//     "zone": {
89651	//       "description": "The name of the zone for this request.",
89652	//       "location": "path",
89653	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
89654	//       "required": true,
89655	//       "type": "string"
89656	//     }
89657	//   },
89658	//   "path": "{project}/zones/{zone}/instances/{instance}/setTags",
89659	//   "request": {
89660	//     "$ref": "Tags"
89661	//   },
89662	//   "response": {
89663	//     "$ref": "Operation"
89664	//   },
89665	//   "scopes": [
89666	//     "https://www.googleapis.com/auth/cloud-platform",
89667	//     "https://www.googleapis.com/auth/compute"
89668	//   ]
89669	// }
89670
89671}
89672
89673// method id "compute.instances.simulateMaintenanceEvent":
89674
89675type InstancesSimulateMaintenanceEventCall struct {
89676	s          *Service
89677	project    string
89678	zone       string
89679	instance   string
89680	urlParams_ gensupport.URLParams
89681	ctx_       context.Context
89682	header_    http.Header
89683}
89684
89685// SimulateMaintenanceEvent: Simulates a maintenance event on the
89686// instance. (== suppress_warning http-rest-shadowed ==)
89687func (r *InstancesService) SimulateMaintenanceEvent(project string, zone string, instance string) *InstancesSimulateMaintenanceEventCall {
89688	c := &InstancesSimulateMaintenanceEventCall{s: r.s, urlParams_: make(gensupport.URLParams)}
89689	c.project = project
89690	c.zone = zone
89691	c.instance = instance
89692	return c
89693}
89694
89695// Fields allows partial responses to be retrieved. See
89696// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
89697// for more information.
89698func (c *InstancesSimulateMaintenanceEventCall) Fields(s ...googleapi.Field) *InstancesSimulateMaintenanceEventCall {
89699	c.urlParams_.Set("fields", googleapi.CombineFields(s))
89700	return c
89701}
89702
89703// Context sets the context to be used in this call's Do method. Any
89704// pending HTTP request will be aborted if the provided context is
89705// canceled.
89706func (c *InstancesSimulateMaintenanceEventCall) Context(ctx context.Context) *InstancesSimulateMaintenanceEventCall {
89707	c.ctx_ = ctx
89708	return c
89709}
89710
89711// Header returns an http.Header that can be modified by the caller to
89712// add HTTP headers to the request.
89713func (c *InstancesSimulateMaintenanceEventCall) Header() http.Header {
89714	if c.header_ == nil {
89715		c.header_ = make(http.Header)
89716	}
89717	return c.header_
89718}
89719
89720func (c *InstancesSimulateMaintenanceEventCall) doRequest(alt string) (*http.Response, error) {
89721	reqHeaders := make(http.Header)
89722	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
89723	for k, v := range c.header_ {
89724		reqHeaders[k] = v
89725	}
89726	reqHeaders.Set("User-Agent", c.s.userAgent())
89727	var body io.Reader = nil
89728	c.urlParams_.Set("alt", alt)
89729	c.urlParams_.Set("prettyPrint", "false")
89730	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/simulateMaintenanceEvent")
89731	urls += "?" + c.urlParams_.Encode()
89732	req, err := http.NewRequest("POST", urls, body)
89733	if err != nil {
89734		return nil, err
89735	}
89736	req.Header = reqHeaders
89737	googleapi.Expand(req.URL, map[string]string{
89738		"project":  c.project,
89739		"zone":     c.zone,
89740		"instance": c.instance,
89741	})
89742	return gensupport.SendRequest(c.ctx_, c.s.client, req)
89743}
89744
89745// Do executes the "compute.instances.simulateMaintenanceEvent" call.
89746// Exactly one of *Operation or error will be non-nil. Any non-2xx
89747// status code is an error. Response headers are in either
89748// *Operation.ServerResponse.Header or (if a response was returned at
89749// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
89750// to check whether the returned error was because
89751// http.StatusNotModified was returned.
89752func (c *InstancesSimulateMaintenanceEventCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
89753	gensupport.SetOptions(c.urlParams_, opts...)
89754	res, err := c.doRequest("json")
89755	if res != nil && res.StatusCode == http.StatusNotModified {
89756		if res.Body != nil {
89757			res.Body.Close()
89758		}
89759		return nil, &googleapi.Error{
89760			Code:   res.StatusCode,
89761			Header: res.Header,
89762		}
89763	}
89764	if err != nil {
89765		return nil, err
89766	}
89767	defer googleapi.CloseBody(res)
89768	if err := googleapi.CheckResponse(res); err != nil {
89769		return nil, err
89770	}
89771	ret := &Operation{
89772		ServerResponse: googleapi.ServerResponse{
89773			Header:         res.Header,
89774			HTTPStatusCode: res.StatusCode,
89775		},
89776	}
89777	target := &ret
89778	if err := gensupport.DecodeResponse(target, res); err != nil {
89779		return nil, err
89780	}
89781	return ret, nil
89782	// {
89783	//   "description": "Simulates a maintenance event on the instance. (== suppress_warning http-rest-shadowed ==)",
89784	//   "httpMethod": "POST",
89785	//   "id": "compute.instances.simulateMaintenanceEvent",
89786	//   "parameterOrder": [
89787	//     "project",
89788	//     "zone",
89789	//     "instance"
89790	//   ],
89791	//   "parameters": {
89792	//     "instance": {
89793	//       "description": "Name of the instance scoping this request.",
89794	//       "location": "path",
89795	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
89796	//       "required": true,
89797	//       "type": "string"
89798	//     },
89799	//     "project": {
89800	//       "description": "Project ID for this request.",
89801	//       "location": "path",
89802	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
89803	//       "required": true,
89804	//       "type": "string"
89805	//     },
89806	//     "zone": {
89807	//       "description": "The name of the zone for this request.",
89808	//       "location": "path",
89809	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
89810	//       "required": true,
89811	//       "type": "string"
89812	//     }
89813	//   },
89814	//   "path": "{project}/zones/{zone}/instances/{instance}/simulateMaintenanceEvent",
89815	//   "response": {
89816	//     "$ref": "Operation"
89817	//   },
89818	//   "scopes": [
89819	//     "https://www.googleapis.com/auth/cloud-platform",
89820	//     "https://www.googleapis.com/auth/compute"
89821	//   ]
89822	// }
89823
89824}
89825
89826// method id "compute.instances.start":
89827
89828type InstancesStartCall struct {
89829	s          *Service
89830	project    string
89831	zone       string
89832	instance   string
89833	urlParams_ gensupport.URLParams
89834	ctx_       context.Context
89835	header_    http.Header
89836}
89837
89838// Start: Starts an instance that was stopped using the instances().stop
89839// method. For more information, see Restart an instance. (==
89840// suppress_warning http-rest-shadowed ==)
89841// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/start
89842func (r *InstancesService) Start(project string, zone string, instance string) *InstancesStartCall {
89843	c := &InstancesStartCall{s: r.s, urlParams_: make(gensupport.URLParams)}
89844	c.project = project
89845	c.zone = zone
89846	c.instance = instance
89847	return c
89848}
89849
89850// RequestId sets the optional parameter "requestId": An optional
89851// request ID to identify requests. Specify a unique request ID so that
89852// if you must retry your request, the server will know to ignore the
89853// request if it has already been completed.
89854//
89855// For example, consider a situation where you make an initial request
89856// and the request times out. If you make the request again with the
89857// same request ID, the server can check if original operation with the
89858// same request ID was received, and if so, will ignore the second
89859// request. This prevents clients from accidentally creating duplicate
89860// commitments.
89861//
89862// The request ID must be a valid UUID with the exception that zero UUID
89863// is not supported (00000000-0000-0000-0000-000000000000).
89864func (c *InstancesStartCall) RequestId(requestId string) *InstancesStartCall {
89865	c.urlParams_.Set("requestId", requestId)
89866	return c
89867}
89868
89869// Fields allows partial responses to be retrieved. See
89870// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
89871// for more information.
89872func (c *InstancesStartCall) Fields(s ...googleapi.Field) *InstancesStartCall {
89873	c.urlParams_.Set("fields", googleapi.CombineFields(s))
89874	return c
89875}
89876
89877// Context sets the context to be used in this call's Do method. Any
89878// pending HTTP request will be aborted if the provided context is
89879// canceled.
89880func (c *InstancesStartCall) Context(ctx context.Context) *InstancesStartCall {
89881	c.ctx_ = ctx
89882	return c
89883}
89884
89885// Header returns an http.Header that can be modified by the caller to
89886// add HTTP headers to the request.
89887func (c *InstancesStartCall) Header() http.Header {
89888	if c.header_ == nil {
89889		c.header_ = make(http.Header)
89890	}
89891	return c.header_
89892}
89893
89894func (c *InstancesStartCall) doRequest(alt string) (*http.Response, error) {
89895	reqHeaders := make(http.Header)
89896	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
89897	for k, v := range c.header_ {
89898		reqHeaders[k] = v
89899	}
89900	reqHeaders.Set("User-Agent", c.s.userAgent())
89901	var body io.Reader = nil
89902	c.urlParams_.Set("alt", alt)
89903	c.urlParams_.Set("prettyPrint", "false")
89904	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/start")
89905	urls += "?" + c.urlParams_.Encode()
89906	req, err := http.NewRequest("POST", urls, body)
89907	if err != nil {
89908		return nil, err
89909	}
89910	req.Header = reqHeaders
89911	googleapi.Expand(req.URL, map[string]string{
89912		"project":  c.project,
89913		"zone":     c.zone,
89914		"instance": c.instance,
89915	})
89916	return gensupport.SendRequest(c.ctx_, c.s.client, req)
89917}
89918
89919// Do executes the "compute.instances.start" call.
89920// Exactly one of *Operation or error will be non-nil. Any non-2xx
89921// status code is an error. Response headers are in either
89922// *Operation.ServerResponse.Header or (if a response was returned at
89923// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
89924// to check whether the returned error was because
89925// http.StatusNotModified was returned.
89926func (c *InstancesStartCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
89927	gensupport.SetOptions(c.urlParams_, opts...)
89928	res, err := c.doRequest("json")
89929	if res != nil && res.StatusCode == http.StatusNotModified {
89930		if res.Body != nil {
89931			res.Body.Close()
89932		}
89933		return nil, &googleapi.Error{
89934			Code:   res.StatusCode,
89935			Header: res.Header,
89936		}
89937	}
89938	if err != nil {
89939		return nil, err
89940	}
89941	defer googleapi.CloseBody(res)
89942	if err := googleapi.CheckResponse(res); err != nil {
89943		return nil, err
89944	}
89945	ret := &Operation{
89946		ServerResponse: googleapi.ServerResponse{
89947			Header:         res.Header,
89948			HTTPStatusCode: res.StatusCode,
89949		},
89950	}
89951	target := &ret
89952	if err := gensupport.DecodeResponse(target, res); err != nil {
89953		return nil, err
89954	}
89955	return ret, nil
89956	// {
89957	//   "description": "Starts an instance that was stopped using the instances().stop method. For more information, see Restart an instance. (== suppress_warning http-rest-shadowed ==)",
89958	//   "httpMethod": "POST",
89959	//   "id": "compute.instances.start",
89960	//   "parameterOrder": [
89961	//     "project",
89962	//     "zone",
89963	//     "instance"
89964	//   ],
89965	//   "parameters": {
89966	//     "instance": {
89967	//       "description": "Name of the instance resource to start.",
89968	//       "location": "path",
89969	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
89970	//       "required": true,
89971	//       "type": "string"
89972	//     },
89973	//     "project": {
89974	//       "description": "Project ID for this request.",
89975	//       "location": "path",
89976	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
89977	//       "required": true,
89978	//       "type": "string"
89979	//     },
89980	//     "requestId": {
89981	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
89982	//       "location": "query",
89983	//       "type": "string"
89984	//     },
89985	//     "zone": {
89986	//       "description": "The name of the zone for this request.",
89987	//       "location": "path",
89988	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
89989	//       "required": true,
89990	//       "type": "string"
89991	//     }
89992	//   },
89993	//   "path": "{project}/zones/{zone}/instances/{instance}/start",
89994	//   "response": {
89995	//     "$ref": "Operation"
89996	//   },
89997	//   "scopes": [
89998	//     "https://www.googleapis.com/auth/cloud-platform",
89999	//     "https://www.googleapis.com/auth/compute"
90000	//   ]
90001	// }
90002
90003}
90004
90005// method id "compute.instances.startWithEncryptionKey":
90006
90007type InstancesStartWithEncryptionKeyCall struct {
90008	s                                      *Service
90009	project                                string
90010	zone                                   string
90011	instance                               string
90012	instancesstartwithencryptionkeyrequest *InstancesStartWithEncryptionKeyRequest
90013	urlParams_                             gensupport.URLParams
90014	ctx_                                   context.Context
90015	header_                                http.Header
90016}
90017
90018// StartWithEncryptionKey: Starts an instance that was stopped using the
90019// instances().stop method. For more information, see Restart an
90020// instance. (== suppress_warning http-rest-shadowed ==)
90021func (r *InstancesService) StartWithEncryptionKey(project string, zone string, instance string, instancesstartwithencryptionkeyrequest *InstancesStartWithEncryptionKeyRequest) *InstancesStartWithEncryptionKeyCall {
90022	c := &InstancesStartWithEncryptionKeyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
90023	c.project = project
90024	c.zone = zone
90025	c.instance = instance
90026	c.instancesstartwithencryptionkeyrequest = instancesstartwithencryptionkeyrequest
90027	return c
90028}
90029
90030// RequestId sets the optional parameter "requestId": An optional
90031// request ID to identify requests. Specify a unique request ID so that
90032// if you must retry your request, the server will know to ignore the
90033// request if it has already been completed.
90034//
90035// For example, consider a situation where you make an initial request
90036// and the request times out. If you make the request again with the
90037// same request ID, the server can check if original operation with the
90038// same request ID was received, and if so, will ignore the second
90039// request. This prevents clients from accidentally creating duplicate
90040// commitments.
90041//
90042// The request ID must be a valid UUID with the exception that zero UUID
90043// is not supported (00000000-0000-0000-0000-000000000000).
90044func (c *InstancesStartWithEncryptionKeyCall) RequestId(requestId string) *InstancesStartWithEncryptionKeyCall {
90045	c.urlParams_.Set("requestId", requestId)
90046	return c
90047}
90048
90049// Fields allows partial responses to be retrieved. See
90050// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
90051// for more information.
90052func (c *InstancesStartWithEncryptionKeyCall) Fields(s ...googleapi.Field) *InstancesStartWithEncryptionKeyCall {
90053	c.urlParams_.Set("fields", googleapi.CombineFields(s))
90054	return c
90055}
90056
90057// Context sets the context to be used in this call's Do method. Any
90058// pending HTTP request will be aborted if the provided context is
90059// canceled.
90060func (c *InstancesStartWithEncryptionKeyCall) Context(ctx context.Context) *InstancesStartWithEncryptionKeyCall {
90061	c.ctx_ = ctx
90062	return c
90063}
90064
90065// Header returns an http.Header that can be modified by the caller to
90066// add HTTP headers to the request.
90067func (c *InstancesStartWithEncryptionKeyCall) Header() http.Header {
90068	if c.header_ == nil {
90069		c.header_ = make(http.Header)
90070	}
90071	return c.header_
90072}
90073
90074func (c *InstancesStartWithEncryptionKeyCall) doRequest(alt string) (*http.Response, error) {
90075	reqHeaders := make(http.Header)
90076	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
90077	for k, v := range c.header_ {
90078		reqHeaders[k] = v
90079	}
90080	reqHeaders.Set("User-Agent", c.s.userAgent())
90081	var body io.Reader = nil
90082	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancesstartwithencryptionkeyrequest)
90083	if err != nil {
90084		return nil, err
90085	}
90086	reqHeaders.Set("Content-Type", "application/json")
90087	c.urlParams_.Set("alt", alt)
90088	c.urlParams_.Set("prettyPrint", "false")
90089	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/startWithEncryptionKey")
90090	urls += "?" + c.urlParams_.Encode()
90091	req, err := http.NewRequest("POST", urls, body)
90092	if err != nil {
90093		return nil, err
90094	}
90095	req.Header = reqHeaders
90096	googleapi.Expand(req.URL, map[string]string{
90097		"project":  c.project,
90098		"zone":     c.zone,
90099		"instance": c.instance,
90100	})
90101	return gensupport.SendRequest(c.ctx_, c.s.client, req)
90102}
90103
90104// Do executes the "compute.instances.startWithEncryptionKey" call.
90105// Exactly one of *Operation or error will be non-nil. Any non-2xx
90106// status code is an error. Response headers are in either
90107// *Operation.ServerResponse.Header or (if a response was returned at
90108// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
90109// to check whether the returned error was because
90110// http.StatusNotModified was returned.
90111func (c *InstancesStartWithEncryptionKeyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
90112	gensupport.SetOptions(c.urlParams_, opts...)
90113	res, err := c.doRequest("json")
90114	if res != nil && res.StatusCode == http.StatusNotModified {
90115		if res.Body != nil {
90116			res.Body.Close()
90117		}
90118		return nil, &googleapi.Error{
90119			Code:   res.StatusCode,
90120			Header: res.Header,
90121		}
90122	}
90123	if err != nil {
90124		return nil, err
90125	}
90126	defer googleapi.CloseBody(res)
90127	if err := googleapi.CheckResponse(res); err != nil {
90128		return nil, err
90129	}
90130	ret := &Operation{
90131		ServerResponse: googleapi.ServerResponse{
90132			Header:         res.Header,
90133			HTTPStatusCode: res.StatusCode,
90134		},
90135	}
90136	target := &ret
90137	if err := gensupport.DecodeResponse(target, res); err != nil {
90138		return nil, err
90139	}
90140	return ret, nil
90141	// {
90142	//   "description": "Starts an instance that was stopped using the instances().stop method. For more information, see Restart an instance. (== suppress_warning http-rest-shadowed ==)",
90143	//   "httpMethod": "POST",
90144	//   "id": "compute.instances.startWithEncryptionKey",
90145	//   "parameterOrder": [
90146	//     "project",
90147	//     "zone",
90148	//     "instance"
90149	//   ],
90150	//   "parameters": {
90151	//     "instance": {
90152	//       "description": "Name of the instance resource to start.",
90153	//       "location": "path",
90154	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
90155	//       "required": true,
90156	//       "type": "string"
90157	//     },
90158	//     "project": {
90159	//       "description": "Project ID for this request.",
90160	//       "location": "path",
90161	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
90162	//       "required": true,
90163	//       "type": "string"
90164	//     },
90165	//     "requestId": {
90166	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
90167	//       "location": "query",
90168	//       "type": "string"
90169	//     },
90170	//     "zone": {
90171	//       "description": "The name of the zone for this request.",
90172	//       "location": "path",
90173	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
90174	//       "required": true,
90175	//       "type": "string"
90176	//     }
90177	//   },
90178	//   "path": "{project}/zones/{zone}/instances/{instance}/startWithEncryptionKey",
90179	//   "request": {
90180	//     "$ref": "InstancesStartWithEncryptionKeyRequest"
90181	//   },
90182	//   "response": {
90183	//     "$ref": "Operation"
90184	//   },
90185	//   "scopes": [
90186	//     "https://www.googleapis.com/auth/cloud-platform",
90187	//     "https://www.googleapis.com/auth/compute"
90188	//   ]
90189	// }
90190
90191}
90192
90193// method id "compute.instances.stop":
90194
90195type InstancesStopCall struct {
90196	s          *Service
90197	project    string
90198	zone       string
90199	instance   string
90200	urlParams_ gensupport.URLParams
90201	ctx_       context.Context
90202	header_    http.Header
90203}
90204
90205// Stop: Stops a running instance, shutting it down cleanly, and allows
90206// you to restart the instance at a later time. Stopped instances do not
90207// incur VM usage charges while they are stopped. However, resources
90208// that the VM is using, such as persistent disks and static IP
90209// addresses, will continue to be charged until they are deleted. For
90210// more information, see Stopping an instance. (== suppress_warning
90211// http-rest-shadowed ==)
90212// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/stop
90213func (r *InstancesService) Stop(project string, zone string, instance string) *InstancesStopCall {
90214	c := &InstancesStopCall{s: r.s, urlParams_: make(gensupport.URLParams)}
90215	c.project = project
90216	c.zone = zone
90217	c.instance = instance
90218	return c
90219}
90220
90221// DiscardLocalSsd sets the optional parameter "discardLocalSsd": If
90222// true, discard the contents of any attached localSSD partitions.
90223// Default value is false (== preserve localSSD data).
90224func (c *InstancesStopCall) DiscardLocalSsd(discardLocalSsd bool) *InstancesStopCall {
90225	c.urlParams_.Set("discardLocalSsd", fmt.Sprint(discardLocalSsd))
90226	return c
90227}
90228
90229// RequestId sets the optional parameter "requestId": An optional
90230// request ID to identify requests. Specify a unique request ID so that
90231// if you must retry your request, the server will know to ignore the
90232// request if it has already been completed.
90233//
90234// For example, consider a situation where you make an initial request
90235// and the request times out. If you make the request again with the
90236// same request ID, the server can check if original operation with the
90237// same request ID was received, and if so, will ignore the second
90238// request. This prevents clients from accidentally creating duplicate
90239// commitments.
90240//
90241// The request ID must be a valid UUID with the exception that zero UUID
90242// is not supported (00000000-0000-0000-0000-000000000000).
90243func (c *InstancesStopCall) RequestId(requestId string) *InstancesStopCall {
90244	c.urlParams_.Set("requestId", requestId)
90245	return c
90246}
90247
90248// Fields allows partial responses to be retrieved. See
90249// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
90250// for more information.
90251func (c *InstancesStopCall) Fields(s ...googleapi.Field) *InstancesStopCall {
90252	c.urlParams_.Set("fields", googleapi.CombineFields(s))
90253	return c
90254}
90255
90256// Context sets the context to be used in this call's Do method. Any
90257// pending HTTP request will be aborted if the provided context is
90258// canceled.
90259func (c *InstancesStopCall) Context(ctx context.Context) *InstancesStopCall {
90260	c.ctx_ = ctx
90261	return c
90262}
90263
90264// Header returns an http.Header that can be modified by the caller to
90265// add HTTP headers to the request.
90266func (c *InstancesStopCall) Header() http.Header {
90267	if c.header_ == nil {
90268		c.header_ = make(http.Header)
90269	}
90270	return c.header_
90271}
90272
90273func (c *InstancesStopCall) doRequest(alt string) (*http.Response, error) {
90274	reqHeaders := make(http.Header)
90275	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
90276	for k, v := range c.header_ {
90277		reqHeaders[k] = v
90278	}
90279	reqHeaders.Set("User-Agent", c.s.userAgent())
90280	var body io.Reader = nil
90281	c.urlParams_.Set("alt", alt)
90282	c.urlParams_.Set("prettyPrint", "false")
90283	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/stop")
90284	urls += "?" + c.urlParams_.Encode()
90285	req, err := http.NewRequest("POST", urls, body)
90286	if err != nil {
90287		return nil, err
90288	}
90289	req.Header = reqHeaders
90290	googleapi.Expand(req.URL, map[string]string{
90291		"project":  c.project,
90292		"zone":     c.zone,
90293		"instance": c.instance,
90294	})
90295	return gensupport.SendRequest(c.ctx_, c.s.client, req)
90296}
90297
90298// Do executes the "compute.instances.stop" call.
90299// Exactly one of *Operation or error will be non-nil. Any non-2xx
90300// status code is an error. Response headers are in either
90301// *Operation.ServerResponse.Header or (if a response was returned at
90302// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
90303// to check whether the returned error was because
90304// http.StatusNotModified was returned.
90305func (c *InstancesStopCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
90306	gensupport.SetOptions(c.urlParams_, opts...)
90307	res, err := c.doRequest("json")
90308	if res != nil && res.StatusCode == http.StatusNotModified {
90309		if res.Body != nil {
90310			res.Body.Close()
90311		}
90312		return nil, &googleapi.Error{
90313			Code:   res.StatusCode,
90314			Header: res.Header,
90315		}
90316	}
90317	if err != nil {
90318		return nil, err
90319	}
90320	defer googleapi.CloseBody(res)
90321	if err := googleapi.CheckResponse(res); err != nil {
90322		return nil, err
90323	}
90324	ret := &Operation{
90325		ServerResponse: googleapi.ServerResponse{
90326			Header:         res.Header,
90327			HTTPStatusCode: res.StatusCode,
90328		},
90329	}
90330	target := &ret
90331	if err := gensupport.DecodeResponse(target, res); err != nil {
90332		return nil, err
90333	}
90334	return ret, nil
90335	// {
90336	//   "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. (== suppress_warning http-rest-shadowed ==)",
90337	//   "httpMethod": "POST",
90338	//   "id": "compute.instances.stop",
90339	//   "parameterOrder": [
90340	//     "project",
90341	//     "zone",
90342	//     "instance"
90343	//   ],
90344	//   "parameters": {
90345	//     "discardLocalSsd": {
90346	//       "description": "If true, discard the contents of any attached localSSD partitions. Default value is false (== preserve localSSD data).",
90347	//       "location": "query",
90348	//       "type": "boolean"
90349	//     },
90350	//     "instance": {
90351	//       "description": "Name of the instance resource to stop.",
90352	//       "location": "path",
90353	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
90354	//       "required": true,
90355	//       "type": "string"
90356	//     },
90357	//     "project": {
90358	//       "description": "Project ID for this request.",
90359	//       "location": "path",
90360	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
90361	//       "required": true,
90362	//       "type": "string"
90363	//     },
90364	//     "requestId": {
90365	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
90366	//       "location": "query",
90367	//       "type": "string"
90368	//     },
90369	//     "zone": {
90370	//       "description": "The name of the zone for this request.",
90371	//       "location": "path",
90372	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
90373	//       "required": true,
90374	//       "type": "string"
90375	//     }
90376	//   },
90377	//   "path": "{project}/zones/{zone}/instances/{instance}/stop",
90378	//   "response": {
90379	//     "$ref": "Operation"
90380	//   },
90381	//   "scopes": [
90382	//     "https://www.googleapis.com/auth/cloud-platform",
90383	//     "https://www.googleapis.com/auth/compute"
90384	//   ]
90385	// }
90386
90387}
90388
90389// method id "compute.instances.suspend":
90390
90391type InstancesSuspendCall struct {
90392	s          *Service
90393	project    string
90394	zone       string
90395	instance   string
90396	urlParams_ gensupport.URLParams
90397	ctx_       context.Context
90398	header_    http.Header
90399}
90400
90401// Suspend: This method suspends a running instance, saving its state to
90402// persistent storage, and allows you to resume the instance at a later
90403// time. Suspended instances incur reduced per-minute, virtual machine
90404// usage charges while they are suspended. Any resources the virtual
90405// machine is using, such as persistent disks and static IP addresses,
90406// will continue to be charged until they are deleted. (==
90407// suppress_warning http-rest-shadowed ==)
90408func (r *InstancesService) Suspend(project string, zone string, instance string) *InstancesSuspendCall {
90409	c := &InstancesSuspendCall{s: r.s, urlParams_: make(gensupport.URLParams)}
90410	c.project = project
90411	c.zone = zone
90412	c.instance = instance
90413	return c
90414}
90415
90416// DiscardLocalSsd sets the optional parameter "discardLocalSsd": If
90417// true, discard the contents of any attached localSSD partitions.
90418// Default value is false (== preserve localSSD data).
90419func (c *InstancesSuspendCall) DiscardLocalSsd(discardLocalSsd bool) *InstancesSuspendCall {
90420	c.urlParams_.Set("discardLocalSsd", fmt.Sprint(discardLocalSsd))
90421	return c
90422}
90423
90424// RequestId sets the optional parameter "requestId": An optional
90425// request ID to identify requests. Specify a unique request ID so that
90426// if you must retry your request, the server will know to ignore the
90427// request if it has already been completed.
90428//
90429// For example, consider a situation where you make an initial request
90430// and the request times out. If you make the request again with the
90431// same request ID, the server can check if original operation with the
90432// same request ID was received, and if so, will ignore the second
90433// request. This prevents clients from accidentally creating duplicate
90434// commitments.
90435//
90436// The request ID must be a valid UUID with the exception that zero UUID
90437// is not supported (00000000-0000-0000-0000-000000000000).
90438func (c *InstancesSuspendCall) RequestId(requestId string) *InstancesSuspendCall {
90439	c.urlParams_.Set("requestId", requestId)
90440	return c
90441}
90442
90443// Fields allows partial responses to be retrieved. See
90444// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
90445// for more information.
90446func (c *InstancesSuspendCall) Fields(s ...googleapi.Field) *InstancesSuspendCall {
90447	c.urlParams_.Set("fields", googleapi.CombineFields(s))
90448	return c
90449}
90450
90451// Context sets the context to be used in this call's Do method. Any
90452// pending HTTP request will be aborted if the provided context is
90453// canceled.
90454func (c *InstancesSuspendCall) Context(ctx context.Context) *InstancesSuspendCall {
90455	c.ctx_ = ctx
90456	return c
90457}
90458
90459// Header returns an http.Header that can be modified by the caller to
90460// add HTTP headers to the request.
90461func (c *InstancesSuspendCall) Header() http.Header {
90462	if c.header_ == nil {
90463		c.header_ = make(http.Header)
90464	}
90465	return c.header_
90466}
90467
90468func (c *InstancesSuspendCall) doRequest(alt string) (*http.Response, error) {
90469	reqHeaders := make(http.Header)
90470	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
90471	for k, v := range c.header_ {
90472		reqHeaders[k] = v
90473	}
90474	reqHeaders.Set("User-Agent", c.s.userAgent())
90475	var body io.Reader = nil
90476	c.urlParams_.Set("alt", alt)
90477	c.urlParams_.Set("prettyPrint", "false")
90478	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/suspend")
90479	urls += "?" + c.urlParams_.Encode()
90480	req, err := http.NewRequest("POST", urls, body)
90481	if err != nil {
90482		return nil, err
90483	}
90484	req.Header = reqHeaders
90485	googleapi.Expand(req.URL, map[string]string{
90486		"project":  c.project,
90487		"zone":     c.zone,
90488		"instance": c.instance,
90489	})
90490	return gensupport.SendRequest(c.ctx_, c.s.client, req)
90491}
90492
90493// Do executes the "compute.instances.suspend" call.
90494// Exactly one of *Operation or error will be non-nil. Any non-2xx
90495// status code is an error. Response headers are in either
90496// *Operation.ServerResponse.Header or (if a response was returned at
90497// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
90498// to check whether the returned error was because
90499// http.StatusNotModified was returned.
90500func (c *InstancesSuspendCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
90501	gensupport.SetOptions(c.urlParams_, opts...)
90502	res, err := c.doRequest("json")
90503	if res != nil && res.StatusCode == http.StatusNotModified {
90504		if res.Body != nil {
90505			res.Body.Close()
90506		}
90507		return nil, &googleapi.Error{
90508			Code:   res.StatusCode,
90509			Header: res.Header,
90510		}
90511	}
90512	if err != nil {
90513		return nil, err
90514	}
90515	defer googleapi.CloseBody(res)
90516	if err := googleapi.CheckResponse(res); err != nil {
90517		return nil, err
90518	}
90519	ret := &Operation{
90520		ServerResponse: googleapi.ServerResponse{
90521			Header:         res.Header,
90522			HTTPStatusCode: res.StatusCode,
90523		},
90524	}
90525	target := &ret
90526	if err := gensupport.DecodeResponse(target, res); err != nil {
90527		return nil, err
90528	}
90529	return ret, nil
90530	// {
90531	//   "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. (== suppress_warning http-rest-shadowed ==)",
90532	//   "httpMethod": "POST",
90533	//   "id": "compute.instances.suspend",
90534	//   "parameterOrder": [
90535	//     "project",
90536	//     "zone",
90537	//     "instance"
90538	//   ],
90539	//   "parameters": {
90540	//     "discardLocalSsd": {
90541	//       "description": "If true, discard the contents of any attached localSSD partitions. Default value is false (== preserve localSSD data).",
90542	//       "location": "query",
90543	//       "type": "boolean"
90544	//     },
90545	//     "instance": {
90546	//       "description": "Name of the instance resource to suspend.",
90547	//       "location": "path",
90548	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
90549	//       "required": true,
90550	//       "type": "string"
90551	//     },
90552	//     "project": {
90553	//       "description": "Project ID for this request.",
90554	//       "location": "path",
90555	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
90556	//       "required": true,
90557	//       "type": "string"
90558	//     },
90559	//     "requestId": {
90560	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
90561	//       "location": "query",
90562	//       "type": "string"
90563	//     },
90564	//     "zone": {
90565	//       "description": "The name of the zone for this request.",
90566	//       "location": "path",
90567	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
90568	//       "required": true,
90569	//       "type": "string"
90570	//     }
90571	//   },
90572	//   "path": "{project}/zones/{zone}/instances/{instance}/suspend",
90573	//   "response": {
90574	//     "$ref": "Operation"
90575	//   },
90576	//   "scopes": [
90577	//     "https://www.googleapis.com/auth/cloud-platform",
90578	//     "https://www.googleapis.com/auth/compute"
90579	//   ]
90580	// }
90581
90582}
90583
90584// method id "compute.instances.testIamPermissions":
90585
90586type InstancesTestIamPermissionsCall struct {
90587	s                      *Service
90588	project                string
90589	zone                   string
90590	resource               string
90591	testpermissionsrequest *TestPermissionsRequest
90592	urlParams_             gensupport.URLParams
90593	ctx_                   context.Context
90594	header_                http.Header
90595}
90596
90597// TestIamPermissions: Returns permissions that a caller has on the
90598// specified resource. (== suppress_warning http-rest-shadowed ==)
90599func (r *InstancesService) TestIamPermissions(project string, zone string, resource string, testpermissionsrequest *TestPermissionsRequest) *InstancesTestIamPermissionsCall {
90600	c := &InstancesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
90601	c.project = project
90602	c.zone = zone
90603	c.resource = resource
90604	c.testpermissionsrequest = testpermissionsrequest
90605	return c
90606}
90607
90608// Fields allows partial responses to be retrieved. See
90609// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
90610// for more information.
90611func (c *InstancesTestIamPermissionsCall) Fields(s ...googleapi.Field) *InstancesTestIamPermissionsCall {
90612	c.urlParams_.Set("fields", googleapi.CombineFields(s))
90613	return c
90614}
90615
90616// Context sets the context to be used in this call's Do method. Any
90617// pending HTTP request will be aborted if the provided context is
90618// canceled.
90619func (c *InstancesTestIamPermissionsCall) Context(ctx context.Context) *InstancesTestIamPermissionsCall {
90620	c.ctx_ = ctx
90621	return c
90622}
90623
90624// Header returns an http.Header that can be modified by the caller to
90625// add HTTP headers to the request.
90626func (c *InstancesTestIamPermissionsCall) Header() http.Header {
90627	if c.header_ == nil {
90628		c.header_ = make(http.Header)
90629	}
90630	return c.header_
90631}
90632
90633func (c *InstancesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
90634	reqHeaders := make(http.Header)
90635	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
90636	for k, v := range c.header_ {
90637		reqHeaders[k] = v
90638	}
90639	reqHeaders.Set("User-Agent", c.s.userAgent())
90640	var body io.Reader = nil
90641	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
90642	if err != nil {
90643		return nil, err
90644	}
90645	reqHeaders.Set("Content-Type", "application/json")
90646	c.urlParams_.Set("alt", alt)
90647	c.urlParams_.Set("prettyPrint", "false")
90648	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{resource}/testIamPermissions")
90649	urls += "?" + c.urlParams_.Encode()
90650	req, err := http.NewRequest("POST", urls, body)
90651	if err != nil {
90652		return nil, err
90653	}
90654	req.Header = reqHeaders
90655	googleapi.Expand(req.URL, map[string]string{
90656		"project":  c.project,
90657		"zone":     c.zone,
90658		"resource": c.resource,
90659	})
90660	return gensupport.SendRequest(c.ctx_, c.s.client, req)
90661}
90662
90663// Do executes the "compute.instances.testIamPermissions" call.
90664// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
90665// non-2xx status code is an error. Response headers are in either
90666// *TestPermissionsResponse.ServerResponse.Header or (if a response was
90667// returned at all) in error.(*googleapi.Error).Header. Use
90668// googleapi.IsNotModified to check whether the returned error was
90669// because http.StatusNotModified was returned.
90670func (c *InstancesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
90671	gensupport.SetOptions(c.urlParams_, opts...)
90672	res, err := c.doRequest("json")
90673	if res != nil && res.StatusCode == http.StatusNotModified {
90674		if res.Body != nil {
90675			res.Body.Close()
90676		}
90677		return nil, &googleapi.Error{
90678			Code:   res.StatusCode,
90679			Header: res.Header,
90680		}
90681	}
90682	if err != nil {
90683		return nil, err
90684	}
90685	defer googleapi.CloseBody(res)
90686	if err := googleapi.CheckResponse(res); err != nil {
90687		return nil, err
90688	}
90689	ret := &TestPermissionsResponse{
90690		ServerResponse: googleapi.ServerResponse{
90691			Header:         res.Header,
90692			HTTPStatusCode: res.StatusCode,
90693		},
90694	}
90695	target := &ret
90696	if err := gensupport.DecodeResponse(target, res); err != nil {
90697		return nil, err
90698	}
90699	return ret, nil
90700	// {
90701	//   "description": "Returns permissions that a caller has on the specified resource. (== suppress_warning http-rest-shadowed ==)",
90702	//   "httpMethod": "POST",
90703	//   "id": "compute.instances.testIamPermissions",
90704	//   "parameterOrder": [
90705	//     "project",
90706	//     "zone",
90707	//     "resource"
90708	//   ],
90709	//   "parameters": {
90710	//     "project": {
90711	//       "description": "Project ID for this request.",
90712	//       "location": "path",
90713	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
90714	//       "required": true,
90715	//       "type": "string"
90716	//     },
90717	//     "resource": {
90718	//       "description": "Name or id of the resource for this request.",
90719	//       "location": "path",
90720	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
90721	//       "required": true,
90722	//       "type": "string"
90723	//     },
90724	//     "zone": {
90725	//       "description": "The name of the zone for this request.",
90726	//       "location": "path",
90727	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
90728	//       "required": true,
90729	//       "type": "string"
90730	//     }
90731	//   },
90732	//   "path": "{project}/zones/{zone}/instances/{resource}/testIamPermissions",
90733	//   "request": {
90734	//     "$ref": "TestPermissionsRequest"
90735	//   },
90736	//   "response": {
90737	//     "$ref": "TestPermissionsResponse"
90738	//   },
90739	//   "scopes": [
90740	//     "https://www.googleapis.com/auth/cloud-platform",
90741	//     "https://www.googleapis.com/auth/compute",
90742	//     "https://www.googleapis.com/auth/compute.readonly"
90743	//   ]
90744	// }
90745
90746}
90747
90748// method id "compute.instances.updateAccessConfig":
90749
90750type InstancesUpdateAccessConfigCall struct {
90751	s            *Service
90752	project      string
90753	zone         string
90754	instance     string
90755	accessconfig *AccessConfig
90756	urlParams_   gensupport.URLParams
90757	ctx_         context.Context
90758	header_      http.Header
90759}
90760
90761// UpdateAccessConfig: Updates the specified access config from an
90762// instance's network interface with the data included in the request.
90763// This method supports PATCH semantics and uses the JSON merge patch
90764// format and processing rules. (== suppress_warning http-rest-shadowed
90765// ==)
90766func (r *InstancesService) UpdateAccessConfig(project string, zone string, instance string, networkInterface string, accessconfig *AccessConfig) *InstancesUpdateAccessConfigCall {
90767	c := &InstancesUpdateAccessConfigCall{s: r.s, urlParams_: make(gensupport.URLParams)}
90768	c.project = project
90769	c.zone = zone
90770	c.instance = instance
90771	c.urlParams_.Set("networkInterface", networkInterface)
90772	c.accessconfig = accessconfig
90773	return c
90774}
90775
90776// RequestId sets the optional parameter "requestId": An optional
90777// request ID to identify requests. Specify a unique request ID so that
90778// if you must retry your request, the server will know to ignore the
90779// request if it has already been completed.
90780//
90781// For example, consider a situation where you make an initial request
90782// and the request times out. If you make the request again with the
90783// same request ID, the server can check if original operation with the
90784// same request ID was received, and if so, will ignore the second
90785// request. This prevents clients from accidentally creating duplicate
90786// commitments.
90787//
90788// The request ID must be a valid UUID with the exception that zero UUID
90789// is not supported (00000000-0000-0000-0000-000000000000).
90790func (c *InstancesUpdateAccessConfigCall) RequestId(requestId string) *InstancesUpdateAccessConfigCall {
90791	c.urlParams_.Set("requestId", requestId)
90792	return c
90793}
90794
90795// Fields allows partial responses to be retrieved. See
90796// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
90797// for more information.
90798func (c *InstancesUpdateAccessConfigCall) Fields(s ...googleapi.Field) *InstancesUpdateAccessConfigCall {
90799	c.urlParams_.Set("fields", googleapi.CombineFields(s))
90800	return c
90801}
90802
90803// Context sets the context to be used in this call's Do method. Any
90804// pending HTTP request will be aborted if the provided context is
90805// canceled.
90806func (c *InstancesUpdateAccessConfigCall) Context(ctx context.Context) *InstancesUpdateAccessConfigCall {
90807	c.ctx_ = ctx
90808	return c
90809}
90810
90811// Header returns an http.Header that can be modified by the caller to
90812// add HTTP headers to the request.
90813func (c *InstancesUpdateAccessConfigCall) Header() http.Header {
90814	if c.header_ == nil {
90815		c.header_ = make(http.Header)
90816	}
90817	return c.header_
90818}
90819
90820func (c *InstancesUpdateAccessConfigCall) doRequest(alt string) (*http.Response, error) {
90821	reqHeaders := make(http.Header)
90822	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
90823	for k, v := range c.header_ {
90824		reqHeaders[k] = v
90825	}
90826	reqHeaders.Set("User-Agent", c.s.userAgent())
90827	var body io.Reader = nil
90828	body, err := googleapi.WithoutDataWrapper.JSONReader(c.accessconfig)
90829	if err != nil {
90830		return nil, err
90831	}
90832	reqHeaders.Set("Content-Type", "application/json")
90833	c.urlParams_.Set("alt", alt)
90834	c.urlParams_.Set("prettyPrint", "false")
90835	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/updateAccessConfig")
90836	urls += "?" + c.urlParams_.Encode()
90837	req, err := http.NewRequest("POST", urls, body)
90838	if err != nil {
90839		return nil, err
90840	}
90841	req.Header = reqHeaders
90842	googleapi.Expand(req.URL, map[string]string{
90843		"project":  c.project,
90844		"zone":     c.zone,
90845		"instance": c.instance,
90846	})
90847	return gensupport.SendRequest(c.ctx_, c.s.client, req)
90848}
90849
90850// Do executes the "compute.instances.updateAccessConfig" call.
90851// Exactly one of *Operation or error will be non-nil. Any non-2xx
90852// status code is an error. Response headers are in either
90853// *Operation.ServerResponse.Header or (if a response was returned at
90854// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
90855// to check whether the returned error was because
90856// http.StatusNotModified was returned.
90857func (c *InstancesUpdateAccessConfigCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
90858	gensupport.SetOptions(c.urlParams_, opts...)
90859	res, err := c.doRequest("json")
90860	if res != nil && res.StatusCode == http.StatusNotModified {
90861		if res.Body != nil {
90862			res.Body.Close()
90863		}
90864		return nil, &googleapi.Error{
90865			Code:   res.StatusCode,
90866			Header: res.Header,
90867		}
90868	}
90869	if err != nil {
90870		return nil, err
90871	}
90872	defer googleapi.CloseBody(res)
90873	if err := googleapi.CheckResponse(res); err != nil {
90874		return nil, err
90875	}
90876	ret := &Operation{
90877		ServerResponse: googleapi.ServerResponse{
90878			Header:         res.Header,
90879			HTTPStatusCode: res.StatusCode,
90880		},
90881	}
90882	target := &ret
90883	if err := gensupport.DecodeResponse(target, res); err != nil {
90884		return nil, err
90885	}
90886	return ret, nil
90887	// {
90888	//   "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. (== suppress_warning http-rest-shadowed ==)",
90889	//   "httpMethod": "POST",
90890	//   "id": "compute.instances.updateAccessConfig",
90891	//   "parameterOrder": [
90892	//     "project",
90893	//     "zone",
90894	//     "instance",
90895	//     "networkInterface"
90896	//   ],
90897	//   "parameters": {
90898	//     "instance": {
90899	//       "description": "The instance name for this request.",
90900	//       "location": "path",
90901	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
90902	//       "required": true,
90903	//       "type": "string"
90904	//     },
90905	//     "networkInterface": {
90906	//       "description": "The name of the network interface where the access config is attached.",
90907	//       "location": "query",
90908	//       "required": true,
90909	//       "type": "string"
90910	//     },
90911	//     "project": {
90912	//       "description": "Project ID for this request.",
90913	//       "location": "path",
90914	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
90915	//       "required": true,
90916	//       "type": "string"
90917	//     },
90918	//     "requestId": {
90919	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
90920	//       "location": "query",
90921	//       "type": "string"
90922	//     },
90923	//     "zone": {
90924	//       "description": "The name of the zone for this request.",
90925	//       "location": "path",
90926	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
90927	//       "required": true,
90928	//       "type": "string"
90929	//     }
90930	//   },
90931	//   "path": "{project}/zones/{zone}/instances/{instance}/updateAccessConfig",
90932	//   "request": {
90933	//     "$ref": "AccessConfig"
90934	//   },
90935	//   "response": {
90936	//     "$ref": "Operation"
90937	//   },
90938	//   "scopes": [
90939	//     "https://www.googleapis.com/auth/cloud-platform",
90940	//     "https://www.googleapis.com/auth/compute"
90941	//   ]
90942	// }
90943
90944}
90945
90946// method id "compute.instances.updateDisplayDevice":
90947
90948type InstancesUpdateDisplayDeviceCall struct {
90949	s             *Service
90950	project       string
90951	zone          string
90952	instance      string
90953	displaydevice *DisplayDevice
90954	urlParams_    gensupport.URLParams
90955	ctx_          context.Context
90956	header_       http.Header
90957}
90958
90959// UpdateDisplayDevice: Updates the Display config for a VM instance.
90960// You can only use this method on a stopped VM instance. This method
90961// supports PATCH semantics and uses the JSON merge patch format and
90962// processing rules. (== suppress_warning http-rest-shadowed ==)
90963func (r *InstancesService) UpdateDisplayDevice(project string, zone string, instance string, displaydevice *DisplayDevice) *InstancesUpdateDisplayDeviceCall {
90964	c := &InstancesUpdateDisplayDeviceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
90965	c.project = project
90966	c.zone = zone
90967	c.instance = instance
90968	c.displaydevice = displaydevice
90969	return c
90970}
90971
90972// RequestId sets the optional parameter "requestId": An optional
90973// request ID to identify requests. Specify a unique request ID so that
90974// if you must retry your request, the server will know to ignore the
90975// request if it has already been completed.
90976//
90977// For example, consider a situation where you make an initial request
90978// and the request times out. If you make the request again with the
90979// same request ID, the server can check if original operation with the
90980// same request ID was received, and if so, will ignore the second
90981// request. This prevents clients from accidentally creating duplicate
90982// commitments.
90983//
90984// The request ID must be a valid UUID with the exception that zero UUID
90985// is not supported (00000000-0000-0000-0000-000000000000).
90986func (c *InstancesUpdateDisplayDeviceCall) RequestId(requestId string) *InstancesUpdateDisplayDeviceCall {
90987	c.urlParams_.Set("requestId", requestId)
90988	return c
90989}
90990
90991// Fields allows partial responses to be retrieved. See
90992// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
90993// for more information.
90994func (c *InstancesUpdateDisplayDeviceCall) Fields(s ...googleapi.Field) *InstancesUpdateDisplayDeviceCall {
90995	c.urlParams_.Set("fields", googleapi.CombineFields(s))
90996	return c
90997}
90998
90999// Context sets the context to be used in this call's Do method. Any
91000// pending HTTP request will be aborted if the provided context is
91001// canceled.
91002func (c *InstancesUpdateDisplayDeviceCall) Context(ctx context.Context) *InstancesUpdateDisplayDeviceCall {
91003	c.ctx_ = ctx
91004	return c
91005}
91006
91007// Header returns an http.Header that can be modified by the caller to
91008// add HTTP headers to the request.
91009func (c *InstancesUpdateDisplayDeviceCall) Header() http.Header {
91010	if c.header_ == nil {
91011		c.header_ = make(http.Header)
91012	}
91013	return c.header_
91014}
91015
91016func (c *InstancesUpdateDisplayDeviceCall) doRequest(alt string) (*http.Response, error) {
91017	reqHeaders := make(http.Header)
91018	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
91019	for k, v := range c.header_ {
91020		reqHeaders[k] = v
91021	}
91022	reqHeaders.Set("User-Agent", c.s.userAgent())
91023	var body io.Reader = nil
91024	body, err := googleapi.WithoutDataWrapper.JSONReader(c.displaydevice)
91025	if err != nil {
91026		return nil, err
91027	}
91028	reqHeaders.Set("Content-Type", "application/json")
91029	c.urlParams_.Set("alt", alt)
91030	c.urlParams_.Set("prettyPrint", "false")
91031	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/updateDisplayDevice")
91032	urls += "?" + c.urlParams_.Encode()
91033	req, err := http.NewRequest("PATCH", urls, body)
91034	if err != nil {
91035		return nil, err
91036	}
91037	req.Header = reqHeaders
91038	googleapi.Expand(req.URL, map[string]string{
91039		"project":  c.project,
91040		"zone":     c.zone,
91041		"instance": c.instance,
91042	})
91043	return gensupport.SendRequest(c.ctx_, c.s.client, req)
91044}
91045
91046// Do executes the "compute.instances.updateDisplayDevice" call.
91047// Exactly one of *Operation or error will be non-nil. Any non-2xx
91048// status code is an error. Response headers are in either
91049// *Operation.ServerResponse.Header or (if a response was returned at
91050// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
91051// to check whether the returned error was because
91052// http.StatusNotModified was returned.
91053func (c *InstancesUpdateDisplayDeviceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
91054	gensupport.SetOptions(c.urlParams_, opts...)
91055	res, err := c.doRequest("json")
91056	if res != nil && res.StatusCode == http.StatusNotModified {
91057		if res.Body != nil {
91058			res.Body.Close()
91059		}
91060		return nil, &googleapi.Error{
91061			Code:   res.StatusCode,
91062			Header: res.Header,
91063		}
91064	}
91065	if err != nil {
91066		return nil, err
91067	}
91068	defer googleapi.CloseBody(res)
91069	if err := googleapi.CheckResponse(res); err != nil {
91070		return nil, err
91071	}
91072	ret := &Operation{
91073		ServerResponse: googleapi.ServerResponse{
91074			Header:         res.Header,
91075			HTTPStatusCode: res.StatusCode,
91076		},
91077	}
91078	target := &ret
91079	if err := gensupport.DecodeResponse(target, res); err != nil {
91080		return nil, err
91081	}
91082	return ret, nil
91083	// {
91084	//   "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. (== suppress_warning http-rest-shadowed ==)",
91085	//   "httpMethod": "PATCH",
91086	//   "id": "compute.instances.updateDisplayDevice",
91087	//   "parameterOrder": [
91088	//     "project",
91089	//     "zone",
91090	//     "instance"
91091	//   ],
91092	//   "parameters": {
91093	//     "instance": {
91094	//       "description": "Name of the instance scoping this request.",
91095	//       "location": "path",
91096	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
91097	//       "required": true,
91098	//       "type": "string"
91099	//     },
91100	//     "project": {
91101	//       "description": "Project ID for this request.",
91102	//       "location": "path",
91103	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
91104	//       "required": true,
91105	//       "type": "string"
91106	//     },
91107	//     "requestId": {
91108	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
91109	//       "location": "query",
91110	//       "type": "string"
91111	//     },
91112	//     "zone": {
91113	//       "description": "The name of the zone for this request.",
91114	//       "location": "path",
91115	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
91116	//       "required": true,
91117	//       "type": "string"
91118	//     }
91119	//   },
91120	//   "path": "{project}/zones/{zone}/instances/{instance}/updateDisplayDevice",
91121	//   "request": {
91122	//     "$ref": "DisplayDevice"
91123	//   },
91124	//   "response": {
91125	//     "$ref": "Operation"
91126	//   },
91127	//   "scopes": [
91128	//     "https://www.googleapis.com/auth/cloud-platform",
91129	//     "https://www.googleapis.com/auth/compute"
91130	//   ]
91131	// }
91132
91133}
91134
91135// method id "compute.instances.updateNetworkInterface":
91136
91137type InstancesUpdateNetworkInterfaceCall struct {
91138	s                *Service
91139	project          string
91140	zone             string
91141	instance         string
91142	networkinterface *NetworkInterface
91143	urlParams_       gensupport.URLParams
91144	ctx_             context.Context
91145	header_          http.Header
91146}
91147
91148// UpdateNetworkInterface: Updates an instance's network interface. This
91149// method follows PATCH semantics. (== suppress_warning
91150// http-rest-shadowed ==)
91151func (r *InstancesService) UpdateNetworkInterface(project string, zone string, instance string, networkInterface string, networkinterface *NetworkInterface) *InstancesUpdateNetworkInterfaceCall {
91152	c := &InstancesUpdateNetworkInterfaceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
91153	c.project = project
91154	c.zone = zone
91155	c.instance = instance
91156	c.urlParams_.Set("networkInterface", networkInterface)
91157	c.networkinterface = networkinterface
91158	return c
91159}
91160
91161// RequestId sets the optional parameter "requestId": An optional
91162// request ID to identify requests. Specify a unique request ID so that
91163// if you must retry your request, the server will know to ignore the
91164// request if it has already been completed.
91165//
91166// For example, consider a situation where you make an initial request
91167// and the request times out. If you make the request again with the
91168// same request ID, the server can check if original operation with the
91169// same request ID was received, and if so, will ignore the second
91170// request. This prevents clients from accidentally creating duplicate
91171// commitments.
91172//
91173// The request ID must be a valid UUID with the exception that zero UUID
91174// is not supported (00000000-0000-0000-0000-000000000000).
91175func (c *InstancesUpdateNetworkInterfaceCall) RequestId(requestId string) *InstancesUpdateNetworkInterfaceCall {
91176	c.urlParams_.Set("requestId", requestId)
91177	return c
91178}
91179
91180// Fields allows partial responses to be retrieved. See
91181// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
91182// for more information.
91183func (c *InstancesUpdateNetworkInterfaceCall) Fields(s ...googleapi.Field) *InstancesUpdateNetworkInterfaceCall {
91184	c.urlParams_.Set("fields", googleapi.CombineFields(s))
91185	return c
91186}
91187
91188// Context sets the context to be used in this call's Do method. Any
91189// pending HTTP request will be aborted if the provided context is
91190// canceled.
91191func (c *InstancesUpdateNetworkInterfaceCall) Context(ctx context.Context) *InstancesUpdateNetworkInterfaceCall {
91192	c.ctx_ = ctx
91193	return c
91194}
91195
91196// Header returns an http.Header that can be modified by the caller to
91197// add HTTP headers to the request.
91198func (c *InstancesUpdateNetworkInterfaceCall) Header() http.Header {
91199	if c.header_ == nil {
91200		c.header_ = make(http.Header)
91201	}
91202	return c.header_
91203}
91204
91205func (c *InstancesUpdateNetworkInterfaceCall) doRequest(alt string) (*http.Response, error) {
91206	reqHeaders := make(http.Header)
91207	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
91208	for k, v := range c.header_ {
91209		reqHeaders[k] = v
91210	}
91211	reqHeaders.Set("User-Agent", c.s.userAgent())
91212	var body io.Reader = nil
91213	body, err := googleapi.WithoutDataWrapper.JSONReader(c.networkinterface)
91214	if err != nil {
91215		return nil, err
91216	}
91217	reqHeaders.Set("Content-Type", "application/json")
91218	c.urlParams_.Set("alt", alt)
91219	c.urlParams_.Set("prettyPrint", "false")
91220	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/updateNetworkInterface")
91221	urls += "?" + c.urlParams_.Encode()
91222	req, err := http.NewRequest("PATCH", urls, body)
91223	if err != nil {
91224		return nil, err
91225	}
91226	req.Header = reqHeaders
91227	googleapi.Expand(req.URL, map[string]string{
91228		"project":  c.project,
91229		"zone":     c.zone,
91230		"instance": c.instance,
91231	})
91232	return gensupport.SendRequest(c.ctx_, c.s.client, req)
91233}
91234
91235// Do executes the "compute.instances.updateNetworkInterface" call.
91236// Exactly one of *Operation or error will be non-nil. Any non-2xx
91237// status code is an error. Response headers are in either
91238// *Operation.ServerResponse.Header or (if a response was returned at
91239// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
91240// to check whether the returned error was because
91241// http.StatusNotModified was returned.
91242func (c *InstancesUpdateNetworkInterfaceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
91243	gensupport.SetOptions(c.urlParams_, opts...)
91244	res, err := c.doRequest("json")
91245	if res != nil && res.StatusCode == http.StatusNotModified {
91246		if res.Body != nil {
91247			res.Body.Close()
91248		}
91249		return nil, &googleapi.Error{
91250			Code:   res.StatusCode,
91251			Header: res.Header,
91252		}
91253	}
91254	if err != nil {
91255		return nil, err
91256	}
91257	defer googleapi.CloseBody(res)
91258	if err := googleapi.CheckResponse(res); err != nil {
91259		return nil, err
91260	}
91261	ret := &Operation{
91262		ServerResponse: googleapi.ServerResponse{
91263			Header:         res.Header,
91264			HTTPStatusCode: res.StatusCode,
91265		},
91266	}
91267	target := &ret
91268	if err := gensupport.DecodeResponse(target, res); err != nil {
91269		return nil, err
91270	}
91271	return ret, nil
91272	// {
91273	//   "description": "Updates an instance's network interface. This method follows PATCH semantics. (== suppress_warning http-rest-shadowed ==)",
91274	//   "httpMethod": "PATCH",
91275	//   "id": "compute.instances.updateNetworkInterface",
91276	//   "parameterOrder": [
91277	//     "project",
91278	//     "zone",
91279	//     "instance",
91280	//     "networkInterface"
91281	//   ],
91282	//   "parameters": {
91283	//     "instance": {
91284	//       "description": "The instance name for this request.",
91285	//       "location": "path",
91286	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
91287	//       "required": true,
91288	//       "type": "string"
91289	//     },
91290	//     "networkInterface": {
91291	//       "description": "The name of the network interface to update.",
91292	//       "location": "query",
91293	//       "required": true,
91294	//       "type": "string"
91295	//     },
91296	//     "project": {
91297	//       "description": "Project ID for this request.",
91298	//       "location": "path",
91299	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
91300	//       "required": true,
91301	//       "type": "string"
91302	//     },
91303	//     "requestId": {
91304	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
91305	//       "location": "query",
91306	//       "type": "string"
91307	//     },
91308	//     "zone": {
91309	//       "description": "The name of the zone for this request.",
91310	//       "location": "path",
91311	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
91312	//       "required": true,
91313	//       "type": "string"
91314	//     }
91315	//   },
91316	//   "path": "{project}/zones/{zone}/instances/{instance}/updateNetworkInterface",
91317	//   "request": {
91318	//     "$ref": "NetworkInterface"
91319	//   },
91320	//   "response": {
91321	//     "$ref": "Operation"
91322	//   },
91323	//   "scopes": [
91324	//     "https://www.googleapis.com/auth/cloud-platform",
91325	//     "https://www.googleapis.com/auth/compute"
91326	//   ]
91327	// }
91328
91329}
91330
91331// method id "compute.instances.updateShieldedInstanceConfig":
91332
91333type InstancesUpdateShieldedInstanceConfigCall struct {
91334	s                      *Service
91335	project                string
91336	zone                   string
91337	instance               string
91338	shieldedinstanceconfig *ShieldedInstanceConfig
91339	urlParams_             gensupport.URLParams
91340	ctx_                   context.Context
91341	header_                http.Header
91342}
91343
91344// UpdateShieldedInstanceConfig: Updates the Shielded Instance config
91345// for an instance. You can only use this method on a stopped instance.
91346// This method supports PATCH semantics and uses the JSON merge patch
91347// format and processing rules. (== suppress_warning http-rest-shadowed
91348// ==)
91349func (r *InstancesService) UpdateShieldedInstanceConfig(project string, zone string, instance string, shieldedinstanceconfig *ShieldedInstanceConfig) *InstancesUpdateShieldedInstanceConfigCall {
91350	c := &InstancesUpdateShieldedInstanceConfigCall{s: r.s, urlParams_: make(gensupport.URLParams)}
91351	c.project = project
91352	c.zone = zone
91353	c.instance = instance
91354	c.shieldedinstanceconfig = shieldedinstanceconfig
91355	return c
91356}
91357
91358// RequestId sets the optional parameter "requestId": An optional
91359// request ID to identify requests. Specify a unique request ID so that
91360// if you must retry your request, the server will know to ignore the
91361// request if it has already been completed.
91362//
91363// For example, consider a situation where you make an initial request
91364// and the request times out. If you make the request again with the
91365// same request ID, the server can check if original operation with the
91366// same request ID was received, and if so, will ignore the second
91367// request. This prevents clients from accidentally creating duplicate
91368// commitments.
91369//
91370// The request ID must be a valid UUID with the exception that zero UUID
91371// is not supported (00000000-0000-0000-0000-000000000000).
91372func (c *InstancesUpdateShieldedInstanceConfigCall) RequestId(requestId string) *InstancesUpdateShieldedInstanceConfigCall {
91373	c.urlParams_.Set("requestId", requestId)
91374	return c
91375}
91376
91377// Fields allows partial responses to be retrieved. See
91378// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
91379// for more information.
91380func (c *InstancesUpdateShieldedInstanceConfigCall) Fields(s ...googleapi.Field) *InstancesUpdateShieldedInstanceConfigCall {
91381	c.urlParams_.Set("fields", googleapi.CombineFields(s))
91382	return c
91383}
91384
91385// Context sets the context to be used in this call's Do method. Any
91386// pending HTTP request will be aborted if the provided context is
91387// canceled.
91388func (c *InstancesUpdateShieldedInstanceConfigCall) Context(ctx context.Context) *InstancesUpdateShieldedInstanceConfigCall {
91389	c.ctx_ = ctx
91390	return c
91391}
91392
91393// Header returns an http.Header that can be modified by the caller to
91394// add HTTP headers to the request.
91395func (c *InstancesUpdateShieldedInstanceConfigCall) Header() http.Header {
91396	if c.header_ == nil {
91397		c.header_ = make(http.Header)
91398	}
91399	return c.header_
91400}
91401
91402func (c *InstancesUpdateShieldedInstanceConfigCall) doRequest(alt string) (*http.Response, error) {
91403	reqHeaders := make(http.Header)
91404	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
91405	for k, v := range c.header_ {
91406		reqHeaders[k] = v
91407	}
91408	reqHeaders.Set("User-Agent", c.s.userAgent())
91409	var body io.Reader = nil
91410	body, err := googleapi.WithoutDataWrapper.JSONReader(c.shieldedinstanceconfig)
91411	if err != nil {
91412		return nil, err
91413	}
91414	reqHeaders.Set("Content-Type", "application/json")
91415	c.urlParams_.Set("alt", alt)
91416	c.urlParams_.Set("prettyPrint", "false")
91417	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/updateShieldedInstanceConfig")
91418	urls += "?" + c.urlParams_.Encode()
91419	req, err := http.NewRequest("PATCH", urls, body)
91420	if err != nil {
91421		return nil, err
91422	}
91423	req.Header = reqHeaders
91424	googleapi.Expand(req.URL, map[string]string{
91425		"project":  c.project,
91426		"zone":     c.zone,
91427		"instance": c.instance,
91428	})
91429	return gensupport.SendRequest(c.ctx_, c.s.client, req)
91430}
91431
91432// Do executes the "compute.instances.updateShieldedInstanceConfig" call.
91433// Exactly one of *Operation or error will be non-nil. Any non-2xx
91434// status code is an error. Response headers are in either
91435// *Operation.ServerResponse.Header or (if a response was returned at
91436// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
91437// to check whether the returned error was because
91438// http.StatusNotModified was returned.
91439func (c *InstancesUpdateShieldedInstanceConfigCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
91440	gensupport.SetOptions(c.urlParams_, opts...)
91441	res, err := c.doRequest("json")
91442	if res != nil && res.StatusCode == http.StatusNotModified {
91443		if res.Body != nil {
91444			res.Body.Close()
91445		}
91446		return nil, &googleapi.Error{
91447			Code:   res.StatusCode,
91448			Header: res.Header,
91449		}
91450	}
91451	if err != nil {
91452		return nil, err
91453	}
91454	defer googleapi.CloseBody(res)
91455	if err := googleapi.CheckResponse(res); err != nil {
91456		return nil, err
91457	}
91458	ret := &Operation{
91459		ServerResponse: googleapi.ServerResponse{
91460			Header:         res.Header,
91461			HTTPStatusCode: res.StatusCode,
91462		},
91463	}
91464	target := &ret
91465	if err := gensupport.DecodeResponse(target, res); err != nil {
91466		return nil, err
91467	}
91468	return ret, nil
91469	// {
91470	//   "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. (== suppress_warning http-rest-shadowed ==)",
91471	//   "httpMethod": "PATCH",
91472	//   "id": "compute.instances.updateShieldedInstanceConfig",
91473	//   "parameterOrder": [
91474	//     "project",
91475	//     "zone",
91476	//     "instance"
91477	//   ],
91478	//   "parameters": {
91479	//     "instance": {
91480	//       "description": "Name or id of the instance scoping this request.",
91481	//       "location": "path",
91482	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
91483	//       "required": true,
91484	//       "type": "string"
91485	//     },
91486	//     "project": {
91487	//       "description": "Project ID for this request.",
91488	//       "location": "path",
91489	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
91490	//       "required": true,
91491	//       "type": "string"
91492	//     },
91493	//     "requestId": {
91494	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
91495	//       "location": "query",
91496	//       "type": "string"
91497	//     },
91498	//     "zone": {
91499	//       "description": "The name of the zone for this request.",
91500	//       "location": "path",
91501	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
91502	//       "required": true,
91503	//       "type": "string"
91504	//     }
91505	//   },
91506	//   "path": "{project}/zones/{zone}/instances/{instance}/updateShieldedInstanceConfig",
91507	//   "request": {
91508	//     "$ref": "ShieldedInstanceConfig"
91509	//   },
91510	//   "response": {
91511	//     "$ref": "Operation"
91512	//   },
91513	//   "scopes": [
91514	//     "https://www.googleapis.com/auth/cloud-platform",
91515	//     "https://www.googleapis.com/auth/compute"
91516	//   ]
91517	// }
91518
91519}
91520
91521// method id "compute.instances.updateShieldedVmConfig":
91522
91523type InstancesUpdateShieldedVmConfigCall struct {
91524	s                *Service
91525	project          string
91526	zone             string
91527	instance         string
91528	shieldedvmconfig *ShieldedVmConfig
91529	urlParams_       gensupport.URLParams
91530	ctx_             context.Context
91531	header_          http.Header
91532}
91533
91534// UpdateShieldedVmConfig: Updates the Shielded VM config for a VM
91535// instance. You can only use this method on a stopped VM instance. This
91536// method supports PATCH semantics and uses the JSON merge patch format
91537// and processing rules. (== suppress_warning http-rest-shadowed ==)
91538func (r *InstancesService) UpdateShieldedVmConfig(project string, zone string, instance string, shieldedvmconfig *ShieldedVmConfig) *InstancesUpdateShieldedVmConfigCall {
91539	c := &InstancesUpdateShieldedVmConfigCall{s: r.s, urlParams_: make(gensupport.URLParams)}
91540	c.project = project
91541	c.zone = zone
91542	c.instance = instance
91543	c.shieldedvmconfig = shieldedvmconfig
91544	return c
91545}
91546
91547// RequestId sets the optional parameter "requestId": An optional
91548// request ID to identify requests. Specify a unique request ID so that
91549// if you must retry your request, the server will know to ignore the
91550// request if it has already been completed.
91551//
91552// For example, consider a situation where you make an initial request
91553// and the request times out. If you make the request again with the
91554// same request ID, the server can check if original operation with the
91555// same request ID was received, and if so, will ignore the second
91556// request. This prevents clients from accidentally creating duplicate
91557// commitments.
91558//
91559// The request ID must be a valid UUID with the exception that zero UUID
91560// is not supported (00000000-0000-0000-0000-000000000000).
91561func (c *InstancesUpdateShieldedVmConfigCall) RequestId(requestId string) *InstancesUpdateShieldedVmConfigCall {
91562	c.urlParams_.Set("requestId", requestId)
91563	return c
91564}
91565
91566// Fields allows partial responses to be retrieved. See
91567// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
91568// for more information.
91569func (c *InstancesUpdateShieldedVmConfigCall) Fields(s ...googleapi.Field) *InstancesUpdateShieldedVmConfigCall {
91570	c.urlParams_.Set("fields", googleapi.CombineFields(s))
91571	return c
91572}
91573
91574// Context sets the context to be used in this call's Do method. Any
91575// pending HTTP request will be aborted if the provided context is
91576// canceled.
91577func (c *InstancesUpdateShieldedVmConfigCall) Context(ctx context.Context) *InstancesUpdateShieldedVmConfigCall {
91578	c.ctx_ = ctx
91579	return c
91580}
91581
91582// Header returns an http.Header that can be modified by the caller to
91583// add HTTP headers to the request.
91584func (c *InstancesUpdateShieldedVmConfigCall) Header() http.Header {
91585	if c.header_ == nil {
91586		c.header_ = make(http.Header)
91587	}
91588	return c.header_
91589}
91590
91591func (c *InstancesUpdateShieldedVmConfigCall) doRequest(alt string) (*http.Response, error) {
91592	reqHeaders := make(http.Header)
91593	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
91594	for k, v := range c.header_ {
91595		reqHeaders[k] = v
91596	}
91597	reqHeaders.Set("User-Agent", c.s.userAgent())
91598	var body io.Reader = nil
91599	body, err := googleapi.WithoutDataWrapper.JSONReader(c.shieldedvmconfig)
91600	if err != nil {
91601		return nil, err
91602	}
91603	reqHeaders.Set("Content-Type", "application/json")
91604	c.urlParams_.Set("alt", alt)
91605	c.urlParams_.Set("prettyPrint", "false")
91606	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/updateShieldedVmConfig")
91607	urls += "?" + c.urlParams_.Encode()
91608	req, err := http.NewRequest("PATCH", urls, body)
91609	if err != nil {
91610		return nil, err
91611	}
91612	req.Header = reqHeaders
91613	googleapi.Expand(req.URL, map[string]string{
91614		"project":  c.project,
91615		"zone":     c.zone,
91616		"instance": c.instance,
91617	})
91618	return gensupport.SendRequest(c.ctx_, c.s.client, req)
91619}
91620
91621// Do executes the "compute.instances.updateShieldedVmConfig" call.
91622// Exactly one of *Operation or error will be non-nil. Any non-2xx
91623// status code is an error. Response headers are in either
91624// *Operation.ServerResponse.Header or (if a response was returned at
91625// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
91626// to check whether the returned error was because
91627// http.StatusNotModified was returned.
91628func (c *InstancesUpdateShieldedVmConfigCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
91629	gensupport.SetOptions(c.urlParams_, opts...)
91630	res, err := c.doRequest("json")
91631	if res != nil && res.StatusCode == http.StatusNotModified {
91632		if res.Body != nil {
91633			res.Body.Close()
91634		}
91635		return nil, &googleapi.Error{
91636			Code:   res.StatusCode,
91637			Header: res.Header,
91638		}
91639	}
91640	if err != nil {
91641		return nil, err
91642	}
91643	defer googleapi.CloseBody(res)
91644	if err := googleapi.CheckResponse(res); err != nil {
91645		return nil, err
91646	}
91647	ret := &Operation{
91648		ServerResponse: googleapi.ServerResponse{
91649			Header:         res.Header,
91650			HTTPStatusCode: res.StatusCode,
91651		},
91652	}
91653	target := &ret
91654	if err := gensupport.DecodeResponse(target, res); err != nil {
91655		return nil, err
91656	}
91657	return ret, nil
91658	// {
91659	//   "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. (== suppress_warning http-rest-shadowed ==)",
91660	//   "httpMethod": "PATCH",
91661	//   "id": "compute.instances.updateShieldedVmConfig",
91662	//   "parameterOrder": [
91663	//     "project",
91664	//     "zone",
91665	//     "instance"
91666	//   ],
91667	//   "parameters": {
91668	//     "instance": {
91669	//       "description": "Name of the instance scoping this request.",
91670	//       "location": "path",
91671	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
91672	//       "required": true,
91673	//       "type": "string"
91674	//     },
91675	//     "project": {
91676	//       "description": "Project ID for this request.",
91677	//       "location": "path",
91678	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
91679	//       "required": true,
91680	//       "type": "string"
91681	//     },
91682	//     "requestId": {
91683	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
91684	//       "location": "query",
91685	//       "type": "string"
91686	//     },
91687	//     "zone": {
91688	//       "description": "The name of the zone for this request.",
91689	//       "location": "path",
91690	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
91691	//       "required": true,
91692	//       "type": "string"
91693	//     }
91694	//   },
91695	//   "path": "{project}/zones/{zone}/instances/{instance}/updateShieldedVmConfig",
91696	//   "request": {
91697	//     "$ref": "ShieldedVmConfig"
91698	//   },
91699	//   "response": {
91700	//     "$ref": "Operation"
91701	//   },
91702	//   "scopes": [
91703	//     "https://www.googleapis.com/auth/cloud-platform",
91704	//     "https://www.googleapis.com/auth/compute"
91705	//   ]
91706	// }
91707
91708}
91709
91710// method id "compute.interconnectAttachments.aggregatedList":
91711
91712type InterconnectAttachmentsAggregatedListCall struct {
91713	s            *Service
91714	project      string
91715	urlParams_   gensupport.URLParams
91716	ifNoneMatch_ string
91717	ctx_         context.Context
91718	header_      http.Header
91719}
91720
91721// AggregatedList: Retrieves an aggregated list of interconnect
91722// attachments. (== suppress_warning http-rest-shadowed ==)
91723func (r *InterconnectAttachmentsService) AggregatedList(project string) *InterconnectAttachmentsAggregatedListCall {
91724	c := &InterconnectAttachmentsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
91725	c.project = project
91726	return c
91727}
91728
91729// Filter sets the optional parameter "filter": A filter expression that
91730// filters resources listed in the response. The expression must specify
91731// the field name, a comparison operator, and the value that you want to
91732// use for filtering. The value must be a string, a number, or a
91733// boolean. The comparison operator must be either =, !=, >, or <.
91734//
91735// For example, if you are filtering Compute Engine instances, you can
91736// exclude instances named example-instance by specifying name !=
91737// example-instance.
91738//
91739// You can also filter nested fields. For example, you could specify
91740// scheduling.automaticRestart = false to include instances only if they
91741// are not scheduled for automatic restarts. You can use filtering on
91742// nested fields to filter based on resource labels.
91743//
91744// To filter on multiple expressions, provide each separate expression
91745// within parentheses. For example, (scheduling.automaticRestart = true)
91746// (cpuPlatform = "Intel Skylake"). By default, each expression is an
91747// AND expression. However, you can include AND and OR expressions
91748// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
91749// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
91750// true).
91751func (c *InterconnectAttachmentsAggregatedListCall) Filter(filter string) *InterconnectAttachmentsAggregatedListCall {
91752	c.urlParams_.Set("filter", filter)
91753	return c
91754}
91755
91756// MaxResults sets the optional parameter "maxResults": The maximum
91757// number of results per page that should be returned. If the number of
91758// available results is larger than maxResults, Compute Engine returns a
91759// nextPageToken that can be used to get the next page of results in
91760// subsequent list requests. Acceptable values are 0 to 500, inclusive.
91761// (Default: 500)
91762func (c *InterconnectAttachmentsAggregatedListCall) MaxResults(maxResults int64) *InterconnectAttachmentsAggregatedListCall {
91763	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
91764	return c
91765}
91766
91767// OrderBy sets the optional parameter "orderBy": Sorts list results by
91768// a certain order. By default, results are returned in alphanumerical
91769// order based on the resource name.
91770//
91771// You can also sort results in descending order based on the creation
91772// timestamp using orderBy="creationTimestamp desc". This sorts results
91773// based on the creationTimestamp field in reverse chronological order
91774// (newest result first). Use this to sort resources like operations so
91775// that the newest operation is returned first.
91776//
91777// Currently, only sorting by name or creationTimestamp desc is
91778// supported.
91779func (c *InterconnectAttachmentsAggregatedListCall) OrderBy(orderBy string) *InterconnectAttachmentsAggregatedListCall {
91780	c.urlParams_.Set("orderBy", orderBy)
91781	return c
91782}
91783
91784// PageToken sets the optional parameter "pageToken": Specifies a page
91785// token to use. Set pageToken to the nextPageToken returned by a
91786// previous list request to get the next page of results.
91787func (c *InterconnectAttachmentsAggregatedListCall) PageToken(pageToken string) *InterconnectAttachmentsAggregatedListCall {
91788	c.urlParams_.Set("pageToken", pageToken)
91789	return c
91790}
91791
91792// Fields allows partial responses to be retrieved. See
91793// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
91794// for more information.
91795func (c *InterconnectAttachmentsAggregatedListCall) Fields(s ...googleapi.Field) *InterconnectAttachmentsAggregatedListCall {
91796	c.urlParams_.Set("fields", googleapi.CombineFields(s))
91797	return c
91798}
91799
91800// IfNoneMatch sets the optional parameter which makes the operation
91801// fail if the object's ETag matches the given value. This is useful for
91802// getting updates only after the object has changed since the last
91803// request. Use googleapi.IsNotModified to check whether the response
91804// error from Do is the result of In-None-Match.
91805func (c *InterconnectAttachmentsAggregatedListCall) IfNoneMatch(entityTag string) *InterconnectAttachmentsAggregatedListCall {
91806	c.ifNoneMatch_ = entityTag
91807	return c
91808}
91809
91810// Context sets the context to be used in this call's Do method. Any
91811// pending HTTP request will be aborted if the provided context is
91812// canceled.
91813func (c *InterconnectAttachmentsAggregatedListCall) Context(ctx context.Context) *InterconnectAttachmentsAggregatedListCall {
91814	c.ctx_ = ctx
91815	return c
91816}
91817
91818// Header returns an http.Header that can be modified by the caller to
91819// add HTTP headers to the request.
91820func (c *InterconnectAttachmentsAggregatedListCall) Header() http.Header {
91821	if c.header_ == nil {
91822		c.header_ = make(http.Header)
91823	}
91824	return c.header_
91825}
91826
91827func (c *InterconnectAttachmentsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
91828	reqHeaders := make(http.Header)
91829	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
91830	for k, v := range c.header_ {
91831		reqHeaders[k] = v
91832	}
91833	reqHeaders.Set("User-Agent", c.s.userAgent())
91834	if c.ifNoneMatch_ != "" {
91835		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
91836	}
91837	var body io.Reader = nil
91838	c.urlParams_.Set("alt", alt)
91839	c.urlParams_.Set("prettyPrint", "false")
91840	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/interconnectAttachments")
91841	urls += "?" + c.urlParams_.Encode()
91842	req, err := http.NewRequest("GET", urls, body)
91843	if err != nil {
91844		return nil, err
91845	}
91846	req.Header = reqHeaders
91847	googleapi.Expand(req.URL, map[string]string{
91848		"project": c.project,
91849	})
91850	return gensupport.SendRequest(c.ctx_, c.s.client, req)
91851}
91852
91853// Do executes the "compute.interconnectAttachments.aggregatedList" call.
91854// Exactly one of *InterconnectAttachmentAggregatedList or error will be
91855// non-nil. Any non-2xx status code is an error. Response headers are in
91856// either *InterconnectAttachmentAggregatedList.ServerResponse.Header or
91857// (if a response was returned at all) in
91858// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
91859// whether the returned error was because http.StatusNotModified was
91860// returned.
91861func (c *InterconnectAttachmentsAggregatedListCall) Do(opts ...googleapi.CallOption) (*InterconnectAttachmentAggregatedList, error) {
91862	gensupport.SetOptions(c.urlParams_, opts...)
91863	res, err := c.doRequest("json")
91864	if res != nil && res.StatusCode == http.StatusNotModified {
91865		if res.Body != nil {
91866			res.Body.Close()
91867		}
91868		return nil, &googleapi.Error{
91869			Code:   res.StatusCode,
91870			Header: res.Header,
91871		}
91872	}
91873	if err != nil {
91874		return nil, err
91875	}
91876	defer googleapi.CloseBody(res)
91877	if err := googleapi.CheckResponse(res); err != nil {
91878		return nil, err
91879	}
91880	ret := &InterconnectAttachmentAggregatedList{
91881		ServerResponse: googleapi.ServerResponse{
91882			Header:         res.Header,
91883			HTTPStatusCode: res.StatusCode,
91884		},
91885	}
91886	target := &ret
91887	if err := gensupport.DecodeResponse(target, res); err != nil {
91888		return nil, err
91889	}
91890	return ret, nil
91891	// {
91892	//   "description": "Retrieves an aggregated list of interconnect attachments. (== suppress_warning http-rest-shadowed ==)",
91893	//   "httpMethod": "GET",
91894	//   "id": "compute.interconnectAttachments.aggregatedList",
91895	//   "parameterOrder": [
91896	//     "project"
91897	//   ],
91898	//   "parameters": {
91899	//     "filter": {
91900	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
91901	//       "location": "query",
91902	//       "type": "string"
91903	//     },
91904	//     "maxResults": {
91905	//       "default": "500",
91906	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
91907	//       "format": "uint32",
91908	//       "location": "query",
91909	//       "minimum": "0",
91910	//       "type": "integer"
91911	//     },
91912	//     "orderBy": {
91913	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
91914	//       "location": "query",
91915	//       "type": "string"
91916	//     },
91917	//     "pageToken": {
91918	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
91919	//       "location": "query",
91920	//       "type": "string"
91921	//     },
91922	//     "project": {
91923	//       "description": "Project ID for this request.",
91924	//       "location": "path",
91925	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
91926	//       "required": true,
91927	//       "type": "string"
91928	//     }
91929	//   },
91930	//   "path": "{project}/aggregated/interconnectAttachments",
91931	//   "response": {
91932	//     "$ref": "InterconnectAttachmentAggregatedList"
91933	//   },
91934	//   "scopes": [
91935	//     "https://www.googleapis.com/auth/cloud-platform",
91936	//     "https://www.googleapis.com/auth/compute",
91937	//     "https://www.googleapis.com/auth/compute.readonly"
91938	//   ]
91939	// }
91940
91941}
91942
91943// Pages invokes f for each page of results.
91944// A non-nil error returned from f will halt the iteration.
91945// The provided context supersedes any context provided to the Context method.
91946func (c *InterconnectAttachmentsAggregatedListCall) Pages(ctx context.Context, f func(*InterconnectAttachmentAggregatedList) error) error {
91947	c.ctx_ = ctx
91948	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
91949	for {
91950		x, err := c.Do()
91951		if err != nil {
91952			return err
91953		}
91954		if err := f(x); err != nil {
91955			return err
91956		}
91957		if x.NextPageToken == "" {
91958			return nil
91959		}
91960		c.PageToken(x.NextPageToken)
91961	}
91962}
91963
91964// method id "compute.interconnectAttachments.delete":
91965
91966type InterconnectAttachmentsDeleteCall struct {
91967	s                      *Service
91968	project                string
91969	region                 string
91970	interconnectAttachment string
91971	urlParams_             gensupport.URLParams
91972	ctx_                   context.Context
91973	header_                http.Header
91974}
91975
91976// Delete: Deletes the specified interconnect attachment. (==
91977// suppress_warning http-rest-shadowed ==)
91978func (r *InterconnectAttachmentsService) Delete(project string, region string, interconnectAttachment string) *InterconnectAttachmentsDeleteCall {
91979	c := &InterconnectAttachmentsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
91980	c.project = project
91981	c.region = region
91982	c.interconnectAttachment = interconnectAttachment
91983	return c
91984}
91985
91986// RequestId sets the optional parameter "requestId": An optional
91987// request ID to identify requests. Specify a unique request ID so that
91988// if you must retry your request, the server will know to ignore the
91989// request if it has already been completed.
91990//
91991// For example, consider a situation where you make an initial request
91992// and the request times out. If you make the request again with the
91993// same request ID, the server can check if original operation with the
91994// same request ID was received, and if so, will ignore the second
91995// request. This prevents clients from accidentally creating duplicate
91996// commitments.
91997//
91998// The request ID must be a valid UUID with the exception that zero UUID
91999// is not supported (00000000-0000-0000-0000-000000000000).
92000func (c *InterconnectAttachmentsDeleteCall) RequestId(requestId string) *InterconnectAttachmentsDeleteCall {
92001	c.urlParams_.Set("requestId", requestId)
92002	return c
92003}
92004
92005// Fields allows partial responses to be retrieved. See
92006// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
92007// for more information.
92008func (c *InterconnectAttachmentsDeleteCall) Fields(s ...googleapi.Field) *InterconnectAttachmentsDeleteCall {
92009	c.urlParams_.Set("fields", googleapi.CombineFields(s))
92010	return c
92011}
92012
92013// Context sets the context to be used in this call's Do method. Any
92014// pending HTTP request will be aborted if the provided context is
92015// canceled.
92016func (c *InterconnectAttachmentsDeleteCall) Context(ctx context.Context) *InterconnectAttachmentsDeleteCall {
92017	c.ctx_ = ctx
92018	return c
92019}
92020
92021// Header returns an http.Header that can be modified by the caller to
92022// add HTTP headers to the request.
92023func (c *InterconnectAttachmentsDeleteCall) Header() http.Header {
92024	if c.header_ == nil {
92025		c.header_ = make(http.Header)
92026	}
92027	return c.header_
92028}
92029
92030func (c *InterconnectAttachmentsDeleteCall) doRequest(alt string) (*http.Response, error) {
92031	reqHeaders := make(http.Header)
92032	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
92033	for k, v := range c.header_ {
92034		reqHeaders[k] = v
92035	}
92036	reqHeaders.Set("User-Agent", c.s.userAgent())
92037	var body io.Reader = nil
92038	c.urlParams_.Set("alt", alt)
92039	c.urlParams_.Set("prettyPrint", "false")
92040	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}")
92041	urls += "?" + c.urlParams_.Encode()
92042	req, err := http.NewRequest("DELETE", urls, body)
92043	if err != nil {
92044		return nil, err
92045	}
92046	req.Header = reqHeaders
92047	googleapi.Expand(req.URL, map[string]string{
92048		"project":                c.project,
92049		"region":                 c.region,
92050		"interconnectAttachment": c.interconnectAttachment,
92051	})
92052	return gensupport.SendRequest(c.ctx_, c.s.client, req)
92053}
92054
92055// Do executes the "compute.interconnectAttachments.delete" call.
92056// Exactly one of *Operation or error will be non-nil. Any non-2xx
92057// status code is an error. Response headers are in either
92058// *Operation.ServerResponse.Header or (if a response was returned at
92059// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
92060// to check whether the returned error was because
92061// http.StatusNotModified was returned.
92062func (c *InterconnectAttachmentsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
92063	gensupport.SetOptions(c.urlParams_, opts...)
92064	res, err := c.doRequest("json")
92065	if res != nil && res.StatusCode == http.StatusNotModified {
92066		if res.Body != nil {
92067			res.Body.Close()
92068		}
92069		return nil, &googleapi.Error{
92070			Code:   res.StatusCode,
92071			Header: res.Header,
92072		}
92073	}
92074	if err != nil {
92075		return nil, err
92076	}
92077	defer googleapi.CloseBody(res)
92078	if err := googleapi.CheckResponse(res); err != nil {
92079		return nil, err
92080	}
92081	ret := &Operation{
92082		ServerResponse: googleapi.ServerResponse{
92083			Header:         res.Header,
92084			HTTPStatusCode: res.StatusCode,
92085		},
92086	}
92087	target := &ret
92088	if err := gensupport.DecodeResponse(target, res); err != nil {
92089		return nil, err
92090	}
92091	return ret, nil
92092	// {
92093	//   "description": "Deletes the specified interconnect attachment. (== suppress_warning http-rest-shadowed ==)",
92094	//   "httpMethod": "DELETE",
92095	//   "id": "compute.interconnectAttachments.delete",
92096	//   "parameterOrder": [
92097	//     "project",
92098	//     "region",
92099	//     "interconnectAttachment"
92100	//   ],
92101	//   "parameters": {
92102	//     "interconnectAttachment": {
92103	//       "description": "Name of the interconnect attachment to delete.",
92104	//       "location": "path",
92105	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
92106	//       "required": true,
92107	//       "type": "string"
92108	//     },
92109	//     "project": {
92110	//       "description": "Project ID for this request.",
92111	//       "location": "path",
92112	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
92113	//       "required": true,
92114	//       "type": "string"
92115	//     },
92116	//     "region": {
92117	//       "description": "Name of the region for this request.",
92118	//       "location": "path",
92119	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
92120	//       "required": true,
92121	//       "type": "string"
92122	//     },
92123	//     "requestId": {
92124	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
92125	//       "location": "query",
92126	//       "type": "string"
92127	//     }
92128	//   },
92129	//   "path": "{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}",
92130	//   "response": {
92131	//     "$ref": "Operation"
92132	//   },
92133	//   "scopes": [
92134	//     "https://www.googleapis.com/auth/cloud-platform",
92135	//     "https://www.googleapis.com/auth/compute"
92136	//   ]
92137	// }
92138
92139}
92140
92141// method id "compute.interconnectAttachments.get":
92142
92143type InterconnectAttachmentsGetCall struct {
92144	s                      *Service
92145	project                string
92146	region                 string
92147	interconnectAttachment string
92148	urlParams_             gensupport.URLParams
92149	ifNoneMatch_           string
92150	ctx_                   context.Context
92151	header_                http.Header
92152}
92153
92154// Get: Returns the specified interconnect attachment. (==
92155// suppress_warning http-rest-shadowed ==)
92156func (r *InterconnectAttachmentsService) Get(project string, region string, interconnectAttachment string) *InterconnectAttachmentsGetCall {
92157	c := &InterconnectAttachmentsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
92158	c.project = project
92159	c.region = region
92160	c.interconnectAttachment = interconnectAttachment
92161	return c
92162}
92163
92164// Fields allows partial responses to be retrieved. See
92165// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
92166// for more information.
92167func (c *InterconnectAttachmentsGetCall) Fields(s ...googleapi.Field) *InterconnectAttachmentsGetCall {
92168	c.urlParams_.Set("fields", googleapi.CombineFields(s))
92169	return c
92170}
92171
92172// IfNoneMatch sets the optional parameter which makes the operation
92173// fail if the object's ETag matches the given value. This is useful for
92174// getting updates only after the object has changed since the last
92175// request. Use googleapi.IsNotModified to check whether the response
92176// error from Do is the result of In-None-Match.
92177func (c *InterconnectAttachmentsGetCall) IfNoneMatch(entityTag string) *InterconnectAttachmentsGetCall {
92178	c.ifNoneMatch_ = entityTag
92179	return c
92180}
92181
92182// Context sets the context to be used in this call's Do method. Any
92183// pending HTTP request will be aborted if the provided context is
92184// canceled.
92185func (c *InterconnectAttachmentsGetCall) Context(ctx context.Context) *InterconnectAttachmentsGetCall {
92186	c.ctx_ = ctx
92187	return c
92188}
92189
92190// Header returns an http.Header that can be modified by the caller to
92191// add HTTP headers to the request.
92192func (c *InterconnectAttachmentsGetCall) Header() http.Header {
92193	if c.header_ == nil {
92194		c.header_ = make(http.Header)
92195	}
92196	return c.header_
92197}
92198
92199func (c *InterconnectAttachmentsGetCall) doRequest(alt string) (*http.Response, error) {
92200	reqHeaders := make(http.Header)
92201	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
92202	for k, v := range c.header_ {
92203		reqHeaders[k] = v
92204	}
92205	reqHeaders.Set("User-Agent", c.s.userAgent())
92206	if c.ifNoneMatch_ != "" {
92207		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
92208	}
92209	var body io.Reader = nil
92210	c.urlParams_.Set("alt", alt)
92211	c.urlParams_.Set("prettyPrint", "false")
92212	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}")
92213	urls += "?" + c.urlParams_.Encode()
92214	req, err := http.NewRequest("GET", urls, body)
92215	if err != nil {
92216		return nil, err
92217	}
92218	req.Header = reqHeaders
92219	googleapi.Expand(req.URL, map[string]string{
92220		"project":                c.project,
92221		"region":                 c.region,
92222		"interconnectAttachment": c.interconnectAttachment,
92223	})
92224	return gensupport.SendRequest(c.ctx_, c.s.client, req)
92225}
92226
92227// Do executes the "compute.interconnectAttachments.get" call.
92228// Exactly one of *InterconnectAttachment or error will be non-nil. Any
92229// non-2xx status code is an error. Response headers are in either
92230// *InterconnectAttachment.ServerResponse.Header or (if a response was
92231// returned at all) in error.(*googleapi.Error).Header. Use
92232// googleapi.IsNotModified to check whether the returned error was
92233// because http.StatusNotModified was returned.
92234func (c *InterconnectAttachmentsGetCall) Do(opts ...googleapi.CallOption) (*InterconnectAttachment, error) {
92235	gensupport.SetOptions(c.urlParams_, opts...)
92236	res, err := c.doRequest("json")
92237	if res != nil && res.StatusCode == http.StatusNotModified {
92238		if res.Body != nil {
92239			res.Body.Close()
92240		}
92241		return nil, &googleapi.Error{
92242			Code:   res.StatusCode,
92243			Header: res.Header,
92244		}
92245	}
92246	if err != nil {
92247		return nil, err
92248	}
92249	defer googleapi.CloseBody(res)
92250	if err := googleapi.CheckResponse(res); err != nil {
92251		return nil, err
92252	}
92253	ret := &InterconnectAttachment{
92254		ServerResponse: googleapi.ServerResponse{
92255			Header:         res.Header,
92256			HTTPStatusCode: res.StatusCode,
92257		},
92258	}
92259	target := &ret
92260	if err := gensupport.DecodeResponse(target, res); err != nil {
92261		return nil, err
92262	}
92263	return ret, nil
92264	// {
92265	//   "description": "Returns the specified interconnect attachment. (== suppress_warning http-rest-shadowed ==)",
92266	//   "httpMethod": "GET",
92267	//   "id": "compute.interconnectAttachments.get",
92268	//   "parameterOrder": [
92269	//     "project",
92270	//     "region",
92271	//     "interconnectAttachment"
92272	//   ],
92273	//   "parameters": {
92274	//     "interconnectAttachment": {
92275	//       "description": "Name of the interconnect attachment to return.",
92276	//       "location": "path",
92277	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
92278	//       "required": true,
92279	//       "type": "string"
92280	//     },
92281	//     "project": {
92282	//       "description": "Project ID for this request.",
92283	//       "location": "path",
92284	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
92285	//       "required": true,
92286	//       "type": "string"
92287	//     },
92288	//     "region": {
92289	//       "description": "Name of the region for this request.",
92290	//       "location": "path",
92291	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
92292	//       "required": true,
92293	//       "type": "string"
92294	//     }
92295	//   },
92296	//   "path": "{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}",
92297	//   "response": {
92298	//     "$ref": "InterconnectAttachment"
92299	//   },
92300	//   "scopes": [
92301	//     "https://www.googleapis.com/auth/cloud-platform",
92302	//     "https://www.googleapis.com/auth/compute",
92303	//     "https://www.googleapis.com/auth/compute.readonly"
92304	//   ]
92305	// }
92306
92307}
92308
92309// method id "compute.interconnectAttachments.getIamPolicy":
92310
92311type InterconnectAttachmentsGetIamPolicyCall struct {
92312	s            *Service
92313	project      string
92314	region       string
92315	resource     string
92316	urlParams_   gensupport.URLParams
92317	ifNoneMatch_ string
92318	ctx_         context.Context
92319	header_      http.Header
92320}
92321
92322// GetIamPolicy: Gets the access control policy for a resource. May be
92323// empty if no such policy or resource exists. (== suppress_warning
92324// http-rest-shadowed ==)
92325func (r *InterconnectAttachmentsService) GetIamPolicy(project string, region string, resource string) *InterconnectAttachmentsGetIamPolicyCall {
92326	c := &InterconnectAttachmentsGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
92327	c.project = project
92328	c.region = region
92329	c.resource = resource
92330	return c
92331}
92332
92333// OptionsRequestedPolicyVersion sets the optional parameter
92334// "optionsRequestedPolicyVersion": Requested IAM Policy version.
92335func (c *InterconnectAttachmentsGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *InterconnectAttachmentsGetIamPolicyCall {
92336	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
92337	return c
92338}
92339
92340// Fields allows partial responses to be retrieved. See
92341// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
92342// for more information.
92343func (c *InterconnectAttachmentsGetIamPolicyCall) Fields(s ...googleapi.Field) *InterconnectAttachmentsGetIamPolicyCall {
92344	c.urlParams_.Set("fields", googleapi.CombineFields(s))
92345	return c
92346}
92347
92348// IfNoneMatch sets the optional parameter which makes the operation
92349// fail if the object's ETag matches the given value. This is useful for
92350// getting updates only after the object has changed since the last
92351// request. Use googleapi.IsNotModified to check whether the response
92352// error from Do is the result of In-None-Match.
92353func (c *InterconnectAttachmentsGetIamPolicyCall) IfNoneMatch(entityTag string) *InterconnectAttachmentsGetIamPolicyCall {
92354	c.ifNoneMatch_ = entityTag
92355	return c
92356}
92357
92358// Context sets the context to be used in this call's Do method. Any
92359// pending HTTP request will be aborted if the provided context is
92360// canceled.
92361func (c *InterconnectAttachmentsGetIamPolicyCall) Context(ctx context.Context) *InterconnectAttachmentsGetIamPolicyCall {
92362	c.ctx_ = ctx
92363	return c
92364}
92365
92366// Header returns an http.Header that can be modified by the caller to
92367// add HTTP headers to the request.
92368func (c *InterconnectAttachmentsGetIamPolicyCall) Header() http.Header {
92369	if c.header_ == nil {
92370		c.header_ = make(http.Header)
92371	}
92372	return c.header_
92373}
92374
92375func (c *InterconnectAttachmentsGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
92376	reqHeaders := make(http.Header)
92377	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
92378	for k, v := range c.header_ {
92379		reqHeaders[k] = v
92380	}
92381	reqHeaders.Set("User-Agent", c.s.userAgent())
92382	if c.ifNoneMatch_ != "" {
92383		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
92384	}
92385	var body io.Reader = nil
92386	c.urlParams_.Set("alt", alt)
92387	c.urlParams_.Set("prettyPrint", "false")
92388	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/interconnectAttachments/{resource}/getIamPolicy")
92389	urls += "?" + c.urlParams_.Encode()
92390	req, err := http.NewRequest("GET", urls, body)
92391	if err != nil {
92392		return nil, err
92393	}
92394	req.Header = reqHeaders
92395	googleapi.Expand(req.URL, map[string]string{
92396		"project":  c.project,
92397		"region":   c.region,
92398		"resource": c.resource,
92399	})
92400	return gensupport.SendRequest(c.ctx_, c.s.client, req)
92401}
92402
92403// Do executes the "compute.interconnectAttachments.getIamPolicy" call.
92404// Exactly one of *Policy or error will be non-nil. Any non-2xx status
92405// code is an error. Response headers are in either
92406// *Policy.ServerResponse.Header or (if a response was returned at all)
92407// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
92408// check whether the returned error was because http.StatusNotModified
92409// was returned.
92410func (c *InterconnectAttachmentsGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
92411	gensupport.SetOptions(c.urlParams_, opts...)
92412	res, err := c.doRequest("json")
92413	if res != nil && res.StatusCode == http.StatusNotModified {
92414		if res.Body != nil {
92415			res.Body.Close()
92416		}
92417		return nil, &googleapi.Error{
92418			Code:   res.StatusCode,
92419			Header: res.Header,
92420		}
92421	}
92422	if err != nil {
92423		return nil, err
92424	}
92425	defer googleapi.CloseBody(res)
92426	if err := googleapi.CheckResponse(res); err != nil {
92427		return nil, err
92428	}
92429	ret := &Policy{
92430		ServerResponse: googleapi.ServerResponse{
92431			Header:         res.Header,
92432			HTTPStatusCode: res.StatusCode,
92433		},
92434	}
92435	target := &ret
92436	if err := gensupport.DecodeResponse(target, res); err != nil {
92437		return nil, err
92438	}
92439	return ret, nil
92440	// {
92441	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists. (== suppress_warning http-rest-shadowed ==)",
92442	//   "httpMethod": "GET",
92443	//   "id": "compute.interconnectAttachments.getIamPolicy",
92444	//   "parameterOrder": [
92445	//     "project",
92446	//     "region",
92447	//     "resource"
92448	//   ],
92449	//   "parameters": {
92450	//     "optionsRequestedPolicyVersion": {
92451	//       "description": "Requested IAM Policy version.",
92452	//       "format": "int32",
92453	//       "location": "query",
92454	//       "type": "integer"
92455	//     },
92456	//     "project": {
92457	//       "description": "Project ID for this request.",
92458	//       "location": "path",
92459	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
92460	//       "required": true,
92461	//       "type": "string"
92462	//     },
92463	//     "region": {
92464	//       "description": "The name of the region for this request.",
92465	//       "location": "path",
92466	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
92467	//       "required": true,
92468	//       "type": "string"
92469	//     },
92470	//     "resource": {
92471	//       "description": "Name or id of the resource for this request.",
92472	//       "location": "path",
92473	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
92474	//       "required": true,
92475	//       "type": "string"
92476	//     }
92477	//   },
92478	//   "path": "{project}/regions/{region}/interconnectAttachments/{resource}/getIamPolicy",
92479	//   "response": {
92480	//     "$ref": "Policy"
92481	//   },
92482	//   "scopes": [
92483	//     "https://www.googleapis.com/auth/cloud-platform",
92484	//     "https://www.googleapis.com/auth/compute",
92485	//     "https://www.googleapis.com/auth/compute.readonly"
92486	//   ]
92487	// }
92488
92489}
92490
92491// method id "compute.interconnectAttachments.insert":
92492
92493type InterconnectAttachmentsInsertCall struct {
92494	s                      *Service
92495	project                string
92496	region                 string
92497	interconnectattachment *InterconnectAttachment
92498	urlParams_             gensupport.URLParams
92499	ctx_                   context.Context
92500	header_                http.Header
92501}
92502
92503// Insert: Creates an InterconnectAttachment in the specified project
92504// using the data included in the request. (== suppress_warning
92505// http-rest-shadowed ==)
92506func (r *InterconnectAttachmentsService) Insert(project string, region string, interconnectattachment *InterconnectAttachment) *InterconnectAttachmentsInsertCall {
92507	c := &InterconnectAttachmentsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
92508	c.project = project
92509	c.region = region
92510	c.interconnectattachment = interconnectattachment
92511	return c
92512}
92513
92514// RequestId sets the optional parameter "requestId": An optional
92515// request ID to identify requests. Specify a unique request ID so that
92516// if you must retry your request, the server will know to ignore the
92517// request if it has already been completed.
92518//
92519// For example, consider a situation where you make an initial request
92520// and the request times out. If you make the request again with the
92521// same request ID, the server can check if original operation with the
92522// same request ID was received, and if so, will ignore the second
92523// request. This prevents clients from accidentally creating duplicate
92524// commitments.
92525//
92526// The request ID must be a valid UUID with the exception that zero UUID
92527// is not supported (00000000-0000-0000-0000-000000000000).
92528func (c *InterconnectAttachmentsInsertCall) RequestId(requestId string) *InterconnectAttachmentsInsertCall {
92529	c.urlParams_.Set("requestId", requestId)
92530	return c
92531}
92532
92533// ValidateOnly sets the optional parameter "validateOnly": If true, the
92534// request will not be committed.
92535func (c *InterconnectAttachmentsInsertCall) ValidateOnly(validateOnly bool) *InterconnectAttachmentsInsertCall {
92536	c.urlParams_.Set("validateOnly", fmt.Sprint(validateOnly))
92537	return c
92538}
92539
92540// Fields allows partial responses to be retrieved. See
92541// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
92542// for more information.
92543func (c *InterconnectAttachmentsInsertCall) Fields(s ...googleapi.Field) *InterconnectAttachmentsInsertCall {
92544	c.urlParams_.Set("fields", googleapi.CombineFields(s))
92545	return c
92546}
92547
92548// Context sets the context to be used in this call's Do method. Any
92549// pending HTTP request will be aborted if the provided context is
92550// canceled.
92551func (c *InterconnectAttachmentsInsertCall) Context(ctx context.Context) *InterconnectAttachmentsInsertCall {
92552	c.ctx_ = ctx
92553	return c
92554}
92555
92556// Header returns an http.Header that can be modified by the caller to
92557// add HTTP headers to the request.
92558func (c *InterconnectAttachmentsInsertCall) Header() http.Header {
92559	if c.header_ == nil {
92560		c.header_ = make(http.Header)
92561	}
92562	return c.header_
92563}
92564
92565func (c *InterconnectAttachmentsInsertCall) doRequest(alt string) (*http.Response, error) {
92566	reqHeaders := make(http.Header)
92567	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
92568	for k, v := range c.header_ {
92569		reqHeaders[k] = v
92570	}
92571	reqHeaders.Set("User-Agent", c.s.userAgent())
92572	var body io.Reader = nil
92573	body, err := googleapi.WithoutDataWrapper.JSONReader(c.interconnectattachment)
92574	if err != nil {
92575		return nil, err
92576	}
92577	reqHeaders.Set("Content-Type", "application/json")
92578	c.urlParams_.Set("alt", alt)
92579	c.urlParams_.Set("prettyPrint", "false")
92580	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/interconnectAttachments")
92581	urls += "?" + c.urlParams_.Encode()
92582	req, err := http.NewRequest("POST", urls, body)
92583	if err != nil {
92584		return nil, err
92585	}
92586	req.Header = reqHeaders
92587	googleapi.Expand(req.URL, map[string]string{
92588		"project": c.project,
92589		"region":  c.region,
92590	})
92591	return gensupport.SendRequest(c.ctx_, c.s.client, req)
92592}
92593
92594// Do executes the "compute.interconnectAttachments.insert" call.
92595// Exactly one of *Operation or error will be non-nil. Any non-2xx
92596// status code is an error. Response headers are in either
92597// *Operation.ServerResponse.Header or (if a response was returned at
92598// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
92599// to check whether the returned error was because
92600// http.StatusNotModified was returned.
92601func (c *InterconnectAttachmentsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
92602	gensupport.SetOptions(c.urlParams_, opts...)
92603	res, err := c.doRequest("json")
92604	if res != nil && res.StatusCode == http.StatusNotModified {
92605		if res.Body != nil {
92606			res.Body.Close()
92607		}
92608		return nil, &googleapi.Error{
92609			Code:   res.StatusCode,
92610			Header: res.Header,
92611		}
92612	}
92613	if err != nil {
92614		return nil, err
92615	}
92616	defer googleapi.CloseBody(res)
92617	if err := googleapi.CheckResponse(res); err != nil {
92618		return nil, err
92619	}
92620	ret := &Operation{
92621		ServerResponse: googleapi.ServerResponse{
92622			Header:         res.Header,
92623			HTTPStatusCode: res.StatusCode,
92624		},
92625	}
92626	target := &ret
92627	if err := gensupport.DecodeResponse(target, res); err != nil {
92628		return nil, err
92629	}
92630	return ret, nil
92631	// {
92632	//   "description": "Creates an InterconnectAttachment in the specified project using the data included in the request. (== suppress_warning http-rest-shadowed ==)",
92633	//   "httpMethod": "POST",
92634	//   "id": "compute.interconnectAttachments.insert",
92635	//   "parameterOrder": [
92636	//     "project",
92637	//     "region"
92638	//   ],
92639	//   "parameters": {
92640	//     "project": {
92641	//       "description": "Project ID for this request.",
92642	//       "location": "path",
92643	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
92644	//       "required": true,
92645	//       "type": "string"
92646	//     },
92647	//     "region": {
92648	//       "description": "Name of the region for this request.",
92649	//       "location": "path",
92650	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
92651	//       "required": true,
92652	//       "type": "string"
92653	//     },
92654	//     "requestId": {
92655	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
92656	//       "location": "query",
92657	//       "type": "string"
92658	//     },
92659	//     "validateOnly": {
92660	//       "description": "If true, the request will not be committed.",
92661	//       "location": "query",
92662	//       "type": "boolean"
92663	//     }
92664	//   },
92665	//   "path": "{project}/regions/{region}/interconnectAttachments",
92666	//   "request": {
92667	//     "$ref": "InterconnectAttachment"
92668	//   },
92669	//   "response": {
92670	//     "$ref": "Operation"
92671	//   },
92672	//   "scopes": [
92673	//     "https://www.googleapis.com/auth/cloud-platform",
92674	//     "https://www.googleapis.com/auth/compute"
92675	//   ]
92676	// }
92677
92678}
92679
92680// method id "compute.interconnectAttachments.list":
92681
92682type InterconnectAttachmentsListCall struct {
92683	s            *Service
92684	project      string
92685	region       string
92686	urlParams_   gensupport.URLParams
92687	ifNoneMatch_ string
92688	ctx_         context.Context
92689	header_      http.Header
92690}
92691
92692// List: Retrieves the list of interconnect attachments contained within
92693// the specified region. (== suppress_warning http-rest-shadowed ==)
92694func (r *InterconnectAttachmentsService) List(project string, region string) *InterconnectAttachmentsListCall {
92695	c := &InterconnectAttachmentsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
92696	c.project = project
92697	c.region = region
92698	return c
92699}
92700
92701// Filter sets the optional parameter "filter": A filter expression that
92702// filters resources listed in the response. The expression must specify
92703// the field name, a comparison operator, and the value that you want to
92704// use for filtering. The value must be a string, a number, or a
92705// boolean. The comparison operator must be either =, !=, >, or <.
92706//
92707// For example, if you are filtering Compute Engine instances, you can
92708// exclude instances named example-instance by specifying name !=
92709// example-instance.
92710//
92711// You can also filter nested fields. For example, you could specify
92712// scheduling.automaticRestart = false to include instances only if they
92713// are not scheduled for automatic restarts. You can use filtering on
92714// nested fields to filter based on resource labels.
92715//
92716// To filter on multiple expressions, provide each separate expression
92717// within parentheses. For example, (scheduling.automaticRestart = true)
92718// (cpuPlatform = "Intel Skylake"). By default, each expression is an
92719// AND expression. However, you can include AND and OR expressions
92720// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
92721// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
92722// true).
92723func (c *InterconnectAttachmentsListCall) Filter(filter string) *InterconnectAttachmentsListCall {
92724	c.urlParams_.Set("filter", filter)
92725	return c
92726}
92727
92728// MaxResults sets the optional parameter "maxResults": The maximum
92729// number of results per page that should be returned. If the number of
92730// available results is larger than maxResults, Compute Engine returns a
92731// nextPageToken that can be used to get the next page of results in
92732// subsequent list requests. Acceptable values are 0 to 500, inclusive.
92733// (Default: 500)
92734func (c *InterconnectAttachmentsListCall) MaxResults(maxResults int64) *InterconnectAttachmentsListCall {
92735	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
92736	return c
92737}
92738
92739// OrderBy sets the optional parameter "orderBy": Sorts list results by
92740// a certain order. By default, results are returned in alphanumerical
92741// order based on the resource name.
92742//
92743// You can also sort results in descending order based on the creation
92744// timestamp using orderBy="creationTimestamp desc". This sorts results
92745// based on the creationTimestamp field in reverse chronological order
92746// (newest result first). Use this to sort resources like operations so
92747// that the newest operation is returned first.
92748//
92749// Currently, only sorting by name or creationTimestamp desc is
92750// supported.
92751func (c *InterconnectAttachmentsListCall) OrderBy(orderBy string) *InterconnectAttachmentsListCall {
92752	c.urlParams_.Set("orderBy", orderBy)
92753	return c
92754}
92755
92756// PageToken sets the optional parameter "pageToken": Specifies a page
92757// token to use. Set pageToken to the nextPageToken returned by a
92758// previous list request to get the next page of results.
92759func (c *InterconnectAttachmentsListCall) PageToken(pageToken string) *InterconnectAttachmentsListCall {
92760	c.urlParams_.Set("pageToken", pageToken)
92761	return c
92762}
92763
92764// Fields allows partial responses to be retrieved. See
92765// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
92766// for more information.
92767func (c *InterconnectAttachmentsListCall) Fields(s ...googleapi.Field) *InterconnectAttachmentsListCall {
92768	c.urlParams_.Set("fields", googleapi.CombineFields(s))
92769	return c
92770}
92771
92772// IfNoneMatch sets the optional parameter which makes the operation
92773// fail if the object's ETag matches the given value. This is useful for
92774// getting updates only after the object has changed since the last
92775// request. Use googleapi.IsNotModified to check whether the response
92776// error from Do is the result of In-None-Match.
92777func (c *InterconnectAttachmentsListCall) IfNoneMatch(entityTag string) *InterconnectAttachmentsListCall {
92778	c.ifNoneMatch_ = entityTag
92779	return c
92780}
92781
92782// Context sets the context to be used in this call's Do method. Any
92783// pending HTTP request will be aborted if the provided context is
92784// canceled.
92785func (c *InterconnectAttachmentsListCall) Context(ctx context.Context) *InterconnectAttachmentsListCall {
92786	c.ctx_ = ctx
92787	return c
92788}
92789
92790// Header returns an http.Header that can be modified by the caller to
92791// add HTTP headers to the request.
92792func (c *InterconnectAttachmentsListCall) Header() http.Header {
92793	if c.header_ == nil {
92794		c.header_ = make(http.Header)
92795	}
92796	return c.header_
92797}
92798
92799func (c *InterconnectAttachmentsListCall) doRequest(alt string) (*http.Response, error) {
92800	reqHeaders := make(http.Header)
92801	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
92802	for k, v := range c.header_ {
92803		reqHeaders[k] = v
92804	}
92805	reqHeaders.Set("User-Agent", c.s.userAgent())
92806	if c.ifNoneMatch_ != "" {
92807		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
92808	}
92809	var body io.Reader = nil
92810	c.urlParams_.Set("alt", alt)
92811	c.urlParams_.Set("prettyPrint", "false")
92812	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/interconnectAttachments")
92813	urls += "?" + c.urlParams_.Encode()
92814	req, err := http.NewRequest("GET", urls, body)
92815	if err != nil {
92816		return nil, err
92817	}
92818	req.Header = reqHeaders
92819	googleapi.Expand(req.URL, map[string]string{
92820		"project": c.project,
92821		"region":  c.region,
92822	})
92823	return gensupport.SendRequest(c.ctx_, c.s.client, req)
92824}
92825
92826// Do executes the "compute.interconnectAttachments.list" call.
92827// Exactly one of *InterconnectAttachmentList or error will be non-nil.
92828// Any non-2xx status code is an error. Response headers are in either
92829// *InterconnectAttachmentList.ServerResponse.Header or (if a response
92830// was returned at all) in error.(*googleapi.Error).Header. Use
92831// googleapi.IsNotModified to check whether the returned error was
92832// because http.StatusNotModified was returned.
92833func (c *InterconnectAttachmentsListCall) Do(opts ...googleapi.CallOption) (*InterconnectAttachmentList, error) {
92834	gensupport.SetOptions(c.urlParams_, opts...)
92835	res, err := c.doRequest("json")
92836	if res != nil && res.StatusCode == http.StatusNotModified {
92837		if res.Body != nil {
92838			res.Body.Close()
92839		}
92840		return nil, &googleapi.Error{
92841			Code:   res.StatusCode,
92842			Header: res.Header,
92843		}
92844	}
92845	if err != nil {
92846		return nil, err
92847	}
92848	defer googleapi.CloseBody(res)
92849	if err := googleapi.CheckResponse(res); err != nil {
92850		return nil, err
92851	}
92852	ret := &InterconnectAttachmentList{
92853		ServerResponse: googleapi.ServerResponse{
92854			Header:         res.Header,
92855			HTTPStatusCode: res.StatusCode,
92856		},
92857	}
92858	target := &ret
92859	if err := gensupport.DecodeResponse(target, res); err != nil {
92860		return nil, err
92861	}
92862	return ret, nil
92863	// {
92864	//   "description": "Retrieves the list of interconnect attachments contained within the specified region. (== suppress_warning http-rest-shadowed ==)",
92865	//   "httpMethod": "GET",
92866	//   "id": "compute.interconnectAttachments.list",
92867	//   "parameterOrder": [
92868	//     "project",
92869	//     "region"
92870	//   ],
92871	//   "parameters": {
92872	//     "filter": {
92873	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
92874	//       "location": "query",
92875	//       "type": "string"
92876	//     },
92877	//     "maxResults": {
92878	//       "default": "500",
92879	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
92880	//       "format": "uint32",
92881	//       "location": "query",
92882	//       "minimum": "0",
92883	//       "type": "integer"
92884	//     },
92885	//     "orderBy": {
92886	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
92887	//       "location": "query",
92888	//       "type": "string"
92889	//     },
92890	//     "pageToken": {
92891	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
92892	//       "location": "query",
92893	//       "type": "string"
92894	//     },
92895	//     "project": {
92896	//       "description": "Project ID for this request.",
92897	//       "location": "path",
92898	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
92899	//       "required": true,
92900	//       "type": "string"
92901	//     },
92902	//     "region": {
92903	//       "description": "Name of the region for this request.",
92904	//       "location": "path",
92905	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
92906	//       "required": true,
92907	//       "type": "string"
92908	//     }
92909	//   },
92910	//   "path": "{project}/regions/{region}/interconnectAttachments",
92911	//   "response": {
92912	//     "$ref": "InterconnectAttachmentList"
92913	//   },
92914	//   "scopes": [
92915	//     "https://www.googleapis.com/auth/cloud-platform",
92916	//     "https://www.googleapis.com/auth/compute",
92917	//     "https://www.googleapis.com/auth/compute.readonly"
92918	//   ]
92919	// }
92920
92921}
92922
92923// Pages invokes f for each page of results.
92924// A non-nil error returned from f will halt the iteration.
92925// The provided context supersedes any context provided to the Context method.
92926func (c *InterconnectAttachmentsListCall) Pages(ctx context.Context, f func(*InterconnectAttachmentList) error) error {
92927	c.ctx_ = ctx
92928	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
92929	for {
92930		x, err := c.Do()
92931		if err != nil {
92932			return err
92933		}
92934		if err := f(x); err != nil {
92935			return err
92936		}
92937		if x.NextPageToken == "" {
92938			return nil
92939		}
92940		c.PageToken(x.NextPageToken)
92941	}
92942}
92943
92944// method id "compute.interconnectAttachments.patch":
92945
92946type InterconnectAttachmentsPatchCall struct {
92947	s                      *Service
92948	project                string
92949	region                 string
92950	interconnectAttachment string
92951	interconnectattachment *InterconnectAttachment
92952	urlParams_             gensupport.URLParams
92953	ctx_                   context.Context
92954	header_                http.Header
92955}
92956
92957// Patch: Updates the specified interconnect attachment with the data
92958// included in the request. This method supports PATCH semantics and
92959// uses the JSON merge patch format and processing rules. (==
92960// suppress_warning http-rest-shadowed ==)
92961func (r *InterconnectAttachmentsService) Patch(project string, region string, interconnectAttachment string, interconnectattachment *InterconnectAttachment) *InterconnectAttachmentsPatchCall {
92962	c := &InterconnectAttachmentsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
92963	c.project = project
92964	c.region = region
92965	c.interconnectAttachment = interconnectAttachment
92966	c.interconnectattachment = interconnectattachment
92967	return c
92968}
92969
92970// RequestId sets the optional parameter "requestId": An optional
92971// request ID to identify requests. Specify a unique request ID so that
92972// if you must retry your request, the server will know to ignore the
92973// request if it has already been completed.
92974//
92975// For example, consider a situation where you make an initial request
92976// and the request times out. If you make the request again with the
92977// same request ID, the server can check if original operation with the
92978// same request ID was received, and if so, will ignore the second
92979// request. This prevents clients from accidentally creating duplicate
92980// commitments.
92981//
92982// The request ID must be a valid UUID with the exception that zero UUID
92983// is not supported (00000000-0000-0000-0000-000000000000).
92984func (c *InterconnectAttachmentsPatchCall) RequestId(requestId string) *InterconnectAttachmentsPatchCall {
92985	c.urlParams_.Set("requestId", requestId)
92986	return c
92987}
92988
92989// Fields allows partial responses to be retrieved. See
92990// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
92991// for more information.
92992func (c *InterconnectAttachmentsPatchCall) Fields(s ...googleapi.Field) *InterconnectAttachmentsPatchCall {
92993	c.urlParams_.Set("fields", googleapi.CombineFields(s))
92994	return c
92995}
92996
92997// Context sets the context to be used in this call's Do method. Any
92998// pending HTTP request will be aborted if the provided context is
92999// canceled.
93000func (c *InterconnectAttachmentsPatchCall) Context(ctx context.Context) *InterconnectAttachmentsPatchCall {
93001	c.ctx_ = ctx
93002	return c
93003}
93004
93005// Header returns an http.Header that can be modified by the caller to
93006// add HTTP headers to the request.
93007func (c *InterconnectAttachmentsPatchCall) Header() http.Header {
93008	if c.header_ == nil {
93009		c.header_ = make(http.Header)
93010	}
93011	return c.header_
93012}
93013
93014func (c *InterconnectAttachmentsPatchCall) doRequest(alt string) (*http.Response, error) {
93015	reqHeaders := make(http.Header)
93016	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
93017	for k, v := range c.header_ {
93018		reqHeaders[k] = v
93019	}
93020	reqHeaders.Set("User-Agent", c.s.userAgent())
93021	var body io.Reader = nil
93022	body, err := googleapi.WithoutDataWrapper.JSONReader(c.interconnectattachment)
93023	if err != nil {
93024		return nil, err
93025	}
93026	reqHeaders.Set("Content-Type", "application/json")
93027	c.urlParams_.Set("alt", alt)
93028	c.urlParams_.Set("prettyPrint", "false")
93029	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}")
93030	urls += "?" + c.urlParams_.Encode()
93031	req, err := http.NewRequest("PATCH", urls, body)
93032	if err != nil {
93033		return nil, err
93034	}
93035	req.Header = reqHeaders
93036	googleapi.Expand(req.URL, map[string]string{
93037		"project":                c.project,
93038		"region":                 c.region,
93039		"interconnectAttachment": c.interconnectAttachment,
93040	})
93041	return gensupport.SendRequest(c.ctx_, c.s.client, req)
93042}
93043
93044// Do executes the "compute.interconnectAttachments.patch" call.
93045// Exactly one of *Operation or error will be non-nil. Any non-2xx
93046// status code is an error. Response headers are in either
93047// *Operation.ServerResponse.Header or (if a response was returned at
93048// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
93049// to check whether the returned error was because
93050// http.StatusNotModified was returned.
93051func (c *InterconnectAttachmentsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
93052	gensupport.SetOptions(c.urlParams_, opts...)
93053	res, err := c.doRequest("json")
93054	if res != nil && res.StatusCode == http.StatusNotModified {
93055		if res.Body != nil {
93056			res.Body.Close()
93057		}
93058		return nil, &googleapi.Error{
93059			Code:   res.StatusCode,
93060			Header: res.Header,
93061		}
93062	}
93063	if err != nil {
93064		return nil, err
93065	}
93066	defer googleapi.CloseBody(res)
93067	if err := googleapi.CheckResponse(res); err != nil {
93068		return nil, err
93069	}
93070	ret := &Operation{
93071		ServerResponse: googleapi.ServerResponse{
93072			Header:         res.Header,
93073			HTTPStatusCode: res.StatusCode,
93074		},
93075	}
93076	target := &ret
93077	if err := gensupport.DecodeResponse(target, res); err != nil {
93078		return nil, err
93079	}
93080	return ret, nil
93081	// {
93082	//   "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. (== suppress_warning http-rest-shadowed ==)",
93083	//   "httpMethod": "PATCH",
93084	//   "id": "compute.interconnectAttachments.patch",
93085	//   "parameterOrder": [
93086	//     "project",
93087	//     "region",
93088	//     "interconnectAttachment"
93089	//   ],
93090	//   "parameters": {
93091	//     "interconnectAttachment": {
93092	//       "description": "Name of the interconnect attachment to patch.",
93093	//       "location": "path",
93094	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
93095	//       "required": true,
93096	//       "type": "string"
93097	//     },
93098	//     "project": {
93099	//       "description": "Project ID for this request.",
93100	//       "location": "path",
93101	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
93102	//       "required": true,
93103	//       "type": "string"
93104	//     },
93105	//     "region": {
93106	//       "description": "Name of the region scoping this request.",
93107	//       "location": "path",
93108	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
93109	//       "required": true,
93110	//       "type": "string"
93111	//     },
93112	//     "requestId": {
93113	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
93114	//       "location": "query",
93115	//       "type": "string"
93116	//     }
93117	//   },
93118	//   "path": "{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}",
93119	//   "request": {
93120	//     "$ref": "InterconnectAttachment"
93121	//   },
93122	//   "response": {
93123	//     "$ref": "Operation"
93124	//   },
93125	//   "scopes": [
93126	//     "https://www.googleapis.com/auth/cloud-platform",
93127	//     "https://www.googleapis.com/auth/compute"
93128	//   ]
93129	// }
93130
93131}
93132
93133// method id "compute.interconnectAttachments.setIamPolicy":
93134
93135type InterconnectAttachmentsSetIamPolicyCall struct {
93136	s                      *Service
93137	project                string
93138	region                 string
93139	resource               string
93140	regionsetpolicyrequest *RegionSetPolicyRequest
93141	urlParams_             gensupport.URLParams
93142	ctx_                   context.Context
93143	header_                http.Header
93144}
93145
93146// SetIamPolicy: Sets the access control policy on the specified
93147// resource. Replaces any existing policy. (== suppress_warning
93148// http-rest-shadowed ==)
93149func (r *InterconnectAttachmentsService) SetIamPolicy(project string, region string, resource string, regionsetpolicyrequest *RegionSetPolicyRequest) *InterconnectAttachmentsSetIamPolicyCall {
93150	c := &InterconnectAttachmentsSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
93151	c.project = project
93152	c.region = region
93153	c.resource = resource
93154	c.regionsetpolicyrequest = regionsetpolicyrequest
93155	return c
93156}
93157
93158// Fields allows partial responses to be retrieved. See
93159// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
93160// for more information.
93161func (c *InterconnectAttachmentsSetIamPolicyCall) Fields(s ...googleapi.Field) *InterconnectAttachmentsSetIamPolicyCall {
93162	c.urlParams_.Set("fields", googleapi.CombineFields(s))
93163	return c
93164}
93165
93166// Context sets the context to be used in this call's Do method. Any
93167// pending HTTP request will be aborted if the provided context is
93168// canceled.
93169func (c *InterconnectAttachmentsSetIamPolicyCall) Context(ctx context.Context) *InterconnectAttachmentsSetIamPolicyCall {
93170	c.ctx_ = ctx
93171	return c
93172}
93173
93174// Header returns an http.Header that can be modified by the caller to
93175// add HTTP headers to the request.
93176func (c *InterconnectAttachmentsSetIamPolicyCall) Header() http.Header {
93177	if c.header_ == nil {
93178		c.header_ = make(http.Header)
93179	}
93180	return c.header_
93181}
93182
93183func (c *InterconnectAttachmentsSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
93184	reqHeaders := make(http.Header)
93185	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
93186	for k, v := range c.header_ {
93187		reqHeaders[k] = v
93188	}
93189	reqHeaders.Set("User-Agent", c.s.userAgent())
93190	var body io.Reader = nil
93191	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetpolicyrequest)
93192	if err != nil {
93193		return nil, err
93194	}
93195	reqHeaders.Set("Content-Type", "application/json")
93196	c.urlParams_.Set("alt", alt)
93197	c.urlParams_.Set("prettyPrint", "false")
93198	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/interconnectAttachments/{resource}/setIamPolicy")
93199	urls += "?" + c.urlParams_.Encode()
93200	req, err := http.NewRequest("POST", urls, body)
93201	if err != nil {
93202		return nil, err
93203	}
93204	req.Header = reqHeaders
93205	googleapi.Expand(req.URL, map[string]string{
93206		"project":  c.project,
93207		"region":   c.region,
93208		"resource": c.resource,
93209	})
93210	return gensupport.SendRequest(c.ctx_, c.s.client, req)
93211}
93212
93213// Do executes the "compute.interconnectAttachments.setIamPolicy" call.
93214// Exactly one of *Policy or error will be non-nil. Any non-2xx status
93215// code is an error. Response headers are in either
93216// *Policy.ServerResponse.Header or (if a response was returned at all)
93217// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
93218// check whether the returned error was because http.StatusNotModified
93219// was returned.
93220func (c *InterconnectAttachmentsSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
93221	gensupport.SetOptions(c.urlParams_, opts...)
93222	res, err := c.doRequest("json")
93223	if res != nil && res.StatusCode == http.StatusNotModified {
93224		if res.Body != nil {
93225			res.Body.Close()
93226		}
93227		return nil, &googleapi.Error{
93228			Code:   res.StatusCode,
93229			Header: res.Header,
93230		}
93231	}
93232	if err != nil {
93233		return nil, err
93234	}
93235	defer googleapi.CloseBody(res)
93236	if err := googleapi.CheckResponse(res); err != nil {
93237		return nil, err
93238	}
93239	ret := &Policy{
93240		ServerResponse: googleapi.ServerResponse{
93241			Header:         res.Header,
93242			HTTPStatusCode: res.StatusCode,
93243		},
93244	}
93245	target := &ret
93246	if err := gensupport.DecodeResponse(target, res); err != nil {
93247		return nil, err
93248	}
93249	return ret, nil
93250	// {
93251	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy. (== suppress_warning http-rest-shadowed ==)",
93252	//   "httpMethod": "POST",
93253	//   "id": "compute.interconnectAttachments.setIamPolicy",
93254	//   "parameterOrder": [
93255	//     "project",
93256	//     "region",
93257	//     "resource"
93258	//   ],
93259	//   "parameters": {
93260	//     "project": {
93261	//       "description": "Project ID for this request.",
93262	//       "location": "path",
93263	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
93264	//       "required": true,
93265	//       "type": "string"
93266	//     },
93267	//     "region": {
93268	//       "description": "The name of the region for this request.",
93269	//       "location": "path",
93270	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
93271	//       "required": true,
93272	//       "type": "string"
93273	//     },
93274	//     "resource": {
93275	//       "description": "Name or id of the resource for this request.",
93276	//       "location": "path",
93277	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
93278	//       "required": true,
93279	//       "type": "string"
93280	//     }
93281	//   },
93282	//   "path": "{project}/regions/{region}/interconnectAttachments/{resource}/setIamPolicy",
93283	//   "request": {
93284	//     "$ref": "RegionSetPolicyRequest"
93285	//   },
93286	//   "response": {
93287	//     "$ref": "Policy"
93288	//   },
93289	//   "scopes": [
93290	//     "https://www.googleapis.com/auth/cloud-platform",
93291	//     "https://www.googleapis.com/auth/compute"
93292	//   ]
93293	// }
93294
93295}
93296
93297// method id "compute.interconnectAttachments.setLabels":
93298
93299type InterconnectAttachmentsSetLabelsCall struct {
93300	s                      *Service
93301	project                string
93302	region                 string
93303	resource               string
93304	regionsetlabelsrequest *RegionSetLabelsRequest
93305	urlParams_             gensupport.URLParams
93306	ctx_                   context.Context
93307	header_                http.Header
93308}
93309
93310// SetLabels: Sets the labels on an InterconnectAttachment. To learn
93311// more about labels, read the Labeling Resources documentation. (==
93312// suppress_warning http-rest-shadowed ==)
93313func (r *InterconnectAttachmentsService) SetLabels(project string, region string, resource string, regionsetlabelsrequest *RegionSetLabelsRequest) *InterconnectAttachmentsSetLabelsCall {
93314	c := &InterconnectAttachmentsSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
93315	c.project = project
93316	c.region = region
93317	c.resource = resource
93318	c.regionsetlabelsrequest = regionsetlabelsrequest
93319	return c
93320}
93321
93322// RequestId sets the optional parameter "requestId": An optional
93323// request ID to identify requests. Specify a unique request ID so that
93324// if you must retry your request, the server will know to ignore the
93325// request if it has already been completed.
93326//
93327// For example, consider a situation where you make an initial request
93328// and the request times out. If you make the request again with the
93329// same request ID, the server can check if original operation with the
93330// same request ID was received, and if so, will ignore the second
93331// request. This prevents clients from accidentally creating duplicate
93332// commitments.
93333//
93334// The request ID must be a valid UUID with the exception that zero UUID
93335// is not supported (00000000-0000-0000-0000-000000000000).
93336func (c *InterconnectAttachmentsSetLabelsCall) RequestId(requestId string) *InterconnectAttachmentsSetLabelsCall {
93337	c.urlParams_.Set("requestId", requestId)
93338	return c
93339}
93340
93341// Fields allows partial responses to be retrieved. See
93342// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
93343// for more information.
93344func (c *InterconnectAttachmentsSetLabelsCall) Fields(s ...googleapi.Field) *InterconnectAttachmentsSetLabelsCall {
93345	c.urlParams_.Set("fields", googleapi.CombineFields(s))
93346	return c
93347}
93348
93349// Context sets the context to be used in this call's Do method. Any
93350// pending HTTP request will be aborted if the provided context is
93351// canceled.
93352func (c *InterconnectAttachmentsSetLabelsCall) Context(ctx context.Context) *InterconnectAttachmentsSetLabelsCall {
93353	c.ctx_ = ctx
93354	return c
93355}
93356
93357// Header returns an http.Header that can be modified by the caller to
93358// add HTTP headers to the request.
93359func (c *InterconnectAttachmentsSetLabelsCall) Header() http.Header {
93360	if c.header_ == nil {
93361		c.header_ = make(http.Header)
93362	}
93363	return c.header_
93364}
93365
93366func (c *InterconnectAttachmentsSetLabelsCall) doRequest(alt string) (*http.Response, error) {
93367	reqHeaders := make(http.Header)
93368	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
93369	for k, v := range c.header_ {
93370		reqHeaders[k] = v
93371	}
93372	reqHeaders.Set("User-Agent", c.s.userAgent())
93373	var body io.Reader = nil
93374	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetlabelsrequest)
93375	if err != nil {
93376		return nil, err
93377	}
93378	reqHeaders.Set("Content-Type", "application/json")
93379	c.urlParams_.Set("alt", alt)
93380	c.urlParams_.Set("prettyPrint", "false")
93381	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/interconnectAttachments/{resource}/setLabels")
93382	urls += "?" + c.urlParams_.Encode()
93383	req, err := http.NewRequest("POST", urls, body)
93384	if err != nil {
93385		return nil, err
93386	}
93387	req.Header = reqHeaders
93388	googleapi.Expand(req.URL, map[string]string{
93389		"project":  c.project,
93390		"region":   c.region,
93391		"resource": c.resource,
93392	})
93393	return gensupport.SendRequest(c.ctx_, c.s.client, req)
93394}
93395
93396// Do executes the "compute.interconnectAttachments.setLabels" call.
93397// Exactly one of *Operation or error will be non-nil. Any non-2xx
93398// status code is an error. Response headers are in either
93399// *Operation.ServerResponse.Header or (if a response was returned at
93400// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
93401// to check whether the returned error was because
93402// http.StatusNotModified was returned.
93403func (c *InterconnectAttachmentsSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
93404	gensupport.SetOptions(c.urlParams_, opts...)
93405	res, err := c.doRequest("json")
93406	if res != nil && res.StatusCode == http.StatusNotModified {
93407		if res.Body != nil {
93408			res.Body.Close()
93409		}
93410		return nil, &googleapi.Error{
93411			Code:   res.StatusCode,
93412			Header: res.Header,
93413		}
93414	}
93415	if err != nil {
93416		return nil, err
93417	}
93418	defer googleapi.CloseBody(res)
93419	if err := googleapi.CheckResponse(res); err != nil {
93420		return nil, err
93421	}
93422	ret := &Operation{
93423		ServerResponse: googleapi.ServerResponse{
93424			Header:         res.Header,
93425			HTTPStatusCode: res.StatusCode,
93426		},
93427	}
93428	target := &ret
93429	if err := gensupport.DecodeResponse(target, res); err != nil {
93430		return nil, err
93431	}
93432	return ret, nil
93433	// {
93434	//   "description": "Sets the labels on an InterconnectAttachment. To learn more about labels, read the Labeling Resources documentation. (== suppress_warning http-rest-shadowed ==)",
93435	//   "httpMethod": "POST",
93436	//   "id": "compute.interconnectAttachments.setLabels",
93437	//   "parameterOrder": [
93438	//     "project",
93439	//     "region",
93440	//     "resource"
93441	//   ],
93442	//   "parameters": {
93443	//     "project": {
93444	//       "description": "Project ID for this request.",
93445	//       "location": "path",
93446	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
93447	//       "required": true,
93448	//       "type": "string"
93449	//     },
93450	//     "region": {
93451	//       "description": "The region for this request.",
93452	//       "location": "path",
93453	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
93454	//       "required": true,
93455	//       "type": "string"
93456	//     },
93457	//     "requestId": {
93458	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
93459	//       "location": "query",
93460	//       "type": "string"
93461	//     },
93462	//     "resource": {
93463	//       "description": "Name or id of the resource for this request.",
93464	//       "location": "path",
93465	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
93466	//       "required": true,
93467	//       "type": "string"
93468	//     }
93469	//   },
93470	//   "path": "{project}/regions/{region}/interconnectAttachments/{resource}/setLabels",
93471	//   "request": {
93472	//     "$ref": "RegionSetLabelsRequest"
93473	//   },
93474	//   "response": {
93475	//     "$ref": "Operation"
93476	//   },
93477	//   "scopes": [
93478	//     "https://www.googleapis.com/auth/cloud-platform",
93479	//     "https://www.googleapis.com/auth/compute"
93480	//   ]
93481	// }
93482
93483}
93484
93485// method id "compute.interconnectAttachments.testIamPermissions":
93486
93487type InterconnectAttachmentsTestIamPermissionsCall struct {
93488	s                      *Service
93489	project                string
93490	region                 string
93491	resource               string
93492	testpermissionsrequest *TestPermissionsRequest
93493	urlParams_             gensupport.URLParams
93494	ctx_                   context.Context
93495	header_                http.Header
93496}
93497
93498// TestIamPermissions: Returns permissions that a caller has on the
93499// specified resource. (== suppress_warning http-rest-shadowed ==)
93500func (r *InterconnectAttachmentsService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *InterconnectAttachmentsTestIamPermissionsCall {
93501	c := &InterconnectAttachmentsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
93502	c.project = project
93503	c.region = region
93504	c.resource = resource
93505	c.testpermissionsrequest = testpermissionsrequest
93506	return c
93507}
93508
93509// Fields allows partial responses to be retrieved. See
93510// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
93511// for more information.
93512func (c *InterconnectAttachmentsTestIamPermissionsCall) Fields(s ...googleapi.Field) *InterconnectAttachmentsTestIamPermissionsCall {
93513	c.urlParams_.Set("fields", googleapi.CombineFields(s))
93514	return c
93515}
93516
93517// Context sets the context to be used in this call's Do method. Any
93518// pending HTTP request will be aborted if the provided context is
93519// canceled.
93520func (c *InterconnectAttachmentsTestIamPermissionsCall) Context(ctx context.Context) *InterconnectAttachmentsTestIamPermissionsCall {
93521	c.ctx_ = ctx
93522	return c
93523}
93524
93525// Header returns an http.Header that can be modified by the caller to
93526// add HTTP headers to the request.
93527func (c *InterconnectAttachmentsTestIamPermissionsCall) Header() http.Header {
93528	if c.header_ == nil {
93529		c.header_ = make(http.Header)
93530	}
93531	return c.header_
93532}
93533
93534func (c *InterconnectAttachmentsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
93535	reqHeaders := make(http.Header)
93536	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
93537	for k, v := range c.header_ {
93538		reqHeaders[k] = v
93539	}
93540	reqHeaders.Set("User-Agent", c.s.userAgent())
93541	var body io.Reader = nil
93542	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
93543	if err != nil {
93544		return nil, err
93545	}
93546	reqHeaders.Set("Content-Type", "application/json")
93547	c.urlParams_.Set("alt", alt)
93548	c.urlParams_.Set("prettyPrint", "false")
93549	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/interconnectAttachments/{resource}/testIamPermissions")
93550	urls += "?" + c.urlParams_.Encode()
93551	req, err := http.NewRequest("POST", urls, body)
93552	if err != nil {
93553		return nil, err
93554	}
93555	req.Header = reqHeaders
93556	googleapi.Expand(req.URL, map[string]string{
93557		"project":  c.project,
93558		"region":   c.region,
93559		"resource": c.resource,
93560	})
93561	return gensupport.SendRequest(c.ctx_, c.s.client, req)
93562}
93563
93564// Do executes the "compute.interconnectAttachments.testIamPermissions" call.
93565// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
93566// non-2xx status code is an error. Response headers are in either
93567// *TestPermissionsResponse.ServerResponse.Header or (if a response was
93568// returned at all) in error.(*googleapi.Error).Header. Use
93569// googleapi.IsNotModified to check whether the returned error was
93570// because http.StatusNotModified was returned.
93571func (c *InterconnectAttachmentsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
93572	gensupport.SetOptions(c.urlParams_, opts...)
93573	res, err := c.doRequest("json")
93574	if res != nil && res.StatusCode == http.StatusNotModified {
93575		if res.Body != nil {
93576			res.Body.Close()
93577		}
93578		return nil, &googleapi.Error{
93579			Code:   res.StatusCode,
93580			Header: res.Header,
93581		}
93582	}
93583	if err != nil {
93584		return nil, err
93585	}
93586	defer googleapi.CloseBody(res)
93587	if err := googleapi.CheckResponse(res); err != nil {
93588		return nil, err
93589	}
93590	ret := &TestPermissionsResponse{
93591		ServerResponse: googleapi.ServerResponse{
93592			Header:         res.Header,
93593			HTTPStatusCode: res.StatusCode,
93594		},
93595	}
93596	target := &ret
93597	if err := gensupport.DecodeResponse(target, res); err != nil {
93598		return nil, err
93599	}
93600	return ret, nil
93601	// {
93602	//   "description": "Returns permissions that a caller has on the specified resource. (== suppress_warning http-rest-shadowed ==)",
93603	//   "httpMethod": "POST",
93604	//   "id": "compute.interconnectAttachments.testIamPermissions",
93605	//   "parameterOrder": [
93606	//     "project",
93607	//     "region",
93608	//     "resource"
93609	//   ],
93610	//   "parameters": {
93611	//     "project": {
93612	//       "description": "Project ID for this request.",
93613	//       "location": "path",
93614	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
93615	//       "required": true,
93616	//       "type": "string"
93617	//     },
93618	//     "region": {
93619	//       "description": "The name of the region for this request.",
93620	//       "location": "path",
93621	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
93622	//       "required": true,
93623	//       "type": "string"
93624	//     },
93625	//     "resource": {
93626	//       "description": "Name or id of the resource for this request.",
93627	//       "location": "path",
93628	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
93629	//       "required": true,
93630	//       "type": "string"
93631	//     }
93632	//   },
93633	//   "path": "{project}/regions/{region}/interconnectAttachments/{resource}/testIamPermissions",
93634	//   "request": {
93635	//     "$ref": "TestPermissionsRequest"
93636	//   },
93637	//   "response": {
93638	//     "$ref": "TestPermissionsResponse"
93639	//   },
93640	//   "scopes": [
93641	//     "https://www.googleapis.com/auth/cloud-platform",
93642	//     "https://www.googleapis.com/auth/compute",
93643	//     "https://www.googleapis.com/auth/compute.readonly"
93644	//   ]
93645	// }
93646
93647}
93648
93649// method id "compute.interconnectLocations.get":
93650
93651type InterconnectLocationsGetCall struct {
93652	s                    *Service
93653	project              string
93654	interconnectLocation string
93655	urlParams_           gensupport.URLParams
93656	ifNoneMatch_         string
93657	ctx_                 context.Context
93658	header_              http.Header
93659}
93660
93661// Get: Returns the details for the specified interconnect location.
93662// Gets a list of available interconnect locations by making a list()
93663// request. (== suppress_warning http-rest-shadowed ==)
93664func (r *InterconnectLocationsService) Get(project string, interconnectLocation string) *InterconnectLocationsGetCall {
93665	c := &InterconnectLocationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
93666	c.project = project
93667	c.interconnectLocation = interconnectLocation
93668	return c
93669}
93670
93671// Fields allows partial responses to be retrieved. See
93672// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
93673// for more information.
93674func (c *InterconnectLocationsGetCall) Fields(s ...googleapi.Field) *InterconnectLocationsGetCall {
93675	c.urlParams_.Set("fields", googleapi.CombineFields(s))
93676	return c
93677}
93678
93679// IfNoneMatch sets the optional parameter which makes the operation
93680// fail if the object's ETag matches the given value. This is useful for
93681// getting updates only after the object has changed since the last
93682// request. Use googleapi.IsNotModified to check whether the response
93683// error from Do is the result of In-None-Match.
93684func (c *InterconnectLocationsGetCall) IfNoneMatch(entityTag string) *InterconnectLocationsGetCall {
93685	c.ifNoneMatch_ = entityTag
93686	return c
93687}
93688
93689// Context sets the context to be used in this call's Do method. Any
93690// pending HTTP request will be aborted if the provided context is
93691// canceled.
93692func (c *InterconnectLocationsGetCall) Context(ctx context.Context) *InterconnectLocationsGetCall {
93693	c.ctx_ = ctx
93694	return c
93695}
93696
93697// Header returns an http.Header that can be modified by the caller to
93698// add HTTP headers to the request.
93699func (c *InterconnectLocationsGetCall) Header() http.Header {
93700	if c.header_ == nil {
93701		c.header_ = make(http.Header)
93702	}
93703	return c.header_
93704}
93705
93706func (c *InterconnectLocationsGetCall) doRequest(alt string) (*http.Response, error) {
93707	reqHeaders := make(http.Header)
93708	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
93709	for k, v := range c.header_ {
93710		reqHeaders[k] = v
93711	}
93712	reqHeaders.Set("User-Agent", c.s.userAgent())
93713	if c.ifNoneMatch_ != "" {
93714		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
93715	}
93716	var body io.Reader = nil
93717	c.urlParams_.Set("alt", alt)
93718	c.urlParams_.Set("prettyPrint", "false")
93719	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/interconnectLocations/{interconnectLocation}")
93720	urls += "?" + c.urlParams_.Encode()
93721	req, err := http.NewRequest("GET", urls, body)
93722	if err != nil {
93723		return nil, err
93724	}
93725	req.Header = reqHeaders
93726	googleapi.Expand(req.URL, map[string]string{
93727		"project":              c.project,
93728		"interconnectLocation": c.interconnectLocation,
93729	})
93730	return gensupport.SendRequest(c.ctx_, c.s.client, req)
93731}
93732
93733// Do executes the "compute.interconnectLocations.get" call.
93734// Exactly one of *InterconnectLocation or error will be non-nil. Any
93735// non-2xx status code is an error. Response headers are in either
93736// *InterconnectLocation.ServerResponse.Header or (if a response was
93737// returned at all) in error.(*googleapi.Error).Header. Use
93738// googleapi.IsNotModified to check whether the returned error was
93739// because http.StatusNotModified was returned.
93740func (c *InterconnectLocationsGetCall) Do(opts ...googleapi.CallOption) (*InterconnectLocation, error) {
93741	gensupport.SetOptions(c.urlParams_, opts...)
93742	res, err := c.doRequest("json")
93743	if res != nil && res.StatusCode == http.StatusNotModified {
93744		if res.Body != nil {
93745			res.Body.Close()
93746		}
93747		return nil, &googleapi.Error{
93748			Code:   res.StatusCode,
93749			Header: res.Header,
93750		}
93751	}
93752	if err != nil {
93753		return nil, err
93754	}
93755	defer googleapi.CloseBody(res)
93756	if err := googleapi.CheckResponse(res); err != nil {
93757		return nil, err
93758	}
93759	ret := &InterconnectLocation{
93760		ServerResponse: googleapi.ServerResponse{
93761			Header:         res.Header,
93762			HTTPStatusCode: res.StatusCode,
93763		},
93764	}
93765	target := &ret
93766	if err := gensupport.DecodeResponse(target, res); err != nil {
93767		return nil, err
93768	}
93769	return ret, nil
93770	// {
93771	//   "description": "Returns the details for the specified interconnect location. Gets a list of available interconnect locations by making a list() request. (== suppress_warning http-rest-shadowed ==)",
93772	//   "httpMethod": "GET",
93773	//   "id": "compute.interconnectLocations.get",
93774	//   "parameterOrder": [
93775	//     "project",
93776	//     "interconnectLocation"
93777	//   ],
93778	//   "parameters": {
93779	//     "interconnectLocation": {
93780	//       "description": "Name of the interconnect location to return.",
93781	//       "location": "path",
93782	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
93783	//       "required": true,
93784	//       "type": "string"
93785	//     },
93786	//     "project": {
93787	//       "description": "Project ID for this request.",
93788	//       "location": "path",
93789	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
93790	//       "required": true,
93791	//       "type": "string"
93792	//     }
93793	//   },
93794	//   "path": "{project}/global/interconnectLocations/{interconnectLocation}",
93795	//   "response": {
93796	//     "$ref": "InterconnectLocation"
93797	//   },
93798	//   "scopes": [
93799	//     "https://www.googleapis.com/auth/cloud-platform",
93800	//     "https://www.googleapis.com/auth/compute",
93801	//     "https://www.googleapis.com/auth/compute.readonly"
93802	//   ]
93803	// }
93804
93805}
93806
93807// method id "compute.interconnectLocations.list":
93808
93809type InterconnectLocationsListCall struct {
93810	s            *Service
93811	project      string
93812	urlParams_   gensupport.URLParams
93813	ifNoneMatch_ string
93814	ctx_         context.Context
93815	header_      http.Header
93816}
93817
93818// List: Retrieves the list of interconnect locations available to the
93819// specified project. (== suppress_warning http-rest-shadowed ==)
93820func (r *InterconnectLocationsService) List(project string) *InterconnectLocationsListCall {
93821	c := &InterconnectLocationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
93822	c.project = project
93823	return c
93824}
93825
93826// Filter sets the optional parameter "filter": A filter expression that
93827// filters resources listed in the response. The expression must specify
93828// the field name, a comparison operator, and the value that you want to
93829// use for filtering. The value must be a string, a number, or a
93830// boolean. The comparison operator must be either =, !=, >, or <.
93831//
93832// For example, if you are filtering Compute Engine instances, you can
93833// exclude instances named example-instance by specifying name !=
93834// example-instance.
93835//
93836// You can also filter nested fields. For example, you could specify
93837// scheduling.automaticRestart = false to include instances only if they
93838// are not scheduled for automatic restarts. You can use filtering on
93839// nested fields to filter based on resource labels.
93840//
93841// To filter on multiple expressions, provide each separate expression
93842// within parentheses. For example, (scheduling.automaticRestart = true)
93843// (cpuPlatform = "Intel Skylake"). By default, each expression is an
93844// AND expression. However, you can include AND and OR expressions
93845// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
93846// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
93847// true).
93848func (c *InterconnectLocationsListCall) Filter(filter string) *InterconnectLocationsListCall {
93849	c.urlParams_.Set("filter", filter)
93850	return c
93851}
93852
93853// MaxResults sets the optional parameter "maxResults": The maximum
93854// number of results per page that should be returned. If the number of
93855// available results is larger than maxResults, Compute Engine returns a
93856// nextPageToken that can be used to get the next page of results in
93857// subsequent list requests. Acceptable values are 0 to 500, inclusive.
93858// (Default: 500)
93859func (c *InterconnectLocationsListCall) MaxResults(maxResults int64) *InterconnectLocationsListCall {
93860	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
93861	return c
93862}
93863
93864// OrderBy sets the optional parameter "orderBy": Sorts list results by
93865// a certain order. By default, results are returned in alphanumerical
93866// order based on the resource name.
93867//
93868// You can also sort results in descending order based on the creation
93869// timestamp using orderBy="creationTimestamp desc". This sorts results
93870// based on the creationTimestamp field in reverse chronological order
93871// (newest result first). Use this to sort resources like operations so
93872// that the newest operation is returned first.
93873//
93874// Currently, only sorting by name or creationTimestamp desc is
93875// supported.
93876func (c *InterconnectLocationsListCall) OrderBy(orderBy string) *InterconnectLocationsListCall {
93877	c.urlParams_.Set("orderBy", orderBy)
93878	return c
93879}
93880
93881// PageToken sets the optional parameter "pageToken": Specifies a page
93882// token to use. Set pageToken to the nextPageToken returned by a
93883// previous list request to get the next page of results.
93884func (c *InterconnectLocationsListCall) PageToken(pageToken string) *InterconnectLocationsListCall {
93885	c.urlParams_.Set("pageToken", pageToken)
93886	return c
93887}
93888
93889// Fields allows partial responses to be retrieved. See
93890// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
93891// for more information.
93892func (c *InterconnectLocationsListCall) Fields(s ...googleapi.Field) *InterconnectLocationsListCall {
93893	c.urlParams_.Set("fields", googleapi.CombineFields(s))
93894	return c
93895}
93896
93897// IfNoneMatch sets the optional parameter which makes the operation
93898// fail if the object's ETag matches the given value. This is useful for
93899// getting updates only after the object has changed since the last
93900// request. Use googleapi.IsNotModified to check whether the response
93901// error from Do is the result of In-None-Match.
93902func (c *InterconnectLocationsListCall) IfNoneMatch(entityTag string) *InterconnectLocationsListCall {
93903	c.ifNoneMatch_ = entityTag
93904	return c
93905}
93906
93907// Context sets the context to be used in this call's Do method. Any
93908// pending HTTP request will be aborted if the provided context is
93909// canceled.
93910func (c *InterconnectLocationsListCall) Context(ctx context.Context) *InterconnectLocationsListCall {
93911	c.ctx_ = ctx
93912	return c
93913}
93914
93915// Header returns an http.Header that can be modified by the caller to
93916// add HTTP headers to the request.
93917func (c *InterconnectLocationsListCall) Header() http.Header {
93918	if c.header_ == nil {
93919		c.header_ = make(http.Header)
93920	}
93921	return c.header_
93922}
93923
93924func (c *InterconnectLocationsListCall) doRequest(alt string) (*http.Response, error) {
93925	reqHeaders := make(http.Header)
93926	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
93927	for k, v := range c.header_ {
93928		reqHeaders[k] = v
93929	}
93930	reqHeaders.Set("User-Agent", c.s.userAgent())
93931	if c.ifNoneMatch_ != "" {
93932		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
93933	}
93934	var body io.Reader = nil
93935	c.urlParams_.Set("alt", alt)
93936	c.urlParams_.Set("prettyPrint", "false")
93937	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/interconnectLocations")
93938	urls += "?" + c.urlParams_.Encode()
93939	req, err := http.NewRequest("GET", urls, body)
93940	if err != nil {
93941		return nil, err
93942	}
93943	req.Header = reqHeaders
93944	googleapi.Expand(req.URL, map[string]string{
93945		"project": c.project,
93946	})
93947	return gensupport.SendRequest(c.ctx_, c.s.client, req)
93948}
93949
93950// Do executes the "compute.interconnectLocations.list" call.
93951// Exactly one of *InterconnectLocationList or error will be non-nil.
93952// Any non-2xx status code is an error. Response headers are in either
93953// *InterconnectLocationList.ServerResponse.Header or (if a response was
93954// returned at all) in error.(*googleapi.Error).Header. Use
93955// googleapi.IsNotModified to check whether the returned error was
93956// because http.StatusNotModified was returned.
93957func (c *InterconnectLocationsListCall) Do(opts ...googleapi.CallOption) (*InterconnectLocationList, error) {
93958	gensupport.SetOptions(c.urlParams_, opts...)
93959	res, err := c.doRequest("json")
93960	if res != nil && res.StatusCode == http.StatusNotModified {
93961		if res.Body != nil {
93962			res.Body.Close()
93963		}
93964		return nil, &googleapi.Error{
93965			Code:   res.StatusCode,
93966			Header: res.Header,
93967		}
93968	}
93969	if err != nil {
93970		return nil, err
93971	}
93972	defer googleapi.CloseBody(res)
93973	if err := googleapi.CheckResponse(res); err != nil {
93974		return nil, err
93975	}
93976	ret := &InterconnectLocationList{
93977		ServerResponse: googleapi.ServerResponse{
93978			Header:         res.Header,
93979			HTTPStatusCode: res.StatusCode,
93980		},
93981	}
93982	target := &ret
93983	if err := gensupport.DecodeResponse(target, res); err != nil {
93984		return nil, err
93985	}
93986	return ret, nil
93987	// {
93988	//   "description": "Retrieves the list of interconnect locations available to the specified project. (== suppress_warning http-rest-shadowed ==)",
93989	//   "httpMethod": "GET",
93990	//   "id": "compute.interconnectLocations.list",
93991	//   "parameterOrder": [
93992	//     "project"
93993	//   ],
93994	//   "parameters": {
93995	//     "filter": {
93996	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
93997	//       "location": "query",
93998	//       "type": "string"
93999	//     },
94000	//     "maxResults": {
94001	//       "default": "500",
94002	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
94003	//       "format": "uint32",
94004	//       "location": "query",
94005	//       "minimum": "0",
94006	//       "type": "integer"
94007	//     },
94008	//     "orderBy": {
94009	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
94010	//       "location": "query",
94011	//       "type": "string"
94012	//     },
94013	//     "pageToken": {
94014	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
94015	//       "location": "query",
94016	//       "type": "string"
94017	//     },
94018	//     "project": {
94019	//       "description": "Project ID for this request.",
94020	//       "location": "path",
94021	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
94022	//       "required": true,
94023	//       "type": "string"
94024	//     }
94025	//   },
94026	//   "path": "{project}/global/interconnectLocations",
94027	//   "response": {
94028	//     "$ref": "InterconnectLocationList"
94029	//   },
94030	//   "scopes": [
94031	//     "https://www.googleapis.com/auth/cloud-platform",
94032	//     "https://www.googleapis.com/auth/compute",
94033	//     "https://www.googleapis.com/auth/compute.readonly"
94034	//   ]
94035	// }
94036
94037}
94038
94039// Pages invokes f for each page of results.
94040// A non-nil error returned from f will halt the iteration.
94041// The provided context supersedes any context provided to the Context method.
94042func (c *InterconnectLocationsListCall) Pages(ctx context.Context, f func(*InterconnectLocationList) error) error {
94043	c.ctx_ = ctx
94044	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
94045	for {
94046		x, err := c.Do()
94047		if err != nil {
94048			return err
94049		}
94050		if err := f(x); err != nil {
94051			return err
94052		}
94053		if x.NextPageToken == "" {
94054			return nil
94055		}
94056		c.PageToken(x.NextPageToken)
94057	}
94058}
94059
94060// method id "compute.interconnectLocations.testIamPermissions":
94061
94062type InterconnectLocationsTestIamPermissionsCall struct {
94063	s                      *Service
94064	project                string
94065	resource               string
94066	testpermissionsrequest *TestPermissionsRequest
94067	urlParams_             gensupport.URLParams
94068	ctx_                   context.Context
94069	header_                http.Header
94070}
94071
94072// TestIamPermissions: Returns permissions that a caller has on the
94073// specified resource. (== suppress_warning http-rest-shadowed ==)
94074func (r *InterconnectLocationsService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *InterconnectLocationsTestIamPermissionsCall {
94075	c := &InterconnectLocationsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
94076	c.project = project
94077	c.resource = resource
94078	c.testpermissionsrequest = testpermissionsrequest
94079	return c
94080}
94081
94082// Fields allows partial responses to be retrieved. See
94083// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
94084// for more information.
94085func (c *InterconnectLocationsTestIamPermissionsCall) Fields(s ...googleapi.Field) *InterconnectLocationsTestIamPermissionsCall {
94086	c.urlParams_.Set("fields", googleapi.CombineFields(s))
94087	return c
94088}
94089
94090// Context sets the context to be used in this call's Do method. Any
94091// pending HTTP request will be aborted if the provided context is
94092// canceled.
94093func (c *InterconnectLocationsTestIamPermissionsCall) Context(ctx context.Context) *InterconnectLocationsTestIamPermissionsCall {
94094	c.ctx_ = ctx
94095	return c
94096}
94097
94098// Header returns an http.Header that can be modified by the caller to
94099// add HTTP headers to the request.
94100func (c *InterconnectLocationsTestIamPermissionsCall) Header() http.Header {
94101	if c.header_ == nil {
94102		c.header_ = make(http.Header)
94103	}
94104	return c.header_
94105}
94106
94107func (c *InterconnectLocationsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
94108	reqHeaders := make(http.Header)
94109	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
94110	for k, v := range c.header_ {
94111		reqHeaders[k] = v
94112	}
94113	reqHeaders.Set("User-Agent", c.s.userAgent())
94114	var body io.Reader = nil
94115	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
94116	if err != nil {
94117		return nil, err
94118	}
94119	reqHeaders.Set("Content-Type", "application/json")
94120	c.urlParams_.Set("alt", alt)
94121	c.urlParams_.Set("prettyPrint", "false")
94122	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/interconnectLocations/{resource}/testIamPermissions")
94123	urls += "?" + c.urlParams_.Encode()
94124	req, err := http.NewRequest("POST", urls, body)
94125	if err != nil {
94126		return nil, err
94127	}
94128	req.Header = reqHeaders
94129	googleapi.Expand(req.URL, map[string]string{
94130		"project":  c.project,
94131		"resource": c.resource,
94132	})
94133	return gensupport.SendRequest(c.ctx_, c.s.client, req)
94134}
94135
94136// Do executes the "compute.interconnectLocations.testIamPermissions" call.
94137// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
94138// non-2xx status code is an error. Response headers are in either
94139// *TestPermissionsResponse.ServerResponse.Header or (if a response was
94140// returned at all) in error.(*googleapi.Error).Header. Use
94141// googleapi.IsNotModified to check whether the returned error was
94142// because http.StatusNotModified was returned.
94143func (c *InterconnectLocationsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
94144	gensupport.SetOptions(c.urlParams_, opts...)
94145	res, err := c.doRequest("json")
94146	if res != nil && res.StatusCode == http.StatusNotModified {
94147		if res.Body != nil {
94148			res.Body.Close()
94149		}
94150		return nil, &googleapi.Error{
94151			Code:   res.StatusCode,
94152			Header: res.Header,
94153		}
94154	}
94155	if err != nil {
94156		return nil, err
94157	}
94158	defer googleapi.CloseBody(res)
94159	if err := googleapi.CheckResponse(res); err != nil {
94160		return nil, err
94161	}
94162	ret := &TestPermissionsResponse{
94163		ServerResponse: googleapi.ServerResponse{
94164			Header:         res.Header,
94165			HTTPStatusCode: res.StatusCode,
94166		},
94167	}
94168	target := &ret
94169	if err := gensupport.DecodeResponse(target, res); err != nil {
94170		return nil, err
94171	}
94172	return ret, nil
94173	// {
94174	//   "description": "Returns permissions that a caller has on the specified resource. (== suppress_warning http-rest-shadowed ==)",
94175	//   "httpMethod": "POST",
94176	//   "id": "compute.interconnectLocations.testIamPermissions",
94177	//   "parameterOrder": [
94178	//     "project",
94179	//     "resource"
94180	//   ],
94181	//   "parameters": {
94182	//     "project": {
94183	//       "description": "Project ID for this request.",
94184	//       "location": "path",
94185	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
94186	//       "required": true,
94187	//       "type": "string"
94188	//     },
94189	//     "resource": {
94190	//       "description": "Name or id of the resource for this request.",
94191	//       "location": "path",
94192	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
94193	//       "required": true,
94194	//       "type": "string"
94195	//     }
94196	//   },
94197	//   "path": "{project}/global/interconnectLocations/{resource}/testIamPermissions",
94198	//   "request": {
94199	//     "$ref": "TestPermissionsRequest"
94200	//   },
94201	//   "response": {
94202	//     "$ref": "TestPermissionsResponse"
94203	//   },
94204	//   "scopes": [
94205	//     "https://www.googleapis.com/auth/cloud-platform",
94206	//     "https://www.googleapis.com/auth/compute",
94207	//     "https://www.googleapis.com/auth/compute.readonly"
94208	//   ]
94209	// }
94210
94211}
94212
94213// method id "compute.interconnects.delete":
94214
94215type InterconnectsDeleteCall struct {
94216	s            *Service
94217	project      string
94218	interconnect string
94219	urlParams_   gensupport.URLParams
94220	ctx_         context.Context
94221	header_      http.Header
94222}
94223
94224// Delete: Deletes the specified interconnect. (== suppress_warning
94225// http-rest-shadowed ==)
94226func (r *InterconnectsService) Delete(project string, interconnect string) *InterconnectsDeleteCall {
94227	c := &InterconnectsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
94228	c.project = project
94229	c.interconnect = interconnect
94230	return c
94231}
94232
94233// RequestId sets the optional parameter "requestId": An optional
94234// request ID to identify requests. Specify a unique request ID so that
94235// if you must retry your request, the server will know to ignore the
94236// request if it has already been completed.
94237//
94238// For example, consider a situation where you make an initial request
94239// and the request times out. If you make the request again with the
94240// same request ID, the server can check if original operation with the
94241// same request ID was received, and if so, will ignore the second
94242// request. This prevents clients from accidentally creating duplicate
94243// commitments.
94244//
94245// The request ID must be a valid UUID with the exception that zero UUID
94246// is not supported (00000000-0000-0000-0000-000000000000).
94247func (c *InterconnectsDeleteCall) RequestId(requestId string) *InterconnectsDeleteCall {
94248	c.urlParams_.Set("requestId", requestId)
94249	return c
94250}
94251
94252// Fields allows partial responses to be retrieved. See
94253// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
94254// for more information.
94255func (c *InterconnectsDeleteCall) Fields(s ...googleapi.Field) *InterconnectsDeleteCall {
94256	c.urlParams_.Set("fields", googleapi.CombineFields(s))
94257	return c
94258}
94259
94260// Context sets the context to be used in this call's Do method. Any
94261// pending HTTP request will be aborted if the provided context is
94262// canceled.
94263func (c *InterconnectsDeleteCall) Context(ctx context.Context) *InterconnectsDeleteCall {
94264	c.ctx_ = ctx
94265	return c
94266}
94267
94268// Header returns an http.Header that can be modified by the caller to
94269// add HTTP headers to the request.
94270func (c *InterconnectsDeleteCall) Header() http.Header {
94271	if c.header_ == nil {
94272		c.header_ = make(http.Header)
94273	}
94274	return c.header_
94275}
94276
94277func (c *InterconnectsDeleteCall) doRequest(alt string) (*http.Response, error) {
94278	reqHeaders := make(http.Header)
94279	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
94280	for k, v := range c.header_ {
94281		reqHeaders[k] = v
94282	}
94283	reqHeaders.Set("User-Agent", c.s.userAgent())
94284	var body io.Reader = nil
94285	c.urlParams_.Set("alt", alt)
94286	c.urlParams_.Set("prettyPrint", "false")
94287	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/interconnects/{interconnect}")
94288	urls += "?" + c.urlParams_.Encode()
94289	req, err := http.NewRequest("DELETE", urls, body)
94290	if err != nil {
94291		return nil, err
94292	}
94293	req.Header = reqHeaders
94294	googleapi.Expand(req.URL, map[string]string{
94295		"project":      c.project,
94296		"interconnect": c.interconnect,
94297	})
94298	return gensupport.SendRequest(c.ctx_, c.s.client, req)
94299}
94300
94301// Do executes the "compute.interconnects.delete" call.
94302// Exactly one of *Operation or error will be non-nil. Any non-2xx
94303// status code is an error. Response headers are in either
94304// *Operation.ServerResponse.Header or (if a response was returned at
94305// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
94306// to check whether the returned error was because
94307// http.StatusNotModified was returned.
94308func (c *InterconnectsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
94309	gensupport.SetOptions(c.urlParams_, opts...)
94310	res, err := c.doRequest("json")
94311	if res != nil && res.StatusCode == http.StatusNotModified {
94312		if res.Body != nil {
94313			res.Body.Close()
94314		}
94315		return nil, &googleapi.Error{
94316			Code:   res.StatusCode,
94317			Header: res.Header,
94318		}
94319	}
94320	if err != nil {
94321		return nil, err
94322	}
94323	defer googleapi.CloseBody(res)
94324	if err := googleapi.CheckResponse(res); err != nil {
94325		return nil, err
94326	}
94327	ret := &Operation{
94328		ServerResponse: googleapi.ServerResponse{
94329			Header:         res.Header,
94330			HTTPStatusCode: res.StatusCode,
94331		},
94332	}
94333	target := &ret
94334	if err := gensupport.DecodeResponse(target, res); err != nil {
94335		return nil, err
94336	}
94337	return ret, nil
94338	// {
94339	//   "description": "Deletes the specified interconnect. (== suppress_warning http-rest-shadowed ==)",
94340	//   "httpMethod": "DELETE",
94341	//   "id": "compute.interconnects.delete",
94342	//   "parameterOrder": [
94343	//     "project",
94344	//     "interconnect"
94345	//   ],
94346	//   "parameters": {
94347	//     "interconnect": {
94348	//       "description": "Name of the interconnect to delete.",
94349	//       "location": "path",
94350	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
94351	//       "required": true,
94352	//       "type": "string"
94353	//     },
94354	//     "project": {
94355	//       "description": "Project ID for this request.",
94356	//       "location": "path",
94357	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
94358	//       "required": true,
94359	//       "type": "string"
94360	//     },
94361	//     "requestId": {
94362	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
94363	//       "location": "query",
94364	//       "type": "string"
94365	//     }
94366	//   },
94367	//   "path": "{project}/global/interconnects/{interconnect}",
94368	//   "response": {
94369	//     "$ref": "Operation"
94370	//   },
94371	//   "scopes": [
94372	//     "https://www.googleapis.com/auth/cloud-platform",
94373	//     "https://www.googleapis.com/auth/compute"
94374	//   ]
94375	// }
94376
94377}
94378
94379// method id "compute.interconnects.get":
94380
94381type InterconnectsGetCall struct {
94382	s            *Service
94383	project      string
94384	interconnect string
94385	urlParams_   gensupport.URLParams
94386	ifNoneMatch_ string
94387	ctx_         context.Context
94388	header_      http.Header
94389}
94390
94391// Get: Returns the specified interconnect. Get a list of available
94392// interconnects by making a list() request. (== suppress_warning
94393// http-rest-shadowed ==)
94394func (r *InterconnectsService) Get(project string, interconnect string) *InterconnectsGetCall {
94395	c := &InterconnectsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
94396	c.project = project
94397	c.interconnect = interconnect
94398	return c
94399}
94400
94401// Fields allows partial responses to be retrieved. See
94402// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
94403// for more information.
94404func (c *InterconnectsGetCall) Fields(s ...googleapi.Field) *InterconnectsGetCall {
94405	c.urlParams_.Set("fields", googleapi.CombineFields(s))
94406	return c
94407}
94408
94409// IfNoneMatch sets the optional parameter which makes the operation
94410// fail if the object's ETag matches the given value. This is useful for
94411// getting updates only after the object has changed since the last
94412// request. Use googleapi.IsNotModified to check whether the response
94413// error from Do is the result of In-None-Match.
94414func (c *InterconnectsGetCall) IfNoneMatch(entityTag string) *InterconnectsGetCall {
94415	c.ifNoneMatch_ = entityTag
94416	return c
94417}
94418
94419// Context sets the context to be used in this call's Do method. Any
94420// pending HTTP request will be aborted if the provided context is
94421// canceled.
94422func (c *InterconnectsGetCall) Context(ctx context.Context) *InterconnectsGetCall {
94423	c.ctx_ = ctx
94424	return c
94425}
94426
94427// Header returns an http.Header that can be modified by the caller to
94428// add HTTP headers to the request.
94429func (c *InterconnectsGetCall) Header() http.Header {
94430	if c.header_ == nil {
94431		c.header_ = make(http.Header)
94432	}
94433	return c.header_
94434}
94435
94436func (c *InterconnectsGetCall) doRequest(alt string) (*http.Response, error) {
94437	reqHeaders := make(http.Header)
94438	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
94439	for k, v := range c.header_ {
94440		reqHeaders[k] = v
94441	}
94442	reqHeaders.Set("User-Agent", c.s.userAgent())
94443	if c.ifNoneMatch_ != "" {
94444		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
94445	}
94446	var body io.Reader = nil
94447	c.urlParams_.Set("alt", alt)
94448	c.urlParams_.Set("prettyPrint", "false")
94449	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/interconnects/{interconnect}")
94450	urls += "?" + c.urlParams_.Encode()
94451	req, err := http.NewRequest("GET", urls, body)
94452	if err != nil {
94453		return nil, err
94454	}
94455	req.Header = reqHeaders
94456	googleapi.Expand(req.URL, map[string]string{
94457		"project":      c.project,
94458		"interconnect": c.interconnect,
94459	})
94460	return gensupport.SendRequest(c.ctx_, c.s.client, req)
94461}
94462
94463// Do executes the "compute.interconnects.get" call.
94464// Exactly one of *Interconnect or error will be non-nil. Any non-2xx
94465// status code is an error. Response headers are in either
94466// *Interconnect.ServerResponse.Header or (if a response was returned at
94467// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
94468// to check whether the returned error was because
94469// http.StatusNotModified was returned.
94470func (c *InterconnectsGetCall) Do(opts ...googleapi.CallOption) (*Interconnect, error) {
94471	gensupport.SetOptions(c.urlParams_, opts...)
94472	res, err := c.doRequest("json")
94473	if res != nil && res.StatusCode == http.StatusNotModified {
94474		if res.Body != nil {
94475			res.Body.Close()
94476		}
94477		return nil, &googleapi.Error{
94478			Code:   res.StatusCode,
94479			Header: res.Header,
94480		}
94481	}
94482	if err != nil {
94483		return nil, err
94484	}
94485	defer googleapi.CloseBody(res)
94486	if err := googleapi.CheckResponse(res); err != nil {
94487		return nil, err
94488	}
94489	ret := &Interconnect{
94490		ServerResponse: googleapi.ServerResponse{
94491			Header:         res.Header,
94492			HTTPStatusCode: res.StatusCode,
94493		},
94494	}
94495	target := &ret
94496	if err := gensupport.DecodeResponse(target, res); err != nil {
94497		return nil, err
94498	}
94499	return ret, nil
94500	// {
94501	//   "description": "Returns the specified interconnect. Get a list of available interconnects by making a list() request. (== suppress_warning http-rest-shadowed ==)",
94502	//   "httpMethod": "GET",
94503	//   "id": "compute.interconnects.get",
94504	//   "parameterOrder": [
94505	//     "project",
94506	//     "interconnect"
94507	//   ],
94508	//   "parameters": {
94509	//     "interconnect": {
94510	//       "description": "Name of the interconnect to return.",
94511	//       "location": "path",
94512	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
94513	//       "required": true,
94514	//       "type": "string"
94515	//     },
94516	//     "project": {
94517	//       "description": "Project ID for this request.",
94518	//       "location": "path",
94519	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
94520	//       "required": true,
94521	//       "type": "string"
94522	//     }
94523	//   },
94524	//   "path": "{project}/global/interconnects/{interconnect}",
94525	//   "response": {
94526	//     "$ref": "Interconnect"
94527	//   },
94528	//   "scopes": [
94529	//     "https://www.googleapis.com/auth/cloud-platform",
94530	//     "https://www.googleapis.com/auth/compute",
94531	//     "https://www.googleapis.com/auth/compute.readonly"
94532	//   ]
94533	// }
94534
94535}
94536
94537// method id "compute.interconnects.getDiagnostics":
94538
94539type InterconnectsGetDiagnosticsCall struct {
94540	s            *Service
94541	project      string
94542	interconnect string
94543	urlParams_   gensupport.URLParams
94544	ifNoneMatch_ string
94545	ctx_         context.Context
94546	header_      http.Header
94547}
94548
94549// GetDiagnostics: Returns the interconnectDiagnostics for the specified
94550// interconnect. (== suppress_warning http-rest-shadowed ==)
94551func (r *InterconnectsService) GetDiagnostics(project string, interconnect string) *InterconnectsGetDiagnosticsCall {
94552	c := &InterconnectsGetDiagnosticsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
94553	c.project = project
94554	c.interconnect = interconnect
94555	return c
94556}
94557
94558// Fields allows partial responses to be retrieved. See
94559// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
94560// for more information.
94561func (c *InterconnectsGetDiagnosticsCall) Fields(s ...googleapi.Field) *InterconnectsGetDiagnosticsCall {
94562	c.urlParams_.Set("fields", googleapi.CombineFields(s))
94563	return c
94564}
94565
94566// IfNoneMatch sets the optional parameter which makes the operation
94567// fail if the object's ETag matches the given value. This is useful for
94568// getting updates only after the object has changed since the last
94569// request. Use googleapi.IsNotModified to check whether the response
94570// error from Do is the result of In-None-Match.
94571func (c *InterconnectsGetDiagnosticsCall) IfNoneMatch(entityTag string) *InterconnectsGetDiagnosticsCall {
94572	c.ifNoneMatch_ = entityTag
94573	return c
94574}
94575
94576// Context sets the context to be used in this call's Do method. Any
94577// pending HTTP request will be aborted if the provided context is
94578// canceled.
94579func (c *InterconnectsGetDiagnosticsCall) Context(ctx context.Context) *InterconnectsGetDiagnosticsCall {
94580	c.ctx_ = ctx
94581	return c
94582}
94583
94584// Header returns an http.Header that can be modified by the caller to
94585// add HTTP headers to the request.
94586func (c *InterconnectsGetDiagnosticsCall) Header() http.Header {
94587	if c.header_ == nil {
94588		c.header_ = make(http.Header)
94589	}
94590	return c.header_
94591}
94592
94593func (c *InterconnectsGetDiagnosticsCall) doRequest(alt string) (*http.Response, error) {
94594	reqHeaders := make(http.Header)
94595	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
94596	for k, v := range c.header_ {
94597		reqHeaders[k] = v
94598	}
94599	reqHeaders.Set("User-Agent", c.s.userAgent())
94600	if c.ifNoneMatch_ != "" {
94601		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
94602	}
94603	var body io.Reader = nil
94604	c.urlParams_.Set("alt", alt)
94605	c.urlParams_.Set("prettyPrint", "false")
94606	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/interconnects/{interconnect}/getDiagnostics")
94607	urls += "?" + c.urlParams_.Encode()
94608	req, err := http.NewRequest("GET", urls, body)
94609	if err != nil {
94610		return nil, err
94611	}
94612	req.Header = reqHeaders
94613	googleapi.Expand(req.URL, map[string]string{
94614		"project":      c.project,
94615		"interconnect": c.interconnect,
94616	})
94617	return gensupport.SendRequest(c.ctx_, c.s.client, req)
94618}
94619
94620// Do executes the "compute.interconnects.getDiagnostics" call.
94621// Exactly one of *InterconnectsGetDiagnosticsResponse or error will be
94622// non-nil. Any non-2xx status code is an error. Response headers are in
94623// either *InterconnectsGetDiagnosticsResponse.ServerResponse.Header or
94624// (if a response was returned at all) in
94625// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
94626// whether the returned error was because http.StatusNotModified was
94627// returned.
94628func (c *InterconnectsGetDiagnosticsCall) Do(opts ...googleapi.CallOption) (*InterconnectsGetDiagnosticsResponse, error) {
94629	gensupport.SetOptions(c.urlParams_, opts...)
94630	res, err := c.doRequest("json")
94631	if res != nil && res.StatusCode == http.StatusNotModified {
94632		if res.Body != nil {
94633			res.Body.Close()
94634		}
94635		return nil, &googleapi.Error{
94636			Code:   res.StatusCode,
94637			Header: res.Header,
94638		}
94639	}
94640	if err != nil {
94641		return nil, err
94642	}
94643	defer googleapi.CloseBody(res)
94644	if err := googleapi.CheckResponse(res); err != nil {
94645		return nil, err
94646	}
94647	ret := &InterconnectsGetDiagnosticsResponse{
94648		ServerResponse: googleapi.ServerResponse{
94649			Header:         res.Header,
94650			HTTPStatusCode: res.StatusCode,
94651		},
94652	}
94653	target := &ret
94654	if err := gensupport.DecodeResponse(target, res); err != nil {
94655		return nil, err
94656	}
94657	return ret, nil
94658	// {
94659	//   "description": "Returns the interconnectDiagnostics for the specified interconnect. (== suppress_warning http-rest-shadowed ==)",
94660	//   "httpMethod": "GET",
94661	//   "id": "compute.interconnects.getDiagnostics",
94662	//   "parameterOrder": [
94663	//     "project",
94664	//     "interconnect"
94665	//   ],
94666	//   "parameters": {
94667	//     "interconnect": {
94668	//       "description": "Name of the interconnect resource to query.",
94669	//       "location": "path",
94670	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
94671	//       "required": true,
94672	//       "type": "string"
94673	//     },
94674	//     "project": {
94675	//       "description": "Project ID for this request.",
94676	//       "location": "path",
94677	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
94678	//       "required": true,
94679	//       "type": "string"
94680	//     }
94681	//   },
94682	//   "path": "{project}/global/interconnects/{interconnect}/getDiagnostics",
94683	//   "response": {
94684	//     "$ref": "InterconnectsGetDiagnosticsResponse"
94685	//   },
94686	//   "scopes": [
94687	//     "https://www.googleapis.com/auth/cloud-platform",
94688	//     "https://www.googleapis.com/auth/compute",
94689	//     "https://www.googleapis.com/auth/compute.readonly"
94690	//   ]
94691	// }
94692
94693}
94694
94695// method id "compute.interconnects.getIamPolicy":
94696
94697type InterconnectsGetIamPolicyCall struct {
94698	s            *Service
94699	project      string
94700	resource     string
94701	urlParams_   gensupport.URLParams
94702	ifNoneMatch_ string
94703	ctx_         context.Context
94704	header_      http.Header
94705}
94706
94707// GetIamPolicy: Gets the access control policy for a resource. May be
94708// empty if no such policy or resource exists. (== suppress_warning
94709// http-rest-shadowed ==)
94710func (r *InterconnectsService) GetIamPolicy(project string, resource string) *InterconnectsGetIamPolicyCall {
94711	c := &InterconnectsGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
94712	c.project = project
94713	c.resource = resource
94714	return c
94715}
94716
94717// OptionsRequestedPolicyVersion sets the optional parameter
94718// "optionsRequestedPolicyVersion": Requested IAM Policy version.
94719func (c *InterconnectsGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *InterconnectsGetIamPolicyCall {
94720	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
94721	return c
94722}
94723
94724// Fields allows partial responses to be retrieved. See
94725// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
94726// for more information.
94727func (c *InterconnectsGetIamPolicyCall) Fields(s ...googleapi.Field) *InterconnectsGetIamPolicyCall {
94728	c.urlParams_.Set("fields", googleapi.CombineFields(s))
94729	return c
94730}
94731
94732// IfNoneMatch sets the optional parameter which makes the operation
94733// fail if the object's ETag matches the given value. This is useful for
94734// getting updates only after the object has changed since the last
94735// request. Use googleapi.IsNotModified to check whether the response
94736// error from Do is the result of In-None-Match.
94737func (c *InterconnectsGetIamPolicyCall) IfNoneMatch(entityTag string) *InterconnectsGetIamPolicyCall {
94738	c.ifNoneMatch_ = entityTag
94739	return c
94740}
94741
94742// Context sets the context to be used in this call's Do method. Any
94743// pending HTTP request will be aborted if the provided context is
94744// canceled.
94745func (c *InterconnectsGetIamPolicyCall) Context(ctx context.Context) *InterconnectsGetIamPolicyCall {
94746	c.ctx_ = ctx
94747	return c
94748}
94749
94750// Header returns an http.Header that can be modified by the caller to
94751// add HTTP headers to the request.
94752func (c *InterconnectsGetIamPolicyCall) Header() http.Header {
94753	if c.header_ == nil {
94754		c.header_ = make(http.Header)
94755	}
94756	return c.header_
94757}
94758
94759func (c *InterconnectsGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
94760	reqHeaders := make(http.Header)
94761	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
94762	for k, v := range c.header_ {
94763		reqHeaders[k] = v
94764	}
94765	reqHeaders.Set("User-Agent", c.s.userAgent())
94766	if c.ifNoneMatch_ != "" {
94767		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
94768	}
94769	var body io.Reader = nil
94770	c.urlParams_.Set("alt", alt)
94771	c.urlParams_.Set("prettyPrint", "false")
94772	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/interconnects/{resource}/getIamPolicy")
94773	urls += "?" + c.urlParams_.Encode()
94774	req, err := http.NewRequest("GET", urls, body)
94775	if err != nil {
94776		return nil, err
94777	}
94778	req.Header = reqHeaders
94779	googleapi.Expand(req.URL, map[string]string{
94780		"project":  c.project,
94781		"resource": c.resource,
94782	})
94783	return gensupport.SendRequest(c.ctx_, c.s.client, req)
94784}
94785
94786// Do executes the "compute.interconnects.getIamPolicy" call.
94787// Exactly one of *Policy or error will be non-nil. Any non-2xx status
94788// code is an error. Response headers are in either
94789// *Policy.ServerResponse.Header or (if a response was returned at all)
94790// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
94791// check whether the returned error was because http.StatusNotModified
94792// was returned.
94793func (c *InterconnectsGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
94794	gensupport.SetOptions(c.urlParams_, opts...)
94795	res, err := c.doRequest("json")
94796	if res != nil && res.StatusCode == http.StatusNotModified {
94797		if res.Body != nil {
94798			res.Body.Close()
94799		}
94800		return nil, &googleapi.Error{
94801			Code:   res.StatusCode,
94802			Header: res.Header,
94803		}
94804	}
94805	if err != nil {
94806		return nil, err
94807	}
94808	defer googleapi.CloseBody(res)
94809	if err := googleapi.CheckResponse(res); err != nil {
94810		return nil, err
94811	}
94812	ret := &Policy{
94813		ServerResponse: googleapi.ServerResponse{
94814			Header:         res.Header,
94815			HTTPStatusCode: res.StatusCode,
94816		},
94817	}
94818	target := &ret
94819	if err := gensupport.DecodeResponse(target, res); err != nil {
94820		return nil, err
94821	}
94822	return ret, nil
94823	// {
94824	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists. (== suppress_warning http-rest-shadowed ==)",
94825	//   "httpMethod": "GET",
94826	//   "id": "compute.interconnects.getIamPolicy",
94827	//   "parameterOrder": [
94828	//     "project",
94829	//     "resource"
94830	//   ],
94831	//   "parameters": {
94832	//     "optionsRequestedPolicyVersion": {
94833	//       "description": "Requested IAM Policy version.",
94834	//       "format": "int32",
94835	//       "location": "query",
94836	//       "type": "integer"
94837	//     },
94838	//     "project": {
94839	//       "description": "Project ID for this request.",
94840	//       "location": "path",
94841	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
94842	//       "required": true,
94843	//       "type": "string"
94844	//     },
94845	//     "resource": {
94846	//       "description": "Name or id of the resource for this request.",
94847	//       "location": "path",
94848	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
94849	//       "required": true,
94850	//       "type": "string"
94851	//     }
94852	//   },
94853	//   "path": "{project}/global/interconnects/{resource}/getIamPolicy",
94854	//   "response": {
94855	//     "$ref": "Policy"
94856	//   },
94857	//   "scopes": [
94858	//     "https://www.googleapis.com/auth/cloud-platform",
94859	//     "https://www.googleapis.com/auth/compute",
94860	//     "https://www.googleapis.com/auth/compute.readonly"
94861	//   ]
94862	// }
94863
94864}
94865
94866// method id "compute.interconnects.insert":
94867
94868type InterconnectsInsertCall struct {
94869	s            *Service
94870	project      string
94871	interconnect *Interconnect
94872	urlParams_   gensupport.URLParams
94873	ctx_         context.Context
94874	header_      http.Header
94875}
94876
94877// Insert: Creates a Interconnect in the specified project using the
94878// data included in the request. (== suppress_warning http-rest-shadowed
94879// ==)
94880func (r *InterconnectsService) Insert(project string, interconnect *Interconnect) *InterconnectsInsertCall {
94881	c := &InterconnectsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
94882	c.project = project
94883	c.interconnect = interconnect
94884	return c
94885}
94886
94887// RequestId sets the optional parameter "requestId": An optional
94888// request ID to identify requests. Specify a unique request ID so that
94889// if you must retry your request, the server will know to ignore the
94890// request if it has already been completed.
94891//
94892// For example, consider a situation where you make an initial request
94893// and the request times out. If you make the request again with the
94894// same request ID, the server can check if original operation with the
94895// same request ID was received, and if so, will ignore the second
94896// request. This prevents clients from accidentally creating duplicate
94897// commitments.
94898//
94899// The request ID must be a valid UUID with the exception that zero UUID
94900// is not supported (00000000-0000-0000-0000-000000000000).
94901func (c *InterconnectsInsertCall) RequestId(requestId string) *InterconnectsInsertCall {
94902	c.urlParams_.Set("requestId", requestId)
94903	return c
94904}
94905
94906// Fields allows partial responses to be retrieved. See
94907// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
94908// for more information.
94909func (c *InterconnectsInsertCall) Fields(s ...googleapi.Field) *InterconnectsInsertCall {
94910	c.urlParams_.Set("fields", googleapi.CombineFields(s))
94911	return c
94912}
94913
94914// Context sets the context to be used in this call's Do method. Any
94915// pending HTTP request will be aborted if the provided context is
94916// canceled.
94917func (c *InterconnectsInsertCall) Context(ctx context.Context) *InterconnectsInsertCall {
94918	c.ctx_ = ctx
94919	return c
94920}
94921
94922// Header returns an http.Header that can be modified by the caller to
94923// add HTTP headers to the request.
94924func (c *InterconnectsInsertCall) Header() http.Header {
94925	if c.header_ == nil {
94926		c.header_ = make(http.Header)
94927	}
94928	return c.header_
94929}
94930
94931func (c *InterconnectsInsertCall) doRequest(alt string) (*http.Response, error) {
94932	reqHeaders := make(http.Header)
94933	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
94934	for k, v := range c.header_ {
94935		reqHeaders[k] = v
94936	}
94937	reqHeaders.Set("User-Agent", c.s.userAgent())
94938	var body io.Reader = nil
94939	body, err := googleapi.WithoutDataWrapper.JSONReader(c.interconnect)
94940	if err != nil {
94941		return nil, err
94942	}
94943	reqHeaders.Set("Content-Type", "application/json")
94944	c.urlParams_.Set("alt", alt)
94945	c.urlParams_.Set("prettyPrint", "false")
94946	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/interconnects")
94947	urls += "?" + c.urlParams_.Encode()
94948	req, err := http.NewRequest("POST", urls, body)
94949	if err != nil {
94950		return nil, err
94951	}
94952	req.Header = reqHeaders
94953	googleapi.Expand(req.URL, map[string]string{
94954		"project": c.project,
94955	})
94956	return gensupport.SendRequest(c.ctx_, c.s.client, req)
94957}
94958
94959// Do executes the "compute.interconnects.insert" call.
94960// Exactly one of *Operation or error will be non-nil. Any non-2xx
94961// status code is an error. Response headers are in either
94962// *Operation.ServerResponse.Header or (if a response was returned at
94963// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
94964// to check whether the returned error was because
94965// http.StatusNotModified was returned.
94966func (c *InterconnectsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
94967	gensupport.SetOptions(c.urlParams_, opts...)
94968	res, err := c.doRequest("json")
94969	if res != nil && res.StatusCode == http.StatusNotModified {
94970		if res.Body != nil {
94971			res.Body.Close()
94972		}
94973		return nil, &googleapi.Error{
94974			Code:   res.StatusCode,
94975			Header: res.Header,
94976		}
94977	}
94978	if err != nil {
94979		return nil, err
94980	}
94981	defer googleapi.CloseBody(res)
94982	if err := googleapi.CheckResponse(res); err != nil {
94983		return nil, err
94984	}
94985	ret := &Operation{
94986		ServerResponse: googleapi.ServerResponse{
94987			Header:         res.Header,
94988			HTTPStatusCode: res.StatusCode,
94989		},
94990	}
94991	target := &ret
94992	if err := gensupport.DecodeResponse(target, res); err != nil {
94993		return nil, err
94994	}
94995	return ret, nil
94996	// {
94997	//   "description": "Creates a Interconnect in the specified project using the data included in the request. (== suppress_warning http-rest-shadowed ==)",
94998	//   "httpMethod": "POST",
94999	//   "id": "compute.interconnects.insert",
95000	//   "parameterOrder": [
95001	//     "project"
95002	//   ],
95003	//   "parameters": {
95004	//     "project": {
95005	//       "description": "Project ID for this request.",
95006	//       "location": "path",
95007	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
95008	//       "required": true,
95009	//       "type": "string"
95010	//     },
95011	//     "requestId": {
95012	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
95013	//       "location": "query",
95014	//       "type": "string"
95015	//     }
95016	//   },
95017	//   "path": "{project}/global/interconnects",
95018	//   "request": {
95019	//     "$ref": "Interconnect"
95020	//   },
95021	//   "response": {
95022	//     "$ref": "Operation"
95023	//   },
95024	//   "scopes": [
95025	//     "https://www.googleapis.com/auth/cloud-platform",
95026	//     "https://www.googleapis.com/auth/compute"
95027	//   ]
95028	// }
95029
95030}
95031
95032// method id "compute.interconnects.list":
95033
95034type InterconnectsListCall struct {
95035	s            *Service
95036	project      string
95037	urlParams_   gensupport.URLParams
95038	ifNoneMatch_ string
95039	ctx_         context.Context
95040	header_      http.Header
95041}
95042
95043// List: Retrieves the list of interconnect available to the specified
95044// project. (== suppress_warning http-rest-shadowed ==)
95045func (r *InterconnectsService) List(project string) *InterconnectsListCall {
95046	c := &InterconnectsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
95047	c.project = project
95048	return c
95049}
95050
95051// Filter sets the optional parameter "filter": A filter expression that
95052// filters resources listed in the response. The expression must specify
95053// the field name, a comparison operator, and the value that you want to
95054// use for filtering. The value must be a string, a number, or a
95055// boolean. The comparison operator must be either =, !=, >, or <.
95056//
95057// For example, if you are filtering Compute Engine instances, you can
95058// exclude instances named example-instance by specifying name !=
95059// example-instance.
95060//
95061// You can also filter nested fields. For example, you could specify
95062// scheduling.automaticRestart = false to include instances only if they
95063// are not scheduled for automatic restarts. You can use filtering on
95064// nested fields to filter based on resource labels.
95065//
95066// To filter on multiple expressions, provide each separate expression
95067// within parentheses. For example, (scheduling.automaticRestart = true)
95068// (cpuPlatform = "Intel Skylake"). By default, each expression is an
95069// AND expression. However, you can include AND and OR expressions
95070// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
95071// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
95072// true).
95073func (c *InterconnectsListCall) Filter(filter string) *InterconnectsListCall {
95074	c.urlParams_.Set("filter", filter)
95075	return c
95076}
95077
95078// MaxResults sets the optional parameter "maxResults": The maximum
95079// number of results per page that should be returned. If the number of
95080// available results is larger than maxResults, Compute Engine returns a
95081// nextPageToken that can be used to get the next page of results in
95082// subsequent list requests. Acceptable values are 0 to 500, inclusive.
95083// (Default: 500)
95084func (c *InterconnectsListCall) MaxResults(maxResults int64) *InterconnectsListCall {
95085	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
95086	return c
95087}
95088
95089// OrderBy sets the optional parameter "orderBy": Sorts list results by
95090// a certain order. By default, results are returned in alphanumerical
95091// order based on the resource name.
95092//
95093// You can also sort results in descending order based on the creation
95094// timestamp using orderBy="creationTimestamp desc". This sorts results
95095// based on the creationTimestamp field in reverse chronological order
95096// (newest result first). Use this to sort resources like operations so
95097// that the newest operation is returned first.
95098//
95099// Currently, only sorting by name or creationTimestamp desc is
95100// supported.
95101func (c *InterconnectsListCall) OrderBy(orderBy string) *InterconnectsListCall {
95102	c.urlParams_.Set("orderBy", orderBy)
95103	return c
95104}
95105
95106// PageToken sets the optional parameter "pageToken": Specifies a page
95107// token to use. Set pageToken to the nextPageToken returned by a
95108// previous list request to get the next page of results.
95109func (c *InterconnectsListCall) PageToken(pageToken string) *InterconnectsListCall {
95110	c.urlParams_.Set("pageToken", pageToken)
95111	return c
95112}
95113
95114// Fields allows partial responses to be retrieved. See
95115// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
95116// for more information.
95117func (c *InterconnectsListCall) Fields(s ...googleapi.Field) *InterconnectsListCall {
95118	c.urlParams_.Set("fields", googleapi.CombineFields(s))
95119	return c
95120}
95121
95122// IfNoneMatch sets the optional parameter which makes the operation
95123// fail if the object's ETag matches the given value. This is useful for
95124// getting updates only after the object has changed since the last
95125// request. Use googleapi.IsNotModified to check whether the response
95126// error from Do is the result of In-None-Match.
95127func (c *InterconnectsListCall) IfNoneMatch(entityTag string) *InterconnectsListCall {
95128	c.ifNoneMatch_ = entityTag
95129	return c
95130}
95131
95132// Context sets the context to be used in this call's Do method. Any
95133// pending HTTP request will be aborted if the provided context is
95134// canceled.
95135func (c *InterconnectsListCall) Context(ctx context.Context) *InterconnectsListCall {
95136	c.ctx_ = ctx
95137	return c
95138}
95139
95140// Header returns an http.Header that can be modified by the caller to
95141// add HTTP headers to the request.
95142func (c *InterconnectsListCall) Header() http.Header {
95143	if c.header_ == nil {
95144		c.header_ = make(http.Header)
95145	}
95146	return c.header_
95147}
95148
95149func (c *InterconnectsListCall) doRequest(alt string) (*http.Response, error) {
95150	reqHeaders := make(http.Header)
95151	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
95152	for k, v := range c.header_ {
95153		reqHeaders[k] = v
95154	}
95155	reqHeaders.Set("User-Agent", c.s.userAgent())
95156	if c.ifNoneMatch_ != "" {
95157		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
95158	}
95159	var body io.Reader = nil
95160	c.urlParams_.Set("alt", alt)
95161	c.urlParams_.Set("prettyPrint", "false")
95162	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/interconnects")
95163	urls += "?" + c.urlParams_.Encode()
95164	req, err := http.NewRequest("GET", urls, body)
95165	if err != nil {
95166		return nil, err
95167	}
95168	req.Header = reqHeaders
95169	googleapi.Expand(req.URL, map[string]string{
95170		"project": c.project,
95171	})
95172	return gensupport.SendRequest(c.ctx_, c.s.client, req)
95173}
95174
95175// Do executes the "compute.interconnects.list" call.
95176// Exactly one of *InterconnectList or error will be non-nil. Any
95177// non-2xx status code is an error. Response headers are in either
95178// *InterconnectList.ServerResponse.Header or (if a response was
95179// returned at all) in error.(*googleapi.Error).Header. Use
95180// googleapi.IsNotModified to check whether the returned error was
95181// because http.StatusNotModified was returned.
95182func (c *InterconnectsListCall) Do(opts ...googleapi.CallOption) (*InterconnectList, error) {
95183	gensupport.SetOptions(c.urlParams_, opts...)
95184	res, err := c.doRequest("json")
95185	if res != nil && res.StatusCode == http.StatusNotModified {
95186		if res.Body != nil {
95187			res.Body.Close()
95188		}
95189		return nil, &googleapi.Error{
95190			Code:   res.StatusCode,
95191			Header: res.Header,
95192		}
95193	}
95194	if err != nil {
95195		return nil, err
95196	}
95197	defer googleapi.CloseBody(res)
95198	if err := googleapi.CheckResponse(res); err != nil {
95199		return nil, err
95200	}
95201	ret := &InterconnectList{
95202		ServerResponse: googleapi.ServerResponse{
95203			Header:         res.Header,
95204			HTTPStatusCode: res.StatusCode,
95205		},
95206	}
95207	target := &ret
95208	if err := gensupport.DecodeResponse(target, res); err != nil {
95209		return nil, err
95210	}
95211	return ret, nil
95212	// {
95213	//   "description": "Retrieves the list of interconnect available to the specified project. (== suppress_warning http-rest-shadowed ==)",
95214	//   "httpMethod": "GET",
95215	//   "id": "compute.interconnects.list",
95216	//   "parameterOrder": [
95217	//     "project"
95218	//   ],
95219	//   "parameters": {
95220	//     "filter": {
95221	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
95222	//       "location": "query",
95223	//       "type": "string"
95224	//     },
95225	//     "maxResults": {
95226	//       "default": "500",
95227	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
95228	//       "format": "uint32",
95229	//       "location": "query",
95230	//       "minimum": "0",
95231	//       "type": "integer"
95232	//     },
95233	//     "orderBy": {
95234	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
95235	//       "location": "query",
95236	//       "type": "string"
95237	//     },
95238	//     "pageToken": {
95239	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
95240	//       "location": "query",
95241	//       "type": "string"
95242	//     },
95243	//     "project": {
95244	//       "description": "Project ID for this request.",
95245	//       "location": "path",
95246	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
95247	//       "required": true,
95248	//       "type": "string"
95249	//     }
95250	//   },
95251	//   "path": "{project}/global/interconnects",
95252	//   "response": {
95253	//     "$ref": "InterconnectList"
95254	//   },
95255	//   "scopes": [
95256	//     "https://www.googleapis.com/auth/cloud-platform",
95257	//     "https://www.googleapis.com/auth/compute",
95258	//     "https://www.googleapis.com/auth/compute.readonly"
95259	//   ]
95260	// }
95261
95262}
95263
95264// Pages invokes f for each page of results.
95265// A non-nil error returned from f will halt the iteration.
95266// The provided context supersedes any context provided to the Context method.
95267func (c *InterconnectsListCall) Pages(ctx context.Context, f func(*InterconnectList) error) error {
95268	c.ctx_ = ctx
95269	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
95270	for {
95271		x, err := c.Do()
95272		if err != nil {
95273			return err
95274		}
95275		if err := f(x); err != nil {
95276			return err
95277		}
95278		if x.NextPageToken == "" {
95279			return nil
95280		}
95281		c.PageToken(x.NextPageToken)
95282	}
95283}
95284
95285// method id "compute.interconnects.patch":
95286
95287type InterconnectsPatchCall struct {
95288	s             *Service
95289	project       string
95290	interconnect  string
95291	interconnect2 *Interconnect
95292	urlParams_    gensupport.URLParams
95293	ctx_          context.Context
95294	header_       http.Header
95295}
95296
95297// Patch: Updates the specified interconnect with the data included in
95298// the request. This method supports PATCH semantics and uses the JSON
95299// merge patch format and processing rules. (== suppress_warning
95300// http-rest-shadowed ==)
95301func (r *InterconnectsService) Patch(project string, interconnect string, interconnect2 *Interconnect) *InterconnectsPatchCall {
95302	c := &InterconnectsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
95303	c.project = project
95304	c.interconnect = interconnect
95305	c.interconnect2 = interconnect2
95306	return c
95307}
95308
95309// RequestId sets the optional parameter "requestId": An optional
95310// request ID to identify requests. Specify a unique request ID so that
95311// if you must retry your request, the server will know to ignore the
95312// request if it has already been completed.
95313//
95314// For example, consider a situation where you make an initial request
95315// and the request times out. If you make the request again with the
95316// same request ID, the server can check if original operation with the
95317// same request ID was received, and if so, will ignore the second
95318// request. This prevents clients from accidentally creating duplicate
95319// commitments.
95320//
95321// The request ID must be a valid UUID with the exception that zero UUID
95322// is not supported (00000000-0000-0000-0000-000000000000).
95323func (c *InterconnectsPatchCall) RequestId(requestId string) *InterconnectsPatchCall {
95324	c.urlParams_.Set("requestId", requestId)
95325	return c
95326}
95327
95328// Fields allows partial responses to be retrieved. See
95329// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
95330// for more information.
95331func (c *InterconnectsPatchCall) Fields(s ...googleapi.Field) *InterconnectsPatchCall {
95332	c.urlParams_.Set("fields", googleapi.CombineFields(s))
95333	return c
95334}
95335
95336// Context sets the context to be used in this call's Do method. Any
95337// pending HTTP request will be aborted if the provided context is
95338// canceled.
95339func (c *InterconnectsPatchCall) Context(ctx context.Context) *InterconnectsPatchCall {
95340	c.ctx_ = ctx
95341	return c
95342}
95343
95344// Header returns an http.Header that can be modified by the caller to
95345// add HTTP headers to the request.
95346func (c *InterconnectsPatchCall) Header() http.Header {
95347	if c.header_ == nil {
95348		c.header_ = make(http.Header)
95349	}
95350	return c.header_
95351}
95352
95353func (c *InterconnectsPatchCall) doRequest(alt string) (*http.Response, error) {
95354	reqHeaders := make(http.Header)
95355	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
95356	for k, v := range c.header_ {
95357		reqHeaders[k] = v
95358	}
95359	reqHeaders.Set("User-Agent", c.s.userAgent())
95360	var body io.Reader = nil
95361	body, err := googleapi.WithoutDataWrapper.JSONReader(c.interconnect2)
95362	if err != nil {
95363		return nil, err
95364	}
95365	reqHeaders.Set("Content-Type", "application/json")
95366	c.urlParams_.Set("alt", alt)
95367	c.urlParams_.Set("prettyPrint", "false")
95368	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/interconnects/{interconnect}")
95369	urls += "?" + c.urlParams_.Encode()
95370	req, err := http.NewRequest("PATCH", urls, body)
95371	if err != nil {
95372		return nil, err
95373	}
95374	req.Header = reqHeaders
95375	googleapi.Expand(req.URL, map[string]string{
95376		"project":      c.project,
95377		"interconnect": c.interconnect,
95378	})
95379	return gensupport.SendRequest(c.ctx_, c.s.client, req)
95380}
95381
95382// Do executes the "compute.interconnects.patch" call.
95383// Exactly one of *Operation or error will be non-nil. Any non-2xx
95384// status code is an error. Response headers are in either
95385// *Operation.ServerResponse.Header or (if a response was returned at
95386// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
95387// to check whether the returned error was because
95388// http.StatusNotModified was returned.
95389func (c *InterconnectsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
95390	gensupport.SetOptions(c.urlParams_, opts...)
95391	res, err := c.doRequest("json")
95392	if res != nil && res.StatusCode == http.StatusNotModified {
95393		if res.Body != nil {
95394			res.Body.Close()
95395		}
95396		return nil, &googleapi.Error{
95397			Code:   res.StatusCode,
95398			Header: res.Header,
95399		}
95400	}
95401	if err != nil {
95402		return nil, err
95403	}
95404	defer googleapi.CloseBody(res)
95405	if err := googleapi.CheckResponse(res); err != nil {
95406		return nil, err
95407	}
95408	ret := &Operation{
95409		ServerResponse: googleapi.ServerResponse{
95410			Header:         res.Header,
95411			HTTPStatusCode: res.StatusCode,
95412		},
95413	}
95414	target := &ret
95415	if err := gensupport.DecodeResponse(target, res); err != nil {
95416		return nil, err
95417	}
95418	return ret, nil
95419	// {
95420	//   "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. (== suppress_warning http-rest-shadowed ==)",
95421	//   "httpMethod": "PATCH",
95422	//   "id": "compute.interconnects.patch",
95423	//   "parameterOrder": [
95424	//     "project",
95425	//     "interconnect"
95426	//   ],
95427	//   "parameters": {
95428	//     "interconnect": {
95429	//       "description": "Name of the interconnect to update.",
95430	//       "location": "path",
95431	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
95432	//       "required": true,
95433	//       "type": "string"
95434	//     },
95435	//     "project": {
95436	//       "description": "Project ID for this request.",
95437	//       "location": "path",
95438	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
95439	//       "required": true,
95440	//       "type": "string"
95441	//     },
95442	//     "requestId": {
95443	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
95444	//       "location": "query",
95445	//       "type": "string"
95446	//     }
95447	//   },
95448	//   "path": "{project}/global/interconnects/{interconnect}",
95449	//   "request": {
95450	//     "$ref": "Interconnect"
95451	//   },
95452	//   "response": {
95453	//     "$ref": "Operation"
95454	//   },
95455	//   "scopes": [
95456	//     "https://www.googleapis.com/auth/cloud-platform",
95457	//     "https://www.googleapis.com/auth/compute"
95458	//   ]
95459	// }
95460
95461}
95462
95463// method id "compute.interconnects.setIamPolicy":
95464
95465type InterconnectsSetIamPolicyCall struct {
95466	s                      *Service
95467	project                string
95468	resource               string
95469	globalsetpolicyrequest *GlobalSetPolicyRequest
95470	urlParams_             gensupport.URLParams
95471	ctx_                   context.Context
95472	header_                http.Header
95473}
95474
95475// SetIamPolicy: Sets the access control policy on the specified
95476// resource. Replaces any existing policy. (== suppress_warning
95477// http-rest-shadowed ==)
95478func (r *InterconnectsService) SetIamPolicy(project string, resource string, globalsetpolicyrequest *GlobalSetPolicyRequest) *InterconnectsSetIamPolicyCall {
95479	c := &InterconnectsSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
95480	c.project = project
95481	c.resource = resource
95482	c.globalsetpolicyrequest = globalsetpolicyrequest
95483	return c
95484}
95485
95486// Fields allows partial responses to be retrieved. See
95487// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
95488// for more information.
95489func (c *InterconnectsSetIamPolicyCall) Fields(s ...googleapi.Field) *InterconnectsSetIamPolicyCall {
95490	c.urlParams_.Set("fields", googleapi.CombineFields(s))
95491	return c
95492}
95493
95494// Context sets the context to be used in this call's Do method. Any
95495// pending HTTP request will be aborted if the provided context is
95496// canceled.
95497func (c *InterconnectsSetIamPolicyCall) Context(ctx context.Context) *InterconnectsSetIamPolicyCall {
95498	c.ctx_ = ctx
95499	return c
95500}
95501
95502// Header returns an http.Header that can be modified by the caller to
95503// add HTTP headers to the request.
95504func (c *InterconnectsSetIamPolicyCall) Header() http.Header {
95505	if c.header_ == nil {
95506		c.header_ = make(http.Header)
95507	}
95508	return c.header_
95509}
95510
95511func (c *InterconnectsSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
95512	reqHeaders := make(http.Header)
95513	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
95514	for k, v := range c.header_ {
95515		reqHeaders[k] = v
95516	}
95517	reqHeaders.Set("User-Agent", c.s.userAgent())
95518	var body io.Reader = nil
95519	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetpolicyrequest)
95520	if err != nil {
95521		return nil, err
95522	}
95523	reqHeaders.Set("Content-Type", "application/json")
95524	c.urlParams_.Set("alt", alt)
95525	c.urlParams_.Set("prettyPrint", "false")
95526	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/interconnects/{resource}/setIamPolicy")
95527	urls += "?" + c.urlParams_.Encode()
95528	req, err := http.NewRequest("POST", urls, body)
95529	if err != nil {
95530		return nil, err
95531	}
95532	req.Header = reqHeaders
95533	googleapi.Expand(req.URL, map[string]string{
95534		"project":  c.project,
95535		"resource": c.resource,
95536	})
95537	return gensupport.SendRequest(c.ctx_, c.s.client, req)
95538}
95539
95540// Do executes the "compute.interconnects.setIamPolicy" call.
95541// Exactly one of *Policy or error will be non-nil. Any non-2xx status
95542// code is an error. Response headers are in either
95543// *Policy.ServerResponse.Header or (if a response was returned at all)
95544// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
95545// check whether the returned error was because http.StatusNotModified
95546// was returned.
95547func (c *InterconnectsSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
95548	gensupport.SetOptions(c.urlParams_, opts...)
95549	res, err := c.doRequest("json")
95550	if res != nil && res.StatusCode == http.StatusNotModified {
95551		if res.Body != nil {
95552			res.Body.Close()
95553		}
95554		return nil, &googleapi.Error{
95555			Code:   res.StatusCode,
95556			Header: res.Header,
95557		}
95558	}
95559	if err != nil {
95560		return nil, err
95561	}
95562	defer googleapi.CloseBody(res)
95563	if err := googleapi.CheckResponse(res); err != nil {
95564		return nil, err
95565	}
95566	ret := &Policy{
95567		ServerResponse: googleapi.ServerResponse{
95568			Header:         res.Header,
95569			HTTPStatusCode: res.StatusCode,
95570		},
95571	}
95572	target := &ret
95573	if err := gensupport.DecodeResponse(target, res); err != nil {
95574		return nil, err
95575	}
95576	return ret, nil
95577	// {
95578	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy. (== suppress_warning http-rest-shadowed ==)",
95579	//   "httpMethod": "POST",
95580	//   "id": "compute.interconnects.setIamPolicy",
95581	//   "parameterOrder": [
95582	//     "project",
95583	//     "resource"
95584	//   ],
95585	//   "parameters": {
95586	//     "project": {
95587	//       "description": "Project ID for this request.",
95588	//       "location": "path",
95589	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
95590	//       "required": true,
95591	//       "type": "string"
95592	//     },
95593	//     "resource": {
95594	//       "description": "Name or id of the resource for this request.",
95595	//       "location": "path",
95596	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
95597	//       "required": true,
95598	//       "type": "string"
95599	//     }
95600	//   },
95601	//   "path": "{project}/global/interconnects/{resource}/setIamPolicy",
95602	//   "request": {
95603	//     "$ref": "GlobalSetPolicyRequest"
95604	//   },
95605	//   "response": {
95606	//     "$ref": "Policy"
95607	//   },
95608	//   "scopes": [
95609	//     "https://www.googleapis.com/auth/cloud-platform",
95610	//     "https://www.googleapis.com/auth/compute"
95611	//   ]
95612	// }
95613
95614}
95615
95616// method id "compute.interconnects.setLabels":
95617
95618type InterconnectsSetLabelsCall struct {
95619	s                      *Service
95620	project                string
95621	resource               string
95622	globalsetlabelsrequest *GlobalSetLabelsRequest
95623	urlParams_             gensupport.URLParams
95624	ctx_                   context.Context
95625	header_                http.Header
95626}
95627
95628// SetLabels: Sets the labels on an Interconnect. To learn more about
95629// labels, read the Labeling Resources documentation. (==
95630// suppress_warning http-rest-shadowed ==)
95631func (r *InterconnectsService) SetLabels(project string, resource string, globalsetlabelsrequest *GlobalSetLabelsRequest) *InterconnectsSetLabelsCall {
95632	c := &InterconnectsSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
95633	c.project = project
95634	c.resource = resource
95635	c.globalsetlabelsrequest = globalsetlabelsrequest
95636	return c
95637}
95638
95639// Fields allows partial responses to be retrieved. See
95640// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
95641// for more information.
95642func (c *InterconnectsSetLabelsCall) Fields(s ...googleapi.Field) *InterconnectsSetLabelsCall {
95643	c.urlParams_.Set("fields", googleapi.CombineFields(s))
95644	return c
95645}
95646
95647// Context sets the context to be used in this call's Do method. Any
95648// pending HTTP request will be aborted if the provided context is
95649// canceled.
95650func (c *InterconnectsSetLabelsCall) Context(ctx context.Context) *InterconnectsSetLabelsCall {
95651	c.ctx_ = ctx
95652	return c
95653}
95654
95655// Header returns an http.Header that can be modified by the caller to
95656// add HTTP headers to the request.
95657func (c *InterconnectsSetLabelsCall) Header() http.Header {
95658	if c.header_ == nil {
95659		c.header_ = make(http.Header)
95660	}
95661	return c.header_
95662}
95663
95664func (c *InterconnectsSetLabelsCall) doRequest(alt string) (*http.Response, error) {
95665	reqHeaders := make(http.Header)
95666	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
95667	for k, v := range c.header_ {
95668		reqHeaders[k] = v
95669	}
95670	reqHeaders.Set("User-Agent", c.s.userAgent())
95671	var body io.Reader = nil
95672	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetlabelsrequest)
95673	if err != nil {
95674		return nil, err
95675	}
95676	reqHeaders.Set("Content-Type", "application/json")
95677	c.urlParams_.Set("alt", alt)
95678	c.urlParams_.Set("prettyPrint", "false")
95679	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/interconnects/{resource}/setLabels")
95680	urls += "?" + c.urlParams_.Encode()
95681	req, err := http.NewRequest("POST", urls, body)
95682	if err != nil {
95683		return nil, err
95684	}
95685	req.Header = reqHeaders
95686	googleapi.Expand(req.URL, map[string]string{
95687		"project":  c.project,
95688		"resource": c.resource,
95689	})
95690	return gensupport.SendRequest(c.ctx_, c.s.client, req)
95691}
95692
95693// Do executes the "compute.interconnects.setLabels" call.
95694// Exactly one of *Operation or error will be non-nil. Any non-2xx
95695// status code is an error. Response headers are in either
95696// *Operation.ServerResponse.Header or (if a response was returned at
95697// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
95698// to check whether the returned error was because
95699// http.StatusNotModified was returned.
95700func (c *InterconnectsSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
95701	gensupport.SetOptions(c.urlParams_, opts...)
95702	res, err := c.doRequest("json")
95703	if res != nil && res.StatusCode == http.StatusNotModified {
95704		if res.Body != nil {
95705			res.Body.Close()
95706		}
95707		return nil, &googleapi.Error{
95708			Code:   res.StatusCode,
95709			Header: res.Header,
95710		}
95711	}
95712	if err != nil {
95713		return nil, err
95714	}
95715	defer googleapi.CloseBody(res)
95716	if err := googleapi.CheckResponse(res); err != nil {
95717		return nil, err
95718	}
95719	ret := &Operation{
95720		ServerResponse: googleapi.ServerResponse{
95721			Header:         res.Header,
95722			HTTPStatusCode: res.StatusCode,
95723		},
95724	}
95725	target := &ret
95726	if err := gensupport.DecodeResponse(target, res); err != nil {
95727		return nil, err
95728	}
95729	return ret, nil
95730	// {
95731	//   "description": "Sets the labels on an Interconnect. To learn more about labels, read the Labeling Resources documentation. (== suppress_warning http-rest-shadowed ==)",
95732	//   "httpMethod": "POST",
95733	//   "id": "compute.interconnects.setLabels",
95734	//   "parameterOrder": [
95735	//     "project",
95736	//     "resource"
95737	//   ],
95738	//   "parameters": {
95739	//     "project": {
95740	//       "description": "Project ID for this request.",
95741	//       "location": "path",
95742	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
95743	//       "required": true,
95744	//       "type": "string"
95745	//     },
95746	//     "resource": {
95747	//       "description": "Name or id of the resource for this request.",
95748	//       "location": "path",
95749	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
95750	//       "required": true,
95751	//       "type": "string"
95752	//     }
95753	//   },
95754	//   "path": "{project}/global/interconnects/{resource}/setLabels",
95755	//   "request": {
95756	//     "$ref": "GlobalSetLabelsRequest"
95757	//   },
95758	//   "response": {
95759	//     "$ref": "Operation"
95760	//   },
95761	//   "scopes": [
95762	//     "https://www.googleapis.com/auth/cloud-platform",
95763	//     "https://www.googleapis.com/auth/compute"
95764	//   ]
95765	// }
95766
95767}
95768
95769// method id "compute.interconnects.testIamPermissions":
95770
95771type InterconnectsTestIamPermissionsCall struct {
95772	s                      *Service
95773	project                string
95774	resource               string
95775	testpermissionsrequest *TestPermissionsRequest
95776	urlParams_             gensupport.URLParams
95777	ctx_                   context.Context
95778	header_                http.Header
95779}
95780
95781// TestIamPermissions: Returns permissions that a caller has on the
95782// specified resource. (== suppress_warning http-rest-shadowed ==)
95783func (r *InterconnectsService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *InterconnectsTestIamPermissionsCall {
95784	c := &InterconnectsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
95785	c.project = project
95786	c.resource = resource
95787	c.testpermissionsrequest = testpermissionsrequest
95788	return c
95789}
95790
95791// Fields allows partial responses to be retrieved. See
95792// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
95793// for more information.
95794func (c *InterconnectsTestIamPermissionsCall) Fields(s ...googleapi.Field) *InterconnectsTestIamPermissionsCall {
95795	c.urlParams_.Set("fields", googleapi.CombineFields(s))
95796	return c
95797}
95798
95799// Context sets the context to be used in this call's Do method. Any
95800// pending HTTP request will be aborted if the provided context is
95801// canceled.
95802func (c *InterconnectsTestIamPermissionsCall) Context(ctx context.Context) *InterconnectsTestIamPermissionsCall {
95803	c.ctx_ = ctx
95804	return c
95805}
95806
95807// Header returns an http.Header that can be modified by the caller to
95808// add HTTP headers to the request.
95809func (c *InterconnectsTestIamPermissionsCall) Header() http.Header {
95810	if c.header_ == nil {
95811		c.header_ = make(http.Header)
95812	}
95813	return c.header_
95814}
95815
95816func (c *InterconnectsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
95817	reqHeaders := make(http.Header)
95818	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
95819	for k, v := range c.header_ {
95820		reqHeaders[k] = v
95821	}
95822	reqHeaders.Set("User-Agent", c.s.userAgent())
95823	var body io.Reader = nil
95824	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
95825	if err != nil {
95826		return nil, err
95827	}
95828	reqHeaders.Set("Content-Type", "application/json")
95829	c.urlParams_.Set("alt", alt)
95830	c.urlParams_.Set("prettyPrint", "false")
95831	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/interconnects/{resource}/testIamPermissions")
95832	urls += "?" + c.urlParams_.Encode()
95833	req, err := http.NewRequest("POST", urls, body)
95834	if err != nil {
95835		return nil, err
95836	}
95837	req.Header = reqHeaders
95838	googleapi.Expand(req.URL, map[string]string{
95839		"project":  c.project,
95840		"resource": c.resource,
95841	})
95842	return gensupport.SendRequest(c.ctx_, c.s.client, req)
95843}
95844
95845// Do executes the "compute.interconnects.testIamPermissions" call.
95846// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
95847// non-2xx status code is an error. Response headers are in either
95848// *TestPermissionsResponse.ServerResponse.Header or (if a response was
95849// returned at all) in error.(*googleapi.Error).Header. Use
95850// googleapi.IsNotModified to check whether the returned error was
95851// because http.StatusNotModified was returned.
95852func (c *InterconnectsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
95853	gensupport.SetOptions(c.urlParams_, opts...)
95854	res, err := c.doRequest("json")
95855	if res != nil && res.StatusCode == http.StatusNotModified {
95856		if res.Body != nil {
95857			res.Body.Close()
95858		}
95859		return nil, &googleapi.Error{
95860			Code:   res.StatusCode,
95861			Header: res.Header,
95862		}
95863	}
95864	if err != nil {
95865		return nil, err
95866	}
95867	defer googleapi.CloseBody(res)
95868	if err := googleapi.CheckResponse(res); err != nil {
95869		return nil, err
95870	}
95871	ret := &TestPermissionsResponse{
95872		ServerResponse: googleapi.ServerResponse{
95873			Header:         res.Header,
95874			HTTPStatusCode: res.StatusCode,
95875		},
95876	}
95877	target := &ret
95878	if err := gensupport.DecodeResponse(target, res); err != nil {
95879		return nil, err
95880	}
95881	return ret, nil
95882	// {
95883	//   "description": "Returns permissions that a caller has on the specified resource. (== suppress_warning http-rest-shadowed ==)",
95884	//   "httpMethod": "POST",
95885	//   "id": "compute.interconnects.testIamPermissions",
95886	//   "parameterOrder": [
95887	//     "project",
95888	//     "resource"
95889	//   ],
95890	//   "parameters": {
95891	//     "project": {
95892	//       "description": "Project ID for this request.",
95893	//       "location": "path",
95894	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
95895	//       "required": true,
95896	//       "type": "string"
95897	//     },
95898	//     "resource": {
95899	//       "description": "Name or id of the resource for this request.",
95900	//       "location": "path",
95901	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
95902	//       "required": true,
95903	//       "type": "string"
95904	//     }
95905	//   },
95906	//   "path": "{project}/global/interconnects/{resource}/testIamPermissions",
95907	//   "request": {
95908	//     "$ref": "TestPermissionsRequest"
95909	//   },
95910	//   "response": {
95911	//     "$ref": "TestPermissionsResponse"
95912	//   },
95913	//   "scopes": [
95914	//     "https://www.googleapis.com/auth/cloud-platform",
95915	//     "https://www.googleapis.com/auth/compute",
95916	//     "https://www.googleapis.com/auth/compute.readonly"
95917	//   ]
95918	// }
95919
95920}
95921
95922// method id "compute.licenseCodes.get":
95923
95924type LicenseCodesGetCall struct {
95925	s            *Service
95926	project      string
95927	licenseCode  string
95928	urlParams_   gensupport.URLParams
95929	ifNoneMatch_ string
95930	ctx_         context.Context
95931	header_      http.Header
95932}
95933
95934// Get: Return a specified license code. License codes are mirrored
95935// across all projects that have permissions to read the License Code.
95936// (== suppress_warning http-rest-shadowed ==)
95937func (r *LicenseCodesService) Get(project string, licenseCode string) *LicenseCodesGetCall {
95938	c := &LicenseCodesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
95939	c.project = project
95940	c.licenseCode = licenseCode
95941	return c
95942}
95943
95944// Fields allows partial responses to be retrieved. See
95945// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
95946// for more information.
95947func (c *LicenseCodesGetCall) Fields(s ...googleapi.Field) *LicenseCodesGetCall {
95948	c.urlParams_.Set("fields", googleapi.CombineFields(s))
95949	return c
95950}
95951
95952// IfNoneMatch sets the optional parameter which makes the operation
95953// fail if the object's ETag matches the given value. This is useful for
95954// getting updates only after the object has changed since the last
95955// request. Use googleapi.IsNotModified to check whether the response
95956// error from Do is the result of In-None-Match.
95957func (c *LicenseCodesGetCall) IfNoneMatch(entityTag string) *LicenseCodesGetCall {
95958	c.ifNoneMatch_ = entityTag
95959	return c
95960}
95961
95962// Context sets the context to be used in this call's Do method. Any
95963// pending HTTP request will be aborted if the provided context is
95964// canceled.
95965func (c *LicenseCodesGetCall) Context(ctx context.Context) *LicenseCodesGetCall {
95966	c.ctx_ = ctx
95967	return c
95968}
95969
95970// Header returns an http.Header that can be modified by the caller to
95971// add HTTP headers to the request.
95972func (c *LicenseCodesGetCall) Header() http.Header {
95973	if c.header_ == nil {
95974		c.header_ = make(http.Header)
95975	}
95976	return c.header_
95977}
95978
95979func (c *LicenseCodesGetCall) doRequest(alt string) (*http.Response, error) {
95980	reqHeaders := make(http.Header)
95981	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
95982	for k, v := range c.header_ {
95983		reqHeaders[k] = v
95984	}
95985	reqHeaders.Set("User-Agent", c.s.userAgent())
95986	if c.ifNoneMatch_ != "" {
95987		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
95988	}
95989	var body io.Reader = nil
95990	c.urlParams_.Set("alt", alt)
95991	c.urlParams_.Set("prettyPrint", "false")
95992	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/licenseCodes/{licenseCode}")
95993	urls += "?" + c.urlParams_.Encode()
95994	req, err := http.NewRequest("GET", urls, body)
95995	if err != nil {
95996		return nil, err
95997	}
95998	req.Header = reqHeaders
95999	googleapi.Expand(req.URL, map[string]string{
96000		"project":     c.project,
96001		"licenseCode": c.licenseCode,
96002	})
96003	return gensupport.SendRequest(c.ctx_, c.s.client, req)
96004}
96005
96006// Do executes the "compute.licenseCodes.get" call.
96007// Exactly one of *LicenseCode or error will be non-nil. Any non-2xx
96008// status code is an error. Response headers are in either
96009// *LicenseCode.ServerResponse.Header or (if a response was returned at
96010// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
96011// to check whether the returned error was because
96012// http.StatusNotModified was returned.
96013func (c *LicenseCodesGetCall) Do(opts ...googleapi.CallOption) (*LicenseCode, error) {
96014	gensupport.SetOptions(c.urlParams_, opts...)
96015	res, err := c.doRequest("json")
96016	if res != nil && res.StatusCode == http.StatusNotModified {
96017		if res.Body != nil {
96018			res.Body.Close()
96019		}
96020		return nil, &googleapi.Error{
96021			Code:   res.StatusCode,
96022			Header: res.Header,
96023		}
96024	}
96025	if err != nil {
96026		return nil, err
96027	}
96028	defer googleapi.CloseBody(res)
96029	if err := googleapi.CheckResponse(res); err != nil {
96030		return nil, err
96031	}
96032	ret := &LicenseCode{
96033		ServerResponse: googleapi.ServerResponse{
96034			Header:         res.Header,
96035			HTTPStatusCode: res.StatusCode,
96036		},
96037	}
96038	target := &ret
96039	if err := gensupport.DecodeResponse(target, res); err != nil {
96040		return nil, err
96041	}
96042	return ret, nil
96043	// {
96044	//   "description": "Return a specified license code. License codes are mirrored across all projects that have permissions to read the License Code. (== suppress_warning http-rest-shadowed ==)",
96045	//   "httpMethod": "GET",
96046	//   "id": "compute.licenseCodes.get",
96047	//   "parameterOrder": [
96048	//     "project",
96049	//     "licenseCode"
96050	//   ],
96051	//   "parameters": {
96052	//     "licenseCode": {
96053	//       "description": "Number corresponding to the License code resource to return.",
96054	//       "location": "path",
96055	//       "pattern": "[0-9]{0,61}?",
96056	//       "required": true,
96057	//       "type": "string"
96058	//     },
96059	//     "project": {
96060	//       "description": "Project ID for this request.",
96061	//       "location": "path",
96062	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
96063	//       "required": true,
96064	//       "type": "string"
96065	//     }
96066	//   },
96067	//   "path": "{project}/global/licenseCodes/{licenseCode}",
96068	//   "response": {
96069	//     "$ref": "LicenseCode"
96070	//   },
96071	//   "scopes": [
96072	//     "https://www.googleapis.com/auth/cloud-platform",
96073	//     "https://www.googleapis.com/auth/compute",
96074	//     "https://www.googleapis.com/auth/compute.readonly"
96075	//   ]
96076	// }
96077
96078}
96079
96080// method id "compute.licenseCodes.getIamPolicy":
96081
96082type LicenseCodesGetIamPolicyCall struct {
96083	s            *Service
96084	project      string
96085	resource     string
96086	urlParams_   gensupport.URLParams
96087	ifNoneMatch_ string
96088	ctx_         context.Context
96089	header_      http.Header
96090}
96091
96092// GetIamPolicy: Gets the access control policy for a resource. May be
96093// empty if no such policy or resource exists. (== suppress_warning
96094// http-rest-shadowed ==)
96095func (r *LicenseCodesService) GetIamPolicy(project string, resource string) *LicenseCodesGetIamPolicyCall {
96096	c := &LicenseCodesGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
96097	c.project = project
96098	c.resource = resource
96099	return c
96100}
96101
96102// OptionsRequestedPolicyVersion sets the optional parameter
96103// "optionsRequestedPolicyVersion": Requested IAM Policy version.
96104func (c *LicenseCodesGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *LicenseCodesGetIamPolicyCall {
96105	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
96106	return c
96107}
96108
96109// Fields allows partial responses to be retrieved. See
96110// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
96111// for more information.
96112func (c *LicenseCodesGetIamPolicyCall) Fields(s ...googleapi.Field) *LicenseCodesGetIamPolicyCall {
96113	c.urlParams_.Set("fields", googleapi.CombineFields(s))
96114	return c
96115}
96116
96117// IfNoneMatch sets the optional parameter which makes the operation
96118// fail if the object's ETag matches the given value. This is useful for
96119// getting updates only after the object has changed since the last
96120// request. Use googleapi.IsNotModified to check whether the response
96121// error from Do is the result of In-None-Match.
96122func (c *LicenseCodesGetIamPolicyCall) IfNoneMatch(entityTag string) *LicenseCodesGetIamPolicyCall {
96123	c.ifNoneMatch_ = entityTag
96124	return c
96125}
96126
96127// Context sets the context to be used in this call's Do method. Any
96128// pending HTTP request will be aborted if the provided context is
96129// canceled.
96130func (c *LicenseCodesGetIamPolicyCall) Context(ctx context.Context) *LicenseCodesGetIamPolicyCall {
96131	c.ctx_ = ctx
96132	return c
96133}
96134
96135// Header returns an http.Header that can be modified by the caller to
96136// add HTTP headers to the request.
96137func (c *LicenseCodesGetIamPolicyCall) Header() http.Header {
96138	if c.header_ == nil {
96139		c.header_ = make(http.Header)
96140	}
96141	return c.header_
96142}
96143
96144func (c *LicenseCodesGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
96145	reqHeaders := make(http.Header)
96146	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
96147	for k, v := range c.header_ {
96148		reqHeaders[k] = v
96149	}
96150	reqHeaders.Set("User-Agent", c.s.userAgent())
96151	if c.ifNoneMatch_ != "" {
96152		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
96153	}
96154	var body io.Reader = nil
96155	c.urlParams_.Set("alt", alt)
96156	c.urlParams_.Set("prettyPrint", "false")
96157	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/licenseCodes/{resource}/getIamPolicy")
96158	urls += "?" + c.urlParams_.Encode()
96159	req, err := http.NewRequest("GET", urls, body)
96160	if err != nil {
96161		return nil, err
96162	}
96163	req.Header = reqHeaders
96164	googleapi.Expand(req.URL, map[string]string{
96165		"project":  c.project,
96166		"resource": c.resource,
96167	})
96168	return gensupport.SendRequest(c.ctx_, c.s.client, req)
96169}
96170
96171// Do executes the "compute.licenseCodes.getIamPolicy" call.
96172// Exactly one of *Policy or error will be non-nil. Any non-2xx status
96173// code is an error. Response headers are in either
96174// *Policy.ServerResponse.Header or (if a response was returned at all)
96175// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
96176// check whether the returned error was because http.StatusNotModified
96177// was returned.
96178func (c *LicenseCodesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
96179	gensupport.SetOptions(c.urlParams_, opts...)
96180	res, err := c.doRequest("json")
96181	if res != nil && res.StatusCode == http.StatusNotModified {
96182		if res.Body != nil {
96183			res.Body.Close()
96184		}
96185		return nil, &googleapi.Error{
96186			Code:   res.StatusCode,
96187			Header: res.Header,
96188		}
96189	}
96190	if err != nil {
96191		return nil, err
96192	}
96193	defer googleapi.CloseBody(res)
96194	if err := googleapi.CheckResponse(res); err != nil {
96195		return nil, err
96196	}
96197	ret := &Policy{
96198		ServerResponse: googleapi.ServerResponse{
96199			Header:         res.Header,
96200			HTTPStatusCode: res.StatusCode,
96201		},
96202	}
96203	target := &ret
96204	if err := gensupport.DecodeResponse(target, res); err != nil {
96205		return nil, err
96206	}
96207	return ret, nil
96208	// {
96209	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists. (== suppress_warning http-rest-shadowed ==)",
96210	//   "httpMethod": "GET",
96211	//   "id": "compute.licenseCodes.getIamPolicy",
96212	//   "parameterOrder": [
96213	//     "project",
96214	//     "resource"
96215	//   ],
96216	//   "parameters": {
96217	//     "optionsRequestedPolicyVersion": {
96218	//       "description": "Requested IAM Policy version.",
96219	//       "format": "int32",
96220	//       "location": "query",
96221	//       "type": "integer"
96222	//     },
96223	//     "project": {
96224	//       "description": "Project ID for this request.",
96225	//       "location": "path",
96226	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
96227	//       "required": true,
96228	//       "type": "string"
96229	//     },
96230	//     "resource": {
96231	//       "description": "Name or id of the resource for this request.",
96232	//       "location": "path",
96233	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
96234	//       "required": true,
96235	//       "type": "string"
96236	//     }
96237	//   },
96238	//   "path": "{project}/global/licenseCodes/{resource}/getIamPolicy",
96239	//   "response": {
96240	//     "$ref": "Policy"
96241	//   },
96242	//   "scopes": [
96243	//     "https://www.googleapis.com/auth/cloud-platform",
96244	//     "https://www.googleapis.com/auth/compute",
96245	//     "https://www.googleapis.com/auth/compute.readonly"
96246	//   ]
96247	// }
96248
96249}
96250
96251// method id "compute.licenseCodes.setIamPolicy":
96252
96253type LicenseCodesSetIamPolicyCall struct {
96254	s                      *Service
96255	project                string
96256	resource               string
96257	globalsetpolicyrequest *GlobalSetPolicyRequest
96258	urlParams_             gensupport.URLParams
96259	ctx_                   context.Context
96260	header_                http.Header
96261}
96262
96263// SetIamPolicy: Sets the access control policy on the specified
96264// resource. Replaces any existing policy. (== suppress_warning
96265// http-rest-shadowed ==)
96266func (r *LicenseCodesService) SetIamPolicy(project string, resource string, globalsetpolicyrequest *GlobalSetPolicyRequest) *LicenseCodesSetIamPolicyCall {
96267	c := &LicenseCodesSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
96268	c.project = project
96269	c.resource = resource
96270	c.globalsetpolicyrequest = globalsetpolicyrequest
96271	return c
96272}
96273
96274// Fields allows partial responses to be retrieved. See
96275// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
96276// for more information.
96277func (c *LicenseCodesSetIamPolicyCall) Fields(s ...googleapi.Field) *LicenseCodesSetIamPolicyCall {
96278	c.urlParams_.Set("fields", googleapi.CombineFields(s))
96279	return c
96280}
96281
96282// Context sets the context to be used in this call's Do method. Any
96283// pending HTTP request will be aborted if the provided context is
96284// canceled.
96285func (c *LicenseCodesSetIamPolicyCall) Context(ctx context.Context) *LicenseCodesSetIamPolicyCall {
96286	c.ctx_ = ctx
96287	return c
96288}
96289
96290// Header returns an http.Header that can be modified by the caller to
96291// add HTTP headers to the request.
96292func (c *LicenseCodesSetIamPolicyCall) Header() http.Header {
96293	if c.header_ == nil {
96294		c.header_ = make(http.Header)
96295	}
96296	return c.header_
96297}
96298
96299func (c *LicenseCodesSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
96300	reqHeaders := make(http.Header)
96301	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
96302	for k, v := range c.header_ {
96303		reqHeaders[k] = v
96304	}
96305	reqHeaders.Set("User-Agent", c.s.userAgent())
96306	var body io.Reader = nil
96307	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetpolicyrequest)
96308	if err != nil {
96309		return nil, err
96310	}
96311	reqHeaders.Set("Content-Type", "application/json")
96312	c.urlParams_.Set("alt", alt)
96313	c.urlParams_.Set("prettyPrint", "false")
96314	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/licenseCodes/{resource}/setIamPolicy")
96315	urls += "?" + c.urlParams_.Encode()
96316	req, err := http.NewRequest("POST", urls, body)
96317	if err != nil {
96318		return nil, err
96319	}
96320	req.Header = reqHeaders
96321	googleapi.Expand(req.URL, map[string]string{
96322		"project":  c.project,
96323		"resource": c.resource,
96324	})
96325	return gensupport.SendRequest(c.ctx_, c.s.client, req)
96326}
96327
96328// Do executes the "compute.licenseCodes.setIamPolicy" call.
96329// Exactly one of *Policy or error will be non-nil. Any non-2xx status
96330// code is an error. Response headers are in either
96331// *Policy.ServerResponse.Header or (if a response was returned at all)
96332// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
96333// check whether the returned error was because http.StatusNotModified
96334// was returned.
96335func (c *LicenseCodesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
96336	gensupport.SetOptions(c.urlParams_, opts...)
96337	res, err := c.doRequest("json")
96338	if res != nil && res.StatusCode == http.StatusNotModified {
96339		if res.Body != nil {
96340			res.Body.Close()
96341		}
96342		return nil, &googleapi.Error{
96343			Code:   res.StatusCode,
96344			Header: res.Header,
96345		}
96346	}
96347	if err != nil {
96348		return nil, err
96349	}
96350	defer googleapi.CloseBody(res)
96351	if err := googleapi.CheckResponse(res); err != nil {
96352		return nil, err
96353	}
96354	ret := &Policy{
96355		ServerResponse: googleapi.ServerResponse{
96356			Header:         res.Header,
96357			HTTPStatusCode: res.StatusCode,
96358		},
96359	}
96360	target := &ret
96361	if err := gensupport.DecodeResponse(target, res); err != nil {
96362		return nil, err
96363	}
96364	return ret, nil
96365	// {
96366	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy. (== suppress_warning http-rest-shadowed ==)",
96367	//   "httpMethod": "POST",
96368	//   "id": "compute.licenseCodes.setIamPolicy",
96369	//   "parameterOrder": [
96370	//     "project",
96371	//     "resource"
96372	//   ],
96373	//   "parameters": {
96374	//     "project": {
96375	//       "description": "Project ID for this request.",
96376	//       "location": "path",
96377	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
96378	//       "required": true,
96379	//       "type": "string"
96380	//     },
96381	//     "resource": {
96382	//       "description": "Name or id of the resource for this request.",
96383	//       "location": "path",
96384	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
96385	//       "required": true,
96386	//       "type": "string"
96387	//     }
96388	//   },
96389	//   "path": "{project}/global/licenseCodes/{resource}/setIamPolicy",
96390	//   "request": {
96391	//     "$ref": "GlobalSetPolicyRequest"
96392	//   },
96393	//   "response": {
96394	//     "$ref": "Policy"
96395	//   },
96396	//   "scopes": [
96397	//     "https://www.googleapis.com/auth/cloud-platform",
96398	//     "https://www.googleapis.com/auth/compute"
96399	//   ]
96400	// }
96401
96402}
96403
96404// method id "compute.licenseCodes.testIamPermissions":
96405
96406type LicenseCodesTestIamPermissionsCall struct {
96407	s                      *Service
96408	project                string
96409	resource               string
96410	testpermissionsrequest *TestPermissionsRequest
96411	urlParams_             gensupport.URLParams
96412	ctx_                   context.Context
96413	header_                http.Header
96414}
96415
96416// TestIamPermissions: Returns permissions that a caller has on the
96417// specified resource. (== suppress_warning http-rest-shadowed ==)
96418func (r *LicenseCodesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *LicenseCodesTestIamPermissionsCall {
96419	c := &LicenseCodesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
96420	c.project = project
96421	c.resource = resource
96422	c.testpermissionsrequest = testpermissionsrequest
96423	return c
96424}
96425
96426// Fields allows partial responses to be retrieved. See
96427// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
96428// for more information.
96429func (c *LicenseCodesTestIamPermissionsCall) Fields(s ...googleapi.Field) *LicenseCodesTestIamPermissionsCall {
96430	c.urlParams_.Set("fields", googleapi.CombineFields(s))
96431	return c
96432}
96433
96434// Context sets the context to be used in this call's Do method. Any
96435// pending HTTP request will be aborted if the provided context is
96436// canceled.
96437func (c *LicenseCodesTestIamPermissionsCall) Context(ctx context.Context) *LicenseCodesTestIamPermissionsCall {
96438	c.ctx_ = ctx
96439	return c
96440}
96441
96442// Header returns an http.Header that can be modified by the caller to
96443// add HTTP headers to the request.
96444func (c *LicenseCodesTestIamPermissionsCall) Header() http.Header {
96445	if c.header_ == nil {
96446		c.header_ = make(http.Header)
96447	}
96448	return c.header_
96449}
96450
96451func (c *LicenseCodesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
96452	reqHeaders := make(http.Header)
96453	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
96454	for k, v := range c.header_ {
96455		reqHeaders[k] = v
96456	}
96457	reqHeaders.Set("User-Agent", c.s.userAgent())
96458	var body io.Reader = nil
96459	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
96460	if err != nil {
96461		return nil, err
96462	}
96463	reqHeaders.Set("Content-Type", "application/json")
96464	c.urlParams_.Set("alt", alt)
96465	c.urlParams_.Set("prettyPrint", "false")
96466	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/licenseCodes/{resource}/testIamPermissions")
96467	urls += "?" + c.urlParams_.Encode()
96468	req, err := http.NewRequest("POST", urls, body)
96469	if err != nil {
96470		return nil, err
96471	}
96472	req.Header = reqHeaders
96473	googleapi.Expand(req.URL, map[string]string{
96474		"project":  c.project,
96475		"resource": c.resource,
96476	})
96477	return gensupport.SendRequest(c.ctx_, c.s.client, req)
96478}
96479
96480// Do executes the "compute.licenseCodes.testIamPermissions" call.
96481// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
96482// non-2xx status code is an error. Response headers are in either
96483// *TestPermissionsResponse.ServerResponse.Header or (if a response was
96484// returned at all) in error.(*googleapi.Error).Header. Use
96485// googleapi.IsNotModified to check whether the returned error was
96486// because http.StatusNotModified was returned.
96487func (c *LicenseCodesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
96488	gensupport.SetOptions(c.urlParams_, opts...)
96489	res, err := c.doRequest("json")
96490	if res != nil && res.StatusCode == http.StatusNotModified {
96491		if res.Body != nil {
96492			res.Body.Close()
96493		}
96494		return nil, &googleapi.Error{
96495			Code:   res.StatusCode,
96496			Header: res.Header,
96497		}
96498	}
96499	if err != nil {
96500		return nil, err
96501	}
96502	defer googleapi.CloseBody(res)
96503	if err := googleapi.CheckResponse(res); err != nil {
96504		return nil, err
96505	}
96506	ret := &TestPermissionsResponse{
96507		ServerResponse: googleapi.ServerResponse{
96508			Header:         res.Header,
96509			HTTPStatusCode: res.StatusCode,
96510		},
96511	}
96512	target := &ret
96513	if err := gensupport.DecodeResponse(target, res); err != nil {
96514		return nil, err
96515	}
96516	return ret, nil
96517	// {
96518	//   "description": "Returns permissions that a caller has on the specified resource. (== suppress_warning http-rest-shadowed ==)",
96519	//   "httpMethod": "POST",
96520	//   "id": "compute.licenseCodes.testIamPermissions",
96521	//   "parameterOrder": [
96522	//     "project",
96523	//     "resource"
96524	//   ],
96525	//   "parameters": {
96526	//     "project": {
96527	//       "description": "Project ID for this request.",
96528	//       "location": "path",
96529	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
96530	//       "required": true,
96531	//       "type": "string"
96532	//     },
96533	//     "resource": {
96534	//       "description": "Name or id of the resource for this request.",
96535	//       "location": "path",
96536	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
96537	//       "required": true,
96538	//       "type": "string"
96539	//     }
96540	//   },
96541	//   "path": "{project}/global/licenseCodes/{resource}/testIamPermissions",
96542	//   "request": {
96543	//     "$ref": "TestPermissionsRequest"
96544	//   },
96545	//   "response": {
96546	//     "$ref": "TestPermissionsResponse"
96547	//   },
96548	//   "scopes": [
96549	//     "https://www.googleapis.com/auth/cloud-platform",
96550	//     "https://www.googleapis.com/auth/compute",
96551	//     "https://www.googleapis.com/auth/compute.readonly"
96552	//   ]
96553	// }
96554
96555}
96556
96557// method id "compute.licenses.delete":
96558
96559type LicensesDeleteCall struct {
96560	s          *Service
96561	project    string
96562	license    string
96563	urlParams_ gensupport.URLParams
96564	ctx_       context.Context
96565	header_    http.Header
96566}
96567
96568// Delete: Deletes the specified license. (== suppress_warning
96569// http-rest-shadowed ==)
96570func (r *LicensesService) Delete(project string, license string) *LicensesDeleteCall {
96571	c := &LicensesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
96572	c.project = project
96573	c.license = license
96574	return c
96575}
96576
96577// RequestId sets the optional parameter "requestId": An optional
96578// request ID to identify requests. Specify a unique request ID so that
96579// if you must retry your request, the server will know to ignore the
96580// request if it has already been completed.
96581//
96582// For example, consider a situation where you make an initial request
96583// and the request times out. If you make the request again with the
96584// same request ID, the server can check if original operation with the
96585// same request ID was received, and if so, will ignore the second
96586// request. This prevents clients from accidentally creating duplicate
96587// commitments.
96588//
96589// The request ID must be a valid UUID with the exception that zero UUID
96590// is not supported (00000000-0000-0000-0000-000000000000).
96591func (c *LicensesDeleteCall) RequestId(requestId string) *LicensesDeleteCall {
96592	c.urlParams_.Set("requestId", requestId)
96593	return c
96594}
96595
96596// Fields allows partial responses to be retrieved. See
96597// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
96598// for more information.
96599func (c *LicensesDeleteCall) Fields(s ...googleapi.Field) *LicensesDeleteCall {
96600	c.urlParams_.Set("fields", googleapi.CombineFields(s))
96601	return c
96602}
96603
96604// Context sets the context to be used in this call's Do method. Any
96605// pending HTTP request will be aborted if the provided context is
96606// canceled.
96607func (c *LicensesDeleteCall) Context(ctx context.Context) *LicensesDeleteCall {
96608	c.ctx_ = ctx
96609	return c
96610}
96611
96612// Header returns an http.Header that can be modified by the caller to
96613// add HTTP headers to the request.
96614func (c *LicensesDeleteCall) Header() http.Header {
96615	if c.header_ == nil {
96616		c.header_ = make(http.Header)
96617	}
96618	return c.header_
96619}
96620
96621func (c *LicensesDeleteCall) doRequest(alt string) (*http.Response, error) {
96622	reqHeaders := make(http.Header)
96623	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
96624	for k, v := range c.header_ {
96625		reqHeaders[k] = v
96626	}
96627	reqHeaders.Set("User-Agent", c.s.userAgent())
96628	var body io.Reader = nil
96629	c.urlParams_.Set("alt", alt)
96630	c.urlParams_.Set("prettyPrint", "false")
96631	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/licenses/{license}")
96632	urls += "?" + c.urlParams_.Encode()
96633	req, err := http.NewRequest("DELETE", urls, body)
96634	if err != nil {
96635		return nil, err
96636	}
96637	req.Header = reqHeaders
96638	googleapi.Expand(req.URL, map[string]string{
96639		"project": c.project,
96640		"license": c.license,
96641	})
96642	return gensupport.SendRequest(c.ctx_, c.s.client, req)
96643}
96644
96645// Do executes the "compute.licenses.delete" call.
96646// Exactly one of *Operation or error will be non-nil. Any non-2xx
96647// status code is an error. Response headers are in either
96648// *Operation.ServerResponse.Header or (if a response was returned at
96649// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
96650// to check whether the returned error was because
96651// http.StatusNotModified was returned.
96652func (c *LicensesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
96653	gensupport.SetOptions(c.urlParams_, opts...)
96654	res, err := c.doRequest("json")
96655	if res != nil && res.StatusCode == http.StatusNotModified {
96656		if res.Body != nil {
96657			res.Body.Close()
96658		}
96659		return nil, &googleapi.Error{
96660			Code:   res.StatusCode,
96661			Header: res.Header,
96662		}
96663	}
96664	if err != nil {
96665		return nil, err
96666	}
96667	defer googleapi.CloseBody(res)
96668	if err := googleapi.CheckResponse(res); err != nil {
96669		return nil, err
96670	}
96671	ret := &Operation{
96672		ServerResponse: googleapi.ServerResponse{
96673			Header:         res.Header,
96674			HTTPStatusCode: res.StatusCode,
96675		},
96676	}
96677	target := &ret
96678	if err := gensupport.DecodeResponse(target, res); err != nil {
96679		return nil, err
96680	}
96681	return ret, nil
96682	// {
96683	//   "description": "Deletes the specified license. (== suppress_warning http-rest-shadowed ==)",
96684	//   "httpMethod": "DELETE",
96685	//   "id": "compute.licenses.delete",
96686	//   "parameterOrder": [
96687	//     "project",
96688	//     "license"
96689	//   ],
96690	//   "parameters": {
96691	//     "license": {
96692	//       "description": "Name of the license resource to delete.",
96693	//       "location": "path",
96694	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
96695	//       "required": true,
96696	//       "type": "string"
96697	//     },
96698	//     "project": {
96699	//       "description": "Project ID for this request.",
96700	//       "location": "path",
96701	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
96702	//       "required": true,
96703	//       "type": "string"
96704	//     },
96705	//     "requestId": {
96706	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
96707	//       "location": "query",
96708	//       "type": "string"
96709	//     }
96710	//   },
96711	//   "path": "{project}/global/licenses/{license}",
96712	//   "response": {
96713	//     "$ref": "Operation"
96714	//   },
96715	//   "scopes": [
96716	//     "https://www.googleapis.com/auth/cloud-platform",
96717	//     "https://www.googleapis.com/auth/compute"
96718	//   ]
96719	// }
96720
96721}
96722
96723// method id "compute.licenses.get":
96724
96725type LicensesGetCall struct {
96726	s            *Service
96727	project      string
96728	license      string
96729	urlParams_   gensupport.URLParams
96730	ifNoneMatch_ string
96731	ctx_         context.Context
96732	header_      http.Header
96733}
96734
96735// Get: Returns the specified License resource. (== suppress_warning
96736// http-rest-shadowed ==)
96737// For details, see https://cloud.google.com/compute/docs/reference/latest/licenses/get
96738func (r *LicensesService) Get(project string, license string) *LicensesGetCall {
96739	c := &LicensesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
96740	c.project = project
96741	c.license = license
96742	return c
96743}
96744
96745// Fields allows partial responses to be retrieved. See
96746// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
96747// for more information.
96748func (c *LicensesGetCall) Fields(s ...googleapi.Field) *LicensesGetCall {
96749	c.urlParams_.Set("fields", googleapi.CombineFields(s))
96750	return c
96751}
96752
96753// IfNoneMatch sets the optional parameter which makes the operation
96754// fail if the object's ETag matches the given value. This is useful for
96755// getting updates only after the object has changed since the last
96756// request. Use googleapi.IsNotModified to check whether the response
96757// error from Do is the result of In-None-Match.
96758func (c *LicensesGetCall) IfNoneMatch(entityTag string) *LicensesGetCall {
96759	c.ifNoneMatch_ = entityTag
96760	return c
96761}
96762
96763// Context sets the context to be used in this call's Do method. Any
96764// pending HTTP request will be aborted if the provided context is
96765// canceled.
96766func (c *LicensesGetCall) Context(ctx context.Context) *LicensesGetCall {
96767	c.ctx_ = ctx
96768	return c
96769}
96770
96771// Header returns an http.Header that can be modified by the caller to
96772// add HTTP headers to the request.
96773func (c *LicensesGetCall) Header() http.Header {
96774	if c.header_ == nil {
96775		c.header_ = make(http.Header)
96776	}
96777	return c.header_
96778}
96779
96780func (c *LicensesGetCall) doRequest(alt string) (*http.Response, error) {
96781	reqHeaders := make(http.Header)
96782	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
96783	for k, v := range c.header_ {
96784		reqHeaders[k] = v
96785	}
96786	reqHeaders.Set("User-Agent", c.s.userAgent())
96787	if c.ifNoneMatch_ != "" {
96788		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
96789	}
96790	var body io.Reader = nil
96791	c.urlParams_.Set("alt", alt)
96792	c.urlParams_.Set("prettyPrint", "false")
96793	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/licenses/{license}")
96794	urls += "?" + c.urlParams_.Encode()
96795	req, err := http.NewRequest("GET", urls, body)
96796	if err != nil {
96797		return nil, err
96798	}
96799	req.Header = reqHeaders
96800	googleapi.Expand(req.URL, map[string]string{
96801		"project": c.project,
96802		"license": c.license,
96803	})
96804	return gensupport.SendRequest(c.ctx_, c.s.client, req)
96805}
96806
96807// Do executes the "compute.licenses.get" call.
96808// Exactly one of *License or error will be non-nil. Any non-2xx status
96809// code is an error. Response headers are in either
96810// *License.ServerResponse.Header or (if a response was returned at all)
96811// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
96812// check whether the returned error was because http.StatusNotModified
96813// was returned.
96814func (c *LicensesGetCall) Do(opts ...googleapi.CallOption) (*License, error) {
96815	gensupport.SetOptions(c.urlParams_, opts...)
96816	res, err := c.doRequest("json")
96817	if res != nil && res.StatusCode == http.StatusNotModified {
96818		if res.Body != nil {
96819			res.Body.Close()
96820		}
96821		return nil, &googleapi.Error{
96822			Code:   res.StatusCode,
96823			Header: res.Header,
96824		}
96825	}
96826	if err != nil {
96827		return nil, err
96828	}
96829	defer googleapi.CloseBody(res)
96830	if err := googleapi.CheckResponse(res); err != nil {
96831		return nil, err
96832	}
96833	ret := &License{
96834		ServerResponse: googleapi.ServerResponse{
96835			Header:         res.Header,
96836			HTTPStatusCode: res.StatusCode,
96837		},
96838	}
96839	target := &ret
96840	if err := gensupport.DecodeResponse(target, res); err != nil {
96841		return nil, err
96842	}
96843	return ret, nil
96844	// {
96845	//   "description": "Returns the specified License resource. (== suppress_warning http-rest-shadowed ==)",
96846	//   "httpMethod": "GET",
96847	//   "id": "compute.licenses.get",
96848	//   "parameterOrder": [
96849	//     "project",
96850	//     "license"
96851	//   ],
96852	//   "parameters": {
96853	//     "license": {
96854	//       "description": "Name of the License resource to return.",
96855	//       "location": "path",
96856	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
96857	//       "required": true,
96858	//       "type": "string"
96859	//     },
96860	//     "project": {
96861	//       "description": "Project ID for this request.",
96862	//       "location": "path",
96863	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
96864	//       "required": true,
96865	//       "type": "string"
96866	//     }
96867	//   },
96868	//   "path": "{project}/global/licenses/{license}",
96869	//   "response": {
96870	//     "$ref": "License"
96871	//   },
96872	//   "scopes": [
96873	//     "https://www.googleapis.com/auth/cloud-platform",
96874	//     "https://www.googleapis.com/auth/compute",
96875	//     "https://www.googleapis.com/auth/compute.readonly"
96876	//   ]
96877	// }
96878
96879}
96880
96881// method id "compute.licenses.getIamPolicy":
96882
96883type LicensesGetIamPolicyCall struct {
96884	s            *Service
96885	project      string
96886	resource     string
96887	urlParams_   gensupport.URLParams
96888	ifNoneMatch_ string
96889	ctx_         context.Context
96890	header_      http.Header
96891}
96892
96893// GetIamPolicy: Gets the access control policy for a resource. May be
96894// empty if no such policy or resource exists. (== suppress_warning
96895// http-rest-shadowed ==)
96896func (r *LicensesService) GetIamPolicy(project string, resource string) *LicensesGetIamPolicyCall {
96897	c := &LicensesGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
96898	c.project = project
96899	c.resource = resource
96900	return c
96901}
96902
96903// OptionsRequestedPolicyVersion sets the optional parameter
96904// "optionsRequestedPolicyVersion": Requested IAM Policy version.
96905func (c *LicensesGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *LicensesGetIamPolicyCall {
96906	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
96907	return c
96908}
96909
96910// Fields allows partial responses to be retrieved. See
96911// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
96912// for more information.
96913func (c *LicensesGetIamPolicyCall) Fields(s ...googleapi.Field) *LicensesGetIamPolicyCall {
96914	c.urlParams_.Set("fields", googleapi.CombineFields(s))
96915	return c
96916}
96917
96918// IfNoneMatch sets the optional parameter which makes the operation
96919// fail if the object's ETag matches the given value. This is useful for
96920// getting updates only after the object has changed since the last
96921// request. Use googleapi.IsNotModified to check whether the response
96922// error from Do is the result of In-None-Match.
96923func (c *LicensesGetIamPolicyCall) IfNoneMatch(entityTag string) *LicensesGetIamPolicyCall {
96924	c.ifNoneMatch_ = entityTag
96925	return c
96926}
96927
96928// Context sets the context to be used in this call's Do method. Any
96929// pending HTTP request will be aborted if the provided context is
96930// canceled.
96931func (c *LicensesGetIamPolicyCall) Context(ctx context.Context) *LicensesGetIamPolicyCall {
96932	c.ctx_ = ctx
96933	return c
96934}
96935
96936// Header returns an http.Header that can be modified by the caller to
96937// add HTTP headers to the request.
96938func (c *LicensesGetIamPolicyCall) Header() http.Header {
96939	if c.header_ == nil {
96940		c.header_ = make(http.Header)
96941	}
96942	return c.header_
96943}
96944
96945func (c *LicensesGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
96946	reqHeaders := make(http.Header)
96947	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
96948	for k, v := range c.header_ {
96949		reqHeaders[k] = v
96950	}
96951	reqHeaders.Set("User-Agent", c.s.userAgent())
96952	if c.ifNoneMatch_ != "" {
96953		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
96954	}
96955	var body io.Reader = nil
96956	c.urlParams_.Set("alt", alt)
96957	c.urlParams_.Set("prettyPrint", "false")
96958	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/licenses/{resource}/getIamPolicy")
96959	urls += "?" + c.urlParams_.Encode()
96960	req, err := http.NewRequest("GET", urls, body)
96961	if err != nil {
96962		return nil, err
96963	}
96964	req.Header = reqHeaders
96965	googleapi.Expand(req.URL, map[string]string{
96966		"project":  c.project,
96967		"resource": c.resource,
96968	})
96969	return gensupport.SendRequest(c.ctx_, c.s.client, req)
96970}
96971
96972// Do executes the "compute.licenses.getIamPolicy" call.
96973// Exactly one of *Policy or error will be non-nil. Any non-2xx status
96974// code is an error. Response headers are in either
96975// *Policy.ServerResponse.Header or (if a response was returned at all)
96976// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
96977// check whether the returned error was because http.StatusNotModified
96978// was returned.
96979func (c *LicensesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
96980	gensupport.SetOptions(c.urlParams_, opts...)
96981	res, err := c.doRequest("json")
96982	if res != nil && res.StatusCode == http.StatusNotModified {
96983		if res.Body != nil {
96984			res.Body.Close()
96985		}
96986		return nil, &googleapi.Error{
96987			Code:   res.StatusCode,
96988			Header: res.Header,
96989		}
96990	}
96991	if err != nil {
96992		return nil, err
96993	}
96994	defer googleapi.CloseBody(res)
96995	if err := googleapi.CheckResponse(res); err != nil {
96996		return nil, err
96997	}
96998	ret := &Policy{
96999		ServerResponse: googleapi.ServerResponse{
97000			Header:         res.Header,
97001			HTTPStatusCode: res.StatusCode,
97002		},
97003	}
97004	target := &ret
97005	if err := gensupport.DecodeResponse(target, res); err != nil {
97006		return nil, err
97007	}
97008	return ret, nil
97009	// {
97010	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists. (== suppress_warning http-rest-shadowed ==)",
97011	//   "httpMethod": "GET",
97012	//   "id": "compute.licenses.getIamPolicy",
97013	//   "parameterOrder": [
97014	//     "project",
97015	//     "resource"
97016	//   ],
97017	//   "parameters": {
97018	//     "optionsRequestedPolicyVersion": {
97019	//       "description": "Requested IAM Policy version.",
97020	//       "format": "int32",
97021	//       "location": "query",
97022	//       "type": "integer"
97023	//     },
97024	//     "project": {
97025	//       "description": "Project ID for this request.",
97026	//       "location": "path",
97027	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
97028	//       "required": true,
97029	//       "type": "string"
97030	//     },
97031	//     "resource": {
97032	//       "description": "Name or id of the resource for this request.",
97033	//       "location": "path",
97034	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
97035	//       "required": true,
97036	//       "type": "string"
97037	//     }
97038	//   },
97039	//   "path": "{project}/global/licenses/{resource}/getIamPolicy",
97040	//   "response": {
97041	//     "$ref": "Policy"
97042	//   },
97043	//   "scopes": [
97044	//     "https://www.googleapis.com/auth/cloud-platform",
97045	//     "https://www.googleapis.com/auth/compute",
97046	//     "https://www.googleapis.com/auth/compute.readonly"
97047	//   ]
97048	// }
97049
97050}
97051
97052// method id "compute.licenses.insert":
97053
97054type LicensesInsertCall struct {
97055	s          *Service
97056	project    string
97057	license    *License
97058	urlParams_ gensupport.URLParams
97059	ctx_       context.Context
97060	header_    http.Header
97061}
97062
97063// Insert: Create a License resource in the specified project. (==
97064// suppress_warning http-rest-shadowed ==)
97065func (r *LicensesService) Insert(project string, license *License) *LicensesInsertCall {
97066	c := &LicensesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
97067	c.project = project
97068	c.license = license
97069	return c
97070}
97071
97072// RequestId sets the optional parameter "requestId": An optional
97073// request ID to identify requests. Specify a unique request ID so that
97074// if you must retry your request, the server will know to ignore the
97075// request if it has already been completed.
97076//
97077// For example, consider a situation where you make an initial request
97078// and the request times out. If you make the request again with the
97079// same request ID, the server can check if original operation with the
97080// same request ID was received, and if so, will ignore the second
97081// request. This prevents clients from accidentally creating duplicate
97082// commitments.
97083//
97084// The request ID must be a valid UUID with the exception that zero UUID
97085// is not supported (00000000-0000-0000-0000-000000000000).
97086func (c *LicensesInsertCall) RequestId(requestId string) *LicensesInsertCall {
97087	c.urlParams_.Set("requestId", requestId)
97088	return c
97089}
97090
97091// Fields allows partial responses to be retrieved. See
97092// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
97093// for more information.
97094func (c *LicensesInsertCall) Fields(s ...googleapi.Field) *LicensesInsertCall {
97095	c.urlParams_.Set("fields", googleapi.CombineFields(s))
97096	return c
97097}
97098
97099// Context sets the context to be used in this call's Do method. Any
97100// pending HTTP request will be aborted if the provided context is
97101// canceled.
97102func (c *LicensesInsertCall) Context(ctx context.Context) *LicensesInsertCall {
97103	c.ctx_ = ctx
97104	return c
97105}
97106
97107// Header returns an http.Header that can be modified by the caller to
97108// add HTTP headers to the request.
97109func (c *LicensesInsertCall) Header() http.Header {
97110	if c.header_ == nil {
97111		c.header_ = make(http.Header)
97112	}
97113	return c.header_
97114}
97115
97116func (c *LicensesInsertCall) doRequest(alt string) (*http.Response, error) {
97117	reqHeaders := make(http.Header)
97118	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
97119	for k, v := range c.header_ {
97120		reqHeaders[k] = v
97121	}
97122	reqHeaders.Set("User-Agent", c.s.userAgent())
97123	var body io.Reader = nil
97124	body, err := googleapi.WithoutDataWrapper.JSONReader(c.license)
97125	if err != nil {
97126		return nil, err
97127	}
97128	reqHeaders.Set("Content-Type", "application/json")
97129	c.urlParams_.Set("alt", alt)
97130	c.urlParams_.Set("prettyPrint", "false")
97131	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/licenses")
97132	urls += "?" + c.urlParams_.Encode()
97133	req, err := http.NewRequest("POST", urls, body)
97134	if err != nil {
97135		return nil, err
97136	}
97137	req.Header = reqHeaders
97138	googleapi.Expand(req.URL, map[string]string{
97139		"project": c.project,
97140	})
97141	return gensupport.SendRequest(c.ctx_, c.s.client, req)
97142}
97143
97144// Do executes the "compute.licenses.insert" call.
97145// Exactly one of *Operation or error will be non-nil. Any non-2xx
97146// status code is an error. Response headers are in either
97147// *Operation.ServerResponse.Header or (if a response was returned at
97148// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
97149// to check whether the returned error was because
97150// http.StatusNotModified was returned.
97151func (c *LicensesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
97152	gensupport.SetOptions(c.urlParams_, opts...)
97153	res, err := c.doRequest("json")
97154	if res != nil && res.StatusCode == http.StatusNotModified {
97155		if res.Body != nil {
97156			res.Body.Close()
97157		}
97158		return nil, &googleapi.Error{
97159			Code:   res.StatusCode,
97160			Header: res.Header,
97161		}
97162	}
97163	if err != nil {
97164		return nil, err
97165	}
97166	defer googleapi.CloseBody(res)
97167	if err := googleapi.CheckResponse(res); err != nil {
97168		return nil, err
97169	}
97170	ret := &Operation{
97171		ServerResponse: googleapi.ServerResponse{
97172			Header:         res.Header,
97173			HTTPStatusCode: res.StatusCode,
97174		},
97175	}
97176	target := &ret
97177	if err := gensupport.DecodeResponse(target, res); err != nil {
97178		return nil, err
97179	}
97180	return ret, nil
97181	// {
97182	//   "description": "Create a License resource in the specified project. (== suppress_warning http-rest-shadowed ==)",
97183	//   "httpMethod": "POST",
97184	//   "id": "compute.licenses.insert",
97185	//   "parameterOrder": [
97186	//     "project"
97187	//   ],
97188	//   "parameters": {
97189	//     "project": {
97190	//       "description": "Project ID for this request.",
97191	//       "location": "path",
97192	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
97193	//       "required": true,
97194	//       "type": "string"
97195	//     },
97196	//     "requestId": {
97197	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
97198	//       "location": "query",
97199	//       "type": "string"
97200	//     }
97201	//   },
97202	//   "path": "{project}/global/licenses",
97203	//   "request": {
97204	//     "$ref": "License"
97205	//   },
97206	//   "response": {
97207	//     "$ref": "Operation"
97208	//   },
97209	//   "scopes": [
97210	//     "https://www.googleapis.com/auth/cloud-platform",
97211	//     "https://www.googleapis.com/auth/compute",
97212	//     "https://www.googleapis.com/auth/devstorage.full_control",
97213	//     "https://www.googleapis.com/auth/devstorage.read_only",
97214	//     "https://www.googleapis.com/auth/devstorage.read_write"
97215	//   ]
97216	// }
97217
97218}
97219
97220// method id "compute.licenses.list":
97221
97222type LicensesListCall struct {
97223	s            *Service
97224	project      string
97225	urlParams_   gensupport.URLParams
97226	ifNoneMatch_ string
97227	ctx_         context.Context
97228	header_      http.Header
97229}
97230
97231// List: Retrieves the list of licenses available in the specified
97232// project. This method does not get any licenses that belong to other
97233// projects, including licenses attached to publicly-available images,
97234// like Debian 9. If you want to get a list of publicly-available
97235// licenses, use this method to make a request to the respective image
97236// project, such as debian-cloud or windows-cloud. (== suppress_warning
97237// http-rest-shadowed ==)
97238func (r *LicensesService) List(project string) *LicensesListCall {
97239	c := &LicensesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
97240	c.project = project
97241	return c
97242}
97243
97244// Filter sets the optional parameter "filter": A filter expression that
97245// filters resources listed in the response. The expression must specify
97246// the field name, a comparison operator, and the value that you want to
97247// use for filtering. The value must be a string, a number, or a
97248// boolean. The comparison operator must be either =, !=, >, or <.
97249//
97250// For example, if you are filtering Compute Engine instances, you can
97251// exclude instances named example-instance by specifying name !=
97252// example-instance.
97253//
97254// You can also filter nested fields. For example, you could specify
97255// scheduling.automaticRestart = false to include instances only if they
97256// are not scheduled for automatic restarts. You can use filtering on
97257// nested fields to filter based on resource labels.
97258//
97259// To filter on multiple expressions, provide each separate expression
97260// within parentheses. For example, (scheduling.automaticRestart = true)
97261// (cpuPlatform = "Intel Skylake"). By default, each expression is an
97262// AND expression. However, you can include AND and OR expressions
97263// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
97264// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
97265// true).
97266func (c *LicensesListCall) Filter(filter string) *LicensesListCall {
97267	c.urlParams_.Set("filter", filter)
97268	return c
97269}
97270
97271// MaxResults sets the optional parameter "maxResults": The maximum
97272// number of results per page that should be returned. If the number of
97273// available results is larger than maxResults, Compute Engine returns a
97274// nextPageToken that can be used to get the next page of results in
97275// subsequent list requests. Acceptable values are 0 to 500, inclusive.
97276// (Default: 500)
97277func (c *LicensesListCall) MaxResults(maxResults int64) *LicensesListCall {
97278	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
97279	return c
97280}
97281
97282// OrderBy sets the optional parameter "orderBy": Sorts list results by
97283// a certain order. By default, results are returned in alphanumerical
97284// order based on the resource name.
97285//
97286// You can also sort results in descending order based on the creation
97287// timestamp using orderBy="creationTimestamp desc". This sorts results
97288// based on the creationTimestamp field in reverse chronological order
97289// (newest result first). Use this to sort resources like operations so
97290// that the newest operation is returned first.
97291//
97292// Currently, only sorting by name or creationTimestamp desc is
97293// supported.
97294func (c *LicensesListCall) OrderBy(orderBy string) *LicensesListCall {
97295	c.urlParams_.Set("orderBy", orderBy)
97296	return c
97297}
97298
97299// PageToken sets the optional parameter "pageToken": Specifies a page
97300// token to use. Set pageToken to the nextPageToken returned by a
97301// previous list request to get the next page of results.
97302func (c *LicensesListCall) PageToken(pageToken string) *LicensesListCall {
97303	c.urlParams_.Set("pageToken", pageToken)
97304	return c
97305}
97306
97307// Fields allows partial responses to be retrieved. See
97308// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
97309// for more information.
97310func (c *LicensesListCall) Fields(s ...googleapi.Field) *LicensesListCall {
97311	c.urlParams_.Set("fields", googleapi.CombineFields(s))
97312	return c
97313}
97314
97315// IfNoneMatch sets the optional parameter which makes the operation
97316// fail if the object's ETag matches the given value. This is useful for
97317// getting updates only after the object has changed since the last
97318// request. Use googleapi.IsNotModified to check whether the response
97319// error from Do is the result of In-None-Match.
97320func (c *LicensesListCall) IfNoneMatch(entityTag string) *LicensesListCall {
97321	c.ifNoneMatch_ = entityTag
97322	return c
97323}
97324
97325// Context sets the context to be used in this call's Do method. Any
97326// pending HTTP request will be aborted if the provided context is
97327// canceled.
97328func (c *LicensesListCall) Context(ctx context.Context) *LicensesListCall {
97329	c.ctx_ = ctx
97330	return c
97331}
97332
97333// Header returns an http.Header that can be modified by the caller to
97334// add HTTP headers to the request.
97335func (c *LicensesListCall) Header() http.Header {
97336	if c.header_ == nil {
97337		c.header_ = make(http.Header)
97338	}
97339	return c.header_
97340}
97341
97342func (c *LicensesListCall) doRequest(alt string) (*http.Response, error) {
97343	reqHeaders := make(http.Header)
97344	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
97345	for k, v := range c.header_ {
97346		reqHeaders[k] = v
97347	}
97348	reqHeaders.Set("User-Agent", c.s.userAgent())
97349	if c.ifNoneMatch_ != "" {
97350		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
97351	}
97352	var body io.Reader = nil
97353	c.urlParams_.Set("alt", alt)
97354	c.urlParams_.Set("prettyPrint", "false")
97355	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/licenses")
97356	urls += "?" + c.urlParams_.Encode()
97357	req, err := http.NewRequest("GET", urls, body)
97358	if err != nil {
97359		return nil, err
97360	}
97361	req.Header = reqHeaders
97362	googleapi.Expand(req.URL, map[string]string{
97363		"project": c.project,
97364	})
97365	return gensupport.SendRequest(c.ctx_, c.s.client, req)
97366}
97367
97368// Do executes the "compute.licenses.list" call.
97369// Exactly one of *LicensesListResponse or error will be non-nil. Any
97370// non-2xx status code is an error. Response headers are in either
97371// *LicensesListResponse.ServerResponse.Header or (if a response was
97372// returned at all) in error.(*googleapi.Error).Header. Use
97373// googleapi.IsNotModified to check whether the returned error was
97374// because http.StatusNotModified was returned.
97375func (c *LicensesListCall) Do(opts ...googleapi.CallOption) (*LicensesListResponse, error) {
97376	gensupport.SetOptions(c.urlParams_, opts...)
97377	res, err := c.doRequest("json")
97378	if res != nil && res.StatusCode == http.StatusNotModified {
97379		if res.Body != nil {
97380			res.Body.Close()
97381		}
97382		return nil, &googleapi.Error{
97383			Code:   res.StatusCode,
97384			Header: res.Header,
97385		}
97386	}
97387	if err != nil {
97388		return nil, err
97389	}
97390	defer googleapi.CloseBody(res)
97391	if err := googleapi.CheckResponse(res); err != nil {
97392		return nil, err
97393	}
97394	ret := &LicensesListResponse{
97395		ServerResponse: googleapi.ServerResponse{
97396			Header:         res.Header,
97397			HTTPStatusCode: res.StatusCode,
97398		},
97399	}
97400	target := &ret
97401	if err := gensupport.DecodeResponse(target, res); err != nil {
97402		return nil, err
97403	}
97404	return ret, nil
97405	// {
97406	//   "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. (== suppress_warning http-rest-shadowed ==)",
97407	//   "httpMethod": "GET",
97408	//   "id": "compute.licenses.list",
97409	//   "parameterOrder": [
97410	//     "project"
97411	//   ],
97412	//   "parameters": {
97413	//     "filter": {
97414	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
97415	//       "location": "query",
97416	//       "type": "string"
97417	//     },
97418	//     "maxResults": {
97419	//       "default": "500",
97420	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
97421	//       "format": "uint32",
97422	//       "location": "query",
97423	//       "minimum": "0",
97424	//       "type": "integer"
97425	//     },
97426	//     "orderBy": {
97427	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
97428	//       "location": "query",
97429	//       "type": "string"
97430	//     },
97431	//     "pageToken": {
97432	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
97433	//       "location": "query",
97434	//       "type": "string"
97435	//     },
97436	//     "project": {
97437	//       "description": "Project ID for this request.",
97438	//       "location": "path",
97439	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
97440	//       "required": true,
97441	//       "type": "string"
97442	//     }
97443	//   },
97444	//   "path": "{project}/global/licenses",
97445	//   "response": {
97446	//     "$ref": "LicensesListResponse"
97447	//   },
97448	//   "scopes": [
97449	//     "https://www.googleapis.com/auth/cloud-platform",
97450	//     "https://www.googleapis.com/auth/compute",
97451	//     "https://www.googleapis.com/auth/compute.readonly"
97452	//   ]
97453	// }
97454
97455}
97456
97457// Pages invokes f for each page of results.
97458// A non-nil error returned from f will halt the iteration.
97459// The provided context supersedes any context provided to the Context method.
97460func (c *LicensesListCall) Pages(ctx context.Context, f func(*LicensesListResponse) error) error {
97461	c.ctx_ = ctx
97462	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
97463	for {
97464		x, err := c.Do()
97465		if err != nil {
97466			return err
97467		}
97468		if err := f(x); err != nil {
97469			return err
97470		}
97471		if x.NextPageToken == "" {
97472			return nil
97473		}
97474		c.PageToken(x.NextPageToken)
97475	}
97476}
97477
97478// method id "compute.licenses.setIamPolicy":
97479
97480type LicensesSetIamPolicyCall struct {
97481	s                      *Service
97482	project                string
97483	resource               string
97484	globalsetpolicyrequest *GlobalSetPolicyRequest
97485	urlParams_             gensupport.URLParams
97486	ctx_                   context.Context
97487	header_                http.Header
97488}
97489
97490// SetIamPolicy: Sets the access control policy on the specified
97491// resource. Replaces any existing policy. (== suppress_warning
97492// http-rest-shadowed ==)
97493func (r *LicensesService) SetIamPolicy(project string, resource string, globalsetpolicyrequest *GlobalSetPolicyRequest) *LicensesSetIamPolicyCall {
97494	c := &LicensesSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
97495	c.project = project
97496	c.resource = resource
97497	c.globalsetpolicyrequest = globalsetpolicyrequest
97498	return c
97499}
97500
97501// Fields allows partial responses to be retrieved. See
97502// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
97503// for more information.
97504func (c *LicensesSetIamPolicyCall) Fields(s ...googleapi.Field) *LicensesSetIamPolicyCall {
97505	c.urlParams_.Set("fields", googleapi.CombineFields(s))
97506	return c
97507}
97508
97509// Context sets the context to be used in this call's Do method. Any
97510// pending HTTP request will be aborted if the provided context is
97511// canceled.
97512func (c *LicensesSetIamPolicyCall) Context(ctx context.Context) *LicensesSetIamPolicyCall {
97513	c.ctx_ = ctx
97514	return c
97515}
97516
97517// Header returns an http.Header that can be modified by the caller to
97518// add HTTP headers to the request.
97519func (c *LicensesSetIamPolicyCall) Header() http.Header {
97520	if c.header_ == nil {
97521		c.header_ = make(http.Header)
97522	}
97523	return c.header_
97524}
97525
97526func (c *LicensesSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
97527	reqHeaders := make(http.Header)
97528	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
97529	for k, v := range c.header_ {
97530		reqHeaders[k] = v
97531	}
97532	reqHeaders.Set("User-Agent", c.s.userAgent())
97533	var body io.Reader = nil
97534	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetpolicyrequest)
97535	if err != nil {
97536		return nil, err
97537	}
97538	reqHeaders.Set("Content-Type", "application/json")
97539	c.urlParams_.Set("alt", alt)
97540	c.urlParams_.Set("prettyPrint", "false")
97541	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/licenses/{resource}/setIamPolicy")
97542	urls += "?" + c.urlParams_.Encode()
97543	req, err := http.NewRequest("POST", urls, body)
97544	if err != nil {
97545		return nil, err
97546	}
97547	req.Header = reqHeaders
97548	googleapi.Expand(req.URL, map[string]string{
97549		"project":  c.project,
97550		"resource": c.resource,
97551	})
97552	return gensupport.SendRequest(c.ctx_, c.s.client, req)
97553}
97554
97555// Do executes the "compute.licenses.setIamPolicy" call.
97556// Exactly one of *Policy or error will be non-nil. Any non-2xx status
97557// code is an error. Response headers are in either
97558// *Policy.ServerResponse.Header or (if a response was returned at all)
97559// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
97560// check whether the returned error was because http.StatusNotModified
97561// was returned.
97562func (c *LicensesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
97563	gensupport.SetOptions(c.urlParams_, opts...)
97564	res, err := c.doRequest("json")
97565	if res != nil && res.StatusCode == http.StatusNotModified {
97566		if res.Body != nil {
97567			res.Body.Close()
97568		}
97569		return nil, &googleapi.Error{
97570			Code:   res.StatusCode,
97571			Header: res.Header,
97572		}
97573	}
97574	if err != nil {
97575		return nil, err
97576	}
97577	defer googleapi.CloseBody(res)
97578	if err := googleapi.CheckResponse(res); err != nil {
97579		return nil, err
97580	}
97581	ret := &Policy{
97582		ServerResponse: googleapi.ServerResponse{
97583			Header:         res.Header,
97584			HTTPStatusCode: res.StatusCode,
97585		},
97586	}
97587	target := &ret
97588	if err := gensupport.DecodeResponse(target, res); err != nil {
97589		return nil, err
97590	}
97591	return ret, nil
97592	// {
97593	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy. (== suppress_warning http-rest-shadowed ==)",
97594	//   "httpMethod": "POST",
97595	//   "id": "compute.licenses.setIamPolicy",
97596	//   "parameterOrder": [
97597	//     "project",
97598	//     "resource"
97599	//   ],
97600	//   "parameters": {
97601	//     "project": {
97602	//       "description": "Project ID for this request.",
97603	//       "location": "path",
97604	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
97605	//       "required": true,
97606	//       "type": "string"
97607	//     },
97608	//     "resource": {
97609	//       "description": "Name or id of the resource for this request.",
97610	//       "location": "path",
97611	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
97612	//       "required": true,
97613	//       "type": "string"
97614	//     }
97615	//   },
97616	//   "path": "{project}/global/licenses/{resource}/setIamPolicy",
97617	//   "request": {
97618	//     "$ref": "GlobalSetPolicyRequest"
97619	//   },
97620	//   "response": {
97621	//     "$ref": "Policy"
97622	//   },
97623	//   "scopes": [
97624	//     "https://www.googleapis.com/auth/cloud-platform",
97625	//     "https://www.googleapis.com/auth/compute"
97626	//   ]
97627	// }
97628
97629}
97630
97631// method id "compute.licenses.testIamPermissions":
97632
97633type LicensesTestIamPermissionsCall struct {
97634	s                      *Service
97635	project                string
97636	resource               string
97637	testpermissionsrequest *TestPermissionsRequest
97638	urlParams_             gensupport.URLParams
97639	ctx_                   context.Context
97640	header_                http.Header
97641}
97642
97643// TestIamPermissions: Returns permissions that a caller has on the
97644// specified resource. (== suppress_warning http-rest-shadowed ==)
97645func (r *LicensesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *LicensesTestIamPermissionsCall {
97646	c := &LicensesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
97647	c.project = project
97648	c.resource = resource
97649	c.testpermissionsrequest = testpermissionsrequest
97650	return c
97651}
97652
97653// Fields allows partial responses to be retrieved. See
97654// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
97655// for more information.
97656func (c *LicensesTestIamPermissionsCall) Fields(s ...googleapi.Field) *LicensesTestIamPermissionsCall {
97657	c.urlParams_.Set("fields", googleapi.CombineFields(s))
97658	return c
97659}
97660
97661// Context sets the context to be used in this call's Do method. Any
97662// pending HTTP request will be aborted if the provided context is
97663// canceled.
97664func (c *LicensesTestIamPermissionsCall) Context(ctx context.Context) *LicensesTestIamPermissionsCall {
97665	c.ctx_ = ctx
97666	return c
97667}
97668
97669// Header returns an http.Header that can be modified by the caller to
97670// add HTTP headers to the request.
97671func (c *LicensesTestIamPermissionsCall) Header() http.Header {
97672	if c.header_ == nil {
97673		c.header_ = make(http.Header)
97674	}
97675	return c.header_
97676}
97677
97678func (c *LicensesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
97679	reqHeaders := make(http.Header)
97680	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
97681	for k, v := range c.header_ {
97682		reqHeaders[k] = v
97683	}
97684	reqHeaders.Set("User-Agent", c.s.userAgent())
97685	var body io.Reader = nil
97686	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
97687	if err != nil {
97688		return nil, err
97689	}
97690	reqHeaders.Set("Content-Type", "application/json")
97691	c.urlParams_.Set("alt", alt)
97692	c.urlParams_.Set("prettyPrint", "false")
97693	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/licenses/{resource}/testIamPermissions")
97694	urls += "?" + c.urlParams_.Encode()
97695	req, err := http.NewRequest("POST", urls, body)
97696	if err != nil {
97697		return nil, err
97698	}
97699	req.Header = reqHeaders
97700	googleapi.Expand(req.URL, map[string]string{
97701		"project":  c.project,
97702		"resource": c.resource,
97703	})
97704	return gensupport.SendRequest(c.ctx_, c.s.client, req)
97705}
97706
97707// Do executes the "compute.licenses.testIamPermissions" call.
97708// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
97709// non-2xx status code is an error. Response headers are in either
97710// *TestPermissionsResponse.ServerResponse.Header or (if a response was
97711// returned at all) in error.(*googleapi.Error).Header. Use
97712// googleapi.IsNotModified to check whether the returned error was
97713// because http.StatusNotModified was returned.
97714func (c *LicensesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
97715	gensupport.SetOptions(c.urlParams_, opts...)
97716	res, err := c.doRequest("json")
97717	if res != nil && res.StatusCode == http.StatusNotModified {
97718		if res.Body != nil {
97719			res.Body.Close()
97720		}
97721		return nil, &googleapi.Error{
97722			Code:   res.StatusCode,
97723			Header: res.Header,
97724		}
97725	}
97726	if err != nil {
97727		return nil, err
97728	}
97729	defer googleapi.CloseBody(res)
97730	if err := googleapi.CheckResponse(res); err != nil {
97731		return nil, err
97732	}
97733	ret := &TestPermissionsResponse{
97734		ServerResponse: googleapi.ServerResponse{
97735			Header:         res.Header,
97736			HTTPStatusCode: res.StatusCode,
97737		},
97738	}
97739	target := &ret
97740	if err := gensupport.DecodeResponse(target, res); err != nil {
97741		return nil, err
97742	}
97743	return ret, nil
97744	// {
97745	//   "description": "Returns permissions that a caller has on the specified resource. (== suppress_warning http-rest-shadowed ==)",
97746	//   "httpMethod": "POST",
97747	//   "id": "compute.licenses.testIamPermissions",
97748	//   "parameterOrder": [
97749	//     "project",
97750	//     "resource"
97751	//   ],
97752	//   "parameters": {
97753	//     "project": {
97754	//       "description": "Project ID for this request.",
97755	//       "location": "path",
97756	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
97757	//       "required": true,
97758	//       "type": "string"
97759	//     },
97760	//     "resource": {
97761	//       "description": "Name or id of the resource for this request.",
97762	//       "location": "path",
97763	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
97764	//       "required": true,
97765	//       "type": "string"
97766	//     }
97767	//   },
97768	//   "path": "{project}/global/licenses/{resource}/testIamPermissions",
97769	//   "request": {
97770	//     "$ref": "TestPermissionsRequest"
97771	//   },
97772	//   "response": {
97773	//     "$ref": "TestPermissionsResponse"
97774	//   },
97775	//   "scopes": [
97776	//     "https://www.googleapis.com/auth/cloud-platform",
97777	//     "https://www.googleapis.com/auth/compute",
97778	//     "https://www.googleapis.com/auth/compute.readonly"
97779	//   ]
97780	// }
97781
97782}
97783
97784// method id "compute.machineImages.delete":
97785
97786type MachineImagesDeleteCall struct {
97787	s            *Service
97788	project      string
97789	machineImage string
97790	urlParams_   gensupport.URLParams
97791	ctx_         context.Context
97792	header_      http.Header
97793}
97794
97795// Delete: Deletes the specified machine image. Deleting a machine image
97796// is permanent and cannot be undone. (== suppress_warning
97797// http-rest-shadowed ==)
97798func (r *MachineImagesService) Delete(project string, machineImage string) *MachineImagesDeleteCall {
97799	c := &MachineImagesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
97800	c.project = project
97801	c.machineImage = machineImage
97802	return c
97803}
97804
97805// RequestId sets the optional parameter "requestId": An optional
97806// request ID to identify requests. Specify a unique request ID so that
97807// if you must retry your request, the server will know to ignore the
97808// request if it has already been completed.
97809//
97810// For example, consider a situation where you make an initial request
97811// and the request times out. If you make the request again with the
97812// same request ID, the server can check if original operation with the
97813// same request ID was received, and if so, will ignore the second
97814// request. This prevents clients from accidentally creating duplicate
97815// commitments.
97816//
97817// The request ID must be a valid UUID with the exception that zero UUID
97818// is not supported (00000000-0000-0000-0000-000000000000).
97819func (c *MachineImagesDeleteCall) RequestId(requestId string) *MachineImagesDeleteCall {
97820	c.urlParams_.Set("requestId", requestId)
97821	return c
97822}
97823
97824// Fields allows partial responses to be retrieved. See
97825// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
97826// for more information.
97827func (c *MachineImagesDeleteCall) Fields(s ...googleapi.Field) *MachineImagesDeleteCall {
97828	c.urlParams_.Set("fields", googleapi.CombineFields(s))
97829	return c
97830}
97831
97832// Context sets the context to be used in this call's Do method. Any
97833// pending HTTP request will be aborted if the provided context is
97834// canceled.
97835func (c *MachineImagesDeleteCall) Context(ctx context.Context) *MachineImagesDeleteCall {
97836	c.ctx_ = ctx
97837	return c
97838}
97839
97840// Header returns an http.Header that can be modified by the caller to
97841// add HTTP headers to the request.
97842func (c *MachineImagesDeleteCall) Header() http.Header {
97843	if c.header_ == nil {
97844		c.header_ = make(http.Header)
97845	}
97846	return c.header_
97847}
97848
97849func (c *MachineImagesDeleteCall) doRequest(alt string) (*http.Response, error) {
97850	reqHeaders := make(http.Header)
97851	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
97852	for k, v := range c.header_ {
97853		reqHeaders[k] = v
97854	}
97855	reqHeaders.Set("User-Agent", c.s.userAgent())
97856	var body io.Reader = nil
97857	c.urlParams_.Set("alt", alt)
97858	c.urlParams_.Set("prettyPrint", "false")
97859	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/machineImages/{machineImage}")
97860	urls += "?" + c.urlParams_.Encode()
97861	req, err := http.NewRequest("DELETE", urls, body)
97862	if err != nil {
97863		return nil, err
97864	}
97865	req.Header = reqHeaders
97866	googleapi.Expand(req.URL, map[string]string{
97867		"project":      c.project,
97868		"machineImage": c.machineImage,
97869	})
97870	return gensupport.SendRequest(c.ctx_, c.s.client, req)
97871}
97872
97873// Do executes the "compute.machineImages.delete" call.
97874// Exactly one of *Operation or error will be non-nil. Any non-2xx
97875// status code is an error. Response headers are in either
97876// *Operation.ServerResponse.Header or (if a response was returned at
97877// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
97878// to check whether the returned error was because
97879// http.StatusNotModified was returned.
97880func (c *MachineImagesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
97881	gensupport.SetOptions(c.urlParams_, opts...)
97882	res, err := c.doRequest("json")
97883	if res != nil && res.StatusCode == http.StatusNotModified {
97884		if res.Body != nil {
97885			res.Body.Close()
97886		}
97887		return nil, &googleapi.Error{
97888			Code:   res.StatusCode,
97889			Header: res.Header,
97890		}
97891	}
97892	if err != nil {
97893		return nil, err
97894	}
97895	defer googleapi.CloseBody(res)
97896	if err := googleapi.CheckResponse(res); err != nil {
97897		return nil, err
97898	}
97899	ret := &Operation{
97900		ServerResponse: googleapi.ServerResponse{
97901			Header:         res.Header,
97902			HTTPStatusCode: res.StatusCode,
97903		},
97904	}
97905	target := &ret
97906	if err := gensupport.DecodeResponse(target, res); err != nil {
97907		return nil, err
97908	}
97909	return ret, nil
97910	// {
97911	//   "description": "Deletes the specified machine image. Deleting a machine image is permanent and cannot be undone. (== suppress_warning http-rest-shadowed ==)",
97912	//   "httpMethod": "DELETE",
97913	//   "id": "compute.machineImages.delete",
97914	//   "parameterOrder": [
97915	//     "project",
97916	//     "machineImage"
97917	//   ],
97918	//   "parameters": {
97919	//     "machineImage": {
97920	//       "description": "The name of the machine image to delete.",
97921	//       "location": "path",
97922	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
97923	//       "required": true,
97924	//       "type": "string"
97925	//     },
97926	//     "project": {
97927	//       "description": "Project ID for this request.",
97928	//       "location": "path",
97929	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
97930	//       "required": true,
97931	//       "type": "string"
97932	//     },
97933	//     "requestId": {
97934	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
97935	//       "location": "query",
97936	//       "type": "string"
97937	//     }
97938	//   },
97939	//   "path": "{project}/global/machineImages/{machineImage}",
97940	//   "response": {
97941	//     "$ref": "Operation"
97942	//   },
97943	//   "scopes": [
97944	//     "https://www.googleapis.com/auth/cloud-platform",
97945	//     "https://www.googleapis.com/auth/compute"
97946	//   ]
97947	// }
97948
97949}
97950
97951// method id "compute.machineImages.get":
97952
97953type MachineImagesGetCall struct {
97954	s            *Service
97955	project      string
97956	machineImage string
97957	urlParams_   gensupport.URLParams
97958	ifNoneMatch_ string
97959	ctx_         context.Context
97960	header_      http.Header
97961}
97962
97963// Get: Returns the specified machine image. Gets a list of available
97964// machine images by making a list() request. (== suppress_warning
97965// http-rest-shadowed ==)
97966func (r *MachineImagesService) Get(project string, machineImage string) *MachineImagesGetCall {
97967	c := &MachineImagesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
97968	c.project = project
97969	c.machineImage = machineImage
97970	return c
97971}
97972
97973// Fields allows partial responses to be retrieved. See
97974// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
97975// for more information.
97976func (c *MachineImagesGetCall) Fields(s ...googleapi.Field) *MachineImagesGetCall {
97977	c.urlParams_.Set("fields", googleapi.CombineFields(s))
97978	return c
97979}
97980
97981// IfNoneMatch sets the optional parameter which makes the operation
97982// fail if the object's ETag matches the given value. This is useful for
97983// getting updates only after the object has changed since the last
97984// request. Use googleapi.IsNotModified to check whether the response
97985// error from Do is the result of In-None-Match.
97986func (c *MachineImagesGetCall) IfNoneMatch(entityTag string) *MachineImagesGetCall {
97987	c.ifNoneMatch_ = entityTag
97988	return c
97989}
97990
97991// Context sets the context to be used in this call's Do method. Any
97992// pending HTTP request will be aborted if the provided context is
97993// canceled.
97994func (c *MachineImagesGetCall) Context(ctx context.Context) *MachineImagesGetCall {
97995	c.ctx_ = ctx
97996	return c
97997}
97998
97999// Header returns an http.Header that can be modified by the caller to
98000// add HTTP headers to the request.
98001func (c *MachineImagesGetCall) Header() http.Header {
98002	if c.header_ == nil {
98003		c.header_ = make(http.Header)
98004	}
98005	return c.header_
98006}
98007
98008func (c *MachineImagesGetCall) doRequest(alt string) (*http.Response, error) {
98009	reqHeaders := make(http.Header)
98010	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
98011	for k, v := range c.header_ {
98012		reqHeaders[k] = v
98013	}
98014	reqHeaders.Set("User-Agent", c.s.userAgent())
98015	if c.ifNoneMatch_ != "" {
98016		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
98017	}
98018	var body io.Reader = nil
98019	c.urlParams_.Set("alt", alt)
98020	c.urlParams_.Set("prettyPrint", "false")
98021	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/machineImages/{machineImage}")
98022	urls += "?" + c.urlParams_.Encode()
98023	req, err := http.NewRequest("GET", urls, body)
98024	if err != nil {
98025		return nil, err
98026	}
98027	req.Header = reqHeaders
98028	googleapi.Expand(req.URL, map[string]string{
98029		"project":      c.project,
98030		"machineImage": c.machineImage,
98031	})
98032	return gensupport.SendRequest(c.ctx_, c.s.client, req)
98033}
98034
98035// Do executes the "compute.machineImages.get" call.
98036// Exactly one of *MachineImage or error will be non-nil. Any non-2xx
98037// status code is an error. Response headers are in either
98038// *MachineImage.ServerResponse.Header or (if a response was returned at
98039// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
98040// to check whether the returned error was because
98041// http.StatusNotModified was returned.
98042func (c *MachineImagesGetCall) Do(opts ...googleapi.CallOption) (*MachineImage, error) {
98043	gensupport.SetOptions(c.urlParams_, opts...)
98044	res, err := c.doRequest("json")
98045	if res != nil && res.StatusCode == http.StatusNotModified {
98046		if res.Body != nil {
98047			res.Body.Close()
98048		}
98049		return nil, &googleapi.Error{
98050			Code:   res.StatusCode,
98051			Header: res.Header,
98052		}
98053	}
98054	if err != nil {
98055		return nil, err
98056	}
98057	defer googleapi.CloseBody(res)
98058	if err := googleapi.CheckResponse(res); err != nil {
98059		return nil, err
98060	}
98061	ret := &MachineImage{
98062		ServerResponse: googleapi.ServerResponse{
98063			Header:         res.Header,
98064			HTTPStatusCode: res.StatusCode,
98065		},
98066	}
98067	target := &ret
98068	if err := gensupport.DecodeResponse(target, res); err != nil {
98069		return nil, err
98070	}
98071	return ret, nil
98072	// {
98073	//   "description": "Returns the specified machine image. Gets a list of available machine images by making a list() request. (== suppress_warning http-rest-shadowed ==)",
98074	//   "httpMethod": "GET",
98075	//   "id": "compute.machineImages.get",
98076	//   "parameterOrder": [
98077	//     "project",
98078	//     "machineImage"
98079	//   ],
98080	//   "parameters": {
98081	//     "machineImage": {
98082	//       "description": "The name of the machine image.",
98083	//       "location": "path",
98084	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
98085	//       "required": true,
98086	//       "type": "string"
98087	//     },
98088	//     "project": {
98089	//       "description": "Project ID for this request.",
98090	//       "location": "path",
98091	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
98092	//       "required": true,
98093	//       "type": "string"
98094	//     }
98095	//   },
98096	//   "path": "{project}/global/machineImages/{machineImage}",
98097	//   "response": {
98098	//     "$ref": "MachineImage"
98099	//   },
98100	//   "scopes": [
98101	//     "https://www.googleapis.com/auth/cloud-platform",
98102	//     "https://www.googleapis.com/auth/compute",
98103	//     "https://www.googleapis.com/auth/compute.readonly"
98104	//   ]
98105	// }
98106
98107}
98108
98109// method id "compute.machineImages.getIamPolicy":
98110
98111type MachineImagesGetIamPolicyCall struct {
98112	s            *Service
98113	project      string
98114	resource     string
98115	urlParams_   gensupport.URLParams
98116	ifNoneMatch_ string
98117	ctx_         context.Context
98118	header_      http.Header
98119}
98120
98121// GetIamPolicy: Gets the access control policy for a resource. May be
98122// empty if no such policy or resource exists. (== suppress_warning
98123// http-rest-shadowed ==)
98124func (r *MachineImagesService) GetIamPolicy(project string, resource string) *MachineImagesGetIamPolicyCall {
98125	c := &MachineImagesGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
98126	c.project = project
98127	c.resource = resource
98128	return c
98129}
98130
98131// OptionsRequestedPolicyVersion sets the optional parameter
98132// "optionsRequestedPolicyVersion": Requested IAM Policy version.
98133func (c *MachineImagesGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *MachineImagesGetIamPolicyCall {
98134	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
98135	return c
98136}
98137
98138// Fields allows partial responses to be retrieved. See
98139// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
98140// for more information.
98141func (c *MachineImagesGetIamPolicyCall) Fields(s ...googleapi.Field) *MachineImagesGetIamPolicyCall {
98142	c.urlParams_.Set("fields", googleapi.CombineFields(s))
98143	return c
98144}
98145
98146// IfNoneMatch sets the optional parameter which makes the operation
98147// fail if the object's ETag matches the given value. This is useful for
98148// getting updates only after the object has changed since the last
98149// request. Use googleapi.IsNotModified to check whether the response
98150// error from Do is the result of In-None-Match.
98151func (c *MachineImagesGetIamPolicyCall) IfNoneMatch(entityTag string) *MachineImagesGetIamPolicyCall {
98152	c.ifNoneMatch_ = entityTag
98153	return c
98154}
98155
98156// Context sets the context to be used in this call's Do method. Any
98157// pending HTTP request will be aborted if the provided context is
98158// canceled.
98159func (c *MachineImagesGetIamPolicyCall) Context(ctx context.Context) *MachineImagesGetIamPolicyCall {
98160	c.ctx_ = ctx
98161	return c
98162}
98163
98164// Header returns an http.Header that can be modified by the caller to
98165// add HTTP headers to the request.
98166func (c *MachineImagesGetIamPolicyCall) Header() http.Header {
98167	if c.header_ == nil {
98168		c.header_ = make(http.Header)
98169	}
98170	return c.header_
98171}
98172
98173func (c *MachineImagesGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
98174	reqHeaders := make(http.Header)
98175	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
98176	for k, v := range c.header_ {
98177		reqHeaders[k] = v
98178	}
98179	reqHeaders.Set("User-Agent", c.s.userAgent())
98180	if c.ifNoneMatch_ != "" {
98181		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
98182	}
98183	var body io.Reader = nil
98184	c.urlParams_.Set("alt", alt)
98185	c.urlParams_.Set("prettyPrint", "false")
98186	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/machineImages/{resource}/getIamPolicy")
98187	urls += "?" + c.urlParams_.Encode()
98188	req, err := http.NewRequest("GET", urls, body)
98189	if err != nil {
98190		return nil, err
98191	}
98192	req.Header = reqHeaders
98193	googleapi.Expand(req.URL, map[string]string{
98194		"project":  c.project,
98195		"resource": c.resource,
98196	})
98197	return gensupport.SendRequest(c.ctx_, c.s.client, req)
98198}
98199
98200// Do executes the "compute.machineImages.getIamPolicy" call.
98201// Exactly one of *Policy or error will be non-nil. Any non-2xx status
98202// code is an error. Response headers are in either
98203// *Policy.ServerResponse.Header or (if a response was returned at all)
98204// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
98205// check whether the returned error was because http.StatusNotModified
98206// was returned.
98207func (c *MachineImagesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
98208	gensupport.SetOptions(c.urlParams_, opts...)
98209	res, err := c.doRequest("json")
98210	if res != nil && res.StatusCode == http.StatusNotModified {
98211		if res.Body != nil {
98212			res.Body.Close()
98213		}
98214		return nil, &googleapi.Error{
98215			Code:   res.StatusCode,
98216			Header: res.Header,
98217		}
98218	}
98219	if err != nil {
98220		return nil, err
98221	}
98222	defer googleapi.CloseBody(res)
98223	if err := googleapi.CheckResponse(res); err != nil {
98224		return nil, err
98225	}
98226	ret := &Policy{
98227		ServerResponse: googleapi.ServerResponse{
98228			Header:         res.Header,
98229			HTTPStatusCode: res.StatusCode,
98230		},
98231	}
98232	target := &ret
98233	if err := gensupport.DecodeResponse(target, res); err != nil {
98234		return nil, err
98235	}
98236	return ret, nil
98237	// {
98238	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists. (== suppress_warning http-rest-shadowed ==)",
98239	//   "httpMethod": "GET",
98240	//   "id": "compute.machineImages.getIamPolicy",
98241	//   "parameterOrder": [
98242	//     "project",
98243	//     "resource"
98244	//   ],
98245	//   "parameters": {
98246	//     "optionsRequestedPolicyVersion": {
98247	//       "description": "Requested IAM Policy version.",
98248	//       "format": "int32",
98249	//       "location": "query",
98250	//       "type": "integer"
98251	//     },
98252	//     "project": {
98253	//       "description": "Project ID for this request.",
98254	//       "location": "path",
98255	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
98256	//       "required": true,
98257	//       "type": "string"
98258	//     },
98259	//     "resource": {
98260	//       "description": "Name or id of the resource for this request.",
98261	//       "location": "path",
98262	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
98263	//       "required": true,
98264	//       "type": "string"
98265	//     }
98266	//   },
98267	//   "path": "{project}/global/machineImages/{resource}/getIamPolicy",
98268	//   "response": {
98269	//     "$ref": "Policy"
98270	//   },
98271	//   "scopes": [
98272	//     "https://www.googleapis.com/auth/cloud-platform",
98273	//     "https://www.googleapis.com/auth/compute",
98274	//     "https://www.googleapis.com/auth/compute.readonly"
98275	//   ]
98276	// }
98277
98278}
98279
98280// method id "compute.machineImages.insert":
98281
98282type MachineImagesInsertCall struct {
98283	s            *Service
98284	project      string
98285	machineimage *MachineImage
98286	urlParams_   gensupport.URLParams
98287	ctx_         context.Context
98288	header_      http.Header
98289}
98290
98291// Insert: Creates a machine image in the specified project using the
98292// data that is included in the request. If you are creating a new
98293// machine image to update an existing instance, your new machine image
98294// should use the same network or, if applicable, the same subnetwork as
98295// the original instance. (== suppress_warning http-rest-shadowed ==)
98296func (r *MachineImagesService) Insert(project string, machineimage *MachineImage) *MachineImagesInsertCall {
98297	c := &MachineImagesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
98298	c.project = project
98299	c.machineimage = machineimage
98300	return c
98301}
98302
98303// RequestId sets the optional parameter "requestId": An optional
98304// request ID to identify requests. Specify a unique request ID so that
98305// if you must retry your request, the server will know to ignore the
98306// request if it has already been completed.
98307//
98308// For example, consider a situation where you make an initial request
98309// and the request times out. If you make the request again with the
98310// same request ID, the server can check if original operation with the
98311// same request ID was received, and if so, will ignore the second
98312// request. This prevents clients from accidentally creating duplicate
98313// commitments.
98314//
98315// The request ID must be a valid UUID with the exception that zero UUID
98316// is not supported (00000000-0000-0000-0000-000000000000).
98317func (c *MachineImagesInsertCall) RequestId(requestId string) *MachineImagesInsertCall {
98318	c.urlParams_.Set("requestId", requestId)
98319	return c
98320}
98321
98322// SourceInstance sets the optional parameter "sourceInstance":
98323// Required. Source instance that is used to create the machine image
98324// from.
98325func (c *MachineImagesInsertCall) SourceInstance(sourceInstance string) *MachineImagesInsertCall {
98326	c.urlParams_.Set("sourceInstance", sourceInstance)
98327	return c
98328}
98329
98330// Fields allows partial responses to be retrieved. See
98331// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
98332// for more information.
98333func (c *MachineImagesInsertCall) Fields(s ...googleapi.Field) *MachineImagesInsertCall {
98334	c.urlParams_.Set("fields", googleapi.CombineFields(s))
98335	return c
98336}
98337
98338// Context sets the context to be used in this call's Do method. Any
98339// pending HTTP request will be aborted if the provided context is
98340// canceled.
98341func (c *MachineImagesInsertCall) Context(ctx context.Context) *MachineImagesInsertCall {
98342	c.ctx_ = ctx
98343	return c
98344}
98345
98346// Header returns an http.Header that can be modified by the caller to
98347// add HTTP headers to the request.
98348func (c *MachineImagesInsertCall) Header() http.Header {
98349	if c.header_ == nil {
98350		c.header_ = make(http.Header)
98351	}
98352	return c.header_
98353}
98354
98355func (c *MachineImagesInsertCall) doRequest(alt string) (*http.Response, error) {
98356	reqHeaders := make(http.Header)
98357	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
98358	for k, v := range c.header_ {
98359		reqHeaders[k] = v
98360	}
98361	reqHeaders.Set("User-Agent", c.s.userAgent())
98362	var body io.Reader = nil
98363	body, err := googleapi.WithoutDataWrapper.JSONReader(c.machineimage)
98364	if err != nil {
98365		return nil, err
98366	}
98367	reqHeaders.Set("Content-Type", "application/json")
98368	c.urlParams_.Set("alt", alt)
98369	c.urlParams_.Set("prettyPrint", "false")
98370	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/machineImages")
98371	urls += "?" + c.urlParams_.Encode()
98372	req, err := http.NewRequest("POST", urls, body)
98373	if err != nil {
98374		return nil, err
98375	}
98376	req.Header = reqHeaders
98377	googleapi.Expand(req.URL, map[string]string{
98378		"project": c.project,
98379	})
98380	return gensupport.SendRequest(c.ctx_, c.s.client, req)
98381}
98382
98383// Do executes the "compute.machineImages.insert" call.
98384// Exactly one of *Operation or error will be non-nil. Any non-2xx
98385// status code is an error. Response headers are in either
98386// *Operation.ServerResponse.Header or (if a response was returned at
98387// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
98388// to check whether the returned error was because
98389// http.StatusNotModified was returned.
98390func (c *MachineImagesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
98391	gensupport.SetOptions(c.urlParams_, opts...)
98392	res, err := c.doRequest("json")
98393	if res != nil && res.StatusCode == http.StatusNotModified {
98394		if res.Body != nil {
98395			res.Body.Close()
98396		}
98397		return nil, &googleapi.Error{
98398			Code:   res.StatusCode,
98399			Header: res.Header,
98400		}
98401	}
98402	if err != nil {
98403		return nil, err
98404	}
98405	defer googleapi.CloseBody(res)
98406	if err := googleapi.CheckResponse(res); err != nil {
98407		return nil, err
98408	}
98409	ret := &Operation{
98410		ServerResponse: googleapi.ServerResponse{
98411			Header:         res.Header,
98412			HTTPStatusCode: res.StatusCode,
98413		},
98414	}
98415	target := &ret
98416	if err := gensupport.DecodeResponse(target, res); err != nil {
98417		return nil, err
98418	}
98419	return ret, nil
98420	// {
98421	//   "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. (== suppress_warning http-rest-shadowed ==)",
98422	//   "httpMethod": "POST",
98423	//   "id": "compute.machineImages.insert",
98424	//   "parameterOrder": [
98425	//     "project"
98426	//   ],
98427	//   "parameters": {
98428	//     "project": {
98429	//       "description": "Project ID for this request.",
98430	//       "location": "path",
98431	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
98432	//       "required": true,
98433	//       "type": "string"
98434	//     },
98435	//     "requestId": {
98436	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
98437	//       "location": "query",
98438	//       "type": "string"
98439	//     },
98440	//     "sourceInstance": {
98441	//       "description": "Required. Source instance that is used to create the machine image from.",
98442	//       "location": "query",
98443	//       "type": "string"
98444	//     }
98445	//   },
98446	//   "path": "{project}/global/machineImages",
98447	//   "request": {
98448	//     "$ref": "MachineImage"
98449	//   },
98450	//   "response": {
98451	//     "$ref": "Operation"
98452	//   },
98453	//   "scopes": [
98454	//     "https://www.googleapis.com/auth/cloud-platform",
98455	//     "https://www.googleapis.com/auth/compute"
98456	//   ]
98457	// }
98458
98459}
98460
98461// method id "compute.machineImages.list":
98462
98463type MachineImagesListCall struct {
98464	s            *Service
98465	project      string
98466	urlParams_   gensupport.URLParams
98467	ifNoneMatch_ string
98468	ctx_         context.Context
98469	header_      http.Header
98470}
98471
98472// List: Retrieves a list of machine images that are contained within
98473// the specified project. (== suppress_warning http-rest-shadowed ==)
98474func (r *MachineImagesService) List(project string) *MachineImagesListCall {
98475	c := &MachineImagesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
98476	c.project = project
98477	return c
98478}
98479
98480// Filter sets the optional parameter "filter": A filter expression that
98481// filters resources listed in the response. The expression must specify
98482// the field name, a comparison operator, and the value that you want to
98483// use for filtering. The value must be a string, a number, or a
98484// boolean. The comparison operator must be either =, !=, >, or <.
98485//
98486// For example, if you are filtering Compute Engine instances, you can
98487// exclude instances named example-instance by specifying name !=
98488// example-instance.
98489//
98490// You can also filter nested fields. For example, you could specify
98491// scheduling.automaticRestart = false to include instances only if they
98492// are not scheduled for automatic restarts. You can use filtering on
98493// nested fields to filter based on resource labels.
98494//
98495// To filter on multiple expressions, provide each separate expression
98496// within parentheses. For example, (scheduling.automaticRestart = true)
98497// (cpuPlatform = "Intel Skylake"). By default, each expression is an
98498// AND expression. However, you can include AND and OR expressions
98499// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
98500// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
98501// true).
98502func (c *MachineImagesListCall) Filter(filter string) *MachineImagesListCall {
98503	c.urlParams_.Set("filter", filter)
98504	return c
98505}
98506
98507// MaxResults sets the optional parameter "maxResults": The maximum
98508// number of results per page that should be returned. If the number of
98509// available results is larger than maxResults, Compute Engine returns a
98510// nextPageToken that can be used to get the next page of results in
98511// subsequent list requests. Acceptable values are 0 to 500, inclusive.
98512// (Default: 500)
98513func (c *MachineImagesListCall) MaxResults(maxResults int64) *MachineImagesListCall {
98514	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
98515	return c
98516}
98517
98518// OrderBy sets the optional parameter "orderBy": Sorts list results by
98519// a certain order. By default, results are returned in alphanumerical
98520// order based on the resource name.
98521//
98522// You can also sort results in descending order based on the creation
98523// timestamp using orderBy="creationTimestamp desc". This sorts results
98524// based on the creationTimestamp field in reverse chronological order
98525// (newest result first). Use this to sort resources like operations so
98526// that the newest operation is returned first.
98527//
98528// Currently, only sorting by name or creationTimestamp desc is
98529// supported.
98530func (c *MachineImagesListCall) OrderBy(orderBy string) *MachineImagesListCall {
98531	c.urlParams_.Set("orderBy", orderBy)
98532	return c
98533}
98534
98535// PageToken sets the optional parameter "pageToken": Specifies a page
98536// token to use. Set pageToken to the nextPageToken returned by a
98537// previous list request to get the next page of results.
98538func (c *MachineImagesListCall) PageToken(pageToken string) *MachineImagesListCall {
98539	c.urlParams_.Set("pageToken", pageToken)
98540	return c
98541}
98542
98543// Fields allows partial responses to be retrieved. See
98544// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
98545// for more information.
98546func (c *MachineImagesListCall) Fields(s ...googleapi.Field) *MachineImagesListCall {
98547	c.urlParams_.Set("fields", googleapi.CombineFields(s))
98548	return c
98549}
98550
98551// IfNoneMatch sets the optional parameter which makes the operation
98552// fail if the object's ETag matches the given value. This is useful for
98553// getting updates only after the object has changed since the last
98554// request. Use googleapi.IsNotModified to check whether the response
98555// error from Do is the result of In-None-Match.
98556func (c *MachineImagesListCall) IfNoneMatch(entityTag string) *MachineImagesListCall {
98557	c.ifNoneMatch_ = entityTag
98558	return c
98559}
98560
98561// Context sets the context to be used in this call's Do method. Any
98562// pending HTTP request will be aborted if the provided context is
98563// canceled.
98564func (c *MachineImagesListCall) Context(ctx context.Context) *MachineImagesListCall {
98565	c.ctx_ = ctx
98566	return c
98567}
98568
98569// Header returns an http.Header that can be modified by the caller to
98570// add HTTP headers to the request.
98571func (c *MachineImagesListCall) Header() http.Header {
98572	if c.header_ == nil {
98573		c.header_ = make(http.Header)
98574	}
98575	return c.header_
98576}
98577
98578func (c *MachineImagesListCall) doRequest(alt string) (*http.Response, error) {
98579	reqHeaders := make(http.Header)
98580	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
98581	for k, v := range c.header_ {
98582		reqHeaders[k] = v
98583	}
98584	reqHeaders.Set("User-Agent", c.s.userAgent())
98585	if c.ifNoneMatch_ != "" {
98586		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
98587	}
98588	var body io.Reader = nil
98589	c.urlParams_.Set("alt", alt)
98590	c.urlParams_.Set("prettyPrint", "false")
98591	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/machineImages")
98592	urls += "?" + c.urlParams_.Encode()
98593	req, err := http.NewRequest("GET", urls, body)
98594	if err != nil {
98595		return nil, err
98596	}
98597	req.Header = reqHeaders
98598	googleapi.Expand(req.URL, map[string]string{
98599		"project": c.project,
98600	})
98601	return gensupport.SendRequest(c.ctx_, c.s.client, req)
98602}
98603
98604// Do executes the "compute.machineImages.list" call.
98605// Exactly one of *MachineImageList or error will be non-nil. Any
98606// non-2xx status code is an error. Response headers are in either
98607// *MachineImageList.ServerResponse.Header or (if a response was
98608// returned at all) in error.(*googleapi.Error).Header. Use
98609// googleapi.IsNotModified to check whether the returned error was
98610// because http.StatusNotModified was returned.
98611func (c *MachineImagesListCall) Do(opts ...googleapi.CallOption) (*MachineImageList, error) {
98612	gensupport.SetOptions(c.urlParams_, opts...)
98613	res, err := c.doRequest("json")
98614	if res != nil && res.StatusCode == http.StatusNotModified {
98615		if res.Body != nil {
98616			res.Body.Close()
98617		}
98618		return nil, &googleapi.Error{
98619			Code:   res.StatusCode,
98620			Header: res.Header,
98621		}
98622	}
98623	if err != nil {
98624		return nil, err
98625	}
98626	defer googleapi.CloseBody(res)
98627	if err := googleapi.CheckResponse(res); err != nil {
98628		return nil, err
98629	}
98630	ret := &MachineImageList{
98631		ServerResponse: googleapi.ServerResponse{
98632			Header:         res.Header,
98633			HTTPStatusCode: res.StatusCode,
98634		},
98635	}
98636	target := &ret
98637	if err := gensupport.DecodeResponse(target, res); err != nil {
98638		return nil, err
98639	}
98640	return ret, nil
98641	// {
98642	//   "description": "Retrieves a list of machine images that are contained within the specified project. (== suppress_warning http-rest-shadowed ==)",
98643	//   "httpMethod": "GET",
98644	//   "id": "compute.machineImages.list",
98645	//   "parameterOrder": [
98646	//     "project"
98647	//   ],
98648	//   "parameters": {
98649	//     "filter": {
98650	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
98651	//       "location": "query",
98652	//       "type": "string"
98653	//     },
98654	//     "maxResults": {
98655	//       "default": "500",
98656	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
98657	//       "format": "uint32",
98658	//       "location": "query",
98659	//       "minimum": "0",
98660	//       "type": "integer"
98661	//     },
98662	//     "orderBy": {
98663	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
98664	//       "location": "query",
98665	//       "type": "string"
98666	//     },
98667	//     "pageToken": {
98668	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
98669	//       "location": "query",
98670	//       "type": "string"
98671	//     },
98672	//     "project": {
98673	//       "description": "Project ID for this request.",
98674	//       "location": "path",
98675	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
98676	//       "required": true,
98677	//       "type": "string"
98678	//     }
98679	//   },
98680	//   "path": "{project}/global/machineImages",
98681	//   "response": {
98682	//     "$ref": "MachineImageList"
98683	//   },
98684	//   "scopes": [
98685	//     "https://www.googleapis.com/auth/cloud-platform",
98686	//     "https://www.googleapis.com/auth/compute",
98687	//     "https://www.googleapis.com/auth/compute.readonly"
98688	//   ]
98689	// }
98690
98691}
98692
98693// Pages invokes f for each page of results.
98694// A non-nil error returned from f will halt the iteration.
98695// The provided context supersedes any context provided to the Context method.
98696func (c *MachineImagesListCall) Pages(ctx context.Context, f func(*MachineImageList) error) error {
98697	c.ctx_ = ctx
98698	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
98699	for {
98700		x, err := c.Do()
98701		if err != nil {
98702			return err
98703		}
98704		if err := f(x); err != nil {
98705			return err
98706		}
98707		if x.NextPageToken == "" {
98708			return nil
98709		}
98710		c.PageToken(x.NextPageToken)
98711	}
98712}
98713
98714// method id "compute.machineImages.setIamPolicy":
98715
98716type MachineImagesSetIamPolicyCall struct {
98717	s                      *Service
98718	project                string
98719	resource               string
98720	globalsetpolicyrequest *GlobalSetPolicyRequest
98721	urlParams_             gensupport.URLParams
98722	ctx_                   context.Context
98723	header_                http.Header
98724}
98725
98726// SetIamPolicy: Sets the access control policy on the specified
98727// resource. Replaces any existing policy. (== suppress_warning
98728// http-rest-shadowed ==)
98729func (r *MachineImagesService) SetIamPolicy(project string, resource string, globalsetpolicyrequest *GlobalSetPolicyRequest) *MachineImagesSetIamPolicyCall {
98730	c := &MachineImagesSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
98731	c.project = project
98732	c.resource = resource
98733	c.globalsetpolicyrequest = globalsetpolicyrequest
98734	return c
98735}
98736
98737// Fields allows partial responses to be retrieved. See
98738// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
98739// for more information.
98740func (c *MachineImagesSetIamPolicyCall) Fields(s ...googleapi.Field) *MachineImagesSetIamPolicyCall {
98741	c.urlParams_.Set("fields", googleapi.CombineFields(s))
98742	return c
98743}
98744
98745// Context sets the context to be used in this call's Do method. Any
98746// pending HTTP request will be aborted if the provided context is
98747// canceled.
98748func (c *MachineImagesSetIamPolicyCall) Context(ctx context.Context) *MachineImagesSetIamPolicyCall {
98749	c.ctx_ = ctx
98750	return c
98751}
98752
98753// Header returns an http.Header that can be modified by the caller to
98754// add HTTP headers to the request.
98755func (c *MachineImagesSetIamPolicyCall) Header() http.Header {
98756	if c.header_ == nil {
98757		c.header_ = make(http.Header)
98758	}
98759	return c.header_
98760}
98761
98762func (c *MachineImagesSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
98763	reqHeaders := make(http.Header)
98764	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
98765	for k, v := range c.header_ {
98766		reqHeaders[k] = v
98767	}
98768	reqHeaders.Set("User-Agent", c.s.userAgent())
98769	var body io.Reader = nil
98770	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetpolicyrequest)
98771	if err != nil {
98772		return nil, err
98773	}
98774	reqHeaders.Set("Content-Type", "application/json")
98775	c.urlParams_.Set("alt", alt)
98776	c.urlParams_.Set("prettyPrint", "false")
98777	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/machineImages/{resource}/setIamPolicy")
98778	urls += "?" + c.urlParams_.Encode()
98779	req, err := http.NewRequest("POST", urls, body)
98780	if err != nil {
98781		return nil, err
98782	}
98783	req.Header = reqHeaders
98784	googleapi.Expand(req.URL, map[string]string{
98785		"project":  c.project,
98786		"resource": c.resource,
98787	})
98788	return gensupport.SendRequest(c.ctx_, c.s.client, req)
98789}
98790
98791// Do executes the "compute.machineImages.setIamPolicy" call.
98792// Exactly one of *Policy or error will be non-nil. Any non-2xx status
98793// code is an error. Response headers are in either
98794// *Policy.ServerResponse.Header or (if a response was returned at all)
98795// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
98796// check whether the returned error was because http.StatusNotModified
98797// was returned.
98798func (c *MachineImagesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
98799	gensupport.SetOptions(c.urlParams_, opts...)
98800	res, err := c.doRequest("json")
98801	if res != nil && res.StatusCode == http.StatusNotModified {
98802		if res.Body != nil {
98803			res.Body.Close()
98804		}
98805		return nil, &googleapi.Error{
98806			Code:   res.StatusCode,
98807			Header: res.Header,
98808		}
98809	}
98810	if err != nil {
98811		return nil, err
98812	}
98813	defer googleapi.CloseBody(res)
98814	if err := googleapi.CheckResponse(res); err != nil {
98815		return nil, err
98816	}
98817	ret := &Policy{
98818		ServerResponse: googleapi.ServerResponse{
98819			Header:         res.Header,
98820			HTTPStatusCode: res.StatusCode,
98821		},
98822	}
98823	target := &ret
98824	if err := gensupport.DecodeResponse(target, res); err != nil {
98825		return nil, err
98826	}
98827	return ret, nil
98828	// {
98829	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy. (== suppress_warning http-rest-shadowed ==)",
98830	//   "httpMethod": "POST",
98831	//   "id": "compute.machineImages.setIamPolicy",
98832	//   "parameterOrder": [
98833	//     "project",
98834	//     "resource"
98835	//   ],
98836	//   "parameters": {
98837	//     "project": {
98838	//       "description": "Project ID for this request.",
98839	//       "location": "path",
98840	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
98841	//       "required": true,
98842	//       "type": "string"
98843	//     },
98844	//     "resource": {
98845	//       "description": "Name or id of the resource for this request.",
98846	//       "location": "path",
98847	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
98848	//       "required": true,
98849	//       "type": "string"
98850	//     }
98851	//   },
98852	//   "path": "{project}/global/machineImages/{resource}/setIamPolicy",
98853	//   "request": {
98854	//     "$ref": "GlobalSetPolicyRequest"
98855	//   },
98856	//   "response": {
98857	//     "$ref": "Policy"
98858	//   },
98859	//   "scopes": [
98860	//     "https://www.googleapis.com/auth/cloud-platform",
98861	//     "https://www.googleapis.com/auth/compute"
98862	//   ]
98863	// }
98864
98865}
98866
98867// method id "compute.machineImages.testIamPermissions":
98868
98869type MachineImagesTestIamPermissionsCall struct {
98870	s                      *Service
98871	project                string
98872	resource               string
98873	testpermissionsrequest *TestPermissionsRequest
98874	urlParams_             gensupport.URLParams
98875	ctx_                   context.Context
98876	header_                http.Header
98877}
98878
98879// TestIamPermissions: Returns permissions that a caller has on the
98880// specified resource. (== suppress_warning http-rest-shadowed ==)
98881func (r *MachineImagesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *MachineImagesTestIamPermissionsCall {
98882	c := &MachineImagesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
98883	c.project = project
98884	c.resource = resource
98885	c.testpermissionsrequest = testpermissionsrequest
98886	return c
98887}
98888
98889// Fields allows partial responses to be retrieved. See
98890// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
98891// for more information.
98892func (c *MachineImagesTestIamPermissionsCall) Fields(s ...googleapi.Field) *MachineImagesTestIamPermissionsCall {
98893	c.urlParams_.Set("fields", googleapi.CombineFields(s))
98894	return c
98895}
98896
98897// Context sets the context to be used in this call's Do method. Any
98898// pending HTTP request will be aborted if the provided context is
98899// canceled.
98900func (c *MachineImagesTestIamPermissionsCall) Context(ctx context.Context) *MachineImagesTestIamPermissionsCall {
98901	c.ctx_ = ctx
98902	return c
98903}
98904
98905// Header returns an http.Header that can be modified by the caller to
98906// add HTTP headers to the request.
98907func (c *MachineImagesTestIamPermissionsCall) Header() http.Header {
98908	if c.header_ == nil {
98909		c.header_ = make(http.Header)
98910	}
98911	return c.header_
98912}
98913
98914func (c *MachineImagesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
98915	reqHeaders := make(http.Header)
98916	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
98917	for k, v := range c.header_ {
98918		reqHeaders[k] = v
98919	}
98920	reqHeaders.Set("User-Agent", c.s.userAgent())
98921	var body io.Reader = nil
98922	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
98923	if err != nil {
98924		return nil, err
98925	}
98926	reqHeaders.Set("Content-Type", "application/json")
98927	c.urlParams_.Set("alt", alt)
98928	c.urlParams_.Set("prettyPrint", "false")
98929	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/machineImages/{resource}/testIamPermissions")
98930	urls += "?" + c.urlParams_.Encode()
98931	req, err := http.NewRequest("POST", urls, body)
98932	if err != nil {
98933		return nil, err
98934	}
98935	req.Header = reqHeaders
98936	googleapi.Expand(req.URL, map[string]string{
98937		"project":  c.project,
98938		"resource": c.resource,
98939	})
98940	return gensupport.SendRequest(c.ctx_, c.s.client, req)
98941}
98942
98943// Do executes the "compute.machineImages.testIamPermissions" call.
98944// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
98945// non-2xx status code is an error. Response headers are in either
98946// *TestPermissionsResponse.ServerResponse.Header or (if a response was
98947// returned at all) in error.(*googleapi.Error).Header. Use
98948// googleapi.IsNotModified to check whether the returned error was
98949// because http.StatusNotModified was returned.
98950func (c *MachineImagesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
98951	gensupport.SetOptions(c.urlParams_, opts...)
98952	res, err := c.doRequest("json")
98953	if res != nil && res.StatusCode == http.StatusNotModified {
98954		if res.Body != nil {
98955			res.Body.Close()
98956		}
98957		return nil, &googleapi.Error{
98958			Code:   res.StatusCode,
98959			Header: res.Header,
98960		}
98961	}
98962	if err != nil {
98963		return nil, err
98964	}
98965	defer googleapi.CloseBody(res)
98966	if err := googleapi.CheckResponse(res); err != nil {
98967		return nil, err
98968	}
98969	ret := &TestPermissionsResponse{
98970		ServerResponse: googleapi.ServerResponse{
98971			Header:         res.Header,
98972			HTTPStatusCode: res.StatusCode,
98973		},
98974	}
98975	target := &ret
98976	if err := gensupport.DecodeResponse(target, res); err != nil {
98977		return nil, err
98978	}
98979	return ret, nil
98980	// {
98981	//   "description": "Returns permissions that a caller has on the specified resource. (== suppress_warning http-rest-shadowed ==)",
98982	//   "httpMethod": "POST",
98983	//   "id": "compute.machineImages.testIamPermissions",
98984	//   "parameterOrder": [
98985	//     "project",
98986	//     "resource"
98987	//   ],
98988	//   "parameters": {
98989	//     "project": {
98990	//       "description": "Project ID for this request.",
98991	//       "location": "path",
98992	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
98993	//       "required": true,
98994	//       "type": "string"
98995	//     },
98996	//     "resource": {
98997	//       "description": "Name or id of the resource for this request.",
98998	//       "location": "path",
98999	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
99000	//       "required": true,
99001	//       "type": "string"
99002	//     }
99003	//   },
99004	//   "path": "{project}/global/machineImages/{resource}/testIamPermissions",
99005	//   "request": {
99006	//     "$ref": "TestPermissionsRequest"
99007	//   },
99008	//   "response": {
99009	//     "$ref": "TestPermissionsResponse"
99010	//   },
99011	//   "scopes": [
99012	//     "https://www.googleapis.com/auth/cloud-platform",
99013	//     "https://www.googleapis.com/auth/compute",
99014	//     "https://www.googleapis.com/auth/compute.readonly"
99015	//   ]
99016	// }
99017
99018}
99019
99020// method id "compute.machineTypes.aggregatedList":
99021
99022type MachineTypesAggregatedListCall struct {
99023	s            *Service
99024	project      string
99025	urlParams_   gensupport.URLParams
99026	ifNoneMatch_ string
99027	ctx_         context.Context
99028	header_      http.Header
99029}
99030
99031// AggregatedList: Retrieves an aggregated list of machine types. (==
99032// suppress_warning http-rest-shadowed ==)
99033// For details, see https://cloud.google.com/compute/docs/reference/latest/machineTypes/aggregatedList
99034func (r *MachineTypesService) AggregatedList(project string) *MachineTypesAggregatedListCall {
99035	c := &MachineTypesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
99036	c.project = project
99037	return c
99038}
99039
99040// Filter sets the optional parameter "filter": A filter expression that
99041// filters resources listed in the response. The expression must specify
99042// the field name, a comparison operator, and the value that you want to
99043// use for filtering. The value must be a string, a number, or a
99044// boolean. The comparison operator must be either =, !=, >, or <.
99045//
99046// For example, if you are filtering Compute Engine instances, you can
99047// exclude instances named example-instance by specifying name !=
99048// example-instance.
99049//
99050// You can also filter nested fields. For example, you could specify
99051// scheduling.automaticRestart = false to include instances only if they
99052// are not scheduled for automatic restarts. You can use filtering on
99053// nested fields to filter based on resource labels.
99054//
99055// To filter on multiple expressions, provide each separate expression
99056// within parentheses. For example, (scheduling.automaticRestart = true)
99057// (cpuPlatform = "Intel Skylake"). By default, each expression is an
99058// AND expression. However, you can include AND and OR expressions
99059// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
99060// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
99061// true).
99062func (c *MachineTypesAggregatedListCall) Filter(filter string) *MachineTypesAggregatedListCall {
99063	c.urlParams_.Set("filter", filter)
99064	return c
99065}
99066
99067// MaxResults sets the optional parameter "maxResults": The maximum
99068// number of results per page that should be returned. If the number of
99069// available results is larger than maxResults, Compute Engine returns a
99070// nextPageToken that can be used to get the next page of results in
99071// subsequent list requests. Acceptable values are 0 to 500, inclusive.
99072// (Default: 500)
99073func (c *MachineTypesAggregatedListCall) MaxResults(maxResults int64) *MachineTypesAggregatedListCall {
99074	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
99075	return c
99076}
99077
99078// OrderBy sets the optional parameter "orderBy": Sorts list results by
99079// a certain order. By default, results are returned in alphanumerical
99080// order based on the resource name.
99081//
99082// You can also sort results in descending order based on the creation
99083// timestamp using orderBy="creationTimestamp desc". This sorts results
99084// based on the creationTimestamp field in reverse chronological order
99085// (newest result first). Use this to sort resources like operations so
99086// that the newest operation is returned first.
99087//
99088// Currently, only sorting by name or creationTimestamp desc is
99089// supported.
99090func (c *MachineTypesAggregatedListCall) OrderBy(orderBy string) *MachineTypesAggregatedListCall {
99091	c.urlParams_.Set("orderBy", orderBy)
99092	return c
99093}
99094
99095// PageToken sets the optional parameter "pageToken": Specifies a page
99096// token to use. Set pageToken to the nextPageToken returned by a
99097// previous list request to get the next page of results.
99098func (c *MachineTypesAggregatedListCall) PageToken(pageToken string) *MachineTypesAggregatedListCall {
99099	c.urlParams_.Set("pageToken", pageToken)
99100	return c
99101}
99102
99103// Fields allows partial responses to be retrieved. See
99104// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
99105// for more information.
99106func (c *MachineTypesAggregatedListCall) Fields(s ...googleapi.Field) *MachineTypesAggregatedListCall {
99107	c.urlParams_.Set("fields", googleapi.CombineFields(s))
99108	return c
99109}
99110
99111// IfNoneMatch sets the optional parameter which makes the operation
99112// fail if the object's ETag matches the given value. This is useful for
99113// getting updates only after the object has changed since the last
99114// request. Use googleapi.IsNotModified to check whether the response
99115// error from Do is the result of In-None-Match.
99116func (c *MachineTypesAggregatedListCall) IfNoneMatch(entityTag string) *MachineTypesAggregatedListCall {
99117	c.ifNoneMatch_ = entityTag
99118	return c
99119}
99120
99121// Context sets the context to be used in this call's Do method. Any
99122// pending HTTP request will be aborted if the provided context is
99123// canceled.
99124func (c *MachineTypesAggregatedListCall) Context(ctx context.Context) *MachineTypesAggregatedListCall {
99125	c.ctx_ = ctx
99126	return c
99127}
99128
99129// Header returns an http.Header that can be modified by the caller to
99130// add HTTP headers to the request.
99131func (c *MachineTypesAggregatedListCall) Header() http.Header {
99132	if c.header_ == nil {
99133		c.header_ = make(http.Header)
99134	}
99135	return c.header_
99136}
99137
99138func (c *MachineTypesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
99139	reqHeaders := make(http.Header)
99140	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
99141	for k, v := range c.header_ {
99142		reqHeaders[k] = v
99143	}
99144	reqHeaders.Set("User-Agent", c.s.userAgent())
99145	if c.ifNoneMatch_ != "" {
99146		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
99147	}
99148	var body io.Reader = nil
99149	c.urlParams_.Set("alt", alt)
99150	c.urlParams_.Set("prettyPrint", "false")
99151	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/machineTypes")
99152	urls += "?" + c.urlParams_.Encode()
99153	req, err := http.NewRequest("GET", urls, body)
99154	if err != nil {
99155		return nil, err
99156	}
99157	req.Header = reqHeaders
99158	googleapi.Expand(req.URL, map[string]string{
99159		"project": c.project,
99160	})
99161	return gensupport.SendRequest(c.ctx_, c.s.client, req)
99162}
99163
99164// Do executes the "compute.machineTypes.aggregatedList" call.
99165// Exactly one of *MachineTypeAggregatedList or error will be non-nil.
99166// Any non-2xx status code is an error. Response headers are in either
99167// *MachineTypeAggregatedList.ServerResponse.Header or (if a response
99168// was returned at all) in error.(*googleapi.Error).Header. Use
99169// googleapi.IsNotModified to check whether the returned error was
99170// because http.StatusNotModified was returned.
99171func (c *MachineTypesAggregatedListCall) Do(opts ...googleapi.CallOption) (*MachineTypeAggregatedList, error) {
99172	gensupport.SetOptions(c.urlParams_, opts...)
99173	res, err := c.doRequest("json")
99174	if res != nil && res.StatusCode == http.StatusNotModified {
99175		if res.Body != nil {
99176			res.Body.Close()
99177		}
99178		return nil, &googleapi.Error{
99179			Code:   res.StatusCode,
99180			Header: res.Header,
99181		}
99182	}
99183	if err != nil {
99184		return nil, err
99185	}
99186	defer googleapi.CloseBody(res)
99187	if err := googleapi.CheckResponse(res); err != nil {
99188		return nil, err
99189	}
99190	ret := &MachineTypeAggregatedList{
99191		ServerResponse: googleapi.ServerResponse{
99192			Header:         res.Header,
99193			HTTPStatusCode: res.StatusCode,
99194		},
99195	}
99196	target := &ret
99197	if err := gensupport.DecodeResponse(target, res); err != nil {
99198		return nil, err
99199	}
99200	return ret, nil
99201	// {
99202	//   "description": "Retrieves an aggregated list of machine types. (== suppress_warning http-rest-shadowed ==)",
99203	//   "httpMethod": "GET",
99204	//   "id": "compute.machineTypes.aggregatedList",
99205	//   "parameterOrder": [
99206	//     "project"
99207	//   ],
99208	//   "parameters": {
99209	//     "filter": {
99210	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
99211	//       "location": "query",
99212	//       "type": "string"
99213	//     },
99214	//     "maxResults": {
99215	//       "default": "500",
99216	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
99217	//       "format": "uint32",
99218	//       "location": "query",
99219	//       "minimum": "0",
99220	//       "type": "integer"
99221	//     },
99222	//     "orderBy": {
99223	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
99224	//       "location": "query",
99225	//       "type": "string"
99226	//     },
99227	//     "pageToken": {
99228	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
99229	//       "location": "query",
99230	//       "type": "string"
99231	//     },
99232	//     "project": {
99233	//       "description": "Project ID for this request.",
99234	//       "location": "path",
99235	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
99236	//       "required": true,
99237	//       "type": "string"
99238	//     }
99239	//   },
99240	//   "path": "{project}/aggregated/machineTypes",
99241	//   "response": {
99242	//     "$ref": "MachineTypeAggregatedList"
99243	//   },
99244	//   "scopes": [
99245	//     "https://www.googleapis.com/auth/cloud-platform",
99246	//     "https://www.googleapis.com/auth/compute",
99247	//     "https://www.googleapis.com/auth/compute.readonly"
99248	//   ]
99249	// }
99250
99251}
99252
99253// Pages invokes f for each page of results.
99254// A non-nil error returned from f will halt the iteration.
99255// The provided context supersedes any context provided to the Context method.
99256func (c *MachineTypesAggregatedListCall) Pages(ctx context.Context, f func(*MachineTypeAggregatedList) error) error {
99257	c.ctx_ = ctx
99258	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
99259	for {
99260		x, err := c.Do()
99261		if err != nil {
99262			return err
99263		}
99264		if err := f(x); err != nil {
99265			return err
99266		}
99267		if x.NextPageToken == "" {
99268			return nil
99269		}
99270		c.PageToken(x.NextPageToken)
99271	}
99272}
99273
99274// method id "compute.machineTypes.get":
99275
99276type MachineTypesGetCall struct {
99277	s            *Service
99278	project      string
99279	zone         string
99280	machineType  string
99281	urlParams_   gensupport.URLParams
99282	ifNoneMatch_ string
99283	ctx_         context.Context
99284	header_      http.Header
99285}
99286
99287// Get: Returns the specified machine type. Gets a list of available
99288// machine types by making a list() request. (== suppress_warning
99289// http-rest-shadowed ==)
99290// For details, see https://cloud.google.com/compute/docs/reference/latest/machineTypes/get
99291func (r *MachineTypesService) Get(project string, zone string, machineType string) *MachineTypesGetCall {
99292	c := &MachineTypesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
99293	c.project = project
99294	c.zone = zone
99295	c.machineType = machineType
99296	return c
99297}
99298
99299// Fields allows partial responses to be retrieved. See
99300// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
99301// for more information.
99302func (c *MachineTypesGetCall) Fields(s ...googleapi.Field) *MachineTypesGetCall {
99303	c.urlParams_.Set("fields", googleapi.CombineFields(s))
99304	return c
99305}
99306
99307// IfNoneMatch sets the optional parameter which makes the operation
99308// fail if the object's ETag matches the given value. This is useful for
99309// getting updates only after the object has changed since the last
99310// request. Use googleapi.IsNotModified to check whether the response
99311// error from Do is the result of In-None-Match.
99312func (c *MachineTypesGetCall) IfNoneMatch(entityTag string) *MachineTypesGetCall {
99313	c.ifNoneMatch_ = entityTag
99314	return c
99315}
99316
99317// Context sets the context to be used in this call's Do method. Any
99318// pending HTTP request will be aborted if the provided context is
99319// canceled.
99320func (c *MachineTypesGetCall) Context(ctx context.Context) *MachineTypesGetCall {
99321	c.ctx_ = ctx
99322	return c
99323}
99324
99325// Header returns an http.Header that can be modified by the caller to
99326// add HTTP headers to the request.
99327func (c *MachineTypesGetCall) Header() http.Header {
99328	if c.header_ == nil {
99329		c.header_ = make(http.Header)
99330	}
99331	return c.header_
99332}
99333
99334func (c *MachineTypesGetCall) doRequest(alt string) (*http.Response, error) {
99335	reqHeaders := make(http.Header)
99336	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
99337	for k, v := range c.header_ {
99338		reqHeaders[k] = v
99339	}
99340	reqHeaders.Set("User-Agent", c.s.userAgent())
99341	if c.ifNoneMatch_ != "" {
99342		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
99343	}
99344	var body io.Reader = nil
99345	c.urlParams_.Set("alt", alt)
99346	c.urlParams_.Set("prettyPrint", "false")
99347	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/machineTypes/{machineType}")
99348	urls += "?" + c.urlParams_.Encode()
99349	req, err := http.NewRequest("GET", urls, body)
99350	if err != nil {
99351		return nil, err
99352	}
99353	req.Header = reqHeaders
99354	googleapi.Expand(req.URL, map[string]string{
99355		"project":     c.project,
99356		"zone":        c.zone,
99357		"machineType": c.machineType,
99358	})
99359	return gensupport.SendRequest(c.ctx_, c.s.client, req)
99360}
99361
99362// Do executes the "compute.machineTypes.get" call.
99363// Exactly one of *MachineType or error will be non-nil. Any non-2xx
99364// status code is an error. Response headers are in either
99365// *MachineType.ServerResponse.Header or (if a response was returned at
99366// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
99367// to check whether the returned error was because
99368// http.StatusNotModified was returned.
99369func (c *MachineTypesGetCall) Do(opts ...googleapi.CallOption) (*MachineType, error) {
99370	gensupport.SetOptions(c.urlParams_, opts...)
99371	res, err := c.doRequest("json")
99372	if res != nil && res.StatusCode == http.StatusNotModified {
99373		if res.Body != nil {
99374			res.Body.Close()
99375		}
99376		return nil, &googleapi.Error{
99377			Code:   res.StatusCode,
99378			Header: res.Header,
99379		}
99380	}
99381	if err != nil {
99382		return nil, err
99383	}
99384	defer googleapi.CloseBody(res)
99385	if err := googleapi.CheckResponse(res); err != nil {
99386		return nil, err
99387	}
99388	ret := &MachineType{
99389		ServerResponse: googleapi.ServerResponse{
99390			Header:         res.Header,
99391			HTTPStatusCode: res.StatusCode,
99392		},
99393	}
99394	target := &ret
99395	if err := gensupport.DecodeResponse(target, res); err != nil {
99396		return nil, err
99397	}
99398	return ret, nil
99399	// {
99400	//   "description": "Returns the specified machine type. Gets a list of available machine types by making a list() request. (== suppress_warning http-rest-shadowed ==)",
99401	//   "httpMethod": "GET",
99402	//   "id": "compute.machineTypes.get",
99403	//   "parameterOrder": [
99404	//     "project",
99405	//     "zone",
99406	//     "machineType"
99407	//   ],
99408	//   "parameters": {
99409	//     "machineType": {
99410	//       "description": "Name of the machine type to return.",
99411	//       "location": "path",
99412	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
99413	//       "required": true,
99414	//       "type": "string"
99415	//     },
99416	//     "project": {
99417	//       "description": "Project ID for this request.",
99418	//       "location": "path",
99419	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
99420	//       "required": true,
99421	//       "type": "string"
99422	//     },
99423	//     "zone": {
99424	//       "description": "The name of the zone for this request.",
99425	//       "location": "path",
99426	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
99427	//       "required": true,
99428	//       "type": "string"
99429	//     }
99430	//   },
99431	//   "path": "{project}/zones/{zone}/machineTypes/{machineType}",
99432	//   "response": {
99433	//     "$ref": "MachineType"
99434	//   },
99435	//   "scopes": [
99436	//     "https://www.googleapis.com/auth/cloud-platform",
99437	//     "https://www.googleapis.com/auth/compute",
99438	//     "https://www.googleapis.com/auth/compute.readonly"
99439	//   ]
99440	// }
99441
99442}
99443
99444// method id "compute.machineTypes.list":
99445
99446type MachineTypesListCall struct {
99447	s            *Service
99448	project      string
99449	zone         string
99450	urlParams_   gensupport.URLParams
99451	ifNoneMatch_ string
99452	ctx_         context.Context
99453	header_      http.Header
99454}
99455
99456// List: Retrieves a list of machine types available to the specified
99457// project. (== suppress_warning http-rest-shadowed ==)
99458// For details, see https://cloud.google.com/compute/docs/reference/latest/machineTypes/list
99459func (r *MachineTypesService) List(project string, zone string) *MachineTypesListCall {
99460	c := &MachineTypesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
99461	c.project = project
99462	c.zone = zone
99463	return c
99464}
99465
99466// Filter sets the optional parameter "filter": A filter expression that
99467// filters resources listed in the response. The expression must specify
99468// the field name, a comparison operator, and the value that you want to
99469// use for filtering. The value must be a string, a number, or a
99470// boolean. The comparison operator must be either =, !=, >, or <.
99471//
99472// For example, if you are filtering Compute Engine instances, you can
99473// exclude instances named example-instance by specifying name !=
99474// example-instance.
99475//
99476// You can also filter nested fields. For example, you could specify
99477// scheduling.automaticRestart = false to include instances only if they
99478// are not scheduled for automatic restarts. You can use filtering on
99479// nested fields to filter based on resource labels.
99480//
99481// To filter on multiple expressions, provide each separate expression
99482// within parentheses. For example, (scheduling.automaticRestart = true)
99483// (cpuPlatform = "Intel Skylake"). By default, each expression is an
99484// AND expression. However, you can include AND and OR expressions
99485// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
99486// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
99487// true).
99488func (c *MachineTypesListCall) Filter(filter string) *MachineTypesListCall {
99489	c.urlParams_.Set("filter", filter)
99490	return c
99491}
99492
99493// MaxResults sets the optional parameter "maxResults": The maximum
99494// number of results per page that should be returned. If the number of
99495// available results is larger than maxResults, Compute Engine returns a
99496// nextPageToken that can be used to get the next page of results in
99497// subsequent list requests. Acceptable values are 0 to 500, inclusive.
99498// (Default: 500)
99499func (c *MachineTypesListCall) MaxResults(maxResults int64) *MachineTypesListCall {
99500	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
99501	return c
99502}
99503
99504// OrderBy sets the optional parameter "orderBy": Sorts list results by
99505// a certain order. By default, results are returned in alphanumerical
99506// order based on the resource name.
99507//
99508// You can also sort results in descending order based on the creation
99509// timestamp using orderBy="creationTimestamp desc". This sorts results
99510// based on the creationTimestamp field in reverse chronological order
99511// (newest result first). Use this to sort resources like operations so
99512// that the newest operation is returned first.
99513//
99514// Currently, only sorting by name or creationTimestamp desc is
99515// supported.
99516func (c *MachineTypesListCall) OrderBy(orderBy string) *MachineTypesListCall {
99517	c.urlParams_.Set("orderBy", orderBy)
99518	return c
99519}
99520
99521// PageToken sets the optional parameter "pageToken": Specifies a page
99522// token to use. Set pageToken to the nextPageToken returned by a
99523// previous list request to get the next page of results.
99524func (c *MachineTypesListCall) PageToken(pageToken string) *MachineTypesListCall {
99525	c.urlParams_.Set("pageToken", pageToken)
99526	return c
99527}
99528
99529// Fields allows partial responses to be retrieved. See
99530// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
99531// for more information.
99532func (c *MachineTypesListCall) Fields(s ...googleapi.Field) *MachineTypesListCall {
99533	c.urlParams_.Set("fields", googleapi.CombineFields(s))
99534	return c
99535}
99536
99537// IfNoneMatch sets the optional parameter which makes the operation
99538// fail if the object's ETag matches the given value. This is useful for
99539// getting updates only after the object has changed since the last
99540// request. Use googleapi.IsNotModified to check whether the response
99541// error from Do is the result of In-None-Match.
99542func (c *MachineTypesListCall) IfNoneMatch(entityTag string) *MachineTypesListCall {
99543	c.ifNoneMatch_ = entityTag
99544	return c
99545}
99546
99547// Context sets the context to be used in this call's Do method. Any
99548// pending HTTP request will be aborted if the provided context is
99549// canceled.
99550func (c *MachineTypesListCall) Context(ctx context.Context) *MachineTypesListCall {
99551	c.ctx_ = ctx
99552	return c
99553}
99554
99555// Header returns an http.Header that can be modified by the caller to
99556// add HTTP headers to the request.
99557func (c *MachineTypesListCall) Header() http.Header {
99558	if c.header_ == nil {
99559		c.header_ = make(http.Header)
99560	}
99561	return c.header_
99562}
99563
99564func (c *MachineTypesListCall) doRequest(alt string) (*http.Response, error) {
99565	reqHeaders := make(http.Header)
99566	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
99567	for k, v := range c.header_ {
99568		reqHeaders[k] = v
99569	}
99570	reqHeaders.Set("User-Agent", c.s.userAgent())
99571	if c.ifNoneMatch_ != "" {
99572		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
99573	}
99574	var body io.Reader = nil
99575	c.urlParams_.Set("alt", alt)
99576	c.urlParams_.Set("prettyPrint", "false")
99577	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/machineTypes")
99578	urls += "?" + c.urlParams_.Encode()
99579	req, err := http.NewRequest("GET", urls, body)
99580	if err != nil {
99581		return nil, err
99582	}
99583	req.Header = reqHeaders
99584	googleapi.Expand(req.URL, map[string]string{
99585		"project": c.project,
99586		"zone":    c.zone,
99587	})
99588	return gensupport.SendRequest(c.ctx_, c.s.client, req)
99589}
99590
99591// Do executes the "compute.machineTypes.list" call.
99592// Exactly one of *MachineTypeList or error will be non-nil. Any non-2xx
99593// status code is an error. Response headers are in either
99594// *MachineTypeList.ServerResponse.Header or (if a response was returned
99595// at all) in error.(*googleapi.Error).Header. Use
99596// googleapi.IsNotModified to check whether the returned error was
99597// because http.StatusNotModified was returned.
99598func (c *MachineTypesListCall) Do(opts ...googleapi.CallOption) (*MachineTypeList, error) {
99599	gensupport.SetOptions(c.urlParams_, opts...)
99600	res, err := c.doRequest("json")
99601	if res != nil && res.StatusCode == http.StatusNotModified {
99602		if res.Body != nil {
99603			res.Body.Close()
99604		}
99605		return nil, &googleapi.Error{
99606			Code:   res.StatusCode,
99607			Header: res.Header,
99608		}
99609	}
99610	if err != nil {
99611		return nil, err
99612	}
99613	defer googleapi.CloseBody(res)
99614	if err := googleapi.CheckResponse(res); err != nil {
99615		return nil, err
99616	}
99617	ret := &MachineTypeList{
99618		ServerResponse: googleapi.ServerResponse{
99619			Header:         res.Header,
99620			HTTPStatusCode: res.StatusCode,
99621		},
99622	}
99623	target := &ret
99624	if err := gensupport.DecodeResponse(target, res); err != nil {
99625		return nil, err
99626	}
99627	return ret, nil
99628	// {
99629	//   "description": "Retrieves a list of machine types available to the specified project. (== suppress_warning http-rest-shadowed ==)",
99630	//   "httpMethod": "GET",
99631	//   "id": "compute.machineTypes.list",
99632	//   "parameterOrder": [
99633	//     "project",
99634	//     "zone"
99635	//   ],
99636	//   "parameters": {
99637	//     "filter": {
99638	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
99639	//       "location": "query",
99640	//       "type": "string"
99641	//     },
99642	//     "maxResults": {
99643	//       "default": "500",
99644	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
99645	//       "format": "uint32",
99646	//       "location": "query",
99647	//       "minimum": "0",
99648	//       "type": "integer"
99649	//     },
99650	//     "orderBy": {
99651	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
99652	//       "location": "query",
99653	//       "type": "string"
99654	//     },
99655	//     "pageToken": {
99656	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
99657	//       "location": "query",
99658	//       "type": "string"
99659	//     },
99660	//     "project": {
99661	//       "description": "Project ID for this request.",
99662	//       "location": "path",
99663	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
99664	//       "required": true,
99665	//       "type": "string"
99666	//     },
99667	//     "zone": {
99668	//       "description": "The name of the zone for this request.",
99669	//       "location": "path",
99670	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
99671	//       "required": true,
99672	//       "type": "string"
99673	//     }
99674	//   },
99675	//   "path": "{project}/zones/{zone}/machineTypes",
99676	//   "response": {
99677	//     "$ref": "MachineTypeList"
99678	//   },
99679	//   "scopes": [
99680	//     "https://www.googleapis.com/auth/cloud-platform",
99681	//     "https://www.googleapis.com/auth/compute",
99682	//     "https://www.googleapis.com/auth/compute.readonly"
99683	//   ]
99684	// }
99685
99686}
99687
99688// Pages invokes f for each page of results.
99689// A non-nil error returned from f will halt the iteration.
99690// The provided context supersedes any context provided to the Context method.
99691func (c *MachineTypesListCall) Pages(ctx context.Context, f func(*MachineTypeList) error) error {
99692	c.ctx_ = ctx
99693	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
99694	for {
99695		x, err := c.Do()
99696		if err != nil {
99697			return err
99698		}
99699		if err := f(x); err != nil {
99700			return err
99701		}
99702		if x.NextPageToken == "" {
99703			return nil
99704		}
99705		c.PageToken(x.NextPageToken)
99706	}
99707}
99708
99709// method id "compute.networkEndpointGroups.aggregatedList":
99710
99711type NetworkEndpointGroupsAggregatedListCall struct {
99712	s            *Service
99713	project      string
99714	urlParams_   gensupport.URLParams
99715	ifNoneMatch_ string
99716	ctx_         context.Context
99717	header_      http.Header
99718}
99719
99720// AggregatedList: Retrieves the list of network endpoint groups and
99721// sorts them by zone. (== suppress_warning http-rest-shadowed ==)
99722func (r *NetworkEndpointGroupsService) AggregatedList(project string) *NetworkEndpointGroupsAggregatedListCall {
99723	c := &NetworkEndpointGroupsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
99724	c.project = project
99725	return c
99726}
99727
99728// Filter sets the optional parameter "filter": A filter expression that
99729// filters resources listed in the response. The expression must specify
99730// the field name, a comparison operator, and the value that you want to
99731// use for filtering. The value must be a string, a number, or a
99732// boolean. The comparison operator must be either =, !=, >, or <.
99733//
99734// For example, if you are filtering Compute Engine instances, you can
99735// exclude instances named example-instance by specifying name !=
99736// example-instance.
99737//
99738// You can also filter nested fields. For example, you could specify
99739// scheduling.automaticRestart = false to include instances only if they
99740// are not scheduled for automatic restarts. You can use filtering on
99741// nested fields to filter based on resource labels.
99742//
99743// To filter on multiple expressions, provide each separate expression
99744// within parentheses. For example, (scheduling.automaticRestart = true)
99745// (cpuPlatform = "Intel Skylake"). By default, each expression is an
99746// AND expression. However, you can include AND and OR expressions
99747// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
99748// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
99749// true).
99750func (c *NetworkEndpointGroupsAggregatedListCall) Filter(filter string) *NetworkEndpointGroupsAggregatedListCall {
99751	c.urlParams_.Set("filter", filter)
99752	return c
99753}
99754
99755// MaxResults sets the optional parameter "maxResults": The maximum
99756// number of results per page that should be returned. If the number of
99757// available results is larger than maxResults, Compute Engine returns a
99758// nextPageToken that can be used to get the next page of results in
99759// subsequent list requests. Acceptable values are 0 to 500, inclusive.
99760// (Default: 500)
99761func (c *NetworkEndpointGroupsAggregatedListCall) MaxResults(maxResults int64) *NetworkEndpointGroupsAggregatedListCall {
99762	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
99763	return c
99764}
99765
99766// OrderBy sets the optional parameter "orderBy": Sorts list results by
99767// a certain order. By default, results are returned in alphanumerical
99768// order based on the resource name.
99769//
99770// You can also sort results in descending order based on the creation
99771// timestamp using orderBy="creationTimestamp desc". This sorts results
99772// based on the creationTimestamp field in reverse chronological order
99773// (newest result first). Use this to sort resources like operations so
99774// that the newest operation is returned first.
99775//
99776// Currently, only sorting by name or creationTimestamp desc is
99777// supported.
99778func (c *NetworkEndpointGroupsAggregatedListCall) OrderBy(orderBy string) *NetworkEndpointGroupsAggregatedListCall {
99779	c.urlParams_.Set("orderBy", orderBy)
99780	return c
99781}
99782
99783// PageToken sets the optional parameter "pageToken": Specifies a page
99784// token to use. Set pageToken to the nextPageToken returned by a
99785// previous list request to get the next page of results.
99786func (c *NetworkEndpointGroupsAggregatedListCall) PageToken(pageToken string) *NetworkEndpointGroupsAggregatedListCall {
99787	c.urlParams_.Set("pageToken", pageToken)
99788	return c
99789}
99790
99791// Fields allows partial responses to be retrieved. See
99792// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
99793// for more information.
99794func (c *NetworkEndpointGroupsAggregatedListCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsAggregatedListCall {
99795	c.urlParams_.Set("fields", googleapi.CombineFields(s))
99796	return c
99797}
99798
99799// IfNoneMatch sets the optional parameter which makes the operation
99800// fail if the object's ETag matches the given value. This is useful for
99801// getting updates only after the object has changed since the last
99802// request. Use googleapi.IsNotModified to check whether the response
99803// error from Do is the result of In-None-Match.
99804func (c *NetworkEndpointGroupsAggregatedListCall) IfNoneMatch(entityTag string) *NetworkEndpointGroupsAggregatedListCall {
99805	c.ifNoneMatch_ = entityTag
99806	return c
99807}
99808
99809// Context sets the context to be used in this call's Do method. Any
99810// pending HTTP request will be aborted if the provided context is
99811// canceled.
99812func (c *NetworkEndpointGroupsAggregatedListCall) Context(ctx context.Context) *NetworkEndpointGroupsAggregatedListCall {
99813	c.ctx_ = ctx
99814	return c
99815}
99816
99817// Header returns an http.Header that can be modified by the caller to
99818// add HTTP headers to the request.
99819func (c *NetworkEndpointGroupsAggregatedListCall) Header() http.Header {
99820	if c.header_ == nil {
99821		c.header_ = make(http.Header)
99822	}
99823	return c.header_
99824}
99825
99826func (c *NetworkEndpointGroupsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
99827	reqHeaders := make(http.Header)
99828	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
99829	for k, v := range c.header_ {
99830		reqHeaders[k] = v
99831	}
99832	reqHeaders.Set("User-Agent", c.s.userAgent())
99833	if c.ifNoneMatch_ != "" {
99834		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
99835	}
99836	var body io.Reader = nil
99837	c.urlParams_.Set("alt", alt)
99838	c.urlParams_.Set("prettyPrint", "false")
99839	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/networkEndpointGroups")
99840	urls += "?" + c.urlParams_.Encode()
99841	req, err := http.NewRequest("GET", urls, body)
99842	if err != nil {
99843		return nil, err
99844	}
99845	req.Header = reqHeaders
99846	googleapi.Expand(req.URL, map[string]string{
99847		"project": c.project,
99848	})
99849	return gensupport.SendRequest(c.ctx_, c.s.client, req)
99850}
99851
99852// Do executes the "compute.networkEndpointGroups.aggregatedList" call.
99853// Exactly one of *NetworkEndpointGroupAggregatedList or error will be
99854// non-nil. Any non-2xx status code is an error. Response headers are in
99855// either *NetworkEndpointGroupAggregatedList.ServerResponse.Header or
99856// (if a response was returned at all) in
99857// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
99858// whether the returned error was because http.StatusNotModified was
99859// returned.
99860func (c *NetworkEndpointGroupsAggregatedListCall) Do(opts ...googleapi.CallOption) (*NetworkEndpointGroupAggregatedList, error) {
99861	gensupport.SetOptions(c.urlParams_, opts...)
99862	res, err := c.doRequest("json")
99863	if res != nil && res.StatusCode == http.StatusNotModified {
99864		if res.Body != nil {
99865			res.Body.Close()
99866		}
99867		return nil, &googleapi.Error{
99868			Code:   res.StatusCode,
99869			Header: res.Header,
99870		}
99871	}
99872	if err != nil {
99873		return nil, err
99874	}
99875	defer googleapi.CloseBody(res)
99876	if err := googleapi.CheckResponse(res); err != nil {
99877		return nil, err
99878	}
99879	ret := &NetworkEndpointGroupAggregatedList{
99880		ServerResponse: googleapi.ServerResponse{
99881			Header:         res.Header,
99882			HTTPStatusCode: res.StatusCode,
99883		},
99884	}
99885	target := &ret
99886	if err := gensupport.DecodeResponse(target, res); err != nil {
99887		return nil, err
99888	}
99889	return ret, nil
99890	// {
99891	//   "description": "Retrieves the list of network endpoint groups and sorts them by zone. (== suppress_warning http-rest-shadowed ==)",
99892	//   "httpMethod": "GET",
99893	//   "id": "compute.networkEndpointGroups.aggregatedList",
99894	//   "parameterOrder": [
99895	//     "project"
99896	//   ],
99897	//   "parameters": {
99898	//     "filter": {
99899	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
99900	//       "location": "query",
99901	//       "type": "string"
99902	//     },
99903	//     "maxResults": {
99904	//       "default": "500",
99905	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
99906	//       "format": "uint32",
99907	//       "location": "query",
99908	//       "minimum": "0",
99909	//       "type": "integer"
99910	//     },
99911	//     "orderBy": {
99912	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
99913	//       "location": "query",
99914	//       "type": "string"
99915	//     },
99916	//     "pageToken": {
99917	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
99918	//       "location": "query",
99919	//       "type": "string"
99920	//     },
99921	//     "project": {
99922	//       "description": "Project ID for this request.",
99923	//       "location": "path",
99924	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
99925	//       "required": true,
99926	//       "type": "string"
99927	//     }
99928	//   },
99929	//   "path": "{project}/aggregated/networkEndpointGroups",
99930	//   "response": {
99931	//     "$ref": "NetworkEndpointGroupAggregatedList"
99932	//   },
99933	//   "scopes": [
99934	//     "https://www.googleapis.com/auth/cloud-platform",
99935	//     "https://www.googleapis.com/auth/compute",
99936	//     "https://www.googleapis.com/auth/compute.readonly"
99937	//   ]
99938	// }
99939
99940}
99941
99942// Pages invokes f for each page of results.
99943// A non-nil error returned from f will halt the iteration.
99944// The provided context supersedes any context provided to the Context method.
99945func (c *NetworkEndpointGroupsAggregatedListCall) Pages(ctx context.Context, f func(*NetworkEndpointGroupAggregatedList) error) error {
99946	c.ctx_ = ctx
99947	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
99948	for {
99949		x, err := c.Do()
99950		if err != nil {
99951			return err
99952		}
99953		if err := f(x); err != nil {
99954			return err
99955		}
99956		if x.NextPageToken == "" {
99957			return nil
99958		}
99959		c.PageToken(x.NextPageToken)
99960	}
99961}
99962
99963// method id "compute.networkEndpointGroups.attachNetworkEndpoints":
99964
99965type NetworkEndpointGroupsAttachNetworkEndpointsCall struct {
99966	s                                           *Service
99967	project                                     string
99968	zone                                        string
99969	networkEndpointGroup                        string
99970	networkendpointgroupsattachendpointsrequest *NetworkEndpointGroupsAttachEndpointsRequest
99971	urlParams_                                  gensupport.URLParams
99972	ctx_                                        context.Context
99973	header_                                     http.Header
99974}
99975
99976// AttachNetworkEndpoints: Attach a list of network endpoints to the
99977// specified network endpoint group. (== suppress_warning
99978// http-rest-shadowed ==)
99979func (r *NetworkEndpointGroupsService) AttachNetworkEndpoints(project string, zone string, networkEndpointGroup string, networkendpointgroupsattachendpointsrequest *NetworkEndpointGroupsAttachEndpointsRequest) *NetworkEndpointGroupsAttachNetworkEndpointsCall {
99980	c := &NetworkEndpointGroupsAttachNetworkEndpointsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
99981	c.project = project
99982	c.zone = zone
99983	c.networkEndpointGroup = networkEndpointGroup
99984	c.networkendpointgroupsattachendpointsrequest = networkendpointgroupsattachendpointsrequest
99985	return c
99986}
99987
99988// RequestId sets the optional parameter "requestId": An optional
99989// request ID to identify requests. Specify a unique request ID so that
99990// if you must retry your request, the server will know to ignore the
99991// request if it has already been completed.
99992//
99993// For example, consider a situation where you make an initial request
99994// and the request times out. If you make the request again with the
99995// same request ID, the server can check if original operation with the
99996// same request ID was received, and if so, will ignore the second
99997// request. This prevents clients from accidentally creating duplicate
99998// commitments.
99999//
100000// The request ID must be a valid UUID with the exception that zero UUID
100001// is not supported (00000000-0000-0000-0000-000000000000).
100002func (c *NetworkEndpointGroupsAttachNetworkEndpointsCall) RequestId(requestId string) *NetworkEndpointGroupsAttachNetworkEndpointsCall {
100003	c.urlParams_.Set("requestId", requestId)
100004	return c
100005}
100006
100007// Fields allows partial responses to be retrieved. See
100008// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
100009// for more information.
100010func (c *NetworkEndpointGroupsAttachNetworkEndpointsCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsAttachNetworkEndpointsCall {
100011	c.urlParams_.Set("fields", googleapi.CombineFields(s))
100012	return c
100013}
100014
100015// Context sets the context to be used in this call's Do method. Any
100016// pending HTTP request will be aborted if the provided context is
100017// canceled.
100018func (c *NetworkEndpointGroupsAttachNetworkEndpointsCall) Context(ctx context.Context) *NetworkEndpointGroupsAttachNetworkEndpointsCall {
100019	c.ctx_ = ctx
100020	return c
100021}
100022
100023// Header returns an http.Header that can be modified by the caller to
100024// add HTTP headers to the request.
100025func (c *NetworkEndpointGroupsAttachNetworkEndpointsCall) Header() http.Header {
100026	if c.header_ == nil {
100027		c.header_ = make(http.Header)
100028	}
100029	return c.header_
100030}
100031
100032func (c *NetworkEndpointGroupsAttachNetworkEndpointsCall) doRequest(alt string) (*http.Response, error) {
100033	reqHeaders := make(http.Header)
100034	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
100035	for k, v := range c.header_ {
100036		reqHeaders[k] = v
100037	}
100038	reqHeaders.Set("User-Agent", c.s.userAgent())
100039	var body io.Reader = nil
100040	body, err := googleapi.WithoutDataWrapper.JSONReader(c.networkendpointgroupsattachendpointsrequest)
100041	if err != nil {
100042		return nil, err
100043	}
100044	reqHeaders.Set("Content-Type", "application/json")
100045	c.urlParams_.Set("alt", alt)
100046	c.urlParams_.Set("prettyPrint", "false")
100047	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/attachNetworkEndpoints")
100048	urls += "?" + c.urlParams_.Encode()
100049	req, err := http.NewRequest("POST", urls, body)
100050	if err != nil {
100051		return nil, err
100052	}
100053	req.Header = reqHeaders
100054	googleapi.Expand(req.URL, map[string]string{
100055		"project":              c.project,
100056		"zone":                 c.zone,
100057		"networkEndpointGroup": c.networkEndpointGroup,
100058	})
100059	return gensupport.SendRequest(c.ctx_, c.s.client, req)
100060}
100061
100062// Do executes the "compute.networkEndpointGroups.attachNetworkEndpoints" call.
100063// Exactly one of *Operation or error will be non-nil. Any non-2xx
100064// status code is an error. Response headers are in either
100065// *Operation.ServerResponse.Header or (if a response was returned at
100066// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
100067// to check whether the returned error was because
100068// http.StatusNotModified was returned.
100069func (c *NetworkEndpointGroupsAttachNetworkEndpointsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
100070	gensupport.SetOptions(c.urlParams_, opts...)
100071	res, err := c.doRequest("json")
100072	if res != nil && res.StatusCode == http.StatusNotModified {
100073		if res.Body != nil {
100074			res.Body.Close()
100075		}
100076		return nil, &googleapi.Error{
100077			Code:   res.StatusCode,
100078			Header: res.Header,
100079		}
100080	}
100081	if err != nil {
100082		return nil, err
100083	}
100084	defer googleapi.CloseBody(res)
100085	if err := googleapi.CheckResponse(res); err != nil {
100086		return nil, err
100087	}
100088	ret := &Operation{
100089		ServerResponse: googleapi.ServerResponse{
100090			Header:         res.Header,
100091			HTTPStatusCode: res.StatusCode,
100092		},
100093	}
100094	target := &ret
100095	if err := gensupport.DecodeResponse(target, res); err != nil {
100096		return nil, err
100097	}
100098	return ret, nil
100099	// {
100100	//   "description": "Attach a list of network endpoints to the specified network endpoint group. (== suppress_warning http-rest-shadowed ==)",
100101	//   "httpMethod": "POST",
100102	//   "id": "compute.networkEndpointGroups.attachNetworkEndpoints",
100103	//   "parameterOrder": [
100104	//     "project",
100105	//     "zone",
100106	//     "networkEndpointGroup"
100107	//   ],
100108	//   "parameters": {
100109	//     "networkEndpointGroup": {
100110	//       "description": "The name of the network endpoint group where you are attaching network endpoints to. It should comply with RFC1035.",
100111	//       "location": "path",
100112	//       "required": true,
100113	//       "type": "string"
100114	//     },
100115	//     "project": {
100116	//       "description": "Project ID for this request.",
100117	//       "location": "path",
100118	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
100119	//       "required": true,
100120	//       "type": "string"
100121	//     },
100122	//     "requestId": {
100123	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
100124	//       "location": "query",
100125	//       "type": "string"
100126	//     },
100127	//     "zone": {
100128	//       "description": "The name of the zone where the network endpoint group is located. It should comply with RFC1035.",
100129	//       "location": "path",
100130	//       "required": true,
100131	//       "type": "string"
100132	//     }
100133	//   },
100134	//   "path": "{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/attachNetworkEndpoints",
100135	//   "request": {
100136	//     "$ref": "NetworkEndpointGroupsAttachEndpointsRequest"
100137	//   },
100138	//   "response": {
100139	//     "$ref": "Operation"
100140	//   },
100141	//   "scopes": [
100142	//     "https://www.googleapis.com/auth/cloud-platform",
100143	//     "https://www.googleapis.com/auth/compute"
100144	//   ]
100145	// }
100146
100147}
100148
100149// method id "compute.networkEndpointGroups.delete":
100150
100151type NetworkEndpointGroupsDeleteCall struct {
100152	s                    *Service
100153	project              string
100154	zone                 string
100155	networkEndpointGroup string
100156	urlParams_           gensupport.URLParams
100157	ctx_                 context.Context
100158	header_              http.Header
100159}
100160
100161// Delete: Deletes the specified network endpoint group. The network
100162// endpoints in the NEG and the VM instances they belong to are not
100163// terminated when the NEG is deleted. Note that the NEG cannot be
100164// deleted if there are backend services referencing it. (==
100165// suppress_warning http-rest-shadowed ==)
100166func (r *NetworkEndpointGroupsService) Delete(project string, zone string, networkEndpointGroup string) *NetworkEndpointGroupsDeleteCall {
100167	c := &NetworkEndpointGroupsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
100168	c.project = project
100169	c.zone = zone
100170	c.networkEndpointGroup = networkEndpointGroup
100171	return c
100172}
100173
100174// RequestId sets the optional parameter "requestId": An optional
100175// request ID to identify requests. Specify a unique request ID so that
100176// if you must retry your request, the server will know to ignore the
100177// request if it has already been completed.
100178//
100179// For example, consider a situation where you make an initial request
100180// and the request times out. If you make the request again with the
100181// same request ID, the server can check if original operation with the
100182// same request ID was received, and if so, will ignore the second
100183// request. This prevents clients from accidentally creating duplicate
100184// commitments.
100185//
100186// The request ID must be a valid UUID with the exception that zero UUID
100187// is not supported (00000000-0000-0000-0000-000000000000).
100188func (c *NetworkEndpointGroupsDeleteCall) RequestId(requestId string) *NetworkEndpointGroupsDeleteCall {
100189	c.urlParams_.Set("requestId", requestId)
100190	return c
100191}
100192
100193// Fields allows partial responses to be retrieved. See
100194// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
100195// for more information.
100196func (c *NetworkEndpointGroupsDeleteCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsDeleteCall {
100197	c.urlParams_.Set("fields", googleapi.CombineFields(s))
100198	return c
100199}
100200
100201// Context sets the context to be used in this call's Do method. Any
100202// pending HTTP request will be aborted if the provided context is
100203// canceled.
100204func (c *NetworkEndpointGroupsDeleteCall) Context(ctx context.Context) *NetworkEndpointGroupsDeleteCall {
100205	c.ctx_ = ctx
100206	return c
100207}
100208
100209// Header returns an http.Header that can be modified by the caller to
100210// add HTTP headers to the request.
100211func (c *NetworkEndpointGroupsDeleteCall) Header() http.Header {
100212	if c.header_ == nil {
100213		c.header_ = make(http.Header)
100214	}
100215	return c.header_
100216}
100217
100218func (c *NetworkEndpointGroupsDeleteCall) doRequest(alt string) (*http.Response, error) {
100219	reqHeaders := make(http.Header)
100220	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
100221	for k, v := range c.header_ {
100222		reqHeaders[k] = v
100223	}
100224	reqHeaders.Set("User-Agent", c.s.userAgent())
100225	var body io.Reader = nil
100226	c.urlParams_.Set("alt", alt)
100227	c.urlParams_.Set("prettyPrint", "false")
100228	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}")
100229	urls += "?" + c.urlParams_.Encode()
100230	req, err := http.NewRequest("DELETE", urls, body)
100231	if err != nil {
100232		return nil, err
100233	}
100234	req.Header = reqHeaders
100235	googleapi.Expand(req.URL, map[string]string{
100236		"project":              c.project,
100237		"zone":                 c.zone,
100238		"networkEndpointGroup": c.networkEndpointGroup,
100239	})
100240	return gensupport.SendRequest(c.ctx_, c.s.client, req)
100241}
100242
100243// Do executes the "compute.networkEndpointGroups.delete" call.
100244// Exactly one of *Operation or error will be non-nil. Any non-2xx
100245// status code is an error. Response headers are in either
100246// *Operation.ServerResponse.Header or (if a response was returned at
100247// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
100248// to check whether the returned error was because
100249// http.StatusNotModified was returned.
100250func (c *NetworkEndpointGroupsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
100251	gensupport.SetOptions(c.urlParams_, opts...)
100252	res, err := c.doRequest("json")
100253	if res != nil && res.StatusCode == http.StatusNotModified {
100254		if res.Body != nil {
100255			res.Body.Close()
100256		}
100257		return nil, &googleapi.Error{
100258			Code:   res.StatusCode,
100259			Header: res.Header,
100260		}
100261	}
100262	if err != nil {
100263		return nil, err
100264	}
100265	defer googleapi.CloseBody(res)
100266	if err := googleapi.CheckResponse(res); err != nil {
100267		return nil, err
100268	}
100269	ret := &Operation{
100270		ServerResponse: googleapi.ServerResponse{
100271			Header:         res.Header,
100272			HTTPStatusCode: res.StatusCode,
100273		},
100274	}
100275	target := &ret
100276	if err := gensupport.DecodeResponse(target, res); err != nil {
100277		return nil, err
100278	}
100279	return ret, nil
100280	// {
100281	//   "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. (== suppress_warning http-rest-shadowed ==)",
100282	//   "httpMethod": "DELETE",
100283	//   "id": "compute.networkEndpointGroups.delete",
100284	//   "parameterOrder": [
100285	//     "project",
100286	//     "zone",
100287	//     "networkEndpointGroup"
100288	//   ],
100289	//   "parameters": {
100290	//     "networkEndpointGroup": {
100291	//       "description": "The name of the network endpoint group to delete. It should comply with RFC1035.",
100292	//       "location": "path",
100293	//       "required": true,
100294	//       "type": "string"
100295	//     },
100296	//     "project": {
100297	//       "description": "Project ID for this request.",
100298	//       "location": "path",
100299	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
100300	//       "required": true,
100301	//       "type": "string"
100302	//     },
100303	//     "requestId": {
100304	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
100305	//       "location": "query",
100306	//       "type": "string"
100307	//     },
100308	//     "zone": {
100309	//       "description": "The name of the zone where the network endpoint group is located. It should comply with RFC1035.",
100310	//       "location": "path",
100311	//       "required": true,
100312	//       "type": "string"
100313	//     }
100314	//   },
100315	//   "path": "{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}",
100316	//   "response": {
100317	//     "$ref": "Operation"
100318	//   },
100319	//   "scopes": [
100320	//     "https://www.googleapis.com/auth/cloud-platform",
100321	//     "https://www.googleapis.com/auth/compute"
100322	//   ]
100323	// }
100324
100325}
100326
100327// method id "compute.networkEndpointGroups.detachNetworkEndpoints":
100328
100329type NetworkEndpointGroupsDetachNetworkEndpointsCall struct {
100330	s                                           *Service
100331	project                                     string
100332	zone                                        string
100333	networkEndpointGroup                        string
100334	networkendpointgroupsdetachendpointsrequest *NetworkEndpointGroupsDetachEndpointsRequest
100335	urlParams_                                  gensupport.URLParams
100336	ctx_                                        context.Context
100337	header_                                     http.Header
100338}
100339
100340// DetachNetworkEndpoints: Detach a list of network endpoints from the
100341// specified network endpoint group. (== suppress_warning
100342// http-rest-shadowed ==)
100343func (r *NetworkEndpointGroupsService) DetachNetworkEndpoints(project string, zone string, networkEndpointGroup string, networkendpointgroupsdetachendpointsrequest *NetworkEndpointGroupsDetachEndpointsRequest) *NetworkEndpointGroupsDetachNetworkEndpointsCall {
100344	c := &NetworkEndpointGroupsDetachNetworkEndpointsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
100345	c.project = project
100346	c.zone = zone
100347	c.networkEndpointGroup = networkEndpointGroup
100348	c.networkendpointgroupsdetachendpointsrequest = networkendpointgroupsdetachendpointsrequest
100349	return c
100350}
100351
100352// RequestId sets the optional parameter "requestId": An optional
100353// request ID to identify requests. Specify a unique request ID so that
100354// if you must retry your request, the server will know to ignore the
100355// request if it has already been completed.
100356//
100357// For example, consider a situation where you make an initial request
100358// and the request times out. If you make the request again with the
100359// same request ID, the server can check if original operation with the
100360// same request ID was received, and if so, will ignore the second
100361// request. This prevents clients from accidentally creating duplicate
100362// commitments.
100363//
100364// The request ID must be a valid UUID with the exception that zero UUID
100365// is not supported (00000000-0000-0000-0000-000000000000).
100366func (c *NetworkEndpointGroupsDetachNetworkEndpointsCall) RequestId(requestId string) *NetworkEndpointGroupsDetachNetworkEndpointsCall {
100367	c.urlParams_.Set("requestId", requestId)
100368	return c
100369}
100370
100371// Fields allows partial responses to be retrieved. See
100372// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
100373// for more information.
100374func (c *NetworkEndpointGroupsDetachNetworkEndpointsCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsDetachNetworkEndpointsCall {
100375	c.urlParams_.Set("fields", googleapi.CombineFields(s))
100376	return c
100377}
100378
100379// Context sets the context to be used in this call's Do method. Any
100380// pending HTTP request will be aborted if the provided context is
100381// canceled.
100382func (c *NetworkEndpointGroupsDetachNetworkEndpointsCall) Context(ctx context.Context) *NetworkEndpointGroupsDetachNetworkEndpointsCall {
100383	c.ctx_ = ctx
100384	return c
100385}
100386
100387// Header returns an http.Header that can be modified by the caller to
100388// add HTTP headers to the request.
100389func (c *NetworkEndpointGroupsDetachNetworkEndpointsCall) Header() http.Header {
100390	if c.header_ == nil {
100391		c.header_ = make(http.Header)
100392	}
100393	return c.header_
100394}
100395
100396func (c *NetworkEndpointGroupsDetachNetworkEndpointsCall) doRequest(alt string) (*http.Response, error) {
100397	reqHeaders := make(http.Header)
100398	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
100399	for k, v := range c.header_ {
100400		reqHeaders[k] = v
100401	}
100402	reqHeaders.Set("User-Agent", c.s.userAgent())
100403	var body io.Reader = nil
100404	body, err := googleapi.WithoutDataWrapper.JSONReader(c.networkendpointgroupsdetachendpointsrequest)
100405	if err != nil {
100406		return nil, err
100407	}
100408	reqHeaders.Set("Content-Type", "application/json")
100409	c.urlParams_.Set("alt", alt)
100410	c.urlParams_.Set("prettyPrint", "false")
100411	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/detachNetworkEndpoints")
100412	urls += "?" + c.urlParams_.Encode()
100413	req, err := http.NewRequest("POST", urls, body)
100414	if err != nil {
100415		return nil, err
100416	}
100417	req.Header = reqHeaders
100418	googleapi.Expand(req.URL, map[string]string{
100419		"project":              c.project,
100420		"zone":                 c.zone,
100421		"networkEndpointGroup": c.networkEndpointGroup,
100422	})
100423	return gensupport.SendRequest(c.ctx_, c.s.client, req)
100424}
100425
100426// Do executes the "compute.networkEndpointGroups.detachNetworkEndpoints" call.
100427// Exactly one of *Operation or error will be non-nil. Any non-2xx
100428// status code is an error. Response headers are in either
100429// *Operation.ServerResponse.Header or (if a response was returned at
100430// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
100431// to check whether the returned error was because
100432// http.StatusNotModified was returned.
100433func (c *NetworkEndpointGroupsDetachNetworkEndpointsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
100434	gensupport.SetOptions(c.urlParams_, opts...)
100435	res, err := c.doRequest("json")
100436	if res != nil && res.StatusCode == http.StatusNotModified {
100437		if res.Body != nil {
100438			res.Body.Close()
100439		}
100440		return nil, &googleapi.Error{
100441			Code:   res.StatusCode,
100442			Header: res.Header,
100443		}
100444	}
100445	if err != nil {
100446		return nil, err
100447	}
100448	defer googleapi.CloseBody(res)
100449	if err := googleapi.CheckResponse(res); err != nil {
100450		return nil, err
100451	}
100452	ret := &Operation{
100453		ServerResponse: googleapi.ServerResponse{
100454			Header:         res.Header,
100455			HTTPStatusCode: res.StatusCode,
100456		},
100457	}
100458	target := &ret
100459	if err := gensupport.DecodeResponse(target, res); err != nil {
100460		return nil, err
100461	}
100462	return ret, nil
100463	// {
100464	//   "description": "Detach a list of network endpoints from the specified network endpoint group. (== suppress_warning http-rest-shadowed ==)",
100465	//   "httpMethod": "POST",
100466	//   "id": "compute.networkEndpointGroups.detachNetworkEndpoints",
100467	//   "parameterOrder": [
100468	//     "project",
100469	//     "zone",
100470	//     "networkEndpointGroup"
100471	//   ],
100472	//   "parameters": {
100473	//     "networkEndpointGroup": {
100474	//       "description": "The name of the network endpoint group where you are removing network endpoints. It should comply with RFC1035.",
100475	//       "location": "path",
100476	//       "required": true,
100477	//       "type": "string"
100478	//     },
100479	//     "project": {
100480	//       "description": "Project ID for this request.",
100481	//       "location": "path",
100482	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
100483	//       "required": true,
100484	//       "type": "string"
100485	//     },
100486	//     "requestId": {
100487	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
100488	//       "location": "query",
100489	//       "type": "string"
100490	//     },
100491	//     "zone": {
100492	//       "description": "The name of the zone where the network endpoint group is located. It should comply with RFC1035.",
100493	//       "location": "path",
100494	//       "required": true,
100495	//       "type": "string"
100496	//     }
100497	//   },
100498	//   "path": "{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/detachNetworkEndpoints",
100499	//   "request": {
100500	//     "$ref": "NetworkEndpointGroupsDetachEndpointsRequest"
100501	//   },
100502	//   "response": {
100503	//     "$ref": "Operation"
100504	//   },
100505	//   "scopes": [
100506	//     "https://www.googleapis.com/auth/cloud-platform",
100507	//     "https://www.googleapis.com/auth/compute"
100508	//   ]
100509	// }
100510
100511}
100512
100513// method id "compute.networkEndpointGroups.get":
100514
100515type NetworkEndpointGroupsGetCall struct {
100516	s                    *Service
100517	project              string
100518	zone                 string
100519	networkEndpointGroup string
100520	urlParams_           gensupport.URLParams
100521	ifNoneMatch_         string
100522	ctx_                 context.Context
100523	header_              http.Header
100524}
100525
100526// Get: Returns the specified network endpoint group. Gets a list of
100527// available network endpoint groups by making a list() request. (==
100528// suppress_warning http-rest-shadowed ==)
100529func (r *NetworkEndpointGroupsService) Get(project string, zone string, networkEndpointGroup string) *NetworkEndpointGroupsGetCall {
100530	c := &NetworkEndpointGroupsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
100531	c.project = project
100532	c.zone = zone
100533	c.networkEndpointGroup = networkEndpointGroup
100534	return c
100535}
100536
100537// Fields allows partial responses to be retrieved. See
100538// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
100539// for more information.
100540func (c *NetworkEndpointGroupsGetCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsGetCall {
100541	c.urlParams_.Set("fields", googleapi.CombineFields(s))
100542	return c
100543}
100544
100545// IfNoneMatch sets the optional parameter which makes the operation
100546// fail if the object's ETag matches the given value. This is useful for
100547// getting updates only after the object has changed since the last
100548// request. Use googleapi.IsNotModified to check whether the response
100549// error from Do is the result of In-None-Match.
100550func (c *NetworkEndpointGroupsGetCall) IfNoneMatch(entityTag string) *NetworkEndpointGroupsGetCall {
100551	c.ifNoneMatch_ = entityTag
100552	return c
100553}
100554
100555// Context sets the context to be used in this call's Do method. Any
100556// pending HTTP request will be aborted if the provided context is
100557// canceled.
100558func (c *NetworkEndpointGroupsGetCall) Context(ctx context.Context) *NetworkEndpointGroupsGetCall {
100559	c.ctx_ = ctx
100560	return c
100561}
100562
100563// Header returns an http.Header that can be modified by the caller to
100564// add HTTP headers to the request.
100565func (c *NetworkEndpointGroupsGetCall) Header() http.Header {
100566	if c.header_ == nil {
100567		c.header_ = make(http.Header)
100568	}
100569	return c.header_
100570}
100571
100572func (c *NetworkEndpointGroupsGetCall) doRequest(alt string) (*http.Response, error) {
100573	reqHeaders := make(http.Header)
100574	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
100575	for k, v := range c.header_ {
100576		reqHeaders[k] = v
100577	}
100578	reqHeaders.Set("User-Agent", c.s.userAgent())
100579	if c.ifNoneMatch_ != "" {
100580		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
100581	}
100582	var body io.Reader = nil
100583	c.urlParams_.Set("alt", alt)
100584	c.urlParams_.Set("prettyPrint", "false")
100585	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}")
100586	urls += "?" + c.urlParams_.Encode()
100587	req, err := http.NewRequest("GET", urls, body)
100588	if err != nil {
100589		return nil, err
100590	}
100591	req.Header = reqHeaders
100592	googleapi.Expand(req.URL, map[string]string{
100593		"project":              c.project,
100594		"zone":                 c.zone,
100595		"networkEndpointGroup": c.networkEndpointGroup,
100596	})
100597	return gensupport.SendRequest(c.ctx_, c.s.client, req)
100598}
100599
100600// Do executes the "compute.networkEndpointGroups.get" call.
100601// Exactly one of *NetworkEndpointGroup or error will be non-nil. Any
100602// non-2xx status code is an error. Response headers are in either
100603// *NetworkEndpointGroup.ServerResponse.Header or (if a response was
100604// returned at all) in error.(*googleapi.Error).Header. Use
100605// googleapi.IsNotModified to check whether the returned error was
100606// because http.StatusNotModified was returned.
100607func (c *NetworkEndpointGroupsGetCall) Do(opts ...googleapi.CallOption) (*NetworkEndpointGroup, error) {
100608	gensupport.SetOptions(c.urlParams_, opts...)
100609	res, err := c.doRequest("json")
100610	if res != nil && res.StatusCode == http.StatusNotModified {
100611		if res.Body != nil {
100612			res.Body.Close()
100613		}
100614		return nil, &googleapi.Error{
100615			Code:   res.StatusCode,
100616			Header: res.Header,
100617		}
100618	}
100619	if err != nil {
100620		return nil, err
100621	}
100622	defer googleapi.CloseBody(res)
100623	if err := googleapi.CheckResponse(res); err != nil {
100624		return nil, err
100625	}
100626	ret := &NetworkEndpointGroup{
100627		ServerResponse: googleapi.ServerResponse{
100628			Header:         res.Header,
100629			HTTPStatusCode: res.StatusCode,
100630		},
100631	}
100632	target := &ret
100633	if err := gensupport.DecodeResponse(target, res); err != nil {
100634		return nil, err
100635	}
100636	return ret, nil
100637	// {
100638	//   "description": "Returns the specified network endpoint group. Gets a list of available network endpoint groups by making a list() request. (== suppress_warning http-rest-shadowed ==)",
100639	//   "httpMethod": "GET",
100640	//   "id": "compute.networkEndpointGroups.get",
100641	//   "parameterOrder": [
100642	//     "project",
100643	//     "zone",
100644	//     "networkEndpointGroup"
100645	//   ],
100646	//   "parameters": {
100647	//     "networkEndpointGroup": {
100648	//       "description": "The name of the network endpoint group. It should comply with RFC1035.",
100649	//       "location": "path",
100650	//       "required": true,
100651	//       "type": "string"
100652	//     },
100653	//     "project": {
100654	//       "description": "Project ID for this request.",
100655	//       "location": "path",
100656	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
100657	//       "required": true,
100658	//       "type": "string"
100659	//     },
100660	//     "zone": {
100661	//       "description": "The name of the zone where the network endpoint group is located. It should comply with RFC1035.",
100662	//       "location": "path",
100663	//       "required": true,
100664	//       "type": "string"
100665	//     }
100666	//   },
100667	//   "path": "{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}",
100668	//   "response": {
100669	//     "$ref": "NetworkEndpointGroup"
100670	//   },
100671	//   "scopes": [
100672	//     "https://www.googleapis.com/auth/cloud-platform",
100673	//     "https://www.googleapis.com/auth/compute",
100674	//     "https://www.googleapis.com/auth/compute.readonly"
100675	//   ]
100676	// }
100677
100678}
100679
100680// method id "compute.networkEndpointGroups.insert":
100681
100682type NetworkEndpointGroupsInsertCall struct {
100683	s                    *Service
100684	project              string
100685	zone                 string
100686	networkendpointgroup *NetworkEndpointGroup
100687	urlParams_           gensupport.URLParams
100688	ctx_                 context.Context
100689	header_              http.Header
100690}
100691
100692// Insert: Creates a network endpoint group in the specified project
100693// using the parameters that are included in the request. (==
100694// suppress_warning http-rest-shadowed ==)
100695func (r *NetworkEndpointGroupsService) Insert(project string, zone string, networkendpointgroup *NetworkEndpointGroup) *NetworkEndpointGroupsInsertCall {
100696	c := &NetworkEndpointGroupsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
100697	c.project = project
100698	c.zone = zone
100699	c.networkendpointgroup = networkendpointgroup
100700	return c
100701}
100702
100703// RequestId sets the optional parameter "requestId": An optional
100704// request ID to identify requests. Specify a unique request ID so that
100705// if you must retry your request, the server will know to ignore the
100706// request if it has already been completed.
100707//
100708// For example, consider a situation where you make an initial request
100709// and the request times out. If you make the request again with the
100710// same request ID, the server can check if original operation with the
100711// same request ID was received, and if so, will ignore the second
100712// request. This prevents clients from accidentally creating duplicate
100713// commitments.
100714//
100715// The request ID must be a valid UUID with the exception that zero UUID
100716// is not supported (00000000-0000-0000-0000-000000000000).
100717func (c *NetworkEndpointGroupsInsertCall) RequestId(requestId string) *NetworkEndpointGroupsInsertCall {
100718	c.urlParams_.Set("requestId", requestId)
100719	return c
100720}
100721
100722// Fields allows partial responses to be retrieved. See
100723// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
100724// for more information.
100725func (c *NetworkEndpointGroupsInsertCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsInsertCall {
100726	c.urlParams_.Set("fields", googleapi.CombineFields(s))
100727	return c
100728}
100729
100730// Context sets the context to be used in this call's Do method. Any
100731// pending HTTP request will be aborted if the provided context is
100732// canceled.
100733func (c *NetworkEndpointGroupsInsertCall) Context(ctx context.Context) *NetworkEndpointGroupsInsertCall {
100734	c.ctx_ = ctx
100735	return c
100736}
100737
100738// Header returns an http.Header that can be modified by the caller to
100739// add HTTP headers to the request.
100740func (c *NetworkEndpointGroupsInsertCall) Header() http.Header {
100741	if c.header_ == nil {
100742		c.header_ = make(http.Header)
100743	}
100744	return c.header_
100745}
100746
100747func (c *NetworkEndpointGroupsInsertCall) doRequest(alt string) (*http.Response, error) {
100748	reqHeaders := make(http.Header)
100749	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
100750	for k, v := range c.header_ {
100751		reqHeaders[k] = v
100752	}
100753	reqHeaders.Set("User-Agent", c.s.userAgent())
100754	var body io.Reader = nil
100755	body, err := googleapi.WithoutDataWrapper.JSONReader(c.networkendpointgroup)
100756	if err != nil {
100757		return nil, err
100758	}
100759	reqHeaders.Set("Content-Type", "application/json")
100760	c.urlParams_.Set("alt", alt)
100761	c.urlParams_.Set("prettyPrint", "false")
100762	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/networkEndpointGroups")
100763	urls += "?" + c.urlParams_.Encode()
100764	req, err := http.NewRequest("POST", urls, body)
100765	if err != nil {
100766		return nil, err
100767	}
100768	req.Header = reqHeaders
100769	googleapi.Expand(req.URL, map[string]string{
100770		"project": c.project,
100771		"zone":    c.zone,
100772	})
100773	return gensupport.SendRequest(c.ctx_, c.s.client, req)
100774}
100775
100776// Do executes the "compute.networkEndpointGroups.insert" call.
100777// Exactly one of *Operation or error will be non-nil. Any non-2xx
100778// status code is an error. Response headers are in either
100779// *Operation.ServerResponse.Header or (if a response was returned at
100780// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
100781// to check whether the returned error was because
100782// http.StatusNotModified was returned.
100783func (c *NetworkEndpointGroupsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
100784	gensupport.SetOptions(c.urlParams_, opts...)
100785	res, err := c.doRequest("json")
100786	if res != nil && res.StatusCode == http.StatusNotModified {
100787		if res.Body != nil {
100788			res.Body.Close()
100789		}
100790		return nil, &googleapi.Error{
100791			Code:   res.StatusCode,
100792			Header: res.Header,
100793		}
100794	}
100795	if err != nil {
100796		return nil, err
100797	}
100798	defer googleapi.CloseBody(res)
100799	if err := googleapi.CheckResponse(res); err != nil {
100800		return nil, err
100801	}
100802	ret := &Operation{
100803		ServerResponse: googleapi.ServerResponse{
100804			Header:         res.Header,
100805			HTTPStatusCode: res.StatusCode,
100806		},
100807	}
100808	target := &ret
100809	if err := gensupport.DecodeResponse(target, res); err != nil {
100810		return nil, err
100811	}
100812	return ret, nil
100813	// {
100814	//   "description": "Creates a network endpoint group in the specified project using the parameters that are included in the request. (== suppress_warning http-rest-shadowed ==)",
100815	//   "httpMethod": "POST",
100816	//   "id": "compute.networkEndpointGroups.insert",
100817	//   "parameterOrder": [
100818	//     "project",
100819	//     "zone"
100820	//   ],
100821	//   "parameters": {
100822	//     "project": {
100823	//       "description": "Project ID for this request.",
100824	//       "location": "path",
100825	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
100826	//       "required": true,
100827	//       "type": "string"
100828	//     },
100829	//     "requestId": {
100830	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
100831	//       "location": "query",
100832	//       "type": "string"
100833	//     },
100834	//     "zone": {
100835	//       "description": "The name of the zone where you want to create the network endpoint group. It should comply with RFC1035.",
100836	//       "location": "path",
100837	//       "required": true,
100838	//       "type": "string"
100839	//     }
100840	//   },
100841	//   "path": "{project}/zones/{zone}/networkEndpointGroups",
100842	//   "request": {
100843	//     "$ref": "NetworkEndpointGroup"
100844	//   },
100845	//   "response": {
100846	//     "$ref": "Operation"
100847	//   },
100848	//   "scopes": [
100849	//     "https://www.googleapis.com/auth/cloud-platform",
100850	//     "https://www.googleapis.com/auth/compute"
100851	//   ]
100852	// }
100853
100854}
100855
100856// method id "compute.networkEndpointGroups.list":
100857
100858type NetworkEndpointGroupsListCall struct {
100859	s            *Service
100860	project      string
100861	zone         string
100862	urlParams_   gensupport.URLParams
100863	ifNoneMatch_ string
100864	ctx_         context.Context
100865	header_      http.Header
100866}
100867
100868// List: Retrieves the list of network endpoint groups that are located
100869// in the specified project and zone. (== suppress_warning
100870// http-rest-shadowed ==)
100871func (r *NetworkEndpointGroupsService) List(project string, zone string) *NetworkEndpointGroupsListCall {
100872	c := &NetworkEndpointGroupsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
100873	c.project = project
100874	c.zone = zone
100875	return c
100876}
100877
100878// Filter sets the optional parameter "filter": A filter expression that
100879// filters resources listed in the response. The expression must specify
100880// the field name, a comparison operator, and the value that you want to
100881// use for filtering. The value must be a string, a number, or a
100882// boolean. The comparison operator must be either =, !=, >, or <.
100883//
100884// For example, if you are filtering Compute Engine instances, you can
100885// exclude instances named example-instance by specifying name !=
100886// example-instance.
100887//
100888// You can also filter nested fields. For example, you could specify
100889// scheduling.automaticRestart = false to include instances only if they
100890// are not scheduled for automatic restarts. You can use filtering on
100891// nested fields to filter based on resource labels.
100892//
100893// To filter on multiple expressions, provide each separate expression
100894// within parentheses. For example, (scheduling.automaticRestart = true)
100895// (cpuPlatform = "Intel Skylake"). By default, each expression is an
100896// AND expression. However, you can include AND and OR expressions
100897// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
100898// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
100899// true).
100900func (c *NetworkEndpointGroupsListCall) Filter(filter string) *NetworkEndpointGroupsListCall {
100901	c.urlParams_.Set("filter", filter)
100902	return c
100903}
100904
100905// MaxResults sets the optional parameter "maxResults": The maximum
100906// number of results per page that should be returned. If the number of
100907// available results is larger than maxResults, Compute Engine returns a
100908// nextPageToken that can be used to get the next page of results in
100909// subsequent list requests. Acceptable values are 0 to 500, inclusive.
100910// (Default: 500)
100911func (c *NetworkEndpointGroupsListCall) MaxResults(maxResults int64) *NetworkEndpointGroupsListCall {
100912	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
100913	return c
100914}
100915
100916// OrderBy sets the optional parameter "orderBy": Sorts list results by
100917// a certain order. By default, results are returned in alphanumerical
100918// order based on the resource name.
100919//
100920// You can also sort results in descending order based on the creation
100921// timestamp using orderBy="creationTimestamp desc". This sorts results
100922// based on the creationTimestamp field in reverse chronological order
100923// (newest result first). Use this to sort resources like operations so
100924// that the newest operation is returned first.
100925//
100926// Currently, only sorting by name or creationTimestamp desc is
100927// supported.
100928func (c *NetworkEndpointGroupsListCall) OrderBy(orderBy string) *NetworkEndpointGroupsListCall {
100929	c.urlParams_.Set("orderBy", orderBy)
100930	return c
100931}
100932
100933// PageToken sets the optional parameter "pageToken": Specifies a page
100934// token to use. Set pageToken to the nextPageToken returned by a
100935// previous list request to get the next page of results.
100936func (c *NetworkEndpointGroupsListCall) PageToken(pageToken string) *NetworkEndpointGroupsListCall {
100937	c.urlParams_.Set("pageToken", pageToken)
100938	return c
100939}
100940
100941// Fields allows partial responses to be retrieved. See
100942// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
100943// for more information.
100944func (c *NetworkEndpointGroupsListCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsListCall {
100945	c.urlParams_.Set("fields", googleapi.CombineFields(s))
100946	return c
100947}
100948
100949// IfNoneMatch sets the optional parameter which makes the operation
100950// fail if the object's ETag matches the given value. This is useful for
100951// getting updates only after the object has changed since the last
100952// request. Use googleapi.IsNotModified to check whether the response
100953// error from Do is the result of In-None-Match.
100954func (c *NetworkEndpointGroupsListCall) IfNoneMatch(entityTag string) *NetworkEndpointGroupsListCall {
100955	c.ifNoneMatch_ = entityTag
100956	return c
100957}
100958
100959// Context sets the context to be used in this call's Do method. Any
100960// pending HTTP request will be aborted if the provided context is
100961// canceled.
100962func (c *NetworkEndpointGroupsListCall) Context(ctx context.Context) *NetworkEndpointGroupsListCall {
100963	c.ctx_ = ctx
100964	return c
100965}
100966
100967// Header returns an http.Header that can be modified by the caller to
100968// add HTTP headers to the request.
100969func (c *NetworkEndpointGroupsListCall) Header() http.Header {
100970	if c.header_ == nil {
100971		c.header_ = make(http.Header)
100972	}
100973	return c.header_
100974}
100975
100976func (c *NetworkEndpointGroupsListCall) doRequest(alt string) (*http.Response, error) {
100977	reqHeaders := make(http.Header)
100978	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
100979	for k, v := range c.header_ {
100980		reqHeaders[k] = v
100981	}
100982	reqHeaders.Set("User-Agent", c.s.userAgent())
100983	if c.ifNoneMatch_ != "" {
100984		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
100985	}
100986	var body io.Reader = nil
100987	c.urlParams_.Set("alt", alt)
100988	c.urlParams_.Set("prettyPrint", "false")
100989	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/networkEndpointGroups")
100990	urls += "?" + c.urlParams_.Encode()
100991	req, err := http.NewRequest("GET", urls, body)
100992	if err != nil {
100993		return nil, err
100994	}
100995	req.Header = reqHeaders
100996	googleapi.Expand(req.URL, map[string]string{
100997		"project": c.project,
100998		"zone":    c.zone,
100999	})
101000	return gensupport.SendRequest(c.ctx_, c.s.client, req)
101001}
101002
101003// Do executes the "compute.networkEndpointGroups.list" call.
101004// Exactly one of *NetworkEndpointGroupList or error will be non-nil.
101005// Any non-2xx status code is an error. Response headers are in either
101006// *NetworkEndpointGroupList.ServerResponse.Header or (if a response was
101007// returned at all) in error.(*googleapi.Error).Header. Use
101008// googleapi.IsNotModified to check whether the returned error was
101009// because http.StatusNotModified was returned.
101010func (c *NetworkEndpointGroupsListCall) Do(opts ...googleapi.CallOption) (*NetworkEndpointGroupList, error) {
101011	gensupport.SetOptions(c.urlParams_, opts...)
101012	res, err := c.doRequest("json")
101013	if res != nil && res.StatusCode == http.StatusNotModified {
101014		if res.Body != nil {
101015			res.Body.Close()
101016		}
101017		return nil, &googleapi.Error{
101018			Code:   res.StatusCode,
101019			Header: res.Header,
101020		}
101021	}
101022	if err != nil {
101023		return nil, err
101024	}
101025	defer googleapi.CloseBody(res)
101026	if err := googleapi.CheckResponse(res); err != nil {
101027		return nil, err
101028	}
101029	ret := &NetworkEndpointGroupList{
101030		ServerResponse: googleapi.ServerResponse{
101031			Header:         res.Header,
101032			HTTPStatusCode: res.StatusCode,
101033		},
101034	}
101035	target := &ret
101036	if err := gensupport.DecodeResponse(target, res); err != nil {
101037		return nil, err
101038	}
101039	return ret, nil
101040	// {
101041	//   "description": "Retrieves the list of network endpoint groups that are located in the specified project and zone. (== suppress_warning http-rest-shadowed ==)",
101042	//   "httpMethod": "GET",
101043	//   "id": "compute.networkEndpointGroups.list",
101044	//   "parameterOrder": [
101045	//     "project",
101046	//     "zone"
101047	//   ],
101048	//   "parameters": {
101049	//     "filter": {
101050	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
101051	//       "location": "query",
101052	//       "type": "string"
101053	//     },
101054	//     "maxResults": {
101055	//       "default": "500",
101056	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
101057	//       "format": "uint32",
101058	//       "location": "query",
101059	//       "minimum": "0",
101060	//       "type": "integer"
101061	//     },
101062	//     "orderBy": {
101063	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
101064	//       "location": "query",
101065	//       "type": "string"
101066	//     },
101067	//     "pageToken": {
101068	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
101069	//       "location": "query",
101070	//       "type": "string"
101071	//     },
101072	//     "project": {
101073	//       "description": "Project ID for this request.",
101074	//       "location": "path",
101075	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
101076	//       "required": true,
101077	//       "type": "string"
101078	//     },
101079	//     "zone": {
101080	//       "description": "The name of the zone where the network endpoint group is located. It should comply with RFC1035.",
101081	//       "location": "path",
101082	//       "required": true,
101083	//       "type": "string"
101084	//     }
101085	//   },
101086	//   "path": "{project}/zones/{zone}/networkEndpointGroups",
101087	//   "response": {
101088	//     "$ref": "NetworkEndpointGroupList"
101089	//   },
101090	//   "scopes": [
101091	//     "https://www.googleapis.com/auth/cloud-platform",
101092	//     "https://www.googleapis.com/auth/compute",
101093	//     "https://www.googleapis.com/auth/compute.readonly"
101094	//   ]
101095	// }
101096
101097}
101098
101099// Pages invokes f for each page of results.
101100// A non-nil error returned from f will halt the iteration.
101101// The provided context supersedes any context provided to the Context method.
101102func (c *NetworkEndpointGroupsListCall) Pages(ctx context.Context, f func(*NetworkEndpointGroupList) error) error {
101103	c.ctx_ = ctx
101104	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
101105	for {
101106		x, err := c.Do()
101107		if err != nil {
101108			return err
101109		}
101110		if err := f(x); err != nil {
101111			return err
101112		}
101113		if x.NextPageToken == "" {
101114			return nil
101115		}
101116		c.PageToken(x.NextPageToken)
101117	}
101118}
101119
101120// method id "compute.networkEndpointGroups.listNetworkEndpoints":
101121
101122type NetworkEndpointGroupsListNetworkEndpointsCall struct {
101123	s                                         *Service
101124	project                                   string
101125	zone                                      string
101126	networkEndpointGroup                      string
101127	networkendpointgroupslistendpointsrequest *NetworkEndpointGroupsListEndpointsRequest
101128	urlParams_                                gensupport.URLParams
101129	ctx_                                      context.Context
101130	header_                                   http.Header
101131}
101132
101133// ListNetworkEndpoints: Lists the network endpoints in the specified
101134// network endpoint group. (== suppress_warning http-rest-shadowed ==)
101135func (r *NetworkEndpointGroupsService) ListNetworkEndpoints(project string, zone string, networkEndpointGroup string, networkendpointgroupslistendpointsrequest *NetworkEndpointGroupsListEndpointsRequest) *NetworkEndpointGroupsListNetworkEndpointsCall {
101136	c := &NetworkEndpointGroupsListNetworkEndpointsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
101137	c.project = project
101138	c.zone = zone
101139	c.networkEndpointGroup = networkEndpointGroup
101140	c.networkendpointgroupslistendpointsrequest = networkendpointgroupslistendpointsrequest
101141	return c
101142}
101143
101144// Filter sets the optional parameter "filter": A filter expression that
101145// filters resources listed in the response. The expression must specify
101146// the field name, a comparison operator, and the value that you want to
101147// use for filtering. The value must be a string, a number, or a
101148// boolean. The comparison operator must be either =, !=, >, or <.
101149//
101150// For example, if you are filtering Compute Engine instances, you can
101151// exclude instances named example-instance by specifying name !=
101152// example-instance.
101153//
101154// You can also filter nested fields. For example, you could specify
101155// scheduling.automaticRestart = false to include instances only if they
101156// are not scheduled for automatic restarts. You can use filtering on
101157// nested fields to filter based on resource labels.
101158//
101159// To filter on multiple expressions, provide each separate expression
101160// within parentheses. For example, (scheduling.automaticRestart = true)
101161// (cpuPlatform = "Intel Skylake"). By default, each expression is an
101162// AND expression. However, you can include AND and OR expressions
101163// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
101164// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
101165// true).
101166func (c *NetworkEndpointGroupsListNetworkEndpointsCall) Filter(filter string) *NetworkEndpointGroupsListNetworkEndpointsCall {
101167	c.urlParams_.Set("filter", filter)
101168	return c
101169}
101170
101171// MaxResults sets the optional parameter "maxResults": The maximum
101172// number of results per page that should be returned. If the number of
101173// available results is larger than maxResults, Compute Engine returns a
101174// nextPageToken that can be used to get the next page of results in
101175// subsequent list requests. Acceptable values are 0 to 500, inclusive.
101176// (Default: 500)
101177func (c *NetworkEndpointGroupsListNetworkEndpointsCall) MaxResults(maxResults int64) *NetworkEndpointGroupsListNetworkEndpointsCall {
101178	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
101179	return c
101180}
101181
101182// OrderBy sets the optional parameter "orderBy": Sorts list results by
101183// a certain order. By default, results are returned in alphanumerical
101184// order based on the resource name.
101185//
101186// You can also sort results in descending order based on the creation
101187// timestamp using orderBy="creationTimestamp desc". This sorts results
101188// based on the creationTimestamp field in reverse chronological order
101189// (newest result first). Use this to sort resources like operations so
101190// that the newest operation is returned first.
101191//
101192// Currently, only sorting by name or creationTimestamp desc is
101193// supported.
101194func (c *NetworkEndpointGroupsListNetworkEndpointsCall) OrderBy(orderBy string) *NetworkEndpointGroupsListNetworkEndpointsCall {
101195	c.urlParams_.Set("orderBy", orderBy)
101196	return c
101197}
101198
101199// PageToken sets the optional parameter "pageToken": Specifies a page
101200// token to use. Set pageToken to the nextPageToken returned by a
101201// previous list request to get the next page of results.
101202func (c *NetworkEndpointGroupsListNetworkEndpointsCall) PageToken(pageToken string) *NetworkEndpointGroupsListNetworkEndpointsCall {
101203	c.urlParams_.Set("pageToken", pageToken)
101204	return c
101205}
101206
101207// Fields allows partial responses to be retrieved. See
101208// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
101209// for more information.
101210func (c *NetworkEndpointGroupsListNetworkEndpointsCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsListNetworkEndpointsCall {
101211	c.urlParams_.Set("fields", googleapi.CombineFields(s))
101212	return c
101213}
101214
101215// Context sets the context to be used in this call's Do method. Any
101216// pending HTTP request will be aborted if the provided context is
101217// canceled.
101218func (c *NetworkEndpointGroupsListNetworkEndpointsCall) Context(ctx context.Context) *NetworkEndpointGroupsListNetworkEndpointsCall {
101219	c.ctx_ = ctx
101220	return c
101221}
101222
101223// Header returns an http.Header that can be modified by the caller to
101224// add HTTP headers to the request.
101225func (c *NetworkEndpointGroupsListNetworkEndpointsCall) Header() http.Header {
101226	if c.header_ == nil {
101227		c.header_ = make(http.Header)
101228	}
101229	return c.header_
101230}
101231
101232func (c *NetworkEndpointGroupsListNetworkEndpointsCall) doRequest(alt string) (*http.Response, error) {
101233	reqHeaders := make(http.Header)
101234	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
101235	for k, v := range c.header_ {
101236		reqHeaders[k] = v
101237	}
101238	reqHeaders.Set("User-Agent", c.s.userAgent())
101239	var body io.Reader = nil
101240	body, err := googleapi.WithoutDataWrapper.JSONReader(c.networkendpointgroupslistendpointsrequest)
101241	if err != nil {
101242		return nil, err
101243	}
101244	reqHeaders.Set("Content-Type", "application/json")
101245	c.urlParams_.Set("alt", alt)
101246	c.urlParams_.Set("prettyPrint", "false")
101247	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/listNetworkEndpoints")
101248	urls += "?" + c.urlParams_.Encode()
101249	req, err := http.NewRequest("POST", urls, body)
101250	if err != nil {
101251		return nil, err
101252	}
101253	req.Header = reqHeaders
101254	googleapi.Expand(req.URL, map[string]string{
101255		"project":              c.project,
101256		"zone":                 c.zone,
101257		"networkEndpointGroup": c.networkEndpointGroup,
101258	})
101259	return gensupport.SendRequest(c.ctx_, c.s.client, req)
101260}
101261
101262// Do executes the "compute.networkEndpointGroups.listNetworkEndpoints" call.
101263// Exactly one of *NetworkEndpointGroupsListNetworkEndpoints or error
101264// will be non-nil. Any non-2xx status code is an error. Response
101265// headers are in either
101266// *NetworkEndpointGroupsListNetworkEndpoints.ServerResponse.Header or
101267// (if a response was returned at all) in
101268// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
101269// whether the returned error was because http.StatusNotModified was
101270// returned.
101271func (c *NetworkEndpointGroupsListNetworkEndpointsCall) Do(opts ...googleapi.CallOption) (*NetworkEndpointGroupsListNetworkEndpoints, error) {
101272	gensupport.SetOptions(c.urlParams_, opts...)
101273	res, err := c.doRequest("json")
101274	if res != nil && res.StatusCode == http.StatusNotModified {
101275		if res.Body != nil {
101276			res.Body.Close()
101277		}
101278		return nil, &googleapi.Error{
101279			Code:   res.StatusCode,
101280			Header: res.Header,
101281		}
101282	}
101283	if err != nil {
101284		return nil, err
101285	}
101286	defer googleapi.CloseBody(res)
101287	if err := googleapi.CheckResponse(res); err != nil {
101288		return nil, err
101289	}
101290	ret := &NetworkEndpointGroupsListNetworkEndpoints{
101291		ServerResponse: googleapi.ServerResponse{
101292			Header:         res.Header,
101293			HTTPStatusCode: res.StatusCode,
101294		},
101295	}
101296	target := &ret
101297	if err := gensupport.DecodeResponse(target, res); err != nil {
101298		return nil, err
101299	}
101300	return ret, nil
101301	// {
101302	//   "description": "Lists the network endpoints in the specified network endpoint group. (== suppress_warning http-rest-shadowed ==)",
101303	//   "httpMethod": "POST",
101304	//   "id": "compute.networkEndpointGroups.listNetworkEndpoints",
101305	//   "parameterOrder": [
101306	//     "project",
101307	//     "zone",
101308	//     "networkEndpointGroup"
101309	//   ],
101310	//   "parameters": {
101311	//     "filter": {
101312	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
101313	//       "location": "query",
101314	//       "type": "string"
101315	//     },
101316	//     "maxResults": {
101317	//       "default": "500",
101318	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
101319	//       "format": "uint32",
101320	//       "location": "query",
101321	//       "minimum": "0",
101322	//       "type": "integer"
101323	//     },
101324	//     "networkEndpointGroup": {
101325	//       "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.",
101326	//       "location": "path",
101327	//       "required": true,
101328	//       "type": "string"
101329	//     },
101330	//     "orderBy": {
101331	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
101332	//       "location": "query",
101333	//       "type": "string"
101334	//     },
101335	//     "pageToken": {
101336	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
101337	//       "location": "query",
101338	//       "type": "string"
101339	//     },
101340	//     "project": {
101341	//       "description": "Project ID for this request.",
101342	//       "location": "path",
101343	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
101344	//       "required": true,
101345	//       "type": "string"
101346	//     },
101347	//     "zone": {
101348	//       "description": "The name of the zone where the network endpoint group is located. It should comply with RFC1035.",
101349	//       "location": "path",
101350	//       "required": true,
101351	//       "type": "string"
101352	//     }
101353	//   },
101354	//   "path": "{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/listNetworkEndpoints",
101355	//   "request": {
101356	//     "$ref": "NetworkEndpointGroupsListEndpointsRequest"
101357	//   },
101358	//   "response": {
101359	//     "$ref": "NetworkEndpointGroupsListNetworkEndpoints"
101360	//   },
101361	//   "scopes": [
101362	//     "https://www.googleapis.com/auth/cloud-platform",
101363	//     "https://www.googleapis.com/auth/compute",
101364	//     "https://www.googleapis.com/auth/compute.readonly"
101365	//   ]
101366	// }
101367
101368}
101369
101370// Pages invokes f for each page of results.
101371// A non-nil error returned from f will halt the iteration.
101372// The provided context supersedes any context provided to the Context method.
101373func (c *NetworkEndpointGroupsListNetworkEndpointsCall) Pages(ctx context.Context, f func(*NetworkEndpointGroupsListNetworkEndpoints) error) error {
101374	c.ctx_ = ctx
101375	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
101376	for {
101377		x, err := c.Do()
101378		if err != nil {
101379			return err
101380		}
101381		if err := f(x); err != nil {
101382			return err
101383		}
101384		if x.NextPageToken == "" {
101385			return nil
101386		}
101387		c.PageToken(x.NextPageToken)
101388	}
101389}
101390
101391// method id "compute.networkEndpointGroups.testIamPermissions":
101392
101393type NetworkEndpointGroupsTestIamPermissionsCall struct {
101394	s                      *Service
101395	project                string
101396	zone                   string
101397	resource               string
101398	testpermissionsrequest *TestPermissionsRequest
101399	urlParams_             gensupport.URLParams
101400	ctx_                   context.Context
101401	header_                http.Header
101402}
101403
101404// TestIamPermissions: Returns permissions that a caller has on the
101405// specified resource. (== suppress_warning http-rest-shadowed ==)
101406func (r *NetworkEndpointGroupsService) TestIamPermissions(project string, zone string, resource string, testpermissionsrequest *TestPermissionsRequest) *NetworkEndpointGroupsTestIamPermissionsCall {
101407	c := &NetworkEndpointGroupsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
101408	c.project = project
101409	c.zone = zone
101410	c.resource = resource
101411	c.testpermissionsrequest = testpermissionsrequest
101412	return c
101413}
101414
101415// Fields allows partial responses to be retrieved. See
101416// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
101417// for more information.
101418func (c *NetworkEndpointGroupsTestIamPermissionsCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsTestIamPermissionsCall {
101419	c.urlParams_.Set("fields", googleapi.CombineFields(s))
101420	return c
101421}
101422
101423// Context sets the context to be used in this call's Do method. Any
101424// pending HTTP request will be aborted if the provided context is
101425// canceled.
101426func (c *NetworkEndpointGroupsTestIamPermissionsCall) Context(ctx context.Context) *NetworkEndpointGroupsTestIamPermissionsCall {
101427	c.ctx_ = ctx
101428	return c
101429}
101430
101431// Header returns an http.Header that can be modified by the caller to
101432// add HTTP headers to the request.
101433func (c *NetworkEndpointGroupsTestIamPermissionsCall) Header() http.Header {
101434	if c.header_ == nil {
101435		c.header_ = make(http.Header)
101436	}
101437	return c.header_
101438}
101439
101440func (c *NetworkEndpointGroupsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
101441	reqHeaders := make(http.Header)
101442	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
101443	for k, v := range c.header_ {
101444		reqHeaders[k] = v
101445	}
101446	reqHeaders.Set("User-Agent", c.s.userAgent())
101447	var body io.Reader = nil
101448	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
101449	if err != nil {
101450		return nil, err
101451	}
101452	reqHeaders.Set("Content-Type", "application/json")
101453	c.urlParams_.Set("alt", alt)
101454	c.urlParams_.Set("prettyPrint", "false")
101455	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/networkEndpointGroups/{resource}/testIamPermissions")
101456	urls += "?" + c.urlParams_.Encode()
101457	req, err := http.NewRequest("POST", urls, body)
101458	if err != nil {
101459		return nil, err
101460	}
101461	req.Header = reqHeaders
101462	googleapi.Expand(req.URL, map[string]string{
101463		"project":  c.project,
101464		"zone":     c.zone,
101465		"resource": c.resource,
101466	})
101467	return gensupport.SendRequest(c.ctx_, c.s.client, req)
101468}
101469
101470// Do executes the "compute.networkEndpointGroups.testIamPermissions" call.
101471// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
101472// non-2xx status code is an error. Response headers are in either
101473// *TestPermissionsResponse.ServerResponse.Header or (if a response was
101474// returned at all) in error.(*googleapi.Error).Header. Use
101475// googleapi.IsNotModified to check whether the returned error was
101476// because http.StatusNotModified was returned.
101477func (c *NetworkEndpointGroupsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
101478	gensupport.SetOptions(c.urlParams_, opts...)
101479	res, err := c.doRequest("json")
101480	if res != nil && res.StatusCode == http.StatusNotModified {
101481		if res.Body != nil {
101482			res.Body.Close()
101483		}
101484		return nil, &googleapi.Error{
101485			Code:   res.StatusCode,
101486			Header: res.Header,
101487		}
101488	}
101489	if err != nil {
101490		return nil, err
101491	}
101492	defer googleapi.CloseBody(res)
101493	if err := googleapi.CheckResponse(res); err != nil {
101494		return nil, err
101495	}
101496	ret := &TestPermissionsResponse{
101497		ServerResponse: googleapi.ServerResponse{
101498			Header:         res.Header,
101499			HTTPStatusCode: res.StatusCode,
101500		},
101501	}
101502	target := &ret
101503	if err := gensupport.DecodeResponse(target, res); err != nil {
101504		return nil, err
101505	}
101506	return ret, nil
101507	// {
101508	//   "description": "Returns permissions that a caller has on the specified resource. (== suppress_warning http-rest-shadowed ==)",
101509	//   "httpMethod": "POST",
101510	//   "id": "compute.networkEndpointGroups.testIamPermissions",
101511	//   "parameterOrder": [
101512	//     "project",
101513	//     "zone",
101514	//     "resource"
101515	//   ],
101516	//   "parameters": {
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	//     "resource": {
101525	//       "description": "Name or id of the resource for this request.",
101526	//       "location": "path",
101527	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
101528	//       "required": true,
101529	//       "type": "string"
101530	//     },
101531	//     "zone": {
101532	//       "description": "The name of the zone for this request.",
101533	//       "location": "path",
101534	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
101535	//       "required": true,
101536	//       "type": "string"
101537	//     }
101538	//   },
101539	//   "path": "{project}/zones/{zone}/networkEndpointGroups/{resource}/testIamPermissions",
101540	//   "request": {
101541	//     "$ref": "TestPermissionsRequest"
101542	//   },
101543	//   "response": {
101544	//     "$ref": "TestPermissionsResponse"
101545	//   },
101546	//   "scopes": [
101547	//     "https://www.googleapis.com/auth/cloud-platform",
101548	//     "https://www.googleapis.com/auth/compute",
101549	//     "https://www.googleapis.com/auth/compute.readonly"
101550	//   ]
101551	// }
101552
101553}
101554
101555// method id "compute.networks.addPeering":
101556
101557type NetworksAddPeeringCall struct {
101558	s                         *Service
101559	project                   string
101560	network                   string
101561	networksaddpeeringrequest *NetworksAddPeeringRequest
101562	urlParams_                gensupport.URLParams
101563	ctx_                      context.Context
101564	header_                   http.Header
101565}
101566
101567// AddPeering: Adds a peering to the specified network. (==
101568// suppress_warning http-rest-shadowed ==)
101569func (r *NetworksService) AddPeering(project string, network string, networksaddpeeringrequest *NetworksAddPeeringRequest) *NetworksAddPeeringCall {
101570	c := &NetworksAddPeeringCall{s: r.s, urlParams_: make(gensupport.URLParams)}
101571	c.project = project
101572	c.network = network
101573	c.networksaddpeeringrequest = networksaddpeeringrequest
101574	return c
101575}
101576
101577// RequestId sets the optional parameter "requestId": An optional
101578// request ID to identify requests. Specify a unique request ID so that
101579// if you must retry your request, the server will know to ignore the
101580// request if it has already been completed.
101581//
101582// For example, consider a situation where you make an initial request
101583// and the request times out. If you make the request again with the
101584// same request ID, the server can check if original operation with the
101585// same request ID was received, and if so, will ignore the second
101586// request. This prevents clients from accidentally creating duplicate
101587// commitments.
101588//
101589// The request ID must be a valid UUID with the exception that zero UUID
101590// is not supported (00000000-0000-0000-0000-000000000000).
101591func (c *NetworksAddPeeringCall) RequestId(requestId string) *NetworksAddPeeringCall {
101592	c.urlParams_.Set("requestId", requestId)
101593	return c
101594}
101595
101596// Fields allows partial responses to be retrieved. See
101597// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
101598// for more information.
101599func (c *NetworksAddPeeringCall) Fields(s ...googleapi.Field) *NetworksAddPeeringCall {
101600	c.urlParams_.Set("fields", googleapi.CombineFields(s))
101601	return c
101602}
101603
101604// Context sets the context to be used in this call's Do method. Any
101605// pending HTTP request will be aborted if the provided context is
101606// canceled.
101607func (c *NetworksAddPeeringCall) Context(ctx context.Context) *NetworksAddPeeringCall {
101608	c.ctx_ = ctx
101609	return c
101610}
101611
101612// Header returns an http.Header that can be modified by the caller to
101613// add HTTP headers to the request.
101614func (c *NetworksAddPeeringCall) Header() http.Header {
101615	if c.header_ == nil {
101616		c.header_ = make(http.Header)
101617	}
101618	return c.header_
101619}
101620
101621func (c *NetworksAddPeeringCall) doRequest(alt string) (*http.Response, error) {
101622	reqHeaders := make(http.Header)
101623	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
101624	for k, v := range c.header_ {
101625		reqHeaders[k] = v
101626	}
101627	reqHeaders.Set("User-Agent", c.s.userAgent())
101628	var body io.Reader = nil
101629	body, err := googleapi.WithoutDataWrapper.JSONReader(c.networksaddpeeringrequest)
101630	if err != nil {
101631		return nil, err
101632	}
101633	reqHeaders.Set("Content-Type", "application/json")
101634	c.urlParams_.Set("alt", alt)
101635	c.urlParams_.Set("prettyPrint", "false")
101636	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networks/{network}/addPeering")
101637	urls += "?" + c.urlParams_.Encode()
101638	req, err := http.NewRequest("POST", urls, body)
101639	if err != nil {
101640		return nil, err
101641	}
101642	req.Header = reqHeaders
101643	googleapi.Expand(req.URL, map[string]string{
101644		"project": c.project,
101645		"network": c.network,
101646	})
101647	return gensupport.SendRequest(c.ctx_, c.s.client, req)
101648}
101649
101650// Do executes the "compute.networks.addPeering" call.
101651// Exactly one of *Operation or error will be non-nil. Any non-2xx
101652// status code is an error. Response headers are in either
101653// *Operation.ServerResponse.Header or (if a response was returned at
101654// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
101655// to check whether the returned error was because
101656// http.StatusNotModified was returned.
101657func (c *NetworksAddPeeringCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
101658	gensupport.SetOptions(c.urlParams_, opts...)
101659	res, err := c.doRequest("json")
101660	if res != nil && res.StatusCode == http.StatusNotModified {
101661		if res.Body != nil {
101662			res.Body.Close()
101663		}
101664		return nil, &googleapi.Error{
101665			Code:   res.StatusCode,
101666			Header: res.Header,
101667		}
101668	}
101669	if err != nil {
101670		return nil, err
101671	}
101672	defer googleapi.CloseBody(res)
101673	if err := googleapi.CheckResponse(res); err != nil {
101674		return nil, err
101675	}
101676	ret := &Operation{
101677		ServerResponse: googleapi.ServerResponse{
101678			Header:         res.Header,
101679			HTTPStatusCode: res.StatusCode,
101680		},
101681	}
101682	target := &ret
101683	if err := gensupport.DecodeResponse(target, res); err != nil {
101684		return nil, err
101685	}
101686	return ret, nil
101687	// {
101688	//   "description": "Adds a peering to the specified network. (== suppress_warning http-rest-shadowed ==)",
101689	//   "httpMethod": "POST",
101690	//   "id": "compute.networks.addPeering",
101691	//   "parameterOrder": [
101692	//     "project",
101693	//     "network"
101694	//   ],
101695	//   "parameters": {
101696	//     "network": {
101697	//       "description": "Name of the network resource to add peering to.",
101698	//       "location": "path",
101699	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
101700	//       "required": true,
101701	//       "type": "string"
101702	//     },
101703	//     "project": {
101704	//       "description": "Project ID for this request.",
101705	//       "location": "path",
101706	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
101707	//       "required": true,
101708	//       "type": "string"
101709	//     },
101710	//     "requestId": {
101711	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
101712	//       "location": "query",
101713	//       "type": "string"
101714	//     }
101715	//   },
101716	//   "path": "{project}/global/networks/{network}/addPeering",
101717	//   "request": {
101718	//     "$ref": "NetworksAddPeeringRequest"
101719	//   },
101720	//   "response": {
101721	//     "$ref": "Operation"
101722	//   },
101723	//   "scopes": [
101724	//     "https://www.googleapis.com/auth/cloud-platform",
101725	//     "https://www.googleapis.com/auth/compute"
101726	//   ]
101727	// }
101728
101729}
101730
101731// method id "compute.networks.delete":
101732
101733type NetworksDeleteCall struct {
101734	s          *Service
101735	project    string
101736	network    string
101737	urlParams_ gensupport.URLParams
101738	ctx_       context.Context
101739	header_    http.Header
101740}
101741
101742// Delete: Deletes the specified network. (== suppress_warning
101743// http-rest-shadowed ==)
101744// For details, see https://cloud.google.com/compute/docs/reference/latest/networks/delete
101745func (r *NetworksService) Delete(project string, network string) *NetworksDeleteCall {
101746	c := &NetworksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
101747	c.project = project
101748	c.network = network
101749	return c
101750}
101751
101752// RequestId sets the optional parameter "requestId": An optional
101753// request ID to identify requests. Specify a unique request ID so that
101754// if you must retry your request, the server will know to ignore the
101755// request if it has already been completed.
101756//
101757// For example, consider a situation where you make an initial request
101758// and the request times out. If you make the request again with the
101759// same request ID, the server can check if original operation with the
101760// same request ID was received, and if so, will ignore the second
101761// request. This prevents clients from accidentally creating duplicate
101762// commitments.
101763//
101764// The request ID must be a valid UUID with the exception that zero UUID
101765// is not supported (00000000-0000-0000-0000-000000000000).
101766func (c *NetworksDeleteCall) RequestId(requestId string) *NetworksDeleteCall {
101767	c.urlParams_.Set("requestId", requestId)
101768	return c
101769}
101770
101771// Fields allows partial responses to be retrieved. See
101772// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
101773// for more information.
101774func (c *NetworksDeleteCall) Fields(s ...googleapi.Field) *NetworksDeleteCall {
101775	c.urlParams_.Set("fields", googleapi.CombineFields(s))
101776	return c
101777}
101778
101779// Context sets the context to be used in this call's Do method. Any
101780// pending HTTP request will be aborted if the provided context is
101781// canceled.
101782func (c *NetworksDeleteCall) Context(ctx context.Context) *NetworksDeleteCall {
101783	c.ctx_ = ctx
101784	return c
101785}
101786
101787// Header returns an http.Header that can be modified by the caller to
101788// add HTTP headers to the request.
101789func (c *NetworksDeleteCall) Header() http.Header {
101790	if c.header_ == nil {
101791		c.header_ = make(http.Header)
101792	}
101793	return c.header_
101794}
101795
101796func (c *NetworksDeleteCall) doRequest(alt string) (*http.Response, error) {
101797	reqHeaders := make(http.Header)
101798	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
101799	for k, v := range c.header_ {
101800		reqHeaders[k] = v
101801	}
101802	reqHeaders.Set("User-Agent", c.s.userAgent())
101803	var body io.Reader = nil
101804	c.urlParams_.Set("alt", alt)
101805	c.urlParams_.Set("prettyPrint", "false")
101806	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networks/{network}")
101807	urls += "?" + c.urlParams_.Encode()
101808	req, err := http.NewRequest("DELETE", urls, body)
101809	if err != nil {
101810		return nil, err
101811	}
101812	req.Header = reqHeaders
101813	googleapi.Expand(req.URL, map[string]string{
101814		"project": c.project,
101815		"network": c.network,
101816	})
101817	return gensupport.SendRequest(c.ctx_, c.s.client, req)
101818}
101819
101820// Do executes the "compute.networks.delete" call.
101821// Exactly one of *Operation or error will be non-nil. Any non-2xx
101822// status code is an error. Response headers are in either
101823// *Operation.ServerResponse.Header or (if a response was returned at
101824// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
101825// to check whether the returned error was because
101826// http.StatusNotModified was returned.
101827func (c *NetworksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
101828	gensupport.SetOptions(c.urlParams_, opts...)
101829	res, err := c.doRequest("json")
101830	if res != nil && res.StatusCode == http.StatusNotModified {
101831		if res.Body != nil {
101832			res.Body.Close()
101833		}
101834		return nil, &googleapi.Error{
101835			Code:   res.StatusCode,
101836			Header: res.Header,
101837		}
101838	}
101839	if err != nil {
101840		return nil, err
101841	}
101842	defer googleapi.CloseBody(res)
101843	if err := googleapi.CheckResponse(res); err != nil {
101844		return nil, err
101845	}
101846	ret := &Operation{
101847		ServerResponse: googleapi.ServerResponse{
101848			Header:         res.Header,
101849			HTTPStatusCode: res.StatusCode,
101850		},
101851	}
101852	target := &ret
101853	if err := gensupport.DecodeResponse(target, res); err != nil {
101854		return nil, err
101855	}
101856	return ret, nil
101857	// {
101858	//   "description": "Deletes the specified network. (== suppress_warning http-rest-shadowed ==)",
101859	//   "httpMethod": "DELETE",
101860	//   "id": "compute.networks.delete",
101861	//   "parameterOrder": [
101862	//     "project",
101863	//     "network"
101864	//   ],
101865	//   "parameters": {
101866	//     "network": {
101867	//       "description": "Name of the network to delete.",
101868	//       "location": "path",
101869	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
101870	//       "required": true,
101871	//       "type": "string"
101872	//     },
101873	//     "project": {
101874	//       "description": "Project ID for this request.",
101875	//       "location": "path",
101876	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
101877	//       "required": true,
101878	//       "type": "string"
101879	//     },
101880	//     "requestId": {
101881	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
101882	//       "location": "query",
101883	//       "type": "string"
101884	//     }
101885	//   },
101886	//   "path": "{project}/global/networks/{network}",
101887	//   "response": {
101888	//     "$ref": "Operation"
101889	//   },
101890	//   "scopes": [
101891	//     "https://www.googleapis.com/auth/cloud-platform",
101892	//     "https://www.googleapis.com/auth/compute"
101893	//   ]
101894	// }
101895
101896}
101897
101898// method id "compute.networks.get":
101899
101900type NetworksGetCall struct {
101901	s            *Service
101902	project      string
101903	network      string
101904	urlParams_   gensupport.URLParams
101905	ifNoneMatch_ string
101906	ctx_         context.Context
101907	header_      http.Header
101908}
101909
101910// Get: Returns the specified network. Gets a list of available networks
101911// by making a list() request. (== suppress_warning http-rest-shadowed
101912// ==)
101913// For details, see https://cloud.google.com/compute/docs/reference/latest/networks/get
101914func (r *NetworksService) Get(project string, network string) *NetworksGetCall {
101915	c := &NetworksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
101916	c.project = project
101917	c.network = network
101918	return c
101919}
101920
101921// Fields allows partial responses to be retrieved. See
101922// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
101923// for more information.
101924func (c *NetworksGetCall) Fields(s ...googleapi.Field) *NetworksGetCall {
101925	c.urlParams_.Set("fields", googleapi.CombineFields(s))
101926	return c
101927}
101928
101929// IfNoneMatch sets the optional parameter which makes the operation
101930// fail if the object's ETag matches the given value. This is useful for
101931// getting updates only after the object has changed since the last
101932// request. Use googleapi.IsNotModified to check whether the response
101933// error from Do is the result of In-None-Match.
101934func (c *NetworksGetCall) IfNoneMatch(entityTag string) *NetworksGetCall {
101935	c.ifNoneMatch_ = entityTag
101936	return c
101937}
101938
101939// Context sets the context to be used in this call's Do method. Any
101940// pending HTTP request will be aborted if the provided context is
101941// canceled.
101942func (c *NetworksGetCall) Context(ctx context.Context) *NetworksGetCall {
101943	c.ctx_ = ctx
101944	return c
101945}
101946
101947// Header returns an http.Header that can be modified by the caller to
101948// add HTTP headers to the request.
101949func (c *NetworksGetCall) Header() http.Header {
101950	if c.header_ == nil {
101951		c.header_ = make(http.Header)
101952	}
101953	return c.header_
101954}
101955
101956func (c *NetworksGetCall) doRequest(alt string) (*http.Response, error) {
101957	reqHeaders := make(http.Header)
101958	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
101959	for k, v := range c.header_ {
101960		reqHeaders[k] = v
101961	}
101962	reqHeaders.Set("User-Agent", c.s.userAgent())
101963	if c.ifNoneMatch_ != "" {
101964		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
101965	}
101966	var body io.Reader = nil
101967	c.urlParams_.Set("alt", alt)
101968	c.urlParams_.Set("prettyPrint", "false")
101969	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networks/{network}")
101970	urls += "?" + c.urlParams_.Encode()
101971	req, err := http.NewRequest("GET", urls, body)
101972	if err != nil {
101973		return nil, err
101974	}
101975	req.Header = reqHeaders
101976	googleapi.Expand(req.URL, map[string]string{
101977		"project": c.project,
101978		"network": c.network,
101979	})
101980	return gensupport.SendRequest(c.ctx_, c.s.client, req)
101981}
101982
101983// Do executes the "compute.networks.get" call.
101984// Exactly one of *Network or error will be non-nil. Any non-2xx status
101985// code is an error. Response headers are in either
101986// *Network.ServerResponse.Header or (if a response was returned at all)
101987// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
101988// check whether the returned error was because http.StatusNotModified
101989// was returned.
101990func (c *NetworksGetCall) Do(opts ...googleapi.CallOption) (*Network, error) {
101991	gensupport.SetOptions(c.urlParams_, opts...)
101992	res, err := c.doRequest("json")
101993	if res != nil && res.StatusCode == http.StatusNotModified {
101994		if res.Body != nil {
101995			res.Body.Close()
101996		}
101997		return nil, &googleapi.Error{
101998			Code:   res.StatusCode,
101999			Header: res.Header,
102000		}
102001	}
102002	if err != nil {
102003		return nil, err
102004	}
102005	defer googleapi.CloseBody(res)
102006	if err := googleapi.CheckResponse(res); err != nil {
102007		return nil, err
102008	}
102009	ret := &Network{
102010		ServerResponse: googleapi.ServerResponse{
102011			Header:         res.Header,
102012			HTTPStatusCode: res.StatusCode,
102013		},
102014	}
102015	target := &ret
102016	if err := gensupport.DecodeResponse(target, res); err != nil {
102017		return nil, err
102018	}
102019	return ret, nil
102020	// {
102021	//   "description": "Returns the specified network. Gets a list of available networks by making a list() request. (== suppress_warning http-rest-shadowed ==)",
102022	//   "httpMethod": "GET",
102023	//   "id": "compute.networks.get",
102024	//   "parameterOrder": [
102025	//     "project",
102026	//     "network"
102027	//   ],
102028	//   "parameters": {
102029	//     "network": {
102030	//       "description": "Name of the network to return.",
102031	//       "location": "path",
102032	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
102033	//       "required": true,
102034	//       "type": "string"
102035	//     },
102036	//     "project": {
102037	//       "description": "Project ID for this request.",
102038	//       "location": "path",
102039	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
102040	//       "required": true,
102041	//       "type": "string"
102042	//     }
102043	//   },
102044	//   "path": "{project}/global/networks/{network}",
102045	//   "response": {
102046	//     "$ref": "Network"
102047	//   },
102048	//   "scopes": [
102049	//     "https://www.googleapis.com/auth/cloud-platform",
102050	//     "https://www.googleapis.com/auth/compute",
102051	//     "https://www.googleapis.com/auth/compute.readonly"
102052	//   ]
102053	// }
102054
102055}
102056
102057// method id "compute.networks.getEffectiveFirewalls":
102058
102059type NetworksGetEffectiveFirewallsCall struct {
102060	s            *Service
102061	project      string
102062	network      string
102063	urlParams_   gensupport.URLParams
102064	ifNoneMatch_ string
102065	ctx_         context.Context
102066	header_      http.Header
102067}
102068
102069// GetEffectiveFirewalls: Returns the effective firewalls on a given
102070// network. (== suppress_warning http-rest-shadowed ==)
102071func (r *NetworksService) GetEffectiveFirewalls(project string, network string) *NetworksGetEffectiveFirewallsCall {
102072	c := &NetworksGetEffectiveFirewallsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
102073	c.project = project
102074	c.network = network
102075	return c
102076}
102077
102078// Fields allows partial responses to be retrieved. See
102079// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
102080// for more information.
102081func (c *NetworksGetEffectiveFirewallsCall) Fields(s ...googleapi.Field) *NetworksGetEffectiveFirewallsCall {
102082	c.urlParams_.Set("fields", googleapi.CombineFields(s))
102083	return c
102084}
102085
102086// IfNoneMatch sets the optional parameter which makes the operation
102087// fail if the object's ETag matches the given value. This is useful for
102088// getting updates only after the object has changed since the last
102089// request. Use googleapi.IsNotModified to check whether the response
102090// error from Do is the result of In-None-Match.
102091func (c *NetworksGetEffectiveFirewallsCall) IfNoneMatch(entityTag string) *NetworksGetEffectiveFirewallsCall {
102092	c.ifNoneMatch_ = entityTag
102093	return c
102094}
102095
102096// Context sets the context to be used in this call's Do method. Any
102097// pending HTTP request will be aborted if the provided context is
102098// canceled.
102099func (c *NetworksGetEffectiveFirewallsCall) Context(ctx context.Context) *NetworksGetEffectiveFirewallsCall {
102100	c.ctx_ = ctx
102101	return c
102102}
102103
102104// Header returns an http.Header that can be modified by the caller to
102105// add HTTP headers to the request.
102106func (c *NetworksGetEffectiveFirewallsCall) Header() http.Header {
102107	if c.header_ == nil {
102108		c.header_ = make(http.Header)
102109	}
102110	return c.header_
102111}
102112
102113func (c *NetworksGetEffectiveFirewallsCall) doRequest(alt string) (*http.Response, error) {
102114	reqHeaders := make(http.Header)
102115	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
102116	for k, v := range c.header_ {
102117		reqHeaders[k] = v
102118	}
102119	reqHeaders.Set("User-Agent", c.s.userAgent())
102120	if c.ifNoneMatch_ != "" {
102121		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
102122	}
102123	var body io.Reader = nil
102124	c.urlParams_.Set("alt", alt)
102125	c.urlParams_.Set("prettyPrint", "false")
102126	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networks/{network}/getEffectiveFirewalls")
102127	urls += "?" + c.urlParams_.Encode()
102128	req, err := http.NewRequest("GET", urls, body)
102129	if err != nil {
102130		return nil, err
102131	}
102132	req.Header = reqHeaders
102133	googleapi.Expand(req.URL, map[string]string{
102134		"project": c.project,
102135		"network": c.network,
102136	})
102137	return gensupport.SendRequest(c.ctx_, c.s.client, req)
102138}
102139
102140// Do executes the "compute.networks.getEffectiveFirewalls" call.
102141// Exactly one of *NetworksGetEffectiveFirewallsResponse or error will
102142// be non-nil. Any non-2xx status code is an error. Response headers are
102143// in either
102144// *NetworksGetEffectiveFirewallsResponse.ServerResponse.Header or (if a
102145// response was returned at all) in error.(*googleapi.Error).Header. Use
102146// googleapi.IsNotModified to check whether the returned error was
102147// because http.StatusNotModified was returned.
102148func (c *NetworksGetEffectiveFirewallsCall) Do(opts ...googleapi.CallOption) (*NetworksGetEffectiveFirewallsResponse, error) {
102149	gensupport.SetOptions(c.urlParams_, opts...)
102150	res, err := c.doRequest("json")
102151	if res != nil && res.StatusCode == http.StatusNotModified {
102152		if res.Body != nil {
102153			res.Body.Close()
102154		}
102155		return nil, &googleapi.Error{
102156			Code:   res.StatusCode,
102157			Header: res.Header,
102158		}
102159	}
102160	if err != nil {
102161		return nil, err
102162	}
102163	defer googleapi.CloseBody(res)
102164	if err := googleapi.CheckResponse(res); err != nil {
102165		return nil, err
102166	}
102167	ret := &NetworksGetEffectiveFirewallsResponse{
102168		ServerResponse: googleapi.ServerResponse{
102169			Header:         res.Header,
102170			HTTPStatusCode: res.StatusCode,
102171		},
102172	}
102173	target := &ret
102174	if err := gensupport.DecodeResponse(target, res); err != nil {
102175		return nil, err
102176	}
102177	return ret, nil
102178	// {
102179	//   "description": "Returns the effective firewalls on a given network. (== suppress_warning http-rest-shadowed ==)",
102180	//   "httpMethod": "GET",
102181	//   "id": "compute.networks.getEffectiveFirewalls",
102182	//   "parameterOrder": [
102183	//     "project",
102184	//     "network"
102185	//   ],
102186	//   "parameters": {
102187	//     "network": {
102188	//       "description": "Name of the network for this request.",
102189	//       "location": "path",
102190	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
102191	//       "required": true,
102192	//       "type": "string"
102193	//     },
102194	//     "project": {
102195	//       "description": "Project ID for this request.",
102196	//       "location": "path",
102197	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
102198	//       "required": true,
102199	//       "type": "string"
102200	//     }
102201	//   },
102202	//   "path": "{project}/global/networks/{network}/getEffectiveFirewalls",
102203	//   "response": {
102204	//     "$ref": "NetworksGetEffectiveFirewallsResponse"
102205	//   },
102206	//   "scopes": [
102207	//     "https://www.googleapis.com/auth/cloud-platform",
102208	//     "https://www.googleapis.com/auth/compute",
102209	//     "https://www.googleapis.com/auth/compute.readonly"
102210	//   ]
102211	// }
102212
102213}
102214
102215// method id "compute.networks.insert":
102216
102217type NetworksInsertCall struct {
102218	s          *Service
102219	project    string
102220	network    *Network
102221	urlParams_ gensupport.URLParams
102222	ctx_       context.Context
102223	header_    http.Header
102224}
102225
102226// Insert: Creates a network in the specified project using the data
102227// included in the request. (== suppress_warning http-rest-shadowed ==)
102228// For details, see https://cloud.google.com/compute/docs/reference/latest/networks/insert
102229func (r *NetworksService) Insert(project string, network *Network) *NetworksInsertCall {
102230	c := &NetworksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
102231	c.project = project
102232	c.network = network
102233	return c
102234}
102235
102236// RequestId sets the optional parameter "requestId": An optional
102237// request ID to identify requests. Specify a unique request ID so that
102238// if you must retry your request, the server will know to ignore the
102239// request if it has already been completed.
102240//
102241// For example, consider a situation where you make an initial request
102242// and the request times out. If you make the request again with the
102243// same request ID, the server can check if original operation with the
102244// same request ID was received, and if so, will ignore the second
102245// request. This prevents clients from accidentally creating duplicate
102246// commitments.
102247//
102248// The request ID must be a valid UUID with the exception that zero UUID
102249// is not supported (00000000-0000-0000-0000-000000000000).
102250func (c *NetworksInsertCall) RequestId(requestId string) *NetworksInsertCall {
102251	c.urlParams_.Set("requestId", requestId)
102252	return c
102253}
102254
102255// Fields allows partial responses to be retrieved. See
102256// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
102257// for more information.
102258func (c *NetworksInsertCall) Fields(s ...googleapi.Field) *NetworksInsertCall {
102259	c.urlParams_.Set("fields", googleapi.CombineFields(s))
102260	return c
102261}
102262
102263// Context sets the context to be used in this call's Do method. Any
102264// pending HTTP request will be aborted if the provided context is
102265// canceled.
102266func (c *NetworksInsertCall) Context(ctx context.Context) *NetworksInsertCall {
102267	c.ctx_ = ctx
102268	return c
102269}
102270
102271// Header returns an http.Header that can be modified by the caller to
102272// add HTTP headers to the request.
102273func (c *NetworksInsertCall) Header() http.Header {
102274	if c.header_ == nil {
102275		c.header_ = make(http.Header)
102276	}
102277	return c.header_
102278}
102279
102280func (c *NetworksInsertCall) doRequest(alt string) (*http.Response, error) {
102281	reqHeaders := make(http.Header)
102282	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
102283	for k, v := range c.header_ {
102284		reqHeaders[k] = v
102285	}
102286	reqHeaders.Set("User-Agent", c.s.userAgent())
102287	var body io.Reader = nil
102288	body, err := googleapi.WithoutDataWrapper.JSONReader(c.network)
102289	if err != nil {
102290		return nil, err
102291	}
102292	reqHeaders.Set("Content-Type", "application/json")
102293	c.urlParams_.Set("alt", alt)
102294	c.urlParams_.Set("prettyPrint", "false")
102295	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networks")
102296	urls += "?" + c.urlParams_.Encode()
102297	req, err := http.NewRequest("POST", urls, body)
102298	if err != nil {
102299		return nil, err
102300	}
102301	req.Header = reqHeaders
102302	googleapi.Expand(req.URL, map[string]string{
102303		"project": c.project,
102304	})
102305	return gensupport.SendRequest(c.ctx_, c.s.client, req)
102306}
102307
102308// Do executes the "compute.networks.insert" call.
102309// Exactly one of *Operation or error will be non-nil. Any non-2xx
102310// status code is an error. Response headers are in either
102311// *Operation.ServerResponse.Header or (if a response was returned at
102312// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
102313// to check whether the returned error was because
102314// http.StatusNotModified was returned.
102315func (c *NetworksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
102316	gensupport.SetOptions(c.urlParams_, opts...)
102317	res, err := c.doRequest("json")
102318	if res != nil && res.StatusCode == http.StatusNotModified {
102319		if res.Body != nil {
102320			res.Body.Close()
102321		}
102322		return nil, &googleapi.Error{
102323			Code:   res.StatusCode,
102324			Header: res.Header,
102325		}
102326	}
102327	if err != nil {
102328		return nil, err
102329	}
102330	defer googleapi.CloseBody(res)
102331	if err := googleapi.CheckResponse(res); err != nil {
102332		return nil, err
102333	}
102334	ret := &Operation{
102335		ServerResponse: googleapi.ServerResponse{
102336			Header:         res.Header,
102337			HTTPStatusCode: res.StatusCode,
102338		},
102339	}
102340	target := &ret
102341	if err := gensupport.DecodeResponse(target, res); err != nil {
102342		return nil, err
102343	}
102344	return ret, nil
102345	// {
102346	//   "description": "Creates a network in the specified project using the data included in the request. (== suppress_warning http-rest-shadowed ==)",
102347	//   "httpMethod": "POST",
102348	//   "id": "compute.networks.insert",
102349	//   "parameterOrder": [
102350	//     "project"
102351	//   ],
102352	//   "parameters": {
102353	//     "project": {
102354	//       "description": "Project ID for this request.",
102355	//       "location": "path",
102356	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
102357	//       "required": true,
102358	//       "type": "string"
102359	//     },
102360	//     "requestId": {
102361	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
102362	//       "location": "query",
102363	//       "type": "string"
102364	//     }
102365	//   },
102366	//   "path": "{project}/global/networks",
102367	//   "request": {
102368	//     "$ref": "Network"
102369	//   },
102370	//   "response": {
102371	//     "$ref": "Operation"
102372	//   },
102373	//   "scopes": [
102374	//     "https://www.googleapis.com/auth/cloud-platform",
102375	//     "https://www.googleapis.com/auth/compute"
102376	//   ]
102377	// }
102378
102379}
102380
102381// method id "compute.networks.list":
102382
102383type NetworksListCall struct {
102384	s            *Service
102385	project      string
102386	urlParams_   gensupport.URLParams
102387	ifNoneMatch_ string
102388	ctx_         context.Context
102389	header_      http.Header
102390}
102391
102392// List: Retrieves the list of networks available to the specified
102393// project. (== suppress_warning http-rest-shadowed ==)
102394// For details, see https://cloud.google.com/compute/docs/reference/latest/networks/list
102395func (r *NetworksService) List(project string) *NetworksListCall {
102396	c := &NetworksListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
102397	c.project = project
102398	return c
102399}
102400
102401// Filter sets the optional parameter "filter": A filter expression that
102402// filters resources listed in the response. The expression must specify
102403// the field name, a comparison operator, and the value that you want to
102404// use for filtering. The value must be a string, a number, or a
102405// boolean. The comparison operator must be either =, !=, >, or <.
102406//
102407// For example, if you are filtering Compute Engine instances, you can
102408// exclude instances named example-instance by specifying name !=
102409// example-instance.
102410//
102411// You can also filter nested fields. For example, you could specify
102412// scheduling.automaticRestart = false to include instances only if they
102413// are not scheduled for automatic restarts. You can use filtering on
102414// nested fields to filter based on resource labels.
102415//
102416// To filter on multiple expressions, provide each separate expression
102417// within parentheses. For example, (scheduling.automaticRestart = true)
102418// (cpuPlatform = "Intel Skylake"). By default, each expression is an
102419// AND expression. However, you can include AND and OR expressions
102420// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
102421// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
102422// true).
102423func (c *NetworksListCall) Filter(filter string) *NetworksListCall {
102424	c.urlParams_.Set("filter", filter)
102425	return c
102426}
102427
102428// MaxResults sets the optional parameter "maxResults": The maximum
102429// number of results per page that should be returned. If the number of
102430// available results is larger than maxResults, Compute Engine returns a
102431// nextPageToken that can be used to get the next page of results in
102432// subsequent list requests. Acceptable values are 0 to 500, inclusive.
102433// (Default: 500)
102434func (c *NetworksListCall) MaxResults(maxResults int64) *NetworksListCall {
102435	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
102436	return c
102437}
102438
102439// OrderBy sets the optional parameter "orderBy": Sorts list results by
102440// a certain order. By default, results are returned in alphanumerical
102441// order based on the resource name.
102442//
102443// You can also sort results in descending order based on the creation
102444// timestamp using orderBy="creationTimestamp desc". This sorts results
102445// based on the creationTimestamp field in reverse chronological order
102446// (newest result first). Use this to sort resources like operations so
102447// that the newest operation is returned first.
102448//
102449// Currently, only sorting by name or creationTimestamp desc is
102450// supported.
102451func (c *NetworksListCall) OrderBy(orderBy string) *NetworksListCall {
102452	c.urlParams_.Set("orderBy", orderBy)
102453	return c
102454}
102455
102456// PageToken sets the optional parameter "pageToken": Specifies a page
102457// token to use. Set pageToken to the nextPageToken returned by a
102458// previous list request to get the next page of results.
102459func (c *NetworksListCall) PageToken(pageToken string) *NetworksListCall {
102460	c.urlParams_.Set("pageToken", pageToken)
102461	return c
102462}
102463
102464// Fields allows partial responses to be retrieved. See
102465// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
102466// for more information.
102467func (c *NetworksListCall) Fields(s ...googleapi.Field) *NetworksListCall {
102468	c.urlParams_.Set("fields", googleapi.CombineFields(s))
102469	return c
102470}
102471
102472// IfNoneMatch sets the optional parameter which makes the operation
102473// fail if the object's ETag matches the given value. This is useful for
102474// getting updates only after the object has changed since the last
102475// request. Use googleapi.IsNotModified to check whether the response
102476// error from Do is the result of In-None-Match.
102477func (c *NetworksListCall) IfNoneMatch(entityTag string) *NetworksListCall {
102478	c.ifNoneMatch_ = entityTag
102479	return c
102480}
102481
102482// Context sets the context to be used in this call's Do method. Any
102483// pending HTTP request will be aborted if the provided context is
102484// canceled.
102485func (c *NetworksListCall) Context(ctx context.Context) *NetworksListCall {
102486	c.ctx_ = ctx
102487	return c
102488}
102489
102490// Header returns an http.Header that can be modified by the caller to
102491// add HTTP headers to the request.
102492func (c *NetworksListCall) Header() http.Header {
102493	if c.header_ == nil {
102494		c.header_ = make(http.Header)
102495	}
102496	return c.header_
102497}
102498
102499func (c *NetworksListCall) doRequest(alt string) (*http.Response, error) {
102500	reqHeaders := make(http.Header)
102501	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
102502	for k, v := range c.header_ {
102503		reqHeaders[k] = v
102504	}
102505	reqHeaders.Set("User-Agent", c.s.userAgent())
102506	if c.ifNoneMatch_ != "" {
102507		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
102508	}
102509	var body io.Reader = nil
102510	c.urlParams_.Set("alt", alt)
102511	c.urlParams_.Set("prettyPrint", "false")
102512	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networks")
102513	urls += "?" + c.urlParams_.Encode()
102514	req, err := http.NewRequest("GET", urls, body)
102515	if err != nil {
102516		return nil, err
102517	}
102518	req.Header = reqHeaders
102519	googleapi.Expand(req.URL, map[string]string{
102520		"project": c.project,
102521	})
102522	return gensupport.SendRequest(c.ctx_, c.s.client, req)
102523}
102524
102525// Do executes the "compute.networks.list" call.
102526// Exactly one of *NetworkList or error will be non-nil. Any non-2xx
102527// status code is an error. Response headers are in either
102528// *NetworkList.ServerResponse.Header or (if a response was returned at
102529// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
102530// to check whether the returned error was because
102531// http.StatusNotModified was returned.
102532func (c *NetworksListCall) Do(opts ...googleapi.CallOption) (*NetworkList, error) {
102533	gensupport.SetOptions(c.urlParams_, opts...)
102534	res, err := c.doRequest("json")
102535	if res != nil && res.StatusCode == http.StatusNotModified {
102536		if res.Body != nil {
102537			res.Body.Close()
102538		}
102539		return nil, &googleapi.Error{
102540			Code:   res.StatusCode,
102541			Header: res.Header,
102542		}
102543	}
102544	if err != nil {
102545		return nil, err
102546	}
102547	defer googleapi.CloseBody(res)
102548	if err := googleapi.CheckResponse(res); err != nil {
102549		return nil, err
102550	}
102551	ret := &NetworkList{
102552		ServerResponse: googleapi.ServerResponse{
102553			Header:         res.Header,
102554			HTTPStatusCode: res.StatusCode,
102555		},
102556	}
102557	target := &ret
102558	if err := gensupport.DecodeResponse(target, res); err != nil {
102559		return nil, err
102560	}
102561	return ret, nil
102562	// {
102563	//   "description": "Retrieves the list of networks available to the specified project. (== suppress_warning http-rest-shadowed ==)",
102564	//   "httpMethod": "GET",
102565	//   "id": "compute.networks.list",
102566	//   "parameterOrder": [
102567	//     "project"
102568	//   ],
102569	//   "parameters": {
102570	//     "filter": {
102571	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
102572	//       "location": "query",
102573	//       "type": "string"
102574	//     },
102575	//     "maxResults": {
102576	//       "default": "500",
102577	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
102578	//       "format": "uint32",
102579	//       "location": "query",
102580	//       "minimum": "0",
102581	//       "type": "integer"
102582	//     },
102583	//     "orderBy": {
102584	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
102585	//       "location": "query",
102586	//       "type": "string"
102587	//     },
102588	//     "pageToken": {
102589	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
102590	//       "location": "query",
102591	//       "type": "string"
102592	//     },
102593	//     "project": {
102594	//       "description": "Project ID for this request.",
102595	//       "location": "path",
102596	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
102597	//       "required": true,
102598	//       "type": "string"
102599	//     }
102600	//   },
102601	//   "path": "{project}/global/networks",
102602	//   "response": {
102603	//     "$ref": "NetworkList"
102604	//   },
102605	//   "scopes": [
102606	//     "https://www.googleapis.com/auth/cloud-platform",
102607	//     "https://www.googleapis.com/auth/compute",
102608	//     "https://www.googleapis.com/auth/compute.readonly"
102609	//   ]
102610	// }
102611
102612}
102613
102614// Pages invokes f for each page of results.
102615// A non-nil error returned from f will halt the iteration.
102616// The provided context supersedes any context provided to the Context method.
102617func (c *NetworksListCall) Pages(ctx context.Context, f func(*NetworkList) error) error {
102618	c.ctx_ = ctx
102619	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
102620	for {
102621		x, err := c.Do()
102622		if err != nil {
102623			return err
102624		}
102625		if err := f(x); err != nil {
102626			return err
102627		}
102628		if x.NextPageToken == "" {
102629			return nil
102630		}
102631		c.PageToken(x.NextPageToken)
102632	}
102633}
102634
102635// method id "compute.networks.listIpAddresses":
102636
102637type NetworksListIpAddressesCall struct {
102638	s            *Service
102639	project      string
102640	network      string
102641	urlParams_   gensupport.URLParams
102642	ifNoneMatch_ string
102643	ctx_         context.Context
102644	header_      http.Header
102645}
102646
102647// ListIpAddresses: Lists the internal IP addresses in the specified
102648// network. (== suppress_warning http-rest-shadowed ==)
102649func (r *NetworksService) ListIpAddresses(project string, network string) *NetworksListIpAddressesCall {
102650	c := &NetworksListIpAddressesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
102651	c.project = project
102652	c.network = network
102653	return c
102654}
102655
102656// Filter sets the optional parameter "filter": A filter expression that
102657// filters resources listed in the response. The expression must specify
102658// the field name, a comparison operator, and the value that you want to
102659// use for filtering. The value must be a string, a number, or a
102660// boolean. The comparison operator must be either =, !=, >, or <.
102661//
102662// For example, if you are filtering Compute Engine instances, you can
102663// exclude instances named example-instance by specifying name !=
102664// example-instance.
102665//
102666// You can also filter nested fields. For example, you could specify
102667// scheduling.automaticRestart = false to include instances only if they
102668// are not scheduled for automatic restarts. You can use filtering on
102669// nested fields to filter based on resource labels.
102670//
102671// To filter on multiple expressions, provide each separate expression
102672// within parentheses. For example, (scheduling.automaticRestart = true)
102673// (cpuPlatform = "Intel Skylake"). By default, each expression is an
102674// AND expression. However, you can include AND and OR expressions
102675// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
102676// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
102677// true).
102678func (c *NetworksListIpAddressesCall) Filter(filter string) *NetworksListIpAddressesCall {
102679	c.urlParams_.Set("filter", filter)
102680	return c
102681}
102682
102683// MaxResults sets the optional parameter "maxResults": The maximum
102684// number of results per page that should be returned. If the number of
102685// available results is larger than maxResults, Compute Engine returns a
102686// nextPageToken that can be used to get the next page of results in
102687// subsequent list requests. Acceptable values are 0 to 500, inclusive.
102688// (Default: 500)
102689func (c *NetworksListIpAddressesCall) MaxResults(maxResults int64) *NetworksListIpAddressesCall {
102690	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
102691	return c
102692}
102693
102694// OrderBy sets the optional parameter "orderBy": Sorts list results by
102695// a certain order. By default, results are returned in alphanumerical
102696// order based on the resource name.
102697//
102698// You can also sort results in descending order based on the creation
102699// timestamp using orderBy="creationTimestamp desc". This sorts results
102700// based on the creationTimestamp field in reverse chronological order
102701// (newest result first). Use this to sort resources like operations so
102702// that the newest operation is returned first.
102703//
102704// Currently, only sorting by name or creationTimestamp desc is
102705// supported.
102706func (c *NetworksListIpAddressesCall) OrderBy(orderBy string) *NetworksListIpAddressesCall {
102707	c.urlParams_.Set("orderBy", orderBy)
102708	return c
102709}
102710
102711// PageToken sets the optional parameter "pageToken": Specifies a page
102712// token to use. Set pageToken to the nextPageToken returned by a
102713// previous list request to get the next page of results.
102714func (c *NetworksListIpAddressesCall) PageToken(pageToken string) *NetworksListIpAddressesCall {
102715	c.urlParams_.Set("pageToken", pageToken)
102716	return c
102717}
102718
102719// Types sets the optional parameter "types": (Optional) types filter
102720// separate by comma, valid values are: SUBNETWORK, RESERVED, PEER_USED,
102721// PEER_RESERVED, REMOTE_USED, REMOTE_RESERVED.
102722func (c *NetworksListIpAddressesCall) Types(types string) *NetworksListIpAddressesCall {
102723	c.urlParams_.Set("types", types)
102724	return c
102725}
102726
102727// Fields allows partial responses to be retrieved. See
102728// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
102729// for more information.
102730func (c *NetworksListIpAddressesCall) Fields(s ...googleapi.Field) *NetworksListIpAddressesCall {
102731	c.urlParams_.Set("fields", googleapi.CombineFields(s))
102732	return c
102733}
102734
102735// IfNoneMatch sets the optional parameter which makes the operation
102736// fail if the object's ETag matches the given value. This is useful for
102737// getting updates only after the object has changed since the last
102738// request. Use googleapi.IsNotModified to check whether the response
102739// error from Do is the result of In-None-Match.
102740func (c *NetworksListIpAddressesCall) IfNoneMatch(entityTag string) *NetworksListIpAddressesCall {
102741	c.ifNoneMatch_ = entityTag
102742	return c
102743}
102744
102745// Context sets the context to be used in this call's Do method. Any
102746// pending HTTP request will be aborted if the provided context is
102747// canceled.
102748func (c *NetworksListIpAddressesCall) Context(ctx context.Context) *NetworksListIpAddressesCall {
102749	c.ctx_ = ctx
102750	return c
102751}
102752
102753// Header returns an http.Header that can be modified by the caller to
102754// add HTTP headers to the request.
102755func (c *NetworksListIpAddressesCall) Header() http.Header {
102756	if c.header_ == nil {
102757		c.header_ = make(http.Header)
102758	}
102759	return c.header_
102760}
102761
102762func (c *NetworksListIpAddressesCall) doRequest(alt string) (*http.Response, error) {
102763	reqHeaders := make(http.Header)
102764	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
102765	for k, v := range c.header_ {
102766		reqHeaders[k] = v
102767	}
102768	reqHeaders.Set("User-Agent", c.s.userAgent())
102769	if c.ifNoneMatch_ != "" {
102770		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
102771	}
102772	var body io.Reader = nil
102773	c.urlParams_.Set("alt", alt)
102774	c.urlParams_.Set("prettyPrint", "false")
102775	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networks/{network}/listIpAddresses")
102776	urls += "?" + c.urlParams_.Encode()
102777	req, err := http.NewRequest("GET", urls, body)
102778	if err != nil {
102779		return nil, err
102780	}
102781	req.Header = reqHeaders
102782	googleapi.Expand(req.URL, map[string]string{
102783		"project": c.project,
102784		"network": c.network,
102785	})
102786	return gensupport.SendRequest(c.ctx_, c.s.client, req)
102787}
102788
102789// Do executes the "compute.networks.listIpAddresses" call.
102790// Exactly one of *IpAddressesList or error will be non-nil. Any non-2xx
102791// status code is an error. Response headers are in either
102792// *IpAddressesList.ServerResponse.Header or (if a response was returned
102793// at all) in error.(*googleapi.Error).Header. Use
102794// googleapi.IsNotModified to check whether the returned error was
102795// because http.StatusNotModified was returned.
102796func (c *NetworksListIpAddressesCall) Do(opts ...googleapi.CallOption) (*IpAddressesList, error) {
102797	gensupport.SetOptions(c.urlParams_, opts...)
102798	res, err := c.doRequest("json")
102799	if res != nil && res.StatusCode == http.StatusNotModified {
102800		if res.Body != nil {
102801			res.Body.Close()
102802		}
102803		return nil, &googleapi.Error{
102804			Code:   res.StatusCode,
102805			Header: res.Header,
102806		}
102807	}
102808	if err != nil {
102809		return nil, err
102810	}
102811	defer googleapi.CloseBody(res)
102812	if err := googleapi.CheckResponse(res); err != nil {
102813		return nil, err
102814	}
102815	ret := &IpAddressesList{
102816		ServerResponse: googleapi.ServerResponse{
102817			Header:         res.Header,
102818			HTTPStatusCode: res.StatusCode,
102819		},
102820	}
102821	target := &ret
102822	if err := gensupport.DecodeResponse(target, res); err != nil {
102823		return nil, err
102824	}
102825	return ret, nil
102826	// {
102827	//   "description": "Lists the internal IP addresses in the specified network. (== suppress_warning http-rest-shadowed ==)",
102828	//   "httpMethod": "GET",
102829	//   "id": "compute.networks.listIpAddresses",
102830	//   "parameterOrder": [
102831	//     "project",
102832	//     "network"
102833	//   ],
102834	//   "parameters": {
102835	//     "filter": {
102836	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
102837	//       "location": "query",
102838	//       "type": "string"
102839	//     },
102840	//     "maxResults": {
102841	//       "default": "500",
102842	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
102843	//       "format": "uint32",
102844	//       "location": "query",
102845	//       "minimum": "0",
102846	//       "type": "integer"
102847	//     },
102848	//     "network": {
102849	//       "description": "Name of the network for this request.",
102850	//       "location": "path",
102851	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
102852	//       "required": true,
102853	//       "type": "string"
102854	//     },
102855	//     "orderBy": {
102856	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
102857	//       "location": "query",
102858	//       "type": "string"
102859	//     },
102860	//     "pageToken": {
102861	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
102862	//       "location": "query",
102863	//       "type": "string"
102864	//     },
102865	//     "project": {
102866	//       "description": "Project ID for this request.",
102867	//       "location": "path",
102868	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
102869	//       "required": true,
102870	//       "type": "string"
102871	//     },
102872	//     "types": {
102873	//       "description": "(Optional) types filter separate by comma, valid values are: SUBNETWORK, RESERVED, PEER_USED, PEER_RESERVED, REMOTE_USED, REMOTE_RESERVED.",
102874	//       "location": "query",
102875	//       "type": "string"
102876	//     }
102877	//   },
102878	//   "path": "{project}/global/networks/{network}/listIpAddresses",
102879	//   "response": {
102880	//     "$ref": "IpAddressesList"
102881	//   },
102882	//   "scopes": [
102883	//     "https://www.googleapis.com/auth/cloud-platform",
102884	//     "https://www.googleapis.com/auth/compute",
102885	//     "https://www.googleapis.com/auth/compute.readonly"
102886	//   ]
102887	// }
102888
102889}
102890
102891// Pages invokes f for each page of results.
102892// A non-nil error returned from f will halt the iteration.
102893// The provided context supersedes any context provided to the Context method.
102894func (c *NetworksListIpAddressesCall) Pages(ctx context.Context, f func(*IpAddressesList) error) error {
102895	c.ctx_ = ctx
102896	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
102897	for {
102898		x, err := c.Do()
102899		if err != nil {
102900			return err
102901		}
102902		if err := f(x); err != nil {
102903			return err
102904		}
102905		if x.NextPageToken == "" {
102906			return nil
102907		}
102908		c.PageToken(x.NextPageToken)
102909	}
102910}
102911
102912// method id "compute.networks.listIpOwners":
102913
102914type NetworksListIpOwnersCall struct {
102915	s            *Service
102916	project      string
102917	network      string
102918	urlParams_   gensupport.URLParams
102919	ifNoneMatch_ string
102920	ctx_         context.Context
102921	header_      http.Header
102922}
102923
102924// ListIpOwners: Lists the internal IP owners in the specified network.
102925// (== suppress_warning http-rest-shadowed ==)
102926func (r *NetworksService) ListIpOwners(project string, network string) *NetworksListIpOwnersCall {
102927	c := &NetworksListIpOwnersCall{s: r.s, urlParams_: make(gensupport.URLParams)}
102928	c.project = project
102929	c.network = network
102930	return c
102931}
102932
102933// Filter sets the optional parameter "filter": A filter expression that
102934// filters resources listed in the response. The expression must specify
102935// the field name, a comparison operator, and the value that you want to
102936// use for filtering. The value must be a string, a number, or a
102937// boolean. The comparison operator must be either =, !=, >, or <.
102938//
102939// For example, if you are filtering Compute Engine instances, you can
102940// exclude instances named example-instance by specifying name !=
102941// example-instance.
102942//
102943// You can also filter nested fields. For example, you could specify
102944// scheduling.automaticRestart = false to include instances only if they
102945// are not scheduled for automatic restarts. You can use filtering on
102946// nested fields to filter based on resource labels.
102947//
102948// To filter on multiple expressions, provide each separate expression
102949// within parentheses. For example, (scheduling.automaticRestart = true)
102950// (cpuPlatform = "Intel Skylake"). By default, each expression is an
102951// AND expression. However, you can include AND and OR expressions
102952// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
102953// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
102954// true).
102955func (c *NetworksListIpOwnersCall) Filter(filter string) *NetworksListIpOwnersCall {
102956	c.urlParams_.Set("filter", filter)
102957	return c
102958}
102959
102960// IpCidrRange sets the optional parameter "ipCidrRange": (Optional) IP
102961// CIDR range filter, example: "10.128.10.0/30".
102962func (c *NetworksListIpOwnersCall) IpCidrRange(ipCidrRange string) *NetworksListIpOwnersCall {
102963	c.urlParams_.Set("ipCidrRange", ipCidrRange)
102964	return c
102965}
102966
102967// MaxResults sets the optional parameter "maxResults": The maximum
102968// number of results per page that should be returned. If the number of
102969// available results is larger than maxResults, Compute Engine returns a
102970// nextPageToken that can be used to get the next page of results in
102971// subsequent list requests. Acceptable values are 0 to 500, inclusive.
102972// (Default: 500)
102973func (c *NetworksListIpOwnersCall) MaxResults(maxResults int64) *NetworksListIpOwnersCall {
102974	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
102975	return c
102976}
102977
102978// OrderBy sets the optional parameter "orderBy": Sorts list results by
102979// a certain order. By default, results are returned in alphanumerical
102980// order based on the resource name.
102981//
102982// You can also sort results in descending order based on the creation
102983// timestamp using orderBy="creationTimestamp desc". This sorts results
102984// based on the creationTimestamp field in reverse chronological order
102985// (newest result first). Use this to sort resources like operations so
102986// that the newest operation is returned first.
102987//
102988// Currently, only sorting by name or creationTimestamp desc is
102989// supported.
102990func (c *NetworksListIpOwnersCall) OrderBy(orderBy string) *NetworksListIpOwnersCall {
102991	c.urlParams_.Set("orderBy", orderBy)
102992	return c
102993}
102994
102995// OwnerProjects sets the optional parameter "ownerProjects": (Optional)
102996// Project IDs filter, example: "project-1,project-2".
102997func (c *NetworksListIpOwnersCall) OwnerProjects(ownerProjects string) *NetworksListIpOwnersCall {
102998	c.urlParams_.Set("ownerProjects", ownerProjects)
102999	return c
103000}
103001
103002// OwnerTypes sets the optional parameter "ownerTypes": (Optional) Owner
103003// types filter, example: "instance,forwardingRule".
103004func (c *NetworksListIpOwnersCall) OwnerTypes(ownerTypes string) *NetworksListIpOwnersCall {
103005	c.urlParams_.Set("ownerTypes", ownerTypes)
103006	return c
103007}
103008
103009// PageToken sets the optional parameter "pageToken": Specifies a page
103010// token to use. Set pageToken to the nextPageToken returned by a
103011// previous list request to get the next page of results.
103012func (c *NetworksListIpOwnersCall) PageToken(pageToken string) *NetworksListIpOwnersCall {
103013	c.urlParams_.Set("pageToken", pageToken)
103014	return c
103015}
103016
103017// SubnetName sets the optional parameter "subnetName": (Optional)
103018// Subnetwork name filter.
103019func (c *NetworksListIpOwnersCall) SubnetName(subnetName string) *NetworksListIpOwnersCall {
103020	c.urlParams_.Set("subnetName", subnetName)
103021	return c
103022}
103023
103024// SubnetRegion sets the optional parameter "subnetRegion": (Optional)
103025// Subnetwork region filter.
103026func (c *NetworksListIpOwnersCall) SubnetRegion(subnetRegion string) *NetworksListIpOwnersCall {
103027	c.urlParams_.Set("subnetRegion", subnetRegion)
103028	return c
103029}
103030
103031// Fields allows partial responses to be retrieved. See
103032// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
103033// for more information.
103034func (c *NetworksListIpOwnersCall) Fields(s ...googleapi.Field) *NetworksListIpOwnersCall {
103035	c.urlParams_.Set("fields", googleapi.CombineFields(s))
103036	return c
103037}
103038
103039// IfNoneMatch sets the optional parameter which makes the operation
103040// fail if the object's ETag matches the given value. This is useful for
103041// getting updates only after the object has changed since the last
103042// request. Use googleapi.IsNotModified to check whether the response
103043// error from Do is the result of In-None-Match.
103044func (c *NetworksListIpOwnersCall) IfNoneMatch(entityTag string) *NetworksListIpOwnersCall {
103045	c.ifNoneMatch_ = entityTag
103046	return c
103047}
103048
103049// Context sets the context to be used in this call's Do method. Any
103050// pending HTTP request will be aborted if the provided context is
103051// canceled.
103052func (c *NetworksListIpOwnersCall) Context(ctx context.Context) *NetworksListIpOwnersCall {
103053	c.ctx_ = ctx
103054	return c
103055}
103056
103057// Header returns an http.Header that can be modified by the caller to
103058// add HTTP headers to the request.
103059func (c *NetworksListIpOwnersCall) Header() http.Header {
103060	if c.header_ == nil {
103061		c.header_ = make(http.Header)
103062	}
103063	return c.header_
103064}
103065
103066func (c *NetworksListIpOwnersCall) doRequest(alt string) (*http.Response, error) {
103067	reqHeaders := make(http.Header)
103068	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
103069	for k, v := range c.header_ {
103070		reqHeaders[k] = v
103071	}
103072	reqHeaders.Set("User-Agent", c.s.userAgent())
103073	if c.ifNoneMatch_ != "" {
103074		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
103075	}
103076	var body io.Reader = nil
103077	c.urlParams_.Set("alt", alt)
103078	c.urlParams_.Set("prettyPrint", "false")
103079	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networks/{network}/listIpOwners")
103080	urls += "?" + c.urlParams_.Encode()
103081	req, err := http.NewRequest("GET", urls, body)
103082	if err != nil {
103083		return nil, err
103084	}
103085	req.Header = reqHeaders
103086	googleapi.Expand(req.URL, map[string]string{
103087		"project": c.project,
103088		"network": c.network,
103089	})
103090	return gensupport.SendRequest(c.ctx_, c.s.client, req)
103091}
103092
103093// Do executes the "compute.networks.listIpOwners" call.
103094// Exactly one of *IpOwnerList or error will be non-nil. Any non-2xx
103095// status code is an error. Response headers are in either
103096// *IpOwnerList.ServerResponse.Header or (if a response was returned at
103097// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
103098// to check whether the returned error was because
103099// http.StatusNotModified was returned.
103100func (c *NetworksListIpOwnersCall) Do(opts ...googleapi.CallOption) (*IpOwnerList, error) {
103101	gensupport.SetOptions(c.urlParams_, opts...)
103102	res, err := c.doRequest("json")
103103	if res != nil && res.StatusCode == http.StatusNotModified {
103104		if res.Body != nil {
103105			res.Body.Close()
103106		}
103107		return nil, &googleapi.Error{
103108			Code:   res.StatusCode,
103109			Header: res.Header,
103110		}
103111	}
103112	if err != nil {
103113		return nil, err
103114	}
103115	defer googleapi.CloseBody(res)
103116	if err := googleapi.CheckResponse(res); err != nil {
103117		return nil, err
103118	}
103119	ret := &IpOwnerList{
103120		ServerResponse: googleapi.ServerResponse{
103121			Header:         res.Header,
103122			HTTPStatusCode: res.StatusCode,
103123		},
103124	}
103125	target := &ret
103126	if err := gensupport.DecodeResponse(target, res); err != nil {
103127		return nil, err
103128	}
103129	return ret, nil
103130	// {
103131	//   "description": "Lists the internal IP owners in the specified network. (== suppress_warning http-rest-shadowed ==)",
103132	//   "httpMethod": "GET",
103133	//   "id": "compute.networks.listIpOwners",
103134	//   "parameterOrder": [
103135	//     "project",
103136	//     "network"
103137	//   ],
103138	//   "parameters": {
103139	//     "filter": {
103140	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
103141	//       "location": "query",
103142	//       "type": "string"
103143	//     },
103144	//     "ipCidrRange": {
103145	//       "description": "(Optional) IP CIDR range filter, example: \"10.128.10.0/30\".",
103146	//       "location": "query",
103147	//       "type": "string"
103148	//     },
103149	//     "maxResults": {
103150	//       "default": "500",
103151	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
103152	//       "format": "uint32",
103153	//       "location": "query",
103154	//       "minimum": "0",
103155	//       "type": "integer"
103156	//     },
103157	//     "network": {
103158	//       "description": "Name of the network to return.",
103159	//       "location": "path",
103160	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
103161	//       "required": true,
103162	//       "type": "string"
103163	//     },
103164	//     "orderBy": {
103165	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
103166	//       "location": "query",
103167	//       "type": "string"
103168	//     },
103169	//     "ownerProjects": {
103170	//       "description": "(Optional) Project IDs filter, example: \"project-1,project-2\".",
103171	//       "location": "query",
103172	//       "type": "string"
103173	//     },
103174	//     "ownerTypes": {
103175	//       "description": "(Optional) Owner types filter, example: \"instance,forwardingRule\".",
103176	//       "location": "query",
103177	//       "type": "string"
103178	//     },
103179	//     "pageToken": {
103180	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
103181	//       "location": "query",
103182	//       "type": "string"
103183	//     },
103184	//     "project": {
103185	//       "description": "Project ID for this request.",
103186	//       "location": "path",
103187	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
103188	//       "required": true,
103189	//       "type": "string"
103190	//     },
103191	//     "subnetName": {
103192	//       "description": "(Optional) Subnetwork name filter.",
103193	//       "location": "query",
103194	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
103195	//       "type": "string"
103196	//     },
103197	//     "subnetRegion": {
103198	//       "description": "(Optional) Subnetwork region filter.",
103199	//       "location": "query",
103200	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
103201	//       "type": "string"
103202	//     }
103203	//   },
103204	//   "path": "{project}/global/networks/{network}/listIpOwners",
103205	//   "response": {
103206	//     "$ref": "IpOwnerList"
103207	//   },
103208	//   "scopes": [
103209	//     "https://www.googleapis.com/auth/cloud-platform",
103210	//     "https://www.googleapis.com/auth/compute",
103211	//     "https://www.googleapis.com/auth/compute.readonly"
103212	//   ]
103213	// }
103214
103215}
103216
103217// Pages invokes f for each page of results.
103218// A non-nil error returned from f will halt the iteration.
103219// The provided context supersedes any context provided to the Context method.
103220func (c *NetworksListIpOwnersCall) Pages(ctx context.Context, f func(*IpOwnerList) error) error {
103221	c.ctx_ = ctx
103222	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
103223	for {
103224		x, err := c.Do()
103225		if err != nil {
103226			return err
103227		}
103228		if err := f(x); err != nil {
103229			return err
103230		}
103231		if x.NextPageToken == "" {
103232			return nil
103233		}
103234		c.PageToken(x.NextPageToken)
103235	}
103236}
103237
103238// method id "compute.networks.listPeeringRoutes":
103239
103240type NetworksListPeeringRoutesCall struct {
103241	s            *Service
103242	project      string
103243	network      string
103244	urlParams_   gensupport.URLParams
103245	ifNoneMatch_ string
103246	ctx_         context.Context
103247	header_      http.Header
103248}
103249
103250// ListPeeringRoutes: Lists the peering routes exchanged over peering
103251// connection. (== suppress_warning http-rest-shadowed ==)
103252func (r *NetworksService) ListPeeringRoutes(project string, network string) *NetworksListPeeringRoutesCall {
103253	c := &NetworksListPeeringRoutesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
103254	c.project = project
103255	c.network = network
103256	return c
103257}
103258
103259// Direction sets the optional parameter "direction": The direction of
103260// the exchanged routes.
103261//
103262// Possible values:
103263//   "INCOMING"
103264//   "OUTGOING"
103265func (c *NetworksListPeeringRoutesCall) Direction(direction string) *NetworksListPeeringRoutesCall {
103266	c.urlParams_.Set("direction", direction)
103267	return c
103268}
103269
103270// Filter sets the optional parameter "filter": A filter expression that
103271// filters resources listed in the response. The expression must specify
103272// the field name, a comparison operator, and the value that you want to
103273// use for filtering. The value must be a string, a number, or a
103274// boolean. The comparison operator must be either =, !=, >, or <.
103275//
103276// For example, if you are filtering Compute Engine instances, you can
103277// exclude instances named example-instance by specifying name !=
103278// example-instance.
103279//
103280// You can also filter nested fields. For example, you could specify
103281// scheduling.automaticRestart = false to include instances only if they
103282// are not scheduled for automatic restarts. You can use filtering on
103283// nested fields to filter based on resource labels.
103284//
103285// To filter on multiple expressions, provide each separate expression
103286// within parentheses. For example, (scheduling.automaticRestart = true)
103287// (cpuPlatform = "Intel Skylake"). By default, each expression is an
103288// AND expression. However, you can include AND and OR expressions
103289// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
103290// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
103291// true).
103292func (c *NetworksListPeeringRoutesCall) Filter(filter string) *NetworksListPeeringRoutesCall {
103293	c.urlParams_.Set("filter", filter)
103294	return c
103295}
103296
103297// MaxResults sets the optional parameter "maxResults": The maximum
103298// number of results per page that should be returned. If the number of
103299// available results is larger than maxResults, Compute Engine returns a
103300// nextPageToken that can be used to get the next page of results in
103301// subsequent list requests. Acceptable values are 0 to 500, inclusive.
103302// (Default: 500)
103303func (c *NetworksListPeeringRoutesCall) MaxResults(maxResults int64) *NetworksListPeeringRoutesCall {
103304	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
103305	return c
103306}
103307
103308// OrderBy sets the optional parameter "orderBy": Sorts list results by
103309// a certain order. By default, results are returned in alphanumerical
103310// order based on the resource name.
103311//
103312// You can also sort results in descending order based on the creation
103313// timestamp using orderBy="creationTimestamp desc". This sorts results
103314// based on the creationTimestamp field in reverse chronological order
103315// (newest result first). Use this to sort resources like operations so
103316// that the newest operation is returned first.
103317//
103318// Currently, only sorting by name or creationTimestamp desc is
103319// supported.
103320func (c *NetworksListPeeringRoutesCall) OrderBy(orderBy string) *NetworksListPeeringRoutesCall {
103321	c.urlParams_.Set("orderBy", orderBy)
103322	return c
103323}
103324
103325// PageToken sets the optional parameter "pageToken": Specifies a page
103326// token to use. Set pageToken to the nextPageToken returned by a
103327// previous list request to get the next page of results.
103328func (c *NetworksListPeeringRoutesCall) PageToken(pageToken string) *NetworksListPeeringRoutesCall {
103329	c.urlParams_.Set("pageToken", pageToken)
103330	return c
103331}
103332
103333// PeeringName sets the optional parameter "peeringName": The response
103334// will show routes exchanged over the given peering connection.
103335func (c *NetworksListPeeringRoutesCall) PeeringName(peeringName string) *NetworksListPeeringRoutesCall {
103336	c.urlParams_.Set("peeringName", peeringName)
103337	return c
103338}
103339
103340// Region sets the optional parameter "region": The region of the
103341// request. The response will include all subnet routes, static routes
103342// and dynamic routes in the region.
103343func (c *NetworksListPeeringRoutesCall) Region(region string) *NetworksListPeeringRoutesCall {
103344	c.urlParams_.Set("region", region)
103345	return c
103346}
103347
103348// Fields allows partial responses to be retrieved. See
103349// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
103350// for more information.
103351func (c *NetworksListPeeringRoutesCall) Fields(s ...googleapi.Field) *NetworksListPeeringRoutesCall {
103352	c.urlParams_.Set("fields", googleapi.CombineFields(s))
103353	return c
103354}
103355
103356// IfNoneMatch sets the optional parameter which makes the operation
103357// fail if the object's ETag matches the given value. This is useful for
103358// getting updates only after the object has changed since the last
103359// request. Use googleapi.IsNotModified to check whether the response
103360// error from Do is the result of In-None-Match.
103361func (c *NetworksListPeeringRoutesCall) IfNoneMatch(entityTag string) *NetworksListPeeringRoutesCall {
103362	c.ifNoneMatch_ = entityTag
103363	return c
103364}
103365
103366// Context sets the context to be used in this call's Do method. Any
103367// pending HTTP request will be aborted if the provided context is
103368// canceled.
103369func (c *NetworksListPeeringRoutesCall) Context(ctx context.Context) *NetworksListPeeringRoutesCall {
103370	c.ctx_ = ctx
103371	return c
103372}
103373
103374// Header returns an http.Header that can be modified by the caller to
103375// add HTTP headers to the request.
103376func (c *NetworksListPeeringRoutesCall) Header() http.Header {
103377	if c.header_ == nil {
103378		c.header_ = make(http.Header)
103379	}
103380	return c.header_
103381}
103382
103383func (c *NetworksListPeeringRoutesCall) doRequest(alt string) (*http.Response, error) {
103384	reqHeaders := make(http.Header)
103385	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
103386	for k, v := range c.header_ {
103387		reqHeaders[k] = v
103388	}
103389	reqHeaders.Set("User-Agent", c.s.userAgent())
103390	if c.ifNoneMatch_ != "" {
103391		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
103392	}
103393	var body io.Reader = nil
103394	c.urlParams_.Set("alt", alt)
103395	c.urlParams_.Set("prettyPrint", "false")
103396	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networks/{network}/listPeeringRoutes")
103397	urls += "?" + c.urlParams_.Encode()
103398	req, err := http.NewRequest("GET", urls, body)
103399	if err != nil {
103400		return nil, err
103401	}
103402	req.Header = reqHeaders
103403	googleapi.Expand(req.URL, map[string]string{
103404		"project": c.project,
103405		"network": c.network,
103406	})
103407	return gensupport.SendRequest(c.ctx_, c.s.client, req)
103408}
103409
103410// Do executes the "compute.networks.listPeeringRoutes" call.
103411// Exactly one of *ExchangedPeeringRoutesList or error will be non-nil.
103412// Any non-2xx status code is an error. Response headers are in either
103413// *ExchangedPeeringRoutesList.ServerResponse.Header or (if a response
103414// was returned at all) in error.(*googleapi.Error).Header. Use
103415// googleapi.IsNotModified to check whether the returned error was
103416// because http.StatusNotModified was returned.
103417func (c *NetworksListPeeringRoutesCall) Do(opts ...googleapi.CallOption) (*ExchangedPeeringRoutesList, error) {
103418	gensupport.SetOptions(c.urlParams_, opts...)
103419	res, err := c.doRequest("json")
103420	if res != nil && res.StatusCode == http.StatusNotModified {
103421		if res.Body != nil {
103422			res.Body.Close()
103423		}
103424		return nil, &googleapi.Error{
103425			Code:   res.StatusCode,
103426			Header: res.Header,
103427		}
103428	}
103429	if err != nil {
103430		return nil, err
103431	}
103432	defer googleapi.CloseBody(res)
103433	if err := googleapi.CheckResponse(res); err != nil {
103434		return nil, err
103435	}
103436	ret := &ExchangedPeeringRoutesList{
103437		ServerResponse: googleapi.ServerResponse{
103438			Header:         res.Header,
103439			HTTPStatusCode: res.StatusCode,
103440		},
103441	}
103442	target := &ret
103443	if err := gensupport.DecodeResponse(target, res); err != nil {
103444		return nil, err
103445	}
103446	return ret, nil
103447	// {
103448	//   "description": "Lists the peering routes exchanged over peering connection. (== suppress_warning http-rest-shadowed ==)",
103449	//   "httpMethod": "GET",
103450	//   "id": "compute.networks.listPeeringRoutes",
103451	//   "parameterOrder": [
103452	//     "project",
103453	//     "network"
103454	//   ],
103455	//   "parameters": {
103456	//     "direction": {
103457	//       "description": "The direction of the exchanged routes.",
103458	//       "enum": [
103459	//         "INCOMING",
103460	//         "OUTGOING"
103461	//       ],
103462	//       "enumDescriptions": [
103463	//         "",
103464	//         ""
103465	//       ],
103466	//       "location": "query",
103467	//       "type": "string"
103468	//     },
103469	//     "filter": {
103470	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
103471	//       "location": "query",
103472	//       "type": "string"
103473	//     },
103474	//     "maxResults": {
103475	//       "default": "500",
103476	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
103477	//       "format": "uint32",
103478	//       "location": "query",
103479	//       "minimum": "0",
103480	//       "type": "integer"
103481	//     },
103482	//     "network": {
103483	//       "description": "Name of the network for this request.",
103484	//       "location": "path",
103485	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
103486	//       "required": true,
103487	//       "type": "string"
103488	//     },
103489	//     "orderBy": {
103490	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
103491	//       "location": "query",
103492	//       "type": "string"
103493	//     },
103494	//     "pageToken": {
103495	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
103496	//       "location": "query",
103497	//       "type": "string"
103498	//     },
103499	//     "peeringName": {
103500	//       "description": "The response will show routes exchanged over the given peering connection.",
103501	//       "location": "query",
103502	//       "type": "string"
103503	//     },
103504	//     "project": {
103505	//       "description": "Project ID for this request.",
103506	//       "location": "path",
103507	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
103508	//       "required": true,
103509	//       "type": "string"
103510	//     },
103511	//     "region": {
103512	//       "description": "The region of the request. The response will include all subnet routes, static routes and dynamic routes in the region.",
103513	//       "location": "query",
103514	//       "type": "string"
103515	//     }
103516	//   },
103517	//   "path": "{project}/global/networks/{network}/listPeeringRoutes",
103518	//   "response": {
103519	//     "$ref": "ExchangedPeeringRoutesList"
103520	//   },
103521	//   "scopes": [
103522	//     "https://www.googleapis.com/auth/cloud-platform",
103523	//     "https://www.googleapis.com/auth/compute",
103524	//     "https://www.googleapis.com/auth/compute.readonly"
103525	//   ]
103526	// }
103527
103528}
103529
103530// Pages invokes f for each page of results.
103531// A non-nil error returned from f will halt the iteration.
103532// The provided context supersedes any context provided to the Context method.
103533func (c *NetworksListPeeringRoutesCall) Pages(ctx context.Context, f func(*ExchangedPeeringRoutesList) error) error {
103534	c.ctx_ = ctx
103535	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
103536	for {
103537		x, err := c.Do()
103538		if err != nil {
103539			return err
103540		}
103541		if err := f(x); err != nil {
103542			return err
103543		}
103544		if x.NextPageToken == "" {
103545			return nil
103546		}
103547		c.PageToken(x.NextPageToken)
103548	}
103549}
103550
103551// method id "compute.networks.patch":
103552
103553type NetworksPatchCall struct {
103554	s          *Service
103555	project    string
103556	network    string
103557	network2   *Network
103558	urlParams_ gensupport.URLParams
103559	ctx_       context.Context
103560	header_    http.Header
103561}
103562
103563// Patch: Patches the specified network with the data included in the
103564// request. Only the following fields can be modified:
103565// routingConfig.routingMode. (== suppress_warning http-rest-shadowed
103566// ==)
103567func (r *NetworksService) Patch(project string, network string, network2 *Network) *NetworksPatchCall {
103568	c := &NetworksPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
103569	c.project = project
103570	c.network = network
103571	c.network2 = network2
103572	return c
103573}
103574
103575// RequestId sets the optional parameter "requestId": An optional
103576// request ID to identify requests. Specify a unique request ID so that
103577// if you must retry your request, the server will know to ignore the
103578// request if it has already been completed.
103579//
103580// For example, consider a situation where you make an initial request
103581// and the request times out. If you make the request again with the
103582// same request ID, the server can check if original operation with the
103583// same request ID was received, and if so, will ignore the second
103584// request. This prevents clients from accidentally creating duplicate
103585// commitments.
103586//
103587// The request ID must be a valid UUID with the exception that zero UUID
103588// is not supported (00000000-0000-0000-0000-000000000000).
103589func (c *NetworksPatchCall) RequestId(requestId string) *NetworksPatchCall {
103590	c.urlParams_.Set("requestId", requestId)
103591	return c
103592}
103593
103594// Fields allows partial responses to be retrieved. See
103595// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
103596// for more information.
103597func (c *NetworksPatchCall) Fields(s ...googleapi.Field) *NetworksPatchCall {
103598	c.urlParams_.Set("fields", googleapi.CombineFields(s))
103599	return c
103600}
103601
103602// Context sets the context to be used in this call's Do method. Any
103603// pending HTTP request will be aborted if the provided context is
103604// canceled.
103605func (c *NetworksPatchCall) Context(ctx context.Context) *NetworksPatchCall {
103606	c.ctx_ = ctx
103607	return c
103608}
103609
103610// Header returns an http.Header that can be modified by the caller to
103611// add HTTP headers to the request.
103612func (c *NetworksPatchCall) Header() http.Header {
103613	if c.header_ == nil {
103614		c.header_ = make(http.Header)
103615	}
103616	return c.header_
103617}
103618
103619func (c *NetworksPatchCall) doRequest(alt string) (*http.Response, error) {
103620	reqHeaders := make(http.Header)
103621	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
103622	for k, v := range c.header_ {
103623		reqHeaders[k] = v
103624	}
103625	reqHeaders.Set("User-Agent", c.s.userAgent())
103626	var body io.Reader = nil
103627	body, err := googleapi.WithoutDataWrapper.JSONReader(c.network2)
103628	if err != nil {
103629		return nil, err
103630	}
103631	reqHeaders.Set("Content-Type", "application/json")
103632	c.urlParams_.Set("alt", alt)
103633	c.urlParams_.Set("prettyPrint", "false")
103634	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networks/{network}")
103635	urls += "?" + c.urlParams_.Encode()
103636	req, err := http.NewRequest("PATCH", 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.patch" call.
103649// Exactly one of *Operation or error will be non-nil. Any non-2xx
103650// status code is an error. Response headers are in either
103651// *Operation.ServerResponse.Header or (if a response was returned at
103652// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
103653// to check whether the returned error was because
103654// http.StatusNotModified was returned.
103655func (c *NetworksPatchCall) Do(opts ...googleapi.CallOption) (*Operation, 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 := &Operation{
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": "Patches the specified network with the data included in the request. Only the following fields can be modified: routingConfig.routingMode. (== suppress_warning http-rest-shadowed ==)",
103687	//   "httpMethod": "PATCH",
103688	//   "id": "compute.networks.patch",
103689	//   "parameterOrder": [
103690	//     "project",
103691	//     "network"
103692	//   ],
103693	//   "parameters": {
103694	//     "network": {
103695	//       "description": "Name of the network to update.",
103696	//       "location": "path",
103697	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
103698	//       "required": true,
103699	//       "type": "string"
103700	//     },
103701	//     "project": {
103702	//       "description": "Project ID for this request.",
103703	//       "location": "path",
103704	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
103705	//       "required": true,
103706	//       "type": "string"
103707	//     },
103708	//     "requestId": {
103709	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
103710	//       "location": "query",
103711	//       "type": "string"
103712	//     }
103713	//   },
103714	//   "path": "{project}/global/networks/{network}",
103715	//   "request": {
103716	//     "$ref": "Network"
103717	//   },
103718	//   "response": {
103719	//     "$ref": "Operation"
103720	//   },
103721	//   "scopes": [
103722	//     "https://www.googleapis.com/auth/cloud-platform",
103723	//     "https://www.googleapis.com/auth/compute"
103724	//   ]
103725	// }
103726
103727}
103728
103729// method id "compute.networks.removePeering":
103730
103731type NetworksRemovePeeringCall struct {
103732	s                            *Service
103733	project                      string
103734	network                      string
103735	networksremovepeeringrequest *NetworksRemovePeeringRequest
103736	urlParams_                   gensupport.URLParams
103737	ctx_                         context.Context
103738	header_                      http.Header
103739}
103740
103741// RemovePeering: Removes a peering from the specified network. (==
103742// suppress_warning http-rest-shadowed ==)
103743func (r *NetworksService) RemovePeering(project string, network string, networksremovepeeringrequest *NetworksRemovePeeringRequest) *NetworksRemovePeeringCall {
103744	c := &NetworksRemovePeeringCall{s: r.s, urlParams_: make(gensupport.URLParams)}
103745	c.project = project
103746	c.network = network
103747	c.networksremovepeeringrequest = networksremovepeeringrequest
103748	return c
103749}
103750
103751// RequestId sets the optional parameter "requestId": An optional
103752// request ID to identify requests. Specify a unique request ID so that
103753// if you must retry your request, the server will know to ignore the
103754// request if it has already been completed.
103755//
103756// For example, consider a situation where you make an initial request
103757// and the request times out. If you make the request again with the
103758// same request ID, the server can check if original operation with the
103759// same request ID was received, and if so, will ignore the second
103760// request. This prevents clients from accidentally creating duplicate
103761// commitments.
103762//
103763// The request ID must be a valid UUID with the exception that zero UUID
103764// is not supported (00000000-0000-0000-0000-000000000000).
103765func (c *NetworksRemovePeeringCall) RequestId(requestId string) *NetworksRemovePeeringCall {
103766	c.urlParams_.Set("requestId", requestId)
103767	return c
103768}
103769
103770// Fields allows partial responses to be retrieved. See
103771// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
103772// for more information.
103773func (c *NetworksRemovePeeringCall) Fields(s ...googleapi.Field) *NetworksRemovePeeringCall {
103774	c.urlParams_.Set("fields", googleapi.CombineFields(s))
103775	return c
103776}
103777
103778// Context sets the context to be used in this call's Do method. Any
103779// pending HTTP request will be aborted if the provided context is
103780// canceled.
103781func (c *NetworksRemovePeeringCall) Context(ctx context.Context) *NetworksRemovePeeringCall {
103782	c.ctx_ = ctx
103783	return c
103784}
103785
103786// Header returns an http.Header that can be modified by the caller to
103787// add HTTP headers to the request.
103788func (c *NetworksRemovePeeringCall) Header() http.Header {
103789	if c.header_ == nil {
103790		c.header_ = make(http.Header)
103791	}
103792	return c.header_
103793}
103794
103795func (c *NetworksRemovePeeringCall) doRequest(alt string) (*http.Response, error) {
103796	reqHeaders := make(http.Header)
103797	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
103798	for k, v := range c.header_ {
103799		reqHeaders[k] = v
103800	}
103801	reqHeaders.Set("User-Agent", c.s.userAgent())
103802	var body io.Reader = nil
103803	body, err := googleapi.WithoutDataWrapper.JSONReader(c.networksremovepeeringrequest)
103804	if err != nil {
103805		return nil, err
103806	}
103807	reqHeaders.Set("Content-Type", "application/json")
103808	c.urlParams_.Set("alt", alt)
103809	c.urlParams_.Set("prettyPrint", "false")
103810	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networks/{network}/removePeering")
103811	urls += "?" + c.urlParams_.Encode()
103812	req, err := http.NewRequest("POST", urls, body)
103813	if err != nil {
103814		return nil, err
103815	}
103816	req.Header = reqHeaders
103817	googleapi.Expand(req.URL, map[string]string{
103818		"project": c.project,
103819		"network": c.network,
103820	})
103821	return gensupport.SendRequest(c.ctx_, c.s.client, req)
103822}
103823
103824// Do executes the "compute.networks.removePeering" call.
103825// Exactly one of *Operation or error will be non-nil. Any non-2xx
103826// status code is an error. Response headers are in either
103827// *Operation.ServerResponse.Header or (if a response was returned at
103828// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
103829// to check whether the returned error was because
103830// http.StatusNotModified was returned.
103831func (c *NetworksRemovePeeringCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
103832	gensupport.SetOptions(c.urlParams_, opts...)
103833	res, err := c.doRequest("json")
103834	if res != nil && res.StatusCode == http.StatusNotModified {
103835		if res.Body != nil {
103836			res.Body.Close()
103837		}
103838		return nil, &googleapi.Error{
103839			Code:   res.StatusCode,
103840			Header: res.Header,
103841		}
103842	}
103843	if err != nil {
103844		return nil, err
103845	}
103846	defer googleapi.CloseBody(res)
103847	if err := googleapi.CheckResponse(res); err != nil {
103848		return nil, err
103849	}
103850	ret := &Operation{
103851		ServerResponse: googleapi.ServerResponse{
103852			Header:         res.Header,
103853			HTTPStatusCode: res.StatusCode,
103854		},
103855	}
103856	target := &ret
103857	if err := gensupport.DecodeResponse(target, res); err != nil {
103858		return nil, err
103859	}
103860	return ret, nil
103861	// {
103862	//   "description": "Removes a peering from the specified network. (== suppress_warning http-rest-shadowed ==)",
103863	//   "httpMethod": "POST",
103864	//   "id": "compute.networks.removePeering",
103865	//   "parameterOrder": [
103866	//     "project",
103867	//     "network"
103868	//   ],
103869	//   "parameters": {
103870	//     "network": {
103871	//       "description": "Name of the network resource to remove peering from.",
103872	//       "location": "path",
103873	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
103874	//       "required": true,
103875	//       "type": "string"
103876	//     },
103877	//     "project": {
103878	//       "description": "Project ID for this request.",
103879	//       "location": "path",
103880	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
103881	//       "required": true,
103882	//       "type": "string"
103883	//     },
103884	//     "requestId": {
103885	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
103886	//       "location": "query",
103887	//       "type": "string"
103888	//     }
103889	//   },
103890	//   "path": "{project}/global/networks/{network}/removePeering",
103891	//   "request": {
103892	//     "$ref": "NetworksRemovePeeringRequest"
103893	//   },
103894	//   "response": {
103895	//     "$ref": "Operation"
103896	//   },
103897	//   "scopes": [
103898	//     "https://www.googleapis.com/auth/cloud-platform",
103899	//     "https://www.googleapis.com/auth/compute"
103900	//   ]
103901	// }
103902
103903}
103904
103905// method id "compute.networks.switchToCustomMode":
103906
103907type NetworksSwitchToCustomModeCall struct {
103908	s          *Service
103909	project    string
103910	network    string
103911	urlParams_ gensupport.URLParams
103912	ctx_       context.Context
103913	header_    http.Header
103914}
103915
103916// SwitchToCustomMode: Switches the network mode from auto subnet mode
103917// to custom subnet mode. (== suppress_warning http-rest-shadowed ==)
103918func (r *NetworksService) SwitchToCustomMode(project string, network string) *NetworksSwitchToCustomModeCall {
103919	c := &NetworksSwitchToCustomModeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
103920	c.project = project
103921	c.network = network
103922	return c
103923}
103924
103925// RequestId sets the optional parameter "requestId": An optional
103926// request ID to identify requests. Specify a unique request ID so that
103927// if you must retry your request, the server will know to ignore the
103928// request if it has already been completed.
103929//
103930// For example, consider a situation where you make an initial request
103931// and the request times out. If you make the request again with the
103932// same request ID, the server can check if original operation with the
103933// same request ID was received, and if so, will ignore the second
103934// request. This prevents clients from accidentally creating duplicate
103935// commitments.
103936//
103937// The request ID must be a valid UUID with the exception that zero UUID
103938// is not supported (00000000-0000-0000-0000-000000000000).
103939func (c *NetworksSwitchToCustomModeCall) RequestId(requestId string) *NetworksSwitchToCustomModeCall {
103940	c.urlParams_.Set("requestId", requestId)
103941	return c
103942}
103943
103944// Fields allows partial responses to be retrieved. See
103945// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
103946// for more information.
103947func (c *NetworksSwitchToCustomModeCall) Fields(s ...googleapi.Field) *NetworksSwitchToCustomModeCall {
103948	c.urlParams_.Set("fields", googleapi.CombineFields(s))
103949	return c
103950}
103951
103952// Context sets the context to be used in this call's Do method. Any
103953// pending HTTP request will be aborted if the provided context is
103954// canceled.
103955func (c *NetworksSwitchToCustomModeCall) Context(ctx context.Context) *NetworksSwitchToCustomModeCall {
103956	c.ctx_ = ctx
103957	return c
103958}
103959
103960// Header returns an http.Header that can be modified by the caller to
103961// add HTTP headers to the request.
103962func (c *NetworksSwitchToCustomModeCall) Header() http.Header {
103963	if c.header_ == nil {
103964		c.header_ = make(http.Header)
103965	}
103966	return c.header_
103967}
103968
103969func (c *NetworksSwitchToCustomModeCall) doRequest(alt string) (*http.Response, error) {
103970	reqHeaders := make(http.Header)
103971	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
103972	for k, v := range c.header_ {
103973		reqHeaders[k] = v
103974	}
103975	reqHeaders.Set("User-Agent", c.s.userAgent())
103976	var body io.Reader = nil
103977	c.urlParams_.Set("alt", alt)
103978	c.urlParams_.Set("prettyPrint", "false")
103979	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networks/{network}/switchToCustomMode")
103980	urls += "?" + c.urlParams_.Encode()
103981	req, err := http.NewRequest("POST", urls, body)
103982	if err != nil {
103983		return nil, err
103984	}
103985	req.Header = reqHeaders
103986	googleapi.Expand(req.URL, map[string]string{
103987		"project": c.project,
103988		"network": c.network,
103989	})
103990	return gensupport.SendRequest(c.ctx_, c.s.client, req)
103991}
103992
103993// Do executes the "compute.networks.switchToCustomMode" call.
103994// Exactly one of *Operation or error will be non-nil. Any non-2xx
103995// status code is an error. Response headers are in either
103996// *Operation.ServerResponse.Header or (if a response was returned at
103997// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
103998// to check whether the returned error was because
103999// http.StatusNotModified was returned.
104000func (c *NetworksSwitchToCustomModeCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
104001	gensupport.SetOptions(c.urlParams_, opts...)
104002	res, err := c.doRequest("json")
104003	if res != nil && res.StatusCode == http.StatusNotModified {
104004		if res.Body != nil {
104005			res.Body.Close()
104006		}
104007		return nil, &googleapi.Error{
104008			Code:   res.StatusCode,
104009			Header: res.Header,
104010		}
104011	}
104012	if err != nil {
104013		return nil, err
104014	}
104015	defer googleapi.CloseBody(res)
104016	if err := googleapi.CheckResponse(res); err != nil {
104017		return nil, err
104018	}
104019	ret := &Operation{
104020		ServerResponse: googleapi.ServerResponse{
104021			Header:         res.Header,
104022			HTTPStatusCode: res.StatusCode,
104023		},
104024	}
104025	target := &ret
104026	if err := gensupport.DecodeResponse(target, res); err != nil {
104027		return nil, err
104028	}
104029	return ret, nil
104030	// {
104031	//   "description": "Switches the network mode from auto subnet mode to custom subnet mode. (== suppress_warning http-rest-shadowed ==)",
104032	//   "httpMethod": "POST",
104033	//   "id": "compute.networks.switchToCustomMode",
104034	//   "parameterOrder": [
104035	//     "project",
104036	//     "network"
104037	//   ],
104038	//   "parameters": {
104039	//     "network": {
104040	//       "description": "Name of the network to be updated.",
104041	//       "location": "path",
104042	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
104043	//       "required": true,
104044	//       "type": "string"
104045	//     },
104046	//     "project": {
104047	//       "description": "Project ID for this request.",
104048	//       "location": "path",
104049	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
104050	//       "required": true,
104051	//       "type": "string"
104052	//     },
104053	//     "requestId": {
104054	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
104055	//       "location": "query",
104056	//       "type": "string"
104057	//     }
104058	//   },
104059	//   "path": "{project}/global/networks/{network}/switchToCustomMode",
104060	//   "response": {
104061	//     "$ref": "Operation"
104062	//   },
104063	//   "scopes": [
104064	//     "https://www.googleapis.com/auth/cloud-platform",
104065	//     "https://www.googleapis.com/auth/compute"
104066	//   ]
104067	// }
104068
104069}
104070
104071// method id "compute.networks.testIamPermissions":
104072
104073type NetworksTestIamPermissionsCall struct {
104074	s                      *Service
104075	project                string
104076	resource               string
104077	testpermissionsrequest *TestPermissionsRequest
104078	urlParams_             gensupport.URLParams
104079	ctx_                   context.Context
104080	header_                http.Header
104081}
104082
104083// TestIamPermissions: Returns permissions that a caller has on the
104084// specified resource. (== suppress_warning http-rest-shadowed ==)
104085func (r *NetworksService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *NetworksTestIamPermissionsCall {
104086	c := &NetworksTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
104087	c.project = project
104088	c.resource = resource
104089	c.testpermissionsrequest = testpermissionsrequest
104090	return c
104091}
104092
104093// Fields allows partial responses to be retrieved. See
104094// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
104095// for more information.
104096func (c *NetworksTestIamPermissionsCall) Fields(s ...googleapi.Field) *NetworksTestIamPermissionsCall {
104097	c.urlParams_.Set("fields", googleapi.CombineFields(s))
104098	return c
104099}
104100
104101// Context sets the context to be used in this call's Do method. Any
104102// pending HTTP request will be aborted if the provided context is
104103// canceled.
104104func (c *NetworksTestIamPermissionsCall) Context(ctx context.Context) *NetworksTestIamPermissionsCall {
104105	c.ctx_ = ctx
104106	return c
104107}
104108
104109// Header returns an http.Header that can be modified by the caller to
104110// add HTTP headers to the request.
104111func (c *NetworksTestIamPermissionsCall) Header() http.Header {
104112	if c.header_ == nil {
104113		c.header_ = make(http.Header)
104114	}
104115	return c.header_
104116}
104117
104118func (c *NetworksTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
104119	reqHeaders := make(http.Header)
104120	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
104121	for k, v := range c.header_ {
104122		reqHeaders[k] = v
104123	}
104124	reqHeaders.Set("User-Agent", c.s.userAgent())
104125	var body io.Reader = nil
104126	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
104127	if err != nil {
104128		return nil, err
104129	}
104130	reqHeaders.Set("Content-Type", "application/json")
104131	c.urlParams_.Set("alt", alt)
104132	c.urlParams_.Set("prettyPrint", "false")
104133	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networks/{resource}/testIamPermissions")
104134	urls += "?" + c.urlParams_.Encode()
104135	req, err := http.NewRequest("POST", urls, body)
104136	if err != nil {
104137		return nil, err
104138	}
104139	req.Header = reqHeaders
104140	googleapi.Expand(req.URL, map[string]string{
104141		"project":  c.project,
104142		"resource": c.resource,
104143	})
104144	return gensupport.SendRequest(c.ctx_, c.s.client, req)
104145}
104146
104147// Do executes the "compute.networks.testIamPermissions" call.
104148// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
104149// non-2xx status code is an error. Response headers are in either
104150// *TestPermissionsResponse.ServerResponse.Header or (if a response was
104151// returned at all) in error.(*googleapi.Error).Header. Use
104152// googleapi.IsNotModified to check whether the returned error was
104153// because http.StatusNotModified was returned.
104154func (c *NetworksTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
104155	gensupport.SetOptions(c.urlParams_, opts...)
104156	res, err := c.doRequest("json")
104157	if res != nil && res.StatusCode == http.StatusNotModified {
104158		if res.Body != nil {
104159			res.Body.Close()
104160		}
104161		return nil, &googleapi.Error{
104162			Code:   res.StatusCode,
104163			Header: res.Header,
104164		}
104165	}
104166	if err != nil {
104167		return nil, err
104168	}
104169	defer googleapi.CloseBody(res)
104170	if err := googleapi.CheckResponse(res); err != nil {
104171		return nil, err
104172	}
104173	ret := &TestPermissionsResponse{
104174		ServerResponse: googleapi.ServerResponse{
104175			Header:         res.Header,
104176			HTTPStatusCode: res.StatusCode,
104177		},
104178	}
104179	target := &ret
104180	if err := gensupport.DecodeResponse(target, res); err != nil {
104181		return nil, err
104182	}
104183	return ret, nil
104184	// {
104185	//   "description": "Returns permissions that a caller has on the specified resource. (== suppress_warning http-rest-shadowed ==)",
104186	//   "httpMethod": "POST",
104187	//   "id": "compute.networks.testIamPermissions",
104188	//   "parameterOrder": [
104189	//     "project",
104190	//     "resource"
104191	//   ],
104192	//   "parameters": {
104193	//     "project": {
104194	//       "description": "Project ID for this request.",
104195	//       "location": "path",
104196	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
104197	//       "required": true,
104198	//       "type": "string"
104199	//     },
104200	//     "resource": {
104201	//       "description": "Name or id of the resource for this request.",
104202	//       "location": "path",
104203	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
104204	//       "required": true,
104205	//       "type": "string"
104206	//     }
104207	//   },
104208	//   "path": "{project}/global/networks/{resource}/testIamPermissions",
104209	//   "request": {
104210	//     "$ref": "TestPermissionsRequest"
104211	//   },
104212	//   "response": {
104213	//     "$ref": "TestPermissionsResponse"
104214	//   },
104215	//   "scopes": [
104216	//     "https://www.googleapis.com/auth/cloud-platform",
104217	//     "https://www.googleapis.com/auth/compute",
104218	//     "https://www.googleapis.com/auth/compute.readonly"
104219	//   ]
104220	// }
104221
104222}
104223
104224// method id "compute.networks.updatePeering":
104225
104226type NetworksUpdatePeeringCall struct {
104227	s                            *Service
104228	project                      string
104229	network                      string
104230	networksupdatepeeringrequest *NetworksUpdatePeeringRequest
104231	urlParams_                   gensupport.URLParams
104232	ctx_                         context.Context
104233	header_                      http.Header
104234}
104235
104236// UpdatePeering: Updates the specified network peering with the data
104237// included in the request Only the following fields can be modified:
104238// NetworkPeering.export_custom_routes, and
104239// NetworkPeering.import_custom_routes (== suppress_warning
104240// http-rest-shadowed ==)
104241func (r *NetworksService) UpdatePeering(project string, network string, networksupdatepeeringrequest *NetworksUpdatePeeringRequest) *NetworksUpdatePeeringCall {
104242	c := &NetworksUpdatePeeringCall{s: r.s, urlParams_: make(gensupport.URLParams)}
104243	c.project = project
104244	c.network = network
104245	c.networksupdatepeeringrequest = networksupdatepeeringrequest
104246	return c
104247}
104248
104249// RequestId sets the optional parameter "requestId": An optional
104250// request ID to identify requests. Specify a unique request ID so that
104251// if you must retry your request, the server will know to ignore the
104252// request if it has already been completed.
104253//
104254// For example, consider a situation where you make an initial request
104255// and the request times out. If you make the request again with the
104256// same request ID, the server can check if original operation with the
104257// same request ID was received, and if so, will ignore the second
104258// request. This prevents clients from accidentally creating duplicate
104259// commitments.
104260//
104261// The request ID must be a valid UUID with the exception that zero UUID
104262// is not supported (00000000-0000-0000-0000-000000000000).
104263func (c *NetworksUpdatePeeringCall) RequestId(requestId string) *NetworksUpdatePeeringCall {
104264	c.urlParams_.Set("requestId", requestId)
104265	return c
104266}
104267
104268// Fields allows partial responses to be retrieved. See
104269// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
104270// for more information.
104271func (c *NetworksUpdatePeeringCall) Fields(s ...googleapi.Field) *NetworksUpdatePeeringCall {
104272	c.urlParams_.Set("fields", googleapi.CombineFields(s))
104273	return c
104274}
104275
104276// Context sets the context to be used in this call's Do method. Any
104277// pending HTTP request will be aborted if the provided context is
104278// canceled.
104279func (c *NetworksUpdatePeeringCall) Context(ctx context.Context) *NetworksUpdatePeeringCall {
104280	c.ctx_ = ctx
104281	return c
104282}
104283
104284// Header returns an http.Header that can be modified by the caller to
104285// add HTTP headers to the request.
104286func (c *NetworksUpdatePeeringCall) Header() http.Header {
104287	if c.header_ == nil {
104288		c.header_ = make(http.Header)
104289	}
104290	return c.header_
104291}
104292
104293func (c *NetworksUpdatePeeringCall) doRequest(alt string) (*http.Response, error) {
104294	reqHeaders := make(http.Header)
104295	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
104296	for k, v := range c.header_ {
104297		reqHeaders[k] = v
104298	}
104299	reqHeaders.Set("User-Agent", c.s.userAgent())
104300	var body io.Reader = nil
104301	body, err := googleapi.WithoutDataWrapper.JSONReader(c.networksupdatepeeringrequest)
104302	if err != nil {
104303		return nil, err
104304	}
104305	reqHeaders.Set("Content-Type", "application/json")
104306	c.urlParams_.Set("alt", alt)
104307	c.urlParams_.Set("prettyPrint", "false")
104308	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networks/{network}/updatePeering")
104309	urls += "?" + c.urlParams_.Encode()
104310	req, err := http.NewRequest("PATCH", urls, body)
104311	if err != nil {
104312		return nil, err
104313	}
104314	req.Header = reqHeaders
104315	googleapi.Expand(req.URL, map[string]string{
104316		"project": c.project,
104317		"network": c.network,
104318	})
104319	return gensupport.SendRequest(c.ctx_, c.s.client, req)
104320}
104321
104322// Do executes the "compute.networks.updatePeering" call.
104323// Exactly one of *Operation or error will be non-nil. Any non-2xx
104324// status code is an error. Response headers are in either
104325// *Operation.ServerResponse.Header or (if a response was returned at
104326// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
104327// to check whether the returned error was because
104328// http.StatusNotModified was returned.
104329func (c *NetworksUpdatePeeringCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
104330	gensupport.SetOptions(c.urlParams_, opts...)
104331	res, err := c.doRequest("json")
104332	if res != nil && res.StatusCode == http.StatusNotModified {
104333		if res.Body != nil {
104334			res.Body.Close()
104335		}
104336		return nil, &googleapi.Error{
104337			Code:   res.StatusCode,
104338			Header: res.Header,
104339		}
104340	}
104341	if err != nil {
104342		return nil, err
104343	}
104344	defer googleapi.CloseBody(res)
104345	if err := googleapi.CheckResponse(res); err != nil {
104346		return nil, err
104347	}
104348	ret := &Operation{
104349		ServerResponse: googleapi.ServerResponse{
104350			Header:         res.Header,
104351			HTTPStatusCode: res.StatusCode,
104352		},
104353	}
104354	target := &ret
104355	if err := gensupport.DecodeResponse(target, res); err != nil {
104356		return nil, err
104357	}
104358	return ret, nil
104359	// {
104360	//   "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 (== suppress_warning http-rest-shadowed ==)",
104361	//   "httpMethod": "PATCH",
104362	//   "id": "compute.networks.updatePeering",
104363	//   "parameterOrder": [
104364	//     "project",
104365	//     "network"
104366	//   ],
104367	//   "parameters": {
104368	//     "network": {
104369	//       "description": "Name of the network resource which the updated peering is belonging to.",
104370	//       "location": "path",
104371	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
104372	//       "required": true,
104373	//       "type": "string"
104374	//     },
104375	//     "project": {
104376	//       "description": "Project ID for this request.",
104377	//       "location": "path",
104378	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
104379	//       "required": true,
104380	//       "type": "string"
104381	//     },
104382	//     "requestId": {
104383	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
104384	//       "location": "query",
104385	//       "type": "string"
104386	//     }
104387	//   },
104388	//   "path": "{project}/global/networks/{network}/updatePeering",
104389	//   "request": {
104390	//     "$ref": "NetworksUpdatePeeringRequest"
104391	//   },
104392	//   "response": {
104393	//     "$ref": "Operation"
104394	//   },
104395	//   "scopes": [
104396	//     "https://www.googleapis.com/auth/cloud-platform",
104397	//     "https://www.googleapis.com/auth/compute"
104398	//   ]
104399	// }
104400
104401}
104402
104403// method id "compute.nodeGroups.addNodes":
104404
104405type NodeGroupsAddNodesCall struct {
104406	s                         *Service
104407	project                   string
104408	zone                      string
104409	nodeGroup                 string
104410	nodegroupsaddnodesrequest *NodeGroupsAddNodesRequest
104411	urlParams_                gensupport.URLParams
104412	ctx_                      context.Context
104413	header_                   http.Header
104414}
104415
104416// AddNodes: Adds specified number of nodes to the node group. (==
104417// suppress_warning http-rest-shadowed ==)
104418func (r *NodeGroupsService) AddNodes(project string, zone string, nodeGroup string, nodegroupsaddnodesrequest *NodeGroupsAddNodesRequest) *NodeGroupsAddNodesCall {
104419	c := &NodeGroupsAddNodesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
104420	c.project = project
104421	c.zone = zone
104422	c.nodeGroup = nodeGroup
104423	c.nodegroupsaddnodesrequest = nodegroupsaddnodesrequest
104424	return c
104425}
104426
104427// RequestId sets the optional parameter "requestId": An optional
104428// request ID to identify requests. Specify a unique request ID so that
104429// if you must retry your request, the server will know to ignore the
104430// request if it has already been completed.
104431//
104432// For example, consider a situation where you make an initial request
104433// and the request times out. If you make the request again with the
104434// same request ID, the server can check if original operation with the
104435// same request ID was received, and if so, will ignore the second
104436// request. This prevents clients from accidentally creating duplicate
104437// commitments.
104438//
104439// The request ID must be a valid UUID with the exception that zero UUID
104440// is not supported (00000000-0000-0000-0000-000000000000).
104441func (c *NodeGroupsAddNodesCall) RequestId(requestId string) *NodeGroupsAddNodesCall {
104442	c.urlParams_.Set("requestId", requestId)
104443	return c
104444}
104445
104446// Fields allows partial responses to be retrieved. See
104447// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
104448// for more information.
104449func (c *NodeGroupsAddNodesCall) Fields(s ...googleapi.Field) *NodeGroupsAddNodesCall {
104450	c.urlParams_.Set("fields", googleapi.CombineFields(s))
104451	return c
104452}
104453
104454// Context sets the context to be used in this call's Do method. Any
104455// pending HTTP request will be aborted if the provided context is
104456// canceled.
104457func (c *NodeGroupsAddNodesCall) Context(ctx context.Context) *NodeGroupsAddNodesCall {
104458	c.ctx_ = ctx
104459	return c
104460}
104461
104462// Header returns an http.Header that can be modified by the caller to
104463// add HTTP headers to the request.
104464func (c *NodeGroupsAddNodesCall) Header() http.Header {
104465	if c.header_ == nil {
104466		c.header_ = make(http.Header)
104467	}
104468	return c.header_
104469}
104470
104471func (c *NodeGroupsAddNodesCall) doRequest(alt string) (*http.Response, error) {
104472	reqHeaders := make(http.Header)
104473	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
104474	for k, v := range c.header_ {
104475		reqHeaders[k] = v
104476	}
104477	reqHeaders.Set("User-Agent", c.s.userAgent())
104478	var body io.Reader = nil
104479	body, err := googleapi.WithoutDataWrapper.JSONReader(c.nodegroupsaddnodesrequest)
104480	if err != nil {
104481		return nil, err
104482	}
104483	reqHeaders.Set("Content-Type", "application/json")
104484	c.urlParams_.Set("alt", alt)
104485	c.urlParams_.Set("prettyPrint", "false")
104486	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/nodeGroups/{nodeGroup}/addNodes")
104487	urls += "?" + c.urlParams_.Encode()
104488	req, err := http.NewRequest("POST", urls, body)
104489	if err != nil {
104490		return nil, err
104491	}
104492	req.Header = reqHeaders
104493	googleapi.Expand(req.URL, map[string]string{
104494		"project":   c.project,
104495		"zone":      c.zone,
104496		"nodeGroup": c.nodeGroup,
104497	})
104498	return gensupport.SendRequest(c.ctx_, c.s.client, req)
104499}
104500
104501// Do executes the "compute.nodeGroups.addNodes" call.
104502// Exactly one of *Operation or error will be non-nil. Any non-2xx
104503// status code is an error. Response headers are in either
104504// *Operation.ServerResponse.Header or (if a response was returned at
104505// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
104506// to check whether the returned error was because
104507// http.StatusNotModified was returned.
104508func (c *NodeGroupsAddNodesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
104509	gensupport.SetOptions(c.urlParams_, opts...)
104510	res, err := c.doRequest("json")
104511	if res != nil && res.StatusCode == http.StatusNotModified {
104512		if res.Body != nil {
104513			res.Body.Close()
104514		}
104515		return nil, &googleapi.Error{
104516			Code:   res.StatusCode,
104517			Header: res.Header,
104518		}
104519	}
104520	if err != nil {
104521		return nil, err
104522	}
104523	defer googleapi.CloseBody(res)
104524	if err := googleapi.CheckResponse(res); err != nil {
104525		return nil, err
104526	}
104527	ret := &Operation{
104528		ServerResponse: googleapi.ServerResponse{
104529			Header:         res.Header,
104530			HTTPStatusCode: res.StatusCode,
104531		},
104532	}
104533	target := &ret
104534	if err := gensupport.DecodeResponse(target, res); err != nil {
104535		return nil, err
104536	}
104537	return ret, nil
104538	// {
104539	//   "description": "Adds specified number of nodes to the node group. (== suppress_warning http-rest-shadowed ==)",
104540	//   "httpMethod": "POST",
104541	//   "id": "compute.nodeGroups.addNodes",
104542	//   "parameterOrder": [
104543	//     "project",
104544	//     "zone",
104545	//     "nodeGroup"
104546	//   ],
104547	//   "parameters": {
104548	//     "nodeGroup": {
104549	//       "description": "Name of the NodeGroup resource.",
104550	//       "location": "path",
104551	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
104552	//       "required": true,
104553	//       "type": "string"
104554	//     },
104555	//     "project": {
104556	//       "description": "Project ID for this request.",
104557	//       "location": "path",
104558	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
104559	//       "required": true,
104560	//       "type": "string"
104561	//     },
104562	//     "requestId": {
104563	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
104564	//       "location": "query",
104565	//       "type": "string"
104566	//     },
104567	//     "zone": {
104568	//       "description": "The name of the zone for this request.",
104569	//       "location": "path",
104570	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
104571	//       "required": true,
104572	//       "type": "string"
104573	//     }
104574	//   },
104575	//   "path": "{project}/zones/{zone}/nodeGroups/{nodeGroup}/addNodes",
104576	//   "request": {
104577	//     "$ref": "NodeGroupsAddNodesRequest"
104578	//   },
104579	//   "response": {
104580	//     "$ref": "Operation"
104581	//   },
104582	//   "scopes": [
104583	//     "https://www.googleapis.com/auth/cloud-platform",
104584	//     "https://www.googleapis.com/auth/compute"
104585	//   ]
104586	// }
104587
104588}
104589
104590// method id "compute.nodeGroups.aggregatedList":
104591
104592type NodeGroupsAggregatedListCall struct {
104593	s            *Service
104594	project      string
104595	urlParams_   gensupport.URLParams
104596	ifNoneMatch_ string
104597	ctx_         context.Context
104598	header_      http.Header
104599}
104600
104601// AggregatedList: Retrieves an aggregated list of node groups. Note:
104602// use nodeGroups.listNodes for more details about each group. (==
104603// suppress_warning http-rest-shadowed ==)
104604func (r *NodeGroupsService) AggregatedList(project string) *NodeGroupsAggregatedListCall {
104605	c := &NodeGroupsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
104606	c.project = project
104607	return c
104608}
104609
104610// Filter sets the optional parameter "filter": A filter expression that
104611// filters resources listed in the response. The expression must specify
104612// the field name, a comparison operator, and the value that you want to
104613// use for filtering. The value must be a string, a number, or a
104614// boolean. The comparison operator must be either =, !=, >, or <.
104615//
104616// For example, if you are filtering Compute Engine instances, you can
104617// exclude instances named example-instance by specifying name !=
104618// example-instance.
104619//
104620// You can also filter nested fields. For example, you could specify
104621// scheduling.automaticRestart = false to include instances only if they
104622// are not scheduled for automatic restarts. You can use filtering on
104623// nested fields to filter based on resource labels.
104624//
104625// To filter on multiple expressions, provide each separate expression
104626// within parentheses. For example, (scheduling.automaticRestart = true)
104627// (cpuPlatform = "Intel Skylake"). By default, each expression is an
104628// AND expression. However, you can include AND and OR expressions
104629// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
104630// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
104631// true).
104632func (c *NodeGroupsAggregatedListCall) Filter(filter string) *NodeGroupsAggregatedListCall {
104633	c.urlParams_.Set("filter", filter)
104634	return c
104635}
104636
104637// MaxResults sets the optional parameter "maxResults": The maximum
104638// number of results per page that should be returned. If the number of
104639// available results is larger than maxResults, Compute Engine returns a
104640// nextPageToken that can be used to get the next page of results in
104641// subsequent list requests. Acceptable values are 0 to 500, inclusive.
104642// (Default: 500)
104643func (c *NodeGroupsAggregatedListCall) MaxResults(maxResults int64) *NodeGroupsAggregatedListCall {
104644	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
104645	return c
104646}
104647
104648// OrderBy sets the optional parameter "orderBy": Sorts list results by
104649// a certain order. By default, results are returned in alphanumerical
104650// order based on the resource name.
104651//
104652// You can also sort results in descending order based on the creation
104653// timestamp using orderBy="creationTimestamp desc". This sorts results
104654// based on the creationTimestamp field in reverse chronological order
104655// (newest result first). Use this to sort resources like operations so
104656// that the newest operation is returned first.
104657//
104658// Currently, only sorting by name or creationTimestamp desc is
104659// supported.
104660func (c *NodeGroupsAggregatedListCall) OrderBy(orderBy string) *NodeGroupsAggregatedListCall {
104661	c.urlParams_.Set("orderBy", orderBy)
104662	return c
104663}
104664
104665// PageToken sets the optional parameter "pageToken": Specifies a page
104666// token to use. Set pageToken to the nextPageToken returned by a
104667// previous list request to get the next page of results.
104668func (c *NodeGroupsAggregatedListCall) PageToken(pageToken string) *NodeGroupsAggregatedListCall {
104669	c.urlParams_.Set("pageToken", pageToken)
104670	return c
104671}
104672
104673// Fields allows partial responses to be retrieved. See
104674// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
104675// for more information.
104676func (c *NodeGroupsAggregatedListCall) Fields(s ...googleapi.Field) *NodeGroupsAggregatedListCall {
104677	c.urlParams_.Set("fields", googleapi.CombineFields(s))
104678	return c
104679}
104680
104681// IfNoneMatch sets the optional parameter which makes the operation
104682// fail if the object's ETag matches the given value. This is useful for
104683// getting updates only after the object has changed since the last
104684// request. Use googleapi.IsNotModified to check whether the response
104685// error from Do is the result of In-None-Match.
104686func (c *NodeGroupsAggregatedListCall) IfNoneMatch(entityTag string) *NodeGroupsAggregatedListCall {
104687	c.ifNoneMatch_ = entityTag
104688	return c
104689}
104690
104691// Context sets the context to be used in this call's Do method. Any
104692// pending HTTP request will be aborted if the provided context is
104693// canceled.
104694func (c *NodeGroupsAggregatedListCall) Context(ctx context.Context) *NodeGroupsAggregatedListCall {
104695	c.ctx_ = ctx
104696	return c
104697}
104698
104699// Header returns an http.Header that can be modified by the caller to
104700// add HTTP headers to the request.
104701func (c *NodeGroupsAggregatedListCall) Header() http.Header {
104702	if c.header_ == nil {
104703		c.header_ = make(http.Header)
104704	}
104705	return c.header_
104706}
104707
104708func (c *NodeGroupsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
104709	reqHeaders := make(http.Header)
104710	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
104711	for k, v := range c.header_ {
104712		reqHeaders[k] = v
104713	}
104714	reqHeaders.Set("User-Agent", c.s.userAgent())
104715	if c.ifNoneMatch_ != "" {
104716		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
104717	}
104718	var body io.Reader = nil
104719	c.urlParams_.Set("alt", alt)
104720	c.urlParams_.Set("prettyPrint", "false")
104721	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/nodeGroups")
104722	urls += "?" + c.urlParams_.Encode()
104723	req, err := http.NewRequest("GET", urls, body)
104724	if err != nil {
104725		return nil, err
104726	}
104727	req.Header = reqHeaders
104728	googleapi.Expand(req.URL, map[string]string{
104729		"project": c.project,
104730	})
104731	return gensupport.SendRequest(c.ctx_, c.s.client, req)
104732}
104733
104734// Do executes the "compute.nodeGroups.aggregatedList" call.
104735// Exactly one of *NodeGroupAggregatedList or error will be non-nil. Any
104736// non-2xx status code is an error. Response headers are in either
104737// *NodeGroupAggregatedList.ServerResponse.Header or (if a response was
104738// returned at all) in error.(*googleapi.Error).Header. Use
104739// googleapi.IsNotModified to check whether the returned error was
104740// because http.StatusNotModified was returned.
104741func (c *NodeGroupsAggregatedListCall) Do(opts ...googleapi.CallOption) (*NodeGroupAggregatedList, error) {
104742	gensupport.SetOptions(c.urlParams_, opts...)
104743	res, err := c.doRequest("json")
104744	if res != nil && res.StatusCode == http.StatusNotModified {
104745		if res.Body != nil {
104746			res.Body.Close()
104747		}
104748		return nil, &googleapi.Error{
104749			Code:   res.StatusCode,
104750			Header: res.Header,
104751		}
104752	}
104753	if err != nil {
104754		return nil, err
104755	}
104756	defer googleapi.CloseBody(res)
104757	if err := googleapi.CheckResponse(res); err != nil {
104758		return nil, err
104759	}
104760	ret := &NodeGroupAggregatedList{
104761		ServerResponse: googleapi.ServerResponse{
104762			Header:         res.Header,
104763			HTTPStatusCode: res.StatusCode,
104764		},
104765	}
104766	target := &ret
104767	if err := gensupport.DecodeResponse(target, res); err != nil {
104768		return nil, err
104769	}
104770	return ret, nil
104771	// {
104772	//   "description": "Retrieves an aggregated list of node groups. Note: use nodeGroups.listNodes for more details about each group. (== suppress_warning http-rest-shadowed ==)",
104773	//   "httpMethod": "GET",
104774	//   "id": "compute.nodeGroups.aggregatedList",
104775	//   "parameterOrder": [
104776	//     "project"
104777	//   ],
104778	//   "parameters": {
104779	//     "filter": {
104780	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
104781	//       "location": "query",
104782	//       "type": "string"
104783	//     },
104784	//     "maxResults": {
104785	//       "default": "500",
104786	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
104787	//       "format": "uint32",
104788	//       "location": "query",
104789	//       "minimum": "0",
104790	//       "type": "integer"
104791	//     },
104792	//     "orderBy": {
104793	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
104794	//       "location": "query",
104795	//       "type": "string"
104796	//     },
104797	//     "pageToken": {
104798	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
104799	//       "location": "query",
104800	//       "type": "string"
104801	//     },
104802	//     "project": {
104803	//       "description": "Project ID for this request.",
104804	//       "location": "path",
104805	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
104806	//       "required": true,
104807	//       "type": "string"
104808	//     }
104809	//   },
104810	//   "path": "{project}/aggregated/nodeGroups",
104811	//   "response": {
104812	//     "$ref": "NodeGroupAggregatedList"
104813	//   },
104814	//   "scopes": [
104815	//     "https://www.googleapis.com/auth/cloud-platform",
104816	//     "https://www.googleapis.com/auth/compute",
104817	//     "https://www.googleapis.com/auth/compute.readonly"
104818	//   ]
104819	// }
104820
104821}
104822
104823// Pages invokes f for each page of results.
104824// A non-nil error returned from f will halt the iteration.
104825// The provided context supersedes any context provided to the Context method.
104826func (c *NodeGroupsAggregatedListCall) Pages(ctx context.Context, f func(*NodeGroupAggregatedList) error) error {
104827	c.ctx_ = ctx
104828	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
104829	for {
104830		x, err := c.Do()
104831		if err != nil {
104832			return err
104833		}
104834		if err := f(x); err != nil {
104835			return err
104836		}
104837		if x.NextPageToken == "" {
104838			return nil
104839		}
104840		c.PageToken(x.NextPageToken)
104841	}
104842}
104843
104844// method id "compute.nodeGroups.delete":
104845
104846type NodeGroupsDeleteCall struct {
104847	s          *Service
104848	project    string
104849	zone       string
104850	nodeGroup  string
104851	urlParams_ gensupport.URLParams
104852	ctx_       context.Context
104853	header_    http.Header
104854}
104855
104856// Delete: Deletes the specified NodeGroup resource. (==
104857// suppress_warning http-rest-shadowed ==)
104858func (r *NodeGroupsService) Delete(project string, zone string, nodeGroup string) *NodeGroupsDeleteCall {
104859	c := &NodeGroupsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
104860	c.project = project
104861	c.zone = zone
104862	c.nodeGroup = nodeGroup
104863	return c
104864}
104865
104866// RequestId sets the optional parameter "requestId": An optional
104867// request ID to identify requests. Specify a unique request ID so that
104868// if you must retry your request, the server will know to ignore the
104869// request if it has already been completed.
104870//
104871// For example, consider a situation where you make an initial request
104872// and the request times out. If you make the request again with the
104873// same request ID, the server can check if original operation with the
104874// same request ID was received, and if so, will ignore the second
104875// request. This prevents clients from accidentally creating duplicate
104876// commitments.
104877//
104878// The request ID must be a valid UUID with the exception that zero UUID
104879// is not supported (00000000-0000-0000-0000-000000000000).
104880func (c *NodeGroupsDeleteCall) RequestId(requestId string) *NodeGroupsDeleteCall {
104881	c.urlParams_.Set("requestId", requestId)
104882	return c
104883}
104884
104885// Fields allows partial responses to be retrieved. See
104886// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
104887// for more information.
104888func (c *NodeGroupsDeleteCall) Fields(s ...googleapi.Field) *NodeGroupsDeleteCall {
104889	c.urlParams_.Set("fields", googleapi.CombineFields(s))
104890	return c
104891}
104892
104893// Context sets the context to be used in this call's Do method. Any
104894// pending HTTP request will be aborted if the provided context is
104895// canceled.
104896func (c *NodeGroupsDeleteCall) Context(ctx context.Context) *NodeGroupsDeleteCall {
104897	c.ctx_ = ctx
104898	return c
104899}
104900
104901// Header returns an http.Header that can be modified by the caller to
104902// add HTTP headers to the request.
104903func (c *NodeGroupsDeleteCall) Header() http.Header {
104904	if c.header_ == nil {
104905		c.header_ = make(http.Header)
104906	}
104907	return c.header_
104908}
104909
104910func (c *NodeGroupsDeleteCall) doRequest(alt string) (*http.Response, error) {
104911	reqHeaders := make(http.Header)
104912	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
104913	for k, v := range c.header_ {
104914		reqHeaders[k] = v
104915	}
104916	reqHeaders.Set("User-Agent", c.s.userAgent())
104917	var body io.Reader = nil
104918	c.urlParams_.Set("alt", alt)
104919	c.urlParams_.Set("prettyPrint", "false")
104920	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/nodeGroups/{nodeGroup}")
104921	urls += "?" + c.urlParams_.Encode()
104922	req, err := http.NewRequest("DELETE", urls, body)
104923	if err != nil {
104924		return nil, err
104925	}
104926	req.Header = reqHeaders
104927	googleapi.Expand(req.URL, map[string]string{
104928		"project":   c.project,
104929		"zone":      c.zone,
104930		"nodeGroup": c.nodeGroup,
104931	})
104932	return gensupport.SendRequest(c.ctx_, c.s.client, req)
104933}
104934
104935// Do executes the "compute.nodeGroups.delete" call.
104936// Exactly one of *Operation or error will be non-nil. Any non-2xx
104937// status code is an error. Response headers are in either
104938// *Operation.ServerResponse.Header or (if a response was returned at
104939// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
104940// to check whether the returned error was because
104941// http.StatusNotModified was returned.
104942func (c *NodeGroupsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
104943	gensupport.SetOptions(c.urlParams_, opts...)
104944	res, err := c.doRequest("json")
104945	if res != nil && res.StatusCode == http.StatusNotModified {
104946		if res.Body != nil {
104947			res.Body.Close()
104948		}
104949		return nil, &googleapi.Error{
104950			Code:   res.StatusCode,
104951			Header: res.Header,
104952		}
104953	}
104954	if err != nil {
104955		return nil, err
104956	}
104957	defer googleapi.CloseBody(res)
104958	if err := googleapi.CheckResponse(res); err != nil {
104959		return nil, err
104960	}
104961	ret := &Operation{
104962		ServerResponse: googleapi.ServerResponse{
104963			Header:         res.Header,
104964			HTTPStatusCode: res.StatusCode,
104965		},
104966	}
104967	target := &ret
104968	if err := gensupport.DecodeResponse(target, res); err != nil {
104969		return nil, err
104970	}
104971	return ret, nil
104972	// {
104973	//   "description": "Deletes the specified NodeGroup resource. (== suppress_warning http-rest-shadowed ==)",
104974	//   "httpMethod": "DELETE",
104975	//   "id": "compute.nodeGroups.delete",
104976	//   "parameterOrder": [
104977	//     "project",
104978	//     "zone",
104979	//     "nodeGroup"
104980	//   ],
104981	//   "parameters": {
104982	//     "nodeGroup": {
104983	//       "description": "Name of the NodeGroup resource to delete.",
104984	//       "location": "path",
104985	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
104986	//       "required": true,
104987	//       "type": "string"
104988	//     },
104989	//     "project": {
104990	//       "description": "Project ID for this request.",
104991	//       "location": "path",
104992	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
104993	//       "required": true,
104994	//       "type": "string"
104995	//     },
104996	//     "requestId": {
104997	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
104998	//       "location": "query",
104999	//       "type": "string"
105000	//     },
105001	//     "zone": {
105002	//       "description": "The name of the zone for this request.",
105003	//       "location": "path",
105004	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
105005	//       "required": true,
105006	//       "type": "string"
105007	//     }
105008	//   },
105009	//   "path": "{project}/zones/{zone}/nodeGroups/{nodeGroup}",
105010	//   "response": {
105011	//     "$ref": "Operation"
105012	//   },
105013	//   "scopes": [
105014	//     "https://www.googleapis.com/auth/cloud-platform",
105015	//     "https://www.googleapis.com/auth/compute"
105016	//   ]
105017	// }
105018
105019}
105020
105021// method id "compute.nodeGroups.deleteNodes":
105022
105023type NodeGroupsDeleteNodesCall struct {
105024	s                            *Service
105025	project                      string
105026	zone                         string
105027	nodeGroup                    string
105028	nodegroupsdeletenodesrequest *NodeGroupsDeleteNodesRequest
105029	urlParams_                   gensupport.URLParams
105030	ctx_                         context.Context
105031	header_                      http.Header
105032}
105033
105034// DeleteNodes: Deletes specified nodes from the node group. (==
105035// suppress_warning http-rest-shadowed ==)
105036func (r *NodeGroupsService) DeleteNodes(project string, zone string, nodeGroup string, nodegroupsdeletenodesrequest *NodeGroupsDeleteNodesRequest) *NodeGroupsDeleteNodesCall {
105037	c := &NodeGroupsDeleteNodesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
105038	c.project = project
105039	c.zone = zone
105040	c.nodeGroup = nodeGroup
105041	c.nodegroupsdeletenodesrequest = nodegroupsdeletenodesrequest
105042	return c
105043}
105044
105045// RequestId sets the optional parameter "requestId": An optional
105046// request ID to identify requests. Specify a unique request ID so that
105047// if you must retry your request, the server will know to ignore the
105048// request if it has already been completed.
105049//
105050// For example, consider a situation where you make an initial request
105051// and the request times out. If you make the request again with the
105052// same request ID, the server can check if original operation with the
105053// same request ID was received, and if so, will ignore the second
105054// request. This prevents clients from accidentally creating duplicate
105055// commitments.
105056//
105057// The request ID must be a valid UUID with the exception that zero UUID
105058// is not supported (00000000-0000-0000-0000-000000000000).
105059func (c *NodeGroupsDeleteNodesCall) RequestId(requestId string) *NodeGroupsDeleteNodesCall {
105060	c.urlParams_.Set("requestId", requestId)
105061	return c
105062}
105063
105064// Fields allows partial responses to be retrieved. See
105065// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
105066// for more information.
105067func (c *NodeGroupsDeleteNodesCall) Fields(s ...googleapi.Field) *NodeGroupsDeleteNodesCall {
105068	c.urlParams_.Set("fields", googleapi.CombineFields(s))
105069	return c
105070}
105071
105072// Context sets the context to be used in this call's Do method. Any
105073// pending HTTP request will be aborted if the provided context is
105074// canceled.
105075func (c *NodeGroupsDeleteNodesCall) Context(ctx context.Context) *NodeGroupsDeleteNodesCall {
105076	c.ctx_ = ctx
105077	return c
105078}
105079
105080// Header returns an http.Header that can be modified by the caller to
105081// add HTTP headers to the request.
105082func (c *NodeGroupsDeleteNodesCall) Header() http.Header {
105083	if c.header_ == nil {
105084		c.header_ = make(http.Header)
105085	}
105086	return c.header_
105087}
105088
105089func (c *NodeGroupsDeleteNodesCall) doRequest(alt string) (*http.Response, error) {
105090	reqHeaders := make(http.Header)
105091	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
105092	for k, v := range c.header_ {
105093		reqHeaders[k] = v
105094	}
105095	reqHeaders.Set("User-Agent", c.s.userAgent())
105096	var body io.Reader = nil
105097	body, err := googleapi.WithoutDataWrapper.JSONReader(c.nodegroupsdeletenodesrequest)
105098	if err != nil {
105099		return nil, err
105100	}
105101	reqHeaders.Set("Content-Type", "application/json")
105102	c.urlParams_.Set("alt", alt)
105103	c.urlParams_.Set("prettyPrint", "false")
105104	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/nodeGroups/{nodeGroup}/deleteNodes")
105105	urls += "?" + c.urlParams_.Encode()
105106	req, err := http.NewRequest("POST", urls, body)
105107	if err != nil {
105108		return nil, err
105109	}
105110	req.Header = reqHeaders
105111	googleapi.Expand(req.URL, map[string]string{
105112		"project":   c.project,
105113		"zone":      c.zone,
105114		"nodeGroup": c.nodeGroup,
105115	})
105116	return gensupport.SendRequest(c.ctx_, c.s.client, req)
105117}
105118
105119// Do executes the "compute.nodeGroups.deleteNodes" call.
105120// Exactly one of *Operation or error will be non-nil. Any non-2xx
105121// status code is an error. Response headers are in either
105122// *Operation.ServerResponse.Header or (if a response was returned at
105123// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
105124// to check whether the returned error was because
105125// http.StatusNotModified was returned.
105126func (c *NodeGroupsDeleteNodesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
105127	gensupport.SetOptions(c.urlParams_, opts...)
105128	res, err := c.doRequest("json")
105129	if res != nil && res.StatusCode == http.StatusNotModified {
105130		if res.Body != nil {
105131			res.Body.Close()
105132		}
105133		return nil, &googleapi.Error{
105134			Code:   res.StatusCode,
105135			Header: res.Header,
105136		}
105137	}
105138	if err != nil {
105139		return nil, err
105140	}
105141	defer googleapi.CloseBody(res)
105142	if err := googleapi.CheckResponse(res); err != nil {
105143		return nil, err
105144	}
105145	ret := &Operation{
105146		ServerResponse: googleapi.ServerResponse{
105147			Header:         res.Header,
105148			HTTPStatusCode: res.StatusCode,
105149		},
105150	}
105151	target := &ret
105152	if err := gensupport.DecodeResponse(target, res); err != nil {
105153		return nil, err
105154	}
105155	return ret, nil
105156	// {
105157	//   "description": "Deletes specified nodes from the node group. (== suppress_warning http-rest-shadowed ==)",
105158	//   "httpMethod": "POST",
105159	//   "id": "compute.nodeGroups.deleteNodes",
105160	//   "parameterOrder": [
105161	//     "project",
105162	//     "zone",
105163	//     "nodeGroup"
105164	//   ],
105165	//   "parameters": {
105166	//     "nodeGroup": {
105167	//       "description": "Name of the NodeGroup resource whose nodes will be deleted.",
105168	//       "location": "path",
105169	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
105170	//       "required": true,
105171	//       "type": "string"
105172	//     },
105173	//     "project": {
105174	//       "description": "Project ID for this request.",
105175	//       "location": "path",
105176	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
105177	//       "required": true,
105178	//       "type": "string"
105179	//     },
105180	//     "requestId": {
105181	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
105182	//       "location": "query",
105183	//       "type": "string"
105184	//     },
105185	//     "zone": {
105186	//       "description": "The name of the zone for this request.",
105187	//       "location": "path",
105188	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
105189	//       "required": true,
105190	//       "type": "string"
105191	//     }
105192	//   },
105193	//   "path": "{project}/zones/{zone}/nodeGroups/{nodeGroup}/deleteNodes",
105194	//   "request": {
105195	//     "$ref": "NodeGroupsDeleteNodesRequest"
105196	//   },
105197	//   "response": {
105198	//     "$ref": "Operation"
105199	//   },
105200	//   "scopes": [
105201	//     "https://www.googleapis.com/auth/cloud-platform",
105202	//     "https://www.googleapis.com/auth/compute"
105203	//   ]
105204	// }
105205
105206}
105207
105208// method id "compute.nodeGroups.get":
105209
105210type NodeGroupsGetCall struct {
105211	s            *Service
105212	project      string
105213	zone         string
105214	nodeGroup    string
105215	urlParams_   gensupport.URLParams
105216	ifNoneMatch_ string
105217	ctx_         context.Context
105218	header_      http.Header
105219}
105220
105221// Get: Returns the specified NodeGroup. Get a list of available
105222// NodeGroups by making a list() request. Note: the "nodes" field should
105223// not be used. Use nodeGroups.listNodes instead. (== suppress_warning
105224// http-rest-shadowed ==)
105225func (r *NodeGroupsService) Get(project string, zone string, nodeGroup string) *NodeGroupsGetCall {
105226	c := &NodeGroupsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
105227	c.project = project
105228	c.zone = zone
105229	c.nodeGroup = nodeGroup
105230	return c
105231}
105232
105233// Fields allows partial responses to be retrieved. See
105234// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
105235// for more information.
105236func (c *NodeGroupsGetCall) Fields(s ...googleapi.Field) *NodeGroupsGetCall {
105237	c.urlParams_.Set("fields", googleapi.CombineFields(s))
105238	return c
105239}
105240
105241// IfNoneMatch sets the optional parameter which makes the operation
105242// fail if the object's ETag matches the given value. This is useful for
105243// getting updates only after the object has changed since the last
105244// request. Use googleapi.IsNotModified to check whether the response
105245// error from Do is the result of In-None-Match.
105246func (c *NodeGroupsGetCall) IfNoneMatch(entityTag string) *NodeGroupsGetCall {
105247	c.ifNoneMatch_ = entityTag
105248	return c
105249}
105250
105251// Context sets the context to be used in this call's Do method. Any
105252// pending HTTP request will be aborted if the provided context is
105253// canceled.
105254func (c *NodeGroupsGetCall) Context(ctx context.Context) *NodeGroupsGetCall {
105255	c.ctx_ = ctx
105256	return c
105257}
105258
105259// Header returns an http.Header that can be modified by the caller to
105260// add HTTP headers to the request.
105261func (c *NodeGroupsGetCall) Header() http.Header {
105262	if c.header_ == nil {
105263		c.header_ = make(http.Header)
105264	}
105265	return c.header_
105266}
105267
105268func (c *NodeGroupsGetCall) doRequest(alt string) (*http.Response, error) {
105269	reqHeaders := make(http.Header)
105270	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
105271	for k, v := range c.header_ {
105272		reqHeaders[k] = v
105273	}
105274	reqHeaders.Set("User-Agent", c.s.userAgent())
105275	if c.ifNoneMatch_ != "" {
105276		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
105277	}
105278	var body io.Reader = nil
105279	c.urlParams_.Set("alt", alt)
105280	c.urlParams_.Set("prettyPrint", "false")
105281	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/nodeGroups/{nodeGroup}")
105282	urls += "?" + c.urlParams_.Encode()
105283	req, err := http.NewRequest("GET", urls, body)
105284	if err != nil {
105285		return nil, err
105286	}
105287	req.Header = reqHeaders
105288	googleapi.Expand(req.URL, map[string]string{
105289		"project":   c.project,
105290		"zone":      c.zone,
105291		"nodeGroup": c.nodeGroup,
105292	})
105293	return gensupport.SendRequest(c.ctx_, c.s.client, req)
105294}
105295
105296// Do executes the "compute.nodeGroups.get" call.
105297// Exactly one of *NodeGroup or error will be non-nil. Any non-2xx
105298// status code is an error. Response headers are in either
105299// *NodeGroup.ServerResponse.Header or (if a response was returned at
105300// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
105301// to check whether the returned error was because
105302// http.StatusNotModified was returned.
105303func (c *NodeGroupsGetCall) Do(opts ...googleapi.CallOption) (*NodeGroup, error) {
105304	gensupport.SetOptions(c.urlParams_, opts...)
105305	res, err := c.doRequest("json")
105306	if res != nil && res.StatusCode == http.StatusNotModified {
105307		if res.Body != nil {
105308			res.Body.Close()
105309		}
105310		return nil, &googleapi.Error{
105311			Code:   res.StatusCode,
105312			Header: res.Header,
105313		}
105314	}
105315	if err != nil {
105316		return nil, err
105317	}
105318	defer googleapi.CloseBody(res)
105319	if err := googleapi.CheckResponse(res); err != nil {
105320		return nil, err
105321	}
105322	ret := &NodeGroup{
105323		ServerResponse: googleapi.ServerResponse{
105324			Header:         res.Header,
105325			HTTPStatusCode: res.StatusCode,
105326		},
105327	}
105328	target := &ret
105329	if err := gensupport.DecodeResponse(target, res); err != nil {
105330		return nil, err
105331	}
105332	return ret, nil
105333	// {
105334	//   "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. (== suppress_warning http-rest-shadowed ==)",
105335	//   "httpMethod": "GET",
105336	//   "id": "compute.nodeGroups.get",
105337	//   "parameterOrder": [
105338	//     "project",
105339	//     "zone",
105340	//     "nodeGroup"
105341	//   ],
105342	//   "parameters": {
105343	//     "nodeGroup": {
105344	//       "description": "Name of the node group to return.",
105345	//       "location": "path",
105346	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
105347	//       "required": true,
105348	//       "type": "string"
105349	//     },
105350	//     "project": {
105351	//       "description": "Project ID for this request.",
105352	//       "location": "path",
105353	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
105354	//       "required": true,
105355	//       "type": "string"
105356	//     },
105357	//     "zone": {
105358	//       "description": "The name of the zone for this request.",
105359	//       "location": "path",
105360	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
105361	//       "required": true,
105362	//       "type": "string"
105363	//     }
105364	//   },
105365	//   "path": "{project}/zones/{zone}/nodeGroups/{nodeGroup}",
105366	//   "response": {
105367	//     "$ref": "NodeGroup"
105368	//   },
105369	//   "scopes": [
105370	//     "https://www.googleapis.com/auth/cloud-platform",
105371	//     "https://www.googleapis.com/auth/compute",
105372	//     "https://www.googleapis.com/auth/compute.readonly"
105373	//   ]
105374	// }
105375
105376}
105377
105378// method id "compute.nodeGroups.getIamPolicy":
105379
105380type NodeGroupsGetIamPolicyCall struct {
105381	s            *Service
105382	project      string
105383	zone         string
105384	resource     string
105385	urlParams_   gensupport.URLParams
105386	ifNoneMatch_ string
105387	ctx_         context.Context
105388	header_      http.Header
105389}
105390
105391// GetIamPolicy: Gets the access control policy for a resource. May be
105392// empty if no such policy or resource exists. (== suppress_warning
105393// http-rest-shadowed ==)
105394func (r *NodeGroupsService) GetIamPolicy(project string, zone string, resource string) *NodeGroupsGetIamPolicyCall {
105395	c := &NodeGroupsGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
105396	c.project = project
105397	c.zone = zone
105398	c.resource = resource
105399	return c
105400}
105401
105402// OptionsRequestedPolicyVersion sets the optional parameter
105403// "optionsRequestedPolicyVersion": Requested IAM Policy version.
105404func (c *NodeGroupsGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *NodeGroupsGetIamPolicyCall {
105405	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
105406	return c
105407}
105408
105409// Fields allows partial responses to be retrieved. See
105410// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
105411// for more information.
105412func (c *NodeGroupsGetIamPolicyCall) Fields(s ...googleapi.Field) *NodeGroupsGetIamPolicyCall {
105413	c.urlParams_.Set("fields", googleapi.CombineFields(s))
105414	return c
105415}
105416
105417// IfNoneMatch sets the optional parameter which makes the operation
105418// fail if the object's ETag matches the given value. This is useful for
105419// getting updates only after the object has changed since the last
105420// request. Use googleapi.IsNotModified to check whether the response
105421// error from Do is the result of In-None-Match.
105422func (c *NodeGroupsGetIamPolicyCall) IfNoneMatch(entityTag string) *NodeGroupsGetIamPolicyCall {
105423	c.ifNoneMatch_ = entityTag
105424	return c
105425}
105426
105427// Context sets the context to be used in this call's Do method. Any
105428// pending HTTP request will be aborted if the provided context is
105429// canceled.
105430func (c *NodeGroupsGetIamPolicyCall) Context(ctx context.Context) *NodeGroupsGetIamPolicyCall {
105431	c.ctx_ = ctx
105432	return c
105433}
105434
105435// Header returns an http.Header that can be modified by the caller to
105436// add HTTP headers to the request.
105437func (c *NodeGroupsGetIamPolicyCall) Header() http.Header {
105438	if c.header_ == nil {
105439		c.header_ = make(http.Header)
105440	}
105441	return c.header_
105442}
105443
105444func (c *NodeGroupsGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
105445	reqHeaders := make(http.Header)
105446	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
105447	for k, v := range c.header_ {
105448		reqHeaders[k] = v
105449	}
105450	reqHeaders.Set("User-Agent", c.s.userAgent())
105451	if c.ifNoneMatch_ != "" {
105452		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
105453	}
105454	var body io.Reader = nil
105455	c.urlParams_.Set("alt", alt)
105456	c.urlParams_.Set("prettyPrint", "false")
105457	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/nodeGroups/{resource}/getIamPolicy")
105458	urls += "?" + c.urlParams_.Encode()
105459	req, err := http.NewRequest("GET", urls, body)
105460	if err != nil {
105461		return nil, err
105462	}
105463	req.Header = reqHeaders
105464	googleapi.Expand(req.URL, map[string]string{
105465		"project":  c.project,
105466		"zone":     c.zone,
105467		"resource": c.resource,
105468	})
105469	return gensupport.SendRequest(c.ctx_, c.s.client, req)
105470}
105471
105472// Do executes the "compute.nodeGroups.getIamPolicy" call.
105473// Exactly one of *Policy or error will be non-nil. Any non-2xx status
105474// code is an error. Response headers are in either
105475// *Policy.ServerResponse.Header or (if a response was returned at all)
105476// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
105477// check whether the returned error was because http.StatusNotModified
105478// was returned.
105479func (c *NodeGroupsGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
105480	gensupport.SetOptions(c.urlParams_, opts...)
105481	res, err := c.doRequest("json")
105482	if res != nil && res.StatusCode == http.StatusNotModified {
105483		if res.Body != nil {
105484			res.Body.Close()
105485		}
105486		return nil, &googleapi.Error{
105487			Code:   res.StatusCode,
105488			Header: res.Header,
105489		}
105490	}
105491	if err != nil {
105492		return nil, err
105493	}
105494	defer googleapi.CloseBody(res)
105495	if err := googleapi.CheckResponse(res); err != nil {
105496		return nil, err
105497	}
105498	ret := &Policy{
105499		ServerResponse: googleapi.ServerResponse{
105500			Header:         res.Header,
105501			HTTPStatusCode: res.StatusCode,
105502		},
105503	}
105504	target := &ret
105505	if err := gensupport.DecodeResponse(target, res); err != nil {
105506		return nil, err
105507	}
105508	return ret, nil
105509	// {
105510	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists. (== suppress_warning http-rest-shadowed ==)",
105511	//   "httpMethod": "GET",
105512	//   "id": "compute.nodeGroups.getIamPolicy",
105513	//   "parameterOrder": [
105514	//     "project",
105515	//     "zone",
105516	//     "resource"
105517	//   ],
105518	//   "parameters": {
105519	//     "optionsRequestedPolicyVersion": {
105520	//       "description": "Requested IAM Policy version.",
105521	//       "format": "int32",
105522	//       "location": "query",
105523	//       "type": "integer"
105524	//     },
105525	//     "project": {
105526	//       "description": "Project ID for this request.",
105527	//       "location": "path",
105528	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
105529	//       "required": true,
105530	//       "type": "string"
105531	//     },
105532	//     "resource": {
105533	//       "description": "Name or id of the resource for this request.",
105534	//       "location": "path",
105535	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
105536	//       "required": true,
105537	//       "type": "string"
105538	//     },
105539	//     "zone": {
105540	//       "description": "The name of the zone for this request.",
105541	//       "location": "path",
105542	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
105543	//       "required": true,
105544	//       "type": "string"
105545	//     }
105546	//   },
105547	//   "path": "{project}/zones/{zone}/nodeGroups/{resource}/getIamPolicy",
105548	//   "response": {
105549	//     "$ref": "Policy"
105550	//   },
105551	//   "scopes": [
105552	//     "https://www.googleapis.com/auth/cloud-platform",
105553	//     "https://www.googleapis.com/auth/compute",
105554	//     "https://www.googleapis.com/auth/compute.readonly"
105555	//   ]
105556	// }
105557
105558}
105559
105560// method id "compute.nodeGroups.insert":
105561
105562type NodeGroupsInsertCall struct {
105563	s          *Service
105564	project    string
105565	zone       string
105566	nodegroup  *NodeGroup
105567	urlParams_ gensupport.URLParams
105568	ctx_       context.Context
105569	header_    http.Header
105570}
105571
105572// Insert: Creates a NodeGroup resource in the specified project using
105573// the data included in the request. (== suppress_warning
105574// http-rest-shadowed ==)
105575func (r *NodeGroupsService) Insert(project string, zone string, initialNodeCount int64, nodegroup *NodeGroup) *NodeGroupsInsertCall {
105576	c := &NodeGroupsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
105577	c.project = project
105578	c.zone = zone
105579	c.urlParams_.Set("initialNodeCount", fmt.Sprint(initialNodeCount))
105580	c.nodegroup = nodegroup
105581	return c
105582}
105583
105584// RequestId sets the optional parameter "requestId": An optional
105585// request ID to identify requests. Specify a unique request ID so that
105586// if you must retry your request, the server will know to ignore the
105587// request if it has already been completed.
105588//
105589// For example, consider a situation where you make an initial request
105590// and the request times out. If you make the request again with the
105591// same request ID, the server can check if original operation with the
105592// same request ID was received, and if so, will ignore the second
105593// request. This prevents clients from accidentally creating duplicate
105594// commitments.
105595//
105596// The request ID must be a valid UUID with the exception that zero UUID
105597// is not supported (00000000-0000-0000-0000-000000000000).
105598func (c *NodeGroupsInsertCall) RequestId(requestId string) *NodeGroupsInsertCall {
105599	c.urlParams_.Set("requestId", requestId)
105600	return c
105601}
105602
105603// Fields allows partial responses to be retrieved. See
105604// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
105605// for more information.
105606func (c *NodeGroupsInsertCall) Fields(s ...googleapi.Field) *NodeGroupsInsertCall {
105607	c.urlParams_.Set("fields", googleapi.CombineFields(s))
105608	return c
105609}
105610
105611// Context sets the context to be used in this call's Do method. Any
105612// pending HTTP request will be aborted if the provided context is
105613// canceled.
105614func (c *NodeGroupsInsertCall) Context(ctx context.Context) *NodeGroupsInsertCall {
105615	c.ctx_ = ctx
105616	return c
105617}
105618
105619// Header returns an http.Header that can be modified by the caller to
105620// add HTTP headers to the request.
105621func (c *NodeGroupsInsertCall) Header() http.Header {
105622	if c.header_ == nil {
105623		c.header_ = make(http.Header)
105624	}
105625	return c.header_
105626}
105627
105628func (c *NodeGroupsInsertCall) doRequest(alt string) (*http.Response, error) {
105629	reqHeaders := make(http.Header)
105630	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
105631	for k, v := range c.header_ {
105632		reqHeaders[k] = v
105633	}
105634	reqHeaders.Set("User-Agent", c.s.userAgent())
105635	var body io.Reader = nil
105636	body, err := googleapi.WithoutDataWrapper.JSONReader(c.nodegroup)
105637	if err != nil {
105638		return nil, err
105639	}
105640	reqHeaders.Set("Content-Type", "application/json")
105641	c.urlParams_.Set("alt", alt)
105642	c.urlParams_.Set("prettyPrint", "false")
105643	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/nodeGroups")
105644	urls += "?" + c.urlParams_.Encode()
105645	req, err := http.NewRequest("POST", urls, body)
105646	if err != nil {
105647		return nil, err
105648	}
105649	req.Header = reqHeaders
105650	googleapi.Expand(req.URL, map[string]string{
105651		"project": c.project,
105652		"zone":    c.zone,
105653	})
105654	return gensupport.SendRequest(c.ctx_, c.s.client, req)
105655}
105656
105657// Do executes the "compute.nodeGroups.insert" call.
105658// Exactly one of *Operation or error will be non-nil. Any non-2xx
105659// status code is an error. Response headers are in either
105660// *Operation.ServerResponse.Header or (if a response was returned at
105661// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
105662// to check whether the returned error was because
105663// http.StatusNotModified was returned.
105664func (c *NodeGroupsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
105665	gensupport.SetOptions(c.urlParams_, opts...)
105666	res, err := c.doRequest("json")
105667	if res != nil && res.StatusCode == http.StatusNotModified {
105668		if res.Body != nil {
105669			res.Body.Close()
105670		}
105671		return nil, &googleapi.Error{
105672			Code:   res.StatusCode,
105673			Header: res.Header,
105674		}
105675	}
105676	if err != nil {
105677		return nil, err
105678	}
105679	defer googleapi.CloseBody(res)
105680	if err := googleapi.CheckResponse(res); err != nil {
105681		return nil, err
105682	}
105683	ret := &Operation{
105684		ServerResponse: googleapi.ServerResponse{
105685			Header:         res.Header,
105686			HTTPStatusCode: res.StatusCode,
105687		},
105688	}
105689	target := &ret
105690	if err := gensupport.DecodeResponse(target, res); err != nil {
105691		return nil, err
105692	}
105693	return ret, nil
105694	// {
105695	//   "description": "Creates a NodeGroup resource in the specified project using the data included in the request. (== suppress_warning http-rest-shadowed ==)",
105696	//   "httpMethod": "POST",
105697	//   "id": "compute.nodeGroups.insert",
105698	//   "parameterOrder": [
105699	//     "project",
105700	//     "zone",
105701	//     "initialNodeCount"
105702	//   ],
105703	//   "parameters": {
105704	//     "initialNodeCount": {
105705	//       "description": "Initial count of nodes in the node group.",
105706	//       "format": "int32",
105707	//       "location": "query",
105708	//       "required": true,
105709	//       "type": "integer"
105710	//     },
105711	//     "project": {
105712	//       "description": "Project ID for this request.",
105713	//       "location": "path",
105714	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
105715	//       "required": true,
105716	//       "type": "string"
105717	//     },
105718	//     "requestId": {
105719	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
105720	//       "location": "query",
105721	//       "type": "string"
105722	//     },
105723	//     "zone": {
105724	//       "description": "The name of the zone for this request.",
105725	//       "location": "path",
105726	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
105727	//       "required": true,
105728	//       "type": "string"
105729	//     }
105730	//   },
105731	//   "path": "{project}/zones/{zone}/nodeGroups",
105732	//   "request": {
105733	//     "$ref": "NodeGroup"
105734	//   },
105735	//   "response": {
105736	//     "$ref": "Operation"
105737	//   },
105738	//   "scopes": [
105739	//     "https://www.googleapis.com/auth/cloud-platform",
105740	//     "https://www.googleapis.com/auth/compute"
105741	//   ]
105742	// }
105743
105744}
105745
105746// method id "compute.nodeGroups.list":
105747
105748type NodeGroupsListCall struct {
105749	s            *Service
105750	project      string
105751	zone         string
105752	urlParams_   gensupport.URLParams
105753	ifNoneMatch_ string
105754	ctx_         context.Context
105755	header_      http.Header
105756}
105757
105758// List: Retrieves a list of node groups available to the specified
105759// project. Note: use nodeGroups.listNodes for more details about each
105760// group. (== suppress_warning http-rest-shadowed ==)
105761func (r *NodeGroupsService) List(project string, zone string) *NodeGroupsListCall {
105762	c := &NodeGroupsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
105763	c.project = project
105764	c.zone = zone
105765	return c
105766}
105767
105768// Filter sets the optional parameter "filter": A filter expression that
105769// filters resources listed in the response. The expression must specify
105770// the field name, a comparison operator, and the value that you want to
105771// use for filtering. The value must be a string, a number, or a
105772// boolean. The comparison operator must be either =, !=, >, or <.
105773//
105774// For example, if you are filtering Compute Engine instances, you can
105775// exclude instances named example-instance by specifying name !=
105776// example-instance.
105777//
105778// You can also filter nested fields. For example, you could specify
105779// scheduling.automaticRestart = false to include instances only if they
105780// are not scheduled for automatic restarts. You can use filtering on
105781// nested fields to filter based on resource labels.
105782//
105783// To filter on multiple expressions, provide each separate expression
105784// within parentheses. For example, (scheduling.automaticRestart = true)
105785// (cpuPlatform = "Intel Skylake"). By default, each expression is an
105786// AND expression. However, you can include AND and OR expressions
105787// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
105788// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
105789// true).
105790func (c *NodeGroupsListCall) Filter(filter string) *NodeGroupsListCall {
105791	c.urlParams_.Set("filter", filter)
105792	return c
105793}
105794
105795// MaxResults sets the optional parameter "maxResults": The maximum
105796// number of results per page that should be returned. If the number of
105797// available results is larger than maxResults, Compute Engine returns a
105798// nextPageToken that can be used to get the next page of results in
105799// subsequent list requests. Acceptable values are 0 to 500, inclusive.
105800// (Default: 500)
105801func (c *NodeGroupsListCall) MaxResults(maxResults int64) *NodeGroupsListCall {
105802	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
105803	return c
105804}
105805
105806// OrderBy sets the optional parameter "orderBy": Sorts list results by
105807// a certain order. By default, results are returned in alphanumerical
105808// order based on the resource name.
105809//
105810// You can also sort results in descending order based on the creation
105811// timestamp using orderBy="creationTimestamp desc". This sorts results
105812// based on the creationTimestamp field in reverse chronological order
105813// (newest result first). Use this to sort resources like operations so
105814// that the newest operation is returned first.
105815//
105816// Currently, only sorting by name or creationTimestamp desc is
105817// supported.
105818func (c *NodeGroupsListCall) OrderBy(orderBy string) *NodeGroupsListCall {
105819	c.urlParams_.Set("orderBy", orderBy)
105820	return c
105821}
105822
105823// PageToken sets the optional parameter "pageToken": Specifies a page
105824// token to use. Set pageToken to the nextPageToken returned by a
105825// previous list request to get the next page of results.
105826func (c *NodeGroupsListCall) PageToken(pageToken string) *NodeGroupsListCall {
105827	c.urlParams_.Set("pageToken", pageToken)
105828	return c
105829}
105830
105831// Fields allows partial responses to be retrieved. See
105832// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
105833// for more information.
105834func (c *NodeGroupsListCall) Fields(s ...googleapi.Field) *NodeGroupsListCall {
105835	c.urlParams_.Set("fields", googleapi.CombineFields(s))
105836	return c
105837}
105838
105839// IfNoneMatch sets the optional parameter which makes the operation
105840// fail if the object's ETag matches the given value. This is useful for
105841// getting updates only after the object has changed since the last
105842// request. Use googleapi.IsNotModified to check whether the response
105843// error from Do is the result of In-None-Match.
105844func (c *NodeGroupsListCall) IfNoneMatch(entityTag string) *NodeGroupsListCall {
105845	c.ifNoneMatch_ = entityTag
105846	return c
105847}
105848
105849// Context sets the context to be used in this call's Do method. Any
105850// pending HTTP request will be aborted if the provided context is
105851// canceled.
105852func (c *NodeGroupsListCall) Context(ctx context.Context) *NodeGroupsListCall {
105853	c.ctx_ = ctx
105854	return c
105855}
105856
105857// Header returns an http.Header that can be modified by the caller to
105858// add HTTP headers to the request.
105859func (c *NodeGroupsListCall) Header() http.Header {
105860	if c.header_ == nil {
105861		c.header_ = make(http.Header)
105862	}
105863	return c.header_
105864}
105865
105866func (c *NodeGroupsListCall) doRequest(alt string) (*http.Response, error) {
105867	reqHeaders := make(http.Header)
105868	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
105869	for k, v := range c.header_ {
105870		reqHeaders[k] = v
105871	}
105872	reqHeaders.Set("User-Agent", c.s.userAgent())
105873	if c.ifNoneMatch_ != "" {
105874		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
105875	}
105876	var body io.Reader = nil
105877	c.urlParams_.Set("alt", alt)
105878	c.urlParams_.Set("prettyPrint", "false")
105879	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/nodeGroups")
105880	urls += "?" + c.urlParams_.Encode()
105881	req, err := http.NewRequest("GET", urls, body)
105882	if err != nil {
105883		return nil, err
105884	}
105885	req.Header = reqHeaders
105886	googleapi.Expand(req.URL, map[string]string{
105887		"project": c.project,
105888		"zone":    c.zone,
105889	})
105890	return gensupport.SendRequest(c.ctx_, c.s.client, req)
105891}
105892
105893// Do executes the "compute.nodeGroups.list" call.
105894// Exactly one of *NodeGroupList or error will be non-nil. Any non-2xx
105895// status code is an error. Response headers are in either
105896// *NodeGroupList.ServerResponse.Header or (if a response was returned
105897// at all) in error.(*googleapi.Error).Header. Use
105898// googleapi.IsNotModified to check whether the returned error was
105899// because http.StatusNotModified was returned.
105900func (c *NodeGroupsListCall) Do(opts ...googleapi.CallOption) (*NodeGroupList, error) {
105901	gensupport.SetOptions(c.urlParams_, opts...)
105902	res, err := c.doRequest("json")
105903	if res != nil && res.StatusCode == http.StatusNotModified {
105904		if res.Body != nil {
105905			res.Body.Close()
105906		}
105907		return nil, &googleapi.Error{
105908			Code:   res.StatusCode,
105909			Header: res.Header,
105910		}
105911	}
105912	if err != nil {
105913		return nil, err
105914	}
105915	defer googleapi.CloseBody(res)
105916	if err := googleapi.CheckResponse(res); err != nil {
105917		return nil, err
105918	}
105919	ret := &NodeGroupList{
105920		ServerResponse: googleapi.ServerResponse{
105921			Header:         res.Header,
105922			HTTPStatusCode: res.StatusCode,
105923		},
105924	}
105925	target := &ret
105926	if err := gensupport.DecodeResponse(target, res); err != nil {
105927		return nil, err
105928	}
105929	return ret, nil
105930	// {
105931	//   "description": "Retrieves a list of node groups available to the specified project. Note: use nodeGroups.listNodes for more details about each group. (== suppress_warning http-rest-shadowed ==)",
105932	//   "httpMethod": "GET",
105933	//   "id": "compute.nodeGroups.list",
105934	//   "parameterOrder": [
105935	//     "project",
105936	//     "zone"
105937	//   ],
105938	//   "parameters": {
105939	//     "filter": {
105940	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
105941	//       "location": "query",
105942	//       "type": "string"
105943	//     },
105944	//     "maxResults": {
105945	//       "default": "500",
105946	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
105947	//       "format": "uint32",
105948	//       "location": "query",
105949	//       "minimum": "0",
105950	//       "type": "integer"
105951	//     },
105952	//     "orderBy": {
105953	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
105954	//       "location": "query",
105955	//       "type": "string"
105956	//     },
105957	//     "pageToken": {
105958	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
105959	//       "location": "query",
105960	//       "type": "string"
105961	//     },
105962	//     "project": {
105963	//       "description": "Project ID for this request.",
105964	//       "location": "path",
105965	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
105966	//       "required": true,
105967	//       "type": "string"
105968	//     },
105969	//     "zone": {
105970	//       "description": "The name of the zone for this request.",
105971	//       "location": "path",
105972	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
105973	//       "required": true,
105974	//       "type": "string"
105975	//     }
105976	//   },
105977	//   "path": "{project}/zones/{zone}/nodeGroups",
105978	//   "response": {
105979	//     "$ref": "NodeGroupList"
105980	//   },
105981	//   "scopes": [
105982	//     "https://www.googleapis.com/auth/cloud-platform",
105983	//     "https://www.googleapis.com/auth/compute",
105984	//     "https://www.googleapis.com/auth/compute.readonly"
105985	//   ]
105986	// }
105987
105988}
105989
105990// Pages invokes f for each page of results.
105991// A non-nil error returned from f will halt the iteration.
105992// The provided context supersedes any context provided to the Context method.
105993func (c *NodeGroupsListCall) Pages(ctx context.Context, f func(*NodeGroupList) error) error {
105994	c.ctx_ = ctx
105995	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
105996	for {
105997		x, err := c.Do()
105998		if err != nil {
105999			return err
106000		}
106001		if err := f(x); err != nil {
106002			return err
106003		}
106004		if x.NextPageToken == "" {
106005			return nil
106006		}
106007		c.PageToken(x.NextPageToken)
106008	}
106009}
106010
106011// method id "compute.nodeGroups.listNodes":
106012
106013type NodeGroupsListNodesCall struct {
106014	s          *Service
106015	project    string
106016	zone       string
106017	nodeGroup  string
106018	urlParams_ gensupport.URLParams
106019	ctx_       context.Context
106020	header_    http.Header
106021}
106022
106023// ListNodes: Lists nodes in the node group. (== suppress_warning
106024// http-rest-shadowed ==)
106025func (r *NodeGroupsService) ListNodes(project string, zone string, nodeGroup string) *NodeGroupsListNodesCall {
106026	c := &NodeGroupsListNodesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
106027	c.project = project
106028	c.zone = zone
106029	c.nodeGroup = nodeGroup
106030	return c
106031}
106032
106033// Filter sets the optional parameter "filter": A filter expression that
106034// filters resources listed in the response. The expression must specify
106035// the field name, a comparison operator, and the value that you want to
106036// use for filtering. The value must be a string, a number, or a
106037// boolean. The comparison operator must be either =, !=, >, or <.
106038//
106039// For example, if you are filtering Compute Engine instances, you can
106040// exclude instances named example-instance by specifying name !=
106041// example-instance.
106042//
106043// You can also filter nested fields. For example, you could specify
106044// scheduling.automaticRestart = false to include instances only if they
106045// are not scheduled for automatic restarts. You can use filtering on
106046// nested fields to filter based on resource labels.
106047//
106048// To filter on multiple expressions, provide each separate expression
106049// within parentheses. For example, (scheduling.automaticRestart = true)
106050// (cpuPlatform = "Intel Skylake"). By default, each expression is an
106051// AND expression. However, you can include AND and OR expressions
106052// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
106053// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
106054// true).
106055func (c *NodeGroupsListNodesCall) Filter(filter string) *NodeGroupsListNodesCall {
106056	c.urlParams_.Set("filter", filter)
106057	return c
106058}
106059
106060// MaxResults sets the optional parameter "maxResults": The maximum
106061// number of results per page that should be returned. If the number of
106062// available results is larger than maxResults, Compute Engine returns a
106063// nextPageToken that can be used to get the next page of results in
106064// subsequent list requests. Acceptable values are 0 to 500, inclusive.
106065// (Default: 500)
106066func (c *NodeGroupsListNodesCall) MaxResults(maxResults int64) *NodeGroupsListNodesCall {
106067	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
106068	return c
106069}
106070
106071// OrderBy sets the optional parameter "orderBy": Sorts list results by
106072// a certain order. By default, results are returned in alphanumerical
106073// order based on the resource name.
106074//
106075// You can also sort results in descending order based on the creation
106076// timestamp using orderBy="creationTimestamp desc". This sorts results
106077// based on the creationTimestamp field in reverse chronological order
106078// (newest result first). Use this to sort resources like operations so
106079// that the newest operation is returned first.
106080//
106081// Currently, only sorting by name or creationTimestamp desc is
106082// supported.
106083func (c *NodeGroupsListNodesCall) OrderBy(orderBy string) *NodeGroupsListNodesCall {
106084	c.urlParams_.Set("orderBy", orderBy)
106085	return c
106086}
106087
106088// PageToken sets the optional parameter "pageToken": Specifies a page
106089// token to use. Set pageToken to the nextPageToken returned by a
106090// previous list request to get the next page of results.
106091func (c *NodeGroupsListNodesCall) PageToken(pageToken string) *NodeGroupsListNodesCall {
106092	c.urlParams_.Set("pageToken", pageToken)
106093	return c
106094}
106095
106096// Fields allows partial responses to be retrieved. See
106097// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
106098// for more information.
106099func (c *NodeGroupsListNodesCall) Fields(s ...googleapi.Field) *NodeGroupsListNodesCall {
106100	c.urlParams_.Set("fields", googleapi.CombineFields(s))
106101	return c
106102}
106103
106104// Context sets the context to be used in this call's Do method. Any
106105// pending HTTP request will be aborted if the provided context is
106106// canceled.
106107func (c *NodeGroupsListNodesCall) Context(ctx context.Context) *NodeGroupsListNodesCall {
106108	c.ctx_ = ctx
106109	return c
106110}
106111
106112// Header returns an http.Header that can be modified by the caller to
106113// add HTTP headers to the request.
106114func (c *NodeGroupsListNodesCall) Header() http.Header {
106115	if c.header_ == nil {
106116		c.header_ = make(http.Header)
106117	}
106118	return c.header_
106119}
106120
106121func (c *NodeGroupsListNodesCall) doRequest(alt string) (*http.Response, error) {
106122	reqHeaders := make(http.Header)
106123	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
106124	for k, v := range c.header_ {
106125		reqHeaders[k] = v
106126	}
106127	reqHeaders.Set("User-Agent", c.s.userAgent())
106128	var body io.Reader = nil
106129	c.urlParams_.Set("alt", alt)
106130	c.urlParams_.Set("prettyPrint", "false")
106131	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/nodeGroups/{nodeGroup}/listNodes")
106132	urls += "?" + c.urlParams_.Encode()
106133	req, err := http.NewRequest("POST", urls, body)
106134	if err != nil {
106135		return nil, err
106136	}
106137	req.Header = reqHeaders
106138	googleapi.Expand(req.URL, map[string]string{
106139		"project":   c.project,
106140		"zone":      c.zone,
106141		"nodeGroup": c.nodeGroup,
106142	})
106143	return gensupport.SendRequest(c.ctx_, c.s.client, req)
106144}
106145
106146// Do executes the "compute.nodeGroups.listNodes" call.
106147// Exactly one of *NodeGroupsListNodes or error will be non-nil. Any
106148// non-2xx status code is an error. Response headers are in either
106149// *NodeGroupsListNodes.ServerResponse.Header or (if a response was
106150// returned at all) in error.(*googleapi.Error).Header. Use
106151// googleapi.IsNotModified to check whether the returned error was
106152// because http.StatusNotModified was returned.
106153func (c *NodeGroupsListNodesCall) Do(opts ...googleapi.CallOption) (*NodeGroupsListNodes, error) {
106154	gensupport.SetOptions(c.urlParams_, opts...)
106155	res, err := c.doRequest("json")
106156	if res != nil && res.StatusCode == http.StatusNotModified {
106157		if res.Body != nil {
106158			res.Body.Close()
106159		}
106160		return nil, &googleapi.Error{
106161			Code:   res.StatusCode,
106162			Header: res.Header,
106163		}
106164	}
106165	if err != nil {
106166		return nil, err
106167	}
106168	defer googleapi.CloseBody(res)
106169	if err := googleapi.CheckResponse(res); err != nil {
106170		return nil, err
106171	}
106172	ret := &NodeGroupsListNodes{
106173		ServerResponse: googleapi.ServerResponse{
106174			Header:         res.Header,
106175			HTTPStatusCode: res.StatusCode,
106176		},
106177	}
106178	target := &ret
106179	if err := gensupport.DecodeResponse(target, res); err != nil {
106180		return nil, err
106181	}
106182	return ret, nil
106183	// {
106184	//   "description": "Lists nodes in the node group. (== suppress_warning http-rest-shadowed ==)",
106185	//   "httpMethod": "POST",
106186	//   "id": "compute.nodeGroups.listNodes",
106187	//   "parameterOrder": [
106188	//     "project",
106189	//     "zone",
106190	//     "nodeGroup"
106191	//   ],
106192	//   "parameters": {
106193	//     "filter": {
106194	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
106195	//       "location": "query",
106196	//       "type": "string"
106197	//     },
106198	//     "maxResults": {
106199	//       "default": "500",
106200	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
106201	//       "format": "uint32",
106202	//       "location": "query",
106203	//       "minimum": "0",
106204	//       "type": "integer"
106205	//     },
106206	//     "nodeGroup": {
106207	//       "description": "Name of the NodeGroup resource whose nodes you want to list.",
106208	//       "location": "path",
106209	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
106210	//       "required": true,
106211	//       "type": "string"
106212	//     },
106213	//     "orderBy": {
106214	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
106215	//       "location": "query",
106216	//       "type": "string"
106217	//     },
106218	//     "pageToken": {
106219	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
106220	//       "location": "query",
106221	//       "type": "string"
106222	//     },
106223	//     "project": {
106224	//       "description": "Project ID for this request.",
106225	//       "location": "path",
106226	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
106227	//       "required": true,
106228	//       "type": "string"
106229	//     },
106230	//     "zone": {
106231	//       "description": "The name of the zone for this request.",
106232	//       "location": "path",
106233	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
106234	//       "required": true,
106235	//       "type": "string"
106236	//     }
106237	//   },
106238	//   "path": "{project}/zones/{zone}/nodeGroups/{nodeGroup}/listNodes",
106239	//   "response": {
106240	//     "$ref": "NodeGroupsListNodes"
106241	//   },
106242	//   "scopes": [
106243	//     "https://www.googleapis.com/auth/cloud-platform",
106244	//     "https://www.googleapis.com/auth/compute",
106245	//     "https://www.googleapis.com/auth/compute.readonly"
106246	//   ]
106247	// }
106248
106249}
106250
106251// Pages invokes f for each page of results.
106252// A non-nil error returned from f will halt the iteration.
106253// The provided context supersedes any context provided to the Context method.
106254func (c *NodeGroupsListNodesCall) Pages(ctx context.Context, f func(*NodeGroupsListNodes) error) error {
106255	c.ctx_ = ctx
106256	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
106257	for {
106258		x, err := c.Do()
106259		if err != nil {
106260			return err
106261		}
106262		if err := f(x); err != nil {
106263			return err
106264		}
106265		if x.NextPageToken == "" {
106266			return nil
106267		}
106268		c.PageToken(x.NextPageToken)
106269	}
106270}
106271
106272// method id "compute.nodeGroups.patch":
106273
106274type NodeGroupsPatchCall struct {
106275	s          *Service
106276	project    string
106277	zone       string
106278	nodeGroup  string
106279	nodegroup  *NodeGroup
106280	urlParams_ gensupport.URLParams
106281	ctx_       context.Context
106282	header_    http.Header
106283}
106284
106285// Patch: Patch the node group. (== suppress_warning http-rest-shadowed
106286// ==)
106287func (r *NodeGroupsService) Patch(project string, zone string, nodeGroup string, nodegroup *NodeGroup) *NodeGroupsPatchCall {
106288	c := &NodeGroupsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
106289	c.project = project
106290	c.zone = zone
106291	c.nodeGroup = nodeGroup
106292	c.nodegroup = nodegroup
106293	return c
106294}
106295
106296// RequestId sets the optional parameter "requestId": An optional
106297// request ID to identify requests. Specify a unique request ID so that
106298// if you must retry your request, the server will know to ignore the
106299// request if it has already been completed.
106300//
106301// For example, consider a situation where you make an initial request
106302// and the request times out. If you make the request again with the
106303// same request ID, the server can check if original operation with the
106304// same request ID was received, and if so, will ignore the second
106305// request. This prevents clients from accidentally creating duplicate
106306// commitments.
106307//
106308// The request ID must be a valid UUID with the exception that zero UUID
106309// is not supported (00000000-0000-0000-0000-000000000000).
106310func (c *NodeGroupsPatchCall) RequestId(requestId string) *NodeGroupsPatchCall {
106311	c.urlParams_.Set("requestId", requestId)
106312	return c
106313}
106314
106315// Fields allows partial responses to be retrieved. See
106316// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
106317// for more information.
106318func (c *NodeGroupsPatchCall) Fields(s ...googleapi.Field) *NodeGroupsPatchCall {
106319	c.urlParams_.Set("fields", googleapi.CombineFields(s))
106320	return c
106321}
106322
106323// Context sets the context to be used in this call's Do method. Any
106324// pending HTTP request will be aborted if the provided context is
106325// canceled.
106326func (c *NodeGroupsPatchCall) Context(ctx context.Context) *NodeGroupsPatchCall {
106327	c.ctx_ = ctx
106328	return c
106329}
106330
106331// Header returns an http.Header that can be modified by the caller to
106332// add HTTP headers to the request.
106333func (c *NodeGroupsPatchCall) Header() http.Header {
106334	if c.header_ == nil {
106335		c.header_ = make(http.Header)
106336	}
106337	return c.header_
106338}
106339
106340func (c *NodeGroupsPatchCall) doRequest(alt string) (*http.Response, error) {
106341	reqHeaders := make(http.Header)
106342	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
106343	for k, v := range c.header_ {
106344		reqHeaders[k] = v
106345	}
106346	reqHeaders.Set("User-Agent", c.s.userAgent())
106347	var body io.Reader = nil
106348	body, err := googleapi.WithoutDataWrapper.JSONReader(c.nodegroup)
106349	if err != nil {
106350		return nil, err
106351	}
106352	reqHeaders.Set("Content-Type", "application/json")
106353	c.urlParams_.Set("alt", alt)
106354	c.urlParams_.Set("prettyPrint", "false")
106355	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/nodeGroups/{nodeGroup}")
106356	urls += "?" + c.urlParams_.Encode()
106357	req, err := http.NewRequest("PATCH", urls, body)
106358	if err != nil {
106359		return nil, err
106360	}
106361	req.Header = reqHeaders
106362	googleapi.Expand(req.URL, map[string]string{
106363		"project":   c.project,
106364		"zone":      c.zone,
106365		"nodeGroup": c.nodeGroup,
106366	})
106367	return gensupport.SendRequest(c.ctx_, c.s.client, req)
106368}
106369
106370// Do executes the "compute.nodeGroups.patch" call.
106371// Exactly one of *Operation or error will be non-nil. Any non-2xx
106372// status code is an error. Response headers are in either
106373// *Operation.ServerResponse.Header or (if a response was returned at
106374// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
106375// to check whether the returned error was because
106376// http.StatusNotModified was returned.
106377func (c *NodeGroupsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
106378	gensupport.SetOptions(c.urlParams_, opts...)
106379	res, err := c.doRequest("json")
106380	if res != nil && res.StatusCode == http.StatusNotModified {
106381		if res.Body != nil {
106382			res.Body.Close()
106383		}
106384		return nil, &googleapi.Error{
106385			Code:   res.StatusCode,
106386			Header: res.Header,
106387		}
106388	}
106389	if err != nil {
106390		return nil, err
106391	}
106392	defer googleapi.CloseBody(res)
106393	if err := googleapi.CheckResponse(res); err != nil {
106394		return nil, err
106395	}
106396	ret := &Operation{
106397		ServerResponse: googleapi.ServerResponse{
106398			Header:         res.Header,
106399			HTTPStatusCode: res.StatusCode,
106400		},
106401	}
106402	target := &ret
106403	if err := gensupport.DecodeResponse(target, res); err != nil {
106404		return nil, err
106405	}
106406	return ret, nil
106407	// {
106408	//   "description": "Patch the node group. (== suppress_warning http-rest-shadowed ==)",
106409	//   "httpMethod": "PATCH",
106410	//   "id": "compute.nodeGroups.patch",
106411	//   "parameterOrder": [
106412	//     "project",
106413	//     "zone",
106414	//     "nodeGroup"
106415	//   ],
106416	//   "parameters": {
106417	//     "nodeGroup": {
106418	//       "description": "Name of the NodeGroup resource to update.",
106419	//       "location": "path",
106420	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
106421	//       "required": true,
106422	//       "type": "string"
106423	//     },
106424	//     "project": {
106425	//       "description": "Project ID for this request.",
106426	//       "location": "path",
106427	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
106428	//       "required": true,
106429	//       "type": "string"
106430	//     },
106431	//     "requestId": {
106432	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
106433	//       "location": "query",
106434	//       "type": "string"
106435	//     },
106436	//     "zone": {
106437	//       "description": "The name of the zone for this request.",
106438	//       "location": "path",
106439	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
106440	//       "required": true,
106441	//       "type": "string"
106442	//     }
106443	//   },
106444	//   "path": "{project}/zones/{zone}/nodeGroups/{nodeGroup}",
106445	//   "request": {
106446	//     "$ref": "NodeGroup"
106447	//   },
106448	//   "response": {
106449	//     "$ref": "Operation"
106450	//   },
106451	//   "scopes": [
106452	//     "https://www.googleapis.com/auth/cloud-platform",
106453	//     "https://www.googleapis.com/auth/compute"
106454	//   ]
106455	// }
106456
106457}
106458
106459// method id "compute.nodeGroups.setAutoscalingPolicy":
106460
106461type NodeGroupsSetAutoscalingPolicyCall struct {
106462	s                                     *Service
106463	project                               string
106464	zone                                  string
106465	nodeGroup                             string
106466	nodegroupssetautoscalingpolicyrequest *NodeGroupsSetAutoscalingPolicyRequest
106467	urlParams_                            gensupport.URLParams
106468	ctx_                                  context.Context
106469	header_                               http.Header
106470}
106471
106472// SetAutoscalingPolicy: Sets the autoscaling policy of the node group.
106473// (== suppress_warning http-rest-shadowed ==)
106474func (r *NodeGroupsService) SetAutoscalingPolicy(project string, zone string, nodeGroup string, nodegroupssetautoscalingpolicyrequest *NodeGroupsSetAutoscalingPolicyRequest) *NodeGroupsSetAutoscalingPolicyCall {
106475	c := &NodeGroupsSetAutoscalingPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
106476	c.project = project
106477	c.zone = zone
106478	c.nodeGroup = nodeGroup
106479	c.nodegroupssetautoscalingpolicyrequest = nodegroupssetautoscalingpolicyrequest
106480	return c
106481}
106482
106483// RequestId sets the optional parameter "requestId": An optional
106484// request ID to identify requests. Specify a unique request ID so that
106485// if you must retry your request, the server will know to ignore the
106486// request if it has already been completed.
106487//
106488// For example, consider a situation where you make an initial request
106489// and the request times out. If you make the request again with the
106490// same request ID, the server can check if original operation with the
106491// same request ID was received, and if so, will ignore the second
106492// request. This prevents clients from accidentally creating duplicate
106493// commitments.
106494//
106495// The request ID must be a valid UUID with the exception that zero UUID
106496// is not supported (00000000-0000-0000-0000-000000000000).
106497func (c *NodeGroupsSetAutoscalingPolicyCall) RequestId(requestId string) *NodeGroupsSetAutoscalingPolicyCall {
106498	c.urlParams_.Set("requestId", requestId)
106499	return c
106500}
106501
106502// Fields allows partial responses to be retrieved. See
106503// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
106504// for more information.
106505func (c *NodeGroupsSetAutoscalingPolicyCall) Fields(s ...googleapi.Field) *NodeGroupsSetAutoscalingPolicyCall {
106506	c.urlParams_.Set("fields", googleapi.CombineFields(s))
106507	return c
106508}
106509
106510// Context sets the context to be used in this call's Do method. Any
106511// pending HTTP request will be aborted if the provided context is
106512// canceled.
106513func (c *NodeGroupsSetAutoscalingPolicyCall) Context(ctx context.Context) *NodeGroupsSetAutoscalingPolicyCall {
106514	c.ctx_ = ctx
106515	return c
106516}
106517
106518// Header returns an http.Header that can be modified by the caller to
106519// add HTTP headers to the request.
106520func (c *NodeGroupsSetAutoscalingPolicyCall) Header() http.Header {
106521	if c.header_ == nil {
106522		c.header_ = make(http.Header)
106523	}
106524	return c.header_
106525}
106526
106527func (c *NodeGroupsSetAutoscalingPolicyCall) doRequest(alt string) (*http.Response, error) {
106528	reqHeaders := make(http.Header)
106529	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
106530	for k, v := range c.header_ {
106531		reqHeaders[k] = v
106532	}
106533	reqHeaders.Set("User-Agent", c.s.userAgent())
106534	var body io.Reader = nil
106535	body, err := googleapi.WithoutDataWrapper.JSONReader(c.nodegroupssetautoscalingpolicyrequest)
106536	if err != nil {
106537		return nil, err
106538	}
106539	reqHeaders.Set("Content-Type", "application/json")
106540	c.urlParams_.Set("alt", alt)
106541	c.urlParams_.Set("prettyPrint", "false")
106542	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/nodeGroups/{nodeGroup}/setAutoscalingPolicy")
106543	urls += "?" + c.urlParams_.Encode()
106544	req, err := http.NewRequest("POST", urls, body)
106545	if err != nil {
106546		return nil, err
106547	}
106548	req.Header = reqHeaders
106549	googleapi.Expand(req.URL, map[string]string{
106550		"project":   c.project,
106551		"zone":      c.zone,
106552		"nodeGroup": c.nodeGroup,
106553	})
106554	return gensupport.SendRequest(c.ctx_, c.s.client, req)
106555}
106556
106557// Do executes the "compute.nodeGroups.setAutoscalingPolicy" call.
106558// Exactly one of *Operation or error will be non-nil. Any non-2xx
106559// status code is an error. Response headers are in either
106560// *Operation.ServerResponse.Header or (if a response was returned at
106561// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
106562// to check whether the returned error was because
106563// http.StatusNotModified was returned.
106564func (c *NodeGroupsSetAutoscalingPolicyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
106565	gensupport.SetOptions(c.urlParams_, opts...)
106566	res, err := c.doRequest("json")
106567	if res != nil && res.StatusCode == http.StatusNotModified {
106568		if res.Body != nil {
106569			res.Body.Close()
106570		}
106571		return nil, &googleapi.Error{
106572			Code:   res.StatusCode,
106573			Header: res.Header,
106574		}
106575	}
106576	if err != nil {
106577		return nil, err
106578	}
106579	defer googleapi.CloseBody(res)
106580	if err := googleapi.CheckResponse(res); err != nil {
106581		return nil, err
106582	}
106583	ret := &Operation{
106584		ServerResponse: googleapi.ServerResponse{
106585			Header:         res.Header,
106586			HTTPStatusCode: res.StatusCode,
106587		},
106588	}
106589	target := &ret
106590	if err := gensupport.DecodeResponse(target, res); err != nil {
106591		return nil, err
106592	}
106593	return ret, nil
106594	// {
106595	//   "description": "Sets the autoscaling policy of the node group. (== suppress_warning http-rest-shadowed ==)",
106596	//   "httpMethod": "POST",
106597	//   "id": "compute.nodeGroups.setAutoscalingPolicy",
106598	//   "parameterOrder": [
106599	//     "project",
106600	//     "zone",
106601	//     "nodeGroup"
106602	//   ],
106603	//   "parameters": {
106604	//     "nodeGroup": {
106605	//       "description": "Name of the NodeGroup resource to update.",
106606	//       "location": "path",
106607	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
106608	//       "required": true,
106609	//       "type": "string"
106610	//     },
106611	//     "project": {
106612	//       "description": "Project ID for this request.",
106613	//       "location": "path",
106614	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
106615	//       "required": true,
106616	//       "type": "string"
106617	//     },
106618	//     "requestId": {
106619	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
106620	//       "location": "query",
106621	//       "type": "string"
106622	//     },
106623	//     "zone": {
106624	//       "description": "The name of the zone for this request.",
106625	//       "location": "path",
106626	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
106627	//       "required": true,
106628	//       "type": "string"
106629	//     }
106630	//   },
106631	//   "path": "{project}/zones/{zone}/nodeGroups/{nodeGroup}/setAutoscalingPolicy",
106632	//   "request": {
106633	//     "$ref": "NodeGroupsSetAutoscalingPolicyRequest"
106634	//   },
106635	//   "response": {
106636	//     "$ref": "Operation"
106637	//   },
106638	//   "scopes": [
106639	//     "https://www.googleapis.com/auth/cloud-platform",
106640	//     "https://www.googleapis.com/auth/compute"
106641	//   ]
106642	// }
106643
106644}
106645
106646// method id "compute.nodeGroups.setIamPolicy":
106647
106648type NodeGroupsSetIamPolicyCall struct {
106649	s                    *Service
106650	project              string
106651	zone                 string
106652	resource             string
106653	zonesetpolicyrequest *ZoneSetPolicyRequest
106654	urlParams_           gensupport.URLParams
106655	ctx_                 context.Context
106656	header_              http.Header
106657}
106658
106659// SetIamPolicy: Sets the access control policy on the specified
106660// resource. Replaces any existing policy. (== suppress_warning
106661// http-rest-shadowed ==)
106662func (r *NodeGroupsService) SetIamPolicy(project string, zone string, resource string, zonesetpolicyrequest *ZoneSetPolicyRequest) *NodeGroupsSetIamPolicyCall {
106663	c := &NodeGroupsSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
106664	c.project = project
106665	c.zone = zone
106666	c.resource = resource
106667	c.zonesetpolicyrequest = zonesetpolicyrequest
106668	return c
106669}
106670
106671// Fields allows partial responses to be retrieved. See
106672// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
106673// for more information.
106674func (c *NodeGroupsSetIamPolicyCall) Fields(s ...googleapi.Field) *NodeGroupsSetIamPolicyCall {
106675	c.urlParams_.Set("fields", googleapi.CombineFields(s))
106676	return c
106677}
106678
106679// Context sets the context to be used in this call's Do method. Any
106680// pending HTTP request will be aborted if the provided context is
106681// canceled.
106682func (c *NodeGroupsSetIamPolicyCall) Context(ctx context.Context) *NodeGroupsSetIamPolicyCall {
106683	c.ctx_ = ctx
106684	return c
106685}
106686
106687// Header returns an http.Header that can be modified by the caller to
106688// add HTTP headers to the request.
106689func (c *NodeGroupsSetIamPolicyCall) Header() http.Header {
106690	if c.header_ == nil {
106691		c.header_ = make(http.Header)
106692	}
106693	return c.header_
106694}
106695
106696func (c *NodeGroupsSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
106697	reqHeaders := make(http.Header)
106698	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
106699	for k, v := range c.header_ {
106700		reqHeaders[k] = v
106701	}
106702	reqHeaders.Set("User-Agent", c.s.userAgent())
106703	var body io.Reader = nil
106704	body, err := googleapi.WithoutDataWrapper.JSONReader(c.zonesetpolicyrequest)
106705	if err != nil {
106706		return nil, err
106707	}
106708	reqHeaders.Set("Content-Type", "application/json")
106709	c.urlParams_.Set("alt", alt)
106710	c.urlParams_.Set("prettyPrint", "false")
106711	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/nodeGroups/{resource}/setIamPolicy")
106712	urls += "?" + c.urlParams_.Encode()
106713	req, err := http.NewRequest("POST", urls, body)
106714	if err != nil {
106715		return nil, err
106716	}
106717	req.Header = reqHeaders
106718	googleapi.Expand(req.URL, map[string]string{
106719		"project":  c.project,
106720		"zone":     c.zone,
106721		"resource": c.resource,
106722	})
106723	return gensupport.SendRequest(c.ctx_, c.s.client, req)
106724}
106725
106726// Do executes the "compute.nodeGroups.setIamPolicy" call.
106727// Exactly one of *Policy or error will be non-nil. Any non-2xx status
106728// code is an error. Response headers are in either
106729// *Policy.ServerResponse.Header or (if a response was returned at all)
106730// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
106731// check whether the returned error was because http.StatusNotModified
106732// was returned.
106733func (c *NodeGroupsSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
106734	gensupport.SetOptions(c.urlParams_, opts...)
106735	res, err := c.doRequest("json")
106736	if res != nil && res.StatusCode == http.StatusNotModified {
106737		if res.Body != nil {
106738			res.Body.Close()
106739		}
106740		return nil, &googleapi.Error{
106741			Code:   res.StatusCode,
106742			Header: res.Header,
106743		}
106744	}
106745	if err != nil {
106746		return nil, err
106747	}
106748	defer googleapi.CloseBody(res)
106749	if err := googleapi.CheckResponse(res); err != nil {
106750		return nil, err
106751	}
106752	ret := &Policy{
106753		ServerResponse: googleapi.ServerResponse{
106754			Header:         res.Header,
106755			HTTPStatusCode: res.StatusCode,
106756		},
106757	}
106758	target := &ret
106759	if err := gensupport.DecodeResponse(target, res); err != nil {
106760		return nil, err
106761	}
106762	return ret, nil
106763	// {
106764	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy. (== suppress_warning http-rest-shadowed ==)",
106765	//   "httpMethod": "POST",
106766	//   "id": "compute.nodeGroups.setIamPolicy",
106767	//   "parameterOrder": [
106768	//     "project",
106769	//     "zone",
106770	//     "resource"
106771	//   ],
106772	//   "parameters": {
106773	//     "project": {
106774	//       "description": "Project ID for this request.",
106775	//       "location": "path",
106776	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
106777	//       "required": true,
106778	//       "type": "string"
106779	//     },
106780	//     "resource": {
106781	//       "description": "Name or id of the resource for this request.",
106782	//       "location": "path",
106783	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
106784	//       "required": true,
106785	//       "type": "string"
106786	//     },
106787	//     "zone": {
106788	//       "description": "The name of the zone for this request.",
106789	//       "location": "path",
106790	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
106791	//       "required": true,
106792	//       "type": "string"
106793	//     }
106794	//   },
106795	//   "path": "{project}/zones/{zone}/nodeGroups/{resource}/setIamPolicy",
106796	//   "request": {
106797	//     "$ref": "ZoneSetPolicyRequest"
106798	//   },
106799	//   "response": {
106800	//     "$ref": "Policy"
106801	//   },
106802	//   "scopes": [
106803	//     "https://www.googleapis.com/auth/cloud-platform",
106804	//     "https://www.googleapis.com/auth/compute"
106805	//   ]
106806	// }
106807
106808}
106809
106810// method id "compute.nodeGroups.setNodeTemplate":
106811
106812type NodeGroupsSetNodeTemplateCall struct {
106813	s                                *Service
106814	project                          string
106815	zone                             string
106816	nodeGroup                        string
106817	nodegroupssetnodetemplaterequest *NodeGroupsSetNodeTemplateRequest
106818	urlParams_                       gensupport.URLParams
106819	ctx_                             context.Context
106820	header_                          http.Header
106821}
106822
106823// SetNodeTemplate: Updates the node template of the node group. (==
106824// suppress_warning http-rest-shadowed ==)
106825func (r *NodeGroupsService) SetNodeTemplate(project string, zone string, nodeGroup string, nodegroupssetnodetemplaterequest *NodeGroupsSetNodeTemplateRequest) *NodeGroupsSetNodeTemplateCall {
106826	c := &NodeGroupsSetNodeTemplateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
106827	c.project = project
106828	c.zone = zone
106829	c.nodeGroup = nodeGroup
106830	c.nodegroupssetnodetemplaterequest = nodegroupssetnodetemplaterequest
106831	return c
106832}
106833
106834// RequestId sets the optional parameter "requestId": An optional
106835// request ID to identify requests. Specify a unique request ID so that
106836// if you must retry your request, the server will know to ignore the
106837// request if it has already been completed.
106838//
106839// For example, consider a situation where you make an initial request
106840// and the request times out. If you make the request again with the
106841// same request ID, the server can check if original operation with the
106842// same request ID was received, and if so, will ignore the second
106843// request. This prevents clients from accidentally creating duplicate
106844// commitments.
106845//
106846// The request ID must be a valid UUID with the exception that zero UUID
106847// is not supported (00000000-0000-0000-0000-000000000000).
106848func (c *NodeGroupsSetNodeTemplateCall) RequestId(requestId string) *NodeGroupsSetNodeTemplateCall {
106849	c.urlParams_.Set("requestId", requestId)
106850	return c
106851}
106852
106853// Fields allows partial responses to be retrieved. See
106854// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
106855// for more information.
106856func (c *NodeGroupsSetNodeTemplateCall) Fields(s ...googleapi.Field) *NodeGroupsSetNodeTemplateCall {
106857	c.urlParams_.Set("fields", googleapi.CombineFields(s))
106858	return c
106859}
106860
106861// Context sets the context to be used in this call's Do method. Any
106862// pending HTTP request will be aborted if the provided context is
106863// canceled.
106864func (c *NodeGroupsSetNodeTemplateCall) Context(ctx context.Context) *NodeGroupsSetNodeTemplateCall {
106865	c.ctx_ = ctx
106866	return c
106867}
106868
106869// Header returns an http.Header that can be modified by the caller to
106870// add HTTP headers to the request.
106871func (c *NodeGroupsSetNodeTemplateCall) Header() http.Header {
106872	if c.header_ == nil {
106873		c.header_ = make(http.Header)
106874	}
106875	return c.header_
106876}
106877
106878func (c *NodeGroupsSetNodeTemplateCall) doRequest(alt string) (*http.Response, error) {
106879	reqHeaders := make(http.Header)
106880	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
106881	for k, v := range c.header_ {
106882		reqHeaders[k] = v
106883	}
106884	reqHeaders.Set("User-Agent", c.s.userAgent())
106885	var body io.Reader = nil
106886	body, err := googleapi.WithoutDataWrapper.JSONReader(c.nodegroupssetnodetemplaterequest)
106887	if err != nil {
106888		return nil, err
106889	}
106890	reqHeaders.Set("Content-Type", "application/json")
106891	c.urlParams_.Set("alt", alt)
106892	c.urlParams_.Set("prettyPrint", "false")
106893	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/nodeGroups/{nodeGroup}/setNodeTemplate")
106894	urls += "?" + c.urlParams_.Encode()
106895	req, err := http.NewRequest("POST", urls, body)
106896	if err != nil {
106897		return nil, err
106898	}
106899	req.Header = reqHeaders
106900	googleapi.Expand(req.URL, map[string]string{
106901		"project":   c.project,
106902		"zone":      c.zone,
106903		"nodeGroup": c.nodeGroup,
106904	})
106905	return gensupport.SendRequest(c.ctx_, c.s.client, req)
106906}
106907
106908// Do executes the "compute.nodeGroups.setNodeTemplate" call.
106909// Exactly one of *Operation or error will be non-nil. Any non-2xx
106910// status code is an error. Response headers are in either
106911// *Operation.ServerResponse.Header or (if a response was returned at
106912// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
106913// to check whether the returned error was because
106914// http.StatusNotModified was returned.
106915func (c *NodeGroupsSetNodeTemplateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
106916	gensupport.SetOptions(c.urlParams_, opts...)
106917	res, err := c.doRequest("json")
106918	if res != nil && res.StatusCode == http.StatusNotModified {
106919		if res.Body != nil {
106920			res.Body.Close()
106921		}
106922		return nil, &googleapi.Error{
106923			Code:   res.StatusCode,
106924			Header: res.Header,
106925		}
106926	}
106927	if err != nil {
106928		return nil, err
106929	}
106930	defer googleapi.CloseBody(res)
106931	if err := googleapi.CheckResponse(res); err != nil {
106932		return nil, err
106933	}
106934	ret := &Operation{
106935		ServerResponse: googleapi.ServerResponse{
106936			Header:         res.Header,
106937			HTTPStatusCode: res.StatusCode,
106938		},
106939	}
106940	target := &ret
106941	if err := gensupport.DecodeResponse(target, res); err != nil {
106942		return nil, err
106943	}
106944	return ret, nil
106945	// {
106946	//   "description": "Updates the node template of the node group. (== suppress_warning http-rest-shadowed ==)",
106947	//   "httpMethod": "POST",
106948	//   "id": "compute.nodeGroups.setNodeTemplate",
106949	//   "parameterOrder": [
106950	//     "project",
106951	//     "zone",
106952	//     "nodeGroup"
106953	//   ],
106954	//   "parameters": {
106955	//     "nodeGroup": {
106956	//       "description": "Name of the NodeGroup resource to update.",
106957	//       "location": "path",
106958	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
106959	//       "required": true,
106960	//       "type": "string"
106961	//     },
106962	//     "project": {
106963	//       "description": "Project ID for this request.",
106964	//       "location": "path",
106965	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
106966	//       "required": true,
106967	//       "type": "string"
106968	//     },
106969	//     "requestId": {
106970	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
106971	//       "location": "query",
106972	//       "type": "string"
106973	//     },
106974	//     "zone": {
106975	//       "description": "The name of the zone for this request.",
106976	//       "location": "path",
106977	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
106978	//       "required": true,
106979	//       "type": "string"
106980	//     }
106981	//   },
106982	//   "path": "{project}/zones/{zone}/nodeGroups/{nodeGroup}/setNodeTemplate",
106983	//   "request": {
106984	//     "$ref": "NodeGroupsSetNodeTemplateRequest"
106985	//   },
106986	//   "response": {
106987	//     "$ref": "Operation"
106988	//   },
106989	//   "scopes": [
106990	//     "https://www.googleapis.com/auth/cloud-platform",
106991	//     "https://www.googleapis.com/auth/compute"
106992	//   ]
106993	// }
106994
106995}
106996
106997// method id "compute.nodeGroups.testIamPermissions":
106998
106999type NodeGroupsTestIamPermissionsCall struct {
107000	s                      *Service
107001	project                string
107002	zone                   string
107003	resource               string
107004	testpermissionsrequest *TestPermissionsRequest
107005	urlParams_             gensupport.URLParams
107006	ctx_                   context.Context
107007	header_                http.Header
107008}
107009
107010// TestIamPermissions: Returns permissions that a caller has on the
107011// specified resource. (== suppress_warning http-rest-shadowed ==)
107012func (r *NodeGroupsService) TestIamPermissions(project string, zone string, resource string, testpermissionsrequest *TestPermissionsRequest) *NodeGroupsTestIamPermissionsCall {
107013	c := &NodeGroupsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
107014	c.project = project
107015	c.zone = zone
107016	c.resource = resource
107017	c.testpermissionsrequest = testpermissionsrequest
107018	return c
107019}
107020
107021// Fields allows partial responses to be retrieved. See
107022// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
107023// for more information.
107024func (c *NodeGroupsTestIamPermissionsCall) Fields(s ...googleapi.Field) *NodeGroupsTestIamPermissionsCall {
107025	c.urlParams_.Set("fields", googleapi.CombineFields(s))
107026	return c
107027}
107028
107029// Context sets the context to be used in this call's Do method. Any
107030// pending HTTP request will be aborted if the provided context is
107031// canceled.
107032func (c *NodeGroupsTestIamPermissionsCall) Context(ctx context.Context) *NodeGroupsTestIamPermissionsCall {
107033	c.ctx_ = ctx
107034	return c
107035}
107036
107037// Header returns an http.Header that can be modified by the caller to
107038// add HTTP headers to the request.
107039func (c *NodeGroupsTestIamPermissionsCall) Header() http.Header {
107040	if c.header_ == nil {
107041		c.header_ = make(http.Header)
107042	}
107043	return c.header_
107044}
107045
107046func (c *NodeGroupsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
107047	reqHeaders := make(http.Header)
107048	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
107049	for k, v := range c.header_ {
107050		reqHeaders[k] = v
107051	}
107052	reqHeaders.Set("User-Agent", c.s.userAgent())
107053	var body io.Reader = nil
107054	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
107055	if err != nil {
107056		return nil, err
107057	}
107058	reqHeaders.Set("Content-Type", "application/json")
107059	c.urlParams_.Set("alt", alt)
107060	c.urlParams_.Set("prettyPrint", "false")
107061	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/nodeGroups/{resource}/testIamPermissions")
107062	urls += "?" + c.urlParams_.Encode()
107063	req, err := http.NewRequest("POST", urls, body)
107064	if err != nil {
107065		return nil, err
107066	}
107067	req.Header = reqHeaders
107068	googleapi.Expand(req.URL, map[string]string{
107069		"project":  c.project,
107070		"zone":     c.zone,
107071		"resource": c.resource,
107072	})
107073	return gensupport.SendRequest(c.ctx_, c.s.client, req)
107074}
107075
107076// Do executes the "compute.nodeGroups.testIamPermissions" call.
107077// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
107078// non-2xx status code is an error. Response headers are in either
107079// *TestPermissionsResponse.ServerResponse.Header or (if a response was
107080// returned at all) in error.(*googleapi.Error).Header. Use
107081// googleapi.IsNotModified to check whether the returned error was
107082// because http.StatusNotModified was returned.
107083func (c *NodeGroupsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
107084	gensupport.SetOptions(c.urlParams_, opts...)
107085	res, err := c.doRequest("json")
107086	if res != nil && res.StatusCode == http.StatusNotModified {
107087		if res.Body != nil {
107088			res.Body.Close()
107089		}
107090		return nil, &googleapi.Error{
107091			Code:   res.StatusCode,
107092			Header: res.Header,
107093		}
107094	}
107095	if err != nil {
107096		return nil, err
107097	}
107098	defer googleapi.CloseBody(res)
107099	if err := googleapi.CheckResponse(res); err != nil {
107100		return nil, err
107101	}
107102	ret := &TestPermissionsResponse{
107103		ServerResponse: googleapi.ServerResponse{
107104			Header:         res.Header,
107105			HTTPStatusCode: res.StatusCode,
107106		},
107107	}
107108	target := &ret
107109	if err := gensupport.DecodeResponse(target, res); err != nil {
107110		return nil, err
107111	}
107112	return ret, nil
107113	// {
107114	//   "description": "Returns permissions that a caller has on the specified resource. (== suppress_warning http-rest-shadowed ==)",
107115	//   "httpMethod": "POST",
107116	//   "id": "compute.nodeGroups.testIamPermissions",
107117	//   "parameterOrder": [
107118	//     "project",
107119	//     "zone",
107120	//     "resource"
107121	//   ],
107122	//   "parameters": {
107123	//     "project": {
107124	//       "description": "Project ID for this request.",
107125	//       "location": "path",
107126	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
107127	//       "required": true,
107128	//       "type": "string"
107129	//     },
107130	//     "resource": {
107131	//       "description": "Name or id of the resource for this request.",
107132	//       "location": "path",
107133	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
107134	//       "required": true,
107135	//       "type": "string"
107136	//     },
107137	//     "zone": {
107138	//       "description": "The name of the zone for this request.",
107139	//       "location": "path",
107140	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
107141	//       "required": true,
107142	//       "type": "string"
107143	//     }
107144	//   },
107145	//   "path": "{project}/zones/{zone}/nodeGroups/{resource}/testIamPermissions",
107146	//   "request": {
107147	//     "$ref": "TestPermissionsRequest"
107148	//   },
107149	//   "response": {
107150	//     "$ref": "TestPermissionsResponse"
107151	//   },
107152	//   "scopes": [
107153	//     "https://www.googleapis.com/auth/cloud-platform",
107154	//     "https://www.googleapis.com/auth/compute",
107155	//     "https://www.googleapis.com/auth/compute.readonly"
107156	//   ]
107157	// }
107158
107159}
107160
107161// method id "compute.nodeTemplates.aggregatedList":
107162
107163type NodeTemplatesAggregatedListCall struct {
107164	s            *Service
107165	project      string
107166	urlParams_   gensupport.URLParams
107167	ifNoneMatch_ string
107168	ctx_         context.Context
107169	header_      http.Header
107170}
107171
107172// AggregatedList: Retrieves an aggregated list of node templates. (==
107173// suppress_warning http-rest-shadowed ==)
107174func (r *NodeTemplatesService) AggregatedList(project string) *NodeTemplatesAggregatedListCall {
107175	c := &NodeTemplatesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
107176	c.project = project
107177	return c
107178}
107179
107180// Filter sets the optional parameter "filter": A filter expression that
107181// filters resources listed in the response. The expression must specify
107182// the field name, a comparison operator, and the value that you want to
107183// use for filtering. The value must be a string, a number, or a
107184// boolean. The comparison operator must be either =, !=, >, or <.
107185//
107186// For example, if you are filtering Compute Engine instances, you can
107187// exclude instances named example-instance by specifying name !=
107188// example-instance.
107189//
107190// You can also filter nested fields. For example, you could specify
107191// scheduling.automaticRestart = false to include instances only if they
107192// are not scheduled for automatic restarts. You can use filtering on
107193// nested fields to filter based on resource labels.
107194//
107195// To filter on multiple expressions, provide each separate expression
107196// within parentheses. For example, (scheduling.automaticRestart = true)
107197// (cpuPlatform = "Intel Skylake"). By default, each expression is an
107198// AND expression. However, you can include AND and OR expressions
107199// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
107200// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
107201// true).
107202func (c *NodeTemplatesAggregatedListCall) Filter(filter string) *NodeTemplatesAggregatedListCall {
107203	c.urlParams_.Set("filter", filter)
107204	return c
107205}
107206
107207// MaxResults sets the optional parameter "maxResults": The maximum
107208// number of results per page that should be returned. If the number of
107209// available results is larger than maxResults, Compute Engine returns a
107210// nextPageToken that can be used to get the next page of results in
107211// subsequent list requests. Acceptable values are 0 to 500, inclusive.
107212// (Default: 500)
107213func (c *NodeTemplatesAggregatedListCall) MaxResults(maxResults int64) *NodeTemplatesAggregatedListCall {
107214	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
107215	return c
107216}
107217
107218// OrderBy sets the optional parameter "orderBy": Sorts list results by
107219// a certain order. By default, results are returned in alphanumerical
107220// order based on the resource name.
107221//
107222// You can also sort results in descending order based on the creation
107223// timestamp using orderBy="creationTimestamp desc". This sorts results
107224// based on the creationTimestamp field in reverse chronological order
107225// (newest result first). Use this to sort resources like operations so
107226// that the newest operation is returned first.
107227//
107228// Currently, only sorting by name or creationTimestamp desc is
107229// supported.
107230func (c *NodeTemplatesAggregatedListCall) OrderBy(orderBy string) *NodeTemplatesAggregatedListCall {
107231	c.urlParams_.Set("orderBy", orderBy)
107232	return c
107233}
107234
107235// PageToken sets the optional parameter "pageToken": Specifies a page
107236// token to use. Set pageToken to the nextPageToken returned by a
107237// previous list request to get the next page of results.
107238func (c *NodeTemplatesAggregatedListCall) PageToken(pageToken string) *NodeTemplatesAggregatedListCall {
107239	c.urlParams_.Set("pageToken", pageToken)
107240	return c
107241}
107242
107243// Fields allows partial responses to be retrieved. See
107244// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
107245// for more information.
107246func (c *NodeTemplatesAggregatedListCall) Fields(s ...googleapi.Field) *NodeTemplatesAggregatedListCall {
107247	c.urlParams_.Set("fields", googleapi.CombineFields(s))
107248	return c
107249}
107250
107251// IfNoneMatch sets the optional parameter which makes the operation
107252// fail if the object's ETag matches the given value. This is useful for
107253// getting updates only after the object has changed since the last
107254// request. Use googleapi.IsNotModified to check whether the response
107255// error from Do is the result of In-None-Match.
107256func (c *NodeTemplatesAggregatedListCall) IfNoneMatch(entityTag string) *NodeTemplatesAggregatedListCall {
107257	c.ifNoneMatch_ = entityTag
107258	return c
107259}
107260
107261// Context sets the context to be used in this call's Do method. Any
107262// pending HTTP request will be aborted if the provided context is
107263// canceled.
107264func (c *NodeTemplatesAggregatedListCall) Context(ctx context.Context) *NodeTemplatesAggregatedListCall {
107265	c.ctx_ = ctx
107266	return c
107267}
107268
107269// Header returns an http.Header that can be modified by the caller to
107270// add HTTP headers to the request.
107271func (c *NodeTemplatesAggregatedListCall) Header() http.Header {
107272	if c.header_ == nil {
107273		c.header_ = make(http.Header)
107274	}
107275	return c.header_
107276}
107277
107278func (c *NodeTemplatesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
107279	reqHeaders := make(http.Header)
107280	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
107281	for k, v := range c.header_ {
107282		reqHeaders[k] = v
107283	}
107284	reqHeaders.Set("User-Agent", c.s.userAgent())
107285	if c.ifNoneMatch_ != "" {
107286		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
107287	}
107288	var body io.Reader = nil
107289	c.urlParams_.Set("alt", alt)
107290	c.urlParams_.Set("prettyPrint", "false")
107291	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/nodeTemplates")
107292	urls += "?" + c.urlParams_.Encode()
107293	req, err := http.NewRequest("GET", urls, body)
107294	if err != nil {
107295		return nil, err
107296	}
107297	req.Header = reqHeaders
107298	googleapi.Expand(req.URL, map[string]string{
107299		"project": c.project,
107300	})
107301	return gensupport.SendRequest(c.ctx_, c.s.client, req)
107302}
107303
107304// Do executes the "compute.nodeTemplates.aggregatedList" call.
107305// Exactly one of *NodeTemplateAggregatedList or error will be non-nil.
107306// Any non-2xx status code is an error. Response headers are in either
107307// *NodeTemplateAggregatedList.ServerResponse.Header or (if a response
107308// was returned at all) in error.(*googleapi.Error).Header. Use
107309// googleapi.IsNotModified to check whether the returned error was
107310// because http.StatusNotModified was returned.
107311func (c *NodeTemplatesAggregatedListCall) Do(opts ...googleapi.CallOption) (*NodeTemplateAggregatedList, error) {
107312	gensupport.SetOptions(c.urlParams_, opts...)
107313	res, err := c.doRequest("json")
107314	if res != nil && res.StatusCode == http.StatusNotModified {
107315		if res.Body != nil {
107316			res.Body.Close()
107317		}
107318		return nil, &googleapi.Error{
107319			Code:   res.StatusCode,
107320			Header: res.Header,
107321		}
107322	}
107323	if err != nil {
107324		return nil, err
107325	}
107326	defer googleapi.CloseBody(res)
107327	if err := googleapi.CheckResponse(res); err != nil {
107328		return nil, err
107329	}
107330	ret := &NodeTemplateAggregatedList{
107331		ServerResponse: googleapi.ServerResponse{
107332			Header:         res.Header,
107333			HTTPStatusCode: res.StatusCode,
107334		},
107335	}
107336	target := &ret
107337	if err := gensupport.DecodeResponse(target, res); err != nil {
107338		return nil, err
107339	}
107340	return ret, nil
107341	// {
107342	//   "description": "Retrieves an aggregated list of node templates. (== suppress_warning http-rest-shadowed ==)",
107343	//   "httpMethod": "GET",
107344	//   "id": "compute.nodeTemplates.aggregatedList",
107345	//   "parameterOrder": [
107346	//     "project"
107347	//   ],
107348	//   "parameters": {
107349	//     "filter": {
107350	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
107351	//       "location": "query",
107352	//       "type": "string"
107353	//     },
107354	//     "maxResults": {
107355	//       "default": "500",
107356	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
107357	//       "format": "uint32",
107358	//       "location": "query",
107359	//       "minimum": "0",
107360	//       "type": "integer"
107361	//     },
107362	//     "orderBy": {
107363	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
107364	//       "location": "query",
107365	//       "type": "string"
107366	//     },
107367	//     "pageToken": {
107368	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
107369	//       "location": "query",
107370	//       "type": "string"
107371	//     },
107372	//     "project": {
107373	//       "description": "Project ID for this request.",
107374	//       "location": "path",
107375	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
107376	//       "required": true,
107377	//       "type": "string"
107378	//     }
107379	//   },
107380	//   "path": "{project}/aggregated/nodeTemplates",
107381	//   "response": {
107382	//     "$ref": "NodeTemplateAggregatedList"
107383	//   },
107384	//   "scopes": [
107385	//     "https://www.googleapis.com/auth/cloud-platform",
107386	//     "https://www.googleapis.com/auth/compute",
107387	//     "https://www.googleapis.com/auth/compute.readonly"
107388	//   ]
107389	// }
107390
107391}
107392
107393// Pages invokes f for each page of results.
107394// A non-nil error returned from f will halt the iteration.
107395// The provided context supersedes any context provided to the Context method.
107396func (c *NodeTemplatesAggregatedListCall) Pages(ctx context.Context, f func(*NodeTemplateAggregatedList) error) error {
107397	c.ctx_ = ctx
107398	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
107399	for {
107400		x, err := c.Do()
107401		if err != nil {
107402			return err
107403		}
107404		if err := f(x); err != nil {
107405			return err
107406		}
107407		if x.NextPageToken == "" {
107408			return nil
107409		}
107410		c.PageToken(x.NextPageToken)
107411	}
107412}
107413
107414// method id "compute.nodeTemplates.delete":
107415
107416type NodeTemplatesDeleteCall struct {
107417	s            *Service
107418	project      string
107419	region       string
107420	nodeTemplate string
107421	urlParams_   gensupport.URLParams
107422	ctx_         context.Context
107423	header_      http.Header
107424}
107425
107426// Delete: Deletes the specified NodeTemplate resource. (==
107427// suppress_warning http-rest-shadowed ==)
107428func (r *NodeTemplatesService) Delete(project string, region string, nodeTemplate string) *NodeTemplatesDeleteCall {
107429	c := &NodeTemplatesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
107430	c.project = project
107431	c.region = region
107432	c.nodeTemplate = nodeTemplate
107433	return c
107434}
107435
107436// RequestId sets the optional parameter "requestId": An optional
107437// request ID to identify requests. Specify a unique request ID so that
107438// if you must retry your request, the server will know to ignore the
107439// request if it has already been completed.
107440//
107441// For example, consider a situation where you make an initial request
107442// and the request times out. If you make the request again with the
107443// same request ID, the server can check if original operation with the
107444// same request ID was received, and if so, will ignore the second
107445// request. This prevents clients from accidentally creating duplicate
107446// commitments.
107447//
107448// The request ID must be a valid UUID with the exception that zero UUID
107449// is not supported (00000000-0000-0000-0000-000000000000).
107450func (c *NodeTemplatesDeleteCall) RequestId(requestId string) *NodeTemplatesDeleteCall {
107451	c.urlParams_.Set("requestId", requestId)
107452	return c
107453}
107454
107455// Fields allows partial responses to be retrieved. See
107456// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
107457// for more information.
107458func (c *NodeTemplatesDeleteCall) Fields(s ...googleapi.Field) *NodeTemplatesDeleteCall {
107459	c.urlParams_.Set("fields", googleapi.CombineFields(s))
107460	return c
107461}
107462
107463// Context sets the context to be used in this call's Do method. Any
107464// pending HTTP request will be aborted if the provided context is
107465// canceled.
107466func (c *NodeTemplatesDeleteCall) Context(ctx context.Context) *NodeTemplatesDeleteCall {
107467	c.ctx_ = ctx
107468	return c
107469}
107470
107471// Header returns an http.Header that can be modified by the caller to
107472// add HTTP headers to the request.
107473func (c *NodeTemplatesDeleteCall) Header() http.Header {
107474	if c.header_ == nil {
107475		c.header_ = make(http.Header)
107476	}
107477	return c.header_
107478}
107479
107480func (c *NodeTemplatesDeleteCall) doRequest(alt string) (*http.Response, error) {
107481	reqHeaders := make(http.Header)
107482	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
107483	for k, v := range c.header_ {
107484		reqHeaders[k] = v
107485	}
107486	reqHeaders.Set("User-Agent", c.s.userAgent())
107487	var body io.Reader = nil
107488	c.urlParams_.Set("alt", alt)
107489	c.urlParams_.Set("prettyPrint", "false")
107490	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/nodeTemplates/{nodeTemplate}")
107491	urls += "?" + c.urlParams_.Encode()
107492	req, err := http.NewRequest("DELETE", urls, body)
107493	if err != nil {
107494		return nil, err
107495	}
107496	req.Header = reqHeaders
107497	googleapi.Expand(req.URL, map[string]string{
107498		"project":      c.project,
107499		"region":       c.region,
107500		"nodeTemplate": c.nodeTemplate,
107501	})
107502	return gensupport.SendRequest(c.ctx_, c.s.client, req)
107503}
107504
107505// Do executes the "compute.nodeTemplates.delete" call.
107506// Exactly one of *Operation or error will be non-nil. Any non-2xx
107507// status code is an error. Response headers are in either
107508// *Operation.ServerResponse.Header or (if a response was returned at
107509// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
107510// to check whether the returned error was because
107511// http.StatusNotModified was returned.
107512func (c *NodeTemplatesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
107513	gensupport.SetOptions(c.urlParams_, opts...)
107514	res, err := c.doRequest("json")
107515	if res != nil && res.StatusCode == http.StatusNotModified {
107516		if res.Body != nil {
107517			res.Body.Close()
107518		}
107519		return nil, &googleapi.Error{
107520			Code:   res.StatusCode,
107521			Header: res.Header,
107522		}
107523	}
107524	if err != nil {
107525		return nil, err
107526	}
107527	defer googleapi.CloseBody(res)
107528	if err := googleapi.CheckResponse(res); err != nil {
107529		return nil, err
107530	}
107531	ret := &Operation{
107532		ServerResponse: googleapi.ServerResponse{
107533			Header:         res.Header,
107534			HTTPStatusCode: res.StatusCode,
107535		},
107536	}
107537	target := &ret
107538	if err := gensupport.DecodeResponse(target, res); err != nil {
107539		return nil, err
107540	}
107541	return ret, nil
107542	// {
107543	//   "description": "Deletes the specified NodeTemplate resource. (== suppress_warning http-rest-shadowed ==)",
107544	//   "httpMethod": "DELETE",
107545	//   "id": "compute.nodeTemplates.delete",
107546	//   "parameterOrder": [
107547	//     "project",
107548	//     "region",
107549	//     "nodeTemplate"
107550	//   ],
107551	//   "parameters": {
107552	//     "nodeTemplate": {
107553	//       "description": "Name of the NodeTemplate resource to delete.",
107554	//       "location": "path",
107555	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
107556	//       "required": true,
107557	//       "type": "string"
107558	//     },
107559	//     "project": {
107560	//       "description": "Project ID for this request.",
107561	//       "location": "path",
107562	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
107563	//       "required": true,
107564	//       "type": "string"
107565	//     },
107566	//     "region": {
107567	//       "description": "The name of the region for this request.",
107568	//       "location": "path",
107569	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
107570	//       "required": true,
107571	//       "type": "string"
107572	//     },
107573	//     "requestId": {
107574	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
107575	//       "location": "query",
107576	//       "type": "string"
107577	//     }
107578	//   },
107579	//   "path": "{project}/regions/{region}/nodeTemplates/{nodeTemplate}",
107580	//   "response": {
107581	//     "$ref": "Operation"
107582	//   },
107583	//   "scopes": [
107584	//     "https://www.googleapis.com/auth/cloud-platform",
107585	//     "https://www.googleapis.com/auth/compute"
107586	//   ]
107587	// }
107588
107589}
107590
107591// method id "compute.nodeTemplates.get":
107592
107593type NodeTemplatesGetCall struct {
107594	s            *Service
107595	project      string
107596	region       string
107597	nodeTemplate string
107598	urlParams_   gensupport.URLParams
107599	ifNoneMatch_ string
107600	ctx_         context.Context
107601	header_      http.Header
107602}
107603
107604// Get: Returns the specified node template. Gets a list of available
107605// node templates by making a list() request. (== suppress_warning
107606// http-rest-shadowed ==)
107607func (r *NodeTemplatesService) Get(project string, region string, nodeTemplate string) *NodeTemplatesGetCall {
107608	c := &NodeTemplatesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
107609	c.project = project
107610	c.region = region
107611	c.nodeTemplate = nodeTemplate
107612	return c
107613}
107614
107615// Fields allows partial responses to be retrieved. See
107616// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
107617// for more information.
107618func (c *NodeTemplatesGetCall) Fields(s ...googleapi.Field) *NodeTemplatesGetCall {
107619	c.urlParams_.Set("fields", googleapi.CombineFields(s))
107620	return c
107621}
107622
107623// IfNoneMatch sets the optional parameter which makes the operation
107624// fail if the object's ETag matches the given value. This is useful for
107625// getting updates only after the object has changed since the last
107626// request. Use googleapi.IsNotModified to check whether the response
107627// error from Do is the result of In-None-Match.
107628func (c *NodeTemplatesGetCall) IfNoneMatch(entityTag string) *NodeTemplatesGetCall {
107629	c.ifNoneMatch_ = entityTag
107630	return c
107631}
107632
107633// Context sets the context to be used in this call's Do method. Any
107634// pending HTTP request will be aborted if the provided context is
107635// canceled.
107636func (c *NodeTemplatesGetCall) Context(ctx context.Context) *NodeTemplatesGetCall {
107637	c.ctx_ = ctx
107638	return c
107639}
107640
107641// Header returns an http.Header that can be modified by the caller to
107642// add HTTP headers to the request.
107643func (c *NodeTemplatesGetCall) Header() http.Header {
107644	if c.header_ == nil {
107645		c.header_ = make(http.Header)
107646	}
107647	return c.header_
107648}
107649
107650func (c *NodeTemplatesGetCall) doRequest(alt string) (*http.Response, error) {
107651	reqHeaders := make(http.Header)
107652	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
107653	for k, v := range c.header_ {
107654		reqHeaders[k] = v
107655	}
107656	reqHeaders.Set("User-Agent", c.s.userAgent())
107657	if c.ifNoneMatch_ != "" {
107658		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
107659	}
107660	var body io.Reader = nil
107661	c.urlParams_.Set("alt", alt)
107662	c.urlParams_.Set("prettyPrint", "false")
107663	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/nodeTemplates/{nodeTemplate}")
107664	urls += "?" + c.urlParams_.Encode()
107665	req, err := http.NewRequest("GET", urls, body)
107666	if err != nil {
107667		return nil, err
107668	}
107669	req.Header = reqHeaders
107670	googleapi.Expand(req.URL, map[string]string{
107671		"project":      c.project,
107672		"region":       c.region,
107673		"nodeTemplate": c.nodeTemplate,
107674	})
107675	return gensupport.SendRequest(c.ctx_, c.s.client, req)
107676}
107677
107678// Do executes the "compute.nodeTemplates.get" call.
107679// Exactly one of *NodeTemplate or error will be non-nil. Any non-2xx
107680// status code is an error. Response headers are in either
107681// *NodeTemplate.ServerResponse.Header or (if a response was returned at
107682// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
107683// to check whether the returned error was because
107684// http.StatusNotModified was returned.
107685func (c *NodeTemplatesGetCall) Do(opts ...googleapi.CallOption) (*NodeTemplate, error) {
107686	gensupport.SetOptions(c.urlParams_, opts...)
107687	res, err := c.doRequest("json")
107688	if res != nil && res.StatusCode == http.StatusNotModified {
107689		if res.Body != nil {
107690			res.Body.Close()
107691		}
107692		return nil, &googleapi.Error{
107693			Code:   res.StatusCode,
107694			Header: res.Header,
107695		}
107696	}
107697	if err != nil {
107698		return nil, err
107699	}
107700	defer googleapi.CloseBody(res)
107701	if err := googleapi.CheckResponse(res); err != nil {
107702		return nil, err
107703	}
107704	ret := &NodeTemplate{
107705		ServerResponse: googleapi.ServerResponse{
107706			Header:         res.Header,
107707			HTTPStatusCode: res.StatusCode,
107708		},
107709	}
107710	target := &ret
107711	if err := gensupport.DecodeResponse(target, res); err != nil {
107712		return nil, err
107713	}
107714	return ret, nil
107715	// {
107716	//   "description": "Returns the specified node template. Gets a list of available node templates by making a list() request. (== suppress_warning http-rest-shadowed ==)",
107717	//   "httpMethod": "GET",
107718	//   "id": "compute.nodeTemplates.get",
107719	//   "parameterOrder": [
107720	//     "project",
107721	//     "region",
107722	//     "nodeTemplate"
107723	//   ],
107724	//   "parameters": {
107725	//     "nodeTemplate": {
107726	//       "description": "Name of the node template to return.",
107727	//       "location": "path",
107728	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
107729	//       "required": true,
107730	//       "type": "string"
107731	//     },
107732	//     "project": {
107733	//       "description": "Project ID for this request.",
107734	//       "location": "path",
107735	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
107736	//       "required": true,
107737	//       "type": "string"
107738	//     },
107739	//     "region": {
107740	//       "description": "The name of the region for this request.",
107741	//       "location": "path",
107742	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
107743	//       "required": true,
107744	//       "type": "string"
107745	//     }
107746	//   },
107747	//   "path": "{project}/regions/{region}/nodeTemplates/{nodeTemplate}",
107748	//   "response": {
107749	//     "$ref": "NodeTemplate"
107750	//   },
107751	//   "scopes": [
107752	//     "https://www.googleapis.com/auth/cloud-platform",
107753	//     "https://www.googleapis.com/auth/compute",
107754	//     "https://www.googleapis.com/auth/compute.readonly"
107755	//   ]
107756	// }
107757
107758}
107759
107760// method id "compute.nodeTemplates.getIamPolicy":
107761
107762type NodeTemplatesGetIamPolicyCall struct {
107763	s            *Service
107764	project      string
107765	region       string
107766	resource     string
107767	urlParams_   gensupport.URLParams
107768	ifNoneMatch_ string
107769	ctx_         context.Context
107770	header_      http.Header
107771}
107772
107773// GetIamPolicy: Gets the access control policy for a resource. May be
107774// empty if no such policy or resource exists. (== suppress_warning
107775// http-rest-shadowed ==)
107776func (r *NodeTemplatesService) GetIamPolicy(project string, region string, resource string) *NodeTemplatesGetIamPolicyCall {
107777	c := &NodeTemplatesGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
107778	c.project = project
107779	c.region = region
107780	c.resource = resource
107781	return c
107782}
107783
107784// OptionsRequestedPolicyVersion sets the optional parameter
107785// "optionsRequestedPolicyVersion": Requested IAM Policy version.
107786func (c *NodeTemplatesGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *NodeTemplatesGetIamPolicyCall {
107787	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
107788	return c
107789}
107790
107791// Fields allows partial responses to be retrieved. See
107792// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
107793// for more information.
107794func (c *NodeTemplatesGetIamPolicyCall) Fields(s ...googleapi.Field) *NodeTemplatesGetIamPolicyCall {
107795	c.urlParams_.Set("fields", googleapi.CombineFields(s))
107796	return c
107797}
107798
107799// IfNoneMatch sets the optional parameter which makes the operation
107800// fail if the object's ETag matches the given value. This is useful for
107801// getting updates only after the object has changed since the last
107802// request. Use googleapi.IsNotModified to check whether the response
107803// error from Do is the result of In-None-Match.
107804func (c *NodeTemplatesGetIamPolicyCall) IfNoneMatch(entityTag string) *NodeTemplatesGetIamPolicyCall {
107805	c.ifNoneMatch_ = entityTag
107806	return c
107807}
107808
107809// Context sets the context to be used in this call's Do method. Any
107810// pending HTTP request will be aborted if the provided context is
107811// canceled.
107812func (c *NodeTemplatesGetIamPolicyCall) Context(ctx context.Context) *NodeTemplatesGetIamPolicyCall {
107813	c.ctx_ = ctx
107814	return c
107815}
107816
107817// Header returns an http.Header that can be modified by the caller to
107818// add HTTP headers to the request.
107819func (c *NodeTemplatesGetIamPolicyCall) Header() http.Header {
107820	if c.header_ == nil {
107821		c.header_ = make(http.Header)
107822	}
107823	return c.header_
107824}
107825
107826func (c *NodeTemplatesGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
107827	reqHeaders := make(http.Header)
107828	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
107829	for k, v := range c.header_ {
107830		reqHeaders[k] = v
107831	}
107832	reqHeaders.Set("User-Agent", c.s.userAgent())
107833	if c.ifNoneMatch_ != "" {
107834		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
107835	}
107836	var body io.Reader = nil
107837	c.urlParams_.Set("alt", alt)
107838	c.urlParams_.Set("prettyPrint", "false")
107839	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/nodeTemplates/{resource}/getIamPolicy")
107840	urls += "?" + c.urlParams_.Encode()
107841	req, err := http.NewRequest("GET", urls, body)
107842	if err != nil {
107843		return nil, err
107844	}
107845	req.Header = reqHeaders
107846	googleapi.Expand(req.URL, map[string]string{
107847		"project":  c.project,
107848		"region":   c.region,
107849		"resource": c.resource,
107850	})
107851	return gensupport.SendRequest(c.ctx_, c.s.client, req)
107852}
107853
107854// Do executes the "compute.nodeTemplates.getIamPolicy" call.
107855// Exactly one of *Policy or error will be non-nil. Any non-2xx status
107856// code is an error. Response headers are in either
107857// *Policy.ServerResponse.Header or (if a response was returned at all)
107858// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
107859// check whether the returned error was because http.StatusNotModified
107860// was returned.
107861func (c *NodeTemplatesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
107862	gensupport.SetOptions(c.urlParams_, opts...)
107863	res, err := c.doRequest("json")
107864	if res != nil && res.StatusCode == http.StatusNotModified {
107865		if res.Body != nil {
107866			res.Body.Close()
107867		}
107868		return nil, &googleapi.Error{
107869			Code:   res.StatusCode,
107870			Header: res.Header,
107871		}
107872	}
107873	if err != nil {
107874		return nil, err
107875	}
107876	defer googleapi.CloseBody(res)
107877	if err := googleapi.CheckResponse(res); err != nil {
107878		return nil, err
107879	}
107880	ret := &Policy{
107881		ServerResponse: googleapi.ServerResponse{
107882			Header:         res.Header,
107883			HTTPStatusCode: res.StatusCode,
107884		},
107885	}
107886	target := &ret
107887	if err := gensupport.DecodeResponse(target, res); err != nil {
107888		return nil, err
107889	}
107890	return ret, nil
107891	// {
107892	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists. (== suppress_warning http-rest-shadowed ==)",
107893	//   "httpMethod": "GET",
107894	//   "id": "compute.nodeTemplates.getIamPolicy",
107895	//   "parameterOrder": [
107896	//     "project",
107897	//     "region",
107898	//     "resource"
107899	//   ],
107900	//   "parameters": {
107901	//     "optionsRequestedPolicyVersion": {
107902	//       "description": "Requested IAM Policy version.",
107903	//       "format": "int32",
107904	//       "location": "query",
107905	//       "type": "integer"
107906	//     },
107907	//     "project": {
107908	//       "description": "Project ID for this request.",
107909	//       "location": "path",
107910	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
107911	//       "required": true,
107912	//       "type": "string"
107913	//     },
107914	//     "region": {
107915	//       "description": "The name of the region for this request.",
107916	//       "location": "path",
107917	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
107918	//       "required": true,
107919	//       "type": "string"
107920	//     },
107921	//     "resource": {
107922	//       "description": "Name or id of the resource for this request.",
107923	//       "location": "path",
107924	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
107925	//       "required": true,
107926	//       "type": "string"
107927	//     }
107928	//   },
107929	//   "path": "{project}/regions/{region}/nodeTemplates/{resource}/getIamPolicy",
107930	//   "response": {
107931	//     "$ref": "Policy"
107932	//   },
107933	//   "scopes": [
107934	//     "https://www.googleapis.com/auth/cloud-platform",
107935	//     "https://www.googleapis.com/auth/compute",
107936	//     "https://www.googleapis.com/auth/compute.readonly"
107937	//   ]
107938	// }
107939
107940}
107941
107942// method id "compute.nodeTemplates.insert":
107943
107944type NodeTemplatesInsertCall struct {
107945	s            *Service
107946	project      string
107947	region       string
107948	nodetemplate *NodeTemplate
107949	urlParams_   gensupport.URLParams
107950	ctx_         context.Context
107951	header_      http.Header
107952}
107953
107954// Insert: Creates a NodeTemplate resource in the specified project
107955// using the data included in the request. (== suppress_warning
107956// http-rest-shadowed ==)
107957func (r *NodeTemplatesService) Insert(project string, region string, nodetemplate *NodeTemplate) *NodeTemplatesInsertCall {
107958	c := &NodeTemplatesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
107959	c.project = project
107960	c.region = region
107961	c.nodetemplate = nodetemplate
107962	return c
107963}
107964
107965// RequestId sets the optional parameter "requestId": An optional
107966// request ID to identify requests. Specify a unique request ID so that
107967// if you must retry your request, the server will know to ignore the
107968// request if it has already been completed.
107969//
107970// For example, consider a situation where you make an initial request
107971// and the request times out. If you make the request again with the
107972// same request ID, the server can check if original operation with the
107973// same request ID was received, and if so, will ignore the second
107974// request. This prevents clients from accidentally creating duplicate
107975// commitments.
107976//
107977// The request ID must be a valid UUID with the exception that zero UUID
107978// is not supported (00000000-0000-0000-0000-000000000000).
107979func (c *NodeTemplatesInsertCall) RequestId(requestId string) *NodeTemplatesInsertCall {
107980	c.urlParams_.Set("requestId", requestId)
107981	return c
107982}
107983
107984// Fields allows partial responses to be retrieved. See
107985// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
107986// for more information.
107987func (c *NodeTemplatesInsertCall) Fields(s ...googleapi.Field) *NodeTemplatesInsertCall {
107988	c.urlParams_.Set("fields", googleapi.CombineFields(s))
107989	return c
107990}
107991
107992// Context sets the context to be used in this call's Do method. Any
107993// pending HTTP request will be aborted if the provided context is
107994// canceled.
107995func (c *NodeTemplatesInsertCall) Context(ctx context.Context) *NodeTemplatesInsertCall {
107996	c.ctx_ = ctx
107997	return c
107998}
107999
108000// Header returns an http.Header that can be modified by the caller to
108001// add HTTP headers to the request.
108002func (c *NodeTemplatesInsertCall) Header() http.Header {
108003	if c.header_ == nil {
108004		c.header_ = make(http.Header)
108005	}
108006	return c.header_
108007}
108008
108009func (c *NodeTemplatesInsertCall) doRequest(alt string) (*http.Response, error) {
108010	reqHeaders := make(http.Header)
108011	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
108012	for k, v := range c.header_ {
108013		reqHeaders[k] = v
108014	}
108015	reqHeaders.Set("User-Agent", c.s.userAgent())
108016	var body io.Reader = nil
108017	body, err := googleapi.WithoutDataWrapper.JSONReader(c.nodetemplate)
108018	if err != nil {
108019		return nil, err
108020	}
108021	reqHeaders.Set("Content-Type", "application/json")
108022	c.urlParams_.Set("alt", alt)
108023	c.urlParams_.Set("prettyPrint", "false")
108024	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/nodeTemplates")
108025	urls += "?" + c.urlParams_.Encode()
108026	req, err := http.NewRequest("POST", urls, body)
108027	if err != nil {
108028		return nil, err
108029	}
108030	req.Header = reqHeaders
108031	googleapi.Expand(req.URL, map[string]string{
108032		"project": c.project,
108033		"region":  c.region,
108034	})
108035	return gensupport.SendRequest(c.ctx_, c.s.client, req)
108036}
108037
108038// Do executes the "compute.nodeTemplates.insert" call.
108039// Exactly one of *Operation or error will be non-nil. Any non-2xx
108040// status code is an error. Response headers are in either
108041// *Operation.ServerResponse.Header or (if a response was returned at
108042// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
108043// to check whether the returned error was because
108044// http.StatusNotModified was returned.
108045func (c *NodeTemplatesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
108046	gensupport.SetOptions(c.urlParams_, opts...)
108047	res, err := c.doRequest("json")
108048	if res != nil && res.StatusCode == http.StatusNotModified {
108049		if res.Body != nil {
108050			res.Body.Close()
108051		}
108052		return nil, &googleapi.Error{
108053			Code:   res.StatusCode,
108054			Header: res.Header,
108055		}
108056	}
108057	if err != nil {
108058		return nil, err
108059	}
108060	defer googleapi.CloseBody(res)
108061	if err := googleapi.CheckResponse(res); err != nil {
108062		return nil, err
108063	}
108064	ret := &Operation{
108065		ServerResponse: googleapi.ServerResponse{
108066			Header:         res.Header,
108067			HTTPStatusCode: res.StatusCode,
108068		},
108069	}
108070	target := &ret
108071	if err := gensupport.DecodeResponse(target, res); err != nil {
108072		return nil, err
108073	}
108074	return ret, nil
108075	// {
108076	//   "description": "Creates a NodeTemplate resource in the specified project using the data included in the request. (== suppress_warning http-rest-shadowed ==)",
108077	//   "httpMethod": "POST",
108078	//   "id": "compute.nodeTemplates.insert",
108079	//   "parameterOrder": [
108080	//     "project",
108081	//     "region"
108082	//   ],
108083	//   "parameters": {
108084	//     "project": {
108085	//       "description": "Project ID for this request.",
108086	//       "location": "path",
108087	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
108088	//       "required": true,
108089	//       "type": "string"
108090	//     },
108091	//     "region": {
108092	//       "description": "The name of the region for this request.",
108093	//       "location": "path",
108094	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
108095	//       "required": true,
108096	//       "type": "string"
108097	//     },
108098	//     "requestId": {
108099	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
108100	//       "location": "query",
108101	//       "type": "string"
108102	//     }
108103	//   },
108104	//   "path": "{project}/regions/{region}/nodeTemplates",
108105	//   "request": {
108106	//     "$ref": "NodeTemplate"
108107	//   },
108108	//   "response": {
108109	//     "$ref": "Operation"
108110	//   },
108111	//   "scopes": [
108112	//     "https://www.googleapis.com/auth/cloud-platform",
108113	//     "https://www.googleapis.com/auth/compute"
108114	//   ]
108115	// }
108116
108117}
108118
108119// method id "compute.nodeTemplates.list":
108120
108121type NodeTemplatesListCall struct {
108122	s            *Service
108123	project      string
108124	region       string
108125	urlParams_   gensupport.URLParams
108126	ifNoneMatch_ string
108127	ctx_         context.Context
108128	header_      http.Header
108129}
108130
108131// List: Retrieves a list of node templates available to the specified
108132// project. (== suppress_warning http-rest-shadowed ==)
108133func (r *NodeTemplatesService) List(project string, region string) *NodeTemplatesListCall {
108134	c := &NodeTemplatesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
108135	c.project = project
108136	c.region = region
108137	return c
108138}
108139
108140// Filter sets the optional parameter "filter": A filter expression that
108141// filters resources listed in the response. The expression must specify
108142// the field name, a comparison operator, and the value that you want to
108143// use for filtering. The value must be a string, a number, or a
108144// boolean. The comparison operator must be either =, !=, >, or <.
108145//
108146// For example, if you are filtering Compute Engine instances, you can
108147// exclude instances named example-instance by specifying name !=
108148// example-instance.
108149//
108150// You can also filter nested fields. For example, you could specify
108151// scheduling.automaticRestart = false to include instances only if they
108152// are not scheduled for automatic restarts. You can use filtering on
108153// nested fields to filter based on resource labels.
108154//
108155// To filter on multiple expressions, provide each separate expression
108156// within parentheses. For example, (scheduling.automaticRestart = true)
108157// (cpuPlatform = "Intel Skylake"). By default, each expression is an
108158// AND expression. However, you can include AND and OR expressions
108159// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
108160// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
108161// true).
108162func (c *NodeTemplatesListCall) Filter(filter string) *NodeTemplatesListCall {
108163	c.urlParams_.Set("filter", filter)
108164	return c
108165}
108166
108167// MaxResults sets the optional parameter "maxResults": The maximum
108168// number of results per page that should be returned. If the number of
108169// available results is larger than maxResults, Compute Engine returns a
108170// nextPageToken that can be used to get the next page of results in
108171// subsequent list requests. Acceptable values are 0 to 500, inclusive.
108172// (Default: 500)
108173func (c *NodeTemplatesListCall) MaxResults(maxResults int64) *NodeTemplatesListCall {
108174	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
108175	return c
108176}
108177
108178// OrderBy sets the optional parameter "orderBy": Sorts list results by
108179// a certain order. By default, results are returned in alphanumerical
108180// order based on the resource name.
108181//
108182// You can also sort results in descending order based on the creation
108183// timestamp using orderBy="creationTimestamp desc". This sorts results
108184// based on the creationTimestamp field in reverse chronological order
108185// (newest result first). Use this to sort resources like operations so
108186// that the newest operation is returned first.
108187//
108188// Currently, only sorting by name or creationTimestamp desc is
108189// supported.
108190func (c *NodeTemplatesListCall) OrderBy(orderBy string) *NodeTemplatesListCall {
108191	c.urlParams_.Set("orderBy", orderBy)
108192	return c
108193}
108194
108195// PageToken sets the optional parameter "pageToken": Specifies a page
108196// token to use. Set pageToken to the nextPageToken returned by a
108197// previous list request to get the next page of results.
108198func (c *NodeTemplatesListCall) PageToken(pageToken string) *NodeTemplatesListCall {
108199	c.urlParams_.Set("pageToken", pageToken)
108200	return c
108201}
108202
108203// Fields allows partial responses to be retrieved. See
108204// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
108205// for more information.
108206func (c *NodeTemplatesListCall) Fields(s ...googleapi.Field) *NodeTemplatesListCall {
108207	c.urlParams_.Set("fields", googleapi.CombineFields(s))
108208	return c
108209}
108210
108211// IfNoneMatch sets the optional parameter which makes the operation
108212// fail if the object's ETag matches the given value. This is useful for
108213// getting updates only after the object has changed since the last
108214// request. Use googleapi.IsNotModified to check whether the response
108215// error from Do is the result of In-None-Match.
108216func (c *NodeTemplatesListCall) IfNoneMatch(entityTag string) *NodeTemplatesListCall {
108217	c.ifNoneMatch_ = entityTag
108218	return c
108219}
108220
108221// Context sets the context to be used in this call's Do method. Any
108222// pending HTTP request will be aborted if the provided context is
108223// canceled.
108224func (c *NodeTemplatesListCall) Context(ctx context.Context) *NodeTemplatesListCall {
108225	c.ctx_ = ctx
108226	return c
108227}
108228
108229// Header returns an http.Header that can be modified by the caller to
108230// add HTTP headers to the request.
108231func (c *NodeTemplatesListCall) Header() http.Header {
108232	if c.header_ == nil {
108233		c.header_ = make(http.Header)
108234	}
108235	return c.header_
108236}
108237
108238func (c *NodeTemplatesListCall) doRequest(alt string) (*http.Response, error) {
108239	reqHeaders := make(http.Header)
108240	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
108241	for k, v := range c.header_ {
108242		reqHeaders[k] = v
108243	}
108244	reqHeaders.Set("User-Agent", c.s.userAgent())
108245	if c.ifNoneMatch_ != "" {
108246		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
108247	}
108248	var body io.Reader = nil
108249	c.urlParams_.Set("alt", alt)
108250	c.urlParams_.Set("prettyPrint", "false")
108251	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/nodeTemplates")
108252	urls += "?" + c.urlParams_.Encode()
108253	req, err := http.NewRequest("GET", urls, body)
108254	if err != nil {
108255		return nil, err
108256	}
108257	req.Header = reqHeaders
108258	googleapi.Expand(req.URL, map[string]string{
108259		"project": c.project,
108260		"region":  c.region,
108261	})
108262	return gensupport.SendRequest(c.ctx_, c.s.client, req)
108263}
108264
108265// Do executes the "compute.nodeTemplates.list" call.
108266// Exactly one of *NodeTemplateList or error will be non-nil. Any
108267// non-2xx status code is an error. Response headers are in either
108268// *NodeTemplateList.ServerResponse.Header or (if a response was
108269// returned at all) in error.(*googleapi.Error).Header. Use
108270// googleapi.IsNotModified to check whether the returned error was
108271// because http.StatusNotModified was returned.
108272func (c *NodeTemplatesListCall) Do(opts ...googleapi.CallOption) (*NodeTemplateList, error) {
108273	gensupport.SetOptions(c.urlParams_, opts...)
108274	res, err := c.doRequest("json")
108275	if res != nil && res.StatusCode == http.StatusNotModified {
108276		if res.Body != nil {
108277			res.Body.Close()
108278		}
108279		return nil, &googleapi.Error{
108280			Code:   res.StatusCode,
108281			Header: res.Header,
108282		}
108283	}
108284	if err != nil {
108285		return nil, err
108286	}
108287	defer googleapi.CloseBody(res)
108288	if err := googleapi.CheckResponse(res); err != nil {
108289		return nil, err
108290	}
108291	ret := &NodeTemplateList{
108292		ServerResponse: googleapi.ServerResponse{
108293			Header:         res.Header,
108294			HTTPStatusCode: res.StatusCode,
108295		},
108296	}
108297	target := &ret
108298	if err := gensupport.DecodeResponse(target, res); err != nil {
108299		return nil, err
108300	}
108301	return ret, nil
108302	// {
108303	//   "description": "Retrieves a list of node templates available to the specified project. (== suppress_warning http-rest-shadowed ==)",
108304	//   "httpMethod": "GET",
108305	//   "id": "compute.nodeTemplates.list",
108306	//   "parameterOrder": [
108307	//     "project",
108308	//     "region"
108309	//   ],
108310	//   "parameters": {
108311	//     "filter": {
108312	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
108313	//       "location": "query",
108314	//       "type": "string"
108315	//     },
108316	//     "maxResults": {
108317	//       "default": "500",
108318	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
108319	//       "format": "uint32",
108320	//       "location": "query",
108321	//       "minimum": "0",
108322	//       "type": "integer"
108323	//     },
108324	//     "orderBy": {
108325	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
108326	//       "location": "query",
108327	//       "type": "string"
108328	//     },
108329	//     "pageToken": {
108330	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
108331	//       "location": "query",
108332	//       "type": "string"
108333	//     },
108334	//     "project": {
108335	//       "description": "Project ID for this request.",
108336	//       "location": "path",
108337	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
108338	//       "required": true,
108339	//       "type": "string"
108340	//     },
108341	//     "region": {
108342	//       "description": "The name of the region for this request.",
108343	//       "location": "path",
108344	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
108345	//       "required": true,
108346	//       "type": "string"
108347	//     }
108348	//   },
108349	//   "path": "{project}/regions/{region}/nodeTemplates",
108350	//   "response": {
108351	//     "$ref": "NodeTemplateList"
108352	//   },
108353	//   "scopes": [
108354	//     "https://www.googleapis.com/auth/cloud-platform",
108355	//     "https://www.googleapis.com/auth/compute",
108356	//     "https://www.googleapis.com/auth/compute.readonly"
108357	//   ]
108358	// }
108359
108360}
108361
108362// Pages invokes f for each page of results.
108363// A non-nil error returned from f will halt the iteration.
108364// The provided context supersedes any context provided to the Context method.
108365func (c *NodeTemplatesListCall) Pages(ctx context.Context, f func(*NodeTemplateList) error) error {
108366	c.ctx_ = ctx
108367	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
108368	for {
108369		x, err := c.Do()
108370		if err != nil {
108371			return err
108372		}
108373		if err := f(x); err != nil {
108374			return err
108375		}
108376		if x.NextPageToken == "" {
108377			return nil
108378		}
108379		c.PageToken(x.NextPageToken)
108380	}
108381}
108382
108383// method id "compute.nodeTemplates.setIamPolicy":
108384
108385type NodeTemplatesSetIamPolicyCall struct {
108386	s                      *Service
108387	project                string
108388	region                 string
108389	resource               string
108390	regionsetpolicyrequest *RegionSetPolicyRequest
108391	urlParams_             gensupport.URLParams
108392	ctx_                   context.Context
108393	header_                http.Header
108394}
108395
108396// SetIamPolicy: Sets the access control policy on the specified
108397// resource. Replaces any existing policy. (== suppress_warning
108398// http-rest-shadowed ==)
108399func (r *NodeTemplatesService) SetIamPolicy(project string, region string, resource string, regionsetpolicyrequest *RegionSetPolicyRequest) *NodeTemplatesSetIamPolicyCall {
108400	c := &NodeTemplatesSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
108401	c.project = project
108402	c.region = region
108403	c.resource = resource
108404	c.regionsetpolicyrequest = regionsetpolicyrequest
108405	return c
108406}
108407
108408// Fields allows partial responses to be retrieved. See
108409// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
108410// for more information.
108411func (c *NodeTemplatesSetIamPolicyCall) Fields(s ...googleapi.Field) *NodeTemplatesSetIamPolicyCall {
108412	c.urlParams_.Set("fields", googleapi.CombineFields(s))
108413	return c
108414}
108415
108416// Context sets the context to be used in this call's Do method. Any
108417// pending HTTP request will be aborted if the provided context is
108418// canceled.
108419func (c *NodeTemplatesSetIamPolicyCall) Context(ctx context.Context) *NodeTemplatesSetIamPolicyCall {
108420	c.ctx_ = ctx
108421	return c
108422}
108423
108424// Header returns an http.Header that can be modified by the caller to
108425// add HTTP headers to the request.
108426func (c *NodeTemplatesSetIamPolicyCall) Header() http.Header {
108427	if c.header_ == nil {
108428		c.header_ = make(http.Header)
108429	}
108430	return c.header_
108431}
108432
108433func (c *NodeTemplatesSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
108434	reqHeaders := make(http.Header)
108435	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
108436	for k, v := range c.header_ {
108437		reqHeaders[k] = v
108438	}
108439	reqHeaders.Set("User-Agent", c.s.userAgent())
108440	var body io.Reader = nil
108441	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetpolicyrequest)
108442	if err != nil {
108443		return nil, err
108444	}
108445	reqHeaders.Set("Content-Type", "application/json")
108446	c.urlParams_.Set("alt", alt)
108447	c.urlParams_.Set("prettyPrint", "false")
108448	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/nodeTemplates/{resource}/setIamPolicy")
108449	urls += "?" + c.urlParams_.Encode()
108450	req, err := http.NewRequest("POST", urls, body)
108451	if err != nil {
108452		return nil, err
108453	}
108454	req.Header = reqHeaders
108455	googleapi.Expand(req.URL, map[string]string{
108456		"project":  c.project,
108457		"region":   c.region,
108458		"resource": c.resource,
108459	})
108460	return gensupport.SendRequest(c.ctx_, c.s.client, req)
108461}
108462
108463// Do executes the "compute.nodeTemplates.setIamPolicy" call.
108464// Exactly one of *Policy or error will be non-nil. Any non-2xx status
108465// code is an error. Response headers are in either
108466// *Policy.ServerResponse.Header or (if a response was returned at all)
108467// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
108468// check whether the returned error was because http.StatusNotModified
108469// was returned.
108470func (c *NodeTemplatesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
108471	gensupport.SetOptions(c.urlParams_, opts...)
108472	res, err := c.doRequest("json")
108473	if res != nil && res.StatusCode == http.StatusNotModified {
108474		if res.Body != nil {
108475			res.Body.Close()
108476		}
108477		return nil, &googleapi.Error{
108478			Code:   res.StatusCode,
108479			Header: res.Header,
108480		}
108481	}
108482	if err != nil {
108483		return nil, err
108484	}
108485	defer googleapi.CloseBody(res)
108486	if err := googleapi.CheckResponse(res); err != nil {
108487		return nil, err
108488	}
108489	ret := &Policy{
108490		ServerResponse: googleapi.ServerResponse{
108491			Header:         res.Header,
108492			HTTPStatusCode: res.StatusCode,
108493		},
108494	}
108495	target := &ret
108496	if err := gensupport.DecodeResponse(target, res); err != nil {
108497		return nil, err
108498	}
108499	return ret, nil
108500	// {
108501	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy. (== suppress_warning http-rest-shadowed ==)",
108502	//   "httpMethod": "POST",
108503	//   "id": "compute.nodeTemplates.setIamPolicy",
108504	//   "parameterOrder": [
108505	//     "project",
108506	//     "region",
108507	//     "resource"
108508	//   ],
108509	//   "parameters": {
108510	//     "project": {
108511	//       "description": "Project ID for this request.",
108512	//       "location": "path",
108513	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
108514	//       "required": true,
108515	//       "type": "string"
108516	//     },
108517	//     "region": {
108518	//       "description": "The name of the region for this request.",
108519	//       "location": "path",
108520	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
108521	//       "required": true,
108522	//       "type": "string"
108523	//     },
108524	//     "resource": {
108525	//       "description": "Name or id of the resource for this request.",
108526	//       "location": "path",
108527	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
108528	//       "required": true,
108529	//       "type": "string"
108530	//     }
108531	//   },
108532	//   "path": "{project}/regions/{region}/nodeTemplates/{resource}/setIamPolicy",
108533	//   "request": {
108534	//     "$ref": "RegionSetPolicyRequest"
108535	//   },
108536	//   "response": {
108537	//     "$ref": "Policy"
108538	//   },
108539	//   "scopes": [
108540	//     "https://www.googleapis.com/auth/cloud-platform",
108541	//     "https://www.googleapis.com/auth/compute"
108542	//   ]
108543	// }
108544
108545}
108546
108547// method id "compute.nodeTemplates.testIamPermissions":
108548
108549type NodeTemplatesTestIamPermissionsCall struct {
108550	s                      *Service
108551	project                string
108552	region                 string
108553	resource               string
108554	testpermissionsrequest *TestPermissionsRequest
108555	urlParams_             gensupport.URLParams
108556	ctx_                   context.Context
108557	header_                http.Header
108558}
108559
108560// TestIamPermissions: Returns permissions that a caller has on the
108561// specified resource. (== suppress_warning http-rest-shadowed ==)
108562func (r *NodeTemplatesService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *NodeTemplatesTestIamPermissionsCall {
108563	c := &NodeTemplatesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
108564	c.project = project
108565	c.region = region
108566	c.resource = resource
108567	c.testpermissionsrequest = testpermissionsrequest
108568	return c
108569}
108570
108571// Fields allows partial responses to be retrieved. See
108572// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
108573// for more information.
108574func (c *NodeTemplatesTestIamPermissionsCall) Fields(s ...googleapi.Field) *NodeTemplatesTestIamPermissionsCall {
108575	c.urlParams_.Set("fields", googleapi.CombineFields(s))
108576	return c
108577}
108578
108579// Context sets the context to be used in this call's Do method. Any
108580// pending HTTP request will be aborted if the provided context is
108581// canceled.
108582func (c *NodeTemplatesTestIamPermissionsCall) Context(ctx context.Context) *NodeTemplatesTestIamPermissionsCall {
108583	c.ctx_ = ctx
108584	return c
108585}
108586
108587// Header returns an http.Header that can be modified by the caller to
108588// add HTTP headers to the request.
108589func (c *NodeTemplatesTestIamPermissionsCall) Header() http.Header {
108590	if c.header_ == nil {
108591		c.header_ = make(http.Header)
108592	}
108593	return c.header_
108594}
108595
108596func (c *NodeTemplatesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
108597	reqHeaders := make(http.Header)
108598	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
108599	for k, v := range c.header_ {
108600		reqHeaders[k] = v
108601	}
108602	reqHeaders.Set("User-Agent", c.s.userAgent())
108603	var body io.Reader = nil
108604	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
108605	if err != nil {
108606		return nil, err
108607	}
108608	reqHeaders.Set("Content-Type", "application/json")
108609	c.urlParams_.Set("alt", alt)
108610	c.urlParams_.Set("prettyPrint", "false")
108611	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/nodeTemplates/{resource}/testIamPermissions")
108612	urls += "?" + c.urlParams_.Encode()
108613	req, err := http.NewRequest("POST", urls, body)
108614	if err != nil {
108615		return nil, err
108616	}
108617	req.Header = reqHeaders
108618	googleapi.Expand(req.URL, map[string]string{
108619		"project":  c.project,
108620		"region":   c.region,
108621		"resource": c.resource,
108622	})
108623	return gensupport.SendRequest(c.ctx_, c.s.client, req)
108624}
108625
108626// Do executes the "compute.nodeTemplates.testIamPermissions" call.
108627// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
108628// non-2xx status code is an error. Response headers are in either
108629// *TestPermissionsResponse.ServerResponse.Header or (if a response was
108630// returned at all) in error.(*googleapi.Error).Header. Use
108631// googleapi.IsNotModified to check whether the returned error was
108632// because http.StatusNotModified was returned.
108633func (c *NodeTemplatesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
108634	gensupport.SetOptions(c.urlParams_, opts...)
108635	res, err := c.doRequest("json")
108636	if res != nil && res.StatusCode == http.StatusNotModified {
108637		if res.Body != nil {
108638			res.Body.Close()
108639		}
108640		return nil, &googleapi.Error{
108641			Code:   res.StatusCode,
108642			Header: res.Header,
108643		}
108644	}
108645	if err != nil {
108646		return nil, err
108647	}
108648	defer googleapi.CloseBody(res)
108649	if err := googleapi.CheckResponse(res); err != nil {
108650		return nil, err
108651	}
108652	ret := &TestPermissionsResponse{
108653		ServerResponse: googleapi.ServerResponse{
108654			Header:         res.Header,
108655			HTTPStatusCode: res.StatusCode,
108656		},
108657	}
108658	target := &ret
108659	if err := gensupport.DecodeResponse(target, res); err != nil {
108660		return nil, err
108661	}
108662	return ret, nil
108663	// {
108664	//   "description": "Returns permissions that a caller has on the specified resource. (== suppress_warning http-rest-shadowed ==)",
108665	//   "httpMethod": "POST",
108666	//   "id": "compute.nodeTemplates.testIamPermissions",
108667	//   "parameterOrder": [
108668	//     "project",
108669	//     "region",
108670	//     "resource"
108671	//   ],
108672	//   "parameters": {
108673	//     "project": {
108674	//       "description": "Project ID for this request.",
108675	//       "location": "path",
108676	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
108677	//       "required": true,
108678	//       "type": "string"
108679	//     },
108680	//     "region": {
108681	//       "description": "The name of the region for this request.",
108682	//       "location": "path",
108683	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
108684	//       "required": true,
108685	//       "type": "string"
108686	//     },
108687	//     "resource": {
108688	//       "description": "Name or id of the resource for this request.",
108689	//       "location": "path",
108690	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
108691	//       "required": true,
108692	//       "type": "string"
108693	//     }
108694	//   },
108695	//   "path": "{project}/regions/{region}/nodeTemplates/{resource}/testIamPermissions",
108696	//   "request": {
108697	//     "$ref": "TestPermissionsRequest"
108698	//   },
108699	//   "response": {
108700	//     "$ref": "TestPermissionsResponse"
108701	//   },
108702	//   "scopes": [
108703	//     "https://www.googleapis.com/auth/cloud-platform",
108704	//     "https://www.googleapis.com/auth/compute",
108705	//     "https://www.googleapis.com/auth/compute.readonly"
108706	//   ]
108707	// }
108708
108709}
108710
108711// method id "compute.nodeTypes.aggregatedList":
108712
108713type NodeTypesAggregatedListCall struct {
108714	s            *Service
108715	project      string
108716	urlParams_   gensupport.URLParams
108717	ifNoneMatch_ string
108718	ctx_         context.Context
108719	header_      http.Header
108720}
108721
108722// AggregatedList: Retrieves an aggregated list of node types. (==
108723// suppress_warning http-rest-shadowed ==)
108724func (r *NodeTypesService) AggregatedList(project string) *NodeTypesAggregatedListCall {
108725	c := &NodeTypesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
108726	c.project = project
108727	return c
108728}
108729
108730// Filter sets the optional parameter "filter": A filter expression that
108731// filters resources listed in the response. The expression must specify
108732// the field name, a comparison operator, and the value that you want to
108733// use for filtering. The value must be a string, a number, or a
108734// boolean. The comparison operator must be either =, !=, >, or <.
108735//
108736// For example, if you are filtering Compute Engine instances, you can
108737// exclude instances named example-instance by specifying name !=
108738// example-instance.
108739//
108740// You can also filter nested fields. For example, you could specify
108741// scheduling.automaticRestart = false to include instances only if they
108742// are not scheduled for automatic restarts. You can use filtering on
108743// nested fields to filter based on resource labels.
108744//
108745// To filter on multiple expressions, provide each separate expression
108746// within parentheses. For example, (scheduling.automaticRestart = true)
108747// (cpuPlatform = "Intel Skylake"). By default, each expression is an
108748// AND expression. However, you can include AND and OR expressions
108749// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
108750// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
108751// true).
108752func (c *NodeTypesAggregatedListCall) Filter(filter string) *NodeTypesAggregatedListCall {
108753	c.urlParams_.Set("filter", filter)
108754	return c
108755}
108756
108757// MaxResults sets the optional parameter "maxResults": The maximum
108758// number of results per page that should be returned. If the number of
108759// available results is larger than maxResults, Compute Engine returns a
108760// nextPageToken that can be used to get the next page of results in
108761// subsequent list requests. Acceptable values are 0 to 500, inclusive.
108762// (Default: 500)
108763func (c *NodeTypesAggregatedListCall) MaxResults(maxResults int64) *NodeTypesAggregatedListCall {
108764	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
108765	return c
108766}
108767
108768// OrderBy sets the optional parameter "orderBy": Sorts list results by
108769// a certain order. By default, results are returned in alphanumerical
108770// order based on the resource name.
108771//
108772// You can also sort results in descending order based on the creation
108773// timestamp using orderBy="creationTimestamp desc". This sorts results
108774// based on the creationTimestamp field in reverse chronological order
108775// (newest result first). Use this to sort resources like operations so
108776// that the newest operation is returned first.
108777//
108778// Currently, only sorting by name or creationTimestamp desc is
108779// supported.
108780func (c *NodeTypesAggregatedListCall) OrderBy(orderBy string) *NodeTypesAggregatedListCall {
108781	c.urlParams_.Set("orderBy", orderBy)
108782	return c
108783}
108784
108785// PageToken sets the optional parameter "pageToken": Specifies a page
108786// token to use. Set pageToken to the nextPageToken returned by a
108787// previous list request to get the next page of results.
108788func (c *NodeTypesAggregatedListCall) PageToken(pageToken string) *NodeTypesAggregatedListCall {
108789	c.urlParams_.Set("pageToken", pageToken)
108790	return c
108791}
108792
108793// Fields allows partial responses to be retrieved. See
108794// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
108795// for more information.
108796func (c *NodeTypesAggregatedListCall) Fields(s ...googleapi.Field) *NodeTypesAggregatedListCall {
108797	c.urlParams_.Set("fields", googleapi.CombineFields(s))
108798	return c
108799}
108800
108801// IfNoneMatch sets the optional parameter which makes the operation
108802// fail if the object's ETag matches the given value. This is useful for
108803// getting updates only after the object has changed since the last
108804// request. Use googleapi.IsNotModified to check whether the response
108805// error from Do is the result of In-None-Match.
108806func (c *NodeTypesAggregatedListCall) IfNoneMatch(entityTag string) *NodeTypesAggregatedListCall {
108807	c.ifNoneMatch_ = entityTag
108808	return c
108809}
108810
108811// Context sets the context to be used in this call's Do method. Any
108812// pending HTTP request will be aborted if the provided context is
108813// canceled.
108814func (c *NodeTypesAggregatedListCall) Context(ctx context.Context) *NodeTypesAggregatedListCall {
108815	c.ctx_ = ctx
108816	return c
108817}
108818
108819// Header returns an http.Header that can be modified by the caller to
108820// add HTTP headers to the request.
108821func (c *NodeTypesAggregatedListCall) Header() http.Header {
108822	if c.header_ == nil {
108823		c.header_ = make(http.Header)
108824	}
108825	return c.header_
108826}
108827
108828func (c *NodeTypesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
108829	reqHeaders := make(http.Header)
108830	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
108831	for k, v := range c.header_ {
108832		reqHeaders[k] = v
108833	}
108834	reqHeaders.Set("User-Agent", c.s.userAgent())
108835	if c.ifNoneMatch_ != "" {
108836		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
108837	}
108838	var body io.Reader = nil
108839	c.urlParams_.Set("alt", alt)
108840	c.urlParams_.Set("prettyPrint", "false")
108841	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/nodeTypes")
108842	urls += "?" + c.urlParams_.Encode()
108843	req, err := http.NewRequest("GET", urls, body)
108844	if err != nil {
108845		return nil, err
108846	}
108847	req.Header = reqHeaders
108848	googleapi.Expand(req.URL, map[string]string{
108849		"project": c.project,
108850	})
108851	return gensupport.SendRequest(c.ctx_, c.s.client, req)
108852}
108853
108854// Do executes the "compute.nodeTypes.aggregatedList" call.
108855// Exactly one of *NodeTypeAggregatedList or error will be non-nil. Any
108856// non-2xx status code is an error. Response headers are in either
108857// *NodeTypeAggregatedList.ServerResponse.Header or (if a response was
108858// returned at all) in error.(*googleapi.Error).Header. Use
108859// googleapi.IsNotModified to check whether the returned error was
108860// because http.StatusNotModified was returned.
108861func (c *NodeTypesAggregatedListCall) Do(opts ...googleapi.CallOption) (*NodeTypeAggregatedList, error) {
108862	gensupport.SetOptions(c.urlParams_, opts...)
108863	res, err := c.doRequest("json")
108864	if res != nil && res.StatusCode == http.StatusNotModified {
108865		if res.Body != nil {
108866			res.Body.Close()
108867		}
108868		return nil, &googleapi.Error{
108869			Code:   res.StatusCode,
108870			Header: res.Header,
108871		}
108872	}
108873	if err != nil {
108874		return nil, err
108875	}
108876	defer googleapi.CloseBody(res)
108877	if err := googleapi.CheckResponse(res); err != nil {
108878		return nil, err
108879	}
108880	ret := &NodeTypeAggregatedList{
108881		ServerResponse: googleapi.ServerResponse{
108882			Header:         res.Header,
108883			HTTPStatusCode: res.StatusCode,
108884		},
108885	}
108886	target := &ret
108887	if err := gensupport.DecodeResponse(target, res); err != nil {
108888		return nil, err
108889	}
108890	return ret, nil
108891	// {
108892	//   "description": "Retrieves an aggregated list of node types. (== suppress_warning http-rest-shadowed ==)",
108893	//   "httpMethod": "GET",
108894	//   "id": "compute.nodeTypes.aggregatedList",
108895	//   "parameterOrder": [
108896	//     "project"
108897	//   ],
108898	//   "parameters": {
108899	//     "filter": {
108900	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
108901	//       "location": "query",
108902	//       "type": "string"
108903	//     },
108904	//     "maxResults": {
108905	//       "default": "500",
108906	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
108907	//       "format": "uint32",
108908	//       "location": "query",
108909	//       "minimum": "0",
108910	//       "type": "integer"
108911	//     },
108912	//     "orderBy": {
108913	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
108914	//       "location": "query",
108915	//       "type": "string"
108916	//     },
108917	//     "pageToken": {
108918	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
108919	//       "location": "query",
108920	//       "type": "string"
108921	//     },
108922	//     "project": {
108923	//       "description": "Project ID for this request.",
108924	//       "location": "path",
108925	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
108926	//       "required": true,
108927	//       "type": "string"
108928	//     }
108929	//   },
108930	//   "path": "{project}/aggregated/nodeTypes",
108931	//   "response": {
108932	//     "$ref": "NodeTypeAggregatedList"
108933	//   },
108934	//   "scopes": [
108935	//     "https://www.googleapis.com/auth/cloud-platform",
108936	//     "https://www.googleapis.com/auth/compute",
108937	//     "https://www.googleapis.com/auth/compute.readonly"
108938	//   ]
108939	// }
108940
108941}
108942
108943// Pages invokes f for each page of results.
108944// A non-nil error returned from f will halt the iteration.
108945// The provided context supersedes any context provided to the Context method.
108946func (c *NodeTypesAggregatedListCall) Pages(ctx context.Context, f func(*NodeTypeAggregatedList) error) error {
108947	c.ctx_ = ctx
108948	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
108949	for {
108950		x, err := c.Do()
108951		if err != nil {
108952			return err
108953		}
108954		if err := f(x); err != nil {
108955			return err
108956		}
108957		if x.NextPageToken == "" {
108958			return nil
108959		}
108960		c.PageToken(x.NextPageToken)
108961	}
108962}
108963
108964// method id "compute.nodeTypes.get":
108965
108966type NodeTypesGetCall struct {
108967	s            *Service
108968	project      string
108969	zone         string
108970	nodeType     string
108971	urlParams_   gensupport.URLParams
108972	ifNoneMatch_ string
108973	ctx_         context.Context
108974	header_      http.Header
108975}
108976
108977// Get: Returns the specified node type. Gets a list of available node
108978// types by making a list() request. (== suppress_warning
108979// http-rest-shadowed ==)
108980func (r *NodeTypesService) Get(project string, zone string, nodeType string) *NodeTypesGetCall {
108981	c := &NodeTypesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
108982	c.project = project
108983	c.zone = zone
108984	c.nodeType = nodeType
108985	return c
108986}
108987
108988// Fields allows partial responses to be retrieved. See
108989// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
108990// for more information.
108991func (c *NodeTypesGetCall) Fields(s ...googleapi.Field) *NodeTypesGetCall {
108992	c.urlParams_.Set("fields", googleapi.CombineFields(s))
108993	return c
108994}
108995
108996// IfNoneMatch sets the optional parameter which makes the operation
108997// fail if the object's ETag matches the given value. This is useful for
108998// getting updates only after the object has changed since the last
108999// request. Use googleapi.IsNotModified to check whether the response
109000// error from Do is the result of In-None-Match.
109001func (c *NodeTypesGetCall) IfNoneMatch(entityTag string) *NodeTypesGetCall {
109002	c.ifNoneMatch_ = entityTag
109003	return c
109004}
109005
109006// Context sets the context to be used in this call's Do method. Any
109007// pending HTTP request will be aborted if the provided context is
109008// canceled.
109009func (c *NodeTypesGetCall) Context(ctx context.Context) *NodeTypesGetCall {
109010	c.ctx_ = ctx
109011	return c
109012}
109013
109014// Header returns an http.Header that can be modified by the caller to
109015// add HTTP headers to the request.
109016func (c *NodeTypesGetCall) Header() http.Header {
109017	if c.header_ == nil {
109018		c.header_ = make(http.Header)
109019	}
109020	return c.header_
109021}
109022
109023func (c *NodeTypesGetCall) doRequest(alt string) (*http.Response, error) {
109024	reqHeaders := make(http.Header)
109025	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
109026	for k, v := range c.header_ {
109027		reqHeaders[k] = v
109028	}
109029	reqHeaders.Set("User-Agent", c.s.userAgent())
109030	if c.ifNoneMatch_ != "" {
109031		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
109032	}
109033	var body io.Reader = nil
109034	c.urlParams_.Set("alt", alt)
109035	c.urlParams_.Set("prettyPrint", "false")
109036	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/nodeTypes/{nodeType}")
109037	urls += "?" + c.urlParams_.Encode()
109038	req, err := http.NewRequest("GET", urls, body)
109039	if err != nil {
109040		return nil, err
109041	}
109042	req.Header = reqHeaders
109043	googleapi.Expand(req.URL, map[string]string{
109044		"project":  c.project,
109045		"zone":     c.zone,
109046		"nodeType": c.nodeType,
109047	})
109048	return gensupport.SendRequest(c.ctx_, c.s.client, req)
109049}
109050
109051// Do executes the "compute.nodeTypes.get" call.
109052// Exactly one of *NodeType or error will be non-nil. Any non-2xx status
109053// code is an error. Response headers are in either
109054// *NodeType.ServerResponse.Header or (if a response was returned at
109055// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
109056// to check whether the returned error was because
109057// http.StatusNotModified was returned.
109058func (c *NodeTypesGetCall) Do(opts ...googleapi.CallOption) (*NodeType, error) {
109059	gensupport.SetOptions(c.urlParams_, opts...)
109060	res, err := c.doRequest("json")
109061	if res != nil && res.StatusCode == http.StatusNotModified {
109062		if res.Body != nil {
109063			res.Body.Close()
109064		}
109065		return nil, &googleapi.Error{
109066			Code:   res.StatusCode,
109067			Header: res.Header,
109068		}
109069	}
109070	if err != nil {
109071		return nil, err
109072	}
109073	defer googleapi.CloseBody(res)
109074	if err := googleapi.CheckResponse(res); err != nil {
109075		return nil, err
109076	}
109077	ret := &NodeType{
109078		ServerResponse: googleapi.ServerResponse{
109079			Header:         res.Header,
109080			HTTPStatusCode: res.StatusCode,
109081		},
109082	}
109083	target := &ret
109084	if err := gensupport.DecodeResponse(target, res); err != nil {
109085		return nil, err
109086	}
109087	return ret, nil
109088	// {
109089	//   "description": "Returns the specified node type. Gets a list of available node types by making a list() request. (== suppress_warning http-rest-shadowed ==)",
109090	//   "httpMethod": "GET",
109091	//   "id": "compute.nodeTypes.get",
109092	//   "parameterOrder": [
109093	//     "project",
109094	//     "zone",
109095	//     "nodeType"
109096	//   ],
109097	//   "parameters": {
109098	//     "nodeType": {
109099	//       "description": "Name of the node type to return.",
109100	//       "location": "path",
109101	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
109102	//       "required": true,
109103	//       "type": "string"
109104	//     },
109105	//     "project": {
109106	//       "description": "Project ID for this request.",
109107	//       "location": "path",
109108	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
109109	//       "required": true,
109110	//       "type": "string"
109111	//     },
109112	//     "zone": {
109113	//       "description": "The name of the zone for this request.",
109114	//       "location": "path",
109115	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
109116	//       "required": true,
109117	//       "type": "string"
109118	//     }
109119	//   },
109120	//   "path": "{project}/zones/{zone}/nodeTypes/{nodeType}",
109121	//   "response": {
109122	//     "$ref": "NodeType"
109123	//   },
109124	//   "scopes": [
109125	//     "https://www.googleapis.com/auth/cloud-platform",
109126	//     "https://www.googleapis.com/auth/compute",
109127	//     "https://www.googleapis.com/auth/compute.readonly"
109128	//   ]
109129	// }
109130
109131}
109132
109133// method id "compute.nodeTypes.list":
109134
109135type NodeTypesListCall struct {
109136	s            *Service
109137	project      string
109138	zone         string
109139	urlParams_   gensupport.URLParams
109140	ifNoneMatch_ string
109141	ctx_         context.Context
109142	header_      http.Header
109143}
109144
109145// List: Retrieves a list of node types available to the specified
109146// project. (== suppress_warning http-rest-shadowed ==)
109147func (r *NodeTypesService) List(project string, zone string) *NodeTypesListCall {
109148	c := &NodeTypesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
109149	c.project = project
109150	c.zone = zone
109151	return c
109152}
109153
109154// Filter sets the optional parameter "filter": A filter expression that
109155// filters resources listed in the response. The expression must specify
109156// the field name, a comparison operator, and the value that you want to
109157// use for filtering. The value must be a string, a number, or a
109158// boolean. The comparison operator must be either =, !=, >, or <.
109159//
109160// For example, if you are filtering Compute Engine instances, you can
109161// exclude instances named example-instance by specifying name !=
109162// example-instance.
109163//
109164// You can also filter nested fields. For example, you could specify
109165// scheduling.automaticRestart = false to include instances only if they
109166// are not scheduled for automatic restarts. You can use filtering on
109167// nested fields to filter based on resource labels.
109168//
109169// To filter on multiple expressions, provide each separate expression
109170// within parentheses. For example, (scheduling.automaticRestart = true)
109171// (cpuPlatform = "Intel Skylake"). By default, each expression is an
109172// AND expression. However, you can include AND and OR expressions
109173// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
109174// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
109175// true).
109176func (c *NodeTypesListCall) Filter(filter string) *NodeTypesListCall {
109177	c.urlParams_.Set("filter", filter)
109178	return c
109179}
109180
109181// MaxResults sets the optional parameter "maxResults": The maximum
109182// number of results per page that should be returned. If the number of
109183// available results is larger than maxResults, Compute Engine returns a
109184// nextPageToken that can be used to get the next page of results in
109185// subsequent list requests. Acceptable values are 0 to 500, inclusive.
109186// (Default: 500)
109187func (c *NodeTypesListCall) MaxResults(maxResults int64) *NodeTypesListCall {
109188	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
109189	return c
109190}
109191
109192// OrderBy sets the optional parameter "orderBy": Sorts list results by
109193// a certain order. By default, results are returned in alphanumerical
109194// order based on the resource name.
109195//
109196// You can also sort results in descending order based on the creation
109197// timestamp using orderBy="creationTimestamp desc". This sorts results
109198// based on the creationTimestamp field in reverse chronological order
109199// (newest result first). Use this to sort resources like operations so
109200// that the newest operation is returned first.
109201//
109202// Currently, only sorting by name or creationTimestamp desc is
109203// supported.
109204func (c *NodeTypesListCall) OrderBy(orderBy string) *NodeTypesListCall {
109205	c.urlParams_.Set("orderBy", orderBy)
109206	return c
109207}
109208
109209// PageToken sets the optional parameter "pageToken": Specifies a page
109210// token to use. Set pageToken to the nextPageToken returned by a
109211// previous list request to get the next page of results.
109212func (c *NodeTypesListCall) PageToken(pageToken string) *NodeTypesListCall {
109213	c.urlParams_.Set("pageToken", pageToken)
109214	return c
109215}
109216
109217// Fields allows partial responses to be retrieved. See
109218// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
109219// for more information.
109220func (c *NodeTypesListCall) Fields(s ...googleapi.Field) *NodeTypesListCall {
109221	c.urlParams_.Set("fields", googleapi.CombineFields(s))
109222	return c
109223}
109224
109225// IfNoneMatch sets the optional parameter which makes the operation
109226// fail if the object's ETag matches the given value. This is useful for
109227// getting updates only after the object has changed since the last
109228// request. Use googleapi.IsNotModified to check whether the response
109229// error from Do is the result of In-None-Match.
109230func (c *NodeTypesListCall) IfNoneMatch(entityTag string) *NodeTypesListCall {
109231	c.ifNoneMatch_ = entityTag
109232	return c
109233}
109234
109235// Context sets the context to be used in this call's Do method. Any
109236// pending HTTP request will be aborted if the provided context is
109237// canceled.
109238func (c *NodeTypesListCall) Context(ctx context.Context) *NodeTypesListCall {
109239	c.ctx_ = ctx
109240	return c
109241}
109242
109243// Header returns an http.Header that can be modified by the caller to
109244// add HTTP headers to the request.
109245func (c *NodeTypesListCall) Header() http.Header {
109246	if c.header_ == nil {
109247		c.header_ = make(http.Header)
109248	}
109249	return c.header_
109250}
109251
109252func (c *NodeTypesListCall) doRequest(alt string) (*http.Response, error) {
109253	reqHeaders := make(http.Header)
109254	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
109255	for k, v := range c.header_ {
109256		reqHeaders[k] = v
109257	}
109258	reqHeaders.Set("User-Agent", c.s.userAgent())
109259	if c.ifNoneMatch_ != "" {
109260		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
109261	}
109262	var body io.Reader = nil
109263	c.urlParams_.Set("alt", alt)
109264	c.urlParams_.Set("prettyPrint", "false")
109265	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/nodeTypes")
109266	urls += "?" + c.urlParams_.Encode()
109267	req, err := http.NewRequest("GET", urls, body)
109268	if err != nil {
109269		return nil, err
109270	}
109271	req.Header = reqHeaders
109272	googleapi.Expand(req.URL, map[string]string{
109273		"project": c.project,
109274		"zone":    c.zone,
109275	})
109276	return gensupport.SendRequest(c.ctx_, c.s.client, req)
109277}
109278
109279// Do executes the "compute.nodeTypes.list" call.
109280// Exactly one of *NodeTypeList or error will be non-nil. Any non-2xx
109281// status code is an error. Response headers are in either
109282// *NodeTypeList.ServerResponse.Header or (if a response was returned at
109283// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
109284// to check whether the returned error was because
109285// http.StatusNotModified was returned.
109286func (c *NodeTypesListCall) Do(opts ...googleapi.CallOption) (*NodeTypeList, error) {
109287	gensupport.SetOptions(c.urlParams_, opts...)
109288	res, err := c.doRequest("json")
109289	if res != nil && res.StatusCode == http.StatusNotModified {
109290		if res.Body != nil {
109291			res.Body.Close()
109292		}
109293		return nil, &googleapi.Error{
109294			Code:   res.StatusCode,
109295			Header: res.Header,
109296		}
109297	}
109298	if err != nil {
109299		return nil, err
109300	}
109301	defer googleapi.CloseBody(res)
109302	if err := googleapi.CheckResponse(res); err != nil {
109303		return nil, err
109304	}
109305	ret := &NodeTypeList{
109306		ServerResponse: googleapi.ServerResponse{
109307			Header:         res.Header,
109308			HTTPStatusCode: res.StatusCode,
109309		},
109310	}
109311	target := &ret
109312	if err := gensupport.DecodeResponse(target, res); err != nil {
109313		return nil, err
109314	}
109315	return ret, nil
109316	// {
109317	//   "description": "Retrieves a list of node types available to the specified project. (== suppress_warning http-rest-shadowed ==)",
109318	//   "httpMethod": "GET",
109319	//   "id": "compute.nodeTypes.list",
109320	//   "parameterOrder": [
109321	//     "project",
109322	//     "zone"
109323	//   ],
109324	//   "parameters": {
109325	//     "filter": {
109326	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
109327	//       "location": "query",
109328	//       "type": "string"
109329	//     },
109330	//     "maxResults": {
109331	//       "default": "500",
109332	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
109333	//       "format": "uint32",
109334	//       "location": "query",
109335	//       "minimum": "0",
109336	//       "type": "integer"
109337	//     },
109338	//     "orderBy": {
109339	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
109340	//       "location": "query",
109341	//       "type": "string"
109342	//     },
109343	//     "pageToken": {
109344	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
109345	//       "location": "query",
109346	//       "type": "string"
109347	//     },
109348	//     "project": {
109349	//       "description": "Project ID for this request.",
109350	//       "location": "path",
109351	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
109352	//       "required": true,
109353	//       "type": "string"
109354	//     },
109355	//     "zone": {
109356	//       "description": "The name of the zone for this request.",
109357	//       "location": "path",
109358	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
109359	//       "required": true,
109360	//       "type": "string"
109361	//     }
109362	//   },
109363	//   "path": "{project}/zones/{zone}/nodeTypes",
109364	//   "response": {
109365	//     "$ref": "NodeTypeList"
109366	//   },
109367	//   "scopes": [
109368	//     "https://www.googleapis.com/auth/cloud-platform",
109369	//     "https://www.googleapis.com/auth/compute",
109370	//     "https://www.googleapis.com/auth/compute.readonly"
109371	//   ]
109372	// }
109373
109374}
109375
109376// Pages invokes f for each page of results.
109377// A non-nil error returned from f will halt the iteration.
109378// The provided context supersedes any context provided to the Context method.
109379func (c *NodeTypesListCall) Pages(ctx context.Context, f func(*NodeTypeList) error) error {
109380	c.ctx_ = ctx
109381	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
109382	for {
109383		x, err := c.Do()
109384		if err != nil {
109385			return err
109386		}
109387		if err := f(x); err != nil {
109388			return err
109389		}
109390		if x.NextPageToken == "" {
109391			return nil
109392		}
109393		c.PageToken(x.NextPageToken)
109394	}
109395}
109396
109397// method id "compute.organizationSecurityPolicies.addAssociation":
109398
109399type OrganizationSecurityPoliciesAddAssociationCall struct {
109400	s                         *Service
109401	securityPolicy            string
109402	securitypolicyassociation *SecurityPolicyAssociation
109403	urlParams_                gensupport.URLParams
109404	ctx_                      context.Context
109405	header_                   http.Header
109406}
109407
109408// AddAssociation: Inserts an association for the specified security
109409// policy. (== suppress_warning http-rest-shadowed ==)
109410func (r *OrganizationSecurityPoliciesService) AddAssociation(securityPolicy string, securitypolicyassociation *SecurityPolicyAssociation) *OrganizationSecurityPoliciesAddAssociationCall {
109411	c := &OrganizationSecurityPoliciesAddAssociationCall{s: r.s, urlParams_: make(gensupport.URLParams)}
109412	c.securityPolicy = securityPolicy
109413	c.securitypolicyassociation = securitypolicyassociation
109414	return c
109415}
109416
109417// ReplaceExistingAssociation sets the optional parameter
109418// "replaceExistingAssociation": Indicates whether or not to replace it
109419// if an association of the attachment already exists. This is false by
109420// default, in which case an error will be returned if an assocation
109421// already exists.
109422func (c *OrganizationSecurityPoliciesAddAssociationCall) ReplaceExistingAssociation(replaceExistingAssociation bool) *OrganizationSecurityPoliciesAddAssociationCall {
109423	c.urlParams_.Set("replaceExistingAssociation", fmt.Sprint(replaceExistingAssociation))
109424	return c
109425}
109426
109427// RequestId sets the optional parameter "requestId": An optional
109428// request ID to identify requests. Specify a unique request ID so that
109429// if you must retry your request, the server will know to ignore the
109430// request if it has already been completed.
109431//
109432// For example, consider a situation where you make an initial request
109433// and the request times out. If you make the request again with the
109434// same request ID, the server can check if original operation with the
109435// same request ID was received, and if so, will ignore the second
109436// request. This prevents clients from accidentally creating duplicate
109437// commitments.
109438//
109439// The request ID must be a valid UUID with the exception that zero UUID
109440// is not supported (00000000-0000-0000-0000-000000000000).
109441func (c *OrganizationSecurityPoliciesAddAssociationCall) RequestId(requestId string) *OrganizationSecurityPoliciesAddAssociationCall {
109442	c.urlParams_.Set("requestId", requestId)
109443	return c
109444}
109445
109446// Fields allows partial responses to be retrieved. See
109447// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
109448// for more information.
109449func (c *OrganizationSecurityPoliciesAddAssociationCall) Fields(s ...googleapi.Field) *OrganizationSecurityPoliciesAddAssociationCall {
109450	c.urlParams_.Set("fields", googleapi.CombineFields(s))
109451	return c
109452}
109453
109454// Context sets the context to be used in this call's Do method. Any
109455// pending HTTP request will be aborted if the provided context is
109456// canceled.
109457func (c *OrganizationSecurityPoliciesAddAssociationCall) Context(ctx context.Context) *OrganizationSecurityPoliciesAddAssociationCall {
109458	c.ctx_ = ctx
109459	return c
109460}
109461
109462// Header returns an http.Header that can be modified by the caller to
109463// add HTTP headers to the request.
109464func (c *OrganizationSecurityPoliciesAddAssociationCall) Header() http.Header {
109465	if c.header_ == nil {
109466		c.header_ = make(http.Header)
109467	}
109468	return c.header_
109469}
109470
109471func (c *OrganizationSecurityPoliciesAddAssociationCall) doRequest(alt string) (*http.Response, error) {
109472	reqHeaders := make(http.Header)
109473	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
109474	for k, v := range c.header_ {
109475		reqHeaders[k] = v
109476	}
109477	reqHeaders.Set("User-Agent", c.s.userAgent())
109478	var body io.Reader = nil
109479	body, err := googleapi.WithoutDataWrapper.JSONReader(c.securitypolicyassociation)
109480	if err != nil {
109481		return nil, err
109482	}
109483	reqHeaders.Set("Content-Type", "application/json")
109484	c.urlParams_.Set("alt", alt)
109485	c.urlParams_.Set("prettyPrint", "false")
109486	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/securityPolicies/{securityPolicy}/addAssociation")
109487	urls += "?" + c.urlParams_.Encode()
109488	req, err := http.NewRequest("POST", urls, body)
109489	if err != nil {
109490		return nil, err
109491	}
109492	req.Header = reqHeaders
109493	googleapi.Expand(req.URL, map[string]string{
109494		"securityPolicy": c.securityPolicy,
109495	})
109496	return gensupport.SendRequest(c.ctx_, c.s.client, req)
109497}
109498
109499// Do executes the "compute.organizationSecurityPolicies.addAssociation" call.
109500// Exactly one of *Operation or error will be non-nil. Any non-2xx
109501// status code is an error. Response headers are in either
109502// *Operation.ServerResponse.Header or (if a response was returned at
109503// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
109504// to check whether the returned error was because
109505// http.StatusNotModified was returned.
109506func (c *OrganizationSecurityPoliciesAddAssociationCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
109507	gensupport.SetOptions(c.urlParams_, opts...)
109508	res, err := c.doRequest("json")
109509	if res != nil && res.StatusCode == http.StatusNotModified {
109510		if res.Body != nil {
109511			res.Body.Close()
109512		}
109513		return nil, &googleapi.Error{
109514			Code:   res.StatusCode,
109515			Header: res.Header,
109516		}
109517	}
109518	if err != nil {
109519		return nil, err
109520	}
109521	defer googleapi.CloseBody(res)
109522	if err := googleapi.CheckResponse(res); err != nil {
109523		return nil, err
109524	}
109525	ret := &Operation{
109526		ServerResponse: googleapi.ServerResponse{
109527			Header:         res.Header,
109528			HTTPStatusCode: res.StatusCode,
109529		},
109530	}
109531	target := &ret
109532	if err := gensupport.DecodeResponse(target, res); err != nil {
109533		return nil, err
109534	}
109535	return ret, nil
109536	// {
109537	//   "description": "Inserts an association for the specified security policy. (== suppress_warning http-rest-shadowed ==)",
109538	//   "httpMethod": "POST",
109539	//   "id": "compute.organizationSecurityPolicies.addAssociation",
109540	//   "parameterOrder": [
109541	//     "securityPolicy"
109542	//   ],
109543	//   "parameters": {
109544	//     "replaceExistingAssociation": {
109545	//       "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.",
109546	//       "location": "query",
109547	//       "type": "boolean"
109548	//     },
109549	//     "requestId": {
109550	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
109551	//       "location": "query",
109552	//       "type": "string"
109553	//     },
109554	//     "securityPolicy": {
109555	//       "description": "Name of the security policy to update.",
109556	//       "location": "path",
109557	//       "pattern": "(securityPolicies/)?[0-9]{0,20}",
109558	//       "required": true,
109559	//       "type": "string"
109560	//     }
109561	//   },
109562	//   "path": "locations/global/securityPolicies/{securityPolicy}/addAssociation",
109563	//   "request": {
109564	//     "$ref": "SecurityPolicyAssociation"
109565	//   },
109566	//   "response": {
109567	//     "$ref": "Operation"
109568	//   },
109569	//   "scopes": [
109570	//     "https://www.googleapis.com/auth/cloud-platform",
109571	//     "https://www.googleapis.com/auth/compute"
109572	//   ]
109573	// }
109574
109575}
109576
109577// method id "compute.organizationSecurityPolicies.addRule":
109578
109579type OrganizationSecurityPoliciesAddRuleCall struct {
109580	s                  *Service
109581	securityPolicy     string
109582	securitypolicyrule *SecurityPolicyRule
109583	urlParams_         gensupport.URLParams
109584	ctx_               context.Context
109585	header_            http.Header
109586}
109587
109588// AddRule: Inserts a rule into a security policy. (== suppress_warning
109589// http-rest-shadowed ==)
109590func (r *OrganizationSecurityPoliciesService) AddRule(securityPolicy string, securitypolicyrule *SecurityPolicyRule) *OrganizationSecurityPoliciesAddRuleCall {
109591	c := &OrganizationSecurityPoliciesAddRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)}
109592	c.securityPolicy = securityPolicy
109593	c.securitypolicyrule = securitypolicyrule
109594	return c
109595}
109596
109597// RequestId sets the optional parameter "requestId": An optional
109598// request ID to identify requests. Specify a unique request ID so that
109599// if you must retry your request, the server will know to ignore the
109600// request if it has already been completed.
109601//
109602// For example, consider a situation where you make an initial request
109603// and the request times out. If you make the request again with the
109604// same request ID, the server can check if original operation with the
109605// same request ID was received, and if so, will ignore the second
109606// request. This prevents clients from accidentally creating duplicate
109607// commitments.
109608//
109609// The request ID must be a valid UUID with the exception that zero UUID
109610// is not supported (00000000-0000-0000-0000-000000000000).
109611func (c *OrganizationSecurityPoliciesAddRuleCall) RequestId(requestId string) *OrganizationSecurityPoliciesAddRuleCall {
109612	c.urlParams_.Set("requestId", requestId)
109613	return c
109614}
109615
109616// Fields allows partial responses to be retrieved. See
109617// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
109618// for more information.
109619func (c *OrganizationSecurityPoliciesAddRuleCall) Fields(s ...googleapi.Field) *OrganizationSecurityPoliciesAddRuleCall {
109620	c.urlParams_.Set("fields", googleapi.CombineFields(s))
109621	return c
109622}
109623
109624// Context sets the context to be used in this call's Do method. Any
109625// pending HTTP request will be aborted if the provided context is
109626// canceled.
109627func (c *OrganizationSecurityPoliciesAddRuleCall) Context(ctx context.Context) *OrganizationSecurityPoliciesAddRuleCall {
109628	c.ctx_ = ctx
109629	return c
109630}
109631
109632// Header returns an http.Header that can be modified by the caller to
109633// add HTTP headers to the request.
109634func (c *OrganizationSecurityPoliciesAddRuleCall) Header() http.Header {
109635	if c.header_ == nil {
109636		c.header_ = make(http.Header)
109637	}
109638	return c.header_
109639}
109640
109641func (c *OrganizationSecurityPoliciesAddRuleCall) doRequest(alt string) (*http.Response, error) {
109642	reqHeaders := make(http.Header)
109643	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
109644	for k, v := range c.header_ {
109645		reqHeaders[k] = v
109646	}
109647	reqHeaders.Set("User-Agent", c.s.userAgent())
109648	var body io.Reader = nil
109649	body, err := googleapi.WithoutDataWrapper.JSONReader(c.securitypolicyrule)
109650	if err != nil {
109651		return nil, err
109652	}
109653	reqHeaders.Set("Content-Type", "application/json")
109654	c.urlParams_.Set("alt", alt)
109655	c.urlParams_.Set("prettyPrint", "false")
109656	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/securityPolicies/{securityPolicy}/addRule")
109657	urls += "?" + c.urlParams_.Encode()
109658	req, err := http.NewRequest("POST", urls, body)
109659	if err != nil {
109660		return nil, err
109661	}
109662	req.Header = reqHeaders
109663	googleapi.Expand(req.URL, map[string]string{
109664		"securityPolicy": c.securityPolicy,
109665	})
109666	return gensupport.SendRequest(c.ctx_, c.s.client, req)
109667}
109668
109669// Do executes the "compute.organizationSecurityPolicies.addRule" call.
109670// Exactly one of *Operation or error will be non-nil. Any non-2xx
109671// status code is an error. Response headers are in either
109672// *Operation.ServerResponse.Header or (if a response was returned at
109673// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
109674// to check whether the returned error was because
109675// http.StatusNotModified was returned.
109676func (c *OrganizationSecurityPoliciesAddRuleCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
109677	gensupport.SetOptions(c.urlParams_, opts...)
109678	res, err := c.doRequest("json")
109679	if res != nil && res.StatusCode == http.StatusNotModified {
109680		if res.Body != nil {
109681			res.Body.Close()
109682		}
109683		return nil, &googleapi.Error{
109684			Code:   res.StatusCode,
109685			Header: res.Header,
109686		}
109687	}
109688	if err != nil {
109689		return nil, err
109690	}
109691	defer googleapi.CloseBody(res)
109692	if err := googleapi.CheckResponse(res); err != nil {
109693		return nil, err
109694	}
109695	ret := &Operation{
109696		ServerResponse: googleapi.ServerResponse{
109697			Header:         res.Header,
109698			HTTPStatusCode: res.StatusCode,
109699		},
109700	}
109701	target := &ret
109702	if err := gensupport.DecodeResponse(target, res); err != nil {
109703		return nil, err
109704	}
109705	return ret, nil
109706	// {
109707	//   "description": "Inserts a rule into a security policy. (== suppress_warning http-rest-shadowed ==)",
109708	//   "httpMethod": "POST",
109709	//   "id": "compute.organizationSecurityPolicies.addRule",
109710	//   "parameterOrder": [
109711	//     "securityPolicy"
109712	//   ],
109713	//   "parameters": {
109714	//     "requestId": {
109715	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
109716	//       "location": "query",
109717	//       "type": "string"
109718	//     },
109719	//     "securityPolicy": {
109720	//       "description": "Name of the security policy to update.",
109721	//       "location": "path",
109722	//       "pattern": "(securityPolicies/)?[0-9]{0,20}",
109723	//       "required": true,
109724	//       "type": "string"
109725	//     }
109726	//   },
109727	//   "path": "locations/global/securityPolicies/{securityPolicy}/addRule",
109728	//   "request": {
109729	//     "$ref": "SecurityPolicyRule"
109730	//   },
109731	//   "response": {
109732	//     "$ref": "Operation"
109733	//   },
109734	//   "scopes": [
109735	//     "https://www.googleapis.com/auth/cloud-platform",
109736	//     "https://www.googleapis.com/auth/compute"
109737	//   ]
109738	// }
109739
109740}
109741
109742// method id "compute.organizationSecurityPolicies.copyRules":
109743
109744type OrganizationSecurityPoliciesCopyRulesCall struct {
109745	s              *Service
109746	securityPolicy string
109747	urlParams_     gensupport.URLParams
109748	ctx_           context.Context
109749	header_        http.Header
109750}
109751
109752// CopyRules: Copies rules to the specified security policy. (==
109753// suppress_warning http-rest-shadowed ==)
109754func (r *OrganizationSecurityPoliciesService) CopyRules(securityPolicy string) *OrganizationSecurityPoliciesCopyRulesCall {
109755	c := &OrganizationSecurityPoliciesCopyRulesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
109756	c.securityPolicy = securityPolicy
109757	return c
109758}
109759
109760// RequestId sets the optional parameter "requestId": An optional
109761// request ID to identify requests. Specify a unique request ID so that
109762// if you must retry your request, the server will know to ignore the
109763// request if it has already been completed.
109764//
109765// For example, consider a situation where you make an initial request
109766// and the request times out. If you make the request again with the
109767// same request ID, the server can check if original operation with the
109768// same request ID was received, and if so, will ignore the second
109769// request. This prevents clients from accidentally creating duplicate
109770// commitments.
109771//
109772// The request ID must be a valid UUID with the exception that zero UUID
109773// is not supported (00000000-0000-0000-0000-000000000000).
109774func (c *OrganizationSecurityPoliciesCopyRulesCall) RequestId(requestId string) *OrganizationSecurityPoliciesCopyRulesCall {
109775	c.urlParams_.Set("requestId", requestId)
109776	return c
109777}
109778
109779// SourceSecurityPolicy sets the optional parameter
109780// "sourceSecurityPolicy": The security policy from which to copy rules.
109781func (c *OrganizationSecurityPoliciesCopyRulesCall) SourceSecurityPolicy(sourceSecurityPolicy string) *OrganizationSecurityPoliciesCopyRulesCall {
109782	c.urlParams_.Set("sourceSecurityPolicy", sourceSecurityPolicy)
109783	return c
109784}
109785
109786// Fields allows partial responses to be retrieved. See
109787// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
109788// for more information.
109789func (c *OrganizationSecurityPoliciesCopyRulesCall) Fields(s ...googleapi.Field) *OrganizationSecurityPoliciesCopyRulesCall {
109790	c.urlParams_.Set("fields", googleapi.CombineFields(s))
109791	return c
109792}
109793
109794// Context sets the context to be used in this call's Do method. Any
109795// pending HTTP request will be aborted if the provided context is
109796// canceled.
109797func (c *OrganizationSecurityPoliciesCopyRulesCall) Context(ctx context.Context) *OrganizationSecurityPoliciesCopyRulesCall {
109798	c.ctx_ = ctx
109799	return c
109800}
109801
109802// Header returns an http.Header that can be modified by the caller to
109803// add HTTP headers to the request.
109804func (c *OrganizationSecurityPoliciesCopyRulesCall) Header() http.Header {
109805	if c.header_ == nil {
109806		c.header_ = make(http.Header)
109807	}
109808	return c.header_
109809}
109810
109811func (c *OrganizationSecurityPoliciesCopyRulesCall) doRequest(alt string) (*http.Response, error) {
109812	reqHeaders := make(http.Header)
109813	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
109814	for k, v := range c.header_ {
109815		reqHeaders[k] = v
109816	}
109817	reqHeaders.Set("User-Agent", c.s.userAgent())
109818	var body io.Reader = nil
109819	c.urlParams_.Set("alt", alt)
109820	c.urlParams_.Set("prettyPrint", "false")
109821	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/securityPolicies/{securityPolicy}/copyRules")
109822	urls += "?" + c.urlParams_.Encode()
109823	req, err := http.NewRequest("POST", urls, body)
109824	if err != nil {
109825		return nil, err
109826	}
109827	req.Header = reqHeaders
109828	googleapi.Expand(req.URL, map[string]string{
109829		"securityPolicy": c.securityPolicy,
109830	})
109831	return gensupport.SendRequest(c.ctx_, c.s.client, req)
109832}
109833
109834// Do executes the "compute.organizationSecurityPolicies.copyRules" call.
109835// Exactly one of *Operation or error will be non-nil. Any non-2xx
109836// status code is an error. Response headers are in either
109837// *Operation.ServerResponse.Header or (if a response was returned at
109838// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
109839// to check whether the returned error was because
109840// http.StatusNotModified was returned.
109841func (c *OrganizationSecurityPoliciesCopyRulesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
109842	gensupport.SetOptions(c.urlParams_, opts...)
109843	res, err := c.doRequest("json")
109844	if res != nil && res.StatusCode == http.StatusNotModified {
109845		if res.Body != nil {
109846			res.Body.Close()
109847		}
109848		return nil, &googleapi.Error{
109849			Code:   res.StatusCode,
109850			Header: res.Header,
109851		}
109852	}
109853	if err != nil {
109854		return nil, err
109855	}
109856	defer googleapi.CloseBody(res)
109857	if err := googleapi.CheckResponse(res); err != nil {
109858		return nil, err
109859	}
109860	ret := &Operation{
109861		ServerResponse: googleapi.ServerResponse{
109862			Header:         res.Header,
109863			HTTPStatusCode: res.StatusCode,
109864		},
109865	}
109866	target := &ret
109867	if err := gensupport.DecodeResponse(target, res); err != nil {
109868		return nil, err
109869	}
109870	return ret, nil
109871	// {
109872	//   "description": "Copies rules to the specified security policy. (== suppress_warning http-rest-shadowed ==)",
109873	//   "httpMethod": "POST",
109874	//   "id": "compute.organizationSecurityPolicies.copyRules",
109875	//   "parameterOrder": [
109876	//     "securityPolicy"
109877	//   ],
109878	//   "parameters": {
109879	//     "requestId": {
109880	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
109881	//       "location": "query",
109882	//       "type": "string"
109883	//     },
109884	//     "securityPolicy": {
109885	//       "description": "Name of the security policy to update.",
109886	//       "location": "path",
109887	//       "pattern": "(securityPolicies/)?[0-9]{0,20}",
109888	//       "required": true,
109889	//       "type": "string"
109890	//     },
109891	//     "sourceSecurityPolicy": {
109892	//       "description": "The security policy from which to copy rules.",
109893	//       "location": "query",
109894	//       "type": "string"
109895	//     }
109896	//   },
109897	//   "path": "locations/global/securityPolicies/{securityPolicy}/copyRules",
109898	//   "response": {
109899	//     "$ref": "Operation"
109900	//   },
109901	//   "scopes": [
109902	//     "https://www.googleapis.com/auth/cloud-platform",
109903	//     "https://www.googleapis.com/auth/compute"
109904	//   ]
109905	// }
109906
109907}
109908
109909// method id "compute.organizationSecurityPolicies.delete":
109910
109911type OrganizationSecurityPoliciesDeleteCall struct {
109912	s              *Service
109913	securityPolicy string
109914	urlParams_     gensupport.URLParams
109915	ctx_           context.Context
109916	header_        http.Header
109917}
109918
109919// Delete: Deletes the specified policy. (== suppress_warning
109920// http-rest-shadowed ==)
109921func (r *OrganizationSecurityPoliciesService) Delete(securityPolicy string) *OrganizationSecurityPoliciesDeleteCall {
109922	c := &OrganizationSecurityPoliciesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
109923	c.securityPolicy = securityPolicy
109924	return c
109925}
109926
109927// RequestId sets the optional parameter "requestId": An optional
109928// request ID to identify requests. Specify a unique request ID so that
109929// if you must retry your request, the server will know to ignore the
109930// request if it has already been completed.
109931//
109932// For example, consider a situation where you make an initial request
109933// and the request times out. If you make the request again with the
109934// same request ID, the server can check if original operation with the
109935// same request ID was received, and if so, will ignore the second
109936// request. This prevents clients from accidentally creating duplicate
109937// commitments.
109938//
109939// The request ID must be a valid UUID with the exception that zero UUID
109940// is not supported (00000000-0000-0000-0000-000000000000).
109941func (c *OrganizationSecurityPoliciesDeleteCall) RequestId(requestId string) *OrganizationSecurityPoliciesDeleteCall {
109942	c.urlParams_.Set("requestId", requestId)
109943	return c
109944}
109945
109946// Fields allows partial responses to be retrieved. See
109947// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
109948// for more information.
109949func (c *OrganizationSecurityPoliciesDeleteCall) Fields(s ...googleapi.Field) *OrganizationSecurityPoliciesDeleteCall {
109950	c.urlParams_.Set("fields", googleapi.CombineFields(s))
109951	return c
109952}
109953
109954// Context sets the context to be used in this call's Do method. Any
109955// pending HTTP request will be aborted if the provided context is
109956// canceled.
109957func (c *OrganizationSecurityPoliciesDeleteCall) Context(ctx context.Context) *OrganizationSecurityPoliciesDeleteCall {
109958	c.ctx_ = ctx
109959	return c
109960}
109961
109962// Header returns an http.Header that can be modified by the caller to
109963// add HTTP headers to the request.
109964func (c *OrganizationSecurityPoliciesDeleteCall) Header() http.Header {
109965	if c.header_ == nil {
109966		c.header_ = make(http.Header)
109967	}
109968	return c.header_
109969}
109970
109971func (c *OrganizationSecurityPoliciesDeleteCall) doRequest(alt string) (*http.Response, error) {
109972	reqHeaders := make(http.Header)
109973	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
109974	for k, v := range c.header_ {
109975		reqHeaders[k] = v
109976	}
109977	reqHeaders.Set("User-Agent", c.s.userAgent())
109978	var body io.Reader = nil
109979	c.urlParams_.Set("alt", alt)
109980	c.urlParams_.Set("prettyPrint", "false")
109981	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/securityPolicies/{securityPolicy}")
109982	urls += "?" + c.urlParams_.Encode()
109983	req, err := http.NewRequest("DELETE", urls, body)
109984	if err != nil {
109985		return nil, err
109986	}
109987	req.Header = reqHeaders
109988	googleapi.Expand(req.URL, map[string]string{
109989		"securityPolicy": c.securityPolicy,
109990	})
109991	return gensupport.SendRequest(c.ctx_, c.s.client, req)
109992}
109993
109994// Do executes the "compute.organizationSecurityPolicies.delete" call.
109995// Exactly one of *Operation or error will be non-nil. Any non-2xx
109996// status code is an error. Response headers are in either
109997// *Operation.ServerResponse.Header or (if a response was returned at
109998// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
109999// to check whether the returned error was because
110000// http.StatusNotModified was returned.
110001func (c *OrganizationSecurityPoliciesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
110002	gensupport.SetOptions(c.urlParams_, opts...)
110003	res, err := c.doRequest("json")
110004	if res != nil && res.StatusCode == http.StatusNotModified {
110005		if res.Body != nil {
110006			res.Body.Close()
110007		}
110008		return nil, &googleapi.Error{
110009			Code:   res.StatusCode,
110010			Header: res.Header,
110011		}
110012	}
110013	if err != nil {
110014		return nil, err
110015	}
110016	defer googleapi.CloseBody(res)
110017	if err := googleapi.CheckResponse(res); err != nil {
110018		return nil, err
110019	}
110020	ret := &Operation{
110021		ServerResponse: googleapi.ServerResponse{
110022			Header:         res.Header,
110023			HTTPStatusCode: res.StatusCode,
110024		},
110025	}
110026	target := &ret
110027	if err := gensupport.DecodeResponse(target, res); err != nil {
110028		return nil, err
110029	}
110030	return ret, nil
110031	// {
110032	//   "description": "Deletes the specified policy. (== suppress_warning http-rest-shadowed ==)",
110033	//   "httpMethod": "DELETE",
110034	//   "id": "compute.organizationSecurityPolicies.delete",
110035	//   "parameterOrder": [
110036	//     "securityPolicy"
110037	//   ],
110038	//   "parameters": {
110039	//     "requestId": {
110040	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
110041	//       "location": "query",
110042	//       "type": "string"
110043	//     },
110044	//     "securityPolicy": {
110045	//       "description": "Name of the security policy to delete.",
110046	//       "location": "path",
110047	//       "pattern": "(securityPolicies/)?[0-9]{0,20}",
110048	//       "required": true,
110049	//       "type": "string"
110050	//     }
110051	//   },
110052	//   "path": "locations/global/securityPolicies/{securityPolicy}",
110053	//   "response": {
110054	//     "$ref": "Operation"
110055	//   },
110056	//   "scopes": [
110057	//     "https://www.googleapis.com/auth/cloud-platform",
110058	//     "https://www.googleapis.com/auth/compute"
110059	//   ]
110060	// }
110061
110062}
110063
110064// method id "compute.organizationSecurityPolicies.get":
110065
110066type OrganizationSecurityPoliciesGetCall struct {
110067	s              *Service
110068	securityPolicy string
110069	urlParams_     gensupport.URLParams
110070	ifNoneMatch_   string
110071	ctx_           context.Context
110072	header_        http.Header
110073}
110074
110075// Get: List all of the ordered rules present in a single specified
110076// policy. (== suppress_warning http-rest-shadowed ==)
110077func (r *OrganizationSecurityPoliciesService) Get(securityPolicy string) *OrganizationSecurityPoliciesGetCall {
110078	c := &OrganizationSecurityPoliciesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
110079	c.securityPolicy = securityPolicy
110080	return c
110081}
110082
110083// Fields allows partial responses to be retrieved. See
110084// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
110085// for more information.
110086func (c *OrganizationSecurityPoliciesGetCall) Fields(s ...googleapi.Field) *OrganizationSecurityPoliciesGetCall {
110087	c.urlParams_.Set("fields", googleapi.CombineFields(s))
110088	return c
110089}
110090
110091// IfNoneMatch sets the optional parameter which makes the operation
110092// fail if the object's ETag matches the given value. This is useful for
110093// getting updates only after the object has changed since the last
110094// request. Use googleapi.IsNotModified to check whether the response
110095// error from Do is the result of In-None-Match.
110096func (c *OrganizationSecurityPoliciesGetCall) IfNoneMatch(entityTag string) *OrganizationSecurityPoliciesGetCall {
110097	c.ifNoneMatch_ = entityTag
110098	return c
110099}
110100
110101// Context sets the context to be used in this call's Do method. Any
110102// pending HTTP request will be aborted if the provided context is
110103// canceled.
110104func (c *OrganizationSecurityPoliciesGetCall) Context(ctx context.Context) *OrganizationSecurityPoliciesGetCall {
110105	c.ctx_ = ctx
110106	return c
110107}
110108
110109// Header returns an http.Header that can be modified by the caller to
110110// add HTTP headers to the request.
110111func (c *OrganizationSecurityPoliciesGetCall) Header() http.Header {
110112	if c.header_ == nil {
110113		c.header_ = make(http.Header)
110114	}
110115	return c.header_
110116}
110117
110118func (c *OrganizationSecurityPoliciesGetCall) doRequest(alt string) (*http.Response, error) {
110119	reqHeaders := make(http.Header)
110120	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
110121	for k, v := range c.header_ {
110122		reqHeaders[k] = v
110123	}
110124	reqHeaders.Set("User-Agent", c.s.userAgent())
110125	if c.ifNoneMatch_ != "" {
110126		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
110127	}
110128	var body io.Reader = nil
110129	c.urlParams_.Set("alt", alt)
110130	c.urlParams_.Set("prettyPrint", "false")
110131	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/securityPolicies/{securityPolicy}")
110132	urls += "?" + c.urlParams_.Encode()
110133	req, err := http.NewRequest("GET", urls, body)
110134	if err != nil {
110135		return nil, err
110136	}
110137	req.Header = reqHeaders
110138	googleapi.Expand(req.URL, map[string]string{
110139		"securityPolicy": c.securityPolicy,
110140	})
110141	return gensupport.SendRequest(c.ctx_, c.s.client, req)
110142}
110143
110144// Do executes the "compute.organizationSecurityPolicies.get" call.
110145// Exactly one of *SecurityPolicy or error will be non-nil. Any non-2xx
110146// status code is an error. Response headers are in either
110147// *SecurityPolicy.ServerResponse.Header or (if a response was returned
110148// at all) in error.(*googleapi.Error).Header. Use
110149// googleapi.IsNotModified to check whether the returned error was
110150// because http.StatusNotModified was returned.
110151func (c *OrganizationSecurityPoliciesGetCall) Do(opts ...googleapi.CallOption) (*SecurityPolicy, error) {
110152	gensupport.SetOptions(c.urlParams_, opts...)
110153	res, err := c.doRequest("json")
110154	if res != nil && res.StatusCode == http.StatusNotModified {
110155		if res.Body != nil {
110156			res.Body.Close()
110157		}
110158		return nil, &googleapi.Error{
110159			Code:   res.StatusCode,
110160			Header: res.Header,
110161		}
110162	}
110163	if err != nil {
110164		return nil, err
110165	}
110166	defer googleapi.CloseBody(res)
110167	if err := googleapi.CheckResponse(res); err != nil {
110168		return nil, err
110169	}
110170	ret := &SecurityPolicy{
110171		ServerResponse: googleapi.ServerResponse{
110172			Header:         res.Header,
110173			HTTPStatusCode: res.StatusCode,
110174		},
110175	}
110176	target := &ret
110177	if err := gensupport.DecodeResponse(target, res); err != nil {
110178		return nil, err
110179	}
110180	return ret, nil
110181	// {
110182	//   "description": "List all of the ordered rules present in a single specified policy. (== suppress_warning http-rest-shadowed ==)",
110183	//   "httpMethod": "GET",
110184	//   "id": "compute.organizationSecurityPolicies.get",
110185	//   "parameterOrder": [
110186	//     "securityPolicy"
110187	//   ],
110188	//   "parameters": {
110189	//     "securityPolicy": {
110190	//       "description": "Name of the security policy to get.",
110191	//       "location": "path",
110192	//       "pattern": "(securityPolicies/)?[0-9]{0,20}",
110193	//       "required": true,
110194	//       "type": "string"
110195	//     }
110196	//   },
110197	//   "path": "locations/global/securityPolicies/{securityPolicy}",
110198	//   "response": {
110199	//     "$ref": "SecurityPolicy"
110200	//   },
110201	//   "scopes": [
110202	//     "https://www.googleapis.com/auth/cloud-platform",
110203	//     "https://www.googleapis.com/auth/compute",
110204	//     "https://www.googleapis.com/auth/compute.readonly"
110205	//   ]
110206	// }
110207
110208}
110209
110210// method id "compute.organizationSecurityPolicies.getAssociation":
110211
110212type OrganizationSecurityPoliciesGetAssociationCall struct {
110213	s              *Service
110214	securityPolicy string
110215	urlParams_     gensupport.URLParams
110216	ifNoneMatch_   string
110217	ctx_           context.Context
110218	header_        http.Header
110219}
110220
110221// GetAssociation: Gets an association with the specified name. (==
110222// suppress_warning http-rest-shadowed ==)
110223func (r *OrganizationSecurityPoliciesService) GetAssociation(securityPolicy string) *OrganizationSecurityPoliciesGetAssociationCall {
110224	c := &OrganizationSecurityPoliciesGetAssociationCall{s: r.s, urlParams_: make(gensupport.URLParams)}
110225	c.securityPolicy = securityPolicy
110226	return c
110227}
110228
110229// Name sets the optional parameter "name": The name of the association
110230// to get from the security policy.
110231func (c *OrganizationSecurityPoliciesGetAssociationCall) Name(name string) *OrganizationSecurityPoliciesGetAssociationCall {
110232	c.urlParams_.Set("name", name)
110233	return c
110234}
110235
110236// Fields allows partial responses to be retrieved. See
110237// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
110238// for more information.
110239func (c *OrganizationSecurityPoliciesGetAssociationCall) Fields(s ...googleapi.Field) *OrganizationSecurityPoliciesGetAssociationCall {
110240	c.urlParams_.Set("fields", googleapi.CombineFields(s))
110241	return c
110242}
110243
110244// IfNoneMatch sets the optional parameter which makes the operation
110245// fail if the object's ETag matches the given value. This is useful for
110246// getting updates only after the object has changed since the last
110247// request. Use googleapi.IsNotModified to check whether the response
110248// error from Do is the result of In-None-Match.
110249func (c *OrganizationSecurityPoliciesGetAssociationCall) IfNoneMatch(entityTag string) *OrganizationSecurityPoliciesGetAssociationCall {
110250	c.ifNoneMatch_ = entityTag
110251	return c
110252}
110253
110254// Context sets the context to be used in this call's Do method. Any
110255// pending HTTP request will be aborted if the provided context is
110256// canceled.
110257func (c *OrganizationSecurityPoliciesGetAssociationCall) Context(ctx context.Context) *OrganizationSecurityPoliciesGetAssociationCall {
110258	c.ctx_ = ctx
110259	return c
110260}
110261
110262// Header returns an http.Header that can be modified by the caller to
110263// add HTTP headers to the request.
110264func (c *OrganizationSecurityPoliciesGetAssociationCall) Header() http.Header {
110265	if c.header_ == nil {
110266		c.header_ = make(http.Header)
110267	}
110268	return c.header_
110269}
110270
110271func (c *OrganizationSecurityPoliciesGetAssociationCall) doRequest(alt string) (*http.Response, error) {
110272	reqHeaders := make(http.Header)
110273	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
110274	for k, v := range c.header_ {
110275		reqHeaders[k] = v
110276	}
110277	reqHeaders.Set("User-Agent", c.s.userAgent())
110278	if c.ifNoneMatch_ != "" {
110279		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
110280	}
110281	var body io.Reader = nil
110282	c.urlParams_.Set("alt", alt)
110283	c.urlParams_.Set("prettyPrint", "false")
110284	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/securityPolicies/{securityPolicy}/getAssociation")
110285	urls += "?" + c.urlParams_.Encode()
110286	req, err := http.NewRequest("GET", urls, body)
110287	if err != nil {
110288		return nil, err
110289	}
110290	req.Header = reqHeaders
110291	googleapi.Expand(req.URL, map[string]string{
110292		"securityPolicy": c.securityPolicy,
110293	})
110294	return gensupport.SendRequest(c.ctx_, c.s.client, req)
110295}
110296
110297// Do executes the "compute.organizationSecurityPolicies.getAssociation" call.
110298// Exactly one of *SecurityPolicyAssociation or error will be non-nil.
110299// Any non-2xx status code is an error. Response headers are in either
110300// *SecurityPolicyAssociation.ServerResponse.Header or (if a response
110301// was returned at all) in error.(*googleapi.Error).Header. Use
110302// googleapi.IsNotModified to check whether the returned error was
110303// because http.StatusNotModified was returned.
110304func (c *OrganizationSecurityPoliciesGetAssociationCall) Do(opts ...googleapi.CallOption) (*SecurityPolicyAssociation, error) {
110305	gensupport.SetOptions(c.urlParams_, opts...)
110306	res, err := c.doRequest("json")
110307	if res != nil && res.StatusCode == http.StatusNotModified {
110308		if res.Body != nil {
110309			res.Body.Close()
110310		}
110311		return nil, &googleapi.Error{
110312			Code:   res.StatusCode,
110313			Header: res.Header,
110314		}
110315	}
110316	if err != nil {
110317		return nil, err
110318	}
110319	defer googleapi.CloseBody(res)
110320	if err := googleapi.CheckResponse(res); err != nil {
110321		return nil, err
110322	}
110323	ret := &SecurityPolicyAssociation{
110324		ServerResponse: googleapi.ServerResponse{
110325			Header:         res.Header,
110326			HTTPStatusCode: res.StatusCode,
110327		},
110328	}
110329	target := &ret
110330	if err := gensupport.DecodeResponse(target, res); err != nil {
110331		return nil, err
110332	}
110333	return ret, nil
110334	// {
110335	//   "description": "Gets an association with the specified name. (== suppress_warning http-rest-shadowed ==)",
110336	//   "httpMethod": "GET",
110337	//   "id": "compute.organizationSecurityPolicies.getAssociation",
110338	//   "parameterOrder": [
110339	//     "securityPolicy"
110340	//   ],
110341	//   "parameters": {
110342	//     "name": {
110343	//       "description": "The name of the association to get from the security policy.",
110344	//       "location": "query",
110345	//       "type": "string"
110346	//     },
110347	//     "securityPolicy": {
110348	//       "description": "Name of the security policy to which the queried rule belongs.",
110349	//       "location": "path",
110350	//       "pattern": "(securityPolicies/)?[0-9]{0,20}",
110351	//       "required": true,
110352	//       "type": "string"
110353	//     }
110354	//   },
110355	//   "path": "locations/global/securityPolicies/{securityPolicy}/getAssociation",
110356	//   "response": {
110357	//     "$ref": "SecurityPolicyAssociation"
110358	//   },
110359	//   "scopes": [
110360	//     "https://www.googleapis.com/auth/cloud-platform",
110361	//     "https://www.googleapis.com/auth/compute",
110362	//     "https://www.googleapis.com/auth/compute.readonly"
110363	//   ]
110364	// }
110365
110366}
110367
110368// method id "compute.organizationSecurityPolicies.getRule":
110369
110370type OrganizationSecurityPoliciesGetRuleCall struct {
110371	s              *Service
110372	securityPolicy string
110373	urlParams_     gensupport.URLParams
110374	ifNoneMatch_   string
110375	ctx_           context.Context
110376	header_        http.Header
110377}
110378
110379// GetRule: Gets a rule at the specified priority. (== suppress_warning
110380// http-rest-shadowed ==)
110381func (r *OrganizationSecurityPoliciesService) GetRule(securityPolicy string) *OrganizationSecurityPoliciesGetRuleCall {
110382	c := &OrganizationSecurityPoliciesGetRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)}
110383	c.securityPolicy = securityPolicy
110384	return c
110385}
110386
110387// Priority sets the optional parameter "priority": The priority of the
110388// rule to get from the security policy.
110389func (c *OrganizationSecurityPoliciesGetRuleCall) Priority(priority int64) *OrganizationSecurityPoliciesGetRuleCall {
110390	c.urlParams_.Set("priority", fmt.Sprint(priority))
110391	return c
110392}
110393
110394// Fields allows partial responses to be retrieved. See
110395// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
110396// for more information.
110397func (c *OrganizationSecurityPoliciesGetRuleCall) Fields(s ...googleapi.Field) *OrganizationSecurityPoliciesGetRuleCall {
110398	c.urlParams_.Set("fields", googleapi.CombineFields(s))
110399	return c
110400}
110401
110402// IfNoneMatch sets the optional parameter which makes the operation
110403// fail if the object's ETag matches the given value. This is useful for
110404// getting updates only after the object has changed since the last
110405// request. Use googleapi.IsNotModified to check whether the response
110406// error from Do is the result of In-None-Match.
110407func (c *OrganizationSecurityPoliciesGetRuleCall) IfNoneMatch(entityTag string) *OrganizationSecurityPoliciesGetRuleCall {
110408	c.ifNoneMatch_ = entityTag
110409	return c
110410}
110411
110412// Context sets the context to be used in this call's Do method. Any
110413// pending HTTP request will be aborted if the provided context is
110414// canceled.
110415func (c *OrganizationSecurityPoliciesGetRuleCall) Context(ctx context.Context) *OrganizationSecurityPoliciesGetRuleCall {
110416	c.ctx_ = ctx
110417	return c
110418}
110419
110420// Header returns an http.Header that can be modified by the caller to
110421// add HTTP headers to the request.
110422func (c *OrganizationSecurityPoliciesGetRuleCall) Header() http.Header {
110423	if c.header_ == nil {
110424		c.header_ = make(http.Header)
110425	}
110426	return c.header_
110427}
110428
110429func (c *OrganizationSecurityPoliciesGetRuleCall) doRequest(alt string) (*http.Response, error) {
110430	reqHeaders := make(http.Header)
110431	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
110432	for k, v := range c.header_ {
110433		reqHeaders[k] = v
110434	}
110435	reqHeaders.Set("User-Agent", c.s.userAgent())
110436	if c.ifNoneMatch_ != "" {
110437		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
110438	}
110439	var body io.Reader = nil
110440	c.urlParams_.Set("alt", alt)
110441	c.urlParams_.Set("prettyPrint", "false")
110442	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/securityPolicies/{securityPolicy}/getRule")
110443	urls += "?" + c.urlParams_.Encode()
110444	req, err := http.NewRequest("GET", urls, body)
110445	if err != nil {
110446		return nil, err
110447	}
110448	req.Header = reqHeaders
110449	googleapi.Expand(req.URL, map[string]string{
110450		"securityPolicy": c.securityPolicy,
110451	})
110452	return gensupport.SendRequest(c.ctx_, c.s.client, req)
110453}
110454
110455// Do executes the "compute.organizationSecurityPolicies.getRule" call.
110456// Exactly one of *SecurityPolicyRule or error will be non-nil. Any
110457// non-2xx status code is an error. Response headers are in either
110458// *SecurityPolicyRule.ServerResponse.Header or (if a response was
110459// returned at all) in error.(*googleapi.Error).Header. Use
110460// googleapi.IsNotModified to check whether the returned error was
110461// because http.StatusNotModified was returned.
110462func (c *OrganizationSecurityPoliciesGetRuleCall) Do(opts ...googleapi.CallOption) (*SecurityPolicyRule, error) {
110463	gensupport.SetOptions(c.urlParams_, opts...)
110464	res, err := c.doRequest("json")
110465	if res != nil && res.StatusCode == http.StatusNotModified {
110466		if res.Body != nil {
110467			res.Body.Close()
110468		}
110469		return nil, &googleapi.Error{
110470			Code:   res.StatusCode,
110471			Header: res.Header,
110472		}
110473	}
110474	if err != nil {
110475		return nil, err
110476	}
110477	defer googleapi.CloseBody(res)
110478	if err := googleapi.CheckResponse(res); err != nil {
110479		return nil, err
110480	}
110481	ret := &SecurityPolicyRule{
110482		ServerResponse: googleapi.ServerResponse{
110483			Header:         res.Header,
110484			HTTPStatusCode: res.StatusCode,
110485		},
110486	}
110487	target := &ret
110488	if err := gensupport.DecodeResponse(target, res); err != nil {
110489		return nil, err
110490	}
110491	return ret, nil
110492	// {
110493	//   "description": "Gets a rule at the specified priority. (== suppress_warning http-rest-shadowed ==)",
110494	//   "httpMethod": "GET",
110495	//   "id": "compute.organizationSecurityPolicies.getRule",
110496	//   "parameterOrder": [
110497	//     "securityPolicy"
110498	//   ],
110499	//   "parameters": {
110500	//     "priority": {
110501	//       "description": "The priority of the rule to get from the security policy.",
110502	//       "format": "int32",
110503	//       "location": "query",
110504	//       "type": "integer"
110505	//     },
110506	//     "securityPolicy": {
110507	//       "description": "Name of the security policy to which the queried rule belongs.",
110508	//       "location": "path",
110509	//       "pattern": "(securityPolicies/)?[0-9]{0,20}",
110510	//       "required": true,
110511	//       "type": "string"
110512	//     }
110513	//   },
110514	//   "path": "locations/global/securityPolicies/{securityPolicy}/getRule",
110515	//   "response": {
110516	//     "$ref": "SecurityPolicyRule"
110517	//   },
110518	//   "scopes": [
110519	//     "https://www.googleapis.com/auth/cloud-platform",
110520	//     "https://www.googleapis.com/auth/compute",
110521	//     "https://www.googleapis.com/auth/compute.readonly"
110522	//   ]
110523	// }
110524
110525}
110526
110527// method id "compute.organizationSecurityPolicies.insert":
110528
110529type OrganizationSecurityPoliciesInsertCall struct {
110530	s              *Service
110531	securitypolicy *SecurityPolicy
110532	urlParams_     gensupport.URLParams
110533	ctx_           context.Context
110534	header_        http.Header
110535}
110536
110537// Insert: Creates a new policy in the specified project using the data
110538// included in the request. (== suppress_warning http-rest-shadowed ==)
110539func (r *OrganizationSecurityPoliciesService) Insert(securitypolicy *SecurityPolicy) *OrganizationSecurityPoliciesInsertCall {
110540	c := &OrganizationSecurityPoliciesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
110541	c.securitypolicy = securitypolicy
110542	return c
110543}
110544
110545// ParentId sets the optional parameter "parentId": Parent ID for this
110546// request.
110547func (c *OrganizationSecurityPoliciesInsertCall) ParentId(parentId string) *OrganizationSecurityPoliciesInsertCall {
110548	c.urlParams_.Set("parentId", parentId)
110549	return c
110550}
110551
110552// RequestId sets the optional parameter "requestId": An optional
110553// request ID to identify requests. Specify a unique request ID so that
110554// if you must retry your request, the server will know to ignore the
110555// request if it has already been completed.
110556//
110557// For example, consider a situation where you make an initial request
110558// and the request times out. If you make the request again with the
110559// same request ID, the server can check if original operation with the
110560// same request ID was received, and if so, will ignore the second
110561// request. This prevents clients from accidentally creating duplicate
110562// commitments.
110563//
110564// The request ID must be a valid UUID with the exception that zero UUID
110565// is not supported (00000000-0000-0000-0000-000000000000).
110566func (c *OrganizationSecurityPoliciesInsertCall) RequestId(requestId string) *OrganizationSecurityPoliciesInsertCall {
110567	c.urlParams_.Set("requestId", requestId)
110568	return c
110569}
110570
110571// Fields allows partial responses to be retrieved. See
110572// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
110573// for more information.
110574func (c *OrganizationSecurityPoliciesInsertCall) Fields(s ...googleapi.Field) *OrganizationSecurityPoliciesInsertCall {
110575	c.urlParams_.Set("fields", googleapi.CombineFields(s))
110576	return c
110577}
110578
110579// Context sets the context to be used in this call's Do method. Any
110580// pending HTTP request will be aborted if the provided context is
110581// canceled.
110582func (c *OrganizationSecurityPoliciesInsertCall) Context(ctx context.Context) *OrganizationSecurityPoliciesInsertCall {
110583	c.ctx_ = ctx
110584	return c
110585}
110586
110587// Header returns an http.Header that can be modified by the caller to
110588// add HTTP headers to the request.
110589func (c *OrganizationSecurityPoliciesInsertCall) Header() http.Header {
110590	if c.header_ == nil {
110591		c.header_ = make(http.Header)
110592	}
110593	return c.header_
110594}
110595
110596func (c *OrganizationSecurityPoliciesInsertCall) doRequest(alt string) (*http.Response, error) {
110597	reqHeaders := make(http.Header)
110598	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
110599	for k, v := range c.header_ {
110600		reqHeaders[k] = v
110601	}
110602	reqHeaders.Set("User-Agent", c.s.userAgent())
110603	var body io.Reader = nil
110604	body, err := googleapi.WithoutDataWrapper.JSONReader(c.securitypolicy)
110605	if err != nil {
110606		return nil, err
110607	}
110608	reqHeaders.Set("Content-Type", "application/json")
110609	c.urlParams_.Set("alt", alt)
110610	c.urlParams_.Set("prettyPrint", "false")
110611	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/securityPolicies")
110612	urls += "?" + c.urlParams_.Encode()
110613	req, err := http.NewRequest("POST", urls, body)
110614	if err != nil {
110615		return nil, err
110616	}
110617	req.Header = reqHeaders
110618	return gensupport.SendRequest(c.ctx_, c.s.client, req)
110619}
110620
110621// Do executes the "compute.organizationSecurityPolicies.insert" call.
110622// Exactly one of *Operation or error will be non-nil. Any non-2xx
110623// status code is an error. Response headers are in either
110624// *Operation.ServerResponse.Header or (if a response was returned at
110625// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
110626// to check whether the returned error was because
110627// http.StatusNotModified was returned.
110628func (c *OrganizationSecurityPoliciesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
110629	gensupport.SetOptions(c.urlParams_, opts...)
110630	res, err := c.doRequest("json")
110631	if res != nil && res.StatusCode == http.StatusNotModified {
110632		if res.Body != nil {
110633			res.Body.Close()
110634		}
110635		return nil, &googleapi.Error{
110636			Code:   res.StatusCode,
110637			Header: res.Header,
110638		}
110639	}
110640	if err != nil {
110641		return nil, err
110642	}
110643	defer googleapi.CloseBody(res)
110644	if err := googleapi.CheckResponse(res); err != nil {
110645		return nil, err
110646	}
110647	ret := &Operation{
110648		ServerResponse: googleapi.ServerResponse{
110649			Header:         res.Header,
110650			HTTPStatusCode: res.StatusCode,
110651		},
110652	}
110653	target := &ret
110654	if err := gensupport.DecodeResponse(target, res); err != nil {
110655		return nil, err
110656	}
110657	return ret, nil
110658	// {
110659	//   "description": "Creates a new policy in the specified project using the data included in the request. (== suppress_warning http-rest-shadowed ==)",
110660	//   "httpMethod": "POST",
110661	//   "id": "compute.organizationSecurityPolicies.insert",
110662	//   "parameters": {
110663	//     "parentId": {
110664	//       "description": "Parent ID for this request.",
110665	//       "location": "query",
110666	//       "type": "string"
110667	//     },
110668	//     "requestId": {
110669	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
110670	//       "location": "query",
110671	//       "type": "string"
110672	//     }
110673	//   },
110674	//   "path": "locations/global/securityPolicies",
110675	//   "request": {
110676	//     "$ref": "SecurityPolicy"
110677	//   },
110678	//   "response": {
110679	//     "$ref": "Operation"
110680	//   },
110681	//   "scopes": [
110682	//     "https://www.googleapis.com/auth/cloud-platform",
110683	//     "https://www.googleapis.com/auth/compute"
110684	//   ]
110685	// }
110686
110687}
110688
110689// method id "compute.organizationSecurityPolicies.list":
110690
110691type OrganizationSecurityPoliciesListCall struct {
110692	s            *Service
110693	urlParams_   gensupport.URLParams
110694	ifNoneMatch_ string
110695	ctx_         context.Context
110696	header_      http.Header
110697}
110698
110699// List: List all the policies that have been configured for the
110700// specified project. (== suppress_warning http-rest-shadowed ==)
110701func (r *OrganizationSecurityPoliciesService) List() *OrganizationSecurityPoliciesListCall {
110702	c := &OrganizationSecurityPoliciesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
110703	return c
110704}
110705
110706// Filter sets the optional parameter "filter": A filter expression that
110707// filters resources listed in the response. The expression must specify
110708// the field name, a comparison operator, and the value that you want to
110709// use for filtering. The value must be a string, a number, or a
110710// boolean. The comparison operator must be either =, !=, >, or <.
110711//
110712// For example, if you are filtering Compute Engine instances, you can
110713// exclude instances named example-instance by specifying name !=
110714// example-instance.
110715//
110716// You can also filter nested fields. For example, you could specify
110717// scheduling.automaticRestart = false to include instances only if they
110718// are not scheduled for automatic restarts. You can use filtering on
110719// nested fields to filter based on resource labels.
110720//
110721// To filter on multiple expressions, provide each separate expression
110722// within parentheses. For example, (scheduling.automaticRestart = true)
110723// (cpuPlatform = "Intel Skylake"). By default, each expression is an
110724// AND expression. However, you can include AND and OR expressions
110725// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
110726// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
110727// true).
110728func (c *OrganizationSecurityPoliciesListCall) Filter(filter string) *OrganizationSecurityPoliciesListCall {
110729	c.urlParams_.Set("filter", filter)
110730	return c
110731}
110732
110733// MaxResults sets the optional parameter "maxResults": The maximum
110734// number of results per page that should be returned. If the number of
110735// available results is larger than maxResults, Compute Engine returns a
110736// nextPageToken that can be used to get the next page of results in
110737// subsequent list requests. Acceptable values are 0 to 500, inclusive.
110738// (Default: 500)
110739func (c *OrganizationSecurityPoliciesListCall) MaxResults(maxResults int64) *OrganizationSecurityPoliciesListCall {
110740	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
110741	return c
110742}
110743
110744// OrderBy sets the optional parameter "orderBy": Sorts list results by
110745// a certain order. By default, results are returned in alphanumerical
110746// order based on the resource name.
110747//
110748// You can also sort results in descending order based on the creation
110749// timestamp using orderBy="creationTimestamp desc". This sorts results
110750// based on the creationTimestamp field in reverse chronological order
110751// (newest result first). Use this to sort resources like operations so
110752// that the newest operation is returned first.
110753//
110754// Currently, only sorting by name or creationTimestamp desc is
110755// supported.
110756func (c *OrganizationSecurityPoliciesListCall) OrderBy(orderBy string) *OrganizationSecurityPoliciesListCall {
110757	c.urlParams_.Set("orderBy", orderBy)
110758	return c
110759}
110760
110761// PageToken sets the optional parameter "pageToken": Specifies a page
110762// token to use. Set pageToken to the nextPageToken returned by a
110763// previous list request to get the next page of results.
110764func (c *OrganizationSecurityPoliciesListCall) PageToken(pageToken string) *OrganizationSecurityPoliciesListCall {
110765	c.urlParams_.Set("pageToken", pageToken)
110766	return c
110767}
110768
110769// ParentId sets the optional parameter "parentId": Parent ID for this
110770// request.
110771func (c *OrganizationSecurityPoliciesListCall) ParentId(parentId string) *OrganizationSecurityPoliciesListCall {
110772	c.urlParams_.Set("parentId", parentId)
110773	return c
110774}
110775
110776// Fields allows partial responses to be retrieved. See
110777// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
110778// for more information.
110779func (c *OrganizationSecurityPoliciesListCall) Fields(s ...googleapi.Field) *OrganizationSecurityPoliciesListCall {
110780	c.urlParams_.Set("fields", googleapi.CombineFields(s))
110781	return c
110782}
110783
110784// IfNoneMatch sets the optional parameter which makes the operation
110785// fail if the object's ETag matches the given value. This is useful for
110786// getting updates only after the object has changed since the last
110787// request. Use googleapi.IsNotModified to check whether the response
110788// error from Do is the result of In-None-Match.
110789func (c *OrganizationSecurityPoliciesListCall) IfNoneMatch(entityTag string) *OrganizationSecurityPoliciesListCall {
110790	c.ifNoneMatch_ = entityTag
110791	return c
110792}
110793
110794// Context sets the context to be used in this call's Do method. Any
110795// pending HTTP request will be aborted if the provided context is
110796// canceled.
110797func (c *OrganizationSecurityPoliciesListCall) Context(ctx context.Context) *OrganizationSecurityPoliciesListCall {
110798	c.ctx_ = ctx
110799	return c
110800}
110801
110802// Header returns an http.Header that can be modified by the caller to
110803// add HTTP headers to the request.
110804func (c *OrganizationSecurityPoliciesListCall) Header() http.Header {
110805	if c.header_ == nil {
110806		c.header_ = make(http.Header)
110807	}
110808	return c.header_
110809}
110810
110811func (c *OrganizationSecurityPoliciesListCall) doRequest(alt string) (*http.Response, error) {
110812	reqHeaders := make(http.Header)
110813	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
110814	for k, v := range c.header_ {
110815		reqHeaders[k] = v
110816	}
110817	reqHeaders.Set("User-Agent", c.s.userAgent())
110818	if c.ifNoneMatch_ != "" {
110819		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
110820	}
110821	var body io.Reader = nil
110822	c.urlParams_.Set("alt", alt)
110823	c.urlParams_.Set("prettyPrint", "false")
110824	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/securityPolicies")
110825	urls += "?" + c.urlParams_.Encode()
110826	req, err := http.NewRequest("GET", urls, body)
110827	if err != nil {
110828		return nil, err
110829	}
110830	req.Header = reqHeaders
110831	return gensupport.SendRequest(c.ctx_, c.s.client, req)
110832}
110833
110834// Do executes the "compute.organizationSecurityPolicies.list" call.
110835// Exactly one of *SecurityPolicyList or error will be non-nil. Any
110836// non-2xx status code is an error. Response headers are in either
110837// *SecurityPolicyList.ServerResponse.Header or (if a response was
110838// returned at all) in error.(*googleapi.Error).Header. Use
110839// googleapi.IsNotModified to check whether the returned error was
110840// because http.StatusNotModified was returned.
110841func (c *OrganizationSecurityPoliciesListCall) Do(opts ...googleapi.CallOption) (*SecurityPolicyList, error) {
110842	gensupport.SetOptions(c.urlParams_, opts...)
110843	res, err := c.doRequest("json")
110844	if res != nil && res.StatusCode == http.StatusNotModified {
110845		if res.Body != nil {
110846			res.Body.Close()
110847		}
110848		return nil, &googleapi.Error{
110849			Code:   res.StatusCode,
110850			Header: res.Header,
110851		}
110852	}
110853	if err != nil {
110854		return nil, err
110855	}
110856	defer googleapi.CloseBody(res)
110857	if err := googleapi.CheckResponse(res); err != nil {
110858		return nil, err
110859	}
110860	ret := &SecurityPolicyList{
110861		ServerResponse: googleapi.ServerResponse{
110862			Header:         res.Header,
110863			HTTPStatusCode: res.StatusCode,
110864		},
110865	}
110866	target := &ret
110867	if err := gensupport.DecodeResponse(target, res); err != nil {
110868		return nil, err
110869	}
110870	return ret, nil
110871	// {
110872	//   "description": "List all the policies that have been configured for the specified project. (== suppress_warning http-rest-shadowed ==)",
110873	//   "httpMethod": "GET",
110874	//   "id": "compute.organizationSecurityPolicies.list",
110875	//   "parameters": {
110876	//     "filter": {
110877	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
110878	//       "location": "query",
110879	//       "type": "string"
110880	//     },
110881	//     "maxResults": {
110882	//       "default": "500",
110883	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
110884	//       "format": "uint32",
110885	//       "location": "query",
110886	//       "minimum": "0",
110887	//       "type": "integer"
110888	//     },
110889	//     "orderBy": {
110890	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
110891	//       "location": "query",
110892	//       "type": "string"
110893	//     },
110894	//     "pageToken": {
110895	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
110896	//       "location": "query",
110897	//       "type": "string"
110898	//     },
110899	//     "parentId": {
110900	//       "description": "Parent ID for this request.",
110901	//       "location": "query",
110902	//       "type": "string"
110903	//     }
110904	//   },
110905	//   "path": "locations/global/securityPolicies",
110906	//   "response": {
110907	//     "$ref": "SecurityPolicyList"
110908	//   },
110909	//   "scopes": [
110910	//     "https://www.googleapis.com/auth/cloud-platform",
110911	//     "https://www.googleapis.com/auth/compute",
110912	//     "https://www.googleapis.com/auth/compute.readonly"
110913	//   ]
110914	// }
110915
110916}
110917
110918// Pages invokes f for each page of results.
110919// A non-nil error returned from f will halt the iteration.
110920// The provided context supersedes any context provided to the Context method.
110921func (c *OrganizationSecurityPoliciesListCall) Pages(ctx context.Context, f func(*SecurityPolicyList) error) error {
110922	c.ctx_ = ctx
110923	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
110924	for {
110925		x, err := c.Do()
110926		if err != nil {
110927			return err
110928		}
110929		if err := f(x); err != nil {
110930			return err
110931		}
110932		if x.NextPageToken == "" {
110933			return nil
110934		}
110935		c.PageToken(x.NextPageToken)
110936	}
110937}
110938
110939// method id "compute.organizationSecurityPolicies.listAssociations":
110940
110941type OrganizationSecurityPoliciesListAssociationsCall struct {
110942	s            *Service
110943	urlParams_   gensupport.URLParams
110944	ifNoneMatch_ string
110945	ctx_         context.Context
110946	header_      http.Header
110947}
110948
110949// ListAssociations: Lists associations of a specified target, i.e.,
110950// organization or folder. (== suppress_warning http-rest-shadowed ==)
110951func (r *OrganizationSecurityPoliciesService) ListAssociations() *OrganizationSecurityPoliciesListAssociationsCall {
110952	c := &OrganizationSecurityPoliciesListAssociationsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
110953	return c
110954}
110955
110956// TargetResource sets the optional parameter "targetResource": The
110957// target resource to list associations. It is an organization, or a
110958// folder.
110959func (c *OrganizationSecurityPoliciesListAssociationsCall) TargetResource(targetResource string) *OrganizationSecurityPoliciesListAssociationsCall {
110960	c.urlParams_.Set("targetResource", targetResource)
110961	return c
110962}
110963
110964// Fields allows partial responses to be retrieved. See
110965// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
110966// for more information.
110967func (c *OrganizationSecurityPoliciesListAssociationsCall) Fields(s ...googleapi.Field) *OrganizationSecurityPoliciesListAssociationsCall {
110968	c.urlParams_.Set("fields", googleapi.CombineFields(s))
110969	return c
110970}
110971
110972// IfNoneMatch sets the optional parameter which makes the operation
110973// fail if the object's ETag matches the given value. This is useful for
110974// getting updates only after the object has changed since the last
110975// request. Use googleapi.IsNotModified to check whether the response
110976// error from Do is the result of In-None-Match.
110977func (c *OrganizationSecurityPoliciesListAssociationsCall) IfNoneMatch(entityTag string) *OrganizationSecurityPoliciesListAssociationsCall {
110978	c.ifNoneMatch_ = entityTag
110979	return c
110980}
110981
110982// Context sets the context to be used in this call's Do method. Any
110983// pending HTTP request will be aborted if the provided context is
110984// canceled.
110985func (c *OrganizationSecurityPoliciesListAssociationsCall) Context(ctx context.Context) *OrganizationSecurityPoliciesListAssociationsCall {
110986	c.ctx_ = ctx
110987	return c
110988}
110989
110990// Header returns an http.Header that can be modified by the caller to
110991// add HTTP headers to the request.
110992func (c *OrganizationSecurityPoliciesListAssociationsCall) Header() http.Header {
110993	if c.header_ == nil {
110994		c.header_ = make(http.Header)
110995	}
110996	return c.header_
110997}
110998
110999func (c *OrganizationSecurityPoliciesListAssociationsCall) doRequest(alt string) (*http.Response, error) {
111000	reqHeaders := make(http.Header)
111001	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
111002	for k, v := range c.header_ {
111003		reqHeaders[k] = v
111004	}
111005	reqHeaders.Set("User-Agent", c.s.userAgent())
111006	if c.ifNoneMatch_ != "" {
111007		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
111008	}
111009	var body io.Reader = nil
111010	c.urlParams_.Set("alt", alt)
111011	c.urlParams_.Set("prettyPrint", "false")
111012	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/securityPolicies/listAssociations")
111013	urls += "?" + c.urlParams_.Encode()
111014	req, err := http.NewRequest("GET", urls, body)
111015	if err != nil {
111016		return nil, err
111017	}
111018	req.Header = reqHeaders
111019	return gensupport.SendRequest(c.ctx_, c.s.client, req)
111020}
111021
111022// Do executes the "compute.organizationSecurityPolicies.listAssociations" call.
111023// Exactly one of *OrganizationSecurityPoliciesListAssociationsResponse
111024// or error will be non-nil. Any non-2xx status code is an error.
111025// Response headers are in either
111026// *OrganizationSecurityPoliciesListAssociationsResponse.ServerResponse.H
111027// eader or (if a response was returned at all) in
111028// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
111029// whether the returned error was because http.StatusNotModified was
111030// returned.
111031func (c *OrganizationSecurityPoliciesListAssociationsCall) Do(opts ...googleapi.CallOption) (*OrganizationSecurityPoliciesListAssociationsResponse, error) {
111032	gensupport.SetOptions(c.urlParams_, opts...)
111033	res, err := c.doRequest("json")
111034	if res != nil && res.StatusCode == http.StatusNotModified {
111035		if res.Body != nil {
111036			res.Body.Close()
111037		}
111038		return nil, &googleapi.Error{
111039			Code:   res.StatusCode,
111040			Header: res.Header,
111041		}
111042	}
111043	if err != nil {
111044		return nil, err
111045	}
111046	defer googleapi.CloseBody(res)
111047	if err := googleapi.CheckResponse(res); err != nil {
111048		return nil, err
111049	}
111050	ret := &OrganizationSecurityPoliciesListAssociationsResponse{
111051		ServerResponse: googleapi.ServerResponse{
111052			Header:         res.Header,
111053			HTTPStatusCode: res.StatusCode,
111054		},
111055	}
111056	target := &ret
111057	if err := gensupport.DecodeResponse(target, res); err != nil {
111058		return nil, err
111059	}
111060	return ret, nil
111061	// {
111062	//   "description": "Lists associations of a specified target, i.e., organization or folder. (== suppress_warning http-rest-shadowed ==)",
111063	//   "httpMethod": "GET",
111064	//   "id": "compute.organizationSecurityPolicies.listAssociations",
111065	//   "parameters": {
111066	//     "targetResource": {
111067	//       "description": "The target resource to list associations. It is an organization, or a folder.",
111068	//       "location": "query",
111069	//       "type": "string"
111070	//     }
111071	//   },
111072	//   "path": "locations/global/securityPolicies/listAssociations",
111073	//   "response": {
111074	//     "$ref": "OrganizationSecurityPoliciesListAssociationsResponse"
111075	//   },
111076	//   "scopes": [
111077	//     "https://www.googleapis.com/auth/cloud-platform",
111078	//     "https://www.googleapis.com/auth/compute"
111079	//   ]
111080	// }
111081
111082}
111083
111084// method id "compute.organizationSecurityPolicies.move":
111085
111086type OrganizationSecurityPoliciesMoveCall struct {
111087	s              *Service
111088	securityPolicy string
111089	urlParams_     gensupport.URLParams
111090	ctx_           context.Context
111091	header_        http.Header
111092}
111093
111094// Move: Moves the specified security policy. (== suppress_warning
111095// http-rest-shadowed ==)
111096func (r *OrganizationSecurityPoliciesService) Move(securityPolicy string) *OrganizationSecurityPoliciesMoveCall {
111097	c := &OrganizationSecurityPoliciesMoveCall{s: r.s, urlParams_: make(gensupport.URLParams)}
111098	c.securityPolicy = securityPolicy
111099	return c
111100}
111101
111102// ParentId sets the optional parameter "parentId": The new parent of
111103// the security policy.
111104func (c *OrganizationSecurityPoliciesMoveCall) ParentId(parentId string) *OrganizationSecurityPoliciesMoveCall {
111105	c.urlParams_.Set("parentId", parentId)
111106	return c
111107}
111108
111109// RequestId sets the optional parameter "requestId": An optional
111110// request ID to identify requests. Specify a unique request ID so that
111111// if you must retry your request, the server will know to ignore the
111112// request if it has already been completed.
111113//
111114// For example, consider a situation where you make an initial request
111115// and the request times out. If you make the request again with the
111116// same request ID, the server can check if original operation with the
111117// same request ID was received, and if so, will ignore the second
111118// request. This prevents clients from accidentally creating duplicate
111119// commitments.
111120//
111121// The request ID must be a valid UUID with the exception that zero UUID
111122// is not supported (00000000-0000-0000-0000-000000000000).
111123func (c *OrganizationSecurityPoliciesMoveCall) RequestId(requestId string) *OrganizationSecurityPoliciesMoveCall {
111124	c.urlParams_.Set("requestId", requestId)
111125	return c
111126}
111127
111128// Fields allows partial responses to be retrieved. See
111129// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
111130// for more information.
111131func (c *OrganizationSecurityPoliciesMoveCall) Fields(s ...googleapi.Field) *OrganizationSecurityPoliciesMoveCall {
111132	c.urlParams_.Set("fields", googleapi.CombineFields(s))
111133	return c
111134}
111135
111136// Context sets the context to be used in this call's Do method. Any
111137// pending HTTP request will be aborted if the provided context is
111138// canceled.
111139func (c *OrganizationSecurityPoliciesMoveCall) Context(ctx context.Context) *OrganizationSecurityPoliciesMoveCall {
111140	c.ctx_ = ctx
111141	return c
111142}
111143
111144// Header returns an http.Header that can be modified by the caller to
111145// add HTTP headers to the request.
111146func (c *OrganizationSecurityPoliciesMoveCall) Header() http.Header {
111147	if c.header_ == nil {
111148		c.header_ = make(http.Header)
111149	}
111150	return c.header_
111151}
111152
111153func (c *OrganizationSecurityPoliciesMoveCall) doRequest(alt string) (*http.Response, error) {
111154	reqHeaders := make(http.Header)
111155	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
111156	for k, v := range c.header_ {
111157		reqHeaders[k] = v
111158	}
111159	reqHeaders.Set("User-Agent", c.s.userAgent())
111160	var body io.Reader = nil
111161	c.urlParams_.Set("alt", alt)
111162	c.urlParams_.Set("prettyPrint", "false")
111163	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/securityPolicies/{securityPolicy}/move")
111164	urls += "?" + c.urlParams_.Encode()
111165	req, err := http.NewRequest("POST", urls, body)
111166	if err != nil {
111167		return nil, err
111168	}
111169	req.Header = reqHeaders
111170	googleapi.Expand(req.URL, map[string]string{
111171		"securityPolicy": c.securityPolicy,
111172	})
111173	return gensupport.SendRequest(c.ctx_, c.s.client, req)
111174}
111175
111176// Do executes the "compute.organizationSecurityPolicies.move" call.
111177// Exactly one of *Operation or error will be non-nil. Any non-2xx
111178// status code is an error. Response headers are in either
111179// *Operation.ServerResponse.Header or (if a response was returned at
111180// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
111181// to check whether the returned error was because
111182// http.StatusNotModified was returned.
111183func (c *OrganizationSecurityPoliciesMoveCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
111184	gensupport.SetOptions(c.urlParams_, opts...)
111185	res, err := c.doRequest("json")
111186	if res != nil && res.StatusCode == http.StatusNotModified {
111187		if res.Body != nil {
111188			res.Body.Close()
111189		}
111190		return nil, &googleapi.Error{
111191			Code:   res.StatusCode,
111192			Header: res.Header,
111193		}
111194	}
111195	if err != nil {
111196		return nil, err
111197	}
111198	defer googleapi.CloseBody(res)
111199	if err := googleapi.CheckResponse(res); err != nil {
111200		return nil, err
111201	}
111202	ret := &Operation{
111203		ServerResponse: googleapi.ServerResponse{
111204			Header:         res.Header,
111205			HTTPStatusCode: res.StatusCode,
111206		},
111207	}
111208	target := &ret
111209	if err := gensupport.DecodeResponse(target, res); err != nil {
111210		return nil, err
111211	}
111212	return ret, nil
111213	// {
111214	//   "description": "Moves the specified security policy. (== suppress_warning http-rest-shadowed ==)",
111215	//   "httpMethod": "POST",
111216	//   "id": "compute.organizationSecurityPolicies.move",
111217	//   "parameterOrder": [
111218	//     "securityPolicy"
111219	//   ],
111220	//   "parameters": {
111221	//     "parentId": {
111222	//       "description": "The new parent of the security policy.",
111223	//       "location": "query",
111224	//       "type": "string"
111225	//     },
111226	//     "requestId": {
111227	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
111228	//       "location": "query",
111229	//       "type": "string"
111230	//     },
111231	//     "securityPolicy": {
111232	//       "description": "Name of the security policy to update.",
111233	//       "location": "path",
111234	//       "pattern": "(securityPolicies/)?[0-9]{0,20}",
111235	//       "required": true,
111236	//       "type": "string"
111237	//     }
111238	//   },
111239	//   "path": "locations/global/securityPolicies/{securityPolicy}/move",
111240	//   "response": {
111241	//     "$ref": "Operation"
111242	//   },
111243	//   "scopes": [
111244	//     "https://www.googleapis.com/auth/cloud-platform",
111245	//     "https://www.googleapis.com/auth/compute"
111246	//   ]
111247	// }
111248
111249}
111250
111251// method id "compute.organizationSecurityPolicies.patch":
111252
111253type OrganizationSecurityPoliciesPatchCall struct {
111254	s              *Service
111255	securityPolicy string
111256	securitypolicy *SecurityPolicy
111257	urlParams_     gensupport.URLParams
111258	ctx_           context.Context
111259	header_        http.Header
111260}
111261
111262// Patch: Patches the specified policy with the data included in the
111263// request. (== suppress_warning http-rest-shadowed ==)
111264func (r *OrganizationSecurityPoliciesService) Patch(securityPolicy string, securitypolicy *SecurityPolicy) *OrganizationSecurityPoliciesPatchCall {
111265	c := &OrganizationSecurityPoliciesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
111266	c.securityPolicy = securityPolicy
111267	c.securitypolicy = securitypolicy
111268	return c
111269}
111270
111271// RequestId sets the optional parameter "requestId": An optional
111272// request ID to identify requests. Specify a unique request ID so that
111273// if you must retry your request, the server will know to ignore the
111274// request if it has already been completed.
111275//
111276// For example, consider a situation where you make an initial request
111277// and the request times out. If you make the request again with the
111278// same request ID, the server can check if original operation with the
111279// same request ID was received, and if so, will ignore the second
111280// request. This prevents clients from accidentally creating duplicate
111281// commitments.
111282//
111283// The request ID must be a valid UUID with the exception that zero UUID
111284// is not supported (00000000-0000-0000-0000-000000000000).
111285func (c *OrganizationSecurityPoliciesPatchCall) RequestId(requestId string) *OrganizationSecurityPoliciesPatchCall {
111286	c.urlParams_.Set("requestId", requestId)
111287	return c
111288}
111289
111290// Fields allows partial responses to be retrieved. See
111291// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
111292// for more information.
111293func (c *OrganizationSecurityPoliciesPatchCall) Fields(s ...googleapi.Field) *OrganizationSecurityPoliciesPatchCall {
111294	c.urlParams_.Set("fields", googleapi.CombineFields(s))
111295	return c
111296}
111297
111298// Context sets the context to be used in this call's Do method. Any
111299// pending HTTP request will be aborted if the provided context is
111300// canceled.
111301func (c *OrganizationSecurityPoliciesPatchCall) Context(ctx context.Context) *OrganizationSecurityPoliciesPatchCall {
111302	c.ctx_ = ctx
111303	return c
111304}
111305
111306// Header returns an http.Header that can be modified by the caller to
111307// add HTTP headers to the request.
111308func (c *OrganizationSecurityPoliciesPatchCall) Header() http.Header {
111309	if c.header_ == nil {
111310		c.header_ = make(http.Header)
111311	}
111312	return c.header_
111313}
111314
111315func (c *OrganizationSecurityPoliciesPatchCall) doRequest(alt string) (*http.Response, error) {
111316	reqHeaders := make(http.Header)
111317	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
111318	for k, v := range c.header_ {
111319		reqHeaders[k] = v
111320	}
111321	reqHeaders.Set("User-Agent", c.s.userAgent())
111322	var body io.Reader = nil
111323	body, err := googleapi.WithoutDataWrapper.JSONReader(c.securitypolicy)
111324	if err != nil {
111325		return nil, err
111326	}
111327	reqHeaders.Set("Content-Type", "application/json")
111328	c.urlParams_.Set("alt", alt)
111329	c.urlParams_.Set("prettyPrint", "false")
111330	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/securityPolicies/{securityPolicy}")
111331	urls += "?" + c.urlParams_.Encode()
111332	req, err := http.NewRequest("PATCH", urls, body)
111333	if err != nil {
111334		return nil, err
111335	}
111336	req.Header = reqHeaders
111337	googleapi.Expand(req.URL, map[string]string{
111338		"securityPolicy": c.securityPolicy,
111339	})
111340	return gensupport.SendRequest(c.ctx_, c.s.client, req)
111341}
111342
111343// Do executes the "compute.organizationSecurityPolicies.patch" call.
111344// Exactly one of *Operation or error will be non-nil. Any non-2xx
111345// status code is an error. Response headers are in either
111346// *Operation.ServerResponse.Header or (if a response was returned at
111347// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
111348// to check whether the returned error was because
111349// http.StatusNotModified was returned.
111350func (c *OrganizationSecurityPoliciesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
111351	gensupport.SetOptions(c.urlParams_, opts...)
111352	res, err := c.doRequest("json")
111353	if res != nil && res.StatusCode == http.StatusNotModified {
111354		if res.Body != nil {
111355			res.Body.Close()
111356		}
111357		return nil, &googleapi.Error{
111358			Code:   res.StatusCode,
111359			Header: res.Header,
111360		}
111361	}
111362	if err != nil {
111363		return nil, err
111364	}
111365	defer googleapi.CloseBody(res)
111366	if err := googleapi.CheckResponse(res); err != nil {
111367		return nil, err
111368	}
111369	ret := &Operation{
111370		ServerResponse: googleapi.ServerResponse{
111371			Header:         res.Header,
111372			HTTPStatusCode: res.StatusCode,
111373		},
111374	}
111375	target := &ret
111376	if err := gensupport.DecodeResponse(target, res); err != nil {
111377		return nil, err
111378	}
111379	return ret, nil
111380	// {
111381	//   "description": "Patches the specified policy with the data included in the request. (== suppress_warning http-rest-shadowed ==)",
111382	//   "httpMethod": "PATCH",
111383	//   "id": "compute.organizationSecurityPolicies.patch",
111384	//   "parameterOrder": [
111385	//     "securityPolicy"
111386	//   ],
111387	//   "parameters": {
111388	//     "requestId": {
111389	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
111390	//       "location": "query",
111391	//       "type": "string"
111392	//     },
111393	//     "securityPolicy": {
111394	//       "description": "Name of the security policy to update.",
111395	//       "location": "path",
111396	//       "pattern": "(securityPolicies/)?[0-9]{0,20}",
111397	//       "required": true,
111398	//       "type": "string"
111399	//     }
111400	//   },
111401	//   "path": "locations/global/securityPolicies/{securityPolicy}",
111402	//   "request": {
111403	//     "$ref": "SecurityPolicy"
111404	//   },
111405	//   "response": {
111406	//     "$ref": "Operation"
111407	//   },
111408	//   "scopes": [
111409	//     "https://www.googleapis.com/auth/cloud-platform",
111410	//     "https://www.googleapis.com/auth/compute"
111411	//   ]
111412	// }
111413
111414}
111415
111416// method id "compute.organizationSecurityPolicies.patchRule":
111417
111418type OrganizationSecurityPoliciesPatchRuleCall struct {
111419	s                  *Service
111420	securityPolicy     string
111421	securitypolicyrule *SecurityPolicyRule
111422	urlParams_         gensupport.URLParams
111423	ctx_               context.Context
111424	header_            http.Header
111425}
111426
111427// PatchRule: Patches a rule at the specified priority. (==
111428// suppress_warning http-rest-shadowed ==)
111429func (r *OrganizationSecurityPoliciesService) PatchRule(securityPolicy string, securitypolicyrule *SecurityPolicyRule) *OrganizationSecurityPoliciesPatchRuleCall {
111430	c := &OrganizationSecurityPoliciesPatchRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)}
111431	c.securityPolicy = securityPolicy
111432	c.securitypolicyrule = securitypolicyrule
111433	return c
111434}
111435
111436// Priority sets the optional parameter "priority": The priority of the
111437// rule to patch.
111438func (c *OrganizationSecurityPoliciesPatchRuleCall) Priority(priority int64) *OrganizationSecurityPoliciesPatchRuleCall {
111439	c.urlParams_.Set("priority", fmt.Sprint(priority))
111440	return c
111441}
111442
111443// RequestId sets the optional parameter "requestId": An optional
111444// request ID to identify requests. Specify a unique request ID so that
111445// if you must retry your request, the server will know to ignore the
111446// request if it has already been completed.
111447//
111448// For example, consider a situation where you make an initial request
111449// and the request times out. If you make the request again with the
111450// same request ID, the server can check if original operation with the
111451// same request ID was received, and if so, will ignore the second
111452// request. This prevents clients from accidentally creating duplicate
111453// commitments.
111454//
111455// The request ID must be a valid UUID with the exception that zero UUID
111456// is not supported (00000000-0000-0000-0000-000000000000).
111457func (c *OrganizationSecurityPoliciesPatchRuleCall) RequestId(requestId string) *OrganizationSecurityPoliciesPatchRuleCall {
111458	c.urlParams_.Set("requestId", requestId)
111459	return c
111460}
111461
111462// Fields allows partial responses to be retrieved. See
111463// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
111464// for more information.
111465func (c *OrganizationSecurityPoliciesPatchRuleCall) Fields(s ...googleapi.Field) *OrganizationSecurityPoliciesPatchRuleCall {
111466	c.urlParams_.Set("fields", googleapi.CombineFields(s))
111467	return c
111468}
111469
111470// Context sets the context to be used in this call's Do method. Any
111471// pending HTTP request will be aborted if the provided context is
111472// canceled.
111473func (c *OrganizationSecurityPoliciesPatchRuleCall) Context(ctx context.Context) *OrganizationSecurityPoliciesPatchRuleCall {
111474	c.ctx_ = ctx
111475	return c
111476}
111477
111478// Header returns an http.Header that can be modified by the caller to
111479// add HTTP headers to the request.
111480func (c *OrganizationSecurityPoliciesPatchRuleCall) Header() http.Header {
111481	if c.header_ == nil {
111482		c.header_ = make(http.Header)
111483	}
111484	return c.header_
111485}
111486
111487func (c *OrganizationSecurityPoliciesPatchRuleCall) doRequest(alt string) (*http.Response, error) {
111488	reqHeaders := make(http.Header)
111489	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
111490	for k, v := range c.header_ {
111491		reqHeaders[k] = v
111492	}
111493	reqHeaders.Set("User-Agent", c.s.userAgent())
111494	var body io.Reader = nil
111495	body, err := googleapi.WithoutDataWrapper.JSONReader(c.securitypolicyrule)
111496	if err != nil {
111497		return nil, err
111498	}
111499	reqHeaders.Set("Content-Type", "application/json")
111500	c.urlParams_.Set("alt", alt)
111501	c.urlParams_.Set("prettyPrint", "false")
111502	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/securityPolicies/{securityPolicy}/patchRule")
111503	urls += "?" + c.urlParams_.Encode()
111504	req, err := http.NewRequest("POST", urls, body)
111505	if err != nil {
111506		return nil, err
111507	}
111508	req.Header = reqHeaders
111509	googleapi.Expand(req.URL, map[string]string{
111510		"securityPolicy": c.securityPolicy,
111511	})
111512	return gensupport.SendRequest(c.ctx_, c.s.client, req)
111513}
111514
111515// Do executes the "compute.organizationSecurityPolicies.patchRule" call.
111516// Exactly one of *Operation or error will be non-nil. Any non-2xx
111517// status code is an error. Response headers are in either
111518// *Operation.ServerResponse.Header or (if a response was returned at
111519// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
111520// to check whether the returned error was because
111521// http.StatusNotModified was returned.
111522func (c *OrganizationSecurityPoliciesPatchRuleCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
111523	gensupport.SetOptions(c.urlParams_, opts...)
111524	res, err := c.doRequest("json")
111525	if res != nil && res.StatusCode == http.StatusNotModified {
111526		if res.Body != nil {
111527			res.Body.Close()
111528		}
111529		return nil, &googleapi.Error{
111530			Code:   res.StatusCode,
111531			Header: res.Header,
111532		}
111533	}
111534	if err != nil {
111535		return nil, err
111536	}
111537	defer googleapi.CloseBody(res)
111538	if err := googleapi.CheckResponse(res); err != nil {
111539		return nil, err
111540	}
111541	ret := &Operation{
111542		ServerResponse: googleapi.ServerResponse{
111543			Header:         res.Header,
111544			HTTPStatusCode: res.StatusCode,
111545		},
111546	}
111547	target := &ret
111548	if err := gensupport.DecodeResponse(target, res); err != nil {
111549		return nil, err
111550	}
111551	return ret, nil
111552	// {
111553	//   "description": "Patches a rule at the specified priority. (== suppress_warning http-rest-shadowed ==)",
111554	//   "httpMethod": "POST",
111555	//   "id": "compute.organizationSecurityPolicies.patchRule",
111556	//   "parameterOrder": [
111557	//     "securityPolicy"
111558	//   ],
111559	//   "parameters": {
111560	//     "priority": {
111561	//       "description": "The priority of the rule to patch.",
111562	//       "format": "int32",
111563	//       "location": "query",
111564	//       "type": "integer"
111565	//     },
111566	//     "requestId": {
111567	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
111568	//       "location": "query",
111569	//       "type": "string"
111570	//     },
111571	//     "securityPolicy": {
111572	//       "description": "Name of the security policy to update.",
111573	//       "location": "path",
111574	//       "pattern": "(securityPolicies/)?[0-9]{0,20}",
111575	//       "required": true,
111576	//       "type": "string"
111577	//     }
111578	//   },
111579	//   "path": "locations/global/securityPolicies/{securityPolicy}/patchRule",
111580	//   "request": {
111581	//     "$ref": "SecurityPolicyRule"
111582	//   },
111583	//   "response": {
111584	//     "$ref": "Operation"
111585	//   },
111586	//   "scopes": [
111587	//     "https://www.googleapis.com/auth/cloud-platform",
111588	//     "https://www.googleapis.com/auth/compute"
111589	//   ]
111590	// }
111591
111592}
111593
111594// method id "compute.organizationSecurityPolicies.removeAssociation":
111595
111596type OrganizationSecurityPoliciesRemoveAssociationCall struct {
111597	s              *Service
111598	securityPolicy string
111599	urlParams_     gensupport.URLParams
111600	ctx_           context.Context
111601	header_        http.Header
111602}
111603
111604// RemoveAssociation: Removes an association for the specified security
111605// policy. (== suppress_warning http-rest-shadowed ==)
111606func (r *OrganizationSecurityPoliciesService) RemoveAssociation(securityPolicy string) *OrganizationSecurityPoliciesRemoveAssociationCall {
111607	c := &OrganizationSecurityPoliciesRemoveAssociationCall{s: r.s, urlParams_: make(gensupport.URLParams)}
111608	c.securityPolicy = securityPolicy
111609	return c
111610}
111611
111612// Name sets the optional parameter "name": Name for the attachment that
111613// will be removed.
111614func (c *OrganizationSecurityPoliciesRemoveAssociationCall) Name(name string) *OrganizationSecurityPoliciesRemoveAssociationCall {
111615	c.urlParams_.Set("name", name)
111616	return c
111617}
111618
111619// RequestId sets the optional parameter "requestId": An optional
111620// request ID to identify requests. Specify a unique request ID so that
111621// if you must retry your request, the server will know to ignore the
111622// request if it has already been completed.
111623//
111624// For example, consider a situation where you make an initial request
111625// and the request times out. If you make the request again with the
111626// same request ID, the server can check if original operation with the
111627// same request ID was received, and if so, will ignore the second
111628// request. This prevents clients from accidentally creating duplicate
111629// commitments.
111630//
111631// The request ID must be a valid UUID with the exception that zero UUID
111632// is not supported (00000000-0000-0000-0000-000000000000).
111633func (c *OrganizationSecurityPoliciesRemoveAssociationCall) RequestId(requestId string) *OrganizationSecurityPoliciesRemoveAssociationCall {
111634	c.urlParams_.Set("requestId", requestId)
111635	return c
111636}
111637
111638// Fields allows partial responses to be retrieved. See
111639// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
111640// for more information.
111641func (c *OrganizationSecurityPoliciesRemoveAssociationCall) Fields(s ...googleapi.Field) *OrganizationSecurityPoliciesRemoveAssociationCall {
111642	c.urlParams_.Set("fields", googleapi.CombineFields(s))
111643	return c
111644}
111645
111646// Context sets the context to be used in this call's Do method. Any
111647// pending HTTP request will be aborted if the provided context is
111648// canceled.
111649func (c *OrganizationSecurityPoliciesRemoveAssociationCall) Context(ctx context.Context) *OrganizationSecurityPoliciesRemoveAssociationCall {
111650	c.ctx_ = ctx
111651	return c
111652}
111653
111654// Header returns an http.Header that can be modified by the caller to
111655// add HTTP headers to the request.
111656func (c *OrganizationSecurityPoliciesRemoveAssociationCall) Header() http.Header {
111657	if c.header_ == nil {
111658		c.header_ = make(http.Header)
111659	}
111660	return c.header_
111661}
111662
111663func (c *OrganizationSecurityPoliciesRemoveAssociationCall) doRequest(alt string) (*http.Response, error) {
111664	reqHeaders := make(http.Header)
111665	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
111666	for k, v := range c.header_ {
111667		reqHeaders[k] = v
111668	}
111669	reqHeaders.Set("User-Agent", c.s.userAgent())
111670	var body io.Reader = nil
111671	c.urlParams_.Set("alt", alt)
111672	c.urlParams_.Set("prettyPrint", "false")
111673	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/securityPolicies/{securityPolicy}/removeAssociation")
111674	urls += "?" + c.urlParams_.Encode()
111675	req, err := http.NewRequest("POST", urls, body)
111676	if err != nil {
111677		return nil, err
111678	}
111679	req.Header = reqHeaders
111680	googleapi.Expand(req.URL, map[string]string{
111681		"securityPolicy": c.securityPolicy,
111682	})
111683	return gensupport.SendRequest(c.ctx_, c.s.client, req)
111684}
111685
111686// Do executes the "compute.organizationSecurityPolicies.removeAssociation" call.
111687// Exactly one of *Operation or error will be non-nil. Any non-2xx
111688// status code is an error. Response headers are in either
111689// *Operation.ServerResponse.Header or (if a response was returned at
111690// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
111691// to check whether the returned error was because
111692// http.StatusNotModified was returned.
111693func (c *OrganizationSecurityPoliciesRemoveAssociationCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
111694	gensupport.SetOptions(c.urlParams_, opts...)
111695	res, err := c.doRequest("json")
111696	if res != nil && res.StatusCode == http.StatusNotModified {
111697		if res.Body != nil {
111698			res.Body.Close()
111699		}
111700		return nil, &googleapi.Error{
111701			Code:   res.StatusCode,
111702			Header: res.Header,
111703		}
111704	}
111705	if err != nil {
111706		return nil, err
111707	}
111708	defer googleapi.CloseBody(res)
111709	if err := googleapi.CheckResponse(res); err != nil {
111710		return nil, err
111711	}
111712	ret := &Operation{
111713		ServerResponse: googleapi.ServerResponse{
111714			Header:         res.Header,
111715			HTTPStatusCode: res.StatusCode,
111716		},
111717	}
111718	target := &ret
111719	if err := gensupport.DecodeResponse(target, res); err != nil {
111720		return nil, err
111721	}
111722	return ret, nil
111723	// {
111724	//   "description": "Removes an association for the specified security policy. (== suppress_warning http-rest-shadowed ==)",
111725	//   "httpMethod": "POST",
111726	//   "id": "compute.organizationSecurityPolicies.removeAssociation",
111727	//   "parameterOrder": [
111728	//     "securityPolicy"
111729	//   ],
111730	//   "parameters": {
111731	//     "name": {
111732	//       "description": "Name for the attachment that will be removed.",
111733	//       "location": "query",
111734	//       "type": "string"
111735	//     },
111736	//     "requestId": {
111737	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
111738	//       "location": "query",
111739	//       "type": "string"
111740	//     },
111741	//     "securityPolicy": {
111742	//       "description": "Name of the security policy to update.",
111743	//       "location": "path",
111744	//       "pattern": "(securityPolicies/)?[0-9]{0,20}",
111745	//       "required": true,
111746	//       "type": "string"
111747	//     }
111748	//   },
111749	//   "path": "locations/global/securityPolicies/{securityPolicy}/removeAssociation",
111750	//   "response": {
111751	//     "$ref": "Operation"
111752	//   },
111753	//   "scopes": [
111754	//     "https://www.googleapis.com/auth/cloud-platform",
111755	//     "https://www.googleapis.com/auth/compute"
111756	//   ]
111757	// }
111758
111759}
111760
111761// method id "compute.organizationSecurityPolicies.removeRule":
111762
111763type OrganizationSecurityPoliciesRemoveRuleCall struct {
111764	s              *Service
111765	securityPolicy string
111766	urlParams_     gensupport.URLParams
111767	ctx_           context.Context
111768	header_        http.Header
111769}
111770
111771// RemoveRule: Deletes a rule at the specified priority. (==
111772// suppress_warning http-rest-shadowed ==)
111773func (r *OrganizationSecurityPoliciesService) RemoveRule(securityPolicy string) *OrganizationSecurityPoliciesRemoveRuleCall {
111774	c := &OrganizationSecurityPoliciesRemoveRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)}
111775	c.securityPolicy = securityPolicy
111776	return c
111777}
111778
111779// Priority sets the optional parameter "priority": The priority of the
111780// rule to remove from the security policy.
111781func (c *OrganizationSecurityPoliciesRemoveRuleCall) Priority(priority int64) *OrganizationSecurityPoliciesRemoveRuleCall {
111782	c.urlParams_.Set("priority", fmt.Sprint(priority))
111783	return c
111784}
111785
111786// RequestId sets the optional parameter "requestId": An optional
111787// request ID to identify requests. Specify a unique request ID so that
111788// if you must retry your request, the server will know to ignore the
111789// request if it has already been completed.
111790//
111791// For example, consider a situation where you make an initial request
111792// and the request times out. If you make the request again with the
111793// same request ID, the server can check if original operation with the
111794// same request ID was received, and if so, will ignore the second
111795// request. This prevents clients from accidentally creating duplicate
111796// commitments.
111797//
111798// The request ID must be a valid UUID with the exception that zero UUID
111799// is not supported (00000000-0000-0000-0000-000000000000).
111800func (c *OrganizationSecurityPoliciesRemoveRuleCall) RequestId(requestId string) *OrganizationSecurityPoliciesRemoveRuleCall {
111801	c.urlParams_.Set("requestId", requestId)
111802	return c
111803}
111804
111805// Fields allows partial responses to be retrieved. See
111806// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
111807// for more information.
111808func (c *OrganizationSecurityPoliciesRemoveRuleCall) Fields(s ...googleapi.Field) *OrganizationSecurityPoliciesRemoveRuleCall {
111809	c.urlParams_.Set("fields", googleapi.CombineFields(s))
111810	return c
111811}
111812
111813// Context sets the context to be used in this call's Do method. Any
111814// pending HTTP request will be aborted if the provided context is
111815// canceled.
111816func (c *OrganizationSecurityPoliciesRemoveRuleCall) Context(ctx context.Context) *OrganizationSecurityPoliciesRemoveRuleCall {
111817	c.ctx_ = ctx
111818	return c
111819}
111820
111821// Header returns an http.Header that can be modified by the caller to
111822// add HTTP headers to the request.
111823func (c *OrganizationSecurityPoliciesRemoveRuleCall) Header() http.Header {
111824	if c.header_ == nil {
111825		c.header_ = make(http.Header)
111826	}
111827	return c.header_
111828}
111829
111830func (c *OrganizationSecurityPoliciesRemoveRuleCall) doRequest(alt string) (*http.Response, error) {
111831	reqHeaders := make(http.Header)
111832	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
111833	for k, v := range c.header_ {
111834		reqHeaders[k] = v
111835	}
111836	reqHeaders.Set("User-Agent", c.s.userAgent())
111837	var body io.Reader = nil
111838	c.urlParams_.Set("alt", alt)
111839	c.urlParams_.Set("prettyPrint", "false")
111840	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/securityPolicies/{securityPolicy}/removeRule")
111841	urls += "?" + c.urlParams_.Encode()
111842	req, err := http.NewRequest("POST", urls, body)
111843	if err != nil {
111844		return nil, err
111845	}
111846	req.Header = reqHeaders
111847	googleapi.Expand(req.URL, map[string]string{
111848		"securityPolicy": c.securityPolicy,
111849	})
111850	return gensupport.SendRequest(c.ctx_, c.s.client, req)
111851}
111852
111853// Do executes the "compute.organizationSecurityPolicies.removeRule" call.
111854// Exactly one of *Operation or error will be non-nil. Any non-2xx
111855// status code is an error. Response headers are in either
111856// *Operation.ServerResponse.Header or (if a response was returned at
111857// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
111858// to check whether the returned error was because
111859// http.StatusNotModified was returned.
111860func (c *OrganizationSecurityPoliciesRemoveRuleCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
111861	gensupport.SetOptions(c.urlParams_, opts...)
111862	res, err := c.doRequest("json")
111863	if res != nil && res.StatusCode == http.StatusNotModified {
111864		if res.Body != nil {
111865			res.Body.Close()
111866		}
111867		return nil, &googleapi.Error{
111868			Code:   res.StatusCode,
111869			Header: res.Header,
111870		}
111871	}
111872	if err != nil {
111873		return nil, err
111874	}
111875	defer googleapi.CloseBody(res)
111876	if err := googleapi.CheckResponse(res); err != nil {
111877		return nil, err
111878	}
111879	ret := &Operation{
111880		ServerResponse: googleapi.ServerResponse{
111881			Header:         res.Header,
111882			HTTPStatusCode: res.StatusCode,
111883		},
111884	}
111885	target := &ret
111886	if err := gensupport.DecodeResponse(target, res); err != nil {
111887		return nil, err
111888	}
111889	return ret, nil
111890	// {
111891	//   "description": "Deletes a rule at the specified priority. (== suppress_warning http-rest-shadowed ==)",
111892	//   "httpMethod": "POST",
111893	//   "id": "compute.organizationSecurityPolicies.removeRule",
111894	//   "parameterOrder": [
111895	//     "securityPolicy"
111896	//   ],
111897	//   "parameters": {
111898	//     "priority": {
111899	//       "description": "The priority of the rule to remove from the security policy.",
111900	//       "format": "int32",
111901	//       "location": "query",
111902	//       "type": "integer"
111903	//     },
111904	//     "requestId": {
111905	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
111906	//       "location": "query",
111907	//       "type": "string"
111908	//     },
111909	//     "securityPolicy": {
111910	//       "description": "Name of the security policy to update.",
111911	//       "location": "path",
111912	//       "pattern": "(securityPolicies/)?[0-9]{0,20}",
111913	//       "required": true,
111914	//       "type": "string"
111915	//     }
111916	//   },
111917	//   "path": "locations/global/securityPolicies/{securityPolicy}/removeRule",
111918	//   "response": {
111919	//     "$ref": "Operation"
111920	//   },
111921	//   "scopes": [
111922	//     "https://www.googleapis.com/auth/cloud-platform",
111923	//     "https://www.googleapis.com/auth/compute"
111924	//   ]
111925	// }
111926
111927}
111928
111929// method id "compute.packetMirrorings.aggregatedList":
111930
111931type PacketMirroringsAggregatedListCall struct {
111932	s            *Service
111933	project      string
111934	urlParams_   gensupport.URLParams
111935	ifNoneMatch_ string
111936	ctx_         context.Context
111937	header_      http.Header
111938}
111939
111940// AggregatedList: Retrieves an aggregated list of packetMirrorings. (==
111941// suppress_warning http-rest-shadowed ==)
111942func (r *PacketMirroringsService) AggregatedList(project string) *PacketMirroringsAggregatedListCall {
111943	c := &PacketMirroringsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
111944	c.project = project
111945	return c
111946}
111947
111948// Filter sets the optional parameter "filter": A filter expression that
111949// filters resources listed in the response. The expression must specify
111950// the field name, a comparison operator, and the value that you want to
111951// use for filtering. The value must be a string, a number, or a
111952// boolean. The comparison operator must be either =, !=, >, or <.
111953//
111954// For example, if you are filtering Compute Engine instances, you can
111955// exclude instances named example-instance by specifying name !=
111956// example-instance.
111957//
111958// You can also filter nested fields. For example, you could specify
111959// scheduling.automaticRestart = false to include instances only if they
111960// are not scheduled for automatic restarts. You can use filtering on
111961// nested fields to filter based on resource labels.
111962//
111963// To filter on multiple expressions, provide each separate expression
111964// within parentheses. For example, (scheduling.automaticRestart = true)
111965// (cpuPlatform = "Intel Skylake"). By default, each expression is an
111966// AND expression. However, you can include AND and OR expressions
111967// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
111968// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
111969// true).
111970func (c *PacketMirroringsAggregatedListCall) Filter(filter string) *PacketMirroringsAggregatedListCall {
111971	c.urlParams_.Set("filter", filter)
111972	return c
111973}
111974
111975// MaxResults sets the optional parameter "maxResults": The maximum
111976// number of results per page that should be returned. If the number of
111977// available results is larger than maxResults, Compute Engine returns a
111978// nextPageToken that can be used to get the next page of results in
111979// subsequent list requests. Acceptable values are 0 to 500, inclusive.
111980// (Default: 500)
111981func (c *PacketMirroringsAggregatedListCall) MaxResults(maxResults int64) *PacketMirroringsAggregatedListCall {
111982	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
111983	return c
111984}
111985
111986// OrderBy sets the optional parameter "orderBy": Sorts list results by
111987// a certain order. By default, results are returned in alphanumerical
111988// order based on the resource name.
111989//
111990// You can also sort results in descending order based on the creation
111991// timestamp using orderBy="creationTimestamp desc". This sorts results
111992// based on the creationTimestamp field in reverse chronological order
111993// (newest result first). Use this to sort resources like operations so
111994// that the newest operation is returned first.
111995//
111996// Currently, only sorting by name or creationTimestamp desc is
111997// supported.
111998func (c *PacketMirroringsAggregatedListCall) OrderBy(orderBy string) *PacketMirroringsAggregatedListCall {
111999	c.urlParams_.Set("orderBy", orderBy)
112000	return c
112001}
112002
112003// PageToken sets the optional parameter "pageToken": Specifies a page
112004// token to use. Set pageToken to the nextPageToken returned by a
112005// previous list request to get the next page of results.
112006func (c *PacketMirroringsAggregatedListCall) PageToken(pageToken string) *PacketMirroringsAggregatedListCall {
112007	c.urlParams_.Set("pageToken", pageToken)
112008	return c
112009}
112010
112011// Fields allows partial responses to be retrieved. See
112012// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
112013// for more information.
112014func (c *PacketMirroringsAggregatedListCall) Fields(s ...googleapi.Field) *PacketMirroringsAggregatedListCall {
112015	c.urlParams_.Set("fields", googleapi.CombineFields(s))
112016	return c
112017}
112018
112019// IfNoneMatch sets the optional parameter which makes the operation
112020// fail if the object's ETag matches the given value. This is useful for
112021// getting updates only after the object has changed since the last
112022// request. Use googleapi.IsNotModified to check whether the response
112023// error from Do is the result of In-None-Match.
112024func (c *PacketMirroringsAggregatedListCall) IfNoneMatch(entityTag string) *PacketMirroringsAggregatedListCall {
112025	c.ifNoneMatch_ = entityTag
112026	return c
112027}
112028
112029// Context sets the context to be used in this call's Do method. Any
112030// pending HTTP request will be aborted if the provided context is
112031// canceled.
112032func (c *PacketMirroringsAggregatedListCall) Context(ctx context.Context) *PacketMirroringsAggregatedListCall {
112033	c.ctx_ = ctx
112034	return c
112035}
112036
112037// Header returns an http.Header that can be modified by the caller to
112038// add HTTP headers to the request.
112039func (c *PacketMirroringsAggregatedListCall) Header() http.Header {
112040	if c.header_ == nil {
112041		c.header_ = make(http.Header)
112042	}
112043	return c.header_
112044}
112045
112046func (c *PacketMirroringsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
112047	reqHeaders := make(http.Header)
112048	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
112049	for k, v := range c.header_ {
112050		reqHeaders[k] = v
112051	}
112052	reqHeaders.Set("User-Agent", c.s.userAgent())
112053	if c.ifNoneMatch_ != "" {
112054		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
112055	}
112056	var body io.Reader = nil
112057	c.urlParams_.Set("alt", alt)
112058	c.urlParams_.Set("prettyPrint", "false")
112059	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/packetMirrorings")
112060	urls += "?" + c.urlParams_.Encode()
112061	req, err := http.NewRequest("GET", urls, body)
112062	if err != nil {
112063		return nil, err
112064	}
112065	req.Header = reqHeaders
112066	googleapi.Expand(req.URL, map[string]string{
112067		"project": c.project,
112068	})
112069	return gensupport.SendRequest(c.ctx_, c.s.client, req)
112070}
112071
112072// Do executes the "compute.packetMirrorings.aggregatedList" call.
112073// Exactly one of *PacketMirroringAggregatedList or error will be
112074// non-nil. Any non-2xx status code is an error. Response headers are in
112075// either *PacketMirroringAggregatedList.ServerResponse.Header or (if a
112076// response was returned at all) in error.(*googleapi.Error).Header. Use
112077// googleapi.IsNotModified to check whether the returned error was
112078// because http.StatusNotModified was returned.
112079func (c *PacketMirroringsAggregatedListCall) Do(opts ...googleapi.CallOption) (*PacketMirroringAggregatedList, error) {
112080	gensupport.SetOptions(c.urlParams_, opts...)
112081	res, err := c.doRequest("json")
112082	if res != nil && res.StatusCode == http.StatusNotModified {
112083		if res.Body != nil {
112084			res.Body.Close()
112085		}
112086		return nil, &googleapi.Error{
112087			Code:   res.StatusCode,
112088			Header: res.Header,
112089		}
112090	}
112091	if err != nil {
112092		return nil, err
112093	}
112094	defer googleapi.CloseBody(res)
112095	if err := googleapi.CheckResponse(res); err != nil {
112096		return nil, err
112097	}
112098	ret := &PacketMirroringAggregatedList{
112099		ServerResponse: googleapi.ServerResponse{
112100			Header:         res.Header,
112101			HTTPStatusCode: res.StatusCode,
112102		},
112103	}
112104	target := &ret
112105	if err := gensupport.DecodeResponse(target, res); err != nil {
112106		return nil, err
112107	}
112108	return ret, nil
112109	// {
112110	//   "description": "Retrieves an aggregated list of packetMirrorings. (== suppress_warning http-rest-shadowed ==)",
112111	//   "httpMethod": "GET",
112112	//   "id": "compute.packetMirrorings.aggregatedList",
112113	//   "parameterOrder": [
112114	//     "project"
112115	//   ],
112116	//   "parameters": {
112117	//     "filter": {
112118	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
112119	//       "location": "query",
112120	//       "type": "string"
112121	//     },
112122	//     "maxResults": {
112123	//       "default": "500",
112124	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
112125	//       "format": "uint32",
112126	//       "location": "query",
112127	//       "minimum": "0",
112128	//       "type": "integer"
112129	//     },
112130	//     "orderBy": {
112131	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
112132	//       "location": "query",
112133	//       "type": "string"
112134	//     },
112135	//     "pageToken": {
112136	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
112137	//       "location": "query",
112138	//       "type": "string"
112139	//     },
112140	//     "project": {
112141	//       "description": "Project ID for this request.",
112142	//       "location": "path",
112143	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
112144	//       "required": true,
112145	//       "type": "string"
112146	//     }
112147	//   },
112148	//   "path": "{project}/aggregated/packetMirrorings",
112149	//   "response": {
112150	//     "$ref": "PacketMirroringAggregatedList"
112151	//   },
112152	//   "scopes": [
112153	//     "https://www.googleapis.com/auth/cloud-platform",
112154	//     "https://www.googleapis.com/auth/compute",
112155	//     "https://www.googleapis.com/auth/compute.readonly"
112156	//   ]
112157	// }
112158
112159}
112160
112161// Pages invokes f for each page of results.
112162// A non-nil error returned from f will halt the iteration.
112163// The provided context supersedes any context provided to the Context method.
112164func (c *PacketMirroringsAggregatedListCall) Pages(ctx context.Context, f func(*PacketMirroringAggregatedList) error) error {
112165	c.ctx_ = ctx
112166	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
112167	for {
112168		x, err := c.Do()
112169		if err != nil {
112170			return err
112171		}
112172		if err := f(x); err != nil {
112173			return err
112174		}
112175		if x.NextPageToken == "" {
112176			return nil
112177		}
112178		c.PageToken(x.NextPageToken)
112179	}
112180}
112181
112182// method id "compute.packetMirrorings.delete":
112183
112184type PacketMirroringsDeleteCall struct {
112185	s               *Service
112186	project         string
112187	region          string
112188	packetMirroring string
112189	urlParams_      gensupport.URLParams
112190	ctx_            context.Context
112191	header_         http.Header
112192}
112193
112194// Delete: Deletes the specified PacketMirroring resource. (==
112195// suppress_warning http-rest-shadowed ==)
112196func (r *PacketMirroringsService) Delete(project string, region string, packetMirroring string) *PacketMirroringsDeleteCall {
112197	c := &PacketMirroringsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
112198	c.project = project
112199	c.region = region
112200	c.packetMirroring = packetMirroring
112201	return c
112202}
112203
112204// RequestId sets the optional parameter "requestId": An optional
112205// request ID to identify requests. Specify a unique request ID so that
112206// if you must retry your request, the server will know to ignore the
112207// request if it has already been completed.
112208//
112209// For example, consider a situation where you make an initial request
112210// and the request times out. If you make the request again with the
112211// same request ID, the server can check if original operation with the
112212// same request ID was received, and if so, will ignore the second
112213// request. This prevents clients from accidentally creating duplicate
112214// commitments.
112215//
112216// The request ID must be a valid UUID with the exception that zero UUID
112217// is not supported (00000000-0000-0000-0000-000000000000).
112218func (c *PacketMirroringsDeleteCall) RequestId(requestId string) *PacketMirroringsDeleteCall {
112219	c.urlParams_.Set("requestId", requestId)
112220	return c
112221}
112222
112223// Fields allows partial responses to be retrieved. See
112224// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
112225// for more information.
112226func (c *PacketMirroringsDeleteCall) Fields(s ...googleapi.Field) *PacketMirroringsDeleteCall {
112227	c.urlParams_.Set("fields", googleapi.CombineFields(s))
112228	return c
112229}
112230
112231// Context sets the context to be used in this call's Do method. Any
112232// pending HTTP request will be aborted if the provided context is
112233// canceled.
112234func (c *PacketMirroringsDeleteCall) Context(ctx context.Context) *PacketMirroringsDeleteCall {
112235	c.ctx_ = ctx
112236	return c
112237}
112238
112239// Header returns an http.Header that can be modified by the caller to
112240// add HTTP headers to the request.
112241func (c *PacketMirroringsDeleteCall) Header() http.Header {
112242	if c.header_ == nil {
112243		c.header_ = make(http.Header)
112244	}
112245	return c.header_
112246}
112247
112248func (c *PacketMirroringsDeleteCall) doRequest(alt string) (*http.Response, error) {
112249	reqHeaders := make(http.Header)
112250	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
112251	for k, v := range c.header_ {
112252		reqHeaders[k] = v
112253	}
112254	reqHeaders.Set("User-Agent", c.s.userAgent())
112255	var body io.Reader = nil
112256	c.urlParams_.Set("alt", alt)
112257	c.urlParams_.Set("prettyPrint", "false")
112258	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/packetMirrorings/{packetMirroring}")
112259	urls += "?" + c.urlParams_.Encode()
112260	req, err := http.NewRequest("DELETE", urls, body)
112261	if err != nil {
112262		return nil, err
112263	}
112264	req.Header = reqHeaders
112265	googleapi.Expand(req.URL, map[string]string{
112266		"project":         c.project,
112267		"region":          c.region,
112268		"packetMirroring": c.packetMirroring,
112269	})
112270	return gensupport.SendRequest(c.ctx_, c.s.client, req)
112271}
112272
112273// Do executes the "compute.packetMirrorings.delete" call.
112274// Exactly one of *Operation or error will be non-nil. Any non-2xx
112275// status code is an error. Response headers are in either
112276// *Operation.ServerResponse.Header or (if a response was returned at
112277// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
112278// to check whether the returned error was because
112279// http.StatusNotModified was returned.
112280func (c *PacketMirroringsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
112281	gensupport.SetOptions(c.urlParams_, opts...)
112282	res, err := c.doRequest("json")
112283	if res != nil && res.StatusCode == http.StatusNotModified {
112284		if res.Body != nil {
112285			res.Body.Close()
112286		}
112287		return nil, &googleapi.Error{
112288			Code:   res.StatusCode,
112289			Header: res.Header,
112290		}
112291	}
112292	if err != nil {
112293		return nil, err
112294	}
112295	defer googleapi.CloseBody(res)
112296	if err := googleapi.CheckResponse(res); err != nil {
112297		return nil, err
112298	}
112299	ret := &Operation{
112300		ServerResponse: googleapi.ServerResponse{
112301			Header:         res.Header,
112302			HTTPStatusCode: res.StatusCode,
112303		},
112304	}
112305	target := &ret
112306	if err := gensupport.DecodeResponse(target, res); err != nil {
112307		return nil, err
112308	}
112309	return ret, nil
112310	// {
112311	//   "description": "Deletes the specified PacketMirroring resource. (== suppress_warning http-rest-shadowed ==)",
112312	//   "httpMethod": "DELETE",
112313	//   "id": "compute.packetMirrorings.delete",
112314	//   "parameterOrder": [
112315	//     "project",
112316	//     "region",
112317	//     "packetMirroring"
112318	//   ],
112319	//   "parameters": {
112320	//     "packetMirroring": {
112321	//       "description": "Name of the PacketMirroring resource to delete.",
112322	//       "location": "path",
112323	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
112324	//       "required": true,
112325	//       "type": "string"
112326	//     },
112327	//     "project": {
112328	//       "description": "Project ID for this request.",
112329	//       "location": "path",
112330	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
112331	//       "required": true,
112332	//       "type": "string"
112333	//     },
112334	//     "region": {
112335	//       "description": "Name of the region for this request.",
112336	//       "location": "path",
112337	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
112338	//       "required": true,
112339	//       "type": "string"
112340	//     },
112341	//     "requestId": {
112342	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
112343	//       "location": "query",
112344	//       "type": "string"
112345	//     }
112346	//   },
112347	//   "path": "{project}/regions/{region}/packetMirrorings/{packetMirroring}",
112348	//   "response": {
112349	//     "$ref": "Operation"
112350	//   },
112351	//   "scopes": [
112352	//     "https://www.googleapis.com/auth/cloud-platform",
112353	//     "https://www.googleapis.com/auth/compute"
112354	//   ]
112355	// }
112356
112357}
112358
112359// method id "compute.packetMirrorings.get":
112360
112361type PacketMirroringsGetCall struct {
112362	s               *Service
112363	project         string
112364	region          string
112365	packetMirroring string
112366	urlParams_      gensupport.URLParams
112367	ifNoneMatch_    string
112368	ctx_            context.Context
112369	header_         http.Header
112370}
112371
112372// Get: Returns the specified PacketMirroring resource. (==
112373// suppress_warning http-rest-shadowed ==)
112374func (r *PacketMirroringsService) Get(project string, region string, packetMirroring string) *PacketMirroringsGetCall {
112375	c := &PacketMirroringsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
112376	c.project = project
112377	c.region = region
112378	c.packetMirroring = packetMirroring
112379	return c
112380}
112381
112382// Fields allows partial responses to be retrieved. See
112383// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
112384// for more information.
112385func (c *PacketMirroringsGetCall) Fields(s ...googleapi.Field) *PacketMirroringsGetCall {
112386	c.urlParams_.Set("fields", googleapi.CombineFields(s))
112387	return c
112388}
112389
112390// IfNoneMatch sets the optional parameter which makes the operation
112391// fail if the object's ETag matches the given value. This is useful for
112392// getting updates only after the object has changed since the last
112393// request. Use googleapi.IsNotModified to check whether the response
112394// error from Do is the result of In-None-Match.
112395func (c *PacketMirroringsGetCall) IfNoneMatch(entityTag string) *PacketMirroringsGetCall {
112396	c.ifNoneMatch_ = entityTag
112397	return c
112398}
112399
112400// Context sets the context to be used in this call's Do method. Any
112401// pending HTTP request will be aborted if the provided context is
112402// canceled.
112403func (c *PacketMirroringsGetCall) Context(ctx context.Context) *PacketMirroringsGetCall {
112404	c.ctx_ = ctx
112405	return c
112406}
112407
112408// Header returns an http.Header that can be modified by the caller to
112409// add HTTP headers to the request.
112410func (c *PacketMirroringsGetCall) Header() http.Header {
112411	if c.header_ == nil {
112412		c.header_ = make(http.Header)
112413	}
112414	return c.header_
112415}
112416
112417func (c *PacketMirroringsGetCall) doRequest(alt string) (*http.Response, error) {
112418	reqHeaders := make(http.Header)
112419	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
112420	for k, v := range c.header_ {
112421		reqHeaders[k] = v
112422	}
112423	reqHeaders.Set("User-Agent", c.s.userAgent())
112424	if c.ifNoneMatch_ != "" {
112425		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
112426	}
112427	var body io.Reader = nil
112428	c.urlParams_.Set("alt", alt)
112429	c.urlParams_.Set("prettyPrint", "false")
112430	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/packetMirrorings/{packetMirroring}")
112431	urls += "?" + c.urlParams_.Encode()
112432	req, err := http.NewRequest("GET", urls, body)
112433	if err != nil {
112434		return nil, err
112435	}
112436	req.Header = reqHeaders
112437	googleapi.Expand(req.URL, map[string]string{
112438		"project":         c.project,
112439		"region":          c.region,
112440		"packetMirroring": c.packetMirroring,
112441	})
112442	return gensupport.SendRequest(c.ctx_, c.s.client, req)
112443}
112444
112445// Do executes the "compute.packetMirrorings.get" call.
112446// Exactly one of *PacketMirroring or error will be non-nil. Any non-2xx
112447// status code is an error. Response headers are in either
112448// *PacketMirroring.ServerResponse.Header or (if a response was returned
112449// at all) in error.(*googleapi.Error).Header. Use
112450// googleapi.IsNotModified to check whether the returned error was
112451// because http.StatusNotModified was returned.
112452func (c *PacketMirroringsGetCall) Do(opts ...googleapi.CallOption) (*PacketMirroring, error) {
112453	gensupport.SetOptions(c.urlParams_, opts...)
112454	res, err := c.doRequest("json")
112455	if res != nil && res.StatusCode == http.StatusNotModified {
112456		if res.Body != nil {
112457			res.Body.Close()
112458		}
112459		return nil, &googleapi.Error{
112460			Code:   res.StatusCode,
112461			Header: res.Header,
112462		}
112463	}
112464	if err != nil {
112465		return nil, err
112466	}
112467	defer googleapi.CloseBody(res)
112468	if err := googleapi.CheckResponse(res); err != nil {
112469		return nil, err
112470	}
112471	ret := &PacketMirroring{
112472		ServerResponse: googleapi.ServerResponse{
112473			Header:         res.Header,
112474			HTTPStatusCode: res.StatusCode,
112475		},
112476	}
112477	target := &ret
112478	if err := gensupport.DecodeResponse(target, res); err != nil {
112479		return nil, err
112480	}
112481	return ret, nil
112482	// {
112483	//   "description": "Returns the specified PacketMirroring resource. (== suppress_warning http-rest-shadowed ==)",
112484	//   "httpMethod": "GET",
112485	//   "id": "compute.packetMirrorings.get",
112486	//   "parameterOrder": [
112487	//     "project",
112488	//     "region",
112489	//     "packetMirroring"
112490	//   ],
112491	//   "parameters": {
112492	//     "packetMirroring": {
112493	//       "description": "Name of the PacketMirroring resource to return.",
112494	//       "location": "path",
112495	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
112496	//       "required": true,
112497	//       "type": "string"
112498	//     },
112499	//     "project": {
112500	//       "description": "Project ID for this request.",
112501	//       "location": "path",
112502	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
112503	//       "required": true,
112504	//       "type": "string"
112505	//     },
112506	//     "region": {
112507	//       "description": "Name of the region for this request.",
112508	//       "location": "path",
112509	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
112510	//       "required": true,
112511	//       "type": "string"
112512	//     }
112513	//   },
112514	//   "path": "{project}/regions/{region}/packetMirrorings/{packetMirroring}",
112515	//   "response": {
112516	//     "$ref": "PacketMirroring"
112517	//   },
112518	//   "scopes": [
112519	//     "https://www.googleapis.com/auth/cloud-platform",
112520	//     "https://www.googleapis.com/auth/compute",
112521	//     "https://www.googleapis.com/auth/compute.readonly"
112522	//   ]
112523	// }
112524
112525}
112526
112527// method id "compute.packetMirrorings.insert":
112528
112529type PacketMirroringsInsertCall struct {
112530	s               *Service
112531	project         string
112532	region          string
112533	packetmirroring *PacketMirroring
112534	urlParams_      gensupport.URLParams
112535	ctx_            context.Context
112536	header_         http.Header
112537}
112538
112539// Insert: Creates a PacketMirroring resource in the specified project
112540// and region using the data included in the request. (==
112541// suppress_warning http-rest-shadowed ==)
112542func (r *PacketMirroringsService) Insert(project string, region string, packetmirroring *PacketMirroring) *PacketMirroringsInsertCall {
112543	c := &PacketMirroringsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
112544	c.project = project
112545	c.region = region
112546	c.packetmirroring = packetmirroring
112547	return c
112548}
112549
112550// RequestId sets the optional parameter "requestId": An optional
112551// request ID to identify requests. Specify a unique request ID so that
112552// if you must retry your request, the server will know to ignore the
112553// request if it has already been completed.
112554//
112555// For example, consider a situation where you make an initial request
112556// and the request times out. If you make the request again with the
112557// same request ID, the server can check if original operation with the
112558// same request ID was received, and if so, will ignore the second
112559// request. This prevents clients from accidentally creating duplicate
112560// commitments.
112561//
112562// The request ID must be a valid UUID with the exception that zero UUID
112563// is not supported (00000000-0000-0000-0000-000000000000).
112564func (c *PacketMirroringsInsertCall) RequestId(requestId string) *PacketMirroringsInsertCall {
112565	c.urlParams_.Set("requestId", requestId)
112566	return c
112567}
112568
112569// Fields allows partial responses to be retrieved. See
112570// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
112571// for more information.
112572func (c *PacketMirroringsInsertCall) Fields(s ...googleapi.Field) *PacketMirroringsInsertCall {
112573	c.urlParams_.Set("fields", googleapi.CombineFields(s))
112574	return c
112575}
112576
112577// Context sets the context to be used in this call's Do method. Any
112578// pending HTTP request will be aborted if the provided context is
112579// canceled.
112580func (c *PacketMirroringsInsertCall) Context(ctx context.Context) *PacketMirroringsInsertCall {
112581	c.ctx_ = ctx
112582	return c
112583}
112584
112585// Header returns an http.Header that can be modified by the caller to
112586// add HTTP headers to the request.
112587func (c *PacketMirroringsInsertCall) Header() http.Header {
112588	if c.header_ == nil {
112589		c.header_ = make(http.Header)
112590	}
112591	return c.header_
112592}
112593
112594func (c *PacketMirroringsInsertCall) doRequest(alt string) (*http.Response, error) {
112595	reqHeaders := make(http.Header)
112596	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
112597	for k, v := range c.header_ {
112598		reqHeaders[k] = v
112599	}
112600	reqHeaders.Set("User-Agent", c.s.userAgent())
112601	var body io.Reader = nil
112602	body, err := googleapi.WithoutDataWrapper.JSONReader(c.packetmirroring)
112603	if err != nil {
112604		return nil, err
112605	}
112606	reqHeaders.Set("Content-Type", "application/json")
112607	c.urlParams_.Set("alt", alt)
112608	c.urlParams_.Set("prettyPrint", "false")
112609	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/packetMirrorings")
112610	urls += "?" + c.urlParams_.Encode()
112611	req, err := http.NewRequest("POST", urls, body)
112612	if err != nil {
112613		return nil, err
112614	}
112615	req.Header = reqHeaders
112616	googleapi.Expand(req.URL, map[string]string{
112617		"project": c.project,
112618		"region":  c.region,
112619	})
112620	return gensupport.SendRequest(c.ctx_, c.s.client, req)
112621}
112622
112623// Do executes the "compute.packetMirrorings.insert" call.
112624// Exactly one of *Operation or error will be non-nil. Any non-2xx
112625// status code is an error. Response headers are in either
112626// *Operation.ServerResponse.Header or (if a response was returned at
112627// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
112628// to check whether the returned error was because
112629// http.StatusNotModified was returned.
112630func (c *PacketMirroringsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
112631	gensupport.SetOptions(c.urlParams_, opts...)
112632	res, err := c.doRequest("json")
112633	if res != nil && res.StatusCode == http.StatusNotModified {
112634		if res.Body != nil {
112635			res.Body.Close()
112636		}
112637		return nil, &googleapi.Error{
112638			Code:   res.StatusCode,
112639			Header: res.Header,
112640		}
112641	}
112642	if err != nil {
112643		return nil, err
112644	}
112645	defer googleapi.CloseBody(res)
112646	if err := googleapi.CheckResponse(res); err != nil {
112647		return nil, err
112648	}
112649	ret := &Operation{
112650		ServerResponse: googleapi.ServerResponse{
112651			Header:         res.Header,
112652			HTTPStatusCode: res.StatusCode,
112653		},
112654	}
112655	target := &ret
112656	if err := gensupport.DecodeResponse(target, res); err != nil {
112657		return nil, err
112658	}
112659	return ret, nil
112660	// {
112661	//   "description": "Creates a PacketMirroring resource in the specified project and region using the data included in the request. (== suppress_warning http-rest-shadowed ==)",
112662	//   "httpMethod": "POST",
112663	//   "id": "compute.packetMirrorings.insert",
112664	//   "parameterOrder": [
112665	//     "project",
112666	//     "region"
112667	//   ],
112668	//   "parameters": {
112669	//     "project": {
112670	//       "description": "Project ID for this request.",
112671	//       "location": "path",
112672	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
112673	//       "required": true,
112674	//       "type": "string"
112675	//     },
112676	//     "region": {
112677	//       "description": "Name of the region for this request.",
112678	//       "location": "path",
112679	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
112680	//       "required": true,
112681	//       "type": "string"
112682	//     },
112683	//     "requestId": {
112684	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
112685	//       "location": "query",
112686	//       "type": "string"
112687	//     }
112688	//   },
112689	//   "path": "{project}/regions/{region}/packetMirrorings",
112690	//   "request": {
112691	//     "$ref": "PacketMirroring"
112692	//   },
112693	//   "response": {
112694	//     "$ref": "Operation"
112695	//   },
112696	//   "scopes": [
112697	//     "https://www.googleapis.com/auth/cloud-platform",
112698	//     "https://www.googleapis.com/auth/compute"
112699	//   ]
112700	// }
112701
112702}
112703
112704// method id "compute.packetMirrorings.list":
112705
112706type PacketMirroringsListCall struct {
112707	s            *Service
112708	project      string
112709	region       string
112710	urlParams_   gensupport.URLParams
112711	ifNoneMatch_ string
112712	ctx_         context.Context
112713	header_      http.Header
112714}
112715
112716// List: Retrieves a list of PacketMirroring resources available to the
112717// specified project and region. (== suppress_warning http-rest-shadowed
112718// ==)
112719func (r *PacketMirroringsService) List(project string, region string) *PacketMirroringsListCall {
112720	c := &PacketMirroringsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
112721	c.project = project
112722	c.region = region
112723	return c
112724}
112725
112726// Filter sets the optional parameter "filter": A filter expression that
112727// filters resources listed in the response. The expression must specify
112728// the field name, a comparison operator, and the value that you want to
112729// use for filtering. The value must be a string, a number, or a
112730// boolean. The comparison operator must be either =, !=, >, or <.
112731//
112732// For example, if you are filtering Compute Engine instances, you can
112733// exclude instances named example-instance by specifying name !=
112734// example-instance.
112735//
112736// You can also filter nested fields. For example, you could specify
112737// scheduling.automaticRestart = false to include instances only if they
112738// are not scheduled for automatic restarts. You can use filtering on
112739// nested fields to filter based on resource labels.
112740//
112741// To filter on multiple expressions, provide each separate expression
112742// within parentheses. For example, (scheduling.automaticRestart = true)
112743// (cpuPlatform = "Intel Skylake"). By default, each expression is an
112744// AND expression. However, you can include AND and OR expressions
112745// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
112746// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
112747// true).
112748func (c *PacketMirroringsListCall) Filter(filter string) *PacketMirroringsListCall {
112749	c.urlParams_.Set("filter", filter)
112750	return c
112751}
112752
112753// MaxResults sets the optional parameter "maxResults": The maximum
112754// number of results per page that should be returned. If the number of
112755// available results is larger than maxResults, Compute Engine returns a
112756// nextPageToken that can be used to get the next page of results in
112757// subsequent list requests. Acceptable values are 0 to 500, inclusive.
112758// (Default: 500)
112759func (c *PacketMirroringsListCall) MaxResults(maxResults int64) *PacketMirroringsListCall {
112760	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
112761	return c
112762}
112763
112764// OrderBy sets the optional parameter "orderBy": Sorts list results by
112765// a certain order. By default, results are returned in alphanumerical
112766// order based on the resource name.
112767//
112768// You can also sort results in descending order based on the creation
112769// timestamp using orderBy="creationTimestamp desc". This sorts results
112770// based on the creationTimestamp field in reverse chronological order
112771// (newest result first). Use this to sort resources like operations so
112772// that the newest operation is returned first.
112773//
112774// Currently, only sorting by name or creationTimestamp desc is
112775// supported.
112776func (c *PacketMirroringsListCall) OrderBy(orderBy string) *PacketMirroringsListCall {
112777	c.urlParams_.Set("orderBy", orderBy)
112778	return c
112779}
112780
112781// PageToken sets the optional parameter "pageToken": Specifies a page
112782// token to use. Set pageToken to the nextPageToken returned by a
112783// previous list request to get the next page of results.
112784func (c *PacketMirroringsListCall) PageToken(pageToken string) *PacketMirroringsListCall {
112785	c.urlParams_.Set("pageToken", pageToken)
112786	return c
112787}
112788
112789// Fields allows partial responses to be retrieved. See
112790// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
112791// for more information.
112792func (c *PacketMirroringsListCall) Fields(s ...googleapi.Field) *PacketMirroringsListCall {
112793	c.urlParams_.Set("fields", googleapi.CombineFields(s))
112794	return c
112795}
112796
112797// IfNoneMatch sets the optional parameter which makes the operation
112798// fail if the object's ETag matches the given value. This is useful for
112799// getting updates only after the object has changed since the last
112800// request. Use googleapi.IsNotModified to check whether the response
112801// error from Do is the result of In-None-Match.
112802func (c *PacketMirroringsListCall) IfNoneMatch(entityTag string) *PacketMirroringsListCall {
112803	c.ifNoneMatch_ = entityTag
112804	return c
112805}
112806
112807// Context sets the context to be used in this call's Do method. Any
112808// pending HTTP request will be aborted if the provided context is
112809// canceled.
112810func (c *PacketMirroringsListCall) Context(ctx context.Context) *PacketMirroringsListCall {
112811	c.ctx_ = ctx
112812	return c
112813}
112814
112815// Header returns an http.Header that can be modified by the caller to
112816// add HTTP headers to the request.
112817func (c *PacketMirroringsListCall) Header() http.Header {
112818	if c.header_ == nil {
112819		c.header_ = make(http.Header)
112820	}
112821	return c.header_
112822}
112823
112824func (c *PacketMirroringsListCall) doRequest(alt string) (*http.Response, error) {
112825	reqHeaders := make(http.Header)
112826	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
112827	for k, v := range c.header_ {
112828		reqHeaders[k] = v
112829	}
112830	reqHeaders.Set("User-Agent", c.s.userAgent())
112831	if c.ifNoneMatch_ != "" {
112832		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
112833	}
112834	var body io.Reader = nil
112835	c.urlParams_.Set("alt", alt)
112836	c.urlParams_.Set("prettyPrint", "false")
112837	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/packetMirrorings")
112838	urls += "?" + c.urlParams_.Encode()
112839	req, err := http.NewRequest("GET", urls, body)
112840	if err != nil {
112841		return nil, err
112842	}
112843	req.Header = reqHeaders
112844	googleapi.Expand(req.URL, map[string]string{
112845		"project": c.project,
112846		"region":  c.region,
112847	})
112848	return gensupport.SendRequest(c.ctx_, c.s.client, req)
112849}
112850
112851// Do executes the "compute.packetMirrorings.list" call.
112852// Exactly one of *PacketMirroringList or error will be non-nil. Any
112853// non-2xx status code is an error. Response headers are in either
112854// *PacketMirroringList.ServerResponse.Header or (if a response was
112855// returned at all) in error.(*googleapi.Error).Header. Use
112856// googleapi.IsNotModified to check whether the returned error was
112857// because http.StatusNotModified was returned.
112858func (c *PacketMirroringsListCall) Do(opts ...googleapi.CallOption) (*PacketMirroringList, error) {
112859	gensupport.SetOptions(c.urlParams_, opts...)
112860	res, err := c.doRequest("json")
112861	if res != nil && res.StatusCode == http.StatusNotModified {
112862		if res.Body != nil {
112863			res.Body.Close()
112864		}
112865		return nil, &googleapi.Error{
112866			Code:   res.StatusCode,
112867			Header: res.Header,
112868		}
112869	}
112870	if err != nil {
112871		return nil, err
112872	}
112873	defer googleapi.CloseBody(res)
112874	if err := googleapi.CheckResponse(res); err != nil {
112875		return nil, err
112876	}
112877	ret := &PacketMirroringList{
112878		ServerResponse: googleapi.ServerResponse{
112879			Header:         res.Header,
112880			HTTPStatusCode: res.StatusCode,
112881		},
112882	}
112883	target := &ret
112884	if err := gensupport.DecodeResponse(target, res); err != nil {
112885		return nil, err
112886	}
112887	return ret, nil
112888	// {
112889	//   "description": "Retrieves a list of PacketMirroring resources available to the specified project and region. (== suppress_warning http-rest-shadowed ==)",
112890	//   "httpMethod": "GET",
112891	//   "id": "compute.packetMirrorings.list",
112892	//   "parameterOrder": [
112893	//     "project",
112894	//     "region"
112895	//   ],
112896	//   "parameters": {
112897	//     "filter": {
112898	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
112899	//       "location": "query",
112900	//       "type": "string"
112901	//     },
112902	//     "maxResults": {
112903	//       "default": "500",
112904	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
112905	//       "format": "uint32",
112906	//       "location": "query",
112907	//       "minimum": "0",
112908	//       "type": "integer"
112909	//     },
112910	//     "orderBy": {
112911	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
112912	//       "location": "query",
112913	//       "type": "string"
112914	//     },
112915	//     "pageToken": {
112916	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
112917	//       "location": "query",
112918	//       "type": "string"
112919	//     },
112920	//     "project": {
112921	//       "description": "Project ID for this request.",
112922	//       "location": "path",
112923	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
112924	//       "required": true,
112925	//       "type": "string"
112926	//     },
112927	//     "region": {
112928	//       "description": "Name of the region for this request.",
112929	//       "location": "path",
112930	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
112931	//       "required": true,
112932	//       "type": "string"
112933	//     }
112934	//   },
112935	//   "path": "{project}/regions/{region}/packetMirrorings",
112936	//   "response": {
112937	//     "$ref": "PacketMirroringList"
112938	//   },
112939	//   "scopes": [
112940	//     "https://www.googleapis.com/auth/cloud-platform",
112941	//     "https://www.googleapis.com/auth/compute",
112942	//     "https://www.googleapis.com/auth/compute.readonly"
112943	//   ]
112944	// }
112945
112946}
112947
112948// Pages invokes f for each page of results.
112949// A non-nil error returned from f will halt the iteration.
112950// The provided context supersedes any context provided to the Context method.
112951func (c *PacketMirroringsListCall) Pages(ctx context.Context, f func(*PacketMirroringList) error) error {
112952	c.ctx_ = ctx
112953	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
112954	for {
112955		x, err := c.Do()
112956		if err != nil {
112957			return err
112958		}
112959		if err := f(x); err != nil {
112960			return err
112961		}
112962		if x.NextPageToken == "" {
112963			return nil
112964		}
112965		c.PageToken(x.NextPageToken)
112966	}
112967}
112968
112969// method id "compute.packetMirrorings.patch":
112970
112971type PacketMirroringsPatchCall struct {
112972	s               *Service
112973	project         string
112974	region          string
112975	packetMirroring string
112976	packetmirroring *PacketMirroring
112977	urlParams_      gensupport.URLParams
112978	ctx_            context.Context
112979	header_         http.Header
112980}
112981
112982// Patch: Patches the specified PacketMirroring resource with the data
112983// included in the request. This method supports PATCH semantics and
112984// uses JSON merge patch format and processing rules. (==
112985// suppress_warning http-rest-shadowed ==)
112986func (r *PacketMirroringsService) Patch(project string, region string, packetMirroring string, packetmirroring *PacketMirroring) *PacketMirroringsPatchCall {
112987	c := &PacketMirroringsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
112988	c.project = project
112989	c.region = region
112990	c.packetMirroring = packetMirroring
112991	c.packetmirroring = packetmirroring
112992	return c
112993}
112994
112995// RequestId sets the optional parameter "requestId": An optional
112996// request ID to identify requests. Specify a unique request ID so that
112997// if you must retry your request, the server will know to ignore the
112998// request if it has already been completed.
112999//
113000// For example, consider a situation where you make an initial request
113001// and the request times out. If you make the request again with the
113002// same request ID, the server can check if original operation with the
113003// same request ID was received, and if so, will ignore the second
113004// request. This prevents clients from accidentally creating duplicate
113005// commitments.
113006//
113007// The request ID must be a valid UUID with the exception that zero UUID
113008// is not supported (00000000-0000-0000-0000-000000000000).
113009func (c *PacketMirroringsPatchCall) RequestId(requestId string) *PacketMirroringsPatchCall {
113010	c.urlParams_.Set("requestId", requestId)
113011	return c
113012}
113013
113014// Fields allows partial responses to be retrieved. See
113015// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
113016// for more information.
113017func (c *PacketMirroringsPatchCall) Fields(s ...googleapi.Field) *PacketMirroringsPatchCall {
113018	c.urlParams_.Set("fields", googleapi.CombineFields(s))
113019	return c
113020}
113021
113022// Context sets the context to be used in this call's Do method. Any
113023// pending HTTP request will be aborted if the provided context is
113024// canceled.
113025func (c *PacketMirroringsPatchCall) Context(ctx context.Context) *PacketMirroringsPatchCall {
113026	c.ctx_ = ctx
113027	return c
113028}
113029
113030// Header returns an http.Header that can be modified by the caller to
113031// add HTTP headers to the request.
113032func (c *PacketMirroringsPatchCall) Header() http.Header {
113033	if c.header_ == nil {
113034		c.header_ = make(http.Header)
113035	}
113036	return c.header_
113037}
113038
113039func (c *PacketMirroringsPatchCall) doRequest(alt string) (*http.Response, error) {
113040	reqHeaders := make(http.Header)
113041	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
113042	for k, v := range c.header_ {
113043		reqHeaders[k] = v
113044	}
113045	reqHeaders.Set("User-Agent", c.s.userAgent())
113046	var body io.Reader = nil
113047	body, err := googleapi.WithoutDataWrapper.JSONReader(c.packetmirroring)
113048	if err != nil {
113049		return nil, err
113050	}
113051	reqHeaders.Set("Content-Type", "application/json")
113052	c.urlParams_.Set("alt", alt)
113053	c.urlParams_.Set("prettyPrint", "false")
113054	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/packetMirrorings/{packetMirroring}")
113055	urls += "?" + c.urlParams_.Encode()
113056	req, err := http.NewRequest("PATCH", urls, body)
113057	if err != nil {
113058		return nil, err
113059	}
113060	req.Header = reqHeaders
113061	googleapi.Expand(req.URL, map[string]string{
113062		"project":         c.project,
113063		"region":          c.region,
113064		"packetMirroring": c.packetMirroring,
113065	})
113066	return gensupport.SendRequest(c.ctx_, c.s.client, req)
113067}
113068
113069// Do executes the "compute.packetMirrorings.patch" call.
113070// Exactly one of *Operation or error will be non-nil. Any non-2xx
113071// status code is an error. Response headers are in either
113072// *Operation.ServerResponse.Header or (if a response was returned at
113073// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
113074// to check whether the returned error was because
113075// http.StatusNotModified was returned.
113076func (c *PacketMirroringsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
113077	gensupport.SetOptions(c.urlParams_, opts...)
113078	res, err := c.doRequest("json")
113079	if res != nil && res.StatusCode == http.StatusNotModified {
113080		if res.Body != nil {
113081			res.Body.Close()
113082		}
113083		return nil, &googleapi.Error{
113084			Code:   res.StatusCode,
113085			Header: res.Header,
113086		}
113087	}
113088	if err != nil {
113089		return nil, err
113090	}
113091	defer googleapi.CloseBody(res)
113092	if err := googleapi.CheckResponse(res); err != nil {
113093		return nil, err
113094	}
113095	ret := &Operation{
113096		ServerResponse: googleapi.ServerResponse{
113097			Header:         res.Header,
113098			HTTPStatusCode: res.StatusCode,
113099		},
113100	}
113101	target := &ret
113102	if err := gensupport.DecodeResponse(target, res); err != nil {
113103		return nil, err
113104	}
113105	return ret, nil
113106	// {
113107	//   "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. (== suppress_warning http-rest-shadowed ==)",
113108	//   "httpMethod": "PATCH",
113109	//   "id": "compute.packetMirrorings.patch",
113110	//   "parameterOrder": [
113111	//     "project",
113112	//     "region",
113113	//     "packetMirroring"
113114	//   ],
113115	//   "parameters": {
113116	//     "packetMirroring": {
113117	//       "description": "Name of the PacketMirroring resource to patch.",
113118	//       "location": "path",
113119	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
113120	//       "required": true,
113121	//       "type": "string"
113122	//     },
113123	//     "project": {
113124	//       "description": "Project ID for this request.",
113125	//       "location": "path",
113126	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
113127	//       "required": true,
113128	//       "type": "string"
113129	//     },
113130	//     "region": {
113131	//       "description": "Name of the region for this request.",
113132	//       "location": "path",
113133	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
113134	//       "required": true,
113135	//       "type": "string"
113136	//     },
113137	//     "requestId": {
113138	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
113139	//       "location": "query",
113140	//       "type": "string"
113141	//     }
113142	//   },
113143	//   "path": "{project}/regions/{region}/packetMirrorings/{packetMirroring}",
113144	//   "request": {
113145	//     "$ref": "PacketMirroring"
113146	//   },
113147	//   "response": {
113148	//     "$ref": "Operation"
113149	//   },
113150	//   "scopes": [
113151	//     "https://www.googleapis.com/auth/cloud-platform",
113152	//     "https://www.googleapis.com/auth/compute"
113153	//   ]
113154	// }
113155
113156}
113157
113158// method id "compute.packetMirrorings.testIamPermissions":
113159
113160type PacketMirroringsTestIamPermissionsCall struct {
113161	s                      *Service
113162	project                string
113163	region                 string
113164	resource               string
113165	testpermissionsrequest *TestPermissionsRequest
113166	urlParams_             gensupport.URLParams
113167	ctx_                   context.Context
113168	header_                http.Header
113169}
113170
113171// TestIamPermissions: Returns permissions that a caller has on the
113172// specified resource. (== suppress_warning http-rest-shadowed ==)
113173func (r *PacketMirroringsService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *PacketMirroringsTestIamPermissionsCall {
113174	c := &PacketMirroringsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
113175	c.project = project
113176	c.region = region
113177	c.resource = resource
113178	c.testpermissionsrequest = testpermissionsrequest
113179	return c
113180}
113181
113182// Fields allows partial responses to be retrieved. See
113183// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
113184// for more information.
113185func (c *PacketMirroringsTestIamPermissionsCall) Fields(s ...googleapi.Field) *PacketMirroringsTestIamPermissionsCall {
113186	c.urlParams_.Set("fields", googleapi.CombineFields(s))
113187	return c
113188}
113189
113190// Context sets the context to be used in this call's Do method. Any
113191// pending HTTP request will be aborted if the provided context is
113192// canceled.
113193func (c *PacketMirroringsTestIamPermissionsCall) Context(ctx context.Context) *PacketMirroringsTestIamPermissionsCall {
113194	c.ctx_ = ctx
113195	return c
113196}
113197
113198// Header returns an http.Header that can be modified by the caller to
113199// add HTTP headers to the request.
113200func (c *PacketMirroringsTestIamPermissionsCall) Header() http.Header {
113201	if c.header_ == nil {
113202		c.header_ = make(http.Header)
113203	}
113204	return c.header_
113205}
113206
113207func (c *PacketMirroringsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
113208	reqHeaders := make(http.Header)
113209	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
113210	for k, v := range c.header_ {
113211		reqHeaders[k] = v
113212	}
113213	reqHeaders.Set("User-Agent", c.s.userAgent())
113214	var body io.Reader = nil
113215	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
113216	if err != nil {
113217		return nil, err
113218	}
113219	reqHeaders.Set("Content-Type", "application/json")
113220	c.urlParams_.Set("alt", alt)
113221	c.urlParams_.Set("prettyPrint", "false")
113222	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/packetMirrorings/{resource}/testIamPermissions")
113223	urls += "?" + c.urlParams_.Encode()
113224	req, err := http.NewRequest("POST", urls, body)
113225	if err != nil {
113226		return nil, err
113227	}
113228	req.Header = reqHeaders
113229	googleapi.Expand(req.URL, map[string]string{
113230		"project":  c.project,
113231		"region":   c.region,
113232		"resource": c.resource,
113233	})
113234	return gensupport.SendRequest(c.ctx_, c.s.client, req)
113235}
113236
113237// Do executes the "compute.packetMirrorings.testIamPermissions" call.
113238// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
113239// non-2xx status code is an error. Response headers are in either
113240// *TestPermissionsResponse.ServerResponse.Header or (if a response was
113241// returned at all) in error.(*googleapi.Error).Header. Use
113242// googleapi.IsNotModified to check whether the returned error was
113243// because http.StatusNotModified was returned.
113244func (c *PacketMirroringsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
113245	gensupport.SetOptions(c.urlParams_, opts...)
113246	res, err := c.doRequest("json")
113247	if res != nil && res.StatusCode == http.StatusNotModified {
113248		if res.Body != nil {
113249			res.Body.Close()
113250		}
113251		return nil, &googleapi.Error{
113252			Code:   res.StatusCode,
113253			Header: res.Header,
113254		}
113255	}
113256	if err != nil {
113257		return nil, err
113258	}
113259	defer googleapi.CloseBody(res)
113260	if err := googleapi.CheckResponse(res); err != nil {
113261		return nil, err
113262	}
113263	ret := &TestPermissionsResponse{
113264		ServerResponse: googleapi.ServerResponse{
113265			Header:         res.Header,
113266			HTTPStatusCode: res.StatusCode,
113267		},
113268	}
113269	target := &ret
113270	if err := gensupport.DecodeResponse(target, res); err != nil {
113271		return nil, err
113272	}
113273	return ret, nil
113274	// {
113275	//   "description": "Returns permissions that a caller has on the specified resource. (== suppress_warning http-rest-shadowed ==)",
113276	//   "httpMethod": "POST",
113277	//   "id": "compute.packetMirrorings.testIamPermissions",
113278	//   "parameterOrder": [
113279	//     "project",
113280	//     "region",
113281	//     "resource"
113282	//   ],
113283	//   "parameters": {
113284	//     "project": {
113285	//       "description": "Project ID for this request.",
113286	//       "location": "path",
113287	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
113288	//       "required": true,
113289	//       "type": "string"
113290	//     },
113291	//     "region": {
113292	//       "description": "The name of the region for this request.",
113293	//       "location": "path",
113294	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
113295	//       "required": true,
113296	//       "type": "string"
113297	//     },
113298	//     "resource": {
113299	//       "description": "Name or id of the resource for this request.",
113300	//       "location": "path",
113301	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
113302	//       "required": true,
113303	//       "type": "string"
113304	//     }
113305	//   },
113306	//   "path": "{project}/regions/{region}/packetMirrorings/{resource}/testIamPermissions",
113307	//   "request": {
113308	//     "$ref": "TestPermissionsRequest"
113309	//   },
113310	//   "response": {
113311	//     "$ref": "TestPermissionsResponse"
113312	//   },
113313	//   "scopes": [
113314	//     "https://www.googleapis.com/auth/cloud-platform",
113315	//     "https://www.googleapis.com/auth/compute",
113316	//     "https://www.googleapis.com/auth/compute.readonly"
113317	//   ]
113318	// }
113319
113320}
113321
113322// method id "compute.projects.disableXpnHost":
113323
113324type ProjectsDisableXpnHostCall struct {
113325	s          *Service
113326	project    string
113327	urlParams_ gensupport.URLParams
113328	ctx_       context.Context
113329	header_    http.Header
113330}
113331
113332// DisableXpnHost: Disable this project as a shared VPC host project.
113333// (== suppress_warning http-rest-shadowed ==)
113334func (r *ProjectsService) DisableXpnHost(project string) *ProjectsDisableXpnHostCall {
113335	c := &ProjectsDisableXpnHostCall{s: r.s, urlParams_: make(gensupport.URLParams)}
113336	c.project = project
113337	return c
113338}
113339
113340// RequestId sets the optional parameter "requestId": An optional
113341// request ID to identify requests. Specify a unique request ID so that
113342// if you must retry your request, the server will know to ignore the
113343// request if it has already been completed.
113344//
113345// For example, consider a situation where you make an initial request
113346// and the request times out. If you make the request again with the
113347// same request ID, the server can check if original operation with the
113348// same request ID was received, and if so, will ignore the second
113349// request. This prevents clients from accidentally creating duplicate
113350// commitments.
113351//
113352// The request ID must be a valid UUID with the exception that zero UUID
113353// is not supported (00000000-0000-0000-0000-000000000000).
113354func (c *ProjectsDisableXpnHostCall) RequestId(requestId string) *ProjectsDisableXpnHostCall {
113355	c.urlParams_.Set("requestId", requestId)
113356	return c
113357}
113358
113359// Fields allows partial responses to be retrieved. See
113360// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
113361// for more information.
113362func (c *ProjectsDisableXpnHostCall) Fields(s ...googleapi.Field) *ProjectsDisableXpnHostCall {
113363	c.urlParams_.Set("fields", googleapi.CombineFields(s))
113364	return c
113365}
113366
113367// Context sets the context to be used in this call's Do method. Any
113368// pending HTTP request will be aborted if the provided context is
113369// canceled.
113370func (c *ProjectsDisableXpnHostCall) Context(ctx context.Context) *ProjectsDisableXpnHostCall {
113371	c.ctx_ = ctx
113372	return c
113373}
113374
113375// Header returns an http.Header that can be modified by the caller to
113376// add HTTP headers to the request.
113377func (c *ProjectsDisableXpnHostCall) Header() http.Header {
113378	if c.header_ == nil {
113379		c.header_ = make(http.Header)
113380	}
113381	return c.header_
113382}
113383
113384func (c *ProjectsDisableXpnHostCall) doRequest(alt string) (*http.Response, error) {
113385	reqHeaders := make(http.Header)
113386	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
113387	for k, v := range c.header_ {
113388		reqHeaders[k] = v
113389	}
113390	reqHeaders.Set("User-Agent", c.s.userAgent())
113391	var body io.Reader = nil
113392	c.urlParams_.Set("alt", alt)
113393	c.urlParams_.Set("prettyPrint", "false")
113394	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/disableXpnHost")
113395	urls += "?" + c.urlParams_.Encode()
113396	req, err := http.NewRequest("POST", urls, body)
113397	if err != nil {
113398		return nil, err
113399	}
113400	req.Header = reqHeaders
113401	googleapi.Expand(req.URL, map[string]string{
113402		"project": c.project,
113403	})
113404	return gensupport.SendRequest(c.ctx_, c.s.client, req)
113405}
113406
113407// Do executes the "compute.projects.disableXpnHost" call.
113408// Exactly one of *Operation or error will be non-nil. Any non-2xx
113409// status code is an error. Response headers are in either
113410// *Operation.ServerResponse.Header or (if a response was returned at
113411// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
113412// to check whether the returned error was because
113413// http.StatusNotModified was returned.
113414func (c *ProjectsDisableXpnHostCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
113415	gensupport.SetOptions(c.urlParams_, opts...)
113416	res, err := c.doRequest("json")
113417	if res != nil && res.StatusCode == http.StatusNotModified {
113418		if res.Body != nil {
113419			res.Body.Close()
113420		}
113421		return nil, &googleapi.Error{
113422			Code:   res.StatusCode,
113423			Header: res.Header,
113424		}
113425	}
113426	if err != nil {
113427		return nil, err
113428	}
113429	defer googleapi.CloseBody(res)
113430	if err := googleapi.CheckResponse(res); err != nil {
113431		return nil, err
113432	}
113433	ret := &Operation{
113434		ServerResponse: googleapi.ServerResponse{
113435			Header:         res.Header,
113436			HTTPStatusCode: res.StatusCode,
113437		},
113438	}
113439	target := &ret
113440	if err := gensupport.DecodeResponse(target, res); err != nil {
113441		return nil, err
113442	}
113443	return ret, nil
113444	// {
113445	//   "description": "Disable this project as a shared VPC host project. (== suppress_warning http-rest-shadowed ==)",
113446	//   "httpMethod": "POST",
113447	//   "id": "compute.projects.disableXpnHost",
113448	//   "parameterOrder": [
113449	//     "project"
113450	//   ],
113451	//   "parameters": {
113452	//     "project": {
113453	//       "description": "Project ID for this request.",
113454	//       "location": "path",
113455	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
113456	//       "required": true,
113457	//       "type": "string"
113458	//     },
113459	//     "requestId": {
113460	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
113461	//       "location": "query",
113462	//       "type": "string"
113463	//     }
113464	//   },
113465	//   "path": "{project}/disableXpnHost",
113466	//   "response": {
113467	//     "$ref": "Operation"
113468	//   },
113469	//   "scopes": [
113470	//     "https://www.googleapis.com/auth/cloud-platform",
113471	//     "https://www.googleapis.com/auth/compute"
113472	//   ]
113473	// }
113474
113475}
113476
113477// method id "compute.projects.disableXpnResource":
113478
113479type ProjectsDisableXpnResourceCall struct {
113480	s                                 *Service
113481	project                           string
113482	projectsdisablexpnresourcerequest *ProjectsDisableXpnResourceRequest
113483	urlParams_                        gensupport.URLParams
113484	ctx_                              context.Context
113485	header_                           http.Header
113486}
113487
113488// DisableXpnResource: Disable a service resource (also known as service
113489// project) associated with this host project. (== suppress_warning
113490// http-rest-shadowed ==)
113491func (r *ProjectsService) DisableXpnResource(project string, projectsdisablexpnresourcerequest *ProjectsDisableXpnResourceRequest) *ProjectsDisableXpnResourceCall {
113492	c := &ProjectsDisableXpnResourceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
113493	c.project = project
113494	c.projectsdisablexpnresourcerequest = projectsdisablexpnresourcerequest
113495	return c
113496}
113497
113498// RequestId sets the optional parameter "requestId": An optional
113499// request ID to identify requests. Specify a unique request ID so that
113500// if you must retry your request, the server will know to ignore the
113501// request if it has already been completed.
113502//
113503// For example, consider a situation where you make an initial request
113504// and the request times out. If you make the request again with the
113505// same request ID, the server can check if original operation with the
113506// same request ID was received, and if so, will ignore the second
113507// request. This prevents clients from accidentally creating duplicate
113508// commitments.
113509//
113510// The request ID must be a valid UUID with the exception that zero UUID
113511// is not supported (00000000-0000-0000-0000-000000000000).
113512func (c *ProjectsDisableXpnResourceCall) RequestId(requestId string) *ProjectsDisableXpnResourceCall {
113513	c.urlParams_.Set("requestId", requestId)
113514	return c
113515}
113516
113517// Fields allows partial responses to be retrieved. See
113518// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
113519// for more information.
113520func (c *ProjectsDisableXpnResourceCall) Fields(s ...googleapi.Field) *ProjectsDisableXpnResourceCall {
113521	c.urlParams_.Set("fields", googleapi.CombineFields(s))
113522	return c
113523}
113524
113525// Context sets the context to be used in this call's Do method. Any
113526// pending HTTP request will be aborted if the provided context is
113527// canceled.
113528func (c *ProjectsDisableXpnResourceCall) Context(ctx context.Context) *ProjectsDisableXpnResourceCall {
113529	c.ctx_ = ctx
113530	return c
113531}
113532
113533// Header returns an http.Header that can be modified by the caller to
113534// add HTTP headers to the request.
113535func (c *ProjectsDisableXpnResourceCall) Header() http.Header {
113536	if c.header_ == nil {
113537		c.header_ = make(http.Header)
113538	}
113539	return c.header_
113540}
113541
113542func (c *ProjectsDisableXpnResourceCall) doRequest(alt string) (*http.Response, error) {
113543	reqHeaders := make(http.Header)
113544	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
113545	for k, v := range c.header_ {
113546		reqHeaders[k] = v
113547	}
113548	reqHeaders.Set("User-Agent", c.s.userAgent())
113549	var body io.Reader = nil
113550	body, err := googleapi.WithoutDataWrapper.JSONReader(c.projectsdisablexpnresourcerequest)
113551	if err != nil {
113552		return nil, err
113553	}
113554	reqHeaders.Set("Content-Type", "application/json")
113555	c.urlParams_.Set("alt", alt)
113556	c.urlParams_.Set("prettyPrint", "false")
113557	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/disableXpnResource")
113558	urls += "?" + c.urlParams_.Encode()
113559	req, err := http.NewRequest("POST", urls, body)
113560	if err != nil {
113561		return nil, err
113562	}
113563	req.Header = reqHeaders
113564	googleapi.Expand(req.URL, map[string]string{
113565		"project": c.project,
113566	})
113567	return gensupport.SendRequest(c.ctx_, c.s.client, req)
113568}
113569
113570// Do executes the "compute.projects.disableXpnResource" call.
113571// Exactly one of *Operation or error will be non-nil. Any non-2xx
113572// status code is an error. Response headers are in either
113573// *Operation.ServerResponse.Header or (if a response was returned at
113574// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
113575// to check whether the returned error was because
113576// http.StatusNotModified was returned.
113577func (c *ProjectsDisableXpnResourceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
113578	gensupport.SetOptions(c.urlParams_, opts...)
113579	res, err := c.doRequest("json")
113580	if res != nil && res.StatusCode == http.StatusNotModified {
113581		if res.Body != nil {
113582			res.Body.Close()
113583		}
113584		return nil, &googleapi.Error{
113585			Code:   res.StatusCode,
113586			Header: res.Header,
113587		}
113588	}
113589	if err != nil {
113590		return nil, err
113591	}
113592	defer googleapi.CloseBody(res)
113593	if err := googleapi.CheckResponse(res); err != nil {
113594		return nil, err
113595	}
113596	ret := &Operation{
113597		ServerResponse: googleapi.ServerResponse{
113598			Header:         res.Header,
113599			HTTPStatusCode: res.StatusCode,
113600		},
113601	}
113602	target := &ret
113603	if err := gensupport.DecodeResponse(target, res); err != nil {
113604		return nil, err
113605	}
113606	return ret, nil
113607	// {
113608	//   "description": "Disable a service resource (also known as service project) associated with this host project. (== suppress_warning http-rest-shadowed ==)",
113609	//   "httpMethod": "POST",
113610	//   "id": "compute.projects.disableXpnResource",
113611	//   "parameterOrder": [
113612	//     "project"
113613	//   ],
113614	//   "parameters": {
113615	//     "project": {
113616	//       "description": "Project ID for this request.",
113617	//       "location": "path",
113618	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
113619	//       "required": true,
113620	//       "type": "string"
113621	//     },
113622	//     "requestId": {
113623	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
113624	//       "location": "query",
113625	//       "type": "string"
113626	//     }
113627	//   },
113628	//   "path": "{project}/disableXpnResource",
113629	//   "request": {
113630	//     "$ref": "ProjectsDisableXpnResourceRequest"
113631	//   },
113632	//   "response": {
113633	//     "$ref": "Operation"
113634	//   },
113635	//   "scopes": [
113636	//     "https://www.googleapis.com/auth/cloud-platform",
113637	//     "https://www.googleapis.com/auth/compute"
113638	//   ]
113639	// }
113640
113641}
113642
113643// method id "compute.projects.enableXpnHost":
113644
113645type ProjectsEnableXpnHostCall struct {
113646	s          *Service
113647	project    string
113648	urlParams_ gensupport.URLParams
113649	ctx_       context.Context
113650	header_    http.Header
113651}
113652
113653// EnableXpnHost: Enable this project as a shared VPC host project. (==
113654// suppress_warning http-rest-shadowed ==)
113655func (r *ProjectsService) EnableXpnHost(project string) *ProjectsEnableXpnHostCall {
113656	c := &ProjectsEnableXpnHostCall{s: r.s, urlParams_: make(gensupport.URLParams)}
113657	c.project = project
113658	return c
113659}
113660
113661// RequestId sets the optional parameter "requestId": An optional
113662// request ID to identify requests. Specify a unique request ID so that
113663// if you must retry your request, the server will know to ignore the
113664// request if it has already been completed.
113665//
113666// For example, consider a situation where you make an initial request
113667// and the request times out. If you make the request again with the
113668// same request ID, the server can check if original operation with the
113669// same request ID was received, and if so, will ignore the second
113670// request. This prevents clients from accidentally creating duplicate
113671// commitments.
113672//
113673// The request ID must be a valid UUID with the exception that zero UUID
113674// is not supported (00000000-0000-0000-0000-000000000000).
113675func (c *ProjectsEnableXpnHostCall) RequestId(requestId string) *ProjectsEnableXpnHostCall {
113676	c.urlParams_.Set("requestId", requestId)
113677	return c
113678}
113679
113680// Fields allows partial responses to be retrieved. See
113681// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
113682// for more information.
113683func (c *ProjectsEnableXpnHostCall) Fields(s ...googleapi.Field) *ProjectsEnableXpnHostCall {
113684	c.urlParams_.Set("fields", googleapi.CombineFields(s))
113685	return c
113686}
113687
113688// Context sets the context to be used in this call's Do method. Any
113689// pending HTTP request will be aborted if the provided context is
113690// canceled.
113691func (c *ProjectsEnableXpnHostCall) Context(ctx context.Context) *ProjectsEnableXpnHostCall {
113692	c.ctx_ = ctx
113693	return c
113694}
113695
113696// Header returns an http.Header that can be modified by the caller to
113697// add HTTP headers to the request.
113698func (c *ProjectsEnableXpnHostCall) Header() http.Header {
113699	if c.header_ == nil {
113700		c.header_ = make(http.Header)
113701	}
113702	return c.header_
113703}
113704
113705func (c *ProjectsEnableXpnHostCall) doRequest(alt string) (*http.Response, error) {
113706	reqHeaders := make(http.Header)
113707	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
113708	for k, v := range c.header_ {
113709		reqHeaders[k] = v
113710	}
113711	reqHeaders.Set("User-Agent", c.s.userAgent())
113712	var body io.Reader = nil
113713	c.urlParams_.Set("alt", alt)
113714	c.urlParams_.Set("prettyPrint", "false")
113715	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/enableXpnHost")
113716	urls += "?" + c.urlParams_.Encode()
113717	req, err := http.NewRequest("POST", urls, body)
113718	if err != nil {
113719		return nil, err
113720	}
113721	req.Header = reqHeaders
113722	googleapi.Expand(req.URL, map[string]string{
113723		"project": c.project,
113724	})
113725	return gensupport.SendRequest(c.ctx_, c.s.client, req)
113726}
113727
113728// Do executes the "compute.projects.enableXpnHost" call.
113729// Exactly one of *Operation or error will be non-nil. Any non-2xx
113730// status code is an error. Response headers are in either
113731// *Operation.ServerResponse.Header or (if a response was returned at
113732// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
113733// to check whether the returned error was because
113734// http.StatusNotModified was returned.
113735func (c *ProjectsEnableXpnHostCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
113736	gensupport.SetOptions(c.urlParams_, opts...)
113737	res, err := c.doRequest("json")
113738	if res != nil && res.StatusCode == http.StatusNotModified {
113739		if res.Body != nil {
113740			res.Body.Close()
113741		}
113742		return nil, &googleapi.Error{
113743			Code:   res.StatusCode,
113744			Header: res.Header,
113745		}
113746	}
113747	if err != nil {
113748		return nil, err
113749	}
113750	defer googleapi.CloseBody(res)
113751	if err := googleapi.CheckResponse(res); err != nil {
113752		return nil, err
113753	}
113754	ret := &Operation{
113755		ServerResponse: googleapi.ServerResponse{
113756			Header:         res.Header,
113757			HTTPStatusCode: res.StatusCode,
113758		},
113759	}
113760	target := &ret
113761	if err := gensupport.DecodeResponse(target, res); err != nil {
113762		return nil, err
113763	}
113764	return ret, nil
113765	// {
113766	//   "description": "Enable this project as a shared VPC host project. (== suppress_warning http-rest-shadowed ==)",
113767	//   "httpMethod": "POST",
113768	//   "id": "compute.projects.enableXpnHost",
113769	//   "parameterOrder": [
113770	//     "project"
113771	//   ],
113772	//   "parameters": {
113773	//     "project": {
113774	//       "description": "Project ID for this request.",
113775	//       "location": "path",
113776	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
113777	//       "required": true,
113778	//       "type": "string"
113779	//     },
113780	//     "requestId": {
113781	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
113782	//       "location": "query",
113783	//       "type": "string"
113784	//     }
113785	//   },
113786	//   "path": "{project}/enableXpnHost",
113787	//   "response": {
113788	//     "$ref": "Operation"
113789	//   },
113790	//   "scopes": [
113791	//     "https://www.googleapis.com/auth/cloud-platform",
113792	//     "https://www.googleapis.com/auth/compute"
113793	//   ]
113794	// }
113795
113796}
113797
113798// method id "compute.projects.enableXpnResource":
113799
113800type ProjectsEnableXpnResourceCall struct {
113801	s                                *Service
113802	project                          string
113803	projectsenablexpnresourcerequest *ProjectsEnableXpnResourceRequest
113804	urlParams_                       gensupport.URLParams
113805	ctx_                             context.Context
113806	header_                          http.Header
113807}
113808
113809// EnableXpnResource: Enable service resource (a.k.a service project)
113810// for a host project, so that subnets in the host project can be used
113811// by instances in the service project. (== suppress_warning
113812// http-rest-shadowed ==)
113813func (r *ProjectsService) EnableXpnResource(project string, projectsenablexpnresourcerequest *ProjectsEnableXpnResourceRequest) *ProjectsEnableXpnResourceCall {
113814	c := &ProjectsEnableXpnResourceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
113815	c.project = project
113816	c.projectsenablexpnresourcerequest = projectsenablexpnresourcerequest
113817	return c
113818}
113819
113820// RequestId sets the optional parameter "requestId": An optional
113821// request ID to identify requests. Specify a unique request ID so that
113822// if you must retry your request, the server will know to ignore the
113823// request if it has already been completed.
113824//
113825// For example, consider a situation where you make an initial request
113826// and the request times out. If you make the request again with the
113827// same request ID, the server can check if original operation with the
113828// same request ID was received, and if so, will ignore the second
113829// request. This prevents clients from accidentally creating duplicate
113830// commitments.
113831//
113832// The request ID must be a valid UUID with the exception that zero UUID
113833// is not supported (00000000-0000-0000-0000-000000000000).
113834func (c *ProjectsEnableXpnResourceCall) RequestId(requestId string) *ProjectsEnableXpnResourceCall {
113835	c.urlParams_.Set("requestId", requestId)
113836	return c
113837}
113838
113839// Fields allows partial responses to be retrieved. See
113840// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
113841// for more information.
113842func (c *ProjectsEnableXpnResourceCall) Fields(s ...googleapi.Field) *ProjectsEnableXpnResourceCall {
113843	c.urlParams_.Set("fields", googleapi.CombineFields(s))
113844	return c
113845}
113846
113847// Context sets the context to be used in this call's Do method. Any
113848// pending HTTP request will be aborted if the provided context is
113849// canceled.
113850func (c *ProjectsEnableXpnResourceCall) Context(ctx context.Context) *ProjectsEnableXpnResourceCall {
113851	c.ctx_ = ctx
113852	return c
113853}
113854
113855// Header returns an http.Header that can be modified by the caller to
113856// add HTTP headers to the request.
113857func (c *ProjectsEnableXpnResourceCall) Header() http.Header {
113858	if c.header_ == nil {
113859		c.header_ = make(http.Header)
113860	}
113861	return c.header_
113862}
113863
113864func (c *ProjectsEnableXpnResourceCall) doRequest(alt string) (*http.Response, error) {
113865	reqHeaders := make(http.Header)
113866	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
113867	for k, v := range c.header_ {
113868		reqHeaders[k] = v
113869	}
113870	reqHeaders.Set("User-Agent", c.s.userAgent())
113871	var body io.Reader = nil
113872	body, err := googleapi.WithoutDataWrapper.JSONReader(c.projectsenablexpnresourcerequest)
113873	if err != nil {
113874		return nil, err
113875	}
113876	reqHeaders.Set("Content-Type", "application/json")
113877	c.urlParams_.Set("alt", alt)
113878	c.urlParams_.Set("prettyPrint", "false")
113879	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/enableXpnResource")
113880	urls += "?" + c.urlParams_.Encode()
113881	req, err := http.NewRequest("POST", urls, body)
113882	if err != nil {
113883		return nil, err
113884	}
113885	req.Header = reqHeaders
113886	googleapi.Expand(req.URL, map[string]string{
113887		"project": c.project,
113888	})
113889	return gensupport.SendRequest(c.ctx_, c.s.client, req)
113890}
113891
113892// Do executes the "compute.projects.enableXpnResource" call.
113893// Exactly one of *Operation or error will be non-nil. Any non-2xx
113894// status code is an error. Response headers are in either
113895// *Operation.ServerResponse.Header or (if a response was returned at
113896// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
113897// to check whether the returned error was because
113898// http.StatusNotModified was returned.
113899func (c *ProjectsEnableXpnResourceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
113900	gensupport.SetOptions(c.urlParams_, opts...)
113901	res, err := c.doRequest("json")
113902	if res != nil && res.StatusCode == http.StatusNotModified {
113903		if res.Body != nil {
113904			res.Body.Close()
113905		}
113906		return nil, &googleapi.Error{
113907			Code:   res.StatusCode,
113908			Header: res.Header,
113909		}
113910	}
113911	if err != nil {
113912		return nil, err
113913	}
113914	defer googleapi.CloseBody(res)
113915	if err := googleapi.CheckResponse(res); err != nil {
113916		return nil, err
113917	}
113918	ret := &Operation{
113919		ServerResponse: googleapi.ServerResponse{
113920			Header:         res.Header,
113921			HTTPStatusCode: res.StatusCode,
113922		},
113923	}
113924	target := &ret
113925	if err := gensupport.DecodeResponse(target, res); err != nil {
113926		return nil, err
113927	}
113928	return ret, nil
113929	// {
113930	//   "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. (== suppress_warning http-rest-shadowed ==)",
113931	//   "httpMethod": "POST",
113932	//   "id": "compute.projects.enableXpnResource",
113933	//   "parameterOrder": [
113934	//     "project"
113935	//   ],
113936	//   "parameters": {
113937	//     "project": {
113938	//       "description": "Project ID for this request.",
113939	//       "location": "path",
113940	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
113941	//       "required": true,
113942	//       "type": "string"
113943	//     },
113944	//     "requestId": {
113945	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
113946	//       "location": "query",
113947	//       "type": "string"
113948	//     }
113949	//   },
113950	//   "path": "{project}/enableXpnResource",
113951	//   "request": {
113952	//     "$ref": "ProjectsEnableXpnResourceRequest"
113953	//   },
113954	//   "response": {
113955	//     "$ref": "Operation"
113956	//   },
113957	//   "scopes": [
113958	//     "https://www.googleapis.com/auth/cloud-platform",
113959	//     "https://www.googleapis.com/auth/compute"
113960	//   ]
113961	// }
113962
113963}
113964
113965// method id "compute.projects.get":
113966
113967type ProjectsGetCall struct {
113968	s            *Service
113969	project      string
113970	urlParams_   gensupport.URLParams
113971	ifNoneMatch_ string
113972	ctx_         context.Context
113973	header_      http.Header
113974}
113975
113976// Get: Returns the specified Project resource. (== suppress_warning
113977// http-rest-shadowed ==)
113978// For details, see https://cloud.google.com/compute/docs/reference/latest/projects/get
113979func (r *ProjectsService) Get(project string) *ProjectsGetCall {
113980	c := &ProjectsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
113981	c.project = project
113982	return c
113983}
113984
113985// Fields allows partial responses to be retrieved. See
113986// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
113987// for more information.
113988func (c *ProjectsGetCall) Fields(s ...googleapi.Field) *ProjectsGetCall {
113989	c.urlParams_.Set("fields", googleapi.CombineFields(s))
113990	return c
113991}
113992
113993// IfNoneMatch sets the optional parameter which makes the operation
113994// fail if the object's ETag matches the given value. This is useful for
113995// getting updates only after the object has changed since the last
113996// request. Use googleapi.IsNotModified to check whether the response
113997// error from Do is the result of In-None-Match.
113998func (c *ProjectsGetCall) IfNoneMatch(entityTag string) *ProjectsGetCall {
113999	c.ifNoneMatch_ = entityTag
114000	return c
114001}
114002
114003// Context sets the context to be used in this call's Do method. Any
114004// pending HTTP request will be aborted if the provided context is
114005// canceled.
114006func (c *ProjectsGetCall) Context(ctx context.Context) *ProjectsGetCall {
114007	c.ctx_ = ctx
114008	return c
114009}
114010
114011// Header returns an http.Header that can be modified by the caller to
114012// add HTTP headers to the request.
114013func (c *ProjectsGetCall) Header() http.Header {
114014	if c.header_ == nil {
114015		c.header_ = make(http.Header)
114016	}
114017	return c.header_
114018}
114019
114020func (c *ProjectsGetCall) doRequest(alt string) (*http.Response, error) {
114021	reqHeaders := make(http.Header)
114022	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
114023	for k, v := range c.header_ {
114024		reqHeaders[k] = v
114025	}
114026	reqHeaders.Set("User-Agent", c.s.userAgent())
114027	if c.ifNoneMatch_ != "" {
114028		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
114029	}
114030	var body io.Reader = nil
114031	c.urlParams_.Set("alt", alt)
114032	c.urlParams_.Set("prettyPrint", "false")
114033	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}")
114034	urls += "?" + c.urlParams_.Encode()
114035	req, err := http.NewRequest("GET", urls, body)
114036	if err != nil {
114037		return nil, err
114038	}
114039	req.Header = reqHeaders
114040	googleapi.Expand(req.URL, map[string]string{
114041		"project": c.project,
114042	})
114043	return gensupport.SendRequest(c.ctx_, c.s.client, req)
114044}
114045
114046// Do executes the "compute.projects.get" call.
114047// Exactly one of *Project or error will be non-nil. Any non-2xx status
114048// code is an error. Response headers are in either
114049// *Project.ServerResponse.Header or (if a response was returned at all)
114050// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
114051// check whether the returned error was because http.StatusNotModified
114052// was returned.
114053func (c *ProjectsGetCall) Do(opts ...googleapi.CallOption) (*Project, error) {
114054	gensupport.SetOptions(c.urlParams_, opts...)
114055	res, err := c.doRequest("json")
114056	if res != nil && res.StatusCode == http.StatusNotModified {
114057		if res.Body != nil {
114058			res.Body.Close()
114059		}
114060		return nil, &googleapi.Error{
114061			Code:   res.StatusCode,
114062			Header: res.Header,
114063		}
114064	}
114065	if err != nil {
114066		return nil, err
114067	}
114068	defer googleapi.CloseBody(res)
114069	if err := googleapi.CheckResponse(res); err != nil {
114070		return nil, err
114071	}
114072	ret := &Project{
114073		ServerResponse: googleapi.ServerResponse{
114074			Header:         res.Header,
114075			HTTPStatusCode: res.StatusCode,
114076		},
114077	}
114078	target := &ret
114079	if err := gensupport.DecodeResponse(target, res); err != nil {
114080		return nil, err
114081	}
114082	return ret, nil
114083	// {
114084	//   "description": "Returns the specified Project resource. (== suppress_warning http-rest-shadowed ==)",
114085	//   "httpMethod": "GET",
114086	//   "id": "compute.projects.get",
114087	//   "parameterOrder": [
114088	//     "project"
114089	//   ],
114090	//   "parameters": {
114091	//     "project": {
114092	//       "description": "Project ID for this request.",
114093	//       "location": "path",
114094	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
114095	//       "required": true,
114096	//       "type": "string"
114097	//     }
114098	//   },
114099	//   "path": "{project}",
114100	//   "response": {
114101	//     "$ref": "Project"
114102	//   },
114103	//   "scopes": [
114104	//     "https://www.googleapis.com/auth/cloud-platform",
114105	//     "https://www.googleapis.com/auth/compute",
114106	//     "https://www.googleapis.com/auth/compute.readonly"
114107	//   ]
114108	// }
114109
114110}
114111
114112// method id "compute.projects.getXpnHost":
114113
114114type ProjectsGetXpnHostCall struct {
114115	s            *Service
114116	project      string
114117	urlParams_   gensupport.URLParams
114118	ifNoneMatch_ string
114119	ctx_         context.Context
114120	header_      http.Header
114121}
114122
114123// GetXpnHost: Gets the shared VPC host project that this project links
114124// to. May be empty if no link exists. (== suppress_warning
114125// http-rest-shadowed ==)
114126func (r *ProjectsService) GetXpnHost(project string) *ProjectsGetXpnHostCall {
114127	c := &ProjectsGetXpnHostCall{s: r.s, urlParams_: make(gensupport.URLParams)}
114128	c.project = project
114129	return c
114130}
114131
114132// Fields allows partial responses to be retrieved. See
114133// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
114134// for more information.
114135func (c *ProjectsGetXpnHostCall) Fields(s ...googleapi.Field) *ProjectsGetXpnHostCall {
114136	c.urlParams_.Set("fields", googleapi.CombineFields(s))
114137	return c
114138}
114139
114140// IfNoneMatch sets the optional parameter which makes the operation
114141// fail if the object's ETag matches the given value. This is useful for
114142// getting updates only after the object has changed since the last
114143// request. Use googleapi.IsNotModified to check whether the response
114144// error from Do is the result of In-None-Match.
114145func (c *ProjectsGetXpnHostCall) IfNoneMatch(entityTag string) *ProjectsGetXpnHostCall {
114146	c.ifNoneMatch_ = entityTag
114147	return c
114148}
114149
114150// Context sets the context to be used in this call's Do method. Any
114151// pending HTTP request will be aborted if the provided context is
114152// canceled.
114153func (c *ProjectsGetXpnHostCall) Context(ctx context.Context) *ProjectsGetXpnHostCall {
114154	c.ctx_ = ctx
114155	return c
114156}
114157
114158// Header returns an http.Header that can be modified by the caller to
114159// add HTTP headers to the request.
114160func (c *ProjectsGetXpnHostCall) Header() http.Header {
114161	if c.header_ == nil {
114162		c.header_ = make(http.Header)
114163	}
114164	return c.header_
114165}
114166
114167func (c *ProjectsGetXpnHostCall) doRequest(alt string) (*http.Response, error) {
114168	reqHeaders := make(http.Header)
114169	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
114170	for k, v := range c.header_ {
114171		reqHeaders[k] = v
114172	}
114173	reqHeaders.Set("User-Agent", c.s.userAgent())
114174	if c.ifNoneMatch_ != "" {
114175		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
114176	}
114177	var body io.Reader = nil
114178	c.urlParams_.Set("alt", alt)
114179	c.urlParams_.Set("prettyPrint", "false")
114180	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/getXpnHost")
114181	urls += "?" + c.urlParams_.Encode()
114182	req, err := http.NewRequest("GET", urls, body)
114183	if err != nil {
114184		return nil, err
114185	}
114186	req.Header = reqHeaders
114187	googleapi.Expand(req.URL, map[string]string{
114188		"project": c.project,
114189	})
114190	return gensupport.SendRequest(c.ctx_, c.s.client, req)
114191}
114192
114193// Do executes the "compute.projects.getXpnHost" call.
114194// Exactly one of *Project or error will be non-nil. Any non-2xx status
114195// code is an error. Response headers are in either
114196// *Project.ServerResponse.Header or (if a response was returned at all)
114197// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
114198// check whether the returned error was because http.StatusNotModified
114199// was returned.
114200func (c *ProjectsGetXpnHostCall) Do(opts ...googleapi.CallOption) (*Project, error) {
114201	gensupport.SetOptions(c.urlParams_, opts...)
114202	res, err := c.doRequest("json")
114203	if res != nil && res.StatusCode == http.StatusNotModified {
114204		if res.Body != nil {
114205			res.Body.Close()
114206		}
114207		return nil, &googleapi.Error{
114208			Code:   res.StatusCode,
114209			Header: res.Header,
114210		}
114211	}
114212	if err != nil {
114213		return nil, err
114214	}
114215	defer googleapi.CloseBody(res)
114216	if err := googleapi.CheckResponse(res); err != nil {
114217		return nil, err
114218	}
114219	ret := &Project{
114220		ServerResponse: googleapi.ServerResponse{
114221			Header:         res.Header,
114222			HTTPStatusCode: res.StatusCode,
114223		},
114224	}
114225	target := &ret
114226	if err := gensupport.DecodeResponse(target, res); err != nil {
114227		return nil, err
114228	}
114229	return ret, nil
114230	// {
114231	//   "description": "Gets the shared VPC host project that this project links to. May be empty if no link exists. (== suppress_warning http-rest-shadowed ==)",
114232	//   "httpMethod": "GET",
114233	//   "id": "compute.projects.getXpnHost",
114234	//   "parameterOrder": [
114235	//     "project"
114236	//   ],
114237	//   "parameters": {
114238	//     "project": {
114239	//       "description": "Project ID for this request.",
114240	//       "location": "path",
114241	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
114242	//       "required": true,
114243	//       "type": "string"
114244	//     }
114245	//   },
114246	//   "path": "{project}/getXpnHost",
114247	//   "response": {
114248	//     "$ref": "Project"
114249	//   },
114250	//   "scopes": [
114251	//     "https://www.googleapis.com/auth/cloud-platform",
114252	//     "https://www.googleapis.com/auth/compute"
114253	//   ]
114254	// }
114255
114256}
114257
114258// method id "compute.projects.getXpnResources":
114259
114260type ProjectsGetXpnResourcesCall struct {
114261	s            *Service
114262	project      string
114263	urlParams_   gensupport.URLParams
114264	ifNoneMatch_ string
114265	ctx_         context.Context
114266	header_      http.Header
114267}
114268
114269// GetXpnResources: Gets service resources (a.k.a service project)
114270// associated with this host project. (== suppress_warning
114271// http-rest-shadowed ==)
114272func (r *ProjectsService) GetXpnResources(project string) *ProjectsGetXpnResourcesCall {
114273	c := &ProjectsGetXpnResourcesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
114274	c.project = project
114275	return c
114276}
114277
114278// Filter sets the optional parameter "filter": A filter expression that
114279// filters resources listed in the response. The expression must specify
114280// the field name, a comparison operator, and the value that you want to
114281// use for filtering. The value must be a string, a number, or a
114282// boolean. The comparison operator must be either =, !=, >, or <.
114283//
114284// For example, if you are filtering Compute Engine instances, you can
114285// exclude instances named example-instance by specifying name !=
114286// example-instance.
114287//
114288// You can also filter nested fields. For example, you could specify
114289// scheduling.automaticRestart = false to include instances only if they
114290// are not scheduled for automatic restarts. You can use filtering on
114291// nested fields to filter based on resource labels.
114292//
114293// To filter on multiple expressions, provide each separate expression
114294// within parentheses. For example, (scheduling.automaticRestart = true)
114295// (cpuPlatform = "Intel Skylake"). By default, each expression is an
114296// AND expression. However, you can include AND and OR expressions
114297// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
114298// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
114299// true).
114300func (c *ProjectsGetXpnResourcesCall) Filter(filter string) *ProjectsGetXpnResourcesCall {
114301	c.urlParams_.Set("filter", filter)
114302	return c
114303}
114304
114305// MaxResults sets the optional parameter "maxResults": The maximum
114306// number of results per page that should be returned. If the number of
114307// available results is larger than maxResults, Compute Engine returns a
114308// nextPageToken that can be used to get the next page of results in
114309// subsequent list requests. Acceptable values are 0 to 500, inclusive.
114310// (Default: 500)
114311func (c *ProjectsGetXpnResourcesCall) MaxResults(maxResults int64) *ProjectsGetXpnResourcesCall {
114312	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
114313	return c
114314}
114315
114316// OrderBy sets the optional parameter "order_by": Sorts list results by
114317// a certain order. By default, results are returned in alphanumerical
114318// order based on the resource name.
114319//
114320// You can also sort results in descending order based on the creation
114321// timestamp using orderBy="creationTimestamp desc". This sorts results
114322// based on the creationTimestamp field in reverse chronological order
114323// (newest result first). Use this to sort resources like operations so
114324// that the newest operation is returned first.
114325//
114326// Currently, only sorting by name or creationTimestamp desc is
114327// supported.
114328func (c *ProjectsGetXpnResourcesCall) OrderBy(orderBy string) *ProjectsGetXpnResourcesCall {
114329	c.urlParams_.Set("order_by", orderBy)
114330	return c
114331}
114332
114333// PageToken sets the optional parameter "pageToken": Specifies a page
114334// token to use. Set pageToken to the nextPageToken returned by a
114335// previous list request to get the next page of results.
114336func (c *ProjectsGetXpnResourcesCall) PageToken(pageToken string) *ProjectsGetXpnResourcesCall {
114337	c.urlParams_.Set("pageToken", pageToken)
114338	return c
114339}
114340
114341// Fields allows partial responses to be retrieved. See
114342// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
114343// for more information.
114344func (c *ProjectsGetXpnResourcesCall) Fields(s ...googleapi.Field) *ProjectsGetXpnResourcesCall {
114345	c.urlParams_.Set("fields", googleapi.CombineFields(s))
114346	return c
114347}
114348
114349// IfNoneMatch sets the optional parameter which makes the operation
114350// fail if the object's ETag matches the given value. This is useful for
114351// getting updates only after the object has changed since the last
114352// request. Use googleapi.IsNotModified to check whether the response
114353// error from Do is the result of In-None-Match.
114354func (c *ProjectsGetXpnResourcesCall) IfNoneMatch(entityTag string) *ProjectsGetXpnResourcesCall {
114355	c.ifNoneMatch_ = entityTag
114356	return c
114357}
114358
114359// Context sets the context to be used in this call's Do method. Any
114360// pending HTTP request will be aborted if the provided context is
114361// canceled.
114362func (c *ProjectsGetXpnResourcesCall) Context(ctx context.Context) *ProjectsGetXpnResourcesCall {
114363	c.ctx_ = ctx
114364	return c
114365}
114366
114367// Header returns an http.Header that can be modified by the caller to
114368// add HTTP headers to the request.
114369func (c *ProjectsGetXpnResourcesCall) Header() http.Header {
114370	if c.header_ == nil {
114371		c.header_ = make(http.Header)
114372	}
114373	return c.header_
114374}
114375
114376func (c *ProjectsGetXpnResourcesCall) doRequest(alt string) (*http.Response, error) {
114377	reqHeaders := make(http.Header)
114378	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
114379	for k, v := range c.header_ {
114380		reqHeaders[k] = v
114381	}
114382	reqHeaders.Set("User-Agent", c.s.userAgent())
114383	if c.ifNoneMatch_ != "" {
114384		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
114385	}
114386	var body io.Reader = nil
114387	c.urlParams_.Set("alt", alt)
114388	c.urlParams_.Set("prettyPrint", "false")
114389	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/getXpnResources")
114390	urls += "?" + c.urlParams_.Encode()
114391	req, err := http.NewRequest("GET", urls, body)
114392	if err != nil {
114393		return nil, err
114394	}
114395	req.Header = reqHeaders
114396	googleapi.Expand(req.URL, map[string]string{
114397		"project": c.project,
114398	})
114399	return gensupport.SendRequest(c.ctx_, c.s.client, req)
114400}
114401
114402// Do executes the "compute.projects.getXpnResources" call.
114403// Exactly one of *ProjectsGetXpnResources or error will be non-nil. Any
114404// non-2xx status code is an error. Response headers are in either
114405// *ProjectsGetXpnResources.ServerResponse.Header or (if a response was
114406// returned at all) in error.(*googleapi.Error).Header. Use
114407// googleapi.IsNotModified to check whether the returned error was
114408// because http.StatusNotModified was returned.
114409func (c *ProjectsGetXpnResourcesCall) Do(opts ...googleapi.CallOption) (*ProjectsGetXpnResources, error) {
114410	gensupport.SetOptions(c.urlParams_, opts...)
114411	res, err := c.doRequest("json")
114412	if res != nil && res.StatusCode == http.StatusNotModified {
114413		if res.Body != nil {
114414			res.Body.Close()
114415		}
114416		return nil, &googleapi.Error{
114417			Code:   res.StatusCode,
114418			Header: res.Header,
114419		}
114420	}
114421	if err != nil {
114422		return nil, err
114423	}
114424	defer googleapi.CloseBody(res)
114425	if err := googleapi.CheckResponse(res); err != nil {
114426		return nil, err
114427	}
114428	ret := &ProjectsGetXpnResources{
114429		ServerResponse: googleapi.ServerResponse{
114430			Header:         res.Header,
114431			HTTPStatusCode: res.StatusCode,
114432		},
114433	}
114434	target := &ret
114435	if err := gensupport.DecodeResponse(target, res); err != nil {
114436		return nil, err
114437	}
114438	return ret, nil
114439	// {
114440	//   "description": "Gets service resources (a.k.a service project) associated with this host project. (== suppress_warning http-rest-shadowed ==)",
114441	//   "httpMethod": "GET",
114442	//   "id": "compute.projects.getXpnResources",
114443	//   "parameterOrder": [
114444	//     "project"
114445	//   ],
114446	//   "parameters": {
114447	//     "filter": {
114448	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
114449	//       "location": "query",
114450	//       "type": "string"
114451	//     },
114452	//     "maxResults": {
114453	//       "default": "500",
114454	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
114455	//       "format": "uint32",
114456	//       "location": "query",
114457	//       "minimum": "0",
114458	//       "type": "integer"
114459	//     },
114460	//     "order_by": {
114461	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
114462	//       "location": "query",
114463	//       "type": "string"
114464	//     },
114465	//     "pageToken": {
114466	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
114467	//       "location": "query",
114468	//       "type": "string"
114469	//     },
114470	//     "project": {
114471	//       "description": "Project ID for this request.",
114472	//       "location": "path",
114473	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
114474	//       "required": true,
114475	//       "type": "string"
114476	//     }
114477	//   },
114478	//   "path": "{project}/getXpnResources",
114479	//   "response": {
114480	//     "$ref": "ProjectsGetXpnResources"
114481	//   },
114482	//   "scopes": [
114483	//     "https://www.googleapis.com/auth/cloud-platform",
114484	//     "https://www.googleapis.com/auth/compute"
114485	//   ]
114486	// }
114487
114488}
114489
114490// Pages invokes f for each page of results.
114491// A non-nil error returned from f will halt the iteration.
114492// The provided context supersedes any context provided to the Context method.
114493func (c *ProjectsGetXpnResourcesCall) Pages(ctx context.Context, f func(*ProjectsGetXpnResources) error) error {
114494	c.ctx_ = ctx
114495	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
114496	for {
114497		x, err := c.Do()
114498		if err != nil {
114499			return err
114500		}
114501		if err := f(x); err != nil {
114502			return err
114503		}
114504		if x.NextPageToken == "" {
114505			return nil
114506		}
114507		c.PageToken(x.NextPageToken)
114508	}
114509}
114510
114511// method id "compute.projects.listXpnHosts":
114512
114513type ProjectsListXpnHostsCall struct {
114514	s                           *Service
114515	project                     string
114516	projectslistxpnhostsrequest *ProjectsListXpnHostsRequest
114517	urlParams_                  gensupport.URLParams
114518	ctx_                        context.Context
114519	header_                     http.Header
114520}
114521
114522// ListXpnHosts: Lists all shared VPC host projects visible to the user
114523// in an organization. (== suppress_warning http-rest-shadowed ==)
114524func (r *ProjectsService) ListXpnHosts(project string, projectslistxpnhostsrequest *ProjectsListXpnHostsRequest) *ProjectsListXpnHostsCall {
114525	c := &ProjectsListXpnHostsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
114526	c.project = project
114527	c.projectslistxpnhostsrequest = projectslistxpnhostsrequest
114528	return c
114529}
114530
114531// Filter sets the optional parameter "filter": A filter expression that
114532// filters resources listed in the response. The expression must specify
114533// the field name, a comparison operator, and the value that you want to
114534// use for filtering. The value must be a string, a number, or a
114535// boolean. The comparison operator must be either =, !=, >, or <.
114536//
114537// For example, if you are filtering Compute Engine instances, you can
114538// exclude instances named example-instance by specifying name !=
114539// example-instance.
114540//
114541// You can also filter nested fields. For example, you could specify
114542// scheduling.automaticRestart = false to include instances only if they
114543// are not scheduled for automatic restarts. You can use filtering on
114544// nested fields to filter based on resource labels.
114545//
114546// To filter on multiple expressions, provide each separate expression
114547// within parentheses. For example, (scheduling.automaticRestart = true)
114548// (cpuPlatform = "Intel Skylake"). By default, each expression is an
114549// AND expression. However, you can include AND and OR expressions
114550// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
114551// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
114552// true).
114553func (c *ProjectsListXpnHostsCall) Filter(filter string) *ProjectsListXpnHostsCall {
114554	c.urlParams_.Set("filter", filter)
114555	return c
114556}
114557
114558// MaxResults sets the optional parameter "maxResults": The maximum
114559// number of results per page that should be returned. If the number of
114560// available results is larger than maxResults, Compute Engine returns a
114561// nextPageToken that can be used to get the next page of results in
114562// subsequent list requests. Acceptable values are 0 to 500, inclusive.
114563// (Default: 500)
114564func (c *ProjectsListXpnHostsCall) MaxResults(maxResults int64) *ProjectsListXpnHostsCall {
114565	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
114566	return c
114567}
114568
114569// OrderBy sets the optional parameter "order_by": Sorts list results by
114570// a certain order. By default, results are returned in alphanumerical
114571// order based on the resource name.
114572//
114573// You can also sort results in descending order based on the creation
114574// timestamp using orderBy="creationTimestamp desc". This sorts results
114575// based on the creationTimestamp field in reverse chronological order
114576// (newest result first). Use this to sort resources like operations so
114577// that the newest operation is returned first.
114578//
114579// Currently, only sorting by name or creationTimestamp desc is
114580// supported.
114581func (c *ProjectsListXpnHostsCall) OrderBy(orderBy string) *ProjectsListXpnHostsCall {
114582	c.urlParams_.Set("order_by", orderBy)
114583	return c
114584}
114585
114586// PageToken sets the optional parameter "pageToken": Specifies a page
114587// token to use. Set pageToken to the nextPageToken returned by a
114588// previous list request to get the next page of results.
114589func (c *ProjectsListXpnHostsCall) PageToken(pageToken string) *ProjectsListXpnHostsCall {
114590	c.urlParams_.Set("pageToken", pageToken)
114591	return c
114592}
114593
114594// Fields allows partial responses to be retrieved. See
114595// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
114596// for more information.
114597func (c *ProjectsListXpnHostsCall) Fields(s ...googleapi.Field) *ProjectsListXpnHostsCall {
114598	c.urlParams_.Set("fields", googleapi.CombineFields(s))
114599	return c
114600}
114601
114602// Context sets the context to be used in this call's Do method. Any
114603// pending HTTP request will be aborted if the provided context is
114604// canceled.
114605func (c *ProjectsListXpnHostsCall) Context(ctx context.Context) *ProjectsListXpnHostsCall {
114606	c.ctx_ = ctx
114607	return c
114608}
114609
114610// Header returns an http.Header that can be modified by the caller to
114611// add HTTP headers to the request.
114612func (c *ProjectsListXpnHostsCall) Header() http.Header {
114613	if c.header_ == nil {
114614		c.header_ = make(http.Header)
114615	}
114616	return c.header_
114617}
114618
114619func (c *ProjectsListXpnHostsCall) doRequest(alt string) (*http.Response, error) {
114620	reqHeaders := make(http.Header)
114621	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
114622	for k, v := range c.header_ {
114623		reqHeaders[k] = v
114624	}
114625	reqHeaders.Set("User-Agent", c.s.userAgent())
114626	var body io.Reader = nil
114627	body, err := googleapi.WithoutDataWrapper.JSONReader(c.projectslistxpnhostsrequest)
114628	if err != nil {
114629		return nil, err
114630	}
114631	reqHeaders.Set("Content-Type", "application/json")
114632	c.urlParams_.Set("alt", alt)
114633	c.urlParams_.Set("prettyPrint", "false")
114634	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/listXpnHosts")
114635	urls += "?" + c.urlParams_.Encode()
114636	req, err := http.NewRequest("POST", urls, body)
114637	if err != nil {
114638		return nil, err
114639	}
114640	req.Header = reqHeaders
114641	googleapi.Expand(req.URL, map[string]string{
114642		"project": c.project,
114643	})
114644	return gensupport.SendRequest(c.ctx_, c.s.client, req)
114645}
114646
114647// Do executes the "compute.projects.listXpnHosts" call.
114648// Exactly one of *XpnHostList or error will be non-nil. Any non-2xx
114649// status code is an error. Response headers are in either
114650// *XpnHostList.ServerResponse.Header or (if a response was returned at
114651// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
114652// to check whether the returned error was because
114653// http.StatusNotModified was returned.
114654func (c *ProjectsListXpnHostsCall) Do(opts ...googleapi.CallOption) (*XpnHostList, error) {
114655	gensupport.SetOptions(c.urlParams_, opts...)
114656	res, err := c.doRequest("json")
114657	if res != nil && res.StatusCode == http.StatusNotModified {
114658		if res.Body != nil {
114659			res.Body.Close()
114660		}
114661		return nil, &googleapi.Error{
114662			Code:   res.StatusCode,
114663			Header: res.Header,
114664		}
114665	}
114666	if err != nil {
114667		return nil, err
114668	}
114669	defer googleapi.CloseBody(res)
114670	if err := googleapi.CheckResponse(res); err != nil {
114671		return nil, err
114672	}
114673	ret := &XpnHostList{
114674		ServerResponse: googleapi.ServerResponse{
114675			Header:         res.Header,
114676			HTTPStatusCode: res.StatusCode,
114677		},
114678	}
114679	target := &ret
114680	if err := gensupport.DecodeResponse(target, res); err != nil {
114681		return nil, err
114682	}
114683	return ret, nil
114684	// {
114685	//   "description": "Lists all shared VPC host projects visible to the user in an organization. (== suppress_warning http-rest-shadowed ==)",
114686	//   "httpMethod": "POST",
114687	//   "id": "compute.projects.listXpnHosts",
114688	//   "parameterOrder": [
114689	//     "project"
114690	//   ],
114691	//   "parameters": {
114692	//     "filter": {
114693	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
114694	//       "location": "query",
114695	//       "type": "string"
114696	//     },
114697	//     "maxResults": {
114698	//       "default": "500",
114699	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
114700	//       "format": "uint32",
114701	//       "location": "query",
114702	//       "minimum": "0",
114703	//       "type": "integer"
114704	//     },
114705	//     "order_by": {
114706	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
114707	//       "location": "query",
114708	//       "type": "string"
114709	//     },
114710	//     "pageToken": {
114711	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
114712	//       "location": "query",
114713	//       "type": "string"
114714	//     },
114715	//     "project": {
114716	//       "description": "Project ID for this request.",
114717	//       "location": "path",
114718	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
114719	//       "required": true,
114720	//       "type": "string"
114721	//     }
114722	//   },
114723	//   "path": "{project}/listXpnHosts",
114724	//   "request": {
114725	//     "$ref": "ProjectsListXpnHostsRequest"
114726	//   },
114727	//   "response": {
114728	//     "$ref": "XpnHostList"
114729	//   },
114730	//   "scopes": [
114731	//     "https://www.googleapis.com/auth/cloud-platform",
114732	//     "https://www.googleapis.com/auth/compute"
114733	//   ]
114734	// }
114735
114736}
114737
114738// Pages invokes f for each page of results.
114739// A non-nil error returned from f will halt the iteration.
114740// The provided context supersedes any context provided to the Context method.
114741func (c *ProjectsListXpnHostsCall) Pages(ctx context.Context, f func(*XpnHostList) error) error {
114742	c.ctx_ = ctx
114743	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
114744	for {
114745		x, err := c.Do()
114746		if err != nil {
114747			return err
114748		}
114749		if err := f(x); err != nil {
114750			return err
114751		}
114752		if x.NextPageToken == "" {
114753			return nil
114754		}
114755		c.PageToken(x.NextPageToken)
114756	}
114757}
114758
114759// method id "compute.projects.moveDisk":
114760
114761type ProjectsMoveDiskCall struct {
114762	s               *Service
114763	project         string
114764	diskmoverequest *DiskMoveRequest
114765	urlParams_      gensupport.URLParams
114766	ctx_            context.Context
114767	header_         http.Header
114768}
114769
114770// MoveDisk: Moves a persistent disk from one zone to another. (==
114771// suppress_warning http-rest-shadowed ==)
114772func (r *ProjectsService) MoveDisk(project string, diskmoverequest *DiskMoveRequest) *ProjectsMoveDiskCall {
114773	c := &ProjectsMoveDiskCall{s: r.s, urlParams_: make(gensupport.URLParams)}
114774	c.project = project
114775	c.diskmoverequest = diskmoverequest
114776	return c
114777}
114778
114779// RequestId sets the optional parameter "requestId": An optional
114780// request ID to identify requests. Specify a unique request ID so that
114781// if you must retry your request, the server will know to ignore the
114782// request if it has already been completed.
114783//
114784// For example, consider a situation where you make an initial request
114785// and the request times out. If you make the request again with the
114786// same request ID, the server can check if original operation with the
114787// same request ID was received, and if so, will ignore the second
114788// request. This prevents clients from accidentally creating duplicate
114789// commitments.
114790//
114791// The request ID must be a valid UUID with the exception that zero UUID
114792// is not supported (00000000-0000-0000-0000-000000000000).
114793func (c *ProjectsMoveDiskCall) RequestId(requestId string) *ProjectsMoveDiskCall {
114794	c.urlParams_.Set("requestId", requestId)
114795	return c
114796}
114797
114798// Fields allows partial responses to be retrieved. See
114799// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
114800// for more information.
114801func (c *ProjectsMoveDiskCall) Fields(s ...googleapi.Field) *ProjectsMoveDiskCall {
114802	c.urlParams_.Set("fields", googleapi.CombineFields(s))
114803	return c
114804}
114805
114806// Context sets the context to be used in this call's Do method. Any
114807// pending HTTP request will be aborted if the provided context is
114808// canceled.
114809func (c *ProjectsMoveDiskCall) Context(ctx context.Context) *ProjectsMoveDiskCall {
114810	c.ctx_ = ctx
114811	return c
114812}
114813
114814// Header returns an http.Header that can be modified by the caller to
114815// add HTTP headers to the request.
114816func (c *ProjectsMoveDiskCall) Header() http.Header {
114817	if c.header_ == nil {
114818		c.header_ = make(http.Header)
114819	}
114820	return c.header_
114821}
114822
114823func (c *ProjectsMoveDiskCall) doRequest(alt string) (*http.Response, error) {
114824	reqHeaders := make(http.Header)
114825	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
114826	for k, v := range c.header_ {
114827		reqHeaders[k] = v
114828	}
114829	reqHeaders.Set("User-Agent", c.s.userAgent())
114830	var body io.Reader = nil
114831	body, err := googleapi.WithoutDataWrapper.JSONReader(c.diskmoverequest)
114832	if err != nil {
114833		return nil, err
114834	}
114835	reqHeaders.Set("Content-Type", "application/json")
114836	c.urlParams_.Set("alt", alt)
114837	c.urlParams_.Set("prettyPrint", "false")
114838	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/moveDisk")
114839	urls += "?" + c.urlParams_.Encode()
114840	req, err := http.NewRequest("POST", urls, body)
114841	if err != nil {
114842		return nil, err
114843	}
114844	req.Header = reqHeaders
114845	googleapi.Expand(req.URL, map[string]string{
114846		"project": c.project,
114847	})
114848	return gensupport.SendRequest(c.ctx_, c.s.client, req)
114849}
114850
114851// Do executes the "compute.projects.moveDisk" call.
114852// Exactly one of *Operation or error will be non-nil. Any non-2xx
114853// status code is an error. Response headers are in either
114854// *Operation.ServerResponse.Header or (if a response was returned at
114855// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
114856// to check whether the returned error was because
114857// http.StatusNotModified was returned.
114858func (c *ProjectsMoveDiskCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
114859	gensupport.SetOptions(c.urlParams_, opts...)
114860	res, err := c.doRequest("json")
114861	if res != nil && res.StatusCode == http.StatusNotModified {
114862		if res.Body != nil {
114863			res.Body.Close()
114864		}
114865		return nil, &googleapi.Error{
114866			Code:   res.StatusCode,
114867			Header: res.Header,
114868		}
114869	}
114870	if err != nil {
114871		return nil, err
114872	}
114873	defer googleapi.CloseBody(res)
114874	if err := googleapi.CheckResponse(res); err != nil {
114875		return nil, err
114876	}
114877	ret := &Operation{
114878		ServerResponse: googleapi.ServerResponse{
114879			Header:         res.Header,
114880			HTTPStatusCode: res.StatusCode,
114881		},
114882	}
114883	target := &ret
114884	if err := gensupport.DecodeResponse(target, res); err != nil {
114885		return nil, err
114886	}
114887	return ret, nil
114888	// {
114889	//   "description": "Moves a persistent disk from one zone to another. (== suppress_warning http-rest-shadowed ==)",
114890	//   "httpMethod": "POST",
114891	//   "id": "compute.projects.moveDisk",
114892	//   "parameterOrder": [
114893	//     "project"
114894	//   ],
114895	//   "parameters": {
114896	//     "project": {
114897	//       "description": "Project ID for this request.",
114898	//       "location": "path",
114899	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
114900	//       "required": true,
114901	//       "type": "string"
114902	//     },
114903	//     "requestId": {
114904	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
114905	//       "location": "query",
114906	//       "type": "string"
114907	//     }
114908	//   },
114909	//   "path": "{project}/moveDisk",
114910	//   "request": {
114911	//     "$ref": "DiskMoveRequest"
114912	//   },
114913	//   "response": {
114914	//     "$ref": "Operation"
114915	//   },
114916	//   "scopes": [
114917	//     "https://www.googleapis.com/auth/cloud-platform",
114918	//     "https://www.googleapis.com/auth/compute"
114919	//   ]
114920	// }
114921
114922}
114923
114924// method id "compute.projects.moveInstance":
114925
114926type ProjectsMoveInstanceCall struct {
114927	s                   *Service
114928	project             string
114929	instancemoverequest *InstanceMoveRequest
114930	urlParams_          gensupport.URLParams
114931	ctx_                context.Context
114932	header_             http.Header
114933}
114934
114935// MoveInstance: Moves an instance and its attached persistent disks
114936// from one zone to another. (== suppress_warning http-rest-shadowed ==)
114937func (r *ProjectsService) MoveInstance(project string, instancemoverequest *InstanceMoveRequest) *ProjectsMoveInstanceCall {
114938	c := &ProjectsMoveInstanceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
114939	c.project = project
114940	c.instancemoverequest = instancemoverequest
114941	return c
114942}
114943
114944// RequestId sets the optional parameter "requestId": An optional
114945// request ID to identify requests. Specify a unique request ID so that
114946// if you must retry your request, the server will know to ignore the
114947// request if it has already been completed.
114948//
114949// For example, consider a situation where you make an initial request
114950// and the request times out. If you make the request again with the
114951// same request ID, the server can check if original operation with the
114952// same request ID was received, and if so, will ignore the second
114953// request. This prevents clients from accidentally creating duplicate
114954// commitments.
114955//
114956// The request ID must be a valid UUID with the exception that zero UUID
114957// is not supported (00000000-0000-0000-0000-000000000000).
114958func (c *ProjectsMoveInstanceCall) RequestId(requestId string) *ProjectsMoveInstanceCall {
114959	c.urlParams_.Set("requestId", requestId)
114960	return c
114961}
114962
114963// Fields allows partial responses to be retrieved. See
114964// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
114965// for more information.
114966func (c *ProjectsMoveInstanceCall) Fields(s ...googleapi.Field) *ProjectsMoveInstanceCall {
114967	c.urlParams_.Set("fields", googleapi.CombineFields(s))
114968	return c
114969}
114970
114971// Context sets the context to be used in this call's Do method. Any
114972// pending HTTP request will be aborted if the provided context is
114973// canceled.
114974func (c *ProjectsMoveInstanceCall) Context(ctx context.Context) *ProjectsMoveInstanceCall {
114975	c.ctx_ = ctx
114976	return c
114977}
114978
114979// Header returns an http.Header that can be modified by the caller to
114980// add HTTP headers to the request.
114981func (c *ProjectsMoveInstanceCall) Header() http.Header {
114982	if c.header_ == nil {
114983		c.header_ = make(http.Header)
114984	}
114985	return c.header_
114986}
114987
114988func (c *ProjectsMoveInstanceCall) doRequest(alt string) (*http.Response, error) {
114989	reqHeaders := make(http.Header)
114990	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
114991	for k, v := range c.header_ {
114992		reqHeaders[k] = v
114993	}
114994	reqHeaders.Set("User-Agent", c.s.userAgent())
114995	var body io.Reader = nil
114996	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancemoverequest)
114997	if err != nil {
114998		return nil, err
114999	}
115000	reqHeaders.Set("Content-Type", "application/json")
115001	c.urlParams_.Set("alt", alt)
115002	c.urlParams_.Set("prettyPrint", "false")
115003	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/moveInstance")
115004	urls += "?" + c.urlParams_.Encode()
115005	req, err := http.NewRequest("POST", urls, body)
115006	if err != nil {
115007		return nil, err
115008	}
115009	req.Header = reqHeaders
115010	googleapi.Expand(req.URL, map[string]string{
115011		"project": c.project,
115012	})
115013	return gensupport.SendRequest(c.ctx_, c.s.client, req)
115014}
115015
115016// Do executes the "compute.projects.moveInstance" call.
115017// Exactly one of *Operation or error will be non-nil. Any non-2xx
115018// status code is an error. Response headers are in either
115019// *Operation.ServerResponse.Header or (if a response was returned at
115020// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
115021// to check whether the returned error was because
115022// http.StatusNotModified was returned.
115023func (c *ProjectsMoveInstanceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
115024	gensupport.SetOptions(c.urlParams_, opts...)
115025	res, err := c.doRequest("json")
115026	if res != nil && res.StatusCode == http.StatusNotModified {
115027		if res.Body != nil {
115028			res.Body.Close()
115029		}
115030		return nil, &googleapi.Error{
115031			Code:   res.StatusCode,
115032			Header: res.Header,
115033		}
115034	}
115035	if err != nil {
115036		return nil, err
115037	}
115038	defer googleapi.CloseBody(res)
115039	if err := googleapi.CheckResponse(res); err != nil {
115040		return nil, err
115041	}
115042	ret := &Operation{
115043		ServerResponse: googleapi.ServerResponse{
115044			Header:         res.Header,
115045			HTTPStatusCode: res.StatusCode,
115046		},
115047	}
115048	target := &ret
115049	if err := gensupport.DecodeResponse(target, res); err != nil {
115050		return nil, err
115051	}
115052	return ret, nil
115053	// {
115054	//   "description": "Moves an instance and its attached persistent disks from one zone to another. (== suppress_warning http-rest-shadowed ==)",
115055	//   "httpMethod": "POST",
115056	//   "id": "compute.projects.moveInstance",
115057	//   "parameterOrder": [
115058	//     "project"
115059	//   ],
115060	//   "parameters": {
115061	//     "project": {
115062	//       "description": "Project ID for this request.",
115063	//       "location": "path",
115064	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
115065	//       "required": true,
115066	//       "type": "string"
115067	//     },
115068	//     "requestId": {
115069	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
115070	//       "location": "query",
115071	//       "type": "string"
115072	//     }
115073	//   },
115074	//   "path": "{project}/moveInstance",
115075	//   "request": {
115076	//     "$ref": "InstanceMoveRequest"
115077	//   },
115078	//   "response": {
115079	//     "$ref": "Operation"
115080	//   },
115081	//   "scopes": [
115082	//     "https://www.googleapis.com/auth/cloud-platform",
115083	//     "https://www.googleapis.com/auth/compute"
115084	//   ]
115085	// }
115086
115087}
115088
115089// method id "compute.projects.setCommonInstanceMetadata":
115090
115091type ProjectsSetCommonInstanceMetadataCall struct {
115092	s          *Service
115093	project    string
115094	metadata   *Metadata
115095	urlParams_ gensupport.URLParams
115096	ctx_       context.Context
115097	header_    http.Header
115098}
115099
115100// SetCommonInstanceMetadata: Sets metadata common to all instances
115101// within the specified project using the data included in the request.
115102// (== suppress_warning http-rest-shadowed ==)
115103// For details, see https://cloud.google.com/compute/docs/reference/latest/projects/setCommonInstanceMetadata
115104func (r *ProjectsService) SetCommonInstanceMetadata(project string, metadata *Metadata) *ProjectsSetCommonInstanceMetadataCall {
115105	c := &ProjectsSetCommonInstanceMetadataCall{s: r.s, urlParams_: make(gensupport.URLParams)}
115106	c.project = project
115107	c.metadata = metadata
115108	return c
115109}
115110
115111// RequestId sets the optional parameter "requestId": An optional
115112// request ID to identify requests. Specify a unique request ID so that
115113// if you must retry your request, the server will know to ignore the
115114// request if it has already been completed.
115115//
115116// For example, consider a situation where you make an initial request
115117// and the request times out. If you make the request again with the
115118// same request ID, the server can check if original operation with the
115119// same request ID was received, and if so, will ignore the second
115120// request. This prevents clients from accidentally creating duplicate
115121// commitments.
115122//
115123// The request ID must be a valid UUID with the exception that zero UUID
115124// is not supported (00000000-0000-0000-0000-000000000000).
115125func (c *ProjectsSetCommonInstanceMetadataCall) RequestId(requestId string) *ProjectsSetCommonInstanceMetadataCall {
115126	c.urlParams_.Set("requestId", requestId)
115127	return c
115128}
115129
115130// Fields allows partial responses to be retrieved. See
115131// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
115132// for more information.
115133func (c *ProjectsSetCommonInstanceMetadataCall) Fields(s ...googleapi.Field) *ProjectsSetCommonInstanceMetadataCall {
115134	c.urlParams_.Set("fields", googleapi.CombineFields(s))
115135	return c
115136}
115137
115138// Context sets the context to be used in this call's Do method. Any
115139// pending HTTP request will be aborted if the provided context is
115140// canceled.
115141func (c *ProjectsSetCommonInstanceMetadataCall) Context(ctx context.Context) *ProjectsSetCommonInstanceMetadataCall {
115142	c.ctx_ = ctx
115143	return c
115144}
115145
115146// Header returns an http.Header that can be modified by the caller to
115147// add HTTP headers to the request.
115148func (c *ProjectsSetCommonInstanceMetadataCall) Header() http.Header {
115149	if c.header_ == nil {
115150		c.header_ = make(http.Header)
115151	}
115152	return c.header_
115153}
115154
115155func (c *ProjectsSetCommonInstanceMetadataCall) doRequest(alt string) (*http.Response, error) {
115156	reqHeaders := make(http.Header)
115157	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
115158	for k, v := range c.header_ {
115159		reqHeaders[k] = v
115160	}
115161	reqHeaders.Set("User-Agent", c.s.userAgent())
115162	var body io.Reader = nil
115163	body, err := googleapi.WithoutDataWrapper.JSONReader(c.metadata)
115164	if err != nil {
115165		return nil, err
115166	}
115167	reqHeaders.Set("Content-Type", "application/json")
115168	c.urlParams_.Set("alt", alt)
115169	c.urlParams_.Set("prettyPrint", "false")
115170	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/setCommonInstanceMetadata")
115171	urls += "?" + c.urlParams_.Encode()
115172	req, err := http.NewRequest("POST", urls, body)
115173	if err != nil {
115174		return nil, err
115175	}
115176	req.Header = reqHeaders
115177	googleapi.Expand(req.URL, map[string]string{
115178		"project": c.project,
115179	})
115180	return gensupport.SendRequest(c.ctx_, c.s.client, req)
115181}
115182
115183// Do executes the "compute.projects.setCommonInstanceMetadata" call.
115184// Exactly one of *Operation or error will be non-nil. Any non-2xx
115185// status code is an error. Response headers are in either
115186// *Operation.ServerResponse.Header or (if a response was returned at
115187// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
115188// to check whether the returned error was because
115189// http.StatusNotModified was returned.
115190func (c *ProjectsSetCommonInstanceMetadataCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
115191	gensupport.SetOptions(c.urlParams_, opts...)
115192	res, err := c.doRequest("json")
115193	if res != nil && res.StatusCode == http.StatusNotModified {
115194		if res.Body != nil {
115195			res.Body.Close()
115196		}
115197		return nil, &googleapi.Error{
115198			Code:   res.StatusCode,
115199			Header: res.Header,
115200		}
115201	}
115202	if err != nil {
115203		return nil, err
115204	}
115205	defer googleapi.CloseBody(res)
115206	if err := googleapi.CheckResponse(res); err != nil {
115207		return nil, err
115208	}
115209	ret := &Operation{
115210		ServerResponse: googleapi.ServerResponse{
115211			Header:         res.Header,
115212			HTTPStatusCode: res.StatusCode,
115213		},
115214	}
115215	target := &ret
115216	if err := gensupport.DecodeResponse(target, res); err != nil {
115217		return nil, err
115218	}
115219	return ret, nil
115220	// {
115221	//   "description": "Sets metadata common to all instances within the specified project using the data included in the request. (== suppress_warning http-rest-shadowed ==)",
115222	//   "httpMethod": "POST",
115223	//   "id": "compute.projects.setCommonInstanceMetadata",
115224	//   "parameterOrder": [
115225	//     "project"
115226	//   ],
115227	//   "parameters": {
115228	//     "project": {
115229	//       "description": "Project ID for this request.",
115230	//       "location": "path",
115231	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
115232	//       "required": true,
115233	//       "type": "string"
115234	//     },
115235	//     "requestId": {
115236	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
115237	//       "location": "query",
115238	//       "type": "string"
115239	//     }
115240	//   },
115241	//   "path": "{project}/setCommonInstanceMetadata",
115242	//   "request": {
115243	//     "$ref": "Metadata"
115244	//   },
115245	//   "response": {
115246	//     "$ref": "Operation"
115247	//   },
115248	//   "scopes": [
115249	//     "https://www.googleapis.com/auth/cloud-platform",
115250	//     "https://www.googleapis.com/auth/compute"
115251	//   ]
115252	// }
115253
115254}
115255
115256// method id "compute.projects.setDefaultNetworkTier":
115257
115258type ProjectsSetDefaultNetworkTierCall struct {
115259	s                                    *Service
115260	project                              string
115261	projectssetdefaultnetworktierrequest *ProjectsSetDefaultNetworkTierRequest
115262	urlParams_                           gensupport.URLParams
115263	ctx_                                 context.Context
115264	header_                              http.Header
115265}
115266
115267// SetDefaultNetworkTier: Sets the default network tier of the project.
115268// The default network tier is used when an
115269// address/forwardingRule/instance is created without specifying the
115270// network tier field. (== suppress_warning http-rest-shadowed ==)
115271func (r *ProjectsService) SetDefaultNetworkTier(project string, projectssetdefaultnetworktierrequest *ProjectsSetDefaultNetworkTierRequest) *ProjectsSetDefaultNetworkTierCall {
115272	c := &ProjectsSetDefaultNetworkTierCall{s: r.s, urlParams_: make(gensupport.URLParams)}
115273	c.project = project
115274	c.projectssetdefaultnetworktierrequest = projectssetdefaultnetworktierrequest
115275	return c
115276}
115277
115278// RequestId sets the optional parameter "requestId": An optional
115279// request ID to identify requests. Specify a unique request ID so that
115280// if you must retry your request, the server will know to ignore the
115281// request if it has already been completed.
115282//
115283// For example, consider a situation where you make an initial request
115284// and the request times out. If you make the request again with the
115285// same request ID, the server can check if original operation with the
115286// same request ID was received, and if so, will ignore the second
115287// request. This prevents clients from accidentally creating duplicate
115288// commitments.
115289//
115290// The request ID must be a valid UUID with the exception that zero UUID
115291// is not supported (00000000-0000-0000-0000-000000000000).
115292func (c *ProjectsSetDefaultNetworkTierCall) RequestId(requestId string) *ProjectsSetDefaultNetworkTierCall {
115293	c.urlParams_.Set("requestId", requestId)
115294	return c
115295}
115296
115297// Fields allows partial responses to be retrieved. See
115298// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
115299// for more information.
115300func (c *ProjectsSetDefaultNetworkTierCall) Fields(s ...googleapi.Field) *ProjectsSetDefaultNetworkTierCall {
115301	c.urlParams_.Set("fields", googleapi.CombineFields(s))
115302	return c
115303}
115304
115305// Context sets the context to be used in this call's Do method. Any
115306// pending HTTP request will be aborted if the provided context is
115307// canceled.
115308func (c *ProjectsSetDefaultNetworkTierCall) Context(ctx context.Context) *ProjectsSetDefaultNetworkTierCall {
115309	c.ctx_ = ctx
115310	return c
115311}
115312
115313// Header returns an http.Header that can be modified by the caller to
115314// add HTTP headers to the request.
115315func (c *ProjectsSetDefaultNetworkTierCall) Header() http.Header {
115316	if c.header_ == nil {
115317		c.header_ = make(http.Header)
115318	}
115319	return c.header_
115320}
115321
115322func (c *ProjectsSetDefaultNetworkTierCall) doRequest(alt string) (*http.Response, error) {
115323	reqHeaders := make(http.Header)
115324	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
115325	for k, v := range c.header_ {
115326		reqHeaders[k] = v
115327	}
115328	reqHeaders.Set("User-Agent", c.s.userAgent())
115329	var body io.Reader = nil
115330	body, err := googleapi.WithoutDataWrapper.JSONReader(c.projectssetdefaultnetworktierrequest)
115331	if err != nil {
115332		return nil, err
115333	}
115334	reqHeaders.Set("Content-Type", "application/json")
115335	c.urlParams_.Set("alt", alt)
115336	c.urlParams_.Set("prettyPrint", "false")
115337	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/setDefaultNetworkTier")
115338	urls += "?" + c.urlParams_.Encode()
115339	req, err := http.NewRequest("POST", urls, body)
115340	if err != nil {
115341		return nil, err
115342	}
115343	req.Header = reqHeaders
115344	googleapi.Expand(req.URL, map[string]string{
115345		"project": c.project,
115346	})
115347	return gensupport.SendRequest(c.ctx_, c.s.client, req)
115348}
115349
115350// Do executes the "compute.projects.setDefaultNetworkTier" call.
115351// Exactly one of *Operation or error will be non-nil. Any non-2xx
115352// status code is an error. Response headers are in either
115353// *Operation.ServerResponse.Header or (if a response was returned at
115354// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
115355// to check whether the returned error was because
115356// http.StatusNotModified was returned.
115357func (c *ProjectsSetDefaultNetworkTierCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
115358	gensupport.SetOptions(c.urlParams_, opts...)
115359	res, err := c.doRequest("json")
115360	if res != nil && res.StatusCode == http.StatusNotModified {
115361		if res.Body != nil {
115362			res.Body.Close()
115363		}
115364		return nil, &googleapi.Error{
115365			Code:   res.StatusCode,
115366			Header: res.Header,
115367		}
115368	}
115369	if err != nil {
115370		return nil, err
115371	}
115372	defer googleapi.CloseBody(res)
115373	if err := googleapi.CheckResponse(res); err != nil {
115374		return nil, err
115375	}
115376	ret := &Operation{
115377		ServerResponse: googleapi.ServerResponse{
115378			Header:         res.Header,
115379			HTTPStatusCode: res.StatusCode,
115380		},
115381	}
115382	target := &ret
115383	if err := gensupport.DecodeResponse(target, res); err != nil {
115384		return nil, err
115385	}
115386	return ret, nil
115387	// {
115388	//   "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. (== suppress_warning http-rest-shadowed ==)",
115389	//   "httpMethod": "POST",
115390	//   "id": "compute.projects.setDefaultNetworkTier",
115391	//   "parameterOrder": [
115392	//     "project"
115393	//   ],
115394	//   "parameters": {
115395	//     "project": {
115396	//       "description": "Project ID for this request.",
115397	//       "location": "path",
115398	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
115399	//       "required": true,
115400	//       "type": "string"
115401	//     },
115402	//     "requestId": {
115403	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
115404	//       "location": "query",
115405	//       "type": "string"
115406	//     }
115407	//   },
115408	//   "path": "{project}/setDefaultNetworkTier",
115409	//   "request": {
115410	//     "$ref": "ProjectsSetDefaultNetworkTierRequest"
115411	//   },
115412	//   "response": {
115413	//     "$ref": "Operation"
115414	//   },
115415	//   "scopes": [
115416	//     "https://www.googleapis.com/auth/cloud-platform",
115417	//     "https://www.googleapis.com/auth/compute"
115418	//   ]
115419	// }
115420
115421}
115422
115423// method id "compute.projects.setDefaultServiceAccount":
115424
115425type ProjectsSetDefaultServiceAccountCall struct {
115426	s                                       *Service
115427	project                                 string
115428	projectssetdefaultserviceaccountrequest *ProjectsSetDefaultServiceAccountRequest
115429	urlParams_                              gensupport.URLParams
115430	ctx_                                    context.Context
115431	header_                                 http.Header
115432}
115433
115434// SetDefaultServiceAccount: Sets the default service account of the
115435// project. The default service account is used when a VM instance is
115436// created with the service account email address set to "default". (==
115437// suppress_warning http-rest-shadowed ==)
115438func (r *ProjectsService) SetDefaultServiceAccount(project string, projectssetdefaultserviceaccountrequest *ProjectsSetDefaultServiceAccountRequest) *ProjectsSetDefaultServiceAccountCall {
115439	c := &ProjectsSetDefaultServiceAccountCall{s: r.s, urlParams_: make(gensupport.URLParams)}
115440	c.project = project
115441	c.projectssetdefaultserviceaccountrequest = projectssetdefaultserviceaccountrequest
115442	return c
115443}
115444
115445// RequestId sets the optional parameter "requestId": An optional
115446// request ID to identify requests. Specify a unique request ID so that
115447// if you must retry your request, the server will know to ignore the
115448// request if it has already been completed.
115449//
115450// For example, consider a situation where you make an initial request
115451// and the request times out. If you make the request again with the
115452// same request ID, the server can check if original operation with the
115453// same request ID was received, and if so, will ignore the second
115454// request. This prevents clients from accidentally creating duplicate
115455// commitments.
115456//
115457// The request ID must be a valid UUID with the exception that zero UUID
115458// is not supported (00000000-0000-0000-0000-000000000000).
115459func (c *ProjectsSetDefaultServiceAccountCall) RequestId(requestId string) *ProjectsSetDefaultServiceAccountCall {
115460	c.urlParams_.Set("requestId", requestId)
115461	return c
115462}
115463
115464// Fields allows partial responses to be retrieved. See
115465// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
115466// for more information.
115467func (c *ProjectsSetDefaultServiceAccountCall) Fields(s ...googleapi.Field) *ProjectsSetDefaultServiceAccountCall {
115468	c.urlParams_.Set("fields", googleapi.CombineFields(s))
115469	return c
115470}
115471
115472// Context sets the context to be used in this call's Do method. Any
115473// pending HTTP request will be aborted if the provided context is
115474// canceled.
115475func (c *ProjectsSetDefaultServiceAccountCall) Context(ctx context.Context) *ProjectsSetDefaultServiceAccountCall {
115476	c.ctx_ = ctx
115477	return c
115478}
115479
115480// Header returns an http.Header that can be modified by the caller to
115481// add HTTP headers to the request.
115482func (c *ProjectsSetDefaultServiceAccountCall) Header() http.Header {
115483	if c.header_ == nil {
115484		c.header_ = make(http.Header)
115485	}
115486	return c.header_
115487}
115488
115489func (c *ProjectsSetDefaultServiceAccountCall) doRequest(alt string) (*http.Response, error) {
115490	reqHeaders := make(http.Header)
115491	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
115492	for k, v := range c.header_ {
115493		reqHeaders[k] = v
115494	}
115495	reqHeaders.Set("User-Agent", c.s.userAgent())
115496	var body io.Reader = nil
115497	body, err := googleapi.WithoutDataWrapper.JSONReader(c.projectssetdefaultserviceaccountrequest)
115498	if err != nil {
115499		return nil, err
115500	}
115501	reqHeaders.Set("Content-Type", "application/json")
115502	c.urlParams_.Set("alt", alt)
115503	c.urlParams_.Set("prettyPrint", "false")
115504	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/setDefaultServiceAccount")
115505	urls += "?" + c.urlParams_.Encode()
115506	req, err := http.NewRequest("POST", urls, body)
115507	if err != nil {
115508		return nil, err
115509	}
115510	req.Header = reqHeaders
115511	googleapi.Expand(req.URL, map[string]string{
115512		"project": c.project,
115513	})
115514	return gensupport.SendRequest(c.ctx_, c.s.client, req)
115515}
115516
115517// Do executes the "compute.projects.setDefaultServiceAccount" call.
115518// Exactly one of *Operation or error will be non-nil. Any non-2xx
115519// status code is an error. Response headers are in either
115520// *Operation.ServerResponse.Header or (if a response was returned at
115521// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
115522// to check whether the returned error was because
115523// http.StatusNotModified was returned.
115524func (c *ProjectsSetDefaultServiceAccountCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
115525	gensupport.SetOptions(c.urlParams_, opts...)
115526	res, err := c.doRequest("json")
115527	if res != nil && res.StatusCode == http.StatusNotModified {
115528		if res.Body != nil {
115529			res.Body.Close()
115530		}
115531		return nil, &googleapi.Error{
115532			Code:   res.StatusCode,
115533			Header: res.Header,
115534		}
115535	}
115536	if err != nil {
115537		return nil, err
115538	}
115539	defer googleapi.CloseBody(res)
115540	if err := googleapi.CheckResponse(res); err != nil {
115541		return nil, err
115542	}
115543	ret := &Operation{
115544		ServerResponse: googleapi.ServerResponse{
115545			Header:         res.Header,
115546			HTTPStatusCode: res.StatusCode,
115547		},
115548	}
115549	target := &ret
115550	if err := gensupport.DecodeResponse(target, res); err != nil {
115551		return nil, err
115552	}
115553	return ret, nil
115554	// {
115555	//   "description": "Sets the 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\". (== suppress_warning http-rest-shadowed ==)",
115556	//   "httpMethod": "POST",
115557	//   "id": "compute.projects.setDefaultServiceAccount",
115558	//   "parameterOrder": [
115559	//     "project"
115560	//   ],
115561	//   "parameters": {
115562	//     "project": {
115563	//       "description": "Project ID for this request.",
115564	//       "location": "path",
115565	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
115566	//       "required": true,
115567	//       "type": "string"
115568	//     },
115569	//     "requestId": {
115570	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
115571	//       "location": "query",
115572	//       "type": "string"
115573	//     }
115574	//   },
115575	//   "path": "{project}/setDefaultServiceAccount",
115576	//   "request": {
115577	//     "$ref": "ProjectsSetDefaultServiceAccountRequest"
115578	//   },
115579	//   "response": {
115580	//     "$ref": "Operation"
115581	//   },
115582	//   "scopes": [
115583	//     "https://www.googleapis.com/auth/cloud-platform",
115584	//     "https://www.googleapis.com/auth/compute"
115585	//   ]
115586	// }
115587
115588}
115589
115590// method id "compute.projects.setUsageExportBucket":
115591
115592type ProjectsSetUsageExportBucketCall struct {
115593	s                   *Service
115594	project             string
115595	usageexportlocation *UsageExportLocation
115596	urlParams_          gensupport.URLParams
115597	ctx_                context.Context
115598	header_             http.Header
115599}
115600
115601// SetUsageExportBucket: Enables the usage export feature and sets the
115602// usage export bucket where reports are stored. If you provide an empty
115603// request body using this method, the usage export feature will be
115604// disabled. (== suppress_warning http-rest-shadowed ==)
115605// For details, see https://cloud.google.com/compute/docs/reference/latest/projects/setUsageExportBucket
115606func (r *ProjectsService) SetUsageExportBucket(project string, usageexportlocation *UsageExportLocation) *ProjectsSetUsageExportBucketCall {
115607	c := &ProjectsSetUsageExportBucketCall{s: r.s, urlParams_: make(gensupport.URLParams)}
115608	c.project = project
115609	c.usageexportlocation = usageexportlocation
115610	return c
115611}
115612
115613// RequestId sets the optional parameter "requestId": An optional
115614// request ID to identify requests. Specify a unique request ID so that
115615// if you must retry your request, the server will know to ignore the
115616// request if it has already been completed.
115617//
115618// For example, consider a situation where you make an initial request
115619// and the request times out. If you make the request again with the
115620// same request ID, the server can check if original operation with the
115621// same request ID was received, and if so, will ignore the second
115622// request. This prevents clients from accidentally creating duplicate
115623// commitments.
115624//
115625// The request ID must be a valid UUID with the exception that zero UUID
115626// is not supported (00000000-0000-0000-0000-000000000000).
115627func (c *ProjectsSetUsageExportBucketCall) RequestId(requestId string) *ProjectsSetUsageExportBucketCall {
115628	c.urlParams_.Set("requestId", requestId)
115629	return c
115630}
115631
115632// Fields allows partial responses to be retrieved. See
115633// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
115634// for more information.
115635func (c *ProjectsSetUsageExportBucketCall) Fields(s ...googleapi.Field) *ProjectsSetUsageExportBucketCall {
115636	c.urlParams_.Set("fields", googleapi.CombineFields(s))
115637	return c
115638}
115639
115640// Context sets the context to be used in this call's Do method. Any
115641// pending HTTP request will be aborted if the provided context is
115642// canceled.
115643func (c *ProjectsSetUsageExportBucketCall) Context(ctx context.Context) *ProjectsSetUsageExportBucketCall {
115644	c.ctx_ = ctx
115645	return c
115646}
115647
115648// Header returns an http.Header that can be modified by the caller to
115649// add HTTP headers to the request.
115650func (c *ProjectsSetUsageExportBucketCall) Header() http.Header {
115651	if c.header_ == nil {
115652		c.header_ = make(http.Header)
115653	}
115654	return c.header_
115655}
115656
115657func (c *ProjectsSetUsageExportBucketCall) doRequest(alt string) (*http.Response, error) {
115658	reqHeaders := make(http.Header)
115659	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
115660	for k, v := range c.header_ {
115661		reqHeaders[k] = v
115662	}
115663	reqHeaders.Set("User-Agent", c.s.userAgent())
115664	var body io.Reader = nil
115665	body, err := googleapi.WithoutDataWrapper.JSONReader(c.usageexportlocation)
115666	if err != nil {
115667		return nil, err
115668	}
115669	reqHeaders.Set("Content-Type", "application/json")
115670	c.urlParams_.Set("alt", alt)
115671	c.urlParams_.Set("prettyPrint", "false")
115672	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/setUsageExportBucket")
115673	urls += "?" + c.urlParams_.Encode()
115674	req, err := http.NewRequest("POST", urls, body)
115675	if err != nil {
115676		return nil, err
115677	}
115678	req.Header = reqHeaders
115679	googleapi.Expand(req.URL, map[string]string{
115680		"project": c.project,
115681	})
115682	return gensupport.SendRequest(c.ctx_, c.s.client, req)
115683}
115684
115685// Do executes the "compute.projects.setUsageExportBucket" call.
115686// Exactly one of *Operation or error will be non-nil. Any non-2xx
115687// status code is an error. Response headers are in either
115688// *Operation.ServerResponse.Header or (if a response was returned at
115689// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
115690// to check whether the returned error was because
115691// http.StatusNotModified was returned.
115692func (c *ProjectsSetUsageExportBucketCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
115693	gensupport.SetOptions(c.urlParams_, opts...)
115694	res, err := c.doRequest("json")
115695	if res != nil && res.StatusCode == http.StatusNotModified {
115696		if res.Body != nil {
115697			res.Body.Close()
115698		}
115699		return nil, &googleapi.Error{
115700			Code:   res.StatusCode,
115701			Header: res.Header,
115702		}
115703	}
115704	if err != nil {
115705		return nil, err
115706	}
115707	defer googleapi.CloseBody(res)
115708	if err := googleapi.CheckResponse(res); err != nil {
115709		return nil, err
115710	}
115711	ret := &Operation{
115712		ServerResponse: googleapi.ServerResponse{
115713			Header:         res.Header,
115714			HTTPStatusCode: res.StatusCode,
115715		},
115716	}
115717	target := &ret
115718	if err := gensupport.DecodeResponse(target, res); err != nil {
115719		return nil, err
115720	}
115721	return ret, nil
115722	// {
115723	//   "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. (== suppress_warning http-rest-shadowed ==)",
115724	//   "httpMethod": "POST",
115725	//   "id": "compute.projects.setUsageExportBucket",
115726	//   "parameterOrder": [
115727	//     "project"
115728	//   ],
115729	//   "parameters": {
115730	//     "project": {
115731	//       "description": "Project ID for this request.",
115732	//       "location": "path",
115733	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
115734	//       "required": true,
115735	//       "type": "string"
115736	//     },
115737	//     "requestId": {
115738	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
115739	//       "location": "query",
115740	//       "type": "string"
115741	//     }
115742	//   },
115743	//   "path": "{project}/setUsageExportBucket",
115744	//   "request": {
115745	//     "$ref": "UsageExportLocation"
115746	//   },
115747	//   "response": {
115748	//     "$ref": "Operation"
115749	//   },
115750	//   "scopes": [
115751	//     "https://www.googleapis.com/auth/cloud-platform",
115752	//     "https://www.googleapis.com/auth/compute",
115753	//     "https://www.googleapis.com/auth/devstorage.full_control",
115754	//     "https://www.googleapis.com/auth/devstorage.read_only",
115755	//     "https://www.googleapis.com/auth/devstorage.read_write"
115756	//   ]
115757	// }
115758
115759}
115760
115761// method id "compute.publicAdvertisedPrefixes.delete":
115762
115763type PublicAdvertisedPrefixesDeleteCall struct {
115764	s                      *Service
115765	project                string
115766	publicAdvertisedPrefix string
115767	urlParams_             gensupport.URLParams
115768	ctx_                   context.Context
115769	header_                http.Header
115770}
115771
115772// Delete: Deletes the specified PublicAdvertisedPrefix (==
115773// suppress_warning http-rest-shadowed ==)
115774func (r *PublicAdvertisedPrefixesService) Delete(project string, publicAdvertisedPrefix string) *PublicAdvertisedPrefixesDeleteCall {
115775	c := &PublicAdvertisedPrefixesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
115776	c.project = project
115777	c.publicAdvertisedPrefix = publicAdvertisedPrefix
115778	return c
115779}
115780
115781// RequestId sets the optional parameter "requestId": An optional
115782// request ID to identify requests. Specify a unique request ID so that
115783// if you must retry your request, the server will know to ignore the
115784// request if it has already been completed.
115785//
115786// For example, consider a situation where you make an initial request
115787// and the request times out. If you make the request again with the
115788// same request ID, the server can check if original operation with the
115789// same request ID was received, and if so, will ignore the second
115790// request. This prevents clients from accidentally creating duplicate
115791// commitments.
115792//
115793// The request ID must be a valid UUID with the exception that zero UUID
115794// is not supported (00000000-0000-0000-0000-000000000000).
115795func (c *PublicAdvertisedPrefixesDeleteCall) RequestId(requestId string) *PublicAdvertisedPrefixesDeleteCall {
115796	c.urlParams_.Set("requestId", requestId)
115797	return c
115798}
115799
115800// Fields allows partial responses to be retrieved. See
115801// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
115802// for more information.
115803func (c *PublicAdvertisedPrefixesDeleteCall) Fields(s ...googleapi.Field) *PublicAdvertisedPrefixesDeleteCall {
115804	c.urlParams_.Set("fields", googleapi.CombineFields(s))
115805	return c
115806}
115807
115808// Context sets the context to be used in this call's Do method. Any
115809// pending HTTP request will be aborted if the provided context is
115810// canceled.
115811func (c *PublicAdvertisedPrefixesDeleteCall) Context(ctx context.Context) *PublicAdvertisedPrefixesDeleteCall {
115812	c.ctx_ = ctx
115813	return c
115814}
115815
115816// Header returns an http.Header that can be modified by the caller to
115817// add HTTP headers to the request.
115818func (c *PublicAdvertisedPrefixesDeleteCall) Header() http.Header {
115819	if c.header_ == nil {
115820		c.header_ = make(http.Header)
115821	}
115822	return c.header_
115823}
115824
115825func (c *PublicAdvertisedPrefixesDeleteCall) doRequest(alt string) (*http.Response, error) {
115826	reqHeaders := make(http.Header)
115827	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
115828	for k, v := range c.header_ {
115829		reqHeaders[k] = v
115830	}
115831	reqHeaders.Set("User-Agent", c.s.userAgent())
115832	var body io.Reader = nil
115833	c.urlParams_.Set("alt", alt)
115834	c.urlParams_.Set("prettyPrint", "false")
115835	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}")
115836	urls += "?" + c.urlParams_.Encode()
115837	req, err := http.NewRequest("DELETE", urls, body)
115838	if err != nil {
115839		return nil, err
115840	}
115841	req.Header = reqHeaders
115842	googleapi.Expand(req.URL, map[string]string{
115843		"project":                c.project,
115844		"publicAdvertisedPrefix": c.publicAdvertisedPrefix,
115845	})
115846	return gensupport.SendRequest(c.ctx_, c.s.client, req)
115847}
115848
115849// Do executes the "compute.publicAdvertisedPrefixes.delete" call.
115850// Exactly one of *Operation or error will be non-nil. Any non-2xx
115851// status code is an error. Response headers are in either
115852// *Operation.ServerResponse.Header or (if a response was returned at
115853// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
115854// to check whether the returned error was because
115855// http.StatusNotModified was returned.
115856func (c *PublicAdvertisedPrefixesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
115857	gensupport.SetOptions(c.urlParams_, opts...)
115858	res, err := c.doRequest("json")
115859	if res != nil && res.StatusCode == http.StatusNotModified {
115860		if res.Body != nil {
115861			res.Body.Close()
115862		}
115863		return nil, &googleapi.Error{
115864			Code:   res.StatusCode,
115865			Header: res.Header,
115866		}
115867	}
115868	if err != nil {
115869		return nil, err
115870	}
115871	defer googleapi.CloseBody(res)
115872	if err := googleapi.CheckResponse(res); err != nil {
115873		return nil, err
115874	}
115875	ret := &Operation{
115876		ServerResponse: googleapi.ServerResponse{
115877			Header:         res.Header,
115878			HTTPStatusCode: res.StatusCode,
115879		},
115880	}
115881	target := &ret
115882	if err := gensupport.DecodeResponse(target, res); err != nil {
115883		return nil, err
115884	}
115885	return ret, nil
115886	// {
115887	//   "description": "Deletes the specified PublicAdvertisedPrefix (== suppress_warning http-rest-shadowed ==)",
115888	//   "httpMethod": "DELETE",
115889	//   "id": "compute.publicAdvertisedPrefixes.delete",
115890	//   "parameterOrder": [
115891	//     "project",
115892	//     "publicAdvertisedPrefix"
115893	//   ],
115894	//   "parameters": {
115895	//     "project": {
115896	//       "description": "Project ID for this request.",
115897	//       "location": "path",
115898	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
115899	//       "required": true,
115900	//       "type": "string"
115901	//     },
115902	//     "publicAdvertisedPrefix": {
115903	//       "description": "Name of the PublicAdvertisedPrefix resource to delete.",
115904	//       "location": "path",
115905	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
115906	//       "required": true,
115907	//       "type": "string"
115908	//     },
115909	//     "requestId": {
115910	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
115911	//       "location": "query",
115912	//       "type": "string"
115913	//     }
115914	//   },
115915	//   "path": "{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}",
115916	//   "response": {
115917	//     "$ref": "Operation"
115918	//   },
115919	//   "scopes": [
115920	//     "https://www.googleapis.com/auth/cloud-platform",
115921	//     "https://www.googleapis.com/auth/compute"
115922	//   ]
115923	// }
115924
115925}
115926
115927// method id "compute.publicAdvertisedPrefixes.get":
115928
115929type PublicAdvertisedPrefixesGetCall struct {
115930	s                      *Service
115931	project                string
115932	publicAdvertisedPrefix string
115933	urlParams_             gensupport.URLParams
115934	ifNoneMatch_           string
115935	ctx_                   context.Context
115936	header_                http.Header
115937}
115938
115939// Get: Returns the specified PublicAdvertisedPrefix resource. (==
115940// suppress_warning http-rest-shadowed ==)
115941func (r *PublicAdvertisedPrefixesService) Get(project string, publicAdvertisedPrefix string) *PublicAdvertisedPrefixesGetCall {
115942	c := &PublicAdvertisedPrefixesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
115943	c.project = project
115944	c.publicAdvertisedPrefix = publicAdvertisedPrefix
115945	return c
115946}
115947
115948// Fields allows partial responses to be retrieved. See
115949// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
115950// for more information.
115951func (c *PublicAdvertisedPrefixesGetCall) Fields(s ...googleapi.Field) *PublicAdvertisedPrefixesGetCall {
115952	c.urlParams_.Set("fields", googleapi.CombineFields(s))
115953	return c
115954}
115955
115956// IfNoneMatch sets the optional parameter which makes the operation
115957// fail if the object's ETag matches the given value. This is useful for
115958// getting updates only after the object has changed since the last
115959// request. Use googleapi.IsNotModified to check whether the response
115960// error from Do is the result of In-None-Match.
115961func (c *PublicAdvertisedPrefixesGetCall) IfNoneMatch(entityTag string) *PublicAdvertisedPrefixesGetCall {
115962	c.ifNoneMatch_ = entityTag
115963	return c
115964}
115965
115966// Context sets the context to be used in this call's Do method. Any
115967// pending HTTP request will be aborted if the provided context is
115968// canceled.
115969func (c *PublicAdvertisedPrefixesGetCall) Context(ctx context.Context) *PublicAdvertisedPrefixesGetCall {
115970	c.ctx_ = ctx
115971	return c
115972}
115973
115974// Header returns an http.Header that can be modified by the caller to
115975// add HTTP headers to the request.
115976func (c *PublicAdvertisedPrefixesGetCall) Header() http.Header {
115977	if c.header_ == nil {
115978		c.header_ = make(http.Header)
115979	}
115980	return c.header_
115981}
115982
115983func (c *PublicAdvertisedPrefixesGetCall) doRequest(alt string) (*http.Response, error) {
115984	reqHeaders := make(http.Header)
115985	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
115986	for k, v := range c.header_ {
115987		reqHeaders[k] = v
115988	}
115989	reqHeaders.Set("User-Agent", c.s.userAgent())
115990	if c.ifNoneMatch_ != "" {
115991		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
115992	}
115993	var body io.Reader = nil
115994	c.urlParams_.Set("alt", alt)
115995	c.urlParams_.Set("prettyPrint", "false")
115996	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}")
115997	urls += "?" + c.urlParams_.Encode()
115998	req, err := http.NewRequest("GET", urls, body)
115999	if err != nil {
116000		return nil, err
116001	}
116002	req.Header = reqHeaders
116003	googleapi.Expand(req.URL, map[string]string{
116004		"project":                c.project,
116005		"publicAdvertisedPrefix": c.publicAdvertisedPrefix,
116006	})
116007	return gensupport.SendRequest(c.ctx_, c.s.client, req)
116008}
116009
116010// Do executes the "compute.publicAdvertisedPrefixes.get" call.
116011// Exactly one of *PublicAdvertisedPrefix or error will be non-nil. Any
116012// non-2xx status code is an error. Response headers are in either
116013// *PublicAdvertisedPrefix.ServerResponse.Header or (if a response was
116014// returned at all) in error.(*googleapi.Error).Header. Use
116015// googleapi.IsNotModified to check whether the returned error was
116016// because http.StatusNotModified was returned.
116017func (c *PublicAdvertisedPrefixesGetCall) Do(opts ...googleapi.CallOption) (*PublicAdvertisedPrefix, error) {
116018	gensupport.SetOptions(c.urlParams_, opts...)
116019	res, err := c.doRequest("json")
116020	if res != nil && res.StatusCode == http.StatusNotModified {
116021		if res.Body != nil {
116022			res.Body.Close()
116023		}
116024		return nil, &googleapi.Error{
116025			Code:   res.StatusCode,
116026			Header: res.Header,
116027		}
116028	}
116029	if err != nil {
116030		return nil, err
116031	}
116032	defer googleapi.CloseBody(res)
116033	if err := googleapi.CheckResponse(res); err != nil {
116034		return nil, err
116035	}
116036	ret := &PublicAdvertisedPrefix{
116037		ServerResponse: googleapi.ServerResponse{
116038			Header:         res.Header,
116039			HTTPStatusCode: res.StatusCode,
116040		},
116041	}
116042	target := &ret
116043	if err := gensupport.DecodeResponse(target, res); err != nil {
116044		return nil, err
116045	}
116046	return ret, nil
116047	// {
116048	//   "description": "Returns the specified PublicAdvertisedPrefix resource. (== suppress_warning http-rest-shadowed ==)",
116049	//   "httpMethod": "GET",
116050	//   "id": "compute.publicAdvertisedPrefixes.get",
116051	//   "parameterOrder": [
116052	//     "project",
116053	//     "publicAdvertisedPrefix"
116054	//   ],
116055	//   "parameters": {
116056	//     "project": {
116057	//       "description": "Project ID for this request.",
116058	//       "location": "path",
116059	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
116060	//       "required": true,
116061	//       "type": "string"
116062	//     },
116063	//     "publicAdvertisedPrefix": {
116064	//       "description": "Name of the PublicAdvertisedPrefix resource to return.",
116065	//       "location": "path",
116066	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
116067	//       "required": true,
116068	//       "type": "string"
116069	//     }
116070	//   },
116071	//   "path": "{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}",
116072	//   "response": {
116073	//     "$ref": "PublicAdvertisedPrefix"
116074	//   },
116075	//   "scopes": [
116076	//     "https://www.googleapis.com/auth/cloud-platform",
116077	//     "https://www.googleapis.com/auth/compute",
116078	//     "https://www.googleapis.com/auth/compute.readonly"
116079	//   ]
116080	// }
116081
116082}
116083
116084// method id "compute.publicAdvertisedPrefixes.insert":
116085
116086type PublicAdvertisedPrefixesInsertCall struct {
116087	s                      *Service
116088	project                string
116089	publicadvertisedprefix *PublicAdvertisedPrefix
116090	urlParams_             gensupport.URLParams
116091	ctx_                   context.Context
116092	header_                http.Header
116093}
116094
116095// Insert: Creates a PublicAdvertisedPrefix in the specified project
116096// using the parameters that are included in the request. (==
116097// suppress_warning http-rest-shadowed ==)
116098func (r *PublicAdvertisedPrefixesService) Insert(project string, publicadvertisedprefix *PublicAdvertisedPrefix) *PublicAdvertisedPrefixesInsertCall {
116099	c := &PublicAdvertisedPrefixesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
116100	c.project = project
116101	c.publicadvertisedprefix = publicadvertisedprefix
116102	return c
116103}
116104
116105// RequestId sets the optional parameter "requestId": An optional
116106// request ID to identify requests. Specify a unique request ID so that
116107// if you must retry your request, the server will know to ignore the
116108// request if it has already been completed.
116109//
116110// For example, consider a situation where you make an initial request
116111// and the request times out. If you make the request again with the
116112// same request ID, the server can check if original operation with the
116113// same request ID was received, and if so, will ignore the second
116114// request. This prevents clients from accidentally creating duplicate
116115// commitments.
116116//
116117// The request ID must be a valid UUID with the exception that zero UUID
116118// is not supported (00000000-0000-0000-0000-000000000000).
116119func (c *PublicAdvertisedPrefixesInsertCall) RequestId(requestId string) *PublicAdvertisedPrefixesInsertCall {
116120	c.urlParams_.Set("requestId", requestId)
116121	return c
116122}
116123
116124// Fields allows partial responses to be retrieved. See
116125// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
116126// for more information.
116127func (c *PublicAdvertisedPrefixesInsertCall) Fields(s ...googleapi.Field) *PublicAdvertisedPrefixesInsertCall {
116128	c.urlParams_.Set("fields", googleapi.CombineFields(s))
116129	return c
116130}
116131
116132// Context sets the context to be used in this call's Do method. Any
116133// pending HTTP request will be aborted if the provided context is
116134// canceled.
116135func (c *PublicAdvertisedPrefixesInsertCall) Context(ctx context.Context) *PublicAdvertisedPrefixesInsertCall {
116136	c.ctx_ = ctx
116137	return c
116138}
116139
116140// Header returns an http.Header that can be modified by the caller to
116141// add HTTP headers to the request.
116142func (c *PublicAdvertisedPrefixesInsertCall) Header() http.Header {
116143	if c.header_ == nil {
116144		c.header_ = make(http.Header)
116145	}
116146	return c.header_
116147}
116148
116149func (c *PublicAdvertisedPrefixesInsertCall) doRequest(alt string) (*http.Response, error) {
116150	reqHeaders := make(http.Header)
116151	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
116152	for k, v := range c.header_ {
116153		reqHeaders[k] = v
116154	}
116155	reqHeaders.Set("User-Agent", c.s.userAgent())
116156	var body io.Reader = nil
116157	body, err := googleapi.WithoutDataWrapper.JSONReader(c.publicadvertisedprefix)
116158	if err != nil {
116159		return nil, err
116160	}
116161	reqHeaders.Set("Content-Type", "application/json")
116162	c.urlParams_.Set("alt", alt)
116163	c.urlParams_.Set("prettyPrint", "false")
116164	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/publicAdvertisedPrefixes")
116165	urls += "?" + c.urlParams_.Encode()
116166	req, err := http.NewRequest("POST", urls, body)
116167	if err != nil {
116168		return nil, err
116169	}
116170	req.Header = reqHeaders
116171	googleapi.Expand(req.URL, map[string]string{
116172		"project": c.project,
116173	})
116174	return gensupport.SendRequest(c.ctx_, c.s.client, req)
116175}
116176
116177// Do executes the "compute.publicAdvertisedPrefixes.insert" call.
116178// Exactly one of *Operation or error will be non-nil. Any non-2xx
116179// status code is an error. Response headers are in either
116180// *Operation.ServerResponse.Header or (if a response was returned at
116181// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
116182// to check whether the returned error was because
116183// http.StatusNotModified was returned.
116184func (c *PublicAdvertisedPrefixesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
116185	gensupport.SetOptions(c.urlParams_, opts...)
116186	res, err := c.doRequest("json")
116187	if res != nil && res.StatusCode == http.StatusNotModified {
116188		if res.Body != nil {
116189			res.Body.Close()
116190		}
116191		return nil, &googleapi.Error{
116192			Code:   res.StatusCode,
116193			Header: res.Header,
116194		}
116195	}
116196	if err != nil {
116197		return nil, err
116198	}
116199	defer googleapi.CloseBody(res)
116200	if err := googleapi.CheckResponse(res); err != nil {
116201		return nil, err
116202	}
116203	ret := &Operation{
116204		ServerResponse: googleapi.ServerResponse{
116205			Header:         res.Header,
116206			HTTPStatusCode: res.StatusCode,
116207		},
116208	}
116209	target := &ret
116210	if err := gensupport.DecodeResponse(target, res); err != nil {
116211		return nil, err
116212	}
116213	return ret, nil
116214	// {
116215	//   "description": "Creates a PublicAdvertisedPrefix in the specified project using the parameters that are included in the request. (== suppress_warning http-rest-shadowed ==)",
116216	//   "httpMethod": "POST",
116217	//   "id": "compute.publicAdvertisedPrefixes.insert",
116218	//   "parameterOrder": [
116219	//     "project"
116220	//   ],
116221	//   "parameters": {
116222	//     "project": {
116223	//       "description": "Project ID for this request.",
116224	//       "location": "path",
116225	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
116226	//       "required": true,
116227	//       "type": "string"
116228	//     },
116229	//     "requestId": {
116230	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
116231	//       "location": "query",
116232	//       "type": "string"
116233	//     }
116234	//   },
116235	//   "path": "{project}/global/publicAdvertisedPrefixes",
116236	//   "request": {
116237	//     "$ref": "PublicAdvertisedPrefix"
116238	//   },
116239	//   "response": {
116240	//     "$ref": "Operation"
116241	//   },
116242	//   "scopes": [
116243	//     "https://www.googleapis.com/auth/cloud-platform",
116244	//     "https://www.googleapis.com/auth/compute"
116245	//   ]
116246	// }
116247
116248}
116249
116250// method id "compute.publicAdvertisedPrefixes.list":
116251
116252type PublicAdvertisedPrefixesListCall struct {
116253	s            *Service
116254	project      string
116255	urlParams_   gensupport.URLParams
116256	ifNoneMatch_ string
116257	ctx_         context.Context
116258	header_      http.Header
116259}
116260
116261// List: Lists the PublicAdvertisedPrefixes for a project. (==
116262// suppress_warning http-rest-shadowed ==)
116263func (r *PublicAdvertisedPrefixesService) List(project string) *PublicAdvertisedPrefixesListCall {
116264	c := &PublicAdvertisedPrefixesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
116265	c.project = project
116266	return c
116267}
116268
116269// Filter sets the optional parameter "filter": A filter expression that
116270// filters resources listed in the response. The expression must specify
116271// the field name, a comparison operator, and the value that you want to
116272// use for filtering. The value must be a string, a number, or a
116273// boolean. The comparison operator must be either =, !=, >, or <.
116274//
116275// For example, if you are filtering Compute Engine instances, you can
116276// exclude instances named example-instance by specifying name !=
116277// example-instance.
116278//
116279// You can also filter nested fields. For example, you could specify
116280// scheduling.automaticRestart = false to include instances only if they
116281// are not scheduled for automatic restarts. You can use filtering on
116282// nested fields to filter based on resource labels.
116283//
116284// To filter on multiple expressions, provide each separate expression
116285// within parentheses. For example, (scheduling.automaticRestart = true)
116286// (cpuPlatform = "Intel Skylake"). By default, each expression is an
116287// AND expression. However, you can include AND and OR expressions
116288// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
116289// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
116290// true).
116291func (c *PublicAdvertisedPrefixesListCall) Filter(filter string) *PublicAdvertisedPrefixesListCall {
116292	c.urlParams_.Set("filter", filter)
116293	return c
116294}
116295
116296// MaxResults sets the optional parameter "maxResults": The maximum
116297// number of results per page that should be returned. If the number of
116298// available results is larger than maxResults, Compute Engine returns a
116299// nextPageToken that can be used to get the next page of results in
116300// subsequent list requests. Acceptable values are 0 to 500, inclusive.
116301// (Default: 500)
116302func (c *PublicAdvertisedPrefixesListCall) MaxResults(maxResults int64) *PublicAdvertisedPrefixesListCall {
116303	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
116304	return c
116305}
116306
116307// OrderBy sets the optional parameter "orderBy": Sorts list results by
116308// a certain order. By default, results are returned in alphanumerical
116309// order based on the resource name.
116310//
116311// You can also sort results in descending order based on the creation
116312// timestamp using orderBy="creationTimestamp desc". This sorts results
116313// based on the creationTimestamp field in reverse chronological order
116314// (newest result first). Use this to sort resources like operations so
116315// that the newest operation is returned first.
116316//
116317// Currently, only sorting by name or creationTimestamp desc is
116318// supported.
116319func (c *PublicAdvertisedPrefixesListCall) OrderBy(orderBy string) *PublicAdvertisedPrefixesListCall {
116320	c.urlParams_.Set("orderBy", orderBy)
116321	return c
116322}
116323
116324// PageToken sets the optional parameter "pageToken": Specifies a page
116325// token to use. Set pageToken to the nextPageToken returned by a
116326// previous list request to get the next page of results.
116327func (c *PublicAdvertisedPrefixesListCall) PageToken(pageToken string) *PublicAdvertisedPrefixesListCall {
116328	c.urlParams_.Set("pageToken", pageToken)
116329	return c
116330}
116331
116332// Fields allows partial responses to be retrieved. See
116333// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
116334// for more information.
116335func (c *PublicAdvertisedPrefixesListCall) Fields(s ...googleapi.Field) *PublicAdvertisedPrefixesListCall {
116336	c.urlParams_.Set("fields", googleapi.CombineFields(s))
116337	return c
116338}
116339
116340// IfNoneMatch sets the optional parameter which makes the operation
116341// fail if the object's ETag matches the given value. This is useful for
116342// getting updates only after the object has changed since the last
116343// request. Use googleapi.IsNotModified to check whether the response
116344// error from Do is the result of In-None-Match.
116345func (c *PublicAdvertisedPrefixesListCall) IfNoneMatch(entityTag string) *PublicAdvertisedPrefixesListCall {
116346	c.ifNoneMatch_ = entityTag
116347	return c
116348}
116349
116350// Context sets the context to be used in this call's Do method. Any
116351// pending HTTP request will be aborted if the provided context is
116352// canceled.
116353func (c *PublicAdvertisedPrefixesListCall) Context(ctx context.Context) *PublicAdvertisedPrefixesListCall {
116354	c.ctx_ = ctx
116355	return c
116356}
116357
116358// Header returns an http.Header that can be modified by the caller to
116359// add HTTP headers to the request.
116360func (c *PublicAdvertisedPrefixesListCall) Header() http.Header {
116361	if c.header_ == nil {
116362		c.header_ = make(http.Header)
116363	}
116364	return c.header_
116365}
116366
116367func (c *PublicAdvertisedPrefixesListCall) doRequest(alt string) (*http.Response, error) {
116368	reqHeaders := make(http.Header)
116369	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
116370	for k, v := range c.header_ {
116371		reqHeaders[k] = v
116372	}
116373	reqHeaders.Set("User-Agent", c.s.userAgent())
116374	if c.ifNoneMatch_ != "" {
116375		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
116376	}
116377	var body io.Reader = nil
116378	c.urlParams_.Set("alt", alt)
116379	c.urlParams_.Set("prettyPrint", "false")
116380	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/publicAdvertisedPrefixes")
116381	urls += "?" + c.urlParams_.Encode()
116382	req, err := http.NewRequest("GET", urls, body)
116383	if err != nil {
116384		return nil, err
116385	}
116386	req.Header = reqHeaders
116387	googleapi.Expand(req.URL, map[string]string{
116388		"project": c.project,
116389	})
116390	return gensupport.SendRequest(c.ctx_, c.s.client, req)
116391}
116392
116393// Do executes the "compute.publicAdvertisedPrefixes.list" call.
116394// Exactly one of *PublicAdvertisedPrefixList or error will be non-nil.
116395// Any non-2xx status code is an error. Response headers are in either
116396// *PublicAdvertisedPrefixList.ServerResponse.Header or (if a response
116397// was returned at all) in error.(*googleapi.Error).Header. Use
116398// googleapi.IsNotModified to check whether the returned error was
116399// because http.StatusNotModified was returned.
116400func (c *PublicAdvertisedPrefixesListCall) Do(opts ...googleapi.CallOption) (*PublicAdvertisedPrefixList, error) {
116401	gensupport.SetOptions(c.urlParams_, opts...)
116402	res, err := c.doRequest("json")
116403	if res != nil && res.StatusCode == http.StatusNotModified {
116404		if res.Body != nil {
116405			res.Body.Close()
116406		}
116407		return nil, &googleapi.Error{
116408			Code:   res.StatusCode,
116409			Header: res.Header,
116410		}
116411	}
116412	if err != nil {
116413		return nil, err
116414	}
116415	defer googleapi.CloseBody(res)
116416	if err := googleapi.CheckResponse(res); err != nil {
116417		return nil, err
116418	}
116419	ret := &PublicAdvertisedPrefixList{
116420		ServerResponse: googleapi.ServerResponse{
116421			Header:         res.Header,
116422			HTTPStatusCode: res.StatusCode,
116423		},
116424	}
116425	target := &ret
116426	if err := gensupport.DecodeResponse(target, res); err != nil {
116427		return nil, err
116428	}
116429	return ret, nil
116430	// {
116431	//   "description": "Lists the PublicAdvertisedPrefixes for a project. (== suppress_warning http-rest-shadowed ==)",
116432	//   "httpMethod": "GET",
116433	//   "id": "compute.publicAdvertisedPrefixes.list",
116434	//   "parameterOrder": [
116435	//     "project"
116436	//   ],
116437	//   "parameters": {
116438	//     "filter": {
116439	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
116440	//       "location": "query",
116441	//       "type": "string"
116442	//     },
116443	//     "maxResults": {
116444	//       "default": "500",
116445	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
116446	//       "format": "uint32",
116447	//       "location": "query",
116448	//       "minimum": "0",
116449	//       "type": "integer"
116450	//     },
116451	//     "orderBy": {
116452	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
116453	//       "location": "query",
116454	//       "type": "string"
116455	//     },
116456	//     "pageToken": {
116457	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
116458	//       "location": "query",
116459	//       "type": "string"
116460	//     },
116461	//     "project": {
116462	//       "description": "Project ID for this request.",
116463	//       "location": "path",
116464	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
116465	//       "required": true,
116466	//       "type": "string"
116467	//     }
116468	//   },
116469	//   "path": "{project}/global/publicAdvertisedPrefixes",
116470	//   "response": {
116471	//     "$ref": "PublicAdvertisedPrefixList"
116472	//   },
116473	//   "scopes": [
116474	//     "https://www.googleapis.com/auth/cloud-platform",
116475	//     "https://www.googleapis.com/auth/compute",
116476	//     "https://www.googleapis.com/auth/compute.readonly"
116477	//   ]
116478	// }
116479
116480}
116481
116482// Pages invokes f for each page of results.
116483// A non-nil error returned from f will halt the iteration.
116484// The provided context supersedes any context provided to the Context method.
116485func (c *PublicAdvertisedPrefixesListCall) Pages(ctx context.Context, f func(*PublicAdvertisedPrefixList) error) error {
116486	c.ctx_ = ctx
116487	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
116488	for {
116489		x, err := c.Do()
116490		if err != nil {
116491			return err
116492		}
116493		if err := f(x); err != nil {
116494			return err
116495		}
116496		if x.NextPageToken == "" {
116497			return nil
116498		}
116499		c.PageToken(x.NextPageToken)
116500	}
116501}
116502
116503// method id "compute.publicAdvertisedPrefixes.patch":
116504
116505type PublicAdvertisedPrefixesPatchCall struct {
116506	s                      *Service
116507	project                string
116508	publicAdvertisedPrefix string
116509	publicadvertisedprefix *PublicAdvertisedPrefix
116510	urlParams_             gensupport.URLParams
116511	ctx_                   context.Context
116512	header_                http.Header
116513}
116514
116515// Patch: Patches the specified Router resource with the data included
116516// in the request. This method supports PATCH semantics and uses JSON
116517// merge patch format and processing rules. (== suppress_warning
116518// http-rest-shadowed ==)
116519func (r *PublicAdvertisedPrefixesService) Patch(project string, publicAdvertisedPrefix string, publicadvertisedprefix *PublicAdvertisedPrefix) *PublicAdvertisedPrefixesPatchCall {
116520	c := &PublicAdvertisedPrefixesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
116521	c.project = project
116522	c.publicAdvertisedPrefix = publicAdvertisedPrefix
116523	c.publicadvertisedprefix = publicadvertisedprefix
116524	return c
116525}
116526
116527// RequestId sets the optional parameter "requestId": An optional
116528// request ID to identify requests. Specify a unique request ID so that
116529// if you must retry your request, the server will know to ignore the
116530// request if it has already been completed.
116531//
116532// For example, consider a situation where you make an initial request
116533// and the request times out. If you make the request again with the
116534// same request ID, the server can check if original operation with the
116535// same request ID was received, and if so, will ignore the second
116536// request. This prevents clients from accidentally creating duplicate
116537// commitments.
116538//
116539// The request ID must be a valid UUID with the exception that zero UUID
116540// is not supported (00000000-0000-0000-0000-000000000000).
116541func (c *PublicAdvertisedPrefixesPatchCall) RequestId(requestId string) *PublicAdvertisedPrefixesPatchCall {
116542	c.urlParams_.Set("requestId", requestId)
116543	return c
116544}
116545
116546// Fields allows partial responses to be retrieved. See
116547// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
116548// for more information.
116549func (c *PublicAdvertisedPrefixesPatchCall) Fields(s ...googleapi.Field) *PublicAdvertisedPrefixesPatchCall {
116550	c.urlParams_.Set("fields", googleapi.CombineFields(s))
116551	return c
116552}
116553
116554// Context sets the context to be used in this call's Do method. Any
116555// pending HTTP request will be aborted if the provided context is
116556// canceled.
116557func (c *PublicAdvertisedPrefixesPatchCall) Context(ctx context.Context) *PublicAdvertisedPrefixesPatchCall {
116558	c.ctx_ = ctx
116559	return c
116560}
116561
116562// Header returns an http.Header that can be modified by the caller to
116563// add HTTP headers to the request.
116564func (c *PublicAdvertisedPrefixesPatchCall) Header() http.Header {
116565	if c.header_ == nil {
116566		c.header_ = make(http.Header)
116567	}
116568	return c.header_
116569}
116570
116571func (c *PublicAdvertisedPrefixesPatchCall) doRequest(alt string) (*http.Response, error) {
116572	reqHeaders := make(http.Header)
116573	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
116574	for k, v := range c.header_ {
116575		reqHeaders[k] = v
116576	}
116577	reqHeaders.Set("User-Agent", c.s.userAgent())
116578	var body io.Reader = nil
116579	body, err := googleapi.WithoutDataWrapper.JSONReader(c.publicadvertisedprefix)
116580	if err != nil {
116581		return nil, err
116582	}
116583	reqHeaders.Set("Content-Type", "application/json")
116584	c.urlParams_.Set("alt", alt)
116585	c.urlParams_.Set("prettyPrint", "false")
116586	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}")
116587	urls += "?" + c.urlParams_.Encode()
116588	req, err := http.NewRequest("PATCH", urls, body)
116589	if err != nil {
116590		return nil, err
116591	}
116592	req.Header = reqHeaders
116593	googleapi.Expand(req.URL, map[string]string{
116594		"project":                c.project,
116595		"publicAdvertisedPrefix": c.publicAdvertisedPrefix,
116596	})
116597	return gensupport.SendRequest(c.ctx_, c.s.client, req)
116598}
116599
116600// Do executes the "compute.publicAdvertisedPrefixes.patch" call.
116601// Exactly one of *Operation or error will be non-nil. Any non-2xx
116602// status code is an error. Response headers are in either
116603// *Operation.ServerResponse.Header or (if a response was returned at
116604// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
116605// to check whether the returned error was because
116606// http.StatusNotModified was returned.
116607func (c *PublicAdvertisedPrefixesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
116608	gensupport.SetOptions(c.urlParams_, opts...)
116609	res, err := c.doRequest("json")
116610	if res != nil && res.StatusCode == http.StatusNotModified {
116611		if res.Body != nil {
116612			res.Body.Close()
116613		}
116614		return nil, &googleapi.Error{
116615			Code:   res.StatusCode,
116616			Header: res.Header,
116617		}
116618	}
116619	if err != nil {
116620		return nil, err
116621	}
116622	defer googleapi.CloseBody(res)
116623	if err := googleapi.CheckResponse(res); err != nil {
116624		return nil, err
116625	}
116626	ret := &Operation{
116627		ServerResponse: googleapi.ServerResponse{
116628			Header:         res.Header,
116629			HTTPStatusCode: res.StatusCode,
116630		},
116631	}
116632	target := &ret
116633	if err := gensupport.DecodeResponse(target, res); err != nil {
116634		return nil, err
116635	}
116636	return ret, nil
116637	// {
116638	//   "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. (== suppress_warning http-rest-shadowed ==)",
116639	//   "httpMethod": "PATCH",
116640	//   "id": "compute.publicAdvertisedPrefixes.patch",
116641	//   "parameterOrder": [
116642	//     "project",
116643	//     "publicAdvertisedPrefix"
116644	//   ],
116645	//   "parameters": {
116646	//     "project": {
116647	//       "description": "Project ID for this request.",
116648	//       "location": "path",
116649	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
116650	//       "required": true,
116651	//       "type": "string"
116652	//     },
116653	//     "publicAdvertisedPrefix": {
116654	//       "description": "Name of the PublicAdvertisedPrefix resource to patch.",
116655	//       "location": "path",
116656	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
116657	//       "required": true,
116658	//       "type": "string"
116659	//     },
116660	//     "requestId": {
116661	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
116662	//       "location": "query",
116663	//       "type": "string"
116664	//     }
116665	//   },
116666	//   "path": "{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}",
116667	//   "request": {
116668	//     "$ref": "PublicAdvertisedPrefix"
116669	//   },
116670	//   "response": {
116671	//     "$ref": "Operation"
116672	//   },
116673	//   "scopes": [
116674	//     "https://www.googleapis.com/auth/cloud-platform",
116675	//     "https://www.googleapis.com/auth/compute"
116676	//   ]
116677	// }
116678
116679}
116680
116681// method id "compute.publicDelegatedPrefixes.aggregatedList":
116682
116683type PublicDelegatedPrefixesAggregatedListCall struct {
116684	s            *Service
116685	project      string
116686	urlParams_   gensupport.URLParams
116687	ifNoneMatch_ string
116688	ctx_         context.Context
116689	header_      http.Header
116690}
116691
116692// AggregatedList: Lists all PublicDelegatedPrefix resources owned by
116693// the specific project across all scopes. (== suppress_warning
116694// http-rest-shadowed ==)
116695func (r *PublicDelegatedPrefixesService) AggregatedList(project string) *PublicDelegatedPrefixesAggregatedListCall {
116696	c := &PublicDelegatedPrefixesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
116697	c.project = project
116698	return c
116699}
116700
116701// Filter sets the optional parameter "filter": A filter expression that
116702// filters resources listed in the response. The expression must specify
116703// the field name, a comparison operator, and the value that you want to
116704// use for filtering. The value must be a string, a number, or a
116705// boolean. The comparison operator must be either =, !=, >, or <.
116706//
116707// For example, if you are filtering Compute Engine instances, you can
116708// exclude instances named example-instance by specifying name !=
116709// example-instance.
116710//
116711// You can also filter nested fields. For example, you could specify
116712// scheduling.automaticRestart = false to include instances only if they
116713// are not scheduled for automatic restarts. You can use filtering on
116714// nested fields to filter based on resource labels.
116715//
116716// To filter on multiple expressions, provide each separate expression
116717// within parentheses. For example, (scheduling.automaticRestart = true)
116718// (cpuPlatform = "Intel Skylake"). By default, each expression is an
116719// AND expression. However, you can include AND and OR expressions
116720// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
116721// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
116722// true).
116723func (c *PublicDelegatedPrefixesAggregatedListCall) Filter(filter string) *PublicDelegatedPrefixesAggregatedListCall {
116724	c.urlParams_.Set("filter", filter)
116725	return c
116726}
116727
116728// MaxResults sets the optional parameter "maxResults": The maximum
116729// number of results per page that should be returned. If the number of
116730// available results is larger than maxResults, Compute Engine returns a
116731// nextPageToken that can be used to get the next page of results in
116732// subsequent list requests. Acceptable values are 0 to 500, inclusive.
116733// (Default: 500)
116734func (c *PublicDelegatedPrefixesAggregatedListCall) MaxResults(maxResults int64) *PublicDelegatedPrefixesAggregatedListCall {
116735	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
116736	return c
116737}
116738
116739// OrderBy sets the optional parameter "orderBy": Sorts list results by
116740// a certain order. By default, results are returned in alphanumerical
116741// order based on the resource name.
116742//
116743// You can also sort results in descending order based on the creation
116744// timestamp using orderBy="creationTimestamp desc". This sorts results
116745// based on the creationTimestamp field in reverse chronological order
116746// (newest result first). Use this to sort resources like operations so
116747// that the newest operation is returned first.
116748//
116749// Currently, only sorting by name or creationTimestamp desc is
116750// supported.
116751func (c *PublicDelegatedPrefixesAggregatedListCall) OrderBy(orderBy string) *PublicDelegatedPrefixesAggregatedListCall {
116752	c.urlParams_.Set("orderBy", orderBy)
116753	return c
116754}
116755
116756// PageToken sets the optional parameter "pageToken": Specifies a page
116757// token to use. Set pageToken to the nextPageToken returned by a
116758// previous list request to get the next page of results.
116759func (c *PublicDelegatedPrefixesAggregatedListCall) PageToken(pageToken string) *PublicDelegatedPrefixesAggregatedListCall {
116760	c.urlParams_.Set("pageToken", pageToken)
116761	return c
116762}
116763
116764// Fields allows partial responses to be retrieved. See
116765// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
116766// for more information.
116767func (c *PublicDelegatedPrefixesAggregatedListCall) Fields(s ...googleapi.Field) *PublicDelegatedPrefixesAggregatedListCall {
116768	c.urlParams_.Set("fields", googleapi.CombineFields(s))
116769	return c
116770}
116771
116772// IfNoneMatch sets the optional parameter which makes the operation
116773// fail if the object's ETag matches the given value. This is useful for
116774// getting updates only after the object has changed since the last
116775// request. Use googleapi.IsNotModified to check whether the response
116776// error from Do is the result of In-None-Match.
116777func (c *PublicDelegatedPrefixesAggregatedListCall) IfNoneMatch(entityTag string) *PublicDelegatedPrefixesAggregatedListCall {
116778	c.ifNoneMatch_ = entityTag
116779	return c
116780}
116781
116782// Context sets the context to be used in this call's Do method. Any
116783// pending HTTP request will be aborted if the provided context is
116784// canceled.
116785func (c *PublicDelegatedPrefixesAggregatedListCall) Context(ctx context.Context) *PublicDelegatedPrefixesAggregatedListCall {
116786	c.ctx_ = ctx
116787	return c
116788}
116789
116790// Header returns an http.Header that can be modified by the caller to
116791// add HTTP headers to the request.
116792func (c *PublicDelegatedPrefixesAggregatedListCall) Header() http.Header {
116793	if c.header_ == nil {
116794		c.header_ = make(http.Header)
116795	}
116796	return c.header_
116797}
116798
116799func (c *PublicDelegatedPrefixesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
116800	reqHeaders := make(http.Header)
116801	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
116802	for k, v := range c.header_ {
116803		reqHeaders[k] = v
116804	}
116805	reqHeaders.Set("User-Agent", c.s.userAgent())
116806	if c.ifNoneMatch_ != "" {
116807		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
116808	}
116809	var body io.Reader = nil
116810	c.urlParams_.Set("alt", alt)
116811	c.urlParams_.Set("prettyPrint", "false")
116812	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/publicDelegatedPrefixes")
116813	urls += "?" + c.urlParams_.Encode()
116814	req, err := http.NewRequest("GET", urls, body)
116815	if err != nil {
116816		return nil, err
116817	}
116818	req.Header = reqHeaders
116819	googleapi.Expand(req.URL, map[string]string{
116820		"project": c.project,
116821	})
116822	return gensupport.SendRequest(c.ctx_, c.s.client, req)
116823}
116824
116825// Do executes the "compute.publicDelegatedPrefixes.aggregatedList" call.
116826// Exactly one of *PublicDelegatedPrefixAggregatedList or error will be
116827// non-nil. Any non-2xx status code is an error. Response headers are in
116828// either *PublicDelegatedPrefixAggregatedList.ServerResponse.Header or
116829// (if a response was returned at all) in
116830// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
116831// whether the returned error was because http.StatusNotModified was
116832// returned.
116833func (c *PublicDelegatedPrefixesAggregatedListCall) Do(opts ...googleapi.CallOption) (*PublicDelegatedPrefixAggregatedList, error) {
116834	gensupport.SetOptions(c.urlParams_, opts...)
116835	res, err := c.doRequest("json")
116836	if res != nil && res.StatusCode == http.StatusNotModified {
116837		if res.Body != nil {
116838			res.Body.Close()
116839		}
116840		return nil, &googleapi.Error{
116841			Code:   res.StatusCode,
116842			Header: res.Header,
116843		}
116844	}
116845	if err != nil {
116846		return nil, err
116847	}
116848	defer googleapi.CloseBody(res)
116849	if err := googleapi.CheckResponse(res); err != nil {
116850		return nil, err
116851	}
116852	ret := &PublicDelegatedPrefixAggregatedList{
116853		ServerResponse: googleapi.ServerResponse{
116854			Header:         res.Header,
116855			HTTPStatusCode: res.StatusCode,
116856		},
116857	}
116858	target := &ret
116859	if err := gensupport.DecodeResponse(target, res); err != nil {
116860		return nil, err
116861	}
116862	return ret, nil
116863	// {
116864	//   "description": "Lists all PublicDelegatedPrefix resources owned by the specific project across all scopes. (== suppress_warning http-rest-shadowed ==)",
116865	//   "httpMethod": "GET",
116866	//   "id": "compute.publicDelegatedPrefixes.aggregatedList",
116867	//   "parameterOrder": [
116868	//     "project"
116869	//   ],
116870	//   "parameters": {
116871	//     "filter": {
116872	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
116873	//       "location": "query",
116874	//       "type": "string"
116875	//     },
116876	//     "maxResults": {
116877	//       "default": "500",
116878	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
116879	//       "format": "uint32",
116880	//       "location": "query",
116881	//       "minimum": "0",
116882	//       "type": "integer"
116883	//     },
116884	//     "orderBy": {
116885	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
116886	//       "location": "query",
116887	//       "type": "string"
116888	//     },
116889	//     "pageToken": {
116890	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
116891	//       "location": "query",
116892	//       "type": "string"
116893	//     },
116894	//     "project": {
116895	//       "description": "Name of the project scoping this request.",
116896	//       "location": "path",
116897	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
116898	//       "required": true,
116899	//       "type": "string"
116900	//     }
116901	//   },
116902	//   "path": "{project}/aggregated/publicDelegatedPrefixes",
116903	//   "response": {
116904	//     "$ref": "PublicDelegatedPrefixAggregatedList"
116905	//   },
116906	//   "scopes": [
116907	//     "https://www.googleapis.com/auth/cloud-platform",
116908	//     "https://www.googleapis.com/auth/compute",
116909	//     "https://www.googleapis.com/auth/compute.readonly"
116910	//   ]
116911	// }
116912
116913}
116914
116915// Pages invokes f for each page of results.
116916// A non-nil error returned from f will halt the iteration.
116917// The provided context supersedes any context provided to the Context method.
116918func (c *PublicDelegatedPrefixesAggregatedListCall) Pages(ctx context.Context, f func(*PublicDelegatedPrefixAggregatedList) error) error {
116919	c.ctx_ = ctx
116920	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
116921	for {
116922		x, err := c.Do()
116923		if err != nil {
116924			return err
116925		}
116926		if err := f(x); err != nil {
116927			return err
116928		}
116929		if x.NextPageToken == "" {
116930			return nil
116931		}
116932		c.PageToken(x.NextPageToken)
116933	}
116934}
116935
116936// method id "compute.publicDelegatedPrefixes.delete":
116937
116938type PublicDelegatedPrefixesDeleteCall struct {
116939	s                     *Service
116940	project               string
116941	region                string
116942	publicDelegatedPrefix string
116943	urlParams_            gensupport.URLParams
116944	ctx_                  context.Context
116945	header_               http.Header
116946}
116947
116948// Delete: Deletes the specified PublicDelegatedPrefix in the given
116949// region. (== suppress_warning http-rest-shadowed ==)
116950func (r *PublicDelegatedPrefixesService) Delete(project string, region string, publicDelegatedPrefix string) *PublicDelegatedPrefixesDeleteCall {
116951	c := &PublicDelegatedPrefixesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
116952	c.project = project
116953	c.region = region
116954	c.publicDelegatedPrefix = publicDelegatedPrefix
116955	return c
116956}
116957
116958// RequestId sets the optional parameter "requestId": An optional
116959// request ID to identify requests. Specify a unique request ID so that
116960// if you must retry your request, the server will know to ignore the
116961// request if it has already been completed.
116962//
116963// For example, consider a situation where you make an initial request
116964// and the request times out. If you make the request again with the
116965// same request ID, the server can check if original operation with the
116966// same request ID was received, and if so, will ignore the second
116967// request. This prevents clients from accidentally creating duplicate
116968// commitments.
116969//
116970// The request ID must be a valid UUID with the exception that zero UUID
116971// is not supported (00000000-0000-0000-0000-000000000000).
116972func (c *PublicDelegatedPrefixesDeleteCall) RequestId(requestId string) *PublicDelegatedPrefixesDeleteCall {
116973	c.urlParams_.Set("requestId", requestId)
116974	return c
116975}
116976
116977// Fields allows partial responses to be retrieved. See
116978// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
116979// for more information.
116980func (c *PublicDelegatedPrefixesDeleteCall) Fields(s ...googleapi.Field) *PublicDelegatedPrefixesDeleteCall {
116981	c.urlParams_.Set("fields", googleapi.CombineFields(s))
116982	return c
116983}
116984
116985// Context sets the context to be used in this call's Do method. Any
116986// pending HTTP request will be aborted if the provided context is
116987// canceled.
116988func (c *PublicDelegatedPrefixesDeleteCall) Context(ctx context.Context) *PublicDelegatedPrefixesDeleteCall {
116989	c.ctx_ = ctx
116990	return c
116991}
116992
116993// Header returns an http.Header that can be modified by the caller to
116994// add HTTP headers to the request.
116995func (c *PublicDelegatedPrefixesDeleteCall) Header() http.Header {
116996	if c.header_ == nil {
116997		c.header_ = make(http.Header)
116998	}
116999	return c.header_
117000}
117001
117002func (c *PublicDelegatedPrefixesDeleteCall) doRequest(alt string) (*http.Response, error) {
117003	reqHeaders := make(http.Header)
117004	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
117005	for k, v := range c.header_ {
117006		reqHeaders[k] = v
117007	}
117008	reqHeaders.Set("User-Agent", c.s.userAgent())
117009	var body io.Reader = nil
117010	c.urlParams_.Set("alt", alt)
117011	c.urlParams_.Set("prettyPrint", "false")
117012	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}")
117013	urls += "?" + c.urlParams_.Encode()
117014	req, err := http.NewRequest("DELETE", urls, body)
117015	if err != nil {
117016		return nil, err
117017	}
117018	req.Header = reqHeaders
117019	googleapi.Expand(req.URL, map[string]string{
117020		"project":               c.project,
117021		"region":                c.region,
117022		"publicDelegatedPrefix": c.publicDelegatedPrefix,
117023	})
117024	return gensupport.SendRequest(c.ctx_, c.s.client, req)
117025}
117026
117027// Do executes the "compute.publicDelegatedPrefixes.delete" call.
117028// Exactly one of *Operation or error will be non-nil. Any non-2xx
117029// status code is an error. Response headers are in either
117030// *Operation.ServerResponse.Header or (if a response was returned at
117031// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
117032// to check whether the returned error was because
117033// http.StatusNotModified was returned.
117034func (c *PublicDelegatedPrefixesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
117035	gensupport.SetOptions(c.urlParams_, opts...)
117036	res, err := c.doRequest("json")
117037	if res != nil && res.StatusCode == http.StatusNotModified {
117038		if res.Body != nil {
117039			res.Body.Close()
117040		}
117041		return nil, &googleapi.Error{
117042			Code:   res.StatusCode,
117043			Header: res.Header,
117044		}
117045	}
117046	if err != nil {
117047		return nil, err
117048	}
117049	defer googleapi.CloseBody(res)
117050	if err := googleapi.CheckResponse(res); err != nil {
117051		return nil, err
117052	}
117053	ret := &Operation{
117054		ServerResponse: googleapi.ServerResponse{
117055			Header:         res.Header,
117056			HTTPStatusCode: res.StatusCode,
117057		},
117058	}
117059	target := &ret
117060	if err := gensupport.DecodeResponse(target, res); err != nil {
117061		return nil, err
117062	}
117063	return ret, nil
117064	// {
117065	//   "description": "Deletes the specified PublicDelegatedPrefix in the given region. (== suppress_warning http-rest-shadowed ==)",
117066	//   "httpMethod": "DELETE",
117067	//   "id": "compute.publicDelegatedPrefixes.delete",
117068	//   "parameterOrder": [
117069	//     "project",
117070	//     "region",
117071	//     "publicDelegatedPrefix"
117072	//   ],
117073	//   "parameters": {
117074	//     "project": {
117075	//       "description": "Project ID for this request.",
117076	//       "location": "path",
117077	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
117078	//       "required": true,
117079	//       "type": "string"
117080	//     },
117081	//     "publicDelegatedPrefix": {
117082	//       "description": "Name of the PublicDelegatedPrefix resource to delete.",
117083	//       "location": "path",
117084	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
117085	//       "required": true,
117086	//       "type": "string"
117087	//     },
117088	//     "region": {
117089	//       "description": "Name of the region of this request.",
117090	//       "location": "path",
117091	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
117092	//       "required": true,
117093	//       "type": "string"
117094	//     },
117095	//     "requestId": {
117096	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
117097	//       "location": "query",
117098	//       "type": "string"
117099	//     }
117100	//   },
117101	//   "path": "{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}",
117102	//   "response": {
117103	//     "$ref": "Operation"
117104	//   },
117105	//   "scopes": [
117106	//     "https://www.googleapis.com/auth/cloud-platform",
117107	//     "https://www.googleapis.com/auth/compute"
117108	//   ]
117109	// }
117110
117111}
117112
117113// method id "compute.publicDelegatedPrefixes.get":
117114
117115type PublicDelegatedPrefixesGetCall struct {
117116	s                     *Service
117117	project               string
117118	region                string
117119	publicDelegatedPrefix string
117120	urlParams_            gensupport.URLParams
117121	ifNoneMatch_          string
117122	ctx_                  context.Context
117123	header_               http.Header
117124}
117125
117126// Get: Returns the specified PublicDelegatedPrefix resource in the
117127// given region. (== suppress_warning http-rest-shadowed ==)
117128func (r *PublicDelegatedPrefixesService) Get(project string, region string, publicDelegatedPrefix string) *PublicDelegatedPrefixesGetCall {
117129	c := &PublicDelegatedPrefixesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
117130	c.project = project
117131	c.region = region
117132	c.publicDelegatedPrefix = publicDelegatedPrefix
117133	return c
117134}
117135
117136// Fields allows partial responses to be retrieved. See
117137// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
117138// for more information.
117139func (c *PublicDelegatedPrefixesGetCall) Fields(s ...googleapi.Field) *PublicDelegatedPrefixesGetCall {
117140	c.urlParams_.Set("fields", googleapi.CombineFields(s))
117141	return c
117142}
117143
117144// IfNoneMatch sets the optional parameter which makes the operation
117145// fail if the object's ETag matches the given value. This is useful for
117146// getting updates only after the object has changed since the last
117147// request. Use googleapi.IsNotModified to check whether the response
117148// error from Do is the result of In-None-Match.
117149func (c *PublicDelegatedPrefixesGetCall) IfNoneMatch(entityTag string) *PublicDelegatedPrefixesGetCall {
117150	c.ifNoneMatch_ = entityTag
117151	return c
117152}
117153
117154// Context sets the context to be used in this call's Do method. Any
117155// pending HTTP request will be aborted if the provided context is
117156// canceled.
117157func (c *PublicDelegatedPrefixesGetCall) Context(ctx context.Context) *PublicDelegatedPrefixesGetCall {
117158	c.ctx_ = ctx
117159	return c
117160}
117161
117162// Header returns an http.Header that can be modified by the caller to
117163// add HTTP headers to the request.
117164func (c *PublicDelegatedPrefixesGetCall) Header() http.Header {
117165	if c.header_ == nil {
117166		c.header_ = make(http.Header)
117167	}
117168	return c.header_
117169}
117170
117171func (c *PublicDelegatedPrefixesGetCall) doRequest(alt string) (*http.Response, error) {
117172	reqHeaders := make(http.Header)
117173	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
117174	for k, v := range c.header_ {
117175		reqHeaders[k] = v
117176	}
117177	reqHeaders.Set("User-Agent", c.s.userAgent())
117178	if c.ifNoneMatch_ != "" {
117179		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
117180	}
117181	var body io.Reader = nil
117182	c.urlParams_.Set("alt", alt)
117183	c.urlParams_.Set("prettyPrint", "false")
117184	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}")
117185	urls += "?" + c.urlParams_.Encode()
117186	req, err := http.NewRequest("GET", urls, body)
117187	if err != nil {
117188		return nil, err
117189	}
117190	req.Header = reqHeaders
117191	googleapi.Expand(req.URL, map[string]string{
117192		"project":               c.project,
117193		"region":                c.region,
117194		"publicDelegatedPrefix": c.publicDelegatedPrefix,
117195	})
117196	return gensupport.SendRequest(c.ctx_, c.s.client, req)
117197}
117198
117199// Do executes the "compute.publicDelegatedPrefixes.get" call.
117200// Exactly one of *PublicDelegatedPrefix or error will be non-nil. Any
117201// non-2xx status code is an error. Response headers are in either
117202// *PublicDelegatedPrefix.ServerResponse.Header or (if a response was
117203// returned at all) in error.(*googleapi.Error).Header. Use
117204// googleapi.IsNotModified to check whether the returned error was
117205// because http.StatusNotModified was returned.
117206func (c *PublicDelegatedPrefixesGetCall) Do(opts ...googleapi.CallOption) (*PublicDelegatedPrefix, error) {
117207	gensupport.SetOptions(c.urlParams_, opts...)
117208	res, err := c.doRequest("json")
117209	if res != nil && res.StatusCode == http.StatusNotModified {
117210		if res.Body != nil {
117211			res.Body.Close()
117212		}
117213		return nil, &googleapi.Error{
117214			Code:   res.StatusCode,
117215			Header: res.Header,
117216		}
117217	}
117218	if err != nil {
117219		return nil, err
117220	}
117221	defer googleapi.CloseBody(res)
117222	if err := googleapi.CheckResponse(res); err != nil {
117223		return nil, err
117224	}
117225	ret := &PublicDelegatedPrefix{
117226		ServerResponse: googleapi.ServerResponse{
117227			Header:         res.Header,
117228			HTTPStatusCode: res.StatusCode,
117229		},
117230	}
117231	target := &ret
117232	if err := gensupport.DecodeResponse(target, res); err != nil {
117233		return nil, err
117234	}
117235	return ret, nil
117236	// {
117237	//   "description": "Returns the specified PublicDelegatedPrefix resource in the given region. (== suppress_warning http-rest-shadowed ==)",
117238	//   "httpMethod": "GET",
117239	//   "id": "compute.publicDelegatedPrefixes.get",
117240	//   "parameterOrder": [
117241	//     "project",
117242	//     "region",
117243	//     "publicDelegatedPrefix"
117244	//   ],
117245	//   "parameters": {
117246	//     "project": {
117247	//       "description": "Project ID for this request.",
117248	//       "location": "path",
117249	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
117250	//       "required": true,
117251	//       "type": "string"
117252	//     },
117253	//     "publicDelegatedPrefix": {
117254	//       "description": "Name of the PublicDelegatedPrefix resource to return.",
117255	//       "location": "path",
117256	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
117257	//       "required": true,
117258	//       "type": "string"
117259	//     },
117260	//     "region": {
117261	//       "description": "Name of the region of this request.",
117262	//       "location": "path",
117263	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
117264	//       "required": true,
117265	//       "type": "string"
117266	//     }
117267	//   },
117268	//   "path": "{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}",
117269	//   "response": {
117270	//     "$ref": "PublicDelegatedPrefix"
117271	//   },
117272	//   "scopes": [
117273	//     "https://www.googleapis.com/auth/cloud-platform",
117274	//     "https://www.googleapis.com/auth/compute",
117275	//     "https://www.googleapis.com/auth/compute.readonly"
117276	//   ]
117277	// }
117278
117279}
117280
117281// method id "compute.publicDelegatedPrefixes.insert":
117282
117283type PublicDelegatedPrefixesInsertCall struct {
117284	s                     *Service
117285	project               string
117286	region                string
117287	publicdelegatedprefix *PublicDelegatedPrefix
117288	urlParams_            gensupport.URLParams
117289	ctx_                  context.Context
117290	header_               http.Header
117291}
117292
117293// Insert: Creates a PublicDelegatedPrefix in the specified project in
117294// the given region using the parameters that are included in the
117295// request. (== suppress_warning http-rest-shadowed ==)
117296func (r *PublicDelegatedPrefixesService) Insert(project string, region string, publicdelegatedprefix *PublicDelegatedPrefix) *PublicDelegatedPrefixesInsertCall {
117297	c := &PublicDelegatedPrefixesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
117298	c.project = project
117299	c.region = region
117300	c.publicdelegatedprefix = publicdelegatedprefix
117301	return c
117302}
117303
117304// RequestId sets the optional parameter "requestId": An optional
117305// request ID to identify requests. Specify a unique request ID so that
117306// if you must retry your request, the server will know to ignore the
117307// request if it has already been completed.
117308//
117309// For example, consider a situation where you make an initial request
117310// and the request times out. If you make the request again with the
117311// same request ID, the server can check if original operation with the
117312// same request ID was received, and if so, will ignore the second
117313// request. This prevents clients from accidentally creating duplicate
117314// commitments.
117315//
117316// The request ID must be a valid UUID with the exception that zero UUID
117317// is not supported (00000000-0000-0000-0000-000000000000).
117318func (c *PublicDelegatedPrefixesInsertCall) RequestId(requestId string) *PublicDelegatedPrefixesInsertCall {
117319	c.urlParams_.Set("requestId", requestId)
117320	return c
117321}
117322
117323// Fields allows partial responses to be retrieved. See
117324// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
117325// for more information.
117326func (c *PublicDelegatedPrefixesInsertCall) Fields(s ...googleapi.Field) *PublicDelegatedPrefixesInsertCall {
117327	c.urlParams_.Set("fields", googleapi.CombineFields(s))
117328	return c
117329}
117330
117331// Context sets the context to be used in this call's Do method. Any
117332// pending HTTP request will be aborted if the provided context is
117333// canceled.
117334func (c *PublicDelegatedPrefixesInsertCall) Context(ctx context.Context) *PublicDelegatedPrefixesInsertCall {
117335	c.ctx_ = ctx
117336	return c
117337}
117338
117339// Header returns an http.Header that can be modified by the caller to
117340// add HTTP headers to the request.
117341func (c *PublicDelegatedPrefixesInsertCall) Header() http.Header {
117342	if c.header_ == nil {
117343		c.header_ = make(http.Header)
117344	}
117345	return c.header_
117346}
117347
117348func (c *PublicDelegatedPrefixesInsertCall) doRequest(alt string) (*http.Response, error) {
117349	reqHeaders := make(http.Header)
117350	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
117351	for k, v := range c.header_ {
117352		reqHeaders[k] = v
117353	}
117354	reqHeaders.Set("User-Agent", c.s.userAgent())
117355	var body io.Reader = nil
117356	body, err := googleapi.WithoutDataWrapper.JSONReader(c.publicdelegatedprefix)
117357	if err != nil {
117358		return nil, err
117359	}
117360	reqHeaders.Set("Content-Type", "application/json")
117361	c.urlParams_.Set("alt", alt)
117362	c.urlParams_.Set("prettyPrint", "false")
117363	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/publicDelegatedPrefixes")
117364	urls += "?" + c.urlParams_.Encode()
117365	req, err := http.NewRequest("POST", urls, body)
117366	if err != nil {
117367		return nil, err
117368	}
117369	req.Header = reqHeaders
117370	googleapi.Expand(req.URL, map[string]string{
117371		"project": c.project,
117372		"region":  c.region,
117373	})
117374	return gensupport.SendRequest(c.ctx_, c.s.client, req)
117375}
117376
117377// Do executes the "compute.publicDelegatedPrefixes.insert" call.
117378// Exactly one of *Operation or error will be non-nil. Any non-2xx
117379// status code is an error. Response headers are in either
117380// *Operation.ServerResponse.Header or (if a response was returned at
117381// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
117382// to check whether the returned error was because
117383// http.StatusNotModified was returned.
117384func (c *PublicDelegatedPrefixesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
117385	gensupport.SetOptions(c.urlParams_, opts...)
117386	res, err := c.doRequest("json")
117387	if res != nil && res.StatusCode == http.StatusNotModified {
117388		if res.Body != nil {
117389			res.Body.Close()
117390		}
117391		return nil, &googleapi.Error{
117392			Code:   res.StatusCode,
117393			Header: res.Header,
117394		}
117395	}
117396	if err != nil {
117397		return nil, err
117398	}
117399	defer googleapi.CloseBody(res)
117400	if err := googleapi.CheckResponse(res); err != nil {
117401		return nil, err
117402	}
117403	ret := &Operation{
117404		ServerResponse: googleapi.ServerResponse{
117405			Header:         res.Header,
117406			HTTPStatusCode: res.StatusCode,
117407		},
117408	}
117409	target := &ret
117410	if err := gensupport.DecodeResponse(target, res); err != nil {
117411		return nil, err
117412	}
117413	return ret, nil
117414	// {
117415	//   "description": "Creates a PublicDelegatedPrefix in the specified project in the given region using the parameters that are included in the request. (== suppress_warning http-rest-shadowed ==)",
117416	//   "httpMethod": "POST",
117417	//   "id": "compute.publicDelegatedPrefixes.insert",
117418	//   "parameterOrder": [
117419	//     "project",
117420	//     "region"
117421	//   ],
117422	//   "parameters": {
117423	//     "project": {
117424	//       "description": "Project ID for this request.",
117425	//       "location": "path",
117426	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
117427	//       "required": true,
117428	//       "type": "string"
117429	//     },
117430	//     "region": {
117431	//       "description": "Name of the region of this request.",
117432	//       "location": "path",
117433	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
117434	//       "required": true,
117435	//       "type": "string"
117436	//     },
117437	//     "requestId": {
117438	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
117439	//       "location": "query",
117440	//       "type": "string"
117441	//     }
117442	//   },
117443	//   "path": "{project}/regions/{region}/publicDelegatedPrefixes",
117444	//   "request": {
117445	//     "$ref": "PublicDelegatedPrefix"
117446	//   },
117447	//   "response": {
117448	//     "$ref": "Operation"
117449	//   },
117450	//   "scopes": [
117451	//     "https://www.googleapis.com/auth/cloud-platform",
117452	//     "https://www.googleapis.com/auth/compute"
117453	//   ]
117454	// }
117455
117456}
117457
117458// method id "compute.publicDelegatedPrefixes.list":
117459
117460type PublicDelegatedPrefixesListCall struct {
117461	s            *Service
117462	project      string
117463	region       string
117464	urlParams_   gensupport.URLParams
117465	ifNoneMatch_ string
117466	ctx_         context.Context
117467	header_      http.Header
117468}
117469
117470// List: Lists the PublicDelegatedPrefixes for a project in the given
117471// region. (== suppress_warning http-rest-shadowed ==)
117472func (r *PublicDelegatedPrefixesService) List(project string, region string) *PublicDelegatedPrefixesListCall {
117473	c := &PublicDelegatedPrefixesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
117474	c.project = project
117475	c.region = region
117476	return c
117477}
117478
117479// Filter sets the optional parameter "filter": A filter expression that
117480// filters resources listed in the response. The expression must specify
117481// the field name, a comparison operator, and the value that you want to
117482// use for filtering. The value must be a string, a number, or a
117483// boolean. The comparison operator must be either =, !=, >, or <.
117484//
117485// For example, if you are filtering Compute Engine instances, you can
117486// exclude instances named example-instance by specifying name !=
117487// example-instance.
117488//
117489// You can also filter nested fields. For example, you could specify
117490// scheduling.automaticRestart = false to include instances only if they
117491// are not scheduled for automatic restarts. You can use filtering on
117492// nested fields to filter based on resource labels.
117493//
117494// To filter on multiple expressions, provide each separate expression
117495// within parentheses. For example, (scheduling.automaticRestart = true)
117496// (cpuPlatform = "Intel Skylake"). By default, each expression is an
117497// AND expression. However, you can include AND and OR expressions
117498// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
117499// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
117500// true).
117501func (c *PublicDelegatedPrefixesListCall) Filter(filter string) *PublicDelegatedPrefixesListCall {
117502	c.urlParams_.Set("filter", filter)
117503	return c
117504}
117505
117506// MaxResults sets the optional parameter "maxResults": The maximum
117507// number of results per page that should be returned. If the number of
117508// available results is larger than maxResults, Compute Engine returns a
117509// nextPageToken that can be used to get the next page of results in
117510// subsequent list requests. Acceptable values are 0 to 500, inclusive.
117511// (Default: 500)
117512func (c *PublicDelegatedPrefixesListCall) MaxResults(maxResults int64) *PublicDelegatedPrefixesListCall {
117513	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
117514	return c
117515}
117516
117517// OrderBy sets the optional parameter "orderBy": Sorts list results by
117518// a certain order. By default, results are returned in alphanumerical
117519// order based on the resource name.
117520//
117521// You can also sort results in descending order based on the creation
117522// timestamp using orderBy="creationTimestamp desc". This sorts results
117523// based on the creationTimestamp field in reverse chronological order
117524// (newest result first). Use this to sort resources like operations so
117525// that the newest operation is returned first.
117526//
117527// Currently, only sorting by name or creationTimestamp desc is
117528// supported.
117529func (c *PublicDelegatedPrefixesListCall) OrderBy(orderBy string) *PublicDelegatedPrefixesListCall {
117530	c.urlParams_.Set("orderBy", orderBy)
117531	return c
117532}
117533
117534// PageToken sets the optional parameter "pageToken": Specifies a page
117535// token to use. Set pageToken to the nextPageToken returned by a
117536// previous list request to get the next page of results.
117537func (c *PublicDelegatedPrefixesListCall) PageToken(pageToken string) *PublicDelegatedPrefixesListCall {
117538	c.urlParams_.Set("pageToken", pageToken)
117539	return c
117540}
117541
117542// Fields allows partial responses to be retrieved. See
117543// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
117544// for more information.
117545func (c *PublicDelegatedPrefixesListCall) Fields(s ...googleapi.Field) *PublicDelegatedPrefixesListCall {
117546	c.urlParams_.Set("fields", googleapi.CombineFields(s))
117547	return c
117548}
117549
117550// IfNoneMatch sets the optional parameter which makes the operation
117551// fail if the object's ETag matches the given value. This is useful for
117552// getting updates only after the object has changed since the last
117553// request. Use googleapi.IsNotModified to check whether the response
117554// error from Do is the result of In-None-Match.
117555func (c *PublicDelegatedPrefixesListCall) IfNoneMatch(entityTag string) *PublicDelegatedPrefixesListCall {
117556	c.ifNoneMatch_ = entityTag
117557	return c
117558}
117559
117560// Context sets the context to be used in this call's Do method. Any
117561// pending HTTP request will be aborted if the provided context is
117562// canceled.
117563func (c *PublicDelegatedPrefixesListCall) Context(ctx context.Context) *PublicDelegatedPrefixesListCall {
117564	c.ctx_ = ctx
117565	return c
117566}
117567
117568// Header returns an http.Header that can be modified by the caller to
117569// add HTTP headers to the request.
117570func (c *PublicDelegatedPrefixesListCall) Header() http.Header {
117571	if c.header_ == nil {
117572		c.header_ = make(http.Header)
117573	}
117574	return c.header_
117575}
117576
117577func (c *PublicDelegatedPrefixesListCall) doRequest(alt string) (*http.Response, error) {
117578	reqHeaders := make(http.Header)
117579	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
117580	for k, v := range c.header_ {
117581		reqHeaders[k] = v
117582	}
117583	reqHeaders.Set("User-Agent", c.s.userAgent())
117584	if c.ifNoneMatch_ != "" {
117585		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
117586	}
117587	var body io.Reader = nil
117588	c.urlParams_.Set("alt", alt)
117589	c.urlParams_.Set("prettyPrint", "false")
117590	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/publicDelegatedPrefixes")
117591	urls += "?" + c.urlParams_.Encode()
117592	req, err := http.NewRequest("GET", urls, body)
117593	if err != nil {
117594		return nil, err
117595	}
117596	req.Header = reqHeaders
117597	googleapi.Expand(req.URL, map[string]string{
117598		"project": c.project,
117599		"region":  c.region,
117600	})
117601	return gensupport.SendRequest(c.ctx_, c.s.client, req)
117602}
117603
117604// Do executes the "compute.publicDelegatedPrefixes.list" call.
117605// Exactly one of *PublicDelegatedPrefixList or error will be non-nil.
117606// Any non-2xx status code is an error. Response headers are in either
117607// *PublicDelegatedPrefixList.ServerResponse.Header or (if a response
117608// was returned at all) in error.(*googleapi.Error).Header. Use
117609// googleapi.IsNotModified to check whether the returned error was
117610// because http.StatusNotModified was returned.
117611func (c *PublicDelegatedPrefixesListCall) Do(opts ...googleapi.CallOption) (*PublicDelegatedPrefixList, error) {
117612	gensupport.SetOptions(c.urlParams_, opts...)
117613	res, err := c.doRequest("json")
117614	if res != nil && res.StatusCode == http.StatusNotModified {
117615		if res.Body != nil {
117616			res.Body.Close()
117617		}
117618		return nil, &googleapi.Error{
117619			Code:   res.StatusCode,
117620			Header: res.Header,
117621		}
117622	}
117623	if err != nil {
117624		return nil, err
117625	}
117626	defer googleapi.CloseBody(res)
117627	if err := googleapi.CheckResponse(res); err != nil {
117628		return nil, err
117629	}
117630	ret := &PublicDelegatedPrefixList{
117631		ServerResponse: googleapi.ServerResponse{
117632			Header:         res.Header,
117633			HTTPStatusCode: res.StatusCode,
117634		},
117635	}
117636	target := &ret
117637	if err := gensupport.DecodeResponse(target, res); err != nil {
117638		return nil, err
117639	}
117640	return ret, nil
117641	// {
117642	//   "description": "Lists the PublicDelegatedPrefixes for a project in the given region. (== suppress_warning http-rest-shadowed ==)",
117643	//   "httpMethod": "GET",
117644	//   "id": "compute.publicDelegatedPrefixes.list",
117645	//   "parameterOrder": [
117646	//     "project",
117647	//     "region"
117648	//   ],
117649	//   "parameters": {
117650	//     "filter": {
117651	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
117652	//       "location": "query",
117653	//       "type": "string"
117654	//     },
117655	//     "maxResults": {
117656	//       "default": "500",
117657	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
117658	//       "format": "uint32",
117659	//       "location": "query",
117660	//       "minimum": "0",
117661	//       "type": "integer"
117662	//     },
117663	//     "orderBy": {
117664	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
117665	//       "location": "query",
117666	//       "type": "string"
117667	//     },
117668	//     "pageToken": {
117669	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
117670	//       "location": "query",
117671	//       "type": "string"
117672	//     },
117673	//     "project": {
117674	//       "description": "Project ID for this request.",
117675	//       "location": "path",
117676	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
117677	//       "required": true,
117678	//       "type": "string"
117679	//     },
117680	//     "region": {
117681	//       "description": "Name of the region of this request.",
117682	//       "location": "path",
117683	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
117684	//       "required": true,
117685	//       "type": "string"
117686	//     }
117687	//   },
117688	//   "path": "{project}/regions/{region}/publicDelegatedPrefixes",
117689	//   "response": {
117690	//     "$ref": "PublicDelegatedPrefixList"
117691	//   },
117692	//   "scopes": [
117693	//     "https://www.googleapis.com/auth/cloud-platform",
117694	//     "https://www.googleapis.com/auth/compute",
117695	//     "https://www.googleapis.com/auth/compute.readonly"
117696	//   ]
117697	// }
117698
117699}
117700
117701// Pages invokes f for each page of results.
117702// A non-nil error returned from f will halt the iteration.
117703// The provided context supersedes any context provided to the Context method.
117704func (c *PublicDelegatedPrefixesListCall) Pages(ctx context.Context, f func(*PublicDelegatedPrefixList) error) error {
117705	c.ctx_ = ctx
117706	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
117707	for {
117708		x, err := c.Do()
117709		if err != nil {
117710			return err
117711		}
117712		if err := f(x); err != nil {
117713			return err
117714		}
117715		if x.NextPageToken == "" {
117716			return nil
117717		}
117718		c.PageToken(x.NextPageToken)
117719	}
117720}
117721
117722// method id "compute.publicDelegatedPrefixes.patch":
117723
117724type PublicDelegatedPrefixesPatchCall struct {
117725	s                     *Service
117726	project               string
117727	region                string
117728	publicDelegatedPrefix string
117729	publicdelegatedprefix *PublicDelegatedPrefix
117730	urlParams_            gensupport.URLParams
117731	ctx_                  context.Context
117732	header_               http.Header
117733}
117734
117735// Patch: Patches the specified PublicDelegatedPrefix resource with the
117736// data included in the request. This method supports PATCH semantics
117737// and uses JSON merge patch format and processing rules. (==
117738// suppress_warning http-rest-shadowed ==)
117739func (r *PublicDelegatedPrefixesService) Patch(project string, region string, publicDelegatedPrefix string, publicdelegatedprefix *PublicDelegatedPrefix) *PublicDelegatedPrefixesPatchCall {
117740	c := &PublicDelegatedPrefixesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
117741	c.project = project
117742	c.region = region
117743	c.publicDelegatedPrefix = publicDelegatedPrefix
117744	c.publicdelegatedprefix = publicdelegatedprefix
117745	return c
117746}
117747
117748// RequestId sets the optional parameter "requestId": An optional
117749// request ID to identify requests. Specify a unique request ID so that
117750// if you must retry your request, the server will know to ignore the
117751// request if it has already been completed.
117752//
117753// For example, consider a situation where you make an initial request
117754// and the request times out. If you make the request again with the
117755// same request ID, the server can check if original operation with the
117756// same request ID was received, and if so, will ignore the second
117757// request. This prevents clients from accidentally creating duplicate
117758// commitments.
117759//
117760// The request ID must be a valid UUID with the exception that zero UUID
117761// is not supported (00000000-0000-0000-0000-000000000000).
117762func (c *PublicDelegatedPrefixesPatchCall) RequestId(requestId string) *PublicDelegatedPrefixesPatchCall {
117763	c.urlParams_.Set("requestId", requestId)
117764	return c
117765}
117766
117767// Fields allows partial responses to be retrieved. See
117768// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
117769// for more information.
117770func (c *PublicDelegatedPrefixesPatchCall) Fields(s ...googleapi.Field) *PublicDelegatedPrefixesPatchCall {
117771	c.urlParams_.Set("fields", googleapi.CombineFields(s))
117772	return c
117773}
117774
117775// Context sets the context to be used in this call's Do method. Any
117776// pending HTTP request will be aborted if the provided context is
117777// canceled.
117778func (c *PublicDelegatedPrefixesPatchCall) Context(ctx context.Context) *PublicDelegatedPrefixesPatchCall {
117779	c.ctx_ = ctx
117780	return c
117781}
117782
117783// Header returns an http.Header that can be modified by the caller to
117784// add HTTP headers to the request.
117785func (c *PublicDelegatedPrefixesPatchCall) Header() http.Header {
117786	if c.header_ == nil {
117787		c.header_ = make(http.Header)
117788	}
117789	return c.header_
117790}
117791
117792func (c *PublicDelegatedPrefixesPatchCall) doRequest(alt string) (*http.Response, error) {
117793	reqHeaders := make(http.Header)
117794	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
117795	for k, v := range c.header_ {
117796		reqHeaders[k] = v
117797	}
117798	reqHeaders.Set("User-Agent", c.s.userAgent())
117799	var body io.Reader = nil
117800	body, err := googleapi.WithoutDataWrapper.JSONReader(c.publicdelegatedprefix)
117801	if err != nil {
117802		return nil, err
117803	}
117804	reqHeaders.Set("Content-Type", "application/json")
117805	c.urlParams_.Set("alt", alt)
117806	c.urlParams_.Set("prettyPrint", "false")
117807	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}")
117808	urls += "?" + c.urlParams_.Encode()
117809	req, err := http.NewRequest("PATCH", urls, body)
117810	if err != nil {
117811		return nil, err
117812	}
117813	req.Header = reqHeaders
117814	googleapi.Expand(req.URL, map[string]string{
117815		"project":               c.project,
117816		"region":                c.region,
117817		"publicDelegatedPrefix": c.publicDelegatedPrefix,
117818	})
117819	return gensupport.SendRequest(c.ctx_, c.s.client, req)
117820}
117821
117822// Do executes the "compute.publicDelegatedPrefixes.patch" call.
117823// Exactly one of *Operation or error will be non-nil. Any non-2xx
117824// status code is an error. Response headers are in either
117825// *Operation.ServerResponse.Header or (if a response was returned at
117826// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
117827// to check whether the returned error was because
117828// http.StatusNotModified was returned.
117829func (c *PublicDelegatedPrefixesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
117830	gensupport.SetOptions(c.urlParams_, opts...)
117831	res, err := c.doRequest("json")
117832	if res != nil && res.StatusCode == http.StatusNotModified {
117833		if res.Body != nil {
117834			res.Body.Close()
117835		}
117836		return nil, &googleapi.Error{
117837			Code:   res.StatusCode,
117838			Header: res.Header,
117839		}
117840	}
117841	if err != nil {
117842		return nil, err
117843	}
117844	defer googleapi.CloseBody(res)
117845	if err := googleapi.CheckResponse(res); err != nil {
117846		return nil, err
117847	}
117848	ret := &Operation{
117849		ServerResponse: googleapi.ServerResponse{
117850			Header:         res.Header,
117851			HTTPStatusCode: res.StatusCode,
117852		},
117853	}
117854	target := &ret
117855	if err := gensupport.DecodeResponse(target, res); err != nil {
117856		return nil, err
117857	}
117858	return ret, nil
117859	// {
117860	//   "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. (== suppress_warning http-rest-shadowed ==)",
117861	//   "httpMethod": "PATCH",
117862	//   "id": "compute.publicDelegatedPrefixes.patch",
117863	//   "parameterOrder": [
117864	//     "project",
117865	//     "region",
117866	//     "publicDelegatedPrefix"
117867	//   ],
117868	//   "parameters": {
117869	//     "project": {
117870	//       "description": "Project ID for this request.",
117871	//       "location": "path",
117872	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
117873	//       "required": true,
117874	//       "type": "string"
117875	//     },
117876	//     "publicDelegatedPrefix": {
117877	//       "description": "Name of the PublicDelegatedPrefix resource to patch.",
117878	//       "location": "path",
117879	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
117880	//       "required": true,
117881	//       "type": "string"
117882	//     },
117883	//     "region": {
117884	//       "description": "Name of the region for this request.",
117885	//       "location": "path",
117886	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
117887	//       "required": true,
117888	//       "type": "string"
117889	//     },
117890	//     "requestId": {
117891	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
117892	//       "location": "query",
117893	//       "type": "string"
117894	//     }
117895	//   },
117896	//   "path": "{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}",
117897	//   "request": {
117898	//     "$ref": "PublicDelegatedPrefix"
117899	//   },
117900	//   "response": {
117901	//     "$ref": "Operation"
117902	//   },
117903	//   "scopes": [
117904	//     "https://www.googleapis.com/auth/cloud-platform",
117905	//     "https://www.googleapis.com/auth/compute"
117906	//   ]
117907	// }
117908
117909}
117910
117911// method id "compute.regionAutoscalers.delete":
117912
117913type RegionAutoscalersDeleteCall struct {
117914	s          *Service
117915	project    string
117916	region     string
117917	autoscaler string
117918	urlParams_ gensupport.URLParams
117919	ctx_       context.Context
117920	header_    http.Header
117921}
117922
117923// Delete: Deletes the specified autoscaler. (== suppress_warning
117924// http-rest-shadowed ==)
117925func (r *RegionAutoscalersService) Delete(project string, region string, autoscaler string) *RegionAutoscalersDeleteCall {
117926	c := &RegionAutoscalersDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
117927	c.project = project
117928	c.region = region
117929	c.autoscaler = autoscaler
117930	return c
117931}
117932
117933// RequestId sets the optional parameter "requestId": An optional
117934// request ID to identify requests. Specify a unique request ID so that
117935// if you must retry your request, the server will know to ignore the
117936// request if it has already been completed.
117937//
117938// For example, consider a situation where you make an initial request
117939// and the request times out. If you make the request again with the
117940// same request ID, the server can check if original operation with the
117941// same request ID was received, and if so, will ignore the second
117942// request. This prevents clients from accidentally creating duplicate
117943// commitments.
117944//
117945// The request ID must be a valid UUID with the exception that zero UUID
117946// is not supported (00000000-0000-0000-0000-000000000000).
117947func (c *RegionAutoscalersDeleteCall) RequestId(requestId string) *RegionAutoscalersDeleteCall {
117948	c.urlParams_.Set("requestId", requestId)
117949	return c
117950}
117951
117952// Fields allows partial responses to be retrieved. See
117953// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
117954// for more information.
117955func (c *RegionAutoscalersDeleteCall) Fields(s ...googleapi.Field) *RegionAutoscalersDeleteCall {
117956	c.urlParams_.Set("fields", googleapi.CombineFields(s))
117957	return c
117958}
117959
117960// Context sets the context to be used in this call's Do method. Any
117961// pending HTTP request will be aborted if the provided context is
117962// canceled.
117963func (c *RegionAutoscalersDeleteCall) Context(ctx context.Context) *RegionAutoscalersDeleteCall {
117964	c.ctx_ = ctx
117965	return c
117966}
117967
117968// Header returns an http.Header that can be modified by the caller to
117969// add HTTP headers to the request.
117970func (c *RegionAutoscalersDeleteCall) Header() http.Header {
117971	if c.header_ == nil {
117972		c.header_ = make(http.Header)
117973	}
117974	return c.header_
117975}
117976
117977func (c *RegionAutoscalersDeleteCall) doRequest(alt string) (*http.Response, error) {
117978	reqHeaders := make(http.Header)
117979	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
117980	for k, v := range c.header_ {
117981		reqHeaders[k] = v
117982	}
117983	reqHeaders.Set("User-Agent", c.s.userAgent())
117984	var body io.Reader = nil
117985	c.urlParams_.Set("alt", alt)
117986	c.urlParams_.Set("prettyPrint", "false")
117987	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/autoscalers/{autoscaler}")
117988	urls += "?" + c.urlParams_.Encode()
117989	req, err := http.NewRequest("DELETE", urls, body)
117990	if err != nil {
117991		return nil, err
117992	}
117993	req.Header = reqHeaders
117994	googleapi.Expand(req.URL, map[string]string{
117995		"project":    c.project,
117996		"region":     c.region,
117997		"autoscaler": c.autoscaler,
117998	})
117999	return gensupport.SendRequest(c.ctx_, c.s.client, req)
118000}
118001
118002// Do executes the "compute.regionAutoscalers.delete" call.
118003// Exactly one of *Operation or error will be non-nil. Any non-2xx
118004// status code is an error. Response headers are in either
118005// *Operation.ServerResponse.Header or (if a response was returned at
118006// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
118007// to check whether the returned error was because
118008// http.StatusNotModified was returned.
118009func (c *RegionAutoscalersDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
118010	gensupport.SetOptions(c.urlParams_, opts...)
118011	res, err := c.doRequest("json")
118012	if res != nil && res.StatusCode == http.StatusNotModified {
118013		if res.Body != nil {
118014			res.Body.Close()
118015		}
118016		return nil, &googleapi.Error{
118017			Code:   res.StatusCode,
118018			Header: res.Header,
118019		}
118020	}
118021	if err != nil {
118022		return nil, err
118023	}
118024	defer googleapi.CloseBody(res)
118025	if err := googleapi.CheckResponse(res); err != nil {
118026		return nil, err
118027	}
118028	ret := &Operation{
118029		ServerResponse: googleapi.ServerResponse{
118030			Header:         res.Header,
118031			HTTPStatusCode: res.StatusCode,
118032		},
118033	}
118034	target := &ret
118035	if err := gensupport.DecodeResponse(target, res); err != nil {
118036		return nil, err
118037	}
118038	return ret, nil
118039	// {
118040	//   "description": "Deletes the specified autoscaler. (== suppress_warning http-rest-shadowed ==)",
118041	//   "httpMethod": "DELETE",
118042	//   "id": "compute.regionAutoscalers.delete",
118043	//   "parameterOrder": [
118044	//     "project",
118045	//     "region",
118046	//     "autoscaler"
118047	//   ],
118048	//   "parameters": {
118049	//     "autoscaler": {
118050	//       "description": "Name of the autoscaler to delete.",
118051	//       "location": "path",
118052	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
118053	//       "required": true,
118054	//       "type": "string"
118055	//     },
118056	//     "project": {
118057	//       "description": "Project ID for this request.",
118058	//       "location": "path",
118059	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
118060	//       "required": true,
118061	//       "type": "string"
118062	//     },
118063	//     "region": {
118064	//       "description": "Name of the region scoping this request.",
118065	//       "location": "path",
118066	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
118067	//       "required": true,
118068	//       "type": "string"
118069	//     },
118070	//     "requestId": {
118071	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
118072	//       "location": "query",
118073	//       "type": "string"
118074	//     }
118075	//   },
118076	//   "path": "{project}/regions/{region}/autoscalers/{autoscaler}",
118077	//   "response": {
118078	//     "$ref": "Operation"
118079	//   },
118080	//   "scopes": [
118081	//     "https://www.googleapis.com/auth/cloud-platform",
118082	//     "https://www.googleapis.com/auth/compute"
118083	//   ]
118084	// }
118085
118086}
118087
118088// method id "compute.regionAutoscalers.get":
118089
118090type RegionAutoscalersGetCall struct {
118091	s            *Service
118092	project      string
118093	region       string
118094	autoscaler   string
118095	urlParams_   gensupport.URLParams
118096	ifNoneMatch_ string
118097	ctx_         context.Context
118098	header_      http.Header
118099}
118100
118101// Get: Returns the specified autoscaler. (== suppress_warning
118102// http-rest-shadowed ==)
118103func (r *RegionAutoscalersService) Get(project string, region string, autoscaler string) *RegionAutoscalersGetCall {
118104	c := &RegionAutoscalersGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
118105	c.project = project
118106	c.region = region
118107	c.autoscaler = autoscaler
118108	return c
118109}
118110
118111// Fields allows partial responses to be retrieved. See
118112// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
118113// for more information.
118114func (c *RegionAutoscalersGetCall) Fields(s ...googleapi.Field) *RegionAutoscalersGetCall {
118115	c.urlParams_.Set("fields", googleapi.CombineFields(s))
118116	return c
118117}
118118
118119// IfNoneMatch sets the optional parameter which makes the operation
118120// fail if the object's ETag matches the given value. This is useful for
118121// getting updates only after the object has changed since the last
118122// request. Use googleapi.IsNotModified to check whether the response
118123// error from Do is the result of In-None-Match.
118124func (c *RegionAutoscalersGetCall) IfNoneMatch(entityTag string) *RegionAutoscalersGetCall {
118125	c.ifNoneMatch_ = entityTag
118126	return c
118127}
118128
118129// Context sets the context to be used in this call's Do method. Any
118130// pending HTTP request will be aborted if the provided context is
118131// canceled.
118132func (c *RegionAutoscalersGetCall) Context(ctx context.Context) *RegionAutoscalersGetCall {
118133	c.ctx_ = ctx
118134	return c
118135}
118136
118137// Header returns an http.Header that can be modified by the caller to
118138// add HTTP headers to the request.
118139func (c *RegionAutoscalersGetCall) Header() http.Header {
118140	if c.header_ == nil {
118141		c.header_ = make(http.Header)
118142	}
118143	return c.header_
118144}
118145
118146func (c *RegionAutoscalersGetCall) doRequest(alt string) (*http.Response, error) {
118147	reqHeaders := make(http.Header)
118148	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
118149	for k, v := range c.header_ {
118150		reqHeaders[k] = v
118151	}
118152	reqHeaders.Set("User-Agent", c.s.userAgent())
118153	if c.ifNoneMatch_ != "" {
118154		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
118155	}
118156	var body io.Reader = nil
118157	c.urlParams_.Set("alt", alt)
118158	c.urlParams_.Set("prettyPrint", "false")
118159	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/autoscalers/{autoscaler}")
118160	urls += "?" + c.urlParams_.Encode()
118161	req, err := http.NewRequest("GET", urls, body)
118162	if err != nil {
118163		return nil, err
118164	}
118165	req.Header = reqHeaders
118166	googleapi.Expand(req.URL, map[string]string{
118167		"project":    c.project,
118168		"region":     c.region,
118169		"autoscaler": c.autoscaler,
118170	})
118171	return gensupport.SendRequest(c.ctx_, c.s.client, req)
118172}
118173
118174// Do executes the "compute.regionAutoscalers.get" call.
118175// Exactly one of *Autoscaler or error will be non-nil. Any non-2xx
118176// status code is an error. Response headers are in either
118177// *Autoscaler.ServerResponse.Header or (if a response was returned at
118178// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
118179// to check whether the returned error was because
118180// http.StatusNotModified was returned.
118181func (c *RegionAutoscalersGetCall) Do(opts ...googleapi.CallOption) (*Autoscaler, error) {
118182	gensupport.SetOptions(c.urlParams_, opts...)
118183	res, err := c.doRequest("json")
118184	if res != nil && res.StatusCode == http.StatusNotModified {
118185		if res.Body != nil {
118186			res.Body.Close()
118187		}
118188		return nil, &googleapi.Error{
118189			Code:   res.StatusCode,
118190			Header: res.Header,
118191		}
118192	}
118193	if err != nil {
118194		return nil, err
118195	}
118196	defer googleapi.CloseBody(res)
118197	if err := googleapi.CheckResponse(res); err != nil {
118198		return nil, err
118199	}
118200	ret := &Autoscaler{
118201		ServerResponse: googleapi.ServerResponse{
118202			Header:         res.Header,
118203			HTTPStatusCode: res.StatusCode,
118204		},
118205	}
118206	target := &ret
118207	if err := gensupport.DecodeResponse(target, res); err != nil {
118208		return nil, err
118209	}
118210	return ret, nil
118211	// {
118212	//   "description": "Returns the specified autoscaler. (== suppress_warning http-rest-shadowed ==)",
118213	//   "httpMethod": "GET",
118214	//   "id": "compute.regionAutoscalers.get",
118215	//   "parameterOrder": [
118216	//     "project",
118217	//     "region",
118218	//     "autoscaler"
118219	//   ],
118220	//   "parameters": {
118221	//     "autoscaler": {
118222	//       "description": "Name of the autoscaler to return.",
118223	//       "location": "path",
118224	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
118225	//       "required": true,
118226	//       "type": "string"
118227	//     },
118228	//     "project": {
118229	//       "description": "Project ID for this request.",
118230	//       "location": "path",
118231	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
118232	//       "required": true,
118233	//       "type": "string"
118234	//     },
118235	//     "region": {
118236	//       "description": "Name of the region scoping this request.",
118237	//       "location": "path",
118238	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
118239	//       "required": true,
118240	//       "type": "string"
118241	//     }
118242	//   },
118243	//   "path": "{project}/regions/{region}/autoscalers/{autoscaler}",
118244	//   "response": {
118245	//     "$ref": "Autoscaler"
118246	//   },
118247	//   "scopes": [
118248	//     "https://www.googleapis.com/auth/cloud-platform",
118249	//     "https://www.googleapis.com/auth/compute",
118250	//     "https://www.googleapis.com/auth/compute.readonly"
118251	//   ]
118252	// }
118253
118254}
118255
118256// method id "compute.regionAutoscalers.insert":
118257
118258type RegionAutoscalersInsertCall struct {
118259	s          *Service
118260	project    string
118261	region     string
118262	autoscaler *Autoscaler
118263	urlParams_ gensupport.URLParams
118264	ctx_       context.Context
118265	header_    http.Header
118266}
118267
118268// Insert: Creates an autoscaler in the specified project using the data
118269// included in the request. (== suppress_warning http-rest-shadowed ==)
118270func (r *RegionAutoscalersService) Insert(project string, region string, autoscaler *Autoscaler) *RegionAutoscalersInsertCall {
118271	c := &RegionAutoscalersInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
118272	c.project = project
118273	c.region = region
118274	c.autoscaler = autoscaler
118275	return c
118276}
118277
118278// RequestId sets the optional parameter "requestId": An optional
118279// request ID to identify requests. Specify a unique request ID so that
118280// if you must retry your request, the server will know to ignore the
118281// request if it has already been completed.
118282//
118283// For example, consider a situation where you make an initial request
118284// and the request times out. If you make the request again with the
118285// same request ID, the server can check if original operation with the
118286// same request ID was received, and if so, will ignore the second
118287// request. This prevents clients from accidentally creating duplicate
118288// commitments.
118289//
118290// The request ID must be a valid UUID with the exception that zero UUID
118291// is not supported (00000000-0000-0000-0000-000000000000).
118292func (c *RegionAutoscalersInsertCall) RequestId(requestId string) *RegionAutoscalersInsertCall {
118293	c.urlParams_.Set("requestId", requestId)
118294	return c
118295}
118296
118297// Fields allows partial responses to be retrieved. See
118298// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
118299// for more information.
118300func (c *RegionAutoscalersInsertCall) Fields(s ...googleapi.Field) *RegionAutoscalersInsertCall {
118301	c.urlParams_.Set("fields", googleapi.CombineFields(s))
118302	return c
118303}
118304
118305// Context sets the context to be used in this call's Do method. Any
118306// pending HTTP request will be aborted if the provided context is
118307// canceled.
118308func (c *RegionAutoscalersInsertCall) Context(ctx context.Context) *RegionAutoscalersInsertCall {
118309	c.ctx_ = ctx
118310	return c
118311}
118312
118313// Header returns an http.Header that can be modified by the caller to
118314// add HTTP headers to the request.
118315func (c *RegionAutoscalersInsertCall) Header() http.Header {
118316	if c.header_ == nil {
118317		c.header_ = make(http.Header)
118318	}
118319	return c.header_
118320}
118321
118322func (c *RegionAutoscalersInsertCall) doRequest(alt string) (*http.Response, error) {
118323	reqHeaders := make(http.Header)
118324	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
118325	for k, v := range c.header_ {
118326		reqHeaders[k] = v
118327	}
118328	reqHeaders.Set("User-Agent", c.s.userAgent())
118329	var body io.Reader = nil
118330	body, err := googleapi.WithoutDataWrapper.JSONReader(c.autoscaler)
118331	if err != nil {
118332		return nil, err
118333	}
118334	reqHeaders.Set("Content-Type", "application/json")
118335	c.urlParams_.Set("alt", alt)
118336	c.urlParams_.Set("prettyPrint", "false")
118337	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/autoscalers")
118338	urls += "?" + c.urlParams_.Encode()
118339	req, err := http.NewRequest("POST", urls, body)
118340	if err != nil {
118341		return nil, err
118342	}
118343	req.Header = reqHeaders
118344	googleapi.Expand(req.URL, map[string]string{
118345		"project": c.project,
118346		"region":  c.region,
118347	})
118348	return gensupport.SendRequest(c.ctx_, c.s.client, req)
118349}
118350
118351// Do executes the "compute.regionAutoscalers.insert" call.
118352// Exactly one of *Operation or error will be non-nil. Any non-2xx
118353// status code is an error. Response headers are in either
118354// *Operation.ServerResponse.Header or (if a response was returned at
118355// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
118356// to check whether the returned error was because
118357// http.StatusNotModified was returned.
118358func (c *RegionAutoscalersInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
118359	gensupport.SetOptions(c.urlParams_, opts...)
118360	res, err := c.doRequest("json")
118361	if res != nil && res.StatusCode == http.StatusNotModified {
118362		if res.Body != nil {
118363			res.Body.Close()
118364		}
118365		return nil, &googleapi.Error{
118366			Code:   res.StatusCode,
118367			Header: res.Header,
118368		}
118369	}
118370	if err != nil {
118371		return nil, err
118372	}
118373	defer googleapi.CloseBody(res)
118374	if err := googleapi.CheckResponse(res); err != nil {
118375		return nil, err
118376	}
118377	ret := &Operation{
118378		ServerResponse: googleapi.ServerResponse{
118379			Header:         res.Header,
118380			HTTPStatusCode: res.StatusCode,
118381		},
118382	}
118383	target := &ret
118384	if err := gensupport.DecodeResponse(target, res); err != nil {
118385		return nil, err
118386	}
118387	return ret, nil
118388	// {
118389	//   "description": "Creates an autoscaler in the specified project using the data included in the request. (== suppress_warning http-rest-shadowed ==)",
118390	//   "httpMethod": "POST",
118391	//   "id": "compute.regionAutoscalers.insert",
118392	//   "parameterOrder": [
118393	//     "project",
118394	//     "region"
118395	//   ],
118396	//   "parameters": {
118397	//     "project": {
118398	//       "description": "Project ID for this request.",
118399	//       "location": "path",
118400	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
118401	//       "required": true,
118402	//       "type": "string"
118403	//     },
118404	//     "region": {
118405	//       "description": "Name of the region scoping this request.",
118406	//       "location": "path",
118407	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
118408	//       "required": true,
118409	//       "type": "string"
118410	//     },
118411	//     "requestId": {
118412	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
118413	//       "location": "query",
118414	//       "type": "string"
118415	//     }
118416	//   },
118417	//   "path": "{project}/regions/{region}/autoscalers",
118418	//   "request": {
118419	//     "$ref": "Autoscaler"
118420	//   },
118421	//   "response": {
118422	//     "$ref": "Operation"
118423	//   },
118424	//   "scopes": [
118425	//     "https://www.googleapis.com/auth/cloud-platform",
118426	//     "https://www.googleapis.com/auth/compute"
118427	//   ]
118428	// }
118429
118430}
118431
118432// method id "compute.regionAutoscalers.list":
118433
118434type RegionAutoscalersListCall struct {
118435	s            *Service
118436	project      string
118437	region       string
118438	urlParams_   gensupport.URLParams
118439	ifNoneMatch_ string
118440	ctx_         context.Context
118441	header_      http.Header
118442}
118443
118444// List: Retrieves a list of autoscalers contained within the specified
118445// region. (== suppress_warning http-rest-shadowed ==)
118446func (r *RegionAutoscalersService) List(project string, region string) *RegionAutoscalersListCall {
118447	c := &RegionAutoscalersListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
118448	c.project = project
118449	c.region = region
118450	return c
118451}
118452
118453// Filter sets the optional parameter "filter": A filter expression that
118454// filters resources listed in the response. The expression must specify
118455// the field name, a comparison operator, and the value that you want to
118456// use for filtering. The value must be a string, a number, or a
118457// boolean. The comparison operator must be either =, !=, >, or <.
118458//
118459// For example, if you are filtering Compute Engine instances, you can
118460// exclude instances named example-instance by specifying name !=
118461// example-instance.
118462//
118463// You can also filter nested fields. For example, you could specify
118464// scheduling.automaticRestart = false to include instances only if they
118465// are not scheduled for automatic restarts. You can use filtering on
118466// nested fields to filter based on resource labels.
118467//
118468// To filter on multiple expressions, provide each separate expression
118469// within parentheses. For example, (scheduling.automaticRestart = true)
118470// (cpuPlatform = "Intel Skylake"). By default, each expression is an
118471// AND expression. However, you can include AND and OR expressions
118472// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
118473// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
118474// true).
118475func (c *RegionAutoscalersListCall) Filter(filter string) *RegionAutoscalersListCall {
118476	c.urlParams_.Set("filter", filter)
118477	return c
118478}
118479
118480// MaxResults sets the optional parameter "maxResults": The maximum
118481// number of results per page that should be returned. If the number of
118482// available results is larger than maxResults, Compute Engine returns a
118483// nextPageToken that can be used to get the next page of results in
118484// subsequent list requests. Acceptable values are 0 to 500, inclusive.
118485// (Default: 500)
118486func (c *RegionAutoscalersListCall) MaxResults(maxResults int64) *RegionAutoscalersListCall {
118487	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
118488	return c
118489}
118490
118491// OrderBy sets the optional parameter "orderBy": Sorts list results by
118492// a certain order. By default, results are returned in alphanumerical
118493// order based on the resource name.
118494//
118495// You can also sort results in descending order based on the creation
118496// timestamp using orderBy="creationTimestamp desc". This sorts results
118497// based on the creationTimestamp field in reverse chronological order
118498// (newest result first). Use this to sort resources like operations so
118499// that the newest operation is returned first.
118500//
118501// Currently, only sorting by name or creationTimestamp desc is
118502// supported.
118503func (c *RegionAutoscalersListCall) OrderBy(orderBy string) *RegionAutoscalersListCall {
118504	c.urlParams_.Set("orderBy", orderBy)
118505	return c
118506}
118507
118508// PageToken sets the optional parameter "pageToken": Specifies a page
118509// token to use. Set pageToken to the nextPageToken returned by a
118510// previous list request to get the next page of results.
118511func (c *RegionAutoscalersListCall) PageToken(pageToken string) *RegionAutoscalersListCall {
118512	c.urlParams_.Set("pageToken", pageToken)
118513	return c
118514}
118515
118516// Fields allows partial responses to be retrieved. See
118517// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
118518// for more information.
118519func (c *RegionAutoscalersListCall) Fields(s ...googleapi.Field) *RegionAutoscalersListCall {
118520	c.urlParams_.Set("fields", googleapi.CombineFields(s))
118521	return c
118522}
118523
118524// IfNoneMatch sets the optional parameter which makes the operation
118525// fail if the object's ETag matches the given value. This is useful for
118526// getting updates only after the object has changed since the last
118527// request. Use googleapi.IsNotModified to check whether the response
118528// error from Do is the result of In-None-Match.
118529func (c *RegionAutoscalersListCall) IfNoneMatch(entityTag string) *RegionAutoscalersListCall {
118530	c.ifNoneMatch_ = entityTag
118531	return c
118532}
118533
118534// Context sets the context to be used in this call's Do method. Any
118535// pending HTTP request will be aborted if the provided context is
118536// canceled.
118537func (c *RegionAutoscalersListCall) Context(ctx context.Context) *RegionAutoscalersListCall {
118538	c.ctx_ = ctx
118539	return c
118540}
118541
118542// Header returns an http.Header that can be modified by the caller to
118543// add HTTP headers to the request.
118544func (c *RegionAutoscalersListCall) Header() http.Header {
118545	if c.header_ == nil {
118546		c.header_ = make(http.Header)
118547	}
118548	return c.header_
118549}
118550
118551func (c *RegionAutoscalersListCall) doRequest(alt string) (*http.Response, error) {
118552	reqHeaders := make(http.Header)
118553	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
118554	for k, v := range c.header_ {
118555		reqHeaders[k] = v
118556	}
118557	reqHeaders.Set("User-Agent", c.s.userAgent())
118558	if c.ifNoneMatch_ != "" {
118559		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
118560	}
118561	var body io.Reader = nil
118562	c.urlParams_.Set("alt", alt)
118563	c.urlParams_.Set("prettyPrint", "false")
118564	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/autoscalers")
118565	urls += "?" + c.urlParams_.Encode()
118566	req, err := http.NewRequest("GET", urls, body)
118567	if err != nil {
118568		return nil, err
118569	}
118570	req.Header = reqHeaders
118571	googleapi.Expand(req.URL, map[string]string{
118572		"project": c.project,
118573		"region":  c.region,
118574	})
118575	return gensupport.SendRequest(c.ctx_, c.s.client, req)
118576}
118577
118578// Do executes the "compute.regionAutoscalers.list" call.
118579// Exactly one of *RegionAutoscalerList or error will be non-nil. Any
118580// non-2xx status code is an error. Response headers are in either
118581// *RegionAutoscalerList.ServerResponse.Header or (if a response was
118582// returned at all) in error.(*googleapi.Error).Header. Use
118583// googleapi.IsNotModified to check whether the returned error was
118584// because http.StatusNotModified was returned.
118585func (c *RegionAutoscalersListCall) Do(opts ...googleapi.CallOption) (*RegionAutoscalerList, error) {
118586	gensupport.SetOptions(c.urlParams_, opts...)
118587	res, err := c.doRequest("json")
118588	if res != nil && res.StatusCode == http.StatusNotModified {
118589		if res.Body != nil {
118590			res.Body.Close()
118591		}
118592		return nil, &googleapi.Error{
118593			Code:   res.StatusCode,
118594			Header: res.Header,
118595		}
118596	}
118597	if err != nil {
118598		return nil, err
118599	}
118600	defer googleapi.CloseBody(res)
118601	if err := googleapi.CheckResponse(res); err != nil {
118602		return nil, err
118603	}
118604	ret := &RegionAutoscalerList{
118605		ServerResponse: googleapi.ServerResponse{
118606			Header:         res.Header,
118607			HTTPStatusCode: res.StatusCode,
118608		},
118609	}
118610	target := &ret
118611	if err := gensupport.DecodeResponse(target, res); err != nil {
118612		return nil, err
118613	}
118614	return ret, nil
118615	// {
118616	//   "description": "Retrieves a list of autoscalers contained within the specified region. (== suppress_warning http-rest-shadowed ==)",
118617	//   "httpMethod": "GET",
118618	//   "id": "compute.regionAutoscalers.list",
118619	//   "parameterOrder": [
118620	//     "project",
118621	//     "region"
118622	//   ],
118623	//   "parameters": {
118624	//     "filter": {
118625	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
118626	//       "location": "query",
118627	//       "type": "string"
118628	//     },
118629	//     "maxResults": {
118630	//       "default": "500",
118631	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
118632	//       "format": "uint32",
118633	//       "location": "query",
118634	//       "minimum": "0",
118635	//       "type": "integer"
118636	//     },
118637	//     "orderBy": {
118638	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
118639	//       "location": "query",
118640	//       "type": "string"
118641	//     },
118642	//     "pageToken": {
118643	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
118644	//       "location": "query",
118645	//       "type": "string"
118646	//     },
118647	//     "project": {
118648	//       "description": "Project ID for this request.",
118649	//       "location": "path",
118650	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
118651	//       "required": true,
118652	//       "type": "string"
118653	//     },
118654	//     "region": {
118655	//       "description": "Name of the region scoping this request.",
118656	//       "location": "path",
118657	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
118658	//       "required": true,
118659	//       "type": "string"
118660	//     }
118661	//   },
118662	//   "path": "{project}/regions/{region}/autoscalers",
118663	//   "response": {
118664	//     "$ref": "RegionAutoscalerList"
118665	//   },
118666	//   "scopes": [
118667	//     "https://www.googleapis.com/auth/cloud-platform",
118668	//     "https://www.googleapis.com/auth/compute",
118669	//     "https://www.googleapis.com/auth/compute.readonly"
118670	//   ]
118671	// }
118672
118673}
118674
118675// Pages invokes f for each page of results.
118676// A non-nil error returned from f will halt the iteration.
118677// The provided context supersedes any context provided to the Context method.
118678func (c *RegionAutoscalersListCall) Pages(ctx context.Context, f func(*RegionAutoscalerList) error) error {
118679	c.ctx_ = ctx
118680	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
118681	for {
118682		x, err := c.Do()
118683		if err != nil {
118684			return err
118685		}
118686		if err := f(x); err != nil {
118687			return err
118688		}
118689		if x.NextPageToken == "" {
118690			return nil
118691		}
118692		c.PageToken(x.NextPageToken)
118693	}
118694}
118695
118696// method id "compute.regionAutoscalers.patch":
118697
118698type RegionAutoscalersPatchCall struct {
118699	s          *Service
118700	project    string
118701	region     string
118702	autoscaler *Autoscaler
118703	urlParams_ gensupport.URLParams
118704	ctx_       context.Context
118705	header_    http.Header
118706}
118707
118708// Patch: Updates an autoscaler in the specified project using the data
118709// included in the request. This method supports PATCH semantics and
118710// uses the JSON merge patch format and processing rules. (==
118711// suppress_warning http-rest-shadowed ==)
118712func (r *RegionAutoscalersService) Patch(project string, region string, autoscaler *Autoscaler) *RegionAutoscalersPatchCall {
118713	c := &RegionAutoscalersPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
118714	c.project = project
118715	c.region = region
118716	c.autoscaler = autoscaler
118717	return c
118718}
118719
118720// Autoscaler sets the optional parameter "autoscaler": Name of the
118721// autoscaler to patch.
118722func (c *RegionAutoscalersPatchCall) Autoscaler(autoscaler string) *RegionAutoscalersPatchCall {
118723	c.urlParams_.Set("autoscaler", autoscaler)
118724	return c
118725}
118726
118727// RequestId sets the optional parameter "requestId": An optional
118728// request ID to identify requests. Specify a unique request ID so that
118729// if you must retry your request, the server will know to ignore the
118730// request if it has already been completed.
118731//
118732// For example, consider a situation where you make an initial request
118733// and the request times out. If you make the request again with the
118734// same request ID, the server can check if original operation with the
118735// same request ID was received, and if so, will ignore the second
118736// request. This prevents clients from accidentally creating duplicate
118737// commitments.
118738//
118739// The request ID must be a valid UUID with the exception that zero UUID
118740// is not supported (00000000-0000-0000-0000-000000000000).
118741func (c *RegionAutoscalersPatchCall) RequestId(requestId string) *RegionAutoscalersPatchCall {
118742	c.urlParams_.Set("requestId", requestId)
118743	return c
118744}
118745
118746// Fields allows partial responses to be retrieved. See
118747// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
118748// for more information.
118749func (c *RegionAutoscalersPatchCall) Fields(s ...googleapi.Field) *RegionAutoscalersPatchCall {
118750	c.urlParams_.Set("fields", googleapi.CombineFields(s))
118751	return c
118752}
118753
118754// Context sets the context to be used in this call's Do method. Any
118755// pending HTTP request will be aborted if the provided context is
118756// canceled.
118757func (c *RegionAutoscalersPatchCall) Context(ctx context.Context) *RegionAutoscalersPatchCall {
118758	c.ctx_ = ctx
118759	return c
118760}
118761
118762// Header returns an http.Header that can be modified by the caller to
118763// add HTTP headers to the request.
118764func (c *RegionAutoscalersPatchCall) Header() http.Header {
118765	if c.header_ == nil {
118766		c.header_ = make(http.Header)
118767	}
118768	return c.header_
118769}
118770
118771func (c *RegionAutoscalersPatchCall) doRequest(alt string) (*http.Response, error) {
118772	reqHeaders := make(http.Header)
118773	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
118774	for k, v := range c.header_ {
118775		reqHeaders[k] = v
118776	}
118777	reqHeaders.Set("User-Agent", c.s.userAgent())
118778	var body io.Reader = nil
118779	body, err := googleapi.WithoutDataWrapper.JSONReader(c.autoscaler)
118780	if err != nil {
118781		return nil, err
118782	}
118783	reqHeaders.Set("Content-Type", "application/json")
118784	c.urlParams_.Set("alt", alt)
118785	c.urlParams_.Set("prettyPrint", "false")
118786	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/autoscalers")
118787	urls += "?" + c.urlParams_.Encode()
118788	req, err := http.NewRequest("PATCH", urls, body)
118789	if err != nil {
118790		return nil, err
118791	}
118792	req.Header = reqHeaders
118793	googleapi.Expand(req.URL, map[string]string{
118794		"project": c.project,
118795		"region":  c.region,
118796	})
118797	return gensupport.SendRequest(c.ctx_, c.s.client, req)
118798}
118799
118800// Do executes the "compute.regionAutoscalers.patch" call.
118801// Exactly one of *Operation or error will be non-nil. Any non-2xx
118802// status code is an error. Response headers are in either
118803// *Operation.ServerResponse.Header or (if a response was returned at
118804// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
118805// to check whether the returned error was because
118806// http.StatusNotModified was returned.
118807func (c *RegionAutoscalersPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
118808	gensupport.SetOptions(c.urlParams_, opts...)
118809	res, err := c.doRequest("json")
118810	if res != nil && res.StatusCode == http.StatusNotModified {
118811		if res.Body != nil {
118812			res.Body.Close()
118813		}
118814		return nil, &googleapi.Error{
118815			Code:   res.StatusCode,
118816			Header: res.Header,
118817		}
118818	}
118819	if err != nil {
118820		return nil, err
118821	}
118822	defer googleapi.CloseBody(res)
118823	if err := googleapi.CheckResponse(res); err != nil {
118824		return nil, err
118825	}
118826	ret := &Operation{
118827		ServerResponse: googleapi.ServerResponse{
118828			Header:         res.Header,
118829			HTTPStatusCode: res.StatusCode,
118830		},
118831	}
118832	target := &ret
118833	if err := gensupport.DecodeResponse(target, res); err != nil {
118834		return nil, err
118835	}
118836	return ret, nil
118837	// {
118838	//   "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. (== suppress_warning http-rest-shadowed ==)",
118839	//   "httpMethod": "PATCH",
118840	//   "id": "compute.regionAutoscalers.patch",
118841	//   "parameterOrder": [
118842	//     "project",
118843	//     "region"
118844	//   ],
118845	//   "parameters": {
118846	//     "autoscaler": {
118847	//       "description": "Name of the autoscaler to patch.",
118848	//       "location": "query",
118849	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
118850	//       "type": "string"
118851	//     },
118852	//     "project": {
118853	//       "description": "Project ID for this request.",
118854	//       "location": "path",
118855	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
118856	//       "required": true,
118857	//       "type": "string"
118858	//     },
118859	//     "region": {
118860	//       "description": "Name of the region scoping this request.",
118861	//       "location": "path",
118862	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
118863	//       "required": true,
118864	//       "type": "string"
118865	//     },
118866	//     "requestId": {
118867	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
118868	//       "location": "query",
118869	//       "type": "string"
118870	//     }
118871	//   },
118872	//   "path": "{project}/regions/{region}/autoscalers",
118873	//   "request": {
118874	//     "$ref": "Autoscaler"
118875	//   },
118876	//   "response": {
118877	//     "$ref": "Operation"
118878	//   },
118879	//   "scopes": [
118880	//     "https://www.googleapis.com/auth/cloud-platform",
118881	//     "https://www.googleapis.com/auth/compute"
118882	//   ]
118883	// }
118884
118885}
118886
118887// method id "compute.regionAutoscalers.testIamPermissions":
118888
118889type RegionAutoscalersTestIamPermissionsCall struct {
118890	s                      *Service
118891	project                string
118892	region                 string
118893	resource               string
118894	testpermissionsrequest *TestPermissionsRequest
118895	urlParams_             gensupport.URLParams
118896	ctx_                   context.Context
118897	header_                http.Header
118898}
118899
118900// TestIamPermissions: Returns permissions that a caller has on the
118901// specified resource. (== suppress_warning http-rest-shadowed ==)
118902func (r *RegionAutoscalersService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *RegionAutoscalersTestIamPermissionsCall {
118903	c := &RegionAutoscalersTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
118904	c.project = project
118905	c.region = region
118906	c.resource = resource
118907	c.testpermissionsrequest = testpermissionsrequest
118908	return c
118909}
118910
118911// Fields allows partial responses to be retrieved. See
118912// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
118913// for more information.
118914func (c *RegionAutoscalersTestIamPermissionsCall) Fields(s ...googleapi.Field) *RegionAutoscalersTestIamPermissionsCall {
118915	c.urlParams_.Set("fields", googleapi.CombineFields(s))
118916	return c
118917}
118918
118919// Context sets the context to be used in this call's Do method. Any
118920// pending HTTP request will be aborted if the provided context is
118921// canceled.
118922func (c *RegionAutoscalersTestIamPermissionsCall) Context(ctx context.Context) *RegionAutoscalersTestIamPermissionsCall {
118923	c.ctx_ = ctx
118924	return c
118925}
118926
118927// Header returns an http.Header that can be modified by the caller to
118928// add HTTP headers to the request.
118929func (c *RegionAutoscalersTestIamPermissionsCall) Header() http.Header {
118930	if c.header_ == nil {
118931		c.header_ = make(http.Header)
118932	}
118933	return c.header_
118934}
118935
118936func (c *RegionAutoscalersTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
118937	reqHeaders := make(http.Header)
118938	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
118939	for k, v := range c.header_ {
118940		reqHeaders[k] = v
118941	}
118942	reqHeaders.Set("User-Agent", c.s.userAgent())
118943	var body io.Reader = nil
118944	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
118945	if err != nil {
118946		return nil, err
118947	}
118948	reqHeaders.Set("Content-Type", "application/json")
118949	c.urlParams_.Set("alt", alt)
118950	c.urlParams_.Set("prettyPrint", "false")
118951	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/autoscalers/{resource}/testIamPermissions")
118952	urls += "?" + c.urlParams_.Encode()
118953	req, err := http.NewRequest("POST", urls, body)
118954	if err != nil {
118955		return nil, err
118956	}
118957	req.Header = reqHeaders
118958	googleapi.Expand(req.URL, map[string]string{
118959		"project":  c.project,
118960		"region":   c.region,
118961		"resource": c.resource,
118962	})
118963	return gensupport.SendRequest(c.ctx_, c.s.client, req)
118964}
118965
118966// Do executes the "compute.regionAutoscalers.testIamPermissions" call.
118967// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
118968// non-2xx status code is an error. Response headers are in either
118969// *TestPermissionsResponse.ServerResponse.Header or (if a response was
118970// returned at all) in error.(*googleapi.Error).Header. Use
118971// googleapi.IsNotModified to check whether the returned error was
118972// because http.StatusNotModified was returned.
118973func (c *RegionAutoscalersTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
118974	gensupport.SetOptions(c.urlParams_, opts...)
118975	res, err := c.doRequest("json")
118976	if res != nil && res.StatusCode == http.StatusNotModified {
118977		if res.Body != nil {
118978			res.Body.Close()
118979		}
118980		return nil, &googleapi.Error{
118981			Code:   res.StatusCode,
118982			Header: res.Header,
118983		}
118984	}
118985	if err != nil {
118986		return nil, err
118987	}
118988	defer googleapi.CloseBody(res)
118989	if err := googleapi.CheckResponse(res); err != nil {
118990		return nil, err
118991	}
118992	ret := &TestPermissionsResponse{
118993		ServerResponse: googleapi.ServerResponse{
118994			Header:         res.Header,
118995			HTTPStatusCode: res.StatusCode,
118996		},
118997	}
118998	target := &ret
118999	if err := gensupport.DecodeResponse(target, res); err != nil {
119000		return nil, err
119001	}
119002	return ret, nil
119003	// {
119004	//   "description": "Returns permissions that a caller has on the specified resource. (== suppress_warning http-rest-shadowed ==)",
119005	//   "httpMethod": "POST",
119006	//   "id": "compute.regionAutoscalers.testIamPermissions",
119007	//   "parameterOrder": [
119008	//     "project",
119009	//     "region",
119010	//     "resource"
119011	//   ],
119012	//   "parameters": {
119013	//     "project": {
119014	//       "description": "Project ID for this request.",
119015	//       "location": "path",
119016	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
119017	//       "required": true,
119018	//       "type": "string"
119019	//     },
119020	//     "region": {
119021	//       "description": "The name of the region for this request.",
119022	//       "location": "path",
119023	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
119024	//       "required": true,
119025	//       "type": "string"
119026	//     },
119027	//     "resource": {
119028	//       "description": "Name or id of the resource for this request.",
119029	//       "location": "path",
119030	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
119031	//       "required": true,
119032	//       "type": "string"
119033	//     }
119034	//   },
119035	//   "path": "{project}/regions/{region}/autoscalers/{resource}/testIamPermissions",
119036	//   "request": {
119037	//     "$ref": "TestPermissionsRequest"
119038	//   },
119039	//   "response": {
119040	//     "$ref": "TestPermissionsResponse"
119041	//   },
119042	//   "scopes": [
119043	//     "https://www.googleapis.com/auth/cloud-platform",
119044	//     "https://www.googleapis.com/auth/compute",
119045	//     "https://www.googleapis.com/auth/compute.readonly"
119046	//   ]
119047	// }
119048
119049}
119050
119051// method id "compute.regionAutoscalers.update":
119052
119053type RegionAutoscalersUpdateCall struct {
119054	s          *Service
119055	project    string
119056	region     string
119057	autoscaler *Autoscaler
119058	urlParams_ gensupport.URLParams
119059	ctx_       context.Context
119060	header_    http.Header
119061}
119062
119063// Update: Updates an autoscaler in the specified project using the data
119064// included in the request. (== suppress_warning http-rest-shadowed ==)
119065func (r *RegionAutoscalersService) Update(project string, region string, autoscaler *Autoscaler) *RegionAutoscalersUpdateCall {
119066	c := &RegionAutoscalersUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
119067	c.project = project
119068	c.region = region
119069	c.autoscaler = autoscaler
119070	return c
119071}
119072
119073// Autoscaler sets the optional parameter "autoscaler": Name of the
119074// autoscaler to update.
119075func (c *RegionAutoscalersUpdateCall) Autoscaler(autoscaler string) *RegionAutoscalersUpdateCall {
119076	c.urlParams_.Set("autoscaler", autoscaler)
119077	return c
119078}
119079
119080// RequestId sets the optional parameter "requestId": An optional
119081// request ID to identify requests. Specify a unique request ID so that
119082// if you must retry your request, the server will know to ignore the
119083// request if it has already been completed.
119084//
119085// For example, consider a situation where you make an initial request
119086// and the request times out. If you make the request again with the
119087// same request ID, the server can check if original operation with the
119088// same request ID was received, and if so, will ignore the second
119089// request. This prevents clients from accidentally creating duplicate
119090// commitments.
119091//
119092// The request ID must be a valid UUID with the exception that zero UUID
119093// is not supported (00000000-0000-0000-0000-000000000000).
119094func (c *RegionAutoscalersUpdateCall) RequestId(requestId string) *RegionAutoscalersUpdateCall {
119095	c.urlParams_.Set("requestId", requestId)
119096	return c
119097}
119098
119099// Fields allows partial responses to be retrieved. See
119100// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
119101// for more information.
119102func (c *RegionAutoscalersUpdateCall) Fields(s ...googleapi.Field) *RegionAutoscalersUpdateCall {
119103	c.urlParams_.Set("fields", googleapi.CombineFields(s))
119104	return c
119105}
119106
119107// Context sets the context to be used in this call's Do method. Any
119108// pending HTTP request will be aborted if the provided context is
119109// canceled.
119110func (c *RegionAutoscalersUpdateCall) Context(ctx context.Context) *RegionAutoscalersUpdateCall {
119111	c.ctx_ = ctx
119112	return c
119113}
119114
119115// Header returns an http.Header that can be modified by the caller to
119116// add HTTP headers to the request.
119117func (c *RegionAutoscalersUpdateCall) Header() http.Header {
119118	if c.header_ == nil {
119119		c.header_ = make(http.Header)
119120	}
119121	return c.header_
119122}
119123
119124func (c *RegionAutoscalersUpdateCall) doRequest(alt string) (*http.Response, error) {
119125	reqHeaders := make(http.Header)
119126	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
119127	for k, v := range c.header_ {
119128		reqHeaders[k] = v
119129	}
119130	reqHeaders.Set("User-Agent", c.s.userAgent())
119131	var body io.Reader = nil
119132	body, err := googleapi.WithoutDataWrapper.JSONReader(c.autoscaler)
119133	if err != nil {
119134		return nil, err
119135	}
119136	reqHeaders.Set("Content-Type", "application/json")
119137	c.urlParams_.Set("alt", alt)
119138	c.urlParams_.Set("prettyPrint", "false")
119139	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/autoscalers")
119140	urls += "?" + c.urlParams_.Encode()
119141	req, err := http.NewRequest("PUT", urls, body)
119142	if err != nil {
119143		return nil, err
119144	}
119145	req.Header = reqHeaders
119146	googleapi.Expand(req.URL, map[string]string{
119147		"project": c.project,
119148		"region":  c.region,
119149	})
119150	return gensupport.SendRequest(c.ctx_, c.s.client, req)
119151}
119152
119153// Do executes the "compute.regionAutoscalers.update" call.
119154// Exactly one of *Operation or error will be non-nil. Any non-2xx
119155// status code is an error. Response headers are in either
119156// *Operation.ServerResponse.Header or (if a response was returned at
119157// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
119158// to check whether the returned error was because
119159// http.StatusNotModified was returned.
119160func (c *RegionAutoscalersUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
119161	gensupport.SetOptions(c.urlParams_, opts...)
119162	res, err := c.doRequest("json")
119163	if res != nil && res.StatusCode == http.StatusNotModified {
119164		if res.Body != nil {
119165			res.Body.Close()
119166		}
119167		return nil, &googleapi.Error{
119168			Code:   res.StatusCode,
119169			Header: res.Header,
119170		}
119171	}
119172	if err != nil {
119173		return nil, err
119174	}
119175	defer googleapi.CloseBody(res)
119176	if err := googleapi.CheckResponse(res); err != nil {
119177		return nil, err
119178	}
119179	ret := &Operation{
119180		ServerResponse: googleapi.ServerResponse{
119181			Header:         res.Header,
119182			HTTPStatusCode: res.StatusCode,
119183		},
119184	}
119185	target := &ret
119186	if err := gensupport.DecodeResponse(target, res); err != nil {
119187		return nil, err
119188	}
119189	return ret, nil
119190	// {
119191	//   "description": "Updates an autoscaler in the specified project using the data included in the request. (== suppress_warning http-rest-shadowed ==)",
119192	//   "httpMethod": "PUT",
119193	//   "id": "compute.regionAutoscalers.update",
119194	//   "parameterOrder": [
119195	//     "project",
119196	//     "region"
119197	//   ],
119198	//   "parameters": {
119199	//     "autoscaler": {
119200	//       "description": "Name of the autoscaler to update.",
119201	//       "location": "query",
119202	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
119203	//       "type": "string"
119204	//     },
119205	//     "project": {
119206	//       "description": "Project ID for this request.",
119207	//       "location": "path",
119208	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
119209	//       "required": true,
119210	//       "type": "string"
119211	//     },
119212	//     "region": {
119213	//       "description": "Name of the region scoping this request.",
119214	//       "location": "path",
119215	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
119216	//       "required": true,
119217	//       "type": "string"
119218	//     },
119219	//     "requestId": {
119220	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
119221	//       "location": "query",
119222	//       "type": "string"
119223	//     }
119224	//   },
119225	//   "path": "{project}/regions/{region}/autoscalers",
119226	//   "request": {
119227	//     "$ref": "Autoscaler"
119228	//   },
119229	//   "response": {
119230	//     "$ref": "Operation"
119231	//   },
119232	//   "scopes": [
119233	//     "https://www.googleapis.com/auth/cloud-platform",
119234	//     "https://www.googleapis.com/auth/compute"
119235	//   ]
119236	// }
119237
119238}
119239
119240// method id "compute.regionBackendServices.delete":
119241
119242type RegionBackendServicesDeleteCall struct {
119243	s              *Service
119244	project        string
119245	region         string
119246	backendService string
119247	urlParams_     gensupport.URLParams
119248	ctx_           context.Context
119249	header_        http.Header
119250}
119251
119252// Delete: Deletes the specified regional BackendService resource. (==
119253// suppress_warning http-rest-shadowed ==)
119254func (r *RegionBackendServicesService) Delete(project string, region string, backendService string) *RegionBackendServicesDeleteCall {
119255	c := &RegionBackendServicesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
119256	c.project = project
119257	c.region = region
119258	c.backendService = backendService
119259	return c
119260}
119261
119262// RequestId sets the optional parameter "requestId": An optional
119263// request ID to identify requests. Specify a unique request ID so that
119264// if you must retry your request, the server will know to ignore the
119265// request if it has already been completed.
119266//
119267// For example, consider a situation where you make an initial request
119268// and the request times out. If you make the request again with the
119269// same request ID, the server can check if original operation with the
119270// same request ID was received, and if so, will ignore the second
119271// request. This prevents clients from accidentally creating duplicate
119272// commitments.
119273//
119274// The request ID must be a valid UUID with the exception that zero UUID
119275// is not supported (00000000-0000-0000-0000-000000000000).
119276func (c *RegionBackendServicesDeleteCall) RequestId(requestId string) *RegionBackendServicesDeleteCall {
119277	c.urlParams_.Set("requestId", requestId)
119278	return c
119279}
119280
119281// Fields allows partial responses to be retrieved. See
119282// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
119283// for more information.
119284func (c *RegionBackendServicesDeleteCall) Fields(s ...googleapi.Field) *RegionBackendServicesDeleteCall {
119285	c.urlParams_.Set("fields", googleapi.CombineFields(s))
119286	return c
119287}
119288
119289// Context sets the context to be used in this call's Do method. Any
119290// pending HTTP request will be aborted if the provided context is
119291// canceled.
119292func (c *RegionBackendServicesDeleteCall) Context(ctx context.Context) *RegionBackendServicesDeleteCall {
119293	c.ctx_ = ctx
119294	return c
119295}
119296
119297// Header returns an http.Header that can be modified by the caller to
119298// add HTTP headers to the request.
119299func (c *RegionBackendServicesDeleteCall) Header() http.Header {
119300	if c.header_ == nil {
119301		c.header_ = make(http.Header)
119302	}
119303	return c.header_
119304}
119305
119306func (c *RegionBackendServicesDeleteCall) doRequest(alt string) (*http.Response, error) {
119307	reqHeaders := make(http.Header)
119308	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
119309	for k, v := range c.header_ {
119310		reqHeaders[k] = v
119311	}
119312	reqHeaders.Set("User-Agent", c.s.userAgent())
119313	var body io.Reader = nil
119314	c.urlParams_.Set("alt", alt)
119315	c.urlParams_.Set("prettyPrint", "false")
119316	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/backendServices/{backendService}")
119317	urls += "?" + c.urlParams_.Encode()
119318	req, err := http.NewRequest("DELETE", urls, body)
119319	if err != nil {
119320		return nil, err
119321	}
119322	req.Header = reqHeaders
119323	googleapi.Expand(req.URL, map[string]string{
119324		"project":        c.project,
119325		"region":         c.region,
119326		"backendService": c.backendService,
119327	})
119328	return gensupport.SendRequest(c.ctx_, c.s.client, req)
119329}
119330
119331// Do executes the "compute.regionBackendServices.delete" call.
119332// Exactly one of *Operation or error will be non-nil. Any non-2xx
119333// status code is an error. Response headers are in either
119334// *Operation.ServerResponse.Header or (if a response was returned at
119335// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
119336// to check whether the returned error was because
119337// http.StatusNotModified was returned.
119338func (c *RegionBackendServicesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
119339	gensupport.SetOptions(c.urlParams_, opts...)
119340	res, err := c.doRequest("json")
119341	if res != nil && res.StatusCode == http.StatusNotModified {
119342		if res.Body != nil {
119343			res.Body.Close()
119344		}
119345		return nil, &googleapi.Error{
119346			Code:   res.StatusCode,
119347			Header: res.Header,
119348		}
119349	}
119350	if err != nil {
119351		return nil, err
119352	}
119353	defer googleapi.CloseBody(res)
119354	if err := googleapi.CheckResponse(res); err != nil {
119355		return nil, err
119356	}
119357	ret := &Operation{
119358		ServerResponse: googleapi.ServerResponse{
119359			Header:         res.Header,
119360			HTTPStatusCode: res.StatusCode,
119361		},
119362	}
119363	target := &ret
119364	if err := gensupport.DecodeResponse(target, res); err != nil {
119365		return nil, err
119366	}
119367	return ret, nil
119368	// {
119369	//   "description": "Deletes the specified regional BackendService resource. (== suppress_warning http-rest-shadowed ==)",
119370	//   "httpMethod": "DELETE",
119371	//   "id": "compute.regionBackendServices.delete",
119372	//   "parameterOrder": [
119373	//     "project",
119374	//     "region",
119375	//     "backendService"
119376	//   ],
119377	//   "parameters": {
119378	//     "backendService": {
119379	//       "description": "Name of the BackendService resource to delete.",
119380	//       "location": "path",
119381	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
119382	//       "required": true,
119383	//       "type": "string"
119384	//     },
119385	//     "project": {
119386	//       "description": "Project ID for this request.",
119387	//       "location": "path",
119388	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
119389	//       "required": true,
119390	//       "type": "string"
119391	//     },
119392	//     "region": {
119393	//       "description": "Name of the region scoping this request.",
119394	//       "location": "path",
119395	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
119396	//       "required": true,
119397	//       "type": "string"
119398	//     },
119399	//     "requestId": {
119400	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
119401	//       "location": "query",
119402	//       "type": "string"
119403	//     }
119404	//   },
119405	//   "path": "{project}/regions/{region}/backendServices/{backendService}",
119406	//   "response": {
119407	//     "$ref": "Operation"
119408	//   },
119409	//   "scopes": [
119410	//     "https://www.googleapis.com/auth/cloud-platform",
119411	//     "https://www.googleapis.com/auth/compute"
119412	//   ]
119413	// }
119414
119415}
119416
119417// method id "compute.regionBackendServices.get":
119418
119419type RegionBackendServicesGetCall struct {
119420	s              *Service
119421	project        string
119422	region         string
119423	backendService string
119424	urlParams_     gensupport.URLParams
119425	ifNoneMatch_   string
119426	ctx_           context.Context
119427	header_        http.Header
119428}
119429
119430// Get: Returns the specified regional BackendService resource. (==
119431// suppress_warning http-rest-shadowed ==)
119432func (r *RegionBackendServicesService) Get(project string, region string, backendService string) *RegionBackendServicesGetCall {
119433	c := &RegionBackendServicesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
119434	c.project = project
119435	c.region = region
119436	c.backendService = backendService
119437	return c
119438}
119439
119440// Fields allows partial responses to be retrieved. See
119441// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
119442// for more information.
119443func (c *RegionBackendServicesGetCall) Fields(s ...googleapi.Field) *RegionBackendServicesGetCall {
119444	c.urlParams_.Set("fields", googleapi.CombineFields(s))
119445	return c
119446}
119447
119448// IfNoneMatch sets the optional parameter which makes the operation
119449// fail if the object's ETag matches the given value. This is useful for
119450// getting updates only after the object has changed since the last
119451// request. Use googleapi.IsNotModified to check whether the response
119452// error from Do is the result of In-None-Match.
119453func (c *RegionBackendServicesGetCall) IfNoneMatch(entityTag string) *RegionBackendServicesGetCall {
119454	c.ifNoneMatch_ = entityTag
119455	return c
119456}
119457
119458// Context sets the context to be used in this call's Do method. Any
119459// pending HTTP request will be aborted if the provided context is
119460// canceled.
119461func (c *RegionBackendServicesGetCall) Context(ctx context.Context) *RegionBackendServicesGetCall {
119462	c.ctx_ = ctx
119463	return c
119464}
119465
119466// Header returns an http.Header that can be modified by the caller to
119467// add HTTP headers to the request.
119468func (c *RegionBackendServicesGetCall) Header() http.Header {
119469	if c.header_ == nil {
119470		c.header_ = make(http.Header)
119471	}
119472	return c.header_
119473}
119474
119475func (c *RegionBackendServicesGetCall) doRequest(alt string) (*http.Response, error) {
119476	reqHeaders := make(http.Header)
119477	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
119478	for k, v := range c.header_ {
119479		reqHeaders[k] = v
119480	}
119481	reqHeaders.Set("User-Agent", c.s.userAgent())
119482	if c.ifNoneMatch_ != "" {
119483		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
119484	}
119485	var body io.Reader = nil
119486	c.urlParams_.Set("alt", alt)
119487	c.urlParams_.Set("prettyPrint", "false")
119488	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/backendServices/{backendService}")
119489	urls += "?" + c.urlParams_.Encode()
119490	req, err := http.NewRequest("GET", urls, body)
119491	if err != nil {
119492		return nil, err
119493	}
119494	req.Header = reqHeaders
119495	googleapi.Expand(req.URL, map[string]string{
119496		"project":        c.project,
119497		"region":         c.region,
119498		"backendService": c.backendService,
119499	})
119500	return gensupport.SendRequest(c.ctx_, c.s.client, req)
119501}
119502
119503// Do executes the "compute.regionBackendServices.get" call.
119504// Exactly one of *BackendService or error will be non-nil. Any non-2xx
119505// status code is an error. Response headers are in either
119506// *BackendService.ServerResponse.Header or (if a response was returned
119507// at all) in error.(*googleapi.Error).Header. Use
119508// googleapi.IsNotModified to check whether the returned error was
119509// because http.StatusNotModified was returned.
119510func (c *RegionBackendServicesGetCall) Do(opts ...googleapi.CallOption) (*BackendService, error) {
119511	gensupport.SetOptions(c.urlParams_, opts...)
119512	res, err := c.doRequest("json")
119513	if res != nil && res.StatusCode == http.StatusNotModified {
119514		if res.Body != nil {
119515			res.Body.Close()
119516		}
119517		return nil, &googleapi.Error{
119518			Code:   res.StatusCode,
119519			Header: res.Header,
119520		}
119521	}
119522	if err != nil {
119523		return nil, err
119524	}
119525	defer googleapi.CloseBody(res)
119526	if err := googleapi.CheckResponse(res); err != nil {
119527		return nil, err
119528	}
119529	ret := &BackendService{
119530		ServerResponse: googleapi.ServerResponse{
119531			Header:         res.Header,
119532			HTTPStatusCode: res.StatusCode,
119533		},
119534	}
119535	target := &ret
119536	if err := gensupport.DecodeResponse(target, res); err != nil {
119537		return nil, err
119538	}
119539	return ret, nil
119540	// {
119541	//   "description": "Returns the specified regional BackendService resource. (== suppress_warning http-rest-shadowed ==)",
119542	//   "httpMethod": "GET",
119543	//   "id": "compute.regionBackendServices.get",
119544	//   "parameterOrder": [
119545	//     "project",
119546	//     "region",
119547	//     "backendService"
119548	//   ],
119549	//   "parameters": {
119550	//     "backendService": {
119551	//       "description": "Name of the BackendService resource to return.",
119552	//       "location": "path",
119553	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
119554	//       "required": true,
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	//   },
119572	//   "path": "{project}/regions/{region}/backendServices/{backendService}",
119573	//   "response": {
119574	//     "$ref": "BackendService"
119575	//   },
119576	//   "scopes": [
119577	//     "https://www.googleapis.com/auth/cloud-platform",
119578	//     "https://www.googleapis.com/auth/compute",
119579	//     "https://www.googleapis.com/auth/compute.readonly"
119580	//   ]
119581	// }
119582
119583}
119584
119585// method id "compute.regionBackendServices.getHealth":
119586
119587type RegionBackendServicesGetHealthCall struct {
119588	s                      *Service
119589	project                string
119590	region                 string
119591	backendService         string
119592	resourcegroupreference *ResourceGroupReference
119593	urlParams_             gensupport.URLParams
119594	ctx_                   context.Context
119595	header_                http.Header
119596}
119597
119598// GetHealth: Gets the most recent health check results for this
119599// regional BackendService. (== suppress_warning http-rest-shadowed ==)
119600func (r *RegionBackendServicesService) GetHealth(project string, region string, backendService string, resourcegroupreference *ResourceGroupReference) *RegionBackendServicesGetHealthCall {
119601	c := &RegionBackendServicesGetHealthCall{s: r.s, urlParams_: make(gensupport.URLParams)}
119602	c.project = project
119603	c.region = region
119604	c.backendService = backendService
119605	c.resourcegroupreference = resourcegroupreference
119606	return c
119607}
119608
119609// Fields allows partial responses to be retrieved. See
119610// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
119611// for more information.
119612func (c *RegionBackendServicesGetHealthCall) Fields(s ...googleapi.Field) *RegionBackendServicesGetHealthCall {
119613	c.urlParams_.Set("fields", googleapi.CombineFields(s))
119614	return c
119615}
119616
119617// Context sets the context to be used in this call's Do method. Any
119618// pending HTTP request will be aborted if the provided context is
119619// canceled.
119620func (c *RegionBackendServicesGetHealthCall) Context(ctx context.Context) *RegionBackendServicesGetHealthCall {
119621	c.ctx_ = ctx
119622	return c
119623}
119624
119625// Header returns an http.Header that can be modified by the caller to
119626// add HTTP headers to the request.
119627func (c *RegionBackendServicesGetHealthCall) Header() http.Header {
119628	if c.header_ == nil {
119629		c.header_ = make(http.Header)
119630	}
119631	return c.header_
119632}
119633
119634func (c *RegionBackendServicesGetHealthCall) doRequest(alt string) (*http.Response, error) {
119635	reqHeaders := make(http.Header)
119636	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
119637	for k, v := range c.header_ {
119638		reqHeaders[k] = v
119639	}
119640	reqHeaders.Set("User-Agent", c.s.userAgent())
119641	var body io.Reader = nil
119642	body, err := googleapi.WithoutDataWrapper.JSONReader(c.resourcegroupreference)
119643	if err != nil {
119644		return nil, err
119645	}
119646	reqHeaders.Set("Content-Type", "application/json")
119647	c.urlParams_.Set("alt", alt)
119648	c.urlParams_.Set("prettyPrint", "false")
119649	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/backendServices/{backendService}/getHealth")
119650	urls += "?" + c.urlParams_.Encode()
119651	req, err := http.NewRequest("POST", urls, body)
119652	if err != nil {
119653		return nil, err
119654	}
119655	req.Header = reqHeaders
119656	googleapi.Expand(req.URL, map[string]string{
119657		"project":        c.project,
119658		"region":         c.region,
119659		"backendService": c.backendService,
119660	})
119661	return gensupport.SendRequest(c.ctx_, c.s.client, req)
119662}
119663
119664// Do executes the "compute.regionBackendServices.getHealth" call.
119665// Exactly one of *BackendServiceGroupHealth or error will be non-nil.
119666// Any non-2xx status code is an error. Response headers are in either
119667// *BackendServiceGroupHealth.ServerResponse.Header or (if a response
119668// was returned at all) in error.(*googleapi.Error).Header. Use
119669// googleapi.IsNotModified to check whether the returned error was
119670// because http.StatusNotModified was returned.
119671func (c *RegionBackendServicesGetHealthCall) Do(opts ...googleapi.CallOption) (*BackendServiceGroupHealth, error) {
119672	gensupport.SetOptions(c.urlParams_, opts...)
119673	res, err := c.doRequest("json")
119674	if res != nil && res.StatusCode == http.StatusNotModified {
119675		if res.Body != nil {
119676			res.Body.Close()
119677		}
119678		return nil, &googleapi.Error{
119679			Code:   res.StatusCode,
119680			Header: res.Header,
119681		}
119682	}
119683	if err != nil {
119684		return nil, err
119685	}
119686	defer googleapi.CloseBody(res)
119687	if err := googleapi.CheckResponse(res); err != nil {
119688		return nil, err
119689	}
119690	ret := &BackendServiceGroupHealth{
119691		ServerResponse: googleapi.ServerResponse{
119692			Header:         res.Header,
119693			HTTPStatusCode: res.StatusCode,
119694		},
119695	}
119696	target := &ret
119697	if err := gensupport.DecodeResponse(target, res); err != nil {
119698		return nil, err
119699	}
119700	return ret, nil
119701	// {
119702	//   "description": "Gets the most recent health check results for this regional BackendService. (== suppress_warning http-rest-shadowed ==)",
119703	//   "httpMethod": "POST",
119704	//   "id": "compute.regionBackendServices.getHealth",
119705	//   "parameterOrder": [
119706	//     "project",
119707	//     "region",
119708	//     "backendService"
119709	//   ],
119710	//   "parameters": {
119711	//     "backendService": {
119712	//       "description": "Name of the BackendService resource for which to get health.",
119713	//       "location": "path",
119714	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
119715	//       "required": true,
119716	//       "type": "string"
119717	//     },
119718	//     "project": {
119719	//       "location": "path",
119720	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
119721	//       "required": true,
119722	//       "type": "string"
119723	//     },
119724	//     "region": {
119725	//       "description": "Name of the region scoping this request.",
119726	//       "location": "path",
119727	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
119728	//       "required": true,
119729	//       "type": "string"
119730	//     }
119731	//   },
119732	//   "path": "{project}/regions/{region}/backendServices/{backendService}/getHealth",
119733	//   "request": {
119734	//     "$ref": "ResourceGroupReference"
119735	//   },
119736	//   "response": {
119737	//     "$ref": "BackendServiceGroupHealth"
119738	//   },
119739	//   "scopes": [
119740	//     "https://www.googleapis.com/auth/cloud-platform",
119741	//     "https://www.googleapis.com/auth/compute",
119742	//     "https://www.googleapis.com/auth/compute.readonly"
119743	//   ]
119744	// }
119745
119746}
119747
119748// method id "compute.regionBackendServices.insert":
119749
119750type RegionBackendServicesInsertCall struct {
119751	s              *Service
119752	project        string
119753	region         string
119754	backendservice *BackendService
119755	urlParams_     gensupport.URLParams
119756	ctx_           context.Context
119757	header_        http.Header
119758}
119759
119760// Insert: Creates a regional BackendService resource in the specified
119761// project using the data included in the request. There are several
119762// restrictions and guidelines to keep in mind when creating a regional
119763// backend service. Read  Restrictions and Guidelines for more
119764// information. (== suppress_warning http-rest-shadowed ==)
119765func (r *RegionBackendServicesService) Insert(project string, region string, backendservice *BackendService) *RegionBackendServicesInsertCall {
119766	c := &RegionBackendServicesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
119767	c.project = project
119768	c.region = region
119769	c.backendservice = backendservice
119770	return c
119771}
119772
119773// RequestId sets the optional parameter "requestId": An optional
119774// request ID to identify requests. Specify a unique request ID so that
119775// if you must retry your request, the server will know to ignore the
119776// request if it has already been completed.
119777//
119778// For example, consider a situation where you make an initial request
119779// and the request times out. If you make the request again with the
119780// same request ID, the server can check if original operation with the
119781// same request ID was received, and if so, will ignore the second
119782// request. This prevents clients from accidentally creating duplicate
119783// commitments.
119784//
119785// The request ID must be a valid UUID with the exception that zero UUID
119786// is not supported (00000000-0000-0000-0000-000000000000).
119787func (c *RegionBackendServicesInsertCall) RequestId(requestId string) *RegionBackendServicesInsertCall {
119788	c.urlParams_.Set("requestId", requestId)
119789	return c
119790}
119791
119792// Fields allows partial responses to be retrieved. See
119793// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
119794// for more information.
119795func (c *RegionBackendServicesInsertCall) Fields(s ...googleapi.Field) *RegionBackendServicesInsertCall {
119796	c.urlParams_.Set("fields", googleapi.CombineFields(s))
119797	return c
119798}
119799
119800// Context sets the context to be used in this call's Do method. Any
119801// pending HTTP request will be aborted if the provided context is
119802// canceled.
119803func (c *RegionBackendServicesInsertCall) Context(ctx context.Context) *RegionBackendServicesInsertCall {
119804	c.ctx_ = ctx
119805	return c
119806}
119807
119808// Header returns an http.Header that can be modified by the caller to
119809// add HTTP headers to the request.
119810func (c *RegionBackendServicesInsertCall) Header() http.Header {
119811	if c.header_ == nil {
119812		c.header_ = make(http.Header)
119813	}
119814	return c.header_
119815}
119816
119817func (c *RegionBackendServicesInsertCall) doRequest(alt string) (*http.Response, error) {
119818	reqHeaders := make(http.Header)
119819	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
119820	for k, v := range c.header_ {
119821		reqHeaders[k] = v
119822	}
119823	reqHeaders.Set("User-Agent", c.s.userAgent())
119824	var body io.Reader = nil
119825	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendservice)
119826	if err != nil {
119827		return nil, err
119828	}
119829	reqHeaders.Set("Content-Type", "application/json")
119830	c.urlParams_.Set("alt", alt)
119831	c.urlParams_.Set("prettyPrint", "false")
119832	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/backendServices")
119833	urls += "?" + c.urlParams_.Encode()
119834	req, err := http.NewRequest("POST", urls, body)
119835	if err != nil {
119836		return nil, err
119837	}
119838	req.Header = reqHeaders
119839	googleapi.Expand(req.URL, map[string]string{
119840		"project": c.project,
119841		"region":  c.region,
119842	})
119843	return gensupport.SendRequest(c.ctx_, c.s.client, req)
119844}
119845
119846// Do executes the "compute.regionBackendServices.insert" call.
119847// Exactly one of *Operation or error will be non-nil. Any non-2xx
119848// status code is an error. Response headers are in either
119849// *Operation.ServerResponse.Header or (if a response was returned at
119850// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
119851// to check whether the returned error was because
119852// http.StatusNotModified was returned.
119853func (c *RegionBackendServicesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
119854	gensupport.SetOptions(c.urlParams_, opts...)
119855	res, err := c.doRequest("json")
119856	if res != nil && res.StatusCode == http.StatusNotModified {
119857		if res.Body != nil {
119858			res.Body.Close()
119859		}
119860		return nil, &googleapi.Error{
119861			Code:   res.StatusCode,
119862			Header: res.Header,
119863		}
119864	}
119865	if err != nil {
119866		return nil, err
119867	}
119868	defer googleapi.CloseBody(res)
119869	if err := googleapi.CheckResponse(res); err != nil {
119870		return nil, err
119871	}
119872	ret := &Operation{
119873		ServerResponse: googleapi.ServerResponse{
119874			Header:         res.Header,
119875			HTTPStatusCode: res.StatusCode,
119876		},
119877	}
119878	target := &ret
119879	if err := gensupport.DecodeResponse(target, res); err != nil {
119880		return nil, err
119881	}
119882	return ret, nil
119883	// {
119884	//   "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. (== suppress_warning http-rest-shadowed ==)",
119885	//   "httpMethod": "POST",
119886	//   "id": "compute.regionBackendServices.insert",
119887	//   "parameterOrder": [
119888	//     "project",
119889	//     "region"
119890	//   ],
119891	//   "parameters": {
119892	//     "project": {
119893	//       "description": "Project ID for this request.",
119894	//       "location": "path",
119895	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
119896	//       "required": true,
119897	//       "type": "string"
119898	//     },
119899	//     "region": {
119900	//       "description": "Name of the region scoping this request.",
119901	//       "location": "path",
119902	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
119903	//       "required": true,
119904	//       "type": "string"
119905	//     },
119906	//     "requestId": {
119907	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
119908	//       "location": "query",
119909	//       "type": "string"
119910	//     }
119911	//   },
119912	//   "path": "{project}/regions/{region}/backendServices",
119913	//   "request": {
119914	//     "$ref": "BackendService"
119915	//   },
119916	//   "response": {
119917	//     "$ref": "Operation"
119918	//   },
119919	//   "scopes": [
119920	//     "https://www.googleapis.com/auth/cloud-platform",
119921	//     "https://www.googleapis.com/auth/compute"
119922	//   ]
119923	// }
119924
119925}
119926
119927// method id "compute.regionBackendServices.list":
119928
119929type RegionBackendServicesListCall struct {
119930	s            *Service
119931	project      string
119932	region       string
119933	urlParams_   gensupport.URLParams
119934	ifNoneMatch_ string
119935	ctx_         context.Context
119936	header_      http.Header
119937}
119938
119939// List: Retrieves the list of regional BackendService resources
119940// available to the specified project in the given region. (==
119941// suppress_warning http-rest-shadowed ==)
119942func (r *RegionBackendServicesService) List(project string, region string) *RegionBackendServicesListCall {
119943	c := &RegionBackendServicesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
119944	c.project = project
119945	c.region = region
119946	return c
119947}
119948
119949// Filter sets the optional parameter "filter": A filter expression that
119950// filters resources listed in the response. The expression must specify
119951// the field name, a comparison operator, and the value that you want to
119952// use for filtering. The value must be a string, a number, or a
119953// boolean. The comparison operator must be either =, !=, >, or <.
119954//
119955// For example, if you are filtering Compute Engine instances, you can
119956// exclude instances named example-instance by specifying name !=
119957// example-instance.
119958//
119959// You can also filter nested fields. For example, you could specify
119960// scheduling.automaticRestart = false to include instances only if they
119961// are not scheduled for automatic restarts. You can use filtering on
119962// nested fields to filter based on resource labels.
119963//
119964// To filter on multiple expressions, provide each separate expression
119965// within parentheses. For example, (scheduling.automaticRestart = true)
119966// (cpuPlatform = "Intel Skylake"). By default, each expression is an
119967// AND expression. However, you can include AND and OR expressions
119968// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
119969// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
119970// true).
119971func (c *RegionBackendServicesListCall) Filter(filter string) *RegionBackendServicesListCall {
119972	c.urlParams_.Set("filter", filter)
119973	return c
119974}
119975
119976// MaxResults sets the optional parameter "maxResults": The maximum
119977// number of results per page that should be returned. If the number of
119978// available results is larger than maxResults, Compute Engine returns a
119979// nextPageToken that can be used to get the next page of results in
119980// subsequent list requests. Acceptable values are 0 to 500, inclusive.
119981// (Default: 500)
119982func (c *RegionBackendServicesListCall) MaxResults(maxResults int64) *RegionBackendServicesListCall {
119983	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
119984	return c
119985}
119986
119987// OrderBy sets the optional parameter "orderBy": Sorts list results by
119988// a certain order. By default, results are returned in alphanumerical
119989// order based on the resource name.
119990//
119991// You can also sort results in descending order based on the creation
119992// timestamp using orderBy="creationTimestamp desc". This sorts results
119993// based on the creationTimestamp field in reverse chronological order
119994// (newest result first). Use this to sort resources like operations so
119995// that the newest operation is returned first.
119996//
119997// Currently, only sorting by name or creationTimestamp desc is
119998// supported.
119999func (c *RegionBackendServicesListCall) OrderBy(orderBy string) *RegionBackendServicesListCall {
120000	c.urlParams_.Set("orderBy", orderBy)
120001	return c
120002}
120003
120004// PageToken sets the optional parameter "pageToken": Specifies a page
120005// token to use. Set pageToken to the nextPageToken returned by a
120006// previous list request to get the next page of results.
120007func (c *RegionBackendServicesListCall) PageToken(pageToken string) *RegionBackendServicesListCall {
120008	c.urlParams_.Set("pageToken", pageToken)
120009	return c
120010}
120011
120012// Fields allows partial responses to be retrieved. See
120013// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
120014// for more information.
120015func (c *RegionBackendServicesListCall) Fields(s ...googleapi.Field) *RegionBackendServicesListCall {
120016	c.urlParams_.Set("fields", googleapi.CombineFields(s))
120017	return c
120018}
120019
120020// IfNoneMatch sets the optional parameter which makes the operation
120021// fail if the object's ETag matches the given value. This is useful for
120022// getting updates only after the object has changed since the last
120023// request. Use googleapi.IsNotModified to check whether the response
120024// error from Do is the result of In-None-Match.
120025func (c *RegionBackendServicesListCall) IfNoneMatch(entityTag string) *RegionBackendServicesListCall {
120026	c.ifNoneMatch_ = entityTag
120027	return c
120028}
120029
120030// Context sets the context to be used in this call's Do method. Any
120031// pending HTTP request will be aborted if the provided context is
120032// canceled.
120033func (c *RegionBackendServicesListCall) Context(ctx context.Context) *RegionBackendServicesListCall {
120034	c.ctx_ = ctx
120035	return c
120036}
120037
120038// Header returns an http.Header that can be modified by the caller to
120039// add HTTP headers to the request.
120040func (c *RegionBackendServicesListCall) Header() http.Header {
120041	if c.header_ == nil {
120042		c.header_ = make(http.Header)
120043	}
120044	return c.header_
120045}
120046
120047func (c *RegionBackendServicesListCall) doRequest(alt string) (*http.Response, error) {
120048	reqHeaders := make(http.Header)
120049	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
120050	for k, v := range c.header_ {
120051		reqHeaders[k] = v
120052	}
120053	reqHeaders.Set("User-Agent", c.s.userAgent())
120054	if c.ifNoneMatch_ != "" {
120055		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
120056	}
120057	var body io.Reader = nil
120058	c.urlParams_.Set("alt", alt)
120059	c.urlParams_.Set("prettyPrint", "false")
120060	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/backendServices")
120061	urls += "?" + c.urlParams_.Encode()
120062	req, err := http.NewRequest("GET", urls, body)
120063	if err != nil {
120064		return nil, err
120065	}
120066	req.Header = reqHeaders
120067	googleapi.Expand(req.URL, map[string]string{
120068		"project": c.project,
120069		"region":  c.region,
120070	})
120071	return gensupport.SendRequest(c.ctx_, c.s.client, req)
120072}
120073
120074// Do executes the "compute.regionBackendServices.list" call.
120075// Exactly one of *BackendServiceList or error will be non-nil. Any
120076// non-2xx status code is an error. Response headers are in either
120077// *BackendServiceList.ServerResponse.Header or (if a response was
120078// returned at all) in error.(*googleapi.Error).Header. Use
120079// googleapi.IsNotModified to check whether the returned error was
120080// because http.StatusNotModified was returned.
120081func (c *RegionBackendServicesListCall) Do(opts ...googleapi.CallOption) (*BackendServiceList, error) {
120082	gensupport.SetOptions(c.urlParams_, opts...)
120083	res, err := c.doRequest("json")
120084	if res != nil && res.StatusCode == http.StatusNotModified {
120085		if res.Body != nil {
120086			res.Body.Close()
120087		}
120088		return nil, &googleapi.Error{
120089			Code:   res.StatusCode,
120090			Header: res.Header,
120091		}
120092	}
120093	if err != nil {
120094		return nil, err
120095	}
120096	defer googleapi.CloseBody(res)
120097	if err := googleapi.CheckResponse(res); err != nil {
120098		return nil, err
120099	}
120100	ret := &BackendServiceList{
120101		ServerResponse: googleapi.ServerResponse{
120102			Header:         res.Header,
120103			HTTPStatusCode: res.StatusCode,
120104		},
120105	}
120106	target := &ret
120107	if err := gensupport.DecodeResponse(target, res); err != nil {
120108		return nil, err
120109	}
120110	return ret, nil
120111	// {
120112	//   "description": "Retrieves the list of regional BackendService resources available to the specified project in the given region. (== suppress_warning http-rest-shadowed ==)",
120113	//   "httpMethod": "GET",
120114	//   "id": "compute.regionBackendServices.list",
120115	//   "parameterOrder": [
120116	//     "project",
120117	//     "region"
120118	//   ],
120119	//   "parameters": {
120120	//     "filter": {
120121	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
120122	//       "location": "query",
120123	//       "type": "string"
120124	//     },
120125	//     "maxResults": {
120126	//       "default": "500",
120127	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
120128	//       "format": "uint32",
120129	//       "location": "query",
120130	//       "minimum": "0",
120131	//       "type": "integer"
120132	//     },
120133	//     "orderBy": {
120134	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
120135	//       "location": "query",
120136	//       "type": "string"
120137	//     },
120138	//     "pageToken": {
120139	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
120140	//       "location": "query",
120141	//       "type": "string"
120142	//     },
120143	//     "project": {
120144	//       "description": "Project ID for this request.",
120145	//       "location": "path",
120146	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
120147	//       "required": true,
120148	//       "type": "string"
120149	//     },
120150	//     "region": {
120151	//       "description": "Name of the region scoping this request.",
120152	//       "location": "path",
120153	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
120154	//       "required": true,
120155	//       "type": "string"
120156	//     }
120157	//   },
120158	//   "path": "{project}/regions/{region}/backendServices",
120159	//   "response": {
120160	//     "$ref": "BackendServiceList"
120161	//   },
120162	//   "scopes": [
120163	//     "https://www.googleapis.com/auth/cloud-platform",
120164	//     "https://www.googleapis.com/auth/compute",
120165	//     "https://www.googleapis.com/auth/compute.readonly"
120166	//   ]
120167	// }
120168
120169}
120170
120171// Pages invokes f for each page of results.
120172// A non-nil error returned from f will halt the iteration.
120173// The provided context supersedes any context provided to the Context method.
120174func (c *RegionBackendServicesListCall) Pages(ctx context.Context, f func(*BackendServiceList) error) error {
120175	c.ctx_ = ctx
120176	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
120177	for {
120178		x, err := c.Do()
120179		if err != nil {
120180			return err
120181		}
120182		if err := f(x); err != nil {
120183			return err
120184		}
120185		if x.NextPageToken == "" {
120186			return nil
120187		}
120188		c.PageToken(x.NextPageToken)
120189	}
120190}
120191
120192// method id "compute.regionBackendServices.patch":
120193
120194type RegionBackendServicesPatchCall struct {
120195	s              *Service
120196	project        string
120197	region         string
120198	backendService string
120199	backendservice *BackendService
120200	urlParams_     gensupport.URLParams
120201	ctx_           context.Context
120202	header_        http.Header
120203}
120204
120205// Patch: Updates the specified regional BackendService resource with
120206// the data included in the request. There are several restrictions and
120207// guidelines to keep in mind when updating a backend service. Read
120208// Restrictions and Guidelines for more information. This method
120209// supports PATCH semantics and uses the JSON merge patch format and
120210// processing rules. (== suppress_warning http-rest-shadowed ==)
120211func (r *RegionBackendServicesService) Patch(project string, region string, backendService string, backendservice *BackendService) *RegionBackendServicesPatchCall {
120212	c := &RegionBackendServicesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
120213	c.project = project
120214	c.region = region
120215	c.backendService = backendService
120216	c.backendservice = backendservice
120217	return c
120218}
120219
120220// RequestId sets the optional parameter "requestId": An optional
120221// request ID to identify requests. Specify a unique request ID so that
120222// if you must retry your request, the server will know to ignore the
120223// request if it has already been completed.
120224//
120225// For example, consider a situation where you make an initial request
120226// and the request times out. If you make the request again with the
120227// same request ID, the server can check if original operation with the
120228// same request ID was received, and if so, will ignore the second
120229// request. This prevents clients from accidentally creating duplicate
120230// commitments.
120231//
120232// The request ID must be a valid UUID with the exception that zero UUID
120233// is not supported (00000000-0000-0000-0000-000000000000).
120234func (c *RegionBackendServicesPatchCall) RequestId(requestId string) *RegionBackendServicesPatchCall {
120235	c.urlParams_.Set("requestId", requestId)
120236	return c
120237}
120238
120239// Fields allows partial responses to be retrieved. See
120240// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
120241// for more information.
120242func (c *RegionBackendServicesPatchCall) Fields(s ...googleapi.Field) *RegionBackendServicesPatchCall {
120243	c.urlParams_.Set("fields", googleapi.CombineFields(s))
120244	return c
120245}
120246
120247// Context sets the context to be used in this call's Do method. Any
120248// pending HTTP request will be aborted if the provided context is
120249// canceled.
120250func (c *RegionBackendServicesPatchCall) Context(ctx context.Context) *RegionBackendServicesPatchCall {
120251	c.ctx_ = ctx
120252	return c
120253}
120254
120255// Header returns an http.Header that can be modified by the caller to
120256// add HTTP headers to the request.
120257func (c *RegionBackendServicesPatchCall) Header() http.Header {
120258	if c.header_ == nil {
120259		c.header_ = make(http.Header)
120260	}
120261	return c.header_
120262}
120263
120264func (c *RegionBackendServicesPatchCall) doRequest(alt string) (*http.Response, error) {
120265	reqHeaders := make(http.Header)
120266	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
120267	for k, v := range c.header_ {
120268		reqHeaders[k] = v
120269	}
120270	reqHeaders.Set("User-Agent", c.s.userAgent())
120271	var body io.Reader = nil
120272	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendservice)
120273	if err != nil {
120274		return nil, err
120275	}
120276	reqHeaders.Set("Content-Type", "application/json")
120277	c.urlParams_.Set("alt", alt)
120278	c.urlParams_.Set("prettyPrint", "false")
120279	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/backendServices/{backendService}")
120280	urls += "?" + c.urlParams_.Encode()
120281	req, err := http.NewRequest("PATCH", urls, body)
120282	if err != nil {
120283		return nil, err
120284	}
120285	req.Header = reqHeaders
120286	googleapi.Expand(req.URL, map[string]string{
120287		"project":        c.project,
120288		"region":         c.region,
120289		"backendService": c.backendService,
120290	})
120291	return gensupport.SendRequest(c.ctx_, c.s.client, req)
120292}
120293
120294// Do executes the "compute.regionBackendServices.patch" call.
120295// Exactly one of *Operation or error will be non-nil. Any non-2xx
120296// status code is an error. Response headers are in either
120297// *Operation.ServerResponse.Header or (if a response was returned at
120298// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
120299// to check whether the returned error was because
120300// http.StatusNotModified was returned.
120301func (c *RegionBackendServicesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
120302	gensupport.SetOptions(c.urlParams_, opts...)
120303	res, err := c.doRequest("json")
120304	if res != nil && res.StatusCode == http.StatusNotModified {
120305		if res.Body != nil {
120306			res.Body.Close()
120307		}
120308		return nil, &googleapi.Error{
120309			Code:   res.StatusCode,
120310			Header: res.Header,
120311		}
120312	}
120313	if err != nil {
120314		return nil, err
120315	}
120316	defer googleapi.CloseBody(res)
120317	if err := googleapi.CheckResponse(res); err != nil {
120318		return nil, err
120319	}
120320	ret := &Operation{
120321		ServerResponse: googleapi.ServerResponse{
120322			Header:         res.Header,
120323			HTTPStatusCode: res.StatusCode,
120324		},
120325	}
120326	target := &ret
120327	if err := gensupport.DecodeResponse(target, res); err != nil {
120328		return nil, err
120329	}
120330	return ret, nil
120331	// {
120332	//   "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. (== suppress_warning http-rest-shadowed ==)",
120333	//   "httpMethod": "PATCH",
120334	//   "id": "compute.regionBackendServices.patch",
120335	//   "parameterOrder": [
120336	//     "project",
120337	//     "region",
120338	//     "backendService"
120339	//   ],
120340	//   "parameters": {
120341	//     "backendService": {
120342	//       "description": "Name of the BackendService resource to patch.",
120343	//       "location": "path",
120344	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
120345	//       "required": true,
120346	//       "type": "string"
120347	//     },
120348	//     "project": {
120349	//       "description": "Project ID for this request.",
120350	//       "location": "path",
120351	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
120352	//       "required": true,
120353	//       "type": "string"
120354	//     },
120355	//     "region": {
120356	//       "description": "Name of the region scoping this request.",
120357	//       "location": "path",
120358	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
120359	//       "required": true,
120360	//       "type": "string"
120361	//     },
120362	//     "requestId": {
120363	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
120364	//       "location": "query",
120365	//       "type": "string"
120366	//     }
120367	//   },
120368	//   "path": "{project}/regions/{region}/backendServices/{backendService}",
120369	//   "request": {
120370	//     "$ref": "BackendService"
120371	//   },
120372	//   "response": {
120373	//     "$ref": "Operation"
120374	//   },
120375	//   "scopes": [
120376	//     "https://www.googleapis.com/auth/cloud-platform",
120377	//     "https://www.googleapis.com/auth/compute"
120378	//   ]
120379	// }
120380
120381}
120382
120383// method id "compute.regionBackendServices.testIamPermissions":
120384
120385type RegionBackendServicesTestIamPermissionsCall struct {
120386	s                      *Service
120387	project                string
120388	region                 string
120389	resource               string
120390	testpermissionsrequest *TestPermissionsRequest
120391	urlParams_             gensupport.URLParams
120392	ctx_                   context.Context
120393	header_                http.Header
120394}
120395
120396// TestIamPermissions: Returns permissions that a caller has on the
120397// specified resource. (== suppress_warning http-rest-shadowed ==)
120398func (r *RegionBackendServicesService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *RegionBackendServicesTestIamPermissionsCall {
120399	c := &RegionBackendServicesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
120400	c.project = project
120401	c.region = region
120402	c.resource = resource
120403	c.testpermissionsrequest = testpermissionsrequest
120404	return c
120405}
120406
120407// Fields allows partial responses to be retrieved. See
120408// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
120409// for more information.
120410func (c *RegionBackendServicesTestIamPermissionsCall) Fields(s ...googleapi.Field) *RegionBackendServicesTestIamPermissionsCall {
120411	c.urlParams_.Set("fields", googleapi.CombineFields(s))
120412	return c
120413}
120414
120415// Context sets the context to be used in this call's Do method. Any
120416// pending HTTP request will be aborted if the provided context is
120417// canceled.
120418func (c *RegionBackendServicesTestIamPermissionsCall) Context(ctx context.Context) *RegionBackendServicesTestIamPermissionsCall {
120419	c.ctx_ = ctx
120420	return c
120421}
120422
120423// Header returns an http.Header that can be modified by the caller to
120424// add HTTP headers to the request.
120425func (c *RegionBackendServicesTestIamPermissionsCall) Header() http.Header {
120426	if c.header_ == nil {
120427		c.header_ = make(http.Header)
120428	}
120429	return c.header_
120430}
120431
120432func (c *RegionBackendServicesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
120433	reqHeaders := make(http.Header)
120434	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
120435	for k, v := range c.header_ {
120436		reqHeaders[k] = v
120437	}
120438	reqHeaders.Set("User-Agent", c.s.userAgent())
120439	var body io.Reader = nil
120440	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
120441	if err != nil {
120442		return nil, err
120443	}
120444	reqHeaders.Set("Content-Type", "application/json")
120445	c.urlParams_.Set("alt", alt)
120446	c.urlParams_.Set("prettyPrint", "false")
120447	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/backendServices/{resource}/testIamPermissions")
120448	urls += "?" + c.urlParams_.Encode()
120449	req, err := http.NewRequest("POST", urls, body)
120450	if err != nil {
120451		return nil, err
120452	}
120453	req.Header = reqHeaders
120454	googleapi.Expand(req.URL, map[string]string{
120455		"project":  c.project,
120456		"region":   c.region,
120457		"resource": c.resource,
120458	})
120459	return gensupport.SendRequest(c.ctx_, c.s.client, req)
120460}
120461
120462// Do executes the "compute.regionBackendServices.testIamPermissions" call.
120463// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
120464// non-2xx status code is an error. Response headers are in either
120465// *TestPermissionsResponse.ServerResponse.Header or (if a response was
120466// returned at all) in error.(*googleapi.Error).Header. Use
120467// googleapi.IsNotModified to check whether the returned error was
120468// because http.StatusNotModified was returned.
120469func (c *RegionBackendServicesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
120470	gensupport.SetOptions(c.urlParams_, opts...)
120471	res, err := c.doRequest("json")
120472	if res != nil && res.StatusCode == http.StatusNotModified {
120473		if res.Body != nil {
120474			res.Body.Close()
120475		}
120476		return nil, &googleapi.Error{
120477			Code:   res.StatusCode,
120478			Header: res.Header,
120479		}
120480	}
120481	if err != nil {
120482		return nil, err
120483	}
120484	defer googleapi.CloseBody(res)
120485	if err := googleapi.CheckResponse(res); err != nil {
120486		return nil, err
120487	}
120488	ret := &TestPermissionsResponse{
120489		ServerResponse: googleapi.ServerResponse{
120490			Header:         res.Header,
120491			HTTPStatusCode: res.StatusCode,
120492		},
120493	}
120494	target := &ret
120495	if err := gensupport.DecodeResponse(target, res); err != nil {
120496		return nil, err
120497	}
120498	return ret, nil
120499	// {
120500	//   "description": "Returns permissions that a caller has on the specified resource. (== suppress_warning http-rest-shadowed ==)",
120501	//   "httpMethod": "POST",
120502	//   "id": "compute.regionBackendServices.testIamPermissions",
120503	//   "parameterOrder": [
120504	//     "project",
120505	//     "region",
120506	//     "resource"
120507	//   ],
120508	//   "parameters": {
120509	//     "project": {
120510	//       "description": "Project ID for this request.",
120511	//       "location": "path",
120512	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
120513	//       "required": true,
120514	//       "type": "string"
120515	//     },
120516	//     "region": {
120517	//       "description": "The name of the region for this request.",
120518	//       "location": "path",
120519	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
120520	//       "required": true,
120521	//       "type": "string"
120522	//     },
120523	//     "resource": {
120524	//       "description": "Name or id of the resource for this request.",
120525	//       "location": "path",
120526	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
120527	//       "required": true,
120528	//       "type": "string"
120529	//     }
120530	//   },
120531	//   "path": "{project}/regions/{region}/backendServices/{resource}/testIamPermissions",
120532	//   "request": {
120533	//     "$ref": "TestPermissionsRequest"
120534	//   },
120535	//   "response": {
120536	//     "$ref": "TestPermissionsResponse"
120537	//   },
120538	//   "scopes": [
120539	//     "https://www.googleapis.com/auth/cloud-platform",
120540	//     "https://www.googleapis.com/auth/compute",
120541	//     "https://www.googleapis.com/auth/compute.readonly"
120542	//   ]
120543	// }
120544
120545}
120546
120547// method id "compute.regionBackendServices.update":
120548
120549type RegionBackendServicesUpdateCall struct {
120550	s              *Service
120551	project        string
120552	region         string
120553	backendService string
120554	backendservice *BackendService
120555	urlParams_     gensupport.URLParams
120556	ctx_           context.Context
120557	header_        http.Header
120558}
120559
120560// Update: Updates the specified regional BackendService resource with
120561// the data included in the request. There are several restrictions and
120562// guidelines to keep in mind when updating a backend service. Read
120563// Restrictions and Guidelines for more information. (==
120564// suppress_warning http-rest-shadowed ==)
120565func (r *RegionBackendServicesService) Update(project string, region string, backendService string, backendservice *BackendService) *RegionBackendServicesUpdateCall {
120566	c := &RegionBackendServicesUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
120567	c.project = project
120568	c.region = region
120569	c.backendService = backendService
120570	c.backendservice = backendservice
120571	return c
120572}
120573
120574// RequestId sets the optional parameter "requestId": An optional
120575// request ID to identify requests. Specify a unique request ID so that
120576// if you must retry your request, the server will know to ignore the
120577// request if it has already been completed.
120578//
120579// For example, consider a situation where you make an initial request
120580// and the request times out. If you make the request again with the
120581// same request ID, the server can check if original operation with the
120582// same request ID was received, and if so, will ignore the second
120583// request. This prevents clients from accidentally creating duplicate
120584// commitments.
120585//
120586// The request ID must be a valid UUID with the exception that zero UUID
120587// is not supported (00000000-0000-0000-0000-000000000000).
120588func (c *RegionBackendServicesUpdateCall) RequestId(requestId string) *RegionBackendServicesUpdateCall {
120589	c.urlParams_.Set("requestId", requestId)
120590	return c
120591}
120592
120593// Fields allows partial responses to be retrieved. See
120594// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
120595// for more information.
120596func (c *RegionBackendServicesUpdateCall) Fields(s ...googleapi.Field) *RegionBackendServicesUpdateCall {
120597	c.urlParams_.Set("fields", googleapi.CombineFields(s))
120598	return c
120599}
120600
120601// Context sets the context to be used in this call's Do method. Any
120602// pending HTTP request will be aborted if the provided context is
120603// canceled.
120604func (c *RegionBackendServicesUpdateCall) Context(ctx context.Context) *RegionBackendServicesUpdateCall {
120605	c.ctx_ = ctx
120606	return c
120607}
120608
120609// Header returns an http.Header that can be modified by the caller to
120610// add HTTP headers to the request.
120611func (c *RegionBackendServicesUpdateCall) Header() http.Header {
120612	if c.header_ == nil {
120613		c.header_ = make(http.Header)
120614	}
120615	return c.header_
120616}
120617
120618func (c *RegionBackendServicesUpdateCall) doRequest(alt string) (*http.Response, error) {
120619	reqHeaders := make(http.Header)
120620	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
120621	for k, v := range c.header_ {
120622		reqHeaders[k] = v
120623	}
120624	reqHeaders.Set("User-Agent", c.s.userAgent())
120625	var body io.Reader = nil
120626	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendservice)
120627	if err != nil {
120628		return nil, err
120629	}
120630	reqHeaders.Set("Content-Type", "application/json")
120631	c.urlParams_.Set("alt", alt)
120632	c.urlParams_.Set("prettyPrint", "false")
120633	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/backendServices/{backendService}")
120634	urls += "?" + c.urlParams_.Encode()
120635	req, err := http.NewRequest("PUT", urls, body)
120636	if err != nil {
120637		return nil, err
120638	}
120639	req.Header = reqHeaders
120640	googleapi.Expand(req.URL, map[string]string{
120641		"project":        c.project,
120642		"region":         c.region,
120643		"backendService": c.backendService,
120644	})
120645	return gensupport.SendRequest(c.ctx_, c.s.client, req)
120646}
120647
120648// Do executes the "compute.regionBackendServices.update" call.
120649// Exactly one of *Operation or error will be non-nil. Any non-2xx
120650// status code is an error. Response headers are in either
120651// *Operation.ServerResponse.Header or (if a response was returned at
120652// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
120653// to check whether the returned error was because
120654// http.StatusNotModified was returned.
120655func (c *RegionBackendServicesUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
120656	gensupport.SetOptions(c.urlParams_, opts...)
120657	res, err := c.doRequest("json")
120658	if res != nil && res.StatusCode == http.StatusNotModified {
120659		if res.Body != nil {
120660			res.Body.Close()
120661		}
120662		return nil, &googleapi.Error{
120663			Code:   res.StatusCode,
120664			Header: res.Header,
120665		}
120666	}
120667	if err != nil {
120668		return nil, err
120669	}
120670	defer googleapi.CloseBody(res)
120671	if err := googleapi.CheckResponse(res); err != nil {
120672		return nil, err
120673	}
120674	ret := &Operation{
120675		ServerResponse: googleapi.ServerResponse{
120676			Header:         res.Header,
120677			HTTPStatusCode: res.StatusCode,
120678		},
120679	}
120680	target := &ret
120681	if err := gensupport.DecodeResponse(target, res); err != nil {
120682		return nil, err
120683	}
120684	return ret, nil
120685	// {
120686	//   "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. (== suppress_warning http-rest-shadowed ==)",
120687	//   "httpMethod": "PUT",
120688	//   "id": "compute.regionBackendServices.update",
120689	//   "parameterOrder": [
120690	//     "project",
120691	//     "region",
120692	//     "backendService"
120693	//   ],
120694	//   "parameters": {
120695	//     "backendService": {
120696	//       "description": "Name of the BackendService resource to update.",
120697	//       "location": "path",
120698	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
120699	//       "required": true,
120700	//       "type": "string"
120701	//     },
120702	//     "project": {
120703	//       "description": "Project ID for this request.",
120704	//       "location": "path",
120705	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
120706	//       "required": true,
120707	//       "type": "string"
120708	//     },
120709	//     "region": {
120710	//       "description": "Name of the region scoping this request.",
120711	//       "location": "path",
120712	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
120713	//       "required": true,
120714	//       "type": "string"
120715	//     },
120716	//     "requestId": {
120717	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
120718	//       "location": "query",
120719	//       "type": "string"
120720	//     }
120721	//   },
120722	//   "path": "{project}/regions/{region}/backendServices/{backendService}",
120723	//   "request": {
120724	//     "$ref": "BackendService"
120725	//   },
120726	//   "response": {
120727	//     "$ref": "Operation"
120728	//   },
120729	//   "scopes": [
120730	//     "https://www.googleapis.com/auth/cloud-platform",
120731	//     "https://www.googleapis.com/auth/compute"
120732	//   ]
120733	// }
120734
120735}
120736
120737// method id "compute.regionCommitments.aggregatedList":
120738
120739type RegionCommitmentsAggregatedListCall struct {
120740	s            *Service
120741	project      string
120742	urlParams_   gensupport.URLParams
120743	ifNoneMatch_ string
120744	ctx_         context.Context
120745	header_      http.Header
120746}
120747
120748// AggregatedList: Retrieves an aggregated list of commitments. (==
120749// suppress_warning http-rest-shadowed ==)
120750func (r *RegionCommitmentsService) AggregatedList(project string) *RegionCommitmentsAggregatedListCall {
120751	c := &RegionCommitmentsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
120752	c.project = project
120753	return c
120754}
120755
120756// Filter sets the optional parameter "filter": A filter expression that
120757// filters resources listed in the response. The expression must specify
120758// the field name, a comparison operator, and the value that you want to
120759// use for filtering. The value must be a string, a number, or a
120760// boolean. The comparison operator must be either =, !=, >, or <.
120761//
120762// For example, if you are filtering Compute Engine instances, you can
120763// exclude instances named example-instance by specifying name !=
120764// example-instance.
120765//
120766// You can also filter nested fields. For example, you could specify
120767// scheduling.automaticRestart = false to include instances only if they
120768// are not scheduled for automatic restarts. You can use filtering on
120769// nested fields to filter based on resource labels.
120770//
120771// To filter on multiple expressions, provide each separate expression
120772// within parentheses. For example, (scheduling.automaticRestart = true)
120773// (cpuPlatform = "Intel Skylake"). By default, each expression is an
120774// AND expression. However, you can include AND and OR expressions
120775// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
120776// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
120777// true).
120778func (c *RegionCommitmentsAggregatedListCall) Filter(filter string) *RegionCommitmentsAggregatedListCall {
120779	c.urlParams_.Set("filter", filter)
120780	return c
120781}
120782
120783// MaxResults sets the optional parameter "maxResults": The maximum
120784// number of results per page that should be returned. If the number of
120785// available results is larger than maxResults, Compute Engine returns a
120786// nextPageToken that can be used to get the next page of results in
120787// subsequent list requests. Acceptable values are 0 to 500, inclusive.
120788// (Default: 500)
120789func (c *RegionCommitmentsAggregatedListCall) MaxResults(maxResults int64) *RegionCommitmentsAggregatedListCall {
120790	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
120791	return c
120792}
120793
120794// OrderBy sets the optional parameter "orderBy": Sorts list results by
120795// a certain order. By default, results are returned in alphanumerical
120796// order based on the resource name.
120797//
120798// You can also sort results in descending order based on the creation
120799// timestamp using orderBy="creationTimestamp desc". This sorts results
120800// based on the creationTimestamp field in reverse chronological order
120801// (newest result first). Use this to sort resources like operations so
120802// that the newest operation is returned first.
120803//
120804// Currently, only sorting by name or creationTimestamp desc is
120805// supported.
120806func (c *RegionCommitmentsAggregatedListCall) OrderBy(orderBy string) *RegionCommitmentsAggregatedListCall {
120807	c.urlParams_.Set("orderBy", orderBy)
120808	return c
120809}
120810
120811// PageToken sets the optional parameter "pageToken": Specifies a page
120812// token to use. Set pageToken to the nextPageToken returned by a
120813// previous list request to get the next page of results.
120814func (c *RegionCommitmentsAggregatedListCall) PageToken(pageToken string) *RegionCommitmentsAggregatedListCall {
120815	c.urlParams_.Set("pageToken", pageToken)
120816	return c
120817}
120818
120819// Fields allows partial responses to be retrieved. See
120820// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
120821// for more information.
120822func (c *RegionCommitmentsAggregatedListCall) Fields(s ...googleapi.Field) *RegionCommitmentsAggregatedListCall {
120823	c.urlParams_.Set("fields", googleapi.CombineFields(s))
120824	return c
120825}
120826
120827// IfNoneMatch sets the optional parameter which makes the operation
120828// fail if the object's ETag matches the given value. This is useful for
120829// getting updates only after the object has changed since the last
120830// request. Use googleapi.IsNotModified to check whether the response
120831// error from Do is the result of In-None-Match.
120832func (c *RegionCommitmentsAggregatedListCall) IfNoneMatch(entityTag string) *RegionCommitmentsAggregatedListCall {
120833	c.ifNoneMatch_ = entityTag
120834	return c
120835}
120836
120837// Context sets the context to be used in this call's Do method. Any
120838// pending HTTP request will be aborted if the provided context is
120839// canceled.
120840func (c *RegionCommitmentsAggregatedListCall) Context(ctx context.Context) *RegionCommitmentsAggregatedListCall {
120841	c.ctx_ = ctx
120842	return c
120843}
120844
120845// Header returns an http.Header that can be modified by the caller to
120846// add HTTP headers to the request.
120847func (c *RegionCommitmentsAggregatedListCall) Header() http.Header {
120848	if c.header_ == nil {
120849		c.header_ = make(http.Header)
120850	}
120851	return c.header_
120852}
120853
120854func (c *RegionCommitmentsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
120855	reqHeaders := make(http.Header)
120856	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
120857	for k, v := range c.header_ {
120858		reqHeaders[k] = v
120859	}
120860	reqHeaders.Set("User-Agent", c.s.userAgent())
120861	if c.ifNoneMatch_ != "" {
120862		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
120863	}
120864	var body io.Reader = nil
120865	c.urlParams_.Set("alt", alt)
120866	c.urlParams_.Set("prettyPrint", "false")
120867	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/commitments")
120868	urls += "?" + c.urlParams_.Encode()
120869	req, err := http.NewRequest("GET", urls, body)
120870	if err != nil {
120871		return nil, err
120872	}
120873	req.Header = reqHeaders
120874	googleapi.Expand(req.URL, map[string]string{
120875		"project": c.project,
120876	})
120877	return gensupport.SendRequest(c.ctx_, c.s.client, req)
120878}
120879
120880// Do executes the "compute.regionCommitments.aggregatedList" call.
120881// Exactly one of *CommitmentAggregatedList or error will be non-nil.
120882// Any non-2xx status code is an error. Response headers are in either
120883// *CommitmentAggregatedList.ServerResponse.Header or (if a response was
120884// returned at all) in error.(*googleapi.Error).Header. Use
120885// googleapi.IsNotModified to check whether the returned error was
120886// because http.StatusNotModified was returned.
120887func (c *RegionCommitmentsAggregatedListCall) Do(opts ...googleapi.CallOption) (*CommitmentAggregatedList, error) {
120888	gensupport.SetOptions(c.urlParams_, opts...)
120889	res, err := c.doRequest("json")
120890	if res != nil && res.StatusCode == http.StatusNotModified {
120891		if res.Body != nil {
120892			res.Body.Close()
120893		}
120894		return nil, &googleapi.Error{
120895			Code:   res.StatusCode,
120896			Header: res.Header,
120897		}
120898	}
120899	if err != nil {
120900		return nil, err
120901	}
120902	defer googleapi.CloseBody(res)
120903	if err := googleapi.CheckResponse(res); err != nil {
120904		return nil, err
120905	}
120906	ret := &CommitmentAggregatedList{
120907		ServerResponse: googleapi.ServerResponse{
120908			Header:         res.Header,
120909			HTTPStatusCode: res.StatusCode,
120910		},
120911	}
120912	target := &ret
120913	if err := gensupport.DecodeResponse(target, res); err != nil {
120914		return nil, err
120915	}
120916	return ret, nil
120917	// {
120918	//   "description": "Retrieves an aggregated list of commitments. (== suppress_warning http-rest-shadowed ==)",
120919	//   "httpMethod": "GET",
120920	//   "id": "compute.regionCommitments.aggregatedList",
120921	//   "parameterOrder": [
120922	//     "project"
120923	//   ],
120924	//   "parameters": {
120925	//     "filter": {
120926	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
120927	//       "location": "query",
120928	//       "type": "string"
120929	//     },
120930	//     "maxResults": {
120931	//       "default": "500",
120932	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
120933	//       "format": "uint32",
120934	//       "location": "query",
120935	//       "minimum": "0",
120936	//       "type": "integer"
120937	//     },
120938	//     "orderBy": {
120939	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
120940	//       "location": "query",
120941	//       "type": "string"
120942	//     },
120943	//     "pageToken": {
120944	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
120945	//       "location": "query",
120946	//       "type": "string"
120947	//     },
120948	//     "project": {
120949	//       "description": "Project ID for this request.",
120950	//       "location": "path",
120951	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
120952	//       "required": true,
120953	//       "type": "string"
120954	//     }
120955	//   },
120956	//   "path": "{project}/aggregated/commitments",
120957	//   "response": {
120958	//     "$ref": "CommitmentAggregatedList"
120959	//   },
120960	//   "scopes": [
120961	//     "https://www.googleapis.com/auth/cloud-platform",
120962	//     "https://www.googleapis.com/auth/compute",
120963	//     "https://www.googleapis.com/auth/compute.readonly"
120964	//   ]
120965	// }
120966
120967}
120968
120969// Pages invokes f for each page of results.
120970// A non-nil error returned from f will halt the iteration.
120971// The provided context supersedes any context provided to the Context method.
120972func (c *RegionCommitmentsAggregatedListCall) Pages(ctx context.Context, f func(*CommitmentAggregatedList) error) error {
120973	c.ctx_ = ctx
120974	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
120975	for {
120976		x, err := c.Do()
120977		if err != nil {
120978			return err
120979		}
120980		if err := f(x); err != nil {
120981			return err
120982		}
120983		if x.NextPageToken == "" {
120984			return nil
120985		}
120986		c.PageToken(x.NextPageToken)
120987	}
120988}
120989
120990// method id "compute.regionCommitments.get":
120991
120992type RegionCommitmentsGetCall struct {
120993	s            *Service
120994	project      string
120995	region       string
120996	commitment   string
120997	urlParams_   gensupport.URLParams
120998	ifNoneMatch_ string
120999	ctx_         context.Context
121000	header_      http.Header
121001}
121002
121003// Get: Returns the specified commitment resource. Gets a list of
121004// available commitments by making a list() request. (==
121005// suppress_warning http-rest-shadowed ==)
121006func (r *RegionCommitmentsService) Get(project string, region string, commitment string) *RegionCommitmentsGetCall {
121007	c := &RegionCommitmentsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
121008	c.project = project
121009	c.region = region
121010	c.commitment = commitment
121011	return c
121012}
121013
121014// Fields allows partial responses to be retrieved. See
121015// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
121016// for more information.
121017func (c *RegionCommitmentsGetCall) Fields(s ...googleapi.Field) *RegionCommitmentsGetCall {
121018	c.urlParams_.Set("fields", googleapi.CombineFields(s))
121019	return c
121020}
121021
121022// IfNoneMatch sets the optional parameter which makes the operation
121023// fail if the object's ETag matches the given value. This is useful for
121024// getting updates only after the object has changed since the last
121025// request. Use googleapi.IsNotModified to check whether the response
121026// error from Do is the result of In-None-Match.
121027func (c *RegionCommitmentsGetCall) IfNoneMatch(entityTag string) *RegionCommitmentsGetCall {
121028	c.ifNoneMatch_ = entityTag
121029	return c
121030}
121031
121032// Context sets the context to be used in this call's Do method. Any
121033// pending HTTP request will be aborted if the provided context is
121034// canceled.
121035func (c *RegionCommitmentsGetCall) Context(ctx context.Context) *RegionCommitmentsGetCall {
121036	c.ctx_ = ctx
121037	return c
121038}
121039
121040// Header returns an http.Header that can be modified by the caller to
121041// add HTTP headers to the request.
121042func (c *RegionCommitmentsGetCall) Header() http.Header {
121043	if c.header_ == nil {
121044		c.header_ = make(http.Header)
121045	}
121046	return c.header_
121047}
121048
121049func (c *RegionCommitmentsGetCall) doRequest(alt string) (*http.Response, error) {
121050	reqHeaders := make(http.Header)
121051	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
121052	for k, v := range c.header_ {
121053		reqHeaders[k] = v
121054	}
121055	reqHeaders.Set("User-Agent", c.s.userAgent())
121056	if c.ifNoneMatch_ != "" {
121057		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
121058	}
121059	var body io.Reader = nil
121060	c.urlParams_.Set("alt", alt)
121061	c.urlParams_.Set("prettyPrint", "false")
121062	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/commitments/{commitment}")
121063	urls += "?" + c.urlParams_.Encode()
121064	req, err := http.NewRequest("GET", urls, body)
121065	if err != nil {
121066		return nil, err
121067	}
121068	req.Header = reqHeaders
121069	googleapi.Expand(req.URL, map[string]string{
121070		"project":    c.project,
121071		"region":     c.region,
121072		"commitment": c.commitment,
121073	})
121074	return gensupport.SendRequest(c.ctx_, c.s.client, req)
121075}
121076
121077// Do executes the "compute.regionCommitments.get" call.
121078// Exactly one of *Commitment or error will be non-nil. Any non-2xx
121079// status code is an error. Response headers are in either
121080// *Commitment.ServerResponse.Header or (if a response was returned at
121081// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
121082// to check whether the returned error was because
121083// http.StatusNotModified was returned.
121084func (c *RegionCommitmentsGetCall) Do(opts ...googleapi.CallOption) (*Commitment, error) {
121085	gensupport.SetOptions(c.urlParams_, opts...)
121086	res, err := c.doRequest("json")
121087	if res != nil && res.StatusCode == http.StatusNotModified {
121088		if res.Body != nil {
121089			res.Body.Close()
121090		}
121091		return nil, &googleapi.Error{
121092			Code:   res.StatusCode,
121093			Header: res.Header,
121094		}
121095	}
121096	if err != nil {
121097		return nil, err
121098	}
121099	defer googleapi.CloseBody(res)
121100	if err := googleapi.CheckResponse(res); err != nil {
121101		return nil, err
121102	}
121103	ret := &Commitment{
121104		ServerResponse: googleapi.ServerResponse{
121105			Header:         res.Header,
121106			HTTPStatusCode: res.StatusCode,
121107		},
121108	}
121109	target := &ret
121110	if err := gensupport.DecodeResponse(target, res); err != nil {
121111		return nil, err
121112	}
121113	return ret, nil
121114	// {
121115	//   "description": "Returns the specified commitment resource. Gets a list of available commitments by making a list() request. (== suppress_warning http-rest-shadowed ==)",
121116	//   "httpMethod": "GET",
121117	//   "id": "compute.regionCommitments.get",
121118	//   "parameterOrder": [
121119	//     "project",
121120	//     "region",
121121	//     "commitment"
121122	//   ],
121123	//   "parameters": {
121124	//     "commitment": {
121125	//       "description": "Name of the commitment to return.",
121126	//       "location": "path",
121127	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
121128	//       "required": true,
121129	//       "type": "string"
121130	//     },
121131	//     "project": {
121132	//       "description": "Project ID for this request.",
121133	//       "location": "path",
121134	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
121135	//       "required": true,
121136	//       "type": "string"
121137	//     },
121138	//     "region": {
121139	//       "description": "Name of the region for this request.",
121140	//       "location": "path",
121141	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
121142	//       "required": true,
121143	//       "type": "string"
121144	//     }
121145	//   },
121146	//   "path": "{project}/regions/{region}/commitments/{commitment}",
121147	//   "response": {
121148	//     "$ref": "Commitment"
121149	//   },
121150	//   "scopes": [
121151	//     "https://www.googleapis.com/auth/cloud-platform",
121152	//     "https://www.googleapis.com/auth/compute",
121153	//     "https://www.googleapis.com/auth/compute.readonly"
121154	//   ]
121155	// }
121156
121157}
121158
121159// method id "compute.regionCommitments.insert":
121160
121161type RegionCommitmentsInsertCall struct {
121162	s          *Service
121163	project    string
121164	region     string
121165	commitment *Commitment
121166	urlParams_ gensupport.URLParams
121167	ctx_       context.Context
121168	header_    http.Header
121169}
121170
121171// Insert: Creates a commitment in the specified project using the data
121172// included in the request. (== suppress_warning http-rest-shadowed ==)
121173func (r *RegionCommitmentsService) Insert(project string, region string, commitment *Commitment) *RegionCommitmentsInsertCall {
121174	c := &RegionCommitmentsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
121175	c.project = project
121176	c.region = region
121177	c.commitment = commitment
121178	return c
121179}
121180
121181// RequestId sets the optional parameter "requestId": An optional
121182// request ID to identify requests. Specify a unique request ID so that
121183// if you must retry your request, the server will know to ignore the
121184// request if it has already been completed.
121185//
121186// For example, consider a situation where you make an initial request
121187// and the request times out. If you make the request again with the
121188// same request ID, the server can check if original operation with the
121189// same request ID was received, and if so, will ignore the second
121190// request. This prevents clients from accidentally creating duplicate
121191// commitments.
121192//
121193// The request ID must be a valid UUID with the exception that zero UUID
121194// is not supported (00000000-0000-0000-0000-000000000000).
121195func (c *RegionCommitmentsInsertCall) RequestId(requestId string) *RegionCommitmentsInsertCall {
121196	c.urlParams_.Set("requestId", requestId)
121197	return c
121198}
121199
121200// Fields allows partial responses to be retrieved. See
121201// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
121202// for more information.
121203func (c *RegionCommitmentsInsertCall) Fields(s ...googleapi.Field) *RegionCommitmentsInsertCall {
121204	c.urlParams_.Set("fields", googleapi.CombineFields(s))
121205	return c
121206}
121207
121208// Context sets the context to be used in this call's Do method. Any
121209// pending HTTP request will be aborted if the provided context is
121210// canceled.
121211func (c *RegionCommitmentsInsertCall) Context(ctx context.Context) *RegionCommitmentsInsertCall {
121212	c.ctx_ = ctx
121213	return c
121214}
121215
121216// Header returns an http.Header that can be modified by the caller to
121217// add HTTP headers to the request.
121218func (c *RegionCommitmentsInsertCall) Header() http.Header {
121219	if c.header_ == nil {
121220		c.header_ = make(http.Header)
121221	}
121222	return c.header_
121223}
121224
121225func (c *RegionCommitmentsInsertCall) doRequest(alt string) (*http.Response, error) {
121226	reqHeaders := make(http.Header)
121227	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
121228	for k, v := range c.header_ {
121229		reqHeaders[k] = v
121230	}
121231	reqHeaders.Set("User-Agent", c.s.userAgent())
121232	var body io.Reader = nil
121233	body, err := googleapi.WithoutDataWrapper.JSONReader(c.commitment)
121234	if err != nil {
121235		return nil, err
121236	}
121237	reqHeaders.Set("Content-Type", "application/json")
121238	c.urlParams_.Set("alt", alt)
121239	c.urlParams_.Set("prettyPrint", "false")
121240	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/commitments")
121241	urls += "?" + c.urlParams_.Encode()
121242	req, err := http.NewRequest("POST", urls, body)
121243	if err != nil {
121244		return nil, err
121245	}
121246	req.Header = reqHeaders
121247	googleapi.Expand(req.URL, map[string]string{
121248		"project": c.project,
121249		"region":  c.region,
121250	})
121251	return gensupport.SendRequest(c.ctx_, c.s.client, req)
121252}
121253
121254// Do executes the "compute.regionCommitments.insert" call.
121255// Exactly one of *Operation or error will be non-nil. Any non-2xx
121256// status code is an error. Response headers are in either
121257// *Operation.ServerResponse.Header or (if a response was returned at
121258// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
121259// to check whether the returned error was because
121260// http.StatusNotModified was returned.
121261func (c *RegionCommitmentsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
121262	gensupport.SetOptions(c.urlParams_, opts...)
121263	res, err := c.doRequest("json")
121264	if res != nil && res.StatusCode == http.StatusNotModified {
121265		if res.Body != nil {
121266			res.Body.Close()
121267		}
121268		return nil, &googleapi.Error{
121269			Code:   res.StatusCode,
121270			Header: res.Header,
121271		}
121272	}
121273	if err != nil {
121274		return nil, err
121275	}
121276	defer googleapi.CloseBody(res)
121277	if err := googleapi.CheckResponse(res); err != nil {
121278		return nil, err
121279	}
121280	ret := &Operation{
121281		ServerResponse: googleapi.ServerResponse{
121282			Header:         res.Header,
121283			HTTPStatusCode: res.StatusCode,
121284		},
121285	}
121286	target := &ret
121287	if err := gensupport.DecodeResponse(target, res); err != nil {
121288		return nil, err
121289	}
121290	return ret, nil
121291	// {
121292	//   "description": "Creates a commitment in the specified project using the data included in the request. (== suppress_warning http-rest-shadowed ==)",
121293	//   "httpMethod": "POST",
121294	//   "id": "compute.regionCommitments.insert",
121295	//   "parameterOrder": [
121296	//     "project",
121297	//     "region"
121298	//   ],
121299	//   "parameters": {
121300	//     "project": {
121301	//       "description": "Project ID for this request.",
121302	//       "location": "path",
121303	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
121304	//       "required": true,
121305	//       "type": "string"
121306	//     },
121307	//     "region": {
121308	//       "description": "Name of the region for this request.",
121309	//       "location": "path",
121310	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
121311	//       "required": true,
121312	//       "type": "string"
121313	//     },
121314	//     "requestId": {
121315	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
121316	//       "location": "query",
121317	//       "type": "string"
121318	//     }
121319	//   },
121320	//   "path": "{project}/regions/{region}/commitments",
121321	//   "request": {
121322	//     "$ref": "Commitment"
121323	//   },
121324	//   "response": {
121325	//     "$ref": "Operation"
121326	//   },
121327	//   "scopes": [
121328	//     "https://www.googleapis.com/auth/cloud-platform",
121329	//     "https://www.googleapis.com/auth/compute"
121330	//   ]
121331	// }
121332
121333}
121334
121335// method id "compute.regionCommitments.list":
121336
121337type RegionCommitmentsListCall struct {
121338	s            *Service
121339	project      string
121340	region       string
121341	urlParams_   gensupport.URLParams
121342	ifNoneMatch_ string
121343	ctx_         context.Context
121344	header_      http.Header
121345}
121346
121347// List: Retrieves a list of commitments contained within the specified
121348// region. (== suppress_warning http-rest-shadowed ==)
121349func (r *RegionCommitmentsService) List(project string, region string) *RegionCommitmentsListCall {
121350	c := &RegionCommitmentsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
121351	c.project = project
121352	c.region = region
121353	return c
121354}
121355
121356// Filter sets the optional parameter "filter": A filter expression that
121357// filters resources listed in the response. The expression must specify
121358// the field name, a comparison operator, and the value that you want to
121359// use for filtering. The value must be a string, a number, or a
121360// boolean. The comparison operator must be either =, !=, >, or <.
121361//
121362// For example, if you are filtering Compute Engine instances, you can
121363// exclude instances named example-instance by specifying name !=
121364// example-instance.
121365//
121366// You can also filter nested fields. For example, you could specify
121367// scheduling.automaticRestart = false to include instances only if they
121368// are not scheduled for automatic restarts. You can use filtering on
121369// nested fields to filter based on resource labels.
121370//
121371// To filter on multiple expressions, provide each separate expression
121372// within parentheses. For example, (scheduling.automaticRestart = true)
121373// (cpuPlatform = "Intel Skylake"). By default, each expression is an
121374// AND expression. However, you can include AND and OR expressions
121375// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
121376// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
121377// true).
121378func (c *RegionCommitmentsListCall) Filter(filter string) *RegionCommitmentsListCall {
121379	c.urlParams_.Set("filter", filter)
121380	return c
121381}
121382
121383// MaxResults sets the optional parameter "maxResults": The maximum
121384// number of results per page that should be returned. If the number of
121385// available results is larger than maxResults, Compute Engine returns a
121386// nextPageToken that can be used to get the next page of results in
121387// subsequent list requests. Acceptable values are 0 to 500, inclusive.
121388// (Default: 500)
121389func (c *RegionCommitmentsListCall) MaxResults(maxResults int64) *RegionCommitmentsListCall {
121390	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
121391	return c
121392}
121393
121394// OrderBy sets the optional parameter "orderBy": Sorts list results by
121395// a certain order. By default, results are returned in alphanumerical
121396// order based on the resource name.
121397//
121398// You can also sort results in descending order based on the creation
121399// timestamp using orderBy="creationTimestamp desc". This sorts results
121400// based on the creationTimestamp field in reverse chronological order
121401// (newest result first). Use this to sort resources like operations so
121402// that the newest operation is returned first.
121403//
121404// Currently, only sorting by name or creationTimestamp desc is
121405// supported.
121406func (c *RegionCommitmentsListCall) OrderBy(orderBy string) *RegionCommitmentsListCall {
121407	c.urlParams_.Set("orderBy", orderBy)
121408	return c
121409}
121410
121411// PageToken sets the optional parameter "pageToken": Specifies a page
121412// token to use. Set pageToken to the nextPageToken returned by a
121413// previous list request to get the next page of results.
121414func (c *RegionCommitmentsListCall) PageToken(pageToken string) *RegionCommitmentsListCall {
121415	c.urlParams_.Set("pageToken", pageToken)
121416	return c
121417}
121418
121419// Fields allows partial responses to be retrieved. See
121420// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
121421// for more information.
121422func (c *RegionCommitmentsListCall) Fields(s ...googleapi.Field) *RegionCommitmentsListCall {
121423	c.urlParams_.Set("fields", googleapi.CombineFields(s))
121424	return c
121425}
121426
121427// IfNoneMatch sets the optional parameter which makes the operation
121428// fail if the object's ETag matches the given value. This is useful for
121429// getting updates only after the object has changed since the last
121430// request. Use googleapi.IsNotModified to check whether the response
121431// error from Do is the result of In-None-Match.
121432func (c *RegionCommitmentsListCall) IfNoneMatch(entityTag string) *RegionCommitmentsListCall {
121433	c.ifNoneMatch_ = entityTag
121434	return c
121435}
121436
121437// Context sets the context to be used in this call's Do method. Any
121438// pending HTTP request will be aborted if the provided context is
121439// canceled.
121440func (c *RegionCommitmentsListCall) Context(ctx context.Context) *RegionCommitmentsListCall {
121441	c.ctx_ = ctx
121442	return c
121443}
121444
121445// Header returns an http.Header that can be modified by the caller to
121446// add HTTP headers to the request.
121447func (c *RegionCommitmentsListCall) Header() http.Header {
121448	if c.header_ == nil {
121449		c.header_ = make(http.Header)
121450	}
121451	return c.header_
121452}
121453
121454func (c *RegionCommitmentsListCall) doRequest(alt string) (*http.Response, error) {
121455	reqHeaders := make(http.Header)
121456	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
121457	for k, v := range c.header_ {
121458		reqHeaders[k] = v
121459	}
121460	reqHeaders.Set("User-Agent", c.s.userAgent())
121461	if c.ifNoneMatch_ != "" {
121462		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
121463	}
121464	var body io.Reader = nil
121465	c.urlParams_.Set("alt", alt)
121466	c.urlParams_.Set("prettyPrint", "false")
121467	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/commitments")
121468	urls += "?" + c.urlParams_.Encode()
121469	req, err := http.NewRequest("GET", urls, body)
121470	if err != nil {
121471		return nil, err
121472	}
121473	req.Header = reqHeaders
121474	googleapi.Expand(req.URL, map[string]string{
121475		"project": c.project,
121476		"region":  c.region,
121477	})
121478	return gensupport.SendRequest(c.ctx_, c.s.client, req)
121479}
121480
121481// Do executes the "compute.regionCommitments.list" call.
121482// Exactly one of *CommitmentList or error will be non-nil. Any non-2xx
121483// status code is an error. Response headers are in either
121484// *CommitmentList.ServerResponse.Header or (if a response was returned
121485// at all) in error.(*googleapi.Error).Header. Use
121486// googleapi.IsNotModified to check whether the returned error was
121487// because http.StatusNotModified was returned.
121488func (c *RegionCommitmentsListCall) Do(opts ...googleapi.CallOption) (*CommitmentList, error) {
121489	gensupport.SetOptions(c.urlParams_, opts...)
121490	res, err := c.doRequest("json")
121491	if res != nil && res.StatusCode == http.StatusNotModified {
121492		if res.Body != nil {
121493			res.Body.Close()
121494		}
121495		return nil, &googleapi.Error{
121496			Code:   res.StatusCode,
121497			Header: res.Header,
121498		}
121499	}
121500	if err != nil {
121501		return nil, err
121502	}
121503	defer googleapi.CloseBody(res)
121504	if err := googleapi.CheckResponse(res); err != nil {
121505		return nil, err
121506	}
121507	ret := &CommitmentList{
121508		ServerResponse: googleapi.ServerResponse{
121509			Header:         res.Header,
121510			HTTPStatusCode: res.StatusCode,
121511		},
121512	}
121513	target := &ret
121514	if err := gensupport.DecodeResponse(target, res); err != nil {
121515		return nil, err
121516	}
121517	return ret, nil
121518	// {
121519	//   "description": "Retrieves a list of commitments contained within the specified region. (== suppress_warning http-rest-shadowed ==)",
121520	//   "httpMethod": "GET",
121521	//   "id": "compute.regionCommitments.list",
121522	//   "parameterOrder": [
121523	//     "project",
121524	//     "region"
121525	//   ],
121526	//   "parameters": {
121527	//     "filter": {
121528	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
121529	//       "location": "query",
121530	//       "type": "string"
121531	//     },
121532	//     "maxResults": {
121533	//       "default": "500",
121534	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
121535	//       "format": "uint32",
121536	//       "location": "query",
121537	//       "minimum": "0",
121538	//       "type": "integer"
121539	//     },
121540	//     "orderBy": {
121541	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
121542	//       "location": "query",
121543	//       "type": "string"
121544	//     },
121545	//     "pageToken": {
121546	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
121547	//       "location": "query",
121548	//       "type": "string"
121549	//     },
121550	//     "project": {
121551	//       "description": "Project ID for this request.",
121552	//       "location": "path",
121553	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
121554	//       "required": true,
121555	//       "type": "string"
121556	//     },
121557	//     "region": {
121558	//       "description": "Name of the region for this request.",
121559	//       "location": "path",
121560	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
121561	//       "required": true,
121562	//       "type": "string"
121563	//     }
121564	//   },
121565	//   "path": "{project}/regions/{region}/commitments",
121566	//   "response": {
121567	//     "$ref": "CommitmentList"
121568	//   },
121569	//   "scopes": [
121570	//     "https://www.googleapis.com/auth/cloud-platform",
121571	//     "https://www.googleapis.com/auth/compute",
121572	//     "https://www.googleapis.com/auth/compute.readonly"
121573	//   ]
121574	// }
121575
121576}
121577
121578// Pages invokes f for each page of results.
121579// A non-nil error returned from f will halt the iteration.
121580// The provided context supersedes any context provided to the Context method.
121581func (c *RegionCommitmentsListCall) Pages(ctx context.Context, f func(*CommitmentList) error) error {
121582	c.ctx_ = ctx
121583	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
121584	for {
121585		x, err := c.Do()
121586		if err != nil {
121587			return err
121588		}
121589		if err := f(x); err != nil {
121590			return err
121591		}
121592		if x.NextPageToken == "" {
121593			return nil
121594		}
121595		c.PageToken(x.NextPageToken)
121596	}
121597}
121598
121599// method id "compute.regionCommitments.testIamPermissions":
121600
121601type RegionCommitmentsTestIamPermissionsCall struct {
121602	s                      *Service
121603	project                string
121604	region                 string
121605	resource               string
121606	testpermissionsrequest *TestPermissionsRequest
121607	urlParams_             gensupport.URLParams
121608	ctx_                   context.Context
121609	header_                http.Header
121610}
121611
121612// TestIamPermissions: Returns permissions that a caller has on the
121613// specified resource. (== suppress_warning http-rest-shadowed ==)
121614func (r *RegionCommitmentsService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *RegionCommitmentsTestIamPermissionsCall {
121615	c := &RegionCommitmentsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
121616	c.project = project
121617	c.region = region
121618	c.resource = resource
121619	c.testpermissionsrequest = testpermissionsrequest
121620	return c
121621}
121622
121623// Fields allows partial responses to be retrieved. See
121624// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
121625// for more information.
121626func (c *RegionCommitmentsTestIamPermissionsCall) Fields(s ...googleapi.Field) *RegionCommitmentsTestIamPermissionsCall {
121627	c.urlParams_.Set("fields", googleapi.CombineFields(s))
121628	return c
121629}
121630
121631// Context sets the context to be used in this call's Do method. Any
121632// pending HTTP request will be aborted if the provided context is
121633// canceled.
121634func (c *RegionCommitmentsTestIamPermissionsCall) Context(ctx context.Context) *RegionCommitmentsTestIamPermissionsCall {
121635	c.ctx_ = ctx
121636	return c
121637}
121638
121639// Header returns an http.Header that can be modified by the caller to
121640// add HTTP headers to the request.
121641func (c *RegionCommitmentsTestIamPermissionsCall) Header() http.Header {
121642	if c.header_ == nil {
121643		c.header_ = make(http.Header)
121644	}
121645	return c.header_
121646}
121647
121648func (c *RegionCommitmentsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
121649	reqHeaders := make(http.Header)
121650	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
121651	for k, v := range c.header_ {
121652		reqHeaders[k] = v
121653	}
121654	reqHeaders.Set("User-Agent", c.s.userAgent())
121655	var body io.Reader = nil
121656	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
121657	if err != nil {
121658		return nil, err
121659	}
121660	reqHeaders.Set("Content-Type", "application/json")
121661	c.urlParams_.Set("alt", alt)
121662	c.urlParams_.Set("prettyPrint", "false")
121663	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/commitments/{resource}/testIamPermissions")
121664	urls += "?" + c.urlParams_.Encode()
121665	req, err := http.NewRequest("POST", urls, body)
121666	if err != nil {
121667		return nil, err
121668	}
121669	req.Header = reqHeaders
121670	googleapi.Expand(req.URL, map[string]string{
121671		"project":  c.project,
121672		"region":   c.region,
121673		"resource": c.resource,
121674	})
121675	return gensupport.SendRequest(c.ctx_, c.s.client, req)
121676}
121677
121678// Do executes the "compute.regionCommitments.testIamPermissions" call.
121679// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
121680// non-2xx status code is an error. Response headers are in either
121681// *TestPermissionsResponse.ServerResponse.Header or (if a response was
121682// returned at all) in error.(*googleapi.Error).Header. Use
121683// googleapi.IsNotModified to check whether the returned error was
121684// because http.StatusNotModified was returned.
121685func (c *RegionCommitmentsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
121686	gensupport.SetOptions(c.urlParams_, opts...)
121687	res, err := c.doRequest("json")
121688	if res != nil && res.StatusCode == http.StatusNotModified {
121689		if res.Body != nil {
121690			res.Body.Close()
121691		}
121692		return nil, &googleapi.Error{
121693			Code:   res.StatusCode,
121694			Header: res.Header,
121695		}
121696	}
121697	if err != nil {
121698		return nil, err
121699	}
121700	defer googleapi.CloseBody(res)
121701	if err := googleapi.CheckResponse(res); err != nil {
121702		return nil, err
121703	}
121704	ret := &TestPermissionsResponse{
121705		ServerResponse: googleapi.ServerResponse{
121706			Header:         res.Header,
121707			HTTPStatusCode: res.StatusCode,
121708		},
121709	}
121710	target := &ret
121711	if err := gensupport.DecodeResponse(target, res); err != nil {
121712		return nil, err
121713	}
121714	return ret, nil
121715	// {
121716	//   "description": "Returns permissions that a caller has on the specified resource. (== suppress_warning http-rest-shadowed ==)",
121717	//   "httpMethod": "POST",
121718	//   "id": "compute.regionCommitments.testIamPermissions",
121719	//   "parameterOrder": [
121720	//     "project",
121721	//     "region",
121722	//     "resource"
121723	//   ],
121724	//   "parameters": {
121725	//     "project": {
121726	//       "description": "Project ID for this request.",
121727	//       "location": "path",
121728	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
121729	//       "required": true,
121730	//       "type": "string"
121731	//     },
121732	//     "region": {
121733	//       "description": "The name of the region for this request.",
121734	//       "location": "path",
121735	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
121736	//       "required": true,
121737	//       "type": "string"
121738	//     },
121739	//     "resource": {
121740	//       "description": "Name or id of the resource for this request.",
121741	//       "location": "path",
121742	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
121743	//       "required": true,
121744	//       "type": "string"
121745	//     }
121746	//   },
121747	//   "path": "{project}/regions/{region}/commitments/{resource}/testIamPermissions",
121748	//   "request": {
121749	//     "$ref": "TestPermissionsRequest"
121750	//   },
121751	//   "response": {
121752	//     "$ref": "TestPermissionsResponse"
121753	//   },
121754	//   "scopes": [
121755	//     "https://www.googleapis.com/auth/cloud-platform",
121756	//     "https://www.googleapis.com/auth/compute",
121757	//     "https://www.googleapis.com/auth/compute.readonly"
121758	//   ]
121759	// }
121760
121761}
121762
121763// method id "compute.regionCommitments.updateReservations":
121764
121765type RegionCommitmentsUpdateReservationsCall struct {
121766	s                                          *Service
121767	project                                    string
121768	region                                     string
121769	commitment                                 string
121770	regioncommitmentsupdatereservationsrequest *RegionCommitmentsUpdateReservationsRequest
121771	urlParams_                                 gensupport.URLParams
121772	ctx_                                       context.Context
121773	header_                                    http.Header
121774}
121775
121776// UpdateReservations: Update the shape of reservations for GPUS/Local
121777// SSDs of reservations within the commitments. (== suppress_warning
121778// http-rest-shadowed ==)
121779func (r *RegionCommitmentsService) UpdateReservations(project string, region string, commitment string, regioncommitmentsupdatereservationsrequest *RegionCommitmentsUpdateReservationsRequest) *RegionCommitmentsUpdateReservationsCall {
121780	c := &RegionCommitmentsUpdateReservationsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
121781	c.project = project
121782	c.region = region
121783	c.commitment = commitment
121784	c.regioncommitmentsupdatereservationsrequest = regioncommitmentsupdatereservationsrequest
121785	return c
121786}
121787
121788// RequestId sets the optional parameter "requestId": An optional
121789// request ID to identify requests. Specify a unique request ID so that
121790// if you must retry your request, the server will know to ignore the
121791// request if it has already been completed.
121792//
121793// For example, consider a situation where you make an initial request
121794// and the request times out. If you make the request again with the
121795// same request ID, the server can check if original operation with the
121796// same request ID was received, and if so, will ignore the second
121797// request. This prevents clients from accidentally creating duplicate
121798// commitments.
121799//
121800// The request ID must be a valid UUID with the exception that zero UUID
121801// is not supported (00000000-0000-0000-0000-000000000000).
121802func (c *RegionCommitmentsUpdateReservationsCall) RequestId(requestId string) *RegionCommitmentsUpdateReservationsCall {
121803	c.urlParams_.Set("requestId", requestId)
121804	return c
121805}
121806
121807// Fields allows partial responses to be retrieved. See
121808// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
121809// for more information.
121810func (c *RegionCommitmentsUpdateReservationsCall) Fields(s ...googleapi.Field) *RegionCommitmentsUpdateReservationsCall {
121811	c.urlParams_.Set("fields", googleapi.CombineFields(s))
121812	return c
121813}
121814
121815// Context sets the context to be used in this call's Do method. Any
121816// pending HTTP request will be aborted if the provided context is
121817// canceled.
121818func (c *RegionCommitmentsUpdateReservationsCall) Context(ctx context.Context) *RegionCommitmentsUpdateReservationsCall {
121819	c.ctx_ = ctx
121820	return c
121821}
121822
121823// Header returns an http.Header that can be modified by the caller to
121824// add HTTP headers to the request.
121825func (c *RegionCommitmentsUpdateReservationsCall) Header() http.Header {
121826	if c.header_ == nil {
121827		c.header_ = make(http.Header)
121828	}
121829	return c.header_
121830}
121831
121832func (c *RegionCommitmentsUpdateReservationsCall) doRequest(alt string) (*http.Response, error) {
121833	reqHeaders := make(http.Header)
121834	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
121835	for k, v := range c.header_ {
121836		reqHeaders[k] = v
121837	}
121838	reqHeaders.Set("User-Agent", c.s.userAgent())
121839	var body io.Reader = nil
121840	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioncommitmentsupdatereservationsrequest)
121841	if err != nil {
121842		return nil, err
121843	}
121844	reqHeaders.Set("Content-Type", "application/json")
121845	c.urlParams_.Set("alt", alt)
121846	c.urlParams_.Set("prettyPrint", "false")
121847	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/commitments/{commitment}/updateReservations")
121848	urls += "?" + c.urlParams_.Encode()
121849	req, err := http.NewRequest("POST", urls, body)
121850	if err != nil {
121851		return nil, err
121852	}
121853	req.Header = reqHeaders
121854	googleapi.Expand(req.URL, map[string]string{
121855		"project":    c.project,
121856		"region":     c.region,
121857		"commitment": c.commitment,
121858	})
121859	return gensupport.SendRequest(c.ctx_, c.s.client, req)
121860}
121861
121862// Do executes the "compute.regionCommitments.updateReservations" call.
121863// Exactly one of *Operation or error will be non-nil. Any non-2xx
121864// status code is an error. Response headers are in either
121865// *Operation.ServerResponse.Header or (if a response was returned at
121866// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
121867// to check whether the returned error was because
121868// http.StatusNotModified was returned.
121869func (c *RegionCommitmentsUpdateReservationsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
121870	gensupport.SetOptions(c.urlParams_, opts...)
121871	res, err := c.doRequest("json")
121872	if res != nil && res.StatusCode == http.StatusNotModified {
121873		if res.Body != nil {
121874			res.Body.Close()
121875		}
121876		return nil, &googleapi.Error{
121877			Code:   res.StatusCode,
121878			Header: res.Header,
121879		}
121880	}
121881	if err != nil {
121882		return nil, err
121883	}
121884	defer googleapi.CloseBody(res)
121885	if err := googleapi.CheckResponse(res); err != nil {
121886		return nil, err
121887	}
121888	ret := &Operation{
121889		ServerResponse: googleapi.ServerResponse{
121890			Header:         res.Header,
121891			HTTPStatusCode: res.StatusCode,
121892		},
121893	}
121894	target := &ret
121895	if err := gensupport.DecodeResponse(target, res); err != nil {
121896		return nil, err
121897	}
121898	return ret, nil
121899	// {
121900	//   "description": "Update the shape of reservations for GPUS/Local SSDs of reservations within the commitments. (== suppress_warning http-rest-shadowed ==)",
121901	//   "httpMethod": "POST",
121902	//   "id": "compute.regionCommitments.updateReservations",
121903	//   "parameterOrder": [
121904	//     "project",
121905	//     "region",
121906	//     "commitment"
121907	//   ],
121908	//   "parameters": {
121909	//     "commitment": {
121910	//       "description": "Name of the commitment for which the reservation is being updated.",
121911	//       "location": "path",
121912	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
121913	//       "required": true,
121914	//       "type": "string"
121915	//     },
121916	//     "project": {
121917	//       "description": "Project ID for this request.",
121918	//       "location": "path",
121919	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
121920	//       "required": true,
121921	//       "type": "string"
121922	//     },
121923	//     "region": {
121924	//       "description": "Name of the region for this request.",
121925	//       "location": "path",
121926	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
121927	//       "required": true,
121928	//       "type": "string"
121929	//     },
121930	//     "requestId": {
121931	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
121932	//       "location": "query",
121933	//       "type": "string"
121934	//     }
121935	//   },
121936	//   "path": "{project}/regions/{region}/commitments/{commitment}/updateReservations",
121937	//   "request": {
121938	//     "$ref": "RegionCommitmentsUpdateReservationsRequest"
121939	//   },
121940	//   "response": {
121941	//     "$ref": "Operation"
121942	//   },
121943	//   "scopes": [
121944	//     "https://www.googleapis.com/auth/cloud-platform",
121945	//     "https://www.googleapis.com/auth/compute"
121946	//   ]
121947	// }
121948
121949}
121950
121951// method id "compute.regionDiskTypes.get":
121952
121953type RegionDiskTypesGetCall struct {
121954	s            *Service
121955	project      string
121956	region       string
121957	diskType     string
121958	urlParams_   gensupport.URLParams
121959	ifNoneMatch_ string
121960	ctx_         context.Context
121961	header_      http.Header
121962}
121963
121964// Get: Returns the specified regional disk type. Gets a list of
121965// available disk types by making a list() request. (== suppress_warning
121966// http-rest-shadowed ==)
121967func (r *RegionDiskTypesService) Get(project string, region string, diskType string) *RegionDiskTypesGetCall {
121968	c := &RegionDiskTypesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
121969	c.project = project
121970	c.region = region
121971	c.diskType = diskType
121972	return c
121973}
121974
121975// Fields allows partial responses to be retrieved. See
121976// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
121977// for more information.
121978func (c *RegionDiskTypesGetCall) Fields(s ...googleapi.Field) *RegionDiskTypesGetCall {
121979	c.urlParams_.Set("fields", googleapi.CombineFields(s))
121980	return c
121981}
121982
121983// IfNoneMatch sets the optional parameter which makes the operation
121984// fail if the object's ETag matches the given value. This is useful for
121985// getting updates only after the object has changed since the last
121986// request. Use googleapi.IsNotModified to check whether the response
121987// error from Do is the result of In-None-Match.
121988func (c *RegionDiskTypesGetCall) IfNoneMatch(entityTag string) *RegionDiskTypesGetCall {
121989	c.ifNoneMatch_ = entityTag
121990	return c
121991}
121992
121993// Context sets the context to be used in this call's Do method. Any
121994// pending HTTP request will be aborted if the provided context is
121995// canceled.
121996func (c *RegionDiskTypesGetCall) Context(ctx context.Context) *RegionDiskTypesGetCall {
121997	c.ctx_ = ctx
121998	return c
121999}
122000
122001// Header returns an http.Header that can be modified by the caller to
122002// add HTTP headers to the request.
122003func (c *RegionDiskTypesGetCall) Header() http.Header {
122004	if c.header_ == nil {
122005		c.header_ = make(http.Header)
122006	}
122007	return c.header_
122008}
122009
122010func (c *RegionDiskTypesGetCall) doRequest(alt string) (*http.Response, error) {
122011	reqHeaders := make(http.Header)
122012	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
122013	for k, v := range c.header_ {
122014		reqHeaders[k] = v
122015	}
122016	reqHeaders.Set("User-Agent", c.s.userAgent())
122017	if c.ifNoneMatch_ != "" {
122018		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
122019	}
122020	var body io.Reader = nil
122021	c.urlParams_.Set("alt", alt)
122022	c.urlParams_.Set("prettyPrint", "false")
122023	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/diskTypes/{diskType}")
122024	urls += "?" + c.urlParams_.Encode()
122025	req, err := http.NewRequest("GET", urls, body)
122026	if err != nil {
122027		return nil, err
122028	}
122029	req.Header = reqHeaders
122030	googleapi.Expand(req.URL, map[string]string{
122031		"project":  c.project,
122032		"region":   c.region,
122033		"diskType": c.diskType,
122034	})
122035	return gensupport.SendRequest(c.ctx_, c.s.client, req)
122036}
122037
122038// Do executes the "compute.regionDiskTypes.get" call.
122039// Exactly one of *DiskType or error will be non-nil. Any non-2xx status
122040// code is an error. Response headers are in either
122041// *DiskType.ServerResponse.Header or (if a response was returned at
122042// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
122043// to check whether the returned error was because
122044// http.StatusNotModified was returned.
122045func (c *RegionDiskTypesGetCall) Do(opts ...googleapi.CallOption) (*DiskType, error) {
122046	gensupport.SetOptions(c.urlParams_, opts...)
122047	res, err := c.doRequest("json")
122048	if res != nil && res.StatusCode == http.StatusNotModified {
122049		if res.Body != nil {
122050			res.Body.Close()
122051		}
122052		return nil, &googleapi.Error{
122053			Code:   res.StatusCode,
122054			Header: res.Header,
122055		}
122056	}
122057	if err != nil {
122058		return nil, err
122059	}
122060	defer googleapi.CloseBody(res)
122061	if err := googleapi.CheckResponse(res); err != nil {
122062		return nil, err
122063	}
122064	ret := &DiskType{
122065		ServerResponse: googleapi.ServerResponse{
122066			Header:         res.Header,
122067			HTTPStatusCode: res.StatusCode,
122068		},
122069	}
122070	target := &ret
122071	if err := gensupport.DecodeResponse(target, res); err != nil {
122072		return nil, err
122073	}
122074	return ret, nil
122075	// {
122076	//   "description": "Returns the specified regional disk type. Gets a list of available disk types by making a list() request. (== suppress_warning http-rest-shadowed ==)",
122077	//   "httpMethod": "GET",
122078	//   "id": "compute.regionDiskTypes.get",
122079	//   "parameterOrder": [
122080	//     "project",
122081	//     "region",
122082	//     "diskType"
122083	//   ],
122084	//   "parameters": {
122085	//     "diskType": {
122086	//       "description": "Name of the disk type to return.",
122087	//       "location": "path",
122088	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
122089	//       "required": true,
122090	//       "type": "string"
122091	//     },
122092	//     "project": {
122093	//       "description": "Project ID for this request.",
122094	//       "location": "path",
122095	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
122096	//       "required": true,
122097	//       "type": "string"
122098	//     },
122099	//     "region": {
122100	//       "description": "The name of the region for this request.",
122101	//       "location": "path",
122102	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
122103	//       "required": true,
122104	//       "type": "string"
122105	//     }
122106	//   },
122107	//   "path": "{project}/regions/{region}/diskTypes/{diskType}",
122108	//   "response": {
122109	//     "$ref": "DiskType"
122110	//   },
122111	//   "scopes": [
122112	//     "https://www.googleapis.com/auth/cloud-platform",
122113	//     "https://www.googleapis.com/auth/compute",
122114	//     "https://www.googleapis.com/auth/compute.readonly"
122115	//   ]
122116	// }
122117
122118}
122119
122120// method id "compute.regionDiskTypes.list":
122121
122122type RegionDiskTypesListCall struct {
122123	s            *Service
122124	project      string
122125	region       string
122126	urlParams_   gensupport.URLParams
122127	ifNoneMatch_ string
122128	ctx_         context.Context
122129	header_      http.Header
122130}
122131
122132// List: Retrieves a list of regional disk types available to the
122133// specified project. (== suppress_warning http-rest-shadowed ==)
122134func (r *RegionDiskTypesService) List(project string, region string) *RegionDiskTypesListCall {
122135	c := &RegionDiskTypesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
122136	c.project = project
122137	c.region = region
122138	return c
122139}
122140
122141// Filter sets the optional parameter "filter": A filter expression that
122142// filters resources listed in the response. The expression must specify
122143// the field name, a comparison operator, and the value that you want to
122144// use for filtering. The value must be a string, a number, or a
122145// boolean. The comparison operator must be either =, !=, >, or <.
122146//
122147// For example, if you are filtering Compute Engine instances, you can
122148// exclude instances named example-instance by specifying name !=
122149// example-instance.
122150//
122151// You can also filter nested fields. For example, you could specify
122152// scheduling.automaticRestart = false to include instances only if they
122153// are not scheduled for automatic restarts. You can use filtering on
122154// nested fields to filter based on resource labels.
122155//
122156// To filter on multiple expressions, provide each separate expression
122157// within parentheses. For example, (scheduling.automaticRestart = true)
122158// (cpuPlatform = "Intel Skylake"). By default, each expression is an
122159// AND expression. However, you can include AND and OR expressions
122160// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
122161// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
122162// true).
122163func (c *RegionDiskTypesListCall) Filter(filter string) *RegionDiskTypesListCall {
122164	c.urlParams_.Set("filter", filter)
122165	return c
122166}
122167
122168// MaxResults sets the optional parameter "maxResults": The maximum
122169// number of results per page that should be returned. If the number of
122170// available results is larger than maxResults, Compute Engine returns a
122171// nextPageToken that can be used to get the next page of results in
122172// subsequent list requests. Acceptable values are 0 to 500, inclusive.
122173// (Default: 500)
122174func (c *RegionDiskTypesListCall) MaxResults(maxResults int64) *RegionDiskTypesListCall {
122175	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
122176	return c
122177}
122178
122179// OrderBy sets the optional parameter "orderBy": Sorts list results by
122180// a certain order. By default, results are returned in alphanumerical
122181// order based on the resource name.
122182//
122183// You can also sort results in descending order based on the creation
122184// timestamp using orderBy="creationTimestamp desc". This sorts results
122185// based on the creationTimestamp field in reverse chronological order
122186// (newest result first). Use this to sort resources like operations so
122187// that the newest operation is returned first.
122188//
122189// Currently, only sorting by name or creationTimestamp desc is
122190// supported.
122191func (c *RegionDiskTypesListCall) OrderBy(orderBy string) *RegionDiskTypesListCall {
122192	c.urlParams_.Set("orderBy", orderBy)
122193	return c
122194}
122195
122196// PageToken sets the optional parameter "pageToken": Specifies a page
122197// token to use. Set pageToken to the nextPageToken returned by a
122198// previous list request to get the next page of results.
122199func (c *RegionDiskTypesListCall) PageToken(pageToken string) *RegionDiskTypesListCall {
122200	c.urlParams_.Set("pageToken", pageToken)
122201	return c
122202}
122203
122204// Fields allows partial responses to be retrieved. See
122205// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
122206// for more information.
122207func (c *RegionDiskTypesListCall) Fields(s ...googleapi.Field) *RegionDiskTypesListCall {
122208	c.urlParams_.Set("fields", googleapi.CombineFields(s))
122209	return c
122210}
122211
122212// IfNoneMatch sets the optional parameter which makes the operation
122213// fail if the object's ETag matches the given value. This is useful for
122214// getting updates only after the object has changed since the last
122215// request. Use googleapi.IsNotModified to check whether the response
122216// error from Do is the result of In-None-Match.
122217func (c *RegionDiskTypesListCall) IfNoneMatch(entityTag string) *RegionDiskTypesListCall {
122218	c.ifNoneMatch_ = entityTag
122219	return c
122220}
122221
122222// Context sets the context to be used in this call's Do method. Any
122223// pending HTTP request will be aborted if the provided context is
122224// canceled.
122225func (c *RegionDiskTypesListCall) Context(ctx context.Context) *RegionDiskTypesListCall {
122226	c.ctx_ = ctx
122227	return c
122228}
122229
122230// Header returns an http.Header that can be modified by the caller to
122231// add HTTP headers to the request.
122232func (c *RegionDiskTypesListCall) Header() http.Header {
122233	if c.header_ == nil {
122234		c.header_ = make(http.Header)
122235	}
122236	return c.header_
122237}
122238
122239func (c *RegionDiskTypesListCall) doRequest(alt string) (*http.Response, error) {
122240	reqHeaders := make(http.Header)
122241	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
122242	for k, v := range c.header_ {
122243		reqHeaders[k] = v
122244	}
122245	reqHeaders.Set("User-Agent", c.s.userAgent())
122246	if c.ifNoneMatch_ != "" {
122247		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
122248	}
122249	var body io.Reader = nil
122250	c.urlParams_.Set("alt", alt)
122251	c.urlParams_.Set("prettyPrint", "false")
122252	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/diskTypes")
122253	urls += "?" + c.urlParams_.Encode()
122254	req, err := http.NewRequest("GET", urls, body)
122255	if err != nil {
122256		return nil, err
122257	}
122258	req.Header = reqHeaders
122259	googleapi.Expand(req.URL, map[string]string{
122260		"project": c.project,
122261		"region":  c.region,
122262	})
122263	return gensupport.SendRequest(c.ctx_, c.s.client, req)
122264}
122265
122266// Do executes the "compute.regionDiskTypes.list" call.
122267// Exactly one of *RegionDiskTypeList or error will be non-nil. Any
122268// non-2xx status code is an error. Response headers are in either
122269// *RegionDiskTypeList.ServerResponse.Header or (if a response was
122270// returned at all) in error.(*googleapi.Error).Header. Use
122271// googleapi.IsNotModified to check whether the returned error was
122272// because http.StatusNotModified was returned.
122273func (c *RegionDiskTypesListCall) Do(opts ...googleapi.CallOption) (*RegionDiskTypeList, error) {
122274	gensupport.SetOptions(c.urlParams_, opts...)
122275	res, err := c.doRequest("json")
122276	if res != nil && res.StatusCode == http.StatusNotModified {
122277		if res.Body != nil {
122278			res.Body.Close()
122279		}
122280		return nil, &googleapi.Error{
122281			Code:   res.StatusCode,
122282			Header: res.Header,
122283		}
122284	}
122285	if err != nil {
122286		return nil, err
122287	}
122288	defer googleapi.CloseBody(res)
122289	if err := googleapi.CheckResponse(res); err != nil {
122290		return nil, err
122291	}
122292	ret := &RegionDiskTypeList{
122293		ServerResponse: googleapi.ServerResponse{
122294			Header:         res.Header,
122295			HTTPStatusCode: res.StatusCode,
122296		},
122297	}
122298	target := &ret
122299	if err := gensupport.DecodeResponse(target, res); err != nil {
122300		return nil, err
122301	}
122302	return ret, nil
122303	// {
122304	//   "description": "Retrieves a list of regional disk types available to the specified project. (== suppress_warning http-rest-shadowed ==)",
122305	//   "httpMethod": "GET",
122306	//   "id": "compute.regionDiskTypes.list",
122307	//   "parameterOrder": [
122308	//     "project",
122309	//     "region"
122310	//   ],
122311	//   "parameters": {
122312	//     "filter": {
122313	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
122314	//       "location": "query",
122315	//       "type": "string"
122316	//     },
122317	//     "maxResults": {
122318	//       "default": "500",
122319	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
122320	//       "format": "uint32",
122321	//       "location": "query",
122322	//       "minimum": "0",
122323	//       "type": "integer"
122324	//     },
122325	//     "orderBy": {
122326	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
122327	//       "location": "query",
122328	//       "type": "string"
122329	//     },
122330	//     "pageToken": {
122331	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
122332	//       "location": "query",
122333	//       "type": "string"
122334	//     },
122335	//     "project": {
122336	//       "description": "Project ID for this request.",
122337	//       "location": "path",
122338	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
122339	//       "required": true,
122340	//       "type": "string"
122341	//     },
122342	//     "region": {
122343	//       "description": "The name of the region for this request.",
122344	//       "location": "path",
122345	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
122346	//       "required": true,
122347	//       "type": "string"
122348	//     }
122349	//   },
122350	//   "path": "{project}/regions/{region}/diskTypes",
122351	//   "response": {
122352	//     "$ref": "RegionDiskTypeList"
122353	//   },
122354	//   "scopes": [
122355	//     "https://www.googleapis.com/auth/cloud-platform",
122356	//     "https://www.googleapis.com/auth/compute",
122357	//     "https://www.googleapis.com/auth/compute.readonly"
122358	//   ]
122359	// }
122360
122361}
122362
122363// Pages invokes f for each page of results.
122364// A non-nil error returned from f will halt the iteration.
122365// The provided context supersedes any context provided to the Context method.
122366func (c *RegionDiskTypesListCall) Pages(ctx context.Context, f func(*RegionDiskTypeList) error) error {
122367	c.ctx_ = ctx
122368	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
122369	for {
122370		x, err := c.Do()
122371		if err != nil {
122372			return err
122373		}
122374		if err := f(x); err != nil {
122375			return err
122376		}
122377		if x.NextPageToken == "" {
122378			return nil
122379		}
122380		c.PageToken(x.NextPageToken)
122381	}
122382}
122383
122384// method id "compute.regionDisks.addResourcePolicies":
122385
122386type RegionDisksAddResourcePoliciesCall struct {
122387	s                                     *Service
122388	project                               string
122389	region                                string
122390	disk                                  string
122391	regiondisksaddresourcepoliciesrequest *RegionDisksAddResourcePoliciesRequest
122392	urlParams_                            gensupport.URLParams
122393	ctx_                                  context.Context
122394	header_                               http.Header
122395}
122396
122397// AddResourcePolicies: Adds existing resource policies to a regional
122398// disk. You can only add one policy which will be applied to this disk
122399// for scheduling snapshot creation. (== suppress_warning
122400// http-rest-shadowed ==)
122401func (r *RegionDisksService) AddResourcePolicies(project string, region string, disk string, regiondisksaddresourcepoliciesrequest *RegionDisksAddResourcePoliciesRequest) *RegionDisksAddResourcePoliciesCall {
122402	c := &RegionDisksAddResourcePoliciesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
122403	c.project = project
122404	c.region = region
122405	c.disk = disk
122406	c.regiondisksaddresourcepoliciesrequest = regiondisksaddresourcepoliciesrequest
122407	return c
122408}
122409
122410// RequestId sets the optional parameter "requestId": An optional
122411// request ID to identify requests. Specify a unique request ID so that
122412// if you must retry your request, the server will know to ignore the
122413// request if it has already been completed.
122414//
122415// For example, consider a situation where you make an initial request
122416// and the request times out. If you make the request again with the
122417// same request ID, the server can check if original operation with the
122418// same request ID was received, and if so, will ignore the second
122419// request. This prevents clients from accidentally creating duplicate
122420// commitments.
122421//
122422// The request ID must be a valid UUID with the exception that zero UUID
122423// is not supported (00000000-0000-0000-0000-000000000000).
122424func (c *RegionDisksAddResourcePoliciesCall) RequestId(requestId string) *RegionDisksAddResourcePoliciesCall {
122425	c.urlParams_.Set("requestId", requestId)
122426	return c
122427}
122428
122429// Fields allows partial responses to be retrieved. See
122430// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
122431// for more information.
122432func (c *RegionDisksAddResourcePoliciesCall) Fields(s ...googleapi.Field) *RegionDisksAddResourcePoliciesCall {
122433	c.urlParams_.Set("fields", googleapi.CombineFields(s))
122434	return c
122435}
122436
122437// Context sets the context to be used in this call's Do method. Any
122438// pending HTTP request will be aborted if the provided context is
122439// canceled.
122440func (c *RegionDisksAddResourcePoliciesCall) Context(ctx context.Context) *RegionDisksAddResourcePoliciesCall {
122441	c.ctx_ = ctx
122442	return c
122443}
122444
122445// Header returns an http.Header that can be modified by the caller to
122446// add HTTP headers to the request.
122447func (c *RegionDisksAddResourcePoliciesCall) Header() http.Header {
122448	if c.header_ == nil {
122449		c.header_ = make(http.Header)
122450	}
122451	return c.header_
122452}
122453
122454func (c *RegionDisksAddResourcePoliciesCall) doRequest(alt string) (*http.Response, error) {
122455	reqHeaders := make(http.Header)
122456	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
122457	for k, v := range c.header_ {
122458		reqHeaders[k] = v
122459	}
122460	reqHeaders.Set("User-Agent", c.s.userAgent())
122461	var body io.Reader = nil
122462	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regiondisksaddresourcepoliciesrequest)
122463	if err != nil {
122464		return nil, err
122465	}
122466	reqHeaders.Set("Content-Type", "application/json")
122467	c.urlParams_.Set("alt", alt)
122468	c.urlParams_.Set("prettyPrint", "false")
122469	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/disks/{disk}/addResourcePolicies")
122470	urls += "?" + c.urlParams_.Encode()
122471	req, err := http.NewRequest("POST", urls, body)
122472	if err != nil {
122473		return nil, err
122474	}
122475	req.Header = reqHeaders
122476	googleapi.Expand(req.URL, map[string]string{
122477		"project": c.project,
122478		"region":  c.region,
122479		"disk":    c.disk,
122480	})
122481	return gensupport.SendRequest(c.ctx_, c.s.client, req)
122482}
122483
122484// Do executes the "compute.regionDisks.addResourcePolicies" call.
122485// Exactly one of *Operation or error will be non-nil. Any non-2xx
122486// status code is an error. Response headers are in either
122487// *Operation.ServerResponse.Header or (if a response was returned at
122488// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
122489// to check whether the returned error was because
122490// http.StatusNotModified was returned.
122491func (c *RegionDisksAddResourcePoliciesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
122492	gensupport.SetOptions(c.urlParams_, opts...)
122493	res, err := c.doRequest("json")
122494	if res != nil && res.StatusCode == http.StatusNotModified {
122495		if res.Body != nil {
122496			res.Body.Close()
122497		}
122498		return nil, &googleapi.Error{
122499			Code:   res.StatusCode,
122500			Header: res.Header,
122501		}
122502	}
122503	if err != nil {
122504		return nil, err
122505	}
122506	defer googleapi.CloseBody(res)
122507	if err := googleapi.CheckResponse(res); err != nil {
122508		return nil, err
122509	}
122510	ret := &Operation{
122511		ServerResponse: googleapi.ServerResponse{
122512			Header:         res.Header,
122513			HTTPStatusCode: res.StatusCode,
122514		},
122515	}
122516	target := &ret
122517	if err := gensupport.DecodeResponse(target, res); err != nil {
122518		return nil, err
122519	}
122520	return ret, nil
122521	// {
122522	//   "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. (== suppress_warning http-rest-shadowed ==)",
122523	//   "httpMethod": "POST",
122524	//   "id": "compute.regionDisks.addResourcePolicies",
122525	//   "parameterOrder": [
122526	//     "project",
122527	//     "region",
122528	//     "disk"
122529	//   ],
122530	//   "parameters": {
122531	//     "disk": {
122532	//       "description": "The disk name for this request.",
122533	//       "location": "path",
122534	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
122535	//       "required": true,
122536	//       "type": "string"
122537	//     },
122538	//     "project": {
122539	//       "description": "Project ID for this request.",
122540	//       "location": "path",
122541	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
122542	//       "required": true,
122543	//       "type": "string"
122544	//     },
122545	//     "region": {
122546	//       "description": "The name of the region for this request.",
122547	//       "location": "path",
122548	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
122549	//       "required": true,
122550	//       "type": "string"
122551	//     },
122552	//     "requestId": {
122553	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
122554	//       "location": "query",
122555	//       "type": "string"
122556	//     }
122557	//   },
122558	//   "path": "{project}/regions/{region}/disks/{disk}/addResourcePolicies",
122559	//   "request": {
122560	//     "$ref": "RegionDisksAddResourcePoliciesRequest"
122561	//   },
122562	//   "response": {
122563	//     "$ref": "Operation"
122564	//   },
122565	//   "scopes": [
122566	//     "https://www.googleapis.com/auth/cloud-platform",
122567	//     "https://www.googleapis.com/auth/compute"
122568	//   ]
122569	// }
122570
122571}
122572
122573// method id "compute.regionDisks.createSnapshot":
122574
122575type RegionDisksCreateSnapshotCall struct {
122576	s          *Service
122577	project    string
122578	region     string
122579	disk       string
122580	snapshot   *Snapshot
122581	urlParams_ gensupport.URLParams
122582	ctx_       context.Context
122583	header_    http.Header
122584}
122585
122586// CreateSnapshot: Creates a snapshot of this regional disk. (==
122587// suppress_warning http-rest-shadowed ==)
122588func (r *RegionDisksService) CreateSnapshot(project string, region string, disk string, snapshot *Snapshot) *RegionDisksCreateSnapshotCall {
122589	c := &RegionDisksCreateSnapshotCall{s: r.s, urlParams_: make(gensupport.URLParams)}
122590	c.project = project
122591	c.region = region
122592	c.disk = disk
122593	c.snapshot = snapshot
122594	return c
122595}
122596
122597// GuestFlush sets the optional parameter "guestFlush": [Input Only]
122598// Specifies to create an application consistent snapshot by informing
122599// the OS to prepare for the snapshot process. Currently only supported
122600// on Windows instances using the Volume Shadow Copy Service (VSS).
122601func (c *RegionDisksCreateSnapshotCall) GuestFlush(guestFlush bool) *RegionDisksCreateSnapshotCall {
122602	c.urlParams_.Set("guestFlush", fmt.Sprint(guestFlush))
122603	return c
122604}
122605
122606// RequestId sets the optional parameter "requestId": An optional
122607// request ID to identify requests. Specify a unique request ID so that
122608// if you must retry your request, the server will know to ignore the
122609// request if it has already been completed.
122610//
122611// For example, consider a situation where you make an initial request
122612// and the request times out. If you make the request again with the
122613// same request ID, the server can check if original operation with the
122614// same request ID was received, and if so, will ignore the second
122615// request. This prevents clients from accidentally creating duplicate
122616// commitments.
122617//
122618// The request ID must be a valid UUID with the exception that zero UUID
122619// is not supported (00000000-0000-0000-0000-000000000000).
122620func (c *RegionDisksCreateSnapshotCall) RequestId(requestId string) *RegionDisksCreateSnapshotCall {
122621	c.urlParams_.Set("requestId", requestId)
122622	return c
122623}
122624
122625// Fields allows partial responses to be retrieved. See
122626// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
122627// for more information.
122628func (c *RegionDisksCreateSnapshotCall) Fields(s ...googleapi.Field) *RegionDisksCreateSnapshotCall {
122629	c.urlParams_.Set("fields", googleapi.CombineFields(s))
122630	return c
122631}
122632
122633// Context sets the context to be used in this call's Do method. Any
122634// pending HTTP request will be aborted if the provided context is
122635// canceled.
122636func (c *RegionDisksCreateSnapshotCall) Context(ctx context.Context) *RegionDisksCreateSnapshotCall {
122637	c.ctx_ = ctx
122638	return c
122639}
122640
122641// Header returns an http.Header that can be modified by the caller to
122642// add HTTP headers to the request.
122643func (c *RegionDisksCreateSnapshotCall) Header() http.Header {
122644	if c.header_ == nil {
122645		c.header_ = make(http.Header)
122646	}
122647	return c.header_
122648}
122649
122650func (c *RegionDisksCreateSnapshotCall) doRequest(alt string) (*http.Response, error) {
122651	reqHeaders := make(http.Header)
122652	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
122653	for k, v := range c.header_ {
122654		reqHeaders[k] = v
122655	}
122656	reqHeaders.Set("User-Agent", c.s.userAgent())
122657	var body io.Reader = nil
122658	body, err := googleapi.WithoutDataWrapper.JSONReader(c.snapshot)
122659	if err != nil {
122660		return nil, err
122661	}
122662	reqHeaders.Set("Content-Type", "application/json")
122663	c.urlParams_.Set("alt", alt)
122664	c.urlParams_.Set("prettyPrint", "false")
122665	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/disks/{disk}/createSnapshot")
122666	urls += "?" + c.urlParams_.Encode()
122667	req, err := http.NewRequest("POST", urls, body)
122668	if err != nil {
122669		return nil, err
122670	}
122671	req.Header = reqHeaders
122672	googleapi.Expand(req.URL, map[string]string{
122673		"project": c.project,
122674		"region":  c.region,
122675		"disk":    c.disk,
122676	})
122677	return gensupport.SendRequest(c.ctx_, c.s.client, req)
122678}
122679
122680// Do executes the "compute.regionDisks.createSnapshot" call.
122681// Exactly one of *Operation or error will be non-nil. Any non-2xx
122682// status code is an error. Response headers are in either
122683// *Operation.ServerResponse.Header or (if a response was returned at
122684// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
122685// to check whether the returned error was because
122686// http.StatusNotModified was returned.
122687func (c *RegionDisksCreateSnapshotCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
122688	gensupport.SetOptions(c.urlParams_, opts...)
122689	res, err := c.doRequest("json")
122690	if res != nil && res.StatusCode == http.StatusNotModified {
122691		if res.Body != nil {
122692			res.Body.Close()
122693		}
122694		return nil, &googleapi.Error{
122695			Code:   res.StatusCode,
122696			Header: res.Header,
122697		}
122698	}
122699	if err != nil {
122700		return nil, err
122701	}
122702	defer googleapi.CloseBody(res)
122703	if err := googleapi.CheckResponse(res); err != nil {
122704		return nil, err
122705	}
122706	ret := &Operation{
122707		ServerResponse: googleapi.ServerResponse{
122708			Header:         res.Header,
122709			HTTPStatusCode: res.StatusCode,
122710		},
122711	}
122712	target := &ret
122713	if err := gensupport.DecodeResponse(target, res); err != nil {
122714		return nil, err
122715	}
122716	return ret, nil
122717	// {
122718	//   "description": "Creates a snapshot of this regional disk. (== suppress_warning http-rest-shadowed ==)",
122719	//   "httpMethod": "POST",
122720	//   "id": "compute.regionDisks.createSnapshot",
122721	//   "parameterOrder": [
122722	//     "project",
122723	//     "region",
122724	//     "disk"
122725	//   ],
122726	//   "parameters": {
122727	//     "disk": {
122728	//       "description": "Name of the regional persistent disk to snapshot.",
122729	//       "location": "path",
122730	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
122731	//       "required": true,
122732	//       "type": "string"
122733	//     },
122734	//     "guestFlush": {
122735	//       "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).",
122736	//       "location": "query",
122737	//       "type": "boolean"
122738	//     },
122739	//     "project": {
122740	//       "description": "Project ID for this request.",
122741	//       "location": "path",
122742	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
122743	//       "required": true,
122744	//       "type": "string"
122745	//     },
122746	//     "region": {
122747	//       "description": "Name of the region for this request.",
122748	//       "location": "path",
122749	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
122750	//       "required": true,
122751	//       "type": "string"
122752	//     },
122753	//     "requestId": {
122754	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
122755	//       "location": "query",
122756	//       "type": "string"
122757	//     }
122758	//   },
122759	//   "path": "{project}/regions/{region}/disks/{disk}/createSnapshot",
122760	//   "request": {
122761	//     "$ref": "Snapshot"
122762	//   },
122763	//   "response": {
122764	//     "$ref": "Operation"
122765	//   },
122766	//   "scopes": [
122767	//     "https://www.googleapis.com/auth/cloud-platform",
122768	//     "https://www.googleapis.com/auth/compute"
122769	//   ]
122770	// }
122771
122772}
122773
122774// method id "compute.regionDisks.delete":
122775
122776type RegionDisksDeleteCall struct {
122777	s          *Service
122778	project    string
122779	region     string
122780	disk       string
122781	urlParams_ gensupport.URLParams
122782	ctx_       context.Context
122783	header_    http.Header
122784}
122785
122786// Delete: Deletes the specified regional persistent disk. Deleting a
122787// regional disk removes all the replicas of its data permanently and is
122788// irreversible. However, deleting a disk does not delete any snapshots
122789// previously made from the disk. You must separately delete snapshots.
122790// (== suppress_warning http-rest-shadowed ==)
122791func (r *RegionDisksService) Delete(project string, region string, disk string) *RegionDisksDeleteCall {
122792	c := &RegionDisksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
122793	c.project = project
122794	c.region = region
122795	c.disk = disk
122796	return c
122797}
122798
122799// RequestId sets the optional parameter "requestId": An optional
122800// request ID to identify requests. Specify a unique request ID so that
122801// if you must retry your request, the server will know to ignore the
122802// request if it has already been completed.
122803//
122804// For example, consider a situation where you make an initial request
122805// and the request times out. If you make the request again with the
122806// same request ID, the server can check if original operation with the
122807// same request ID was received, and if so, will ignore the second
122808// request. This prevents clients from accidentally creating duplicate
122809// commitments.
122810//
122811// The request ID must be a valid UUID with the exception that zero UUID
122812// is not supported (00000000-0000-0000-0000-000000000000).
122813func (c *RegionDisksDeleteCall) RequestId(requestId string) *RegionDisksDeleteCall {
122814	c.urlParams_.Set("requestId", requestId)
122815	return c
122816}
122817
122818// Fields allows partial responses to be retrieved. See
122819// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
122820// for more information.
122821func (c *RegionDisksDeleteCall) Fields(s ...googleapi.Field) *RegionDisksDeleteCall {
122822	c.urlParams_.Set("fields", googleapi.CombineFields(s))
122823	return c
122824}
122825
122826// Context sets the context to be used in this call's Do method. Any
122827// pending HTTP request will be aborted if the provided context is
122828// canceled.
122829func (c *RegionDisksDeleteCall) Context(ctx context.Context) *RegionDisksDeleteCall {
122830	c.ctx_ = ctx
122831	return c
122832}
122833
122834// Header returns an http.Header that can be modified by the caller to
122835// add HTTP headers to the request.
122836func (c *RegionDisksDeleteCall) Header() http.Header {
122837	if c.header_ == nil {
122838		c.header_ = make(http.Header)
122839	}
122840	return c.header_
122841}
122842
122843func (c *RegionDisksDeleteCall) doRequest(alt string) (*http.Response, error) {
122844	reqHeaders := make(http.Header)
122845	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
122846	for k, v := range c.header_ {
122847		reqHeaders[k] = v
122848	}
122849	reqHeaders.Set("User-Agent", c.s.userAgent())
122850	var body io.Reader = nil
122851	c.urlParams_.Set("alt", alt)
122852	c.urlParams_.Set("prettyPrint", "false")
122853	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/disks/{disk}")
122854	urls += "?" + c.urlParams_.Encode()
122855	req, err := http.NewRequest("DELETE", urls, body)
122856	if err != nil {
122857		return nil, err
122858	}
122859	req.Header = reqHeaders
122860	googleapi.Expand(req.URL, map[string]string{
122861		"project": c.project,
122862		"region":  c.region,
122863		"disk":    c.disk,
122864	})
122865	return gensupport.SendRequest(c.ctx_, c.s.client, req)
122866}
122867
122868// Do executes the "compute.regionDisks.delete" call.
122869// Exactly one of *Operation or error will be non-nil. Any non-2xx
122870// status code is an error. Response headers are in either
122871// *Operation.ServerResponse.Header or (if a response was returned at
122872// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
122873// to check whether the returned error was because
122874// http.StatusNotModified was returned.
122875func (c *RegionDisksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
122876	gensupport.SetOptions(c.urlParams_, opts...)
122877	res, err := c.doRequest("json")
122878	if res != nil && res.StatusCode == http.StatusNotModified {
122879		if res.Body != nil {
122880			res.Body.Close()
122881		}
122882		return nil, &googleapi.Error{
122883			Code:   res.StatusCode,
122884			Header: res.Header,
122885		}
122886	}
122887	if err != nil {
122888		return nil, err
122889	}
122890	defer googleapi.CloseBody(res)
122891	if err := googleapi.CheckResponse(res); err != nil {
122892		return nil, err
122893	}
122894	ret := &Operation{
122895		ServerResponse: googleapi.ServerResponse{
122896			Header:         res.Header,
122897			HTTPStatusCode: res.StatusCode,
122898		},
122899	}
122900	target := &ret
122901	if err := gensupport.DecodeResponse(target, res); err != nil {
122902		return nil, err
122903	}
122904	return ret, nil
122905	// {
122906	//   "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. (== suppress_warning http-rest-shadowed ==)",
122907	//   "httpMethod": "DELETE",
122908	//   "id": "compute.regionDisks.delete",
122909	//   "parameterOrder": [
122910	//     "project",
122911	//     "region",
122912	//     "disk"
122913	//   ],
122914	//   "parameters": {
122915	//     "disk": {
122916	//       "description": "Name of the regional persistent disk to delete.",
122917	//       "location": "path",
122918	//       "required": true,
122919	//       "type": "string"
122920	//     },
122921	//     "project": {
122922	//       "description": "Project ID for this request.",
122923	//       "location": "path",
122924	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
122925	//       "required": true,
122926	//       "type": "string"
122927	//     },
122928	//     "region": {
122929	//       "description": "Name of the region for this request.",
122930	//       "location": "path",
122931	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
122932	//       "required": true,
122933	//       "type": "string"
122934	//     },
122935	//     "requestId": {
122936	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
122937	//       "location": "query",
122938	//       "type": "string"
122939	//     }
122940	//   },
122941	//   "path": "{project}/regions/{region}/disks/{disk}",
122942	//   "response": {
122943	//     "$ref": "Operation"
122944	//   },
122945	//   "scopes": [
122946	//     "https://www.googleapis.com/auth/cloud-platform",
122947	//     "https://www.googleapis.com/auth/compute"
122948	//   ]
122949	// }
122950
122951}
122952
122953// method id "compute.regionDisks.get":
122954
122955type RegionDisksGetCall struct {
122956	s            *Service
122957	project      string
122958	region       string
122959	disk         string
122960	urlParams_   gensupport.URLParams
122961	ifNoneMatch_ string
122962	ctx_         context.Context
122963	header_      http.Header
122964}
122965
122966// Get: Returns a specified regional persistent disk. (==
122967// suppress_warning http-rest-shadowed ==)
122968func (r *RegionDisksService) Get(project string, region string, disk string) *RegionDisksGetCall {
122969	c := &RegionDisksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
122970	c.project = project
122971	c.region = region
122972	c.disk = disk
122973	return c
122974}
122975
122976// Fields allows partial responses to be retrieved. See
122977// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
122978// for more information.
122979func (c *RegionDisksGetCall) Fields(s ...googleapi.Field) *RegionDisksGetCall {
122980	c.urlParams_.Set("fields", googleapi.CombineFields(s))
122981	return c
122982}
122983
122984// IfNoneMatch sets the optional parameter which makes the operation
122985// fail if the object's ETag matches the given value. This is useful for
122986// getting updates only after the object has changed since the last
122987// request. Use googleapi.IsNotModified to check whether the response
122988// error from Do is the result of In-None-Match.
122989func (c *RegionDisksGetCall) IfNoneMatch(entityTag string) *RegionDisksGetCall {
122990	c.ifNoneMatch_ = entityTag
122991	return c
122992}
122993
122994// Context sets the context to be used in this call's Do method. Any
122995// pending HTTP request will be aborted if the provided context is
122996// canceled.
122997func (c *RegionDisksGetCall) Context(ctx context.Context) *RegionDisksGetCall {
122998	c.ctx_ = ctx
122999	return c
123000}
123001
123002// Header returns an http.Header that can be modified by the caller to
123003// add HTTP headers to the request.
123004func (c *RegionDisksGetCall) Header() http.Header {
123005	if c.header_ == nil {
123006		c.header_ = make(http.Header)
123007	}
123008	return c.header_
123009}
123010
123011func (c *RegionDisksGetCall) doRequest(alt string) (*http.Response, error) {
123012	reqHeaders := make(http.Header)
123013	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
123014	for k, v := range c.header_ {
123015		reqHeaders[k] = v
123016	}
123017	reqHeaders.Set("User-Agent", c.s.userAgent())
123018	if c.ifNoneMatch_ != "" {
123019		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
123020	}
123021	var body io.Reader = nil
123022	c.urlParams_.Set("alt", alt)
123023	c.urlParams_.Set("prettyPrint", "false")
123024	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/disks/{disk}")
123025	urls += "?" + c.urlParams_.Encode()
123026	req, err := http.NewRequest("GET", urls, body)
123027	if err != nil {
123028		return nil, err
123029	}
123030	req.Header = reqHeaders
123031	googleapi.Expand(req.URL, map[string]string{
123032		"project": c.project,
123033		"region":  c.region,
123034		"disk":    c.disk,
123035	})
123036	return gensupport.SendRequest(c.ctx_, c.s.client, req)
123037}
123038
123039// Do executes the "compute.regionDisks.get" call.
123040// Exactly one of *Disk or error will be non-nil. Any non-2xx status
123041// code is an error. Response headers are in either
123042// *Disk.ServerResponse.Header or (if a response was returned at all) in
123043// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
123044// whether the returned error was because http.StatusNotModified was
123045// returned.
123046func (c *RegionDisksGetCall) Do(opts ...googleapi.CallOption) (*Disk, error) {
123047	gensupport.SetOptions(c.urlParams_, opts...)
123048	res, err := c.doRequest("json")
123049	if res != nil && res.StatusCode == http.StatusNotModified {
123050		if res.Body != nil {
123051			res.Body.Close()
123052		}
123053		return nil, &googleapi.Error{
123054			Code:   res.StatusCode,
123055			Header: res.Header,
123056		}
123057	}
123058	if err != nil {
123059		return nil, err
123060	}
123061	defer googleapi.CloseBody(res)
123062	if err := googleapi.CheckResponse(res); err != nil {
123063		return nil, err
123064	}
123065	ret := &Disk{
123066		ServerResponse: googleapi.ServerResponse{
123067			Header:         res.Header,
123068			HTTPStatusCode: res.StatusCode,
123069		},
123070	}
123071	target := &ret
123072	if err := gensupport.DecodeResponse(target, res); err != nil {
123073		return nil, err
123074	}
123075	return ret, nil
123076	// {
123077	//   "description": "Returns a specified regional persistent disk. (== suppress_warning http-rest-shadowed ==)",
123078	//   "httpMethod": "GET",
123079	//   "id": "compute.regionDisks.get",
123080	//   "parameterOrder": [
123081	//     "project",
123082	//     "region",
123083	//     "disk"
123084	//   ],
123085	//   "parameters": {
123086	//     "disk": {
123087	//       "description": "Name of the regional persistent disk to return.",
123088	//       "location": "path",
123089	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
123090	//       "required": true,
123091	//       "type": "string"
123092	//     },
123093	//     "project": {
123094	//       "description": "Project ID for this request.",
123095	//       "location": "path",
123096	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
123097	//       "required": true,
123098	//       "type": "string"
123099	//     },
123100	//     "region": {
123101	//       "description": "Name of the region for this request.",
123102	//       "location": "path",
123103	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
123104	//       "required": true,
123105	//       "type": "string"
123106	//     }
123107	//   },
123108	//   "path": "{project}/regions/{region}/disks/{disk}",
123109	//   "response": {
123110	//     "$ref": "Disk"
123111	//   },
123112	//   "scopes": [
123113	//     "https://www.googleapis.com/auth/cloud-platform",
123114	//     "https://www.googleapis.com/auth/compute",
123115	//     "https://www.googleapis.com/auth/compute.readonly"
123116	//   ]
123117	// }
123118
123119}
123120
123121// method id "compute.regionDisks.getIamPolicy":
123122
123123type RegionDisksGetIamPolicyCall struct {
123124	s            *Service
123125	project      string
123126	region       string
123127	resource     string
123128	urlParams_   gensupport.URLParams
123129	ifNoneMatch_ string
123130	ctx_         context.Context
123131	header_      http.Header
123132}
123133
123134// GetIamPolicy: Gets the access control policy for a resource. May be
123135// empty if no such policy or resource exists. (== suppress_warning
123136// http-rest-shadowed ==)
123137func (r *RegionDisksService) GetIamPolicy(project string, region string, resource string) *RegionDisksGetIamPolicyCall {
123138	c := &RegionDisksGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
123139	c.project = project
123140	c.region = region
123141	c.resource = resource
123142	return c
123143}
123144
123145// OptionsRequestedPolicyVersion sets the optional parameter
123146// "optionsRequestedPolicyVersion": Requested IAM Policy version.
123147func (c *RegionDisksGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *RegionDisksGetIamPolicyCall {
123148	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
123149	return c
123150}
123151
123152// Fields allows partial responses to be retrieved. See
123153// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
123154// for more information.
123155func (c *RegionDisksGetIamPolicyCall) Fields(s ...googleapi.Field) *RegionDisksGetIamPolicyCall {
123156	c.urlParams_.Set("fields", googleapi.CombineFields(s))
123157	return c
123158}
123159
123160// IfNoneMatch sets the optional parameter which makes the operation
123161// fail if the object's ETag matches the given value. This is useful for
123162// getting updates only after the object has changed since the last
123163// request. Use googleapi.IsNotModified to check whether the response
123164// error from Do is the result of In-None-Match.
123165func (c *RegionDisksGetIamPolicyCall) IfNoneMatch(entityTag string) *RegionDisksGetIamPolicyCall {
123166	c.ifNoneMatch_ = entityTag
123167	return c
123168}
123169
123170// Context sets the context to be used in this call's Do method. Any
123171// pending HTTP request will be aborted if the provided context is
123172// canceled.
123173func (c *RegionDisksGetIamPolicyCall) Context(ctx context.Context) *RegionDisksGetIamPolicyCall {
123174	c.ctx_ = ctx
123175	return c
123176}
123177
123178// Header returns an http.Header that can be modified by the caller to
123179// add HTTP headers to the request.
123180func (c *RegionDisksGetIamPolicyCall) Header() http.Header {
123181	if c.header_ == nil {
123182		c.header_ = make(http.Header)
123183	}
123184	return c.header_
123185}
123186
123187func (c *RegionDisksGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
123188	reqHeaders := make(http.Header)
123189	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
123190	for k, v := range c.header_ {
123191		reqHeaders[k] = v
123192	}
123193	reqHeaders.Set("User-Agent", c.s.userAgent())
123194	if c.ifNoneMatch_ != "" {
123195		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
123196	}
123197	var body io.Reader = nil
123198	c.urlParams_.Set("alt", alt)
123199	c.urlParams_.Set("prettyPrint", "false")
123200	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/disks/{resource}/getIamPolicy")
123201	urls += "?" + c.urlParams_.Encode()
123202	req, err := http.NewRequest("GET", urls, body)
123203	if err != nil {
123204		return nil, err
123205	}
123206	req.Header = reqHeaders
123207	googleapi.Expand(req.URL, map[string]string{
123208		"project":  c.project,
123209		"region":   c.region,
123210		"resource": c.resource,
123211	})
123212	return gensupport.SendRequest(c.ctx_, c.s.client, req)
123213}
123214
123215// Do executes the "compute.regionDisks.getIamPolicy" call.
123216// Exactly one of *Policy or error will be non-nil. Any non-2xx status
123217// code is an error. Response headers are in either
123218// *Policy.ServerResponse.Header or (if a response was returned at all)
123219// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
123220// check whether the returned error was because http.StatusNotModified
123221// was returned.
123222func (c *RegionDisksGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
123223	gensupport.SetOptions(c.urlParams_, opts...)
123224	res, err := c.doRequest("json")
123225	if res != nil && res.StatusCode == http.StatusNotModified {
123226		if res.Body != nil {
123227			res.Body.Close()
123228		}
123229		return nil, &googleapi.Error{
123230			Code:   res.StatusCode,
123231			Header: res.Header,
123232		}
123233	}
123234	if err != nil {
123235		return nil, err
123236	}
123237	defer googleapi.CloseBody(res)
123238	if err := googleapi.CheckResponse(res); err != nil {
123239		return nil, err
123240	}
123241	ret := &Policy{
123242		ServerResponse: googleapi.ServerResponse{
123243			Header:         res.Header,
123244			HTTPStatusCode: res.StatusCode,
123245		},
123246	}
123247	target := &ret
123248	if err := gensupport.DecodeResponse(target, res); err != nil {
123249		return nil, err
123250	}
123251	return ret, nil
123252	// {
123253	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists. (== suppress_warning http-rest-shadowed ==)",
123254	//   "httpMethod": "GET",
123255	//   "id": "compute.regionDisks.getIamPolicy",
123256	//   "parameterOrder": [
123257	//     "project",
123258	//     "region",
123259	//     "resource"
123260	//   ],
123261	//   "parameters": {
123262	//     "optionsRequestedPolicyVersion": {
123263	//       "description": "Requested IAM Policy version.",
123264	//       "format": "int32",
123265	//       "location": "query",
123266	//       "type": "integer"
123267	//     },
123268	//     "project": {
123269	//       "description": "Project ID for this request.",
123270	//       "location": "path",
123271	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
123272	//       "required": true,
123273	//       "type": "string"
123274	//     },
123275	//     "region": {
123276	//       "description": "The name of the region for this request.",
123277	//       "location": "path",
123278	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
123279	//       "required": true,
123280	//       "type": "string"
123281	//     },
123282	//     "resource": {
123283	//       "description": "Name or id of the resource for this request.",
123284	//       "location": "path",
123285	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
123286	//       "required": true,
123287	//       "type": "string"
123288	//     }
123289	//   },
123290	//   "path": "{project}/regions/{region}/disks/{resource}/getIamPolicy",
123291	//   "response": {
123292	//     "$ref": "Policy"
123293	//   },
123294	//   "scopes": [
123295	//     "https://www.googleapis.com/auth/cloud-platform",
123296	//     "https://www.googleapis.com/auth/compute",
123297	//     "https://www.googleapis.com/auth/compute.readonly"
123298	//   ]
123299	// }
123300
123301}
123302
123303// method id "compute.regionDisks.insert":
123304
123305type RegionDisksInsertCall struct {
123306	s          *Service
123307	project    string
123308	region     string
123309	disk       *Disk
123310	urlParams_ gensupport.URLParams
123311	ctx_       context.Context
123312	header_    http.Header
123313}
123314
123315// Insert: Creates a persistent regional disk in the specified project
123316// using the data included in the request. (== suppress_warning
123317// http-rest-shadowed ==)
123318func (r *RegionDisksService) Insert(project string, region string, disk *Disk) *RegionDisksInsertCall {
123319	c := &RegionDisksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
123320	c.project = project
123321	c.region = region
123322	c.disk = disk
123323	return c
123324}
123325
123326// RequestId sets the optional parameter "requestId": An optional
123327// request ID to identify requests. Specify a unique request ID so that
123328// if you must retry your request, the server will know to ignore the
123329// request if it has already been completed.
123330//
123331// For example, consider a situation where you make an initial request
123332// and the request times out. If you make the request again with the
123333// same request ID, the server can check if original operation with the
123334// same request ID was received, and if so, will ignore the second
123335// request. This prevents clients from accidentally creating duplicate
123336// commitments.
123337//
123338// The request ID must be a valid UUID with the exception that zero UUID
123339// is not supported (00000000-0000-0000-0000-000000000000).
123340func (c *RegionDisksInsertCall) RequestId(requestId string) *RegionDisksInsertCall {
123341	c.urlParams_.Set("requestId", requestId)
123342	return c
123343}
123344
123345// SourceImage sets the optional parameter "sourceImage": Source image
123346// to restore onto a disk.
123347func (c *RegionDisksInsertCall) SourceImage(sourceImage string) *RegionDisksInsertCall {
123348	c.urlParams_.Set("sourceImage", sourceImage)
123349	return c
123350}
123351
123352// Fields allows partial responses to be retrieved. See
123353// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
123354// for more information.
123355func (c *RegionDisksInsertCall) Fields(s ...googleapi.Field) *RegionDisksInsertCall {
123356	c.urlParams_.Set("fields", googleapi.CombineFields(s))
123357	return c
123358}
123359
123360// Context sets the context to be used in this call's Do method. Any
123361// pending HTTP request will be aborted if the provided context is
123362// canceled.
123363func (c *RegionDisksInsertCall) Context(ctx context.Context) *RegionDisksInsertCall {
123364	c.ctx_ = ctx
123365	return c
123366}
123367
123368// Header returns an http.Header that can be modified by the caller to
123369// add HTTP headers to the request.
123370func (c *RegionDisksInsertCall) Header() http.Header {
123371	if c.header_ == nil {
123372		c.header_ = make(http.Header)
123373	}
123374	return c.header_
123375}
123376
123377func (c *RegionDisksInsertCall) doRequest(alt string) (*http.Response, error) {
123378	reqHeaders := make(http.Header)
123379	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
123380	for k, v := range c.header_ {
123381		reqHeaders[k] = v
123382	}
123383	reqHeaders.Set("User-Agent", c.s.userAgent())
123384	var body io.Reader = nil
123385	body, err := googleapi.WithoutDataWrapper.JSONReader(c.disk)
123386	if err != nil {
123387		return nil, err
123388	}
123389	reqHeaders.Set("Content-Type", "application/json")
123390	c.urlParams_.Set("alt", alt)
123391	c.urlParams_.Set("prettyPrint", "false")
123392	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/disks")
123393	urls += "?" + c.urlParams_.Encode()
123394	req, err := http.NewRequest("POST", urls, body)
123395	if err != nil {
123396		return nil, err
123397	}
123398	req.Header = reqHeaders
123399	googleapi.Expand(req.URL, map[string]string{
123400		"project": c.project,
123401		"region":  c.region,
123402	})
123403	return gensupport.SendRequest(c.ctx_, c.s.client, req)
123404}
123405
123406// Do executes the "compute.regionDisks.insert" call.
123407// Exactly one of *Operation or error will be non-nil. Any non-2xx
123408// status code is an error. Response headers are in either
123409// *Operation.ServerResponse.Header or (if a response was returned at
123410// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
123411// to check whether the returned error was because
123412// http.StatusNotModified was returned.
123413func (c *RegionDisksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
123414	gensupport.SetOptions(c.urlParams_, opts...)
123415	res, err := c.doRequest("json")
123416	if res != nil && res.StatusCode == http.StatusNotModified {
123417		if res.Body != nil {
123418			res.Body.Close()
123419		}
123420		return nil, &googleapi.Error{
123421			Code:   res.StatusCode,
123422			Header: res.Header,
123423		}
123424	}
123425	if err != nil {
123426		return nil, err
123427	}
123428	defer googleapi.CloseBody(res)
123429	if err := googleapi.CheckResponse(res); err != nil {
123430		return nil, err
123431	}
123432	ret := &Operation{
123433		ServerResponse: googleapi.ServerResponse{
123434			Header:         res.Header,
123435			HTTPStatusCode: res.StatusCode,
123436		},
123437	}
123438	target := &ret
123439	if err := gensupport.DecodeResponse(target, res); err != nil {
123440		return nil, err
123441	}
123442	return ret, nil
123443	// {
123444	//   "description": "Creates a persistent regional disk in the specified project using the data included in the request. (== suppress_warning http-rest-shadowed ==)",
123445	//   "httpMethod": "POST",
123446	//   "id": "compute.regionDisks.insert",
123447	//   "parameterOrder": [
123448	//     "project",
123449	//     "region"
123450	//   ],
123451	//   "parameters": {
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	//     "sourceImage": {
123472	//       "description": "Optional. Source image to restore onto a disk.",
123473	//       "location": "query",
123474	//       "type": "string"
123475	//     }
123476	//   },
123477	//   "path": "{project}/regions/{region}/disks",
123478	//   "request": {
123479	//     "$ref": "Disk"
123480	//   },
123481	//   "response": {
123482	//     "$ref": "Operation"
123483	//   },
123484	//   "scopes": [
123485	//     "https://www.googleapis.com/auth/cloud-platform",
123486	//     "https://www.googleapis.com/auth/compute"
123487	//   ]
123488	// }
123489
123490}
123491
123492// method id "compute.regionDisks.list":
123493
123494type RegionDisksListCall struct {
123495	s            *Service
123496	project      string
123497	region       string
123498	urlParams_   gensupport.URLParams
123499	ifNoneMatch_ string
123500	ctx_         context.Context
123501	header_      http.Header
123502}
123503
123504// List: Retrieves the list of persistent disks contained within the
123505// specified region. (== suppress_warning http-rest-shadowed ==)
123506func (r *RegionDisksService) List(project string, region string) *RegionDisksListCall {
123507	c := &RegionDisksListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
123508	c.project = project
123509	c.region = region
123510	return c
123511}
123512
123513// Filter sets the optional parameter "filter": A filter expression that
123514// filters resources listed in the response. The expression must specify
123515// the field name, a comparison operator, and the value that you want to
123516// use for filtering. The value must be a string, a number, or a
123517// boolean. The comparison operator must be either =, !=, >, or <.
123518//
123519// For example, if you are filtering Compute Engine instances, you can
123520// exclude instances named example-instance by specifying name !=
123521// example-instance.
123522//
123523// You can also filter nested fields. For example, you could specify
123524// scheduling.automaticRestart = false to include instances only if they
123525// are not scheduled for automatic restarts. You can use filtering on
123526// nested fields to filter based on resource labels.
123527//
123528// To filter on multiple expressions, provide each separate expression
123529// within parentheses. For example, (scheduling.automaticRestart = true)
123530// (cpuPlatform = "Intel Skylake"). By default, each expression is an
123531// AND expression. However, you can include AND and OR expressions
123532// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
123533// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
123534// true).
123535func (c *RegionDisksListCall) Filter(filter string) *RegionDisksListCall {
123536	c.urlParams_.Set("filter", filter)
123537	return c
123538}
123539
123540// MaxResults sets the optional parameter "maxResults": The maximum
123541// number of results per page that should be returned. If the number of
123542// available results is larger than maxResults, Compute Engine returns a
123543// nextPageToken that can be used to get the next page of results in
123544// subsequent list requests. Acceptable values are 0 to 500, inclusive.
123545// (Default: 500)
123546func (c *RegionDisksListCall) MaxResults(maxResults int64) *RegionDisksListCall {
123547	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
123548	return c
123549}
123550
123551// OrderBy sets the optional parameter "orderBy": Sorts list results by
123552// a certain order. By default, results are returned in alphanumerical
123553// order based on the resource name.
123554//
123555// You can also sort results in descending order based on the creation
123556// timestamp using orderBy="creationTimestamp desc". This sorts results
123557// based on the creationTimestamp field in reverse chronological order
123558// (newest result first). Use this to sort resources like operations so
123559// that the newest operation is returned first.
123560//
123561// Currently, only sorting by name or creationTimestamp desc is
123562// supported.
123563func (c *RegionDisksListCall) OrderBy(orderBy string) *RegionDisksListCall {
123564	c.urlParams_.Set("orderBy", orderBy)
123565	return c
123566}
123567
123568// PageToken sets the optional parameter "pageToken": Specifies a page
123569// token to use. Set pageToken to the nextPageToken returned by a
123570// previous list request to get the next page of results.
123571func (c *RegionDisksListCall) PageToken(pageToken string) *RegionDisksListCall {
123572	c.urlParams_.Set("pageToken", pageToken)
123573	return c
123574}
123575
123576// Fields allows partial responses to be retrieved. See
123577// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
123578// for more information.
123579func (c *RegionDisksListCall) Fields(s ...googleapi.Field) *RegionDisksListCall {
123580	c.urlParams_.Set("fields", googleapi.CombineFields(s))
123581	return c
123582}
123583
123584// IfNoneMatch sets the optional parameter which makes the operation
123585// fail if the object's ETag matches the given value. This is useful for
123586// getting updates only after the object has changed since the last
123587// request. Use googleapi.IsNotModified to check whether the response
123588// error from Do is the result of In-None-Match.
123589func (c *RegionDisksListCall) IfNoneMatch(entityTag string) *RegionDisksListCall {
123590	c.ifNoneMatch_ = entityTag
123591	return c
123592}
123593
123594// Context sets the context to be used in this call's Do method. Any
123595// pending HTTP request will be aborted if the provided context is
123596// canceled.
123597func (c *RegionDisksListCall) Context(ctx context.Context) *RegionDisksListCall {
123598	c.ctx_ = ctx
123599	return c
123600}
123601
123602// Header returns an http.Header that can be modified by the caller to
123603// add HTTP headers to the request.
123604func (c *RegionDisksListCall) Header() http.Header {
123605	if c.header_ == nil {
123606		c.header_ = make(http.Header)
123607	}
123608	return c.header_
123609}
123610
123611func (c *RegionDisksListCall) doRequest(alt string) (*http.Response, error) {
123612	reqHeaders := make(http.Header)
123613	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
123614	for k, v := range c.header_ {
123615		reqHeaders[k] = v
123616	}
123617	reqHeaders.Set("User-Agent", c.s.userAgent())
123618	if c.ifNoneMatch_ != "" {
123619		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
123620	}
123621	var body io.Reader = nil
123622	c.urlParams_.Set("alt", alt)
123623	c.urlParams_.Set("prettyPrint", "false")
123624	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/disks")
123625	urls += "?" + c.urlParams_.Encode()
123626	req, err := http.NewRequest("GET", urls, body)
123627	if err != nil {
123628		return nil, err
123629	}
123630	req.Header = reqHeaders
123631	googleapi.Expand(req.URL, map[string]string{
123632		"project": c.project,
123633		"region":  c.region,
123634	})
123635	return gensupport.SendRequest(c.ctx_, c.s.client, req)
123636}
123637
123638// Do executes the "compute.regionDisks.list" call.
123639// Exactly one of *DiskList or error will be non-nil. Any non-2xx status
123640// code is an error. Response headers are in either
123641// *DiskList.ServerResponse.Header or (if a response was returned at
123642// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
123643// to check whether the returned error was because
123644// http.StatusNotModified was returned.
123645func (c *RegionDisksListCall) Do(opts ...googleapi.CallOption) (*DiskList, error) {
123646	gensupport.SetOptions(c.urlParams_, opts...)
123647	res, err := c.doRequest("json")
123648	if res != nil && res.StatusCode == http.StatusNotModified {
123649		if res.Body != nil {
123650			res.Body.Close()
123651		}
123652		return nil, &googleapi.Error{
123653			Code:   res.StatusCode,
123654			Header: res.Header,
123655		}
123656	}
123657	if err != nil {
123658		return nil, err
123659	}
123660	defer googleapi.CloseBody(res)
123661	if err := googleapi.CheckResponse(res); err != nil {
123662		return nil, err
123663	}
123664	ret := &DiskList{
123665		ServerResponse: googleapi.ServerResponse{
123666			Header:         res.Header,
123667			HTTPStatusCode: res.StatusCode,
123668		},
123669	}
123670	target := &ret
123671	if err := gensupport.DecodeResponse(target, res); err != nil {
123672		return nil, err
123673	}
123674	return ret, nil
123675	// {
123676	//   "description": "Retrieves the list of persistent disks contained within the specified region. (== suppress_warning http-rest-shadowed ==)",
123677	//   "httpMethod": "GET",
123678	//   "id": "compute.regionDisks.list",
123679	//   "parameterOrder": [
123680	//     "project",
123681	//     "region"
123682	//   ],
123683	//   "parameters": {
123684	//     "filter": {
123685	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
123686	//       "location": "query",
123687	//       "type": "string"
123688	//     },
123689	//     "maxResults": {
123690	//       "default": "500",
123691	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
123692	//       "format": "uint32",
123693	//       "location": "query",
123694	//       "minimum": "0",
123695	//       "type": "integer"
123696	//     },
123697	//     "orderBy": {
123698	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
123699	//       "location": "query",
123700	//       "type": "string"
123701	//     },
123702	//     "pageToken": {
123703	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
123704	//       "location": "query",
123705	//       "type": "string"
123706	//     },
123707	//     "project": {
123708	//       "description": "Project ID for this request.",
123709	//       "location": "path",
123710	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
123711	//       "required": true,
123712	//       "type": "string"
123713	//     },
123714	//     "region": {
123715	//       "description": "Name of the region for this request.",
123716	//       "location": "path",
123717	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
123718	//       "required": true,
123719	//       "type": "string"
123720	//     }
123721	//   },
123722	//   "path": "{project}/regions/{region}/disks",
123723	//   "response": {
123724	//     "$ref": "DiskList"
123725	//   },
123726	//   "scopes": [
123727	//     "https://www.googleapis.com/auth/cloud-platform",
123728	//     "https://www.googleapis.com/auth/compute",
123729	//     "https://www.googleapis.com/auth/compute.readonly"
123730	//   ]
123731	// }
123732
123733}
123734
123735// Pages invokes f for each page of results.
123736// A non-nil error returned from f will halt the iteration.
123737// The provided context supersedes any context provided to the Context method.
123738func (c *RegionDisksListCall) Pages(ctx context.Context, f func(*DiskList) error) error {
123739	c.ctx_ = ctx
123740	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
123741	for {
123742		x, err := c.Do()
123743		if err != nil {
123744			return err
123745		}
123746		if err := f(x); err != nil {
123747			return err
123748		}
123749		if x.NextPageToken == "" {
123750			return nil
123751		}
123752		c.PageToken(x.NextPageToken)
123753	}
123754}
123755
123756// method id "compute.regionDisks.removeResourcePolicies":
123757
123758type RegionDisksRemoveResourcePoliciesCall struct {
123759	s                                        *Service
123760	project                                  string
123761	region                                   string
123762	disk                                     string
123763	regiondisksremoveresourcepoliciesrequest *RegionDisksRemoveResourcePoliciesRequest
123764	urlParams_                               gensupport.URLParams
123765	ctx_                                     context.Context
123766	header_                                  http.Header
123767}
123768
123769// RemoveResourcePolicies: Removes resource policies from a regional
123770// disk. (== suppress_warning http-rest-shadowed ==)
123771func (r *RegionDisksService) RemoveResourcePolicies(project string, region string, disk string, regiondisksremoveresourcepoliciesrequest *RegionDisksRemoveResourcePoliciesRequest) *RegionDisksRemoveResourcePoliciesCall {
123772	c := &RegionDisksRemoveResourcePoliciesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
123773	c.project = project
123774	c.region = region
123775	c.disk = disk
123776	c.regiondisksremoveresourcepoliciesrequest = regiondisksremoveresourcepoliciesrequest
123777	return c
123778}
123779
123780// RequestId sets the optional parameter "requestId": An optional
123781// request ID to identify requests. Specify a unique request ID so that
123782// if you must retry your request, the server will know to ignore the
123783// request if it has already been completed.
123784//
123785// For example, consider a situation where you make an initial request
123786// and the request times out. If you make the request again with the
123787// same request ID, the server can check if original operation with the
123788// same request ID was received, and if so, will ignore the second
123789// request. This prevents clients from accidentally creating duplicate
123790// commitments.
123791//
123792// The request ID must be a valid UUID with the exception that zero UUID
123793// is not supported (00000000-0000-0000-0000-000000000000).
123794func (c *RegionDisksRemoveResourcePoliciesCall) RequestId(requestId string) *RegionDisksRemoveResourcePoliciesCall {
123795	c.urlParams_.Set("requestId", requestId)
123796	return c
123797}
123798
123799// Fields allows partial responses to be retrieved. See
123800// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
123801// for more information.
123802func (c *RegionDisksRemoveResourcePoliciesCall) Fields(s ...googleapi.Field) *RegionDisksRemoveResourcePoliciesCall {
123803	c.urlParams_.Set("fields", googleapi.CombineFields(s))
123804	return c
123805}
123806
123807// Context sets the context to be used in this call's Do method. Any
123808// pending HTTP request will be aborted if the provided context is
123809// canceled.
123810func (c *RegionDisksRemoveResourcePoliciesCall) Context(ctx context.Context) *RegionDisksRemoveResourcePoliciesCall {
123811	c.ctx_ = ctx
123812	return c
123813}
123814
123815// Header returns an http.Header that can be modified by the caller to
123816// add HTTP headers to the request.
123817func (c *RegionDisksRemoveResourcePoliciesCall) Header() http.Header {
123818	if c.header_ == nil {
123819		c.header_ = make(http.Header)
123820	}
123821	return c.header_
123822}
123823
123824func (c *RegionDisksRemoveResourcePoliciesCall) doRequest(alt string) (*http.Response, error) {
123825	reqHeaders := make(http.Header)
123826	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
123827	for k, v := range c.header_ {
123828		reqHeaders[k] = v
123829	}
123830	reqHeaders.Set("User-Agent", c.s.userAgent())
123831	var body io.Reader = nil
123832	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regiondisksremoveresourcepoliciesrequest)
123833	if err != nil {
123834		return nil, err
123835	}
123836	reqHeaders.Set("Content-Type", "application/json")
123837	c.urlParams_.Set("alt", alt)
123838	c.urlParams_.Set("prettyPrint", "false")
123839	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/disks/{disk}/removeResourcePolicies")
123840	urls += "?" + c.urlParams_.Encode()
123841	req, err := http.NewRequest("POST", urls, body)
123842	if err != nil {
123843		return nil, err
123844	}
123845	req.Header = reqHeaders
123846	googleapi.Expand(req.URL, map[string]string{
123847		"project": c.project,
123848		"region":  c.region,
123849		"disk":    c.disk,
123850	})
123851	return gensupport.SendRequest(c.ctx_, c.s.client, req)
123852}
123853
123854// Do executes the "compute.regionDisks.removeResourcePolicies" call.
123855// Exactly one of *Operation or error will be non-nil. Any non-2xx
123856// status code is an error. Response headers are in either
123857// *Operation.ServerResponse.Header or (if a response was returned at
123858// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
123859// to check whether the returned error was because
123860// http.StatusNotModified was returned.
123861func (c *RegionDisksRemoveResourcePoliciesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
123862	gensupport.SetOptions(c.urlParams_, opts...)
123863	res, err := c.doRequest("json")
123864	if res != nil && res.StatusCode == http.StatusNotModified {
123865		if res.Body != nil {
123866			res.Body.Close()
123867		}
123868		return nil, &googleapi.Error{
123869			Code:   res.StatusCode,
123870			Header: res.Header,
123871		}
123872	}
123873	if err != nil {
123874		return nil, err
123875	}
123876	defer googleapi.CloseBody(res)
123877	if err := googleapi.CheckResponse(res); err != nil {
123878		return nil, err
123879	}
123880	ret := &Operation{
123881		ServerResponse: googleapi.ServerResponse{
123882			Header:         res.Header,
123883			HTTPStatusCode: res.StatusCode,
123884		},
123885	}
123886	target := &ret
123887	if err := gensupport.DecodeResponse(target, res); err != nil {
123888		return nil, err
123889	}
123890	return ret, nil
123891	// {
123892	//   "description": "Removes resource policies from a regional disk. (== suppress_warning http-rest-shadowed ==)",
123893	//   "httpMethod": "POST",
123894	//   "id": "compute.regionDisks.removeResourcePolicies",
123895	//   "parameterOrder": [
123896	//     "project",
123897	//     "region",
123898	//     "disk"
123899	//   ],
123900	//   "parameters": {
123901	//     "disk": {
123902	//       "description": "The disk name for this request.",
123903	//       "location": "path",
123904	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
123905	//       "required": true,
123906	//       "type": "string"
123907	//     },
123908	//     "project": {
123909	//       "description": "Project ID for this request.",
123910	//       "location": "path",
123911	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
123912	//       "required": true,
123913	//       "type": "string"
123914	//     },
123915	//     "region": {
123916	//       "description": "The name of the region for this request.",
123917	//       "location": "path",
123918	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
123919	//       "required": true,
123920	//       "type": "string"
123921	//     },
123922	//     "requestId": {
123923	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
123924	//       "location": "query",
123925	//       "type": "string"
123926	//     }
123927	//   },
123928	//   "path": "{project}/regions/{region}/disks/{disk}/removeResourcePolicies",
123929	//   "request": {
123930	//     "$ref": "RegionDisksRemoveResourcePoliciesRequest"
123931	//   },
123932	//   "response": {
123933	//     "$ref": "Operation"
123934	//   },
123935	//   "scopes": [
123936	//     "https://www.googleapis.com/auth/cloud-platform",
123937	//     "https://www.googleapis.com/auth/compute"
123938	//   ]
123939	// }
123940
123941}
123942
123943// method id "compute.regionDisks.resize":
123944
123945type RegionDisksResizeCall struct {
123946	s                        *Service
123947	project                  string
123948	region                   string
123949	disk                     string
123950	regiondisksresizerequest *RegionDisksResizeRequest
123951	urlParams_               gensupport.URLParams
123952	ctx_                     context.Context
123953	header_                  http.Header
123954}
123955
123956// Resize: Resizes the specified regional persistent disk. (==
123957// suppress_warning http-rest-shadowed ==)
123958func (r *RegionDisksService) Resize(project string, region string, disk string, regiondisksresizerequest *RegionDisksResizeRequest) *RegionDisksResizeCall {
123959	c := &RegionDisksResizeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
123960	c.project = project
123961	c.region = region
123962	c.disk = disk
123963	c.regiondisksresizerequest = regiondisksresizerequest
123964	return c
123965}
123966
123967// RequestId sets the optional parameter "requestId": An optional
123968// request ID to identify requests. Specify a unique request ID so that
123969// if you must retry your request, the server will know to ignore the
123970// request if it has already been completed.
123971//
123972// For example, consider a situation where you make an initial request
123973// and the request times out. If you make the request again with the
123974// same request ID, the server can check if original operation with the
123975// same request ID was received, and if so, will ignore the second
123976// request. This prevents clients from accidentally creating duplicate
123977// commitments.
123978//
123979// The request ID must be a valid UUID with the exception that zero UUID
123980// is not supported (00000000-0000-0000-0000-000000000000).
123981func (c *RegionDisksResizeCall) RequestId(requestId string) *RegionDisksResizeCall {
123982	c.urlParams_.Set("requestId", requestId)
123983	return c
123984}
123985
123986// Fields allows partial responses to be retrieved. See
123987// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
123988// for more information.
123989func (c *RegionDisksResizeCall) Fields(s ...googleapi.Field) *RegionDisksResizeCall {
123990	c.urlParams_.Set("fields", googleapi.CombineFields(s))
123991	return c
123992}
123993
123994// Context sets the context to be used in this call's Do method. Any
123995// pending HTTP request will be aborted if the provided context is
123996// canceled.
123997func (c *RegionDisksResizeCall) Context(ctx context.Context) *RegionDisksResizeCall {
123998	c.ctx_ = ctx
123999	return c
124000}
124001
124002// Header returns an http.Header that can be modified by the caller to
124003// add HTTP headers to the request.
124004func (c *RegionDisksResizeCall) Header() http.Header {
124005	if c.header_ == nil {
124006		c.header_ = make(http.Header)
124007	}
124008	return c.header_
124009}
124010
124011func (c *RegionDisksResizeCall) doRequest(alt string) (*http.Response, error) {
124012	reqHeaders := make(http.Header)
124013	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
124014	for k, v := range c.header_ {
124015		reqHeaders[k] = v
124016	}
124017	reqHeaders.Set("User-Agent", c.s.userAgent())
124018	var body io.Reader = nil
124019	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regiondisksresizerequest)
124020	if err != nil {
124021		return nil, err
124022	}
124023	reqHeaders.Set("Content-Type", "application/json")
124024	c.urlParams_.Set("alt", alt)
124025	c.urlParams_.Set("prettyPrint", "false")
124026	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/disks/{disk}/resize")
124027	urls += "?" + c.urlParams_.Encode()
124028	req, err := http.NewRequest("POST", urls, body)
124029	if err != nil {
124030		return nil, err
124031	}
124032	req.Header = reqHeaders
124033	googleapi.Expand(req.URL, map[string]string{
124034		"project": c.project,
124035		"region":  c.region,
124036		"disk":    c.disk,
124037	})
124038	return gensupport.SendRequest(c.ctx_, c.s.client, req)
124039}
124040
124041// Do executes the "compute.regionDisks.resize" call.
124042// Exactly one of *Operation or error will be non-nil. Any non-2xx
124043// status code is an error. Response headers are in either
124044// *Operation.ServerResponse.Header or (if a response was returned at
124045// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
124046// to check whether the returned error was because
124047// http.StatusNotModified was returned.
124048func (c *RegionDisksResizeCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
124049	gensupport.SetOptions(c.urlParams_, opts...)
124050	res, err := c.doRequest("json")
124051	if res != nil && res.StatusCode == http.StatusNotModified {
124052		if res.Body != nil {
124053			res.Body.Close()
124054		}
124055		return nil, &googleapi.Error{
124056			Code:   res.StatusCode,
124057			Header: res.Header,
124058		}
124059	}
124060	if err != nil {
124061		return nil, err
124062	}
124063	defer googleapi.CloseBody(res)
124064	if err := googleapi.CheckResponse(res); err != nil {
124065		return nil, err
124066	}
124067	ret := &Operation{
124068		ServerResponse: googleapi.ServerResponse{
124069			Header:         res.Header,
124070			HTTPStatusCode: res.StatusCode,
124071		},
124072	}
124073	target := &ret
124074	if err := gensupport.DecodeResponse(target, res); err != nil {
124075		return nil, err
124076	}
124077	return ret, nil
124078	// {
124079	//   "description": "Resizes the specified regional persistent disk. (== suppress_warning http-rest-shadowed ==)",
124080	//   "httpMethod": "POST",
124081	//   "id": "compute.regionDisks.resize",
124082	//   "parameterOrder": [
124083	//     "project",
124084	//     "region",
124085	//     "disk"
124086	//   ],
124087	//   "parameters": {
124088	//     "disk": {
124089	//       "description": "Name of the regional persistent disk.",
124090	//       "location": "path",
124091	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
124092	//       "required": true,
124093	//       "type": "string"
124094	//     },
124095	//     "project": {
124096	//       "description": "The project ID for this request.",
124097	//       "location": "path",
124098	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
124099	//       "required": true,
124100	//       "type": "string"
124101	//     },
124102	//     "region": {
124103	//       "description": "Name of the region for this request.",
124104	//       "location": "path",
124105	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
124106	//       "required": true,
124107	//       "type": "string"
124108	//     },
124109	//     "requestId": {
124110	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
124111	//       "location": "query",
124112	//       "type": "string"
124113	//     }
124114	//   },
124115	//   "path": "{project}/regions/{region}/disks/{disk}/resize",
124116	//   "request": {
124117	//     "$ref": "RegionDisksResizeRequest"
124118	//   },
124119	//   "response": {
124120	//     "$ref": "Operation"
124121	//   },
124122	//   "scopes": [
124123	//     "https://www.googleapis.com/auth/cloud-platform",
124124	//     "https://www.googleapis.com/auth/compute"
124125	//   ]
124126	// }
124127
124128}
124129
124130// method id "compute.regionDisks.setIamPolicy":
124131
124132type RegionDisksSetIamPolicyCall struct {
124133	s                      *Service
124134	project                string
124135	region                 string
124136	resource               string
124137	regionsetpolicyrequest *RegionSetPolicyRequest
124138	urlParams_             gensupport.URLParams
124139	ctx_                   context.Context
124140	header_                http.Header
124141}
124142
124143// SetIamPolicy: Sets the access control policy on the specified
124144// resource. Replaces any existing policy. (== suppress_warning
124145// http-rest-shadowed ==)
124146func (r *RegionDisksService) SetIamPolicy(project string, region string, resource string, regionsetpolicyrequest *RegionSetPolicyRequest) *RegionDisksSetIamPolicyCall {
124147	c := &RegionDisksSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
124148	c.project = project
124149	c.region = region
124150	c.resource = resource
124151	c.regionsetpolicyrequest = regionsetpolicyrequest
124152	return c
124153}
124154
124155// Fields allows partial responses to be retrieved. See
124156// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
124157// for more information.
124158func (c *RegionDisksSetIamPolicyCall) Fields(s ...googleapi.Field) *RegionDisksSetIamPolicyCall {
124159	c.urlParams_.Set("fields", googleapi.CombineFields(s))
124160	return c
124161}
124162
124163// Context sets the context to be used in this call's Do method. Any
124164// pending HTTP request will be aborted if the provided context is
124165// canceled.
124166func (c *RegionDisksSetIamPolicyCall) Context(ctx context.Context) *RegionDisksSetIamPolicyCall {
124167	c.ctx_ = ctx
124168	return c
124169}
124170
124171// Header returns an http.Header that can be modified by the caller to
124172// add HTTP headers to the request.
124173func (c *RegionDisksSetIamPolicyCall) Header() http.Header {
124174	if c.header_ == nil {
124175		c.header_ = make(http.Header)
124176	}
124177	return c.header_
124178}
124179
124180func (c *RegionDisksSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
124181	reqHeaders := make(http.Header)
124182	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
124183	for k, v := range c.header_ {
124184		reqHeaders[k] = v
124185	}
124186	reqHeaders.Set("User-Agent", c.s.userAgent())
124187	var body io.Reader = nil
124188	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetpolicyrequest)
124189	if err != nil {
124190		return nil, err
124191	}
124192	reqHeaders.Set("Content-Type", "application/json")
124193	c.urlParams_.Set("alt", alt)
124194	c.urlParams_.Set("prettyPrint", "false")
124195	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/disks/{resource}/setIamPolicy")
124196	urls += "?" + c.urlParams_.Encode()
124197	req, err := http.NewRequest("POST", urls, body)
124198	if err != nil {
124199		return nil, err
124200	}
124201	req.Header = reqHeaders
124202	googleapi.Expand(req.URL, map[string]string{
124203		"project":  c.project,
124204		"region":   c.region,
124205		"resource": c.resource,
124206	})
124207	return gensupport.SendRequest(c.ctx_, c.s.client, req)
124208}
124209
124210// Do executes the "compute.regionDisks.setIamPolicy" call.
124211// Exactly one of *Policy or error will be non-nil. Any non-2xx status
124212// code is an error. Response headers are in either
124213// *Policy.ServerResponse.Header or (if a response was returned at all)
124214// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
124215// check whether the returned error was because http.StatusNotModified
124216// was returned.
124217func (c *RegionDisksSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
124218	gensupport.SetOptions(c.urlParams_, opts...)
124219	res, err := c.doRequest("json")
124220	if res != nil && res.StatusCode == http.StatusNotModified {
124221		if res.Body != nil {
124222			res.Body.Close()
124223		}
124224		return nil, &googleapi.Error{
124225			Code:   res.StatusCode,
124226			Header: res.Header,
124227		}
124228	}
124229	if err != nil {
124230		return nil, err
124231	}
124232	defer googleapi.CloseBody(res)
124233	if err := googleapi.CheckResponse(res); err != nil {
124234		return nil, err
124235	}
124236	ret := &Policy{
124237		ServerResponse: googleapi.ServerResponse{
124238			Header:         res.Header,
124239			HTTPStatusCode: res.StatusCode,
124240		},
124241	}
124242	target := &ret
124243	if err := gensupport.DecodeResponse(target, res); err != nil {
124244		return nil, err
124245	}
124246	return ret, nil
124247	// {
124248	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy. (== suppress_warning http-rest-shadowed ==)",
124249	//   "httpMethod": "POST",
124250	//   "id": "compute.regionDisks.setIamPolicy",
124251	//   "parameterOrder": [
124252	//     "project",
124253	//     "region",
124254	//     "resource"
124255	//   ],
124256	//   "parameters": {
124257	//     "project": {
124258	//       "description": "Project ID for this request.",
124259	//       "location": "path",
124260	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
124261	//       "required": true,
124262	//       "type": "string"
124263	//     },
124264	//     "region": {
124265	//       "description": "The name of the region for this request.",
124266	//       "location": "path",
124267	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
124268	//       "required": true,
124269	//       "type": "string"
124270	//     },
124271	//     "resource": {
124272	//       "description": "Name or id of the resource for this request.",
124273	//       "location": "path",
124274	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
124275	//       "required": true,
124276	//       "type": "string"
124277	//     }
124278	//   },
124279	//   "path": "{project}/regions/{region}/disks/{resource}/setIamPolicy",
124280	//   "request": {
124281	//     "$ref": "RegionSetPolicyRequest"
124282	//   },
124283	//   "response": {
124284	//     "$ref": "Policy"
124285	//   },
124286	//   "scopes": [
124287	//     "https://www.googleapis.com/auth/cloud-platform",
124288	//     "https://www.googleapis.com/auth/compute"
124289	//   ]
124290	// }
124291
124292}
124293
124294// method id "compute.regionDisks.setLabels":
124295
124296type RegionDisksSetLabelsCall struct {
124297	s                      *Service
124298	project                string
124299	region                 string
124300	resource               string
124301	regionsetlabelsrequest *RegionSetLabelsRequest
124302	urlParams_             gensupport.URLParams
124303	ctx_                   context.Context
124304	header_                http.Header
124305}
124306
124307// SetLabels: Sets the labels on the target regional disk. (==
124308// suppress_warning http-rest-shadowed ==)
124309func (r *RegionDisksService) SetLabels(project string, region string, resource string, regionsetlabelsrequest *RegionSetLabelsRequest) *RegionDisksSetLabelsCall {
124310	c := &RegionDisksSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
124311	c.project = project
124312	c.region = region
124313	c.resource = resource
124314	c.regionsetlabelsrequest = regionsetlabelsrequest
124315	return c
124316}
124317
124318// RequestId sets the optional parameter "requestId": An optional
124319// request ID to identify requests. Specify a unique request ID so that
124320// if you must retry your request, the server will know to ignore the
124321// request if it has already been completed.
124322//
124323// For example, consider a situation where you make an initial request
124324// and the request times out. If you make the request again with the
124325// same request ID, the server can check if original operation with the
124326// same request ID was received, and if so, will ignore the second
124327// request. This prevents clients from accidentally creating duplicate
124328// commitments.
124329//
124330// The request ID must be a valid UUID with the exception that zero UUID
124331// is not supported (00000000-0000-0000-0000-000000000000).
124332func (c *RegionDisksSetLabelsCall) RequestId(requestId string) *RegionDisksSetLabelsCall {
124333	c.urlParams_.Set("requestId", requestId)
124334	return c
124335}
124336
124337// Fields allows partial responses to be retrieved. See
124338// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
124339// for more information.
124340func (c *RegionDisksSetLabelsCall) Fields(s ...googleapi.Field) *RegionDisksSetLabelsCall {
124341	c.urlParams_.Set("fields", googleapi.CombineFields(s))
124342	return c
124343}
124344
124345// Context sets the context to be used in this call's Do method. Any
124346// pending HTTP request will be aborted if the provided context is
124347// canceled.
124348func (c *RegionDisksSetLabelsCall) Context(ctx context.Context) *RegionDisksSetLabelsCall {
124349	c.ctx_ = ctx
124350	return c
124351}
124352
124353// Header returns an http.Header that can be modified by the caller to
124354// add HTTP headers to the request.
124355func (c *RegionDisksSetLabelsCall) Header() http.Header {
124356	if c.header_ == nil {
124357		c.header_ = make(http.Header)
124358	}
124359	return c.header_
124360}
124361
124362func (c *RegionDisksSetLabelsCall) doRequest(alt string) (*http.Response, error) {
124363	reqHeaders := make(http.Header)
124364	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
124365	for k, v := range c.header_ {
124366		reqHeaders[k] = v
124367	}
124368	reqHeaders.Set("User-Agent", c.s.userAgent())
124369	var body io.Reader = nil
124370	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetlabelsrequest)
124371	if err != nil {
124372		return nil, err
124373	}
124374	reqHeaders.Set("Content-Type", "application/json")
124375	c.urlParams_.Set("alt", alt)
124376	c.urlParams_.Set("prettyPrint", "false")
124377	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/disks/{resource}/setLabels")
124378	urls += "?" + c.urlParams_.Encode()
124379	req, err := http.NewRequest("POST", urls, body)
124380	if err != nil {
124381		return nil, err
124382	}
124383	req.Header = reqHeaders
124384	googleapi.Expand(req.URL, map[string]string{
124385		"project":  c.project,
124386		"region":   c.region,
124387		"resource": c.resource,
124388	})
124389	return gensupport.SendRequest(c.ctx_, c.s.client, req)
124390}
124391
124392// Do executes the "compute.regionDisks.setLabels" call.
124393// Exactly one of *Operation or error will be non-nil. Any non-2xx
124394// status code is an error. Response headers are in either
124395// *Operation.ServerResponse.Header or (if a response was returned at
124396// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
124397// to check whether the returned error was because
124398// http.StatusNotModified was returned.
124399func (c *RegionDisksSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
124400	gensupport.SetOptions(c.urlParams_, opts...)
124401	res, err := c.doRequest("json")
124402	if res != nil && res.StatusCode == http.StatusNotModified {
124403		if res.Body != nil {
124404			res.Body.Close()
124405		}
124406		return nil, &googleapi.Error{
124407			Code:   res.StatusCode,
124408			Header: res.Header,
124409		}
124410	}
124411	if err != nil {
124412		return nil, err
124413	}
124414	defer googleapi.CloseBody(res)
124415	if err := googleapi.CheckResponse(res); err != nil {
124416		return nil, err
124417	}
124418	ret := &Operation{
124419		ServerResponse: googleapi.ServerResponse{
124420			Header:         res.Header,
124421			HTTPStatusCode: res.StatusCode,
124422		},
124423	}
124424	target := &ret
124425	if err := gensupport.DecodeResponse(target, res); err != nil {
124426		return nil, err
124427	}
124428	return ret, nil
124429	// {
124430	//   "description": "Sets the labels on the target regional disk. (== suppress_warning http-rest-shadowed ==)",
124431	//   "httpMethod": "POST",
124432	//   "id": "compute.regionDisks.setLabels",
124433	//   "parameterOrder": [
124434	//     "project",
124435	//     "region",
124436	//     "resource"
124437	//   ],
124438	//   "parameters": {
124439	//     "project": {
124440	//       "description": "Project ID for this request.",
124441	//       "location": "path",
124442	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
124443	//       "required": true,
124444	//       "type": "string"
124445	//     },
124446	//     "region": {
124447	//       "description": "The region for this request.",
124448	//       "location": "path",
124449	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
124450	//       "required": true,
124451	//       "type": "string"
124452	//     },
124453	//     "requestId": {
124454	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
124455	//       "location": "query",
124456	//       "type": "string"
124457	//     },
124458	//     "resource": {
124459	//       "description": "Name or id of the resource for this request.",
124460	//       "location": "path",
124461	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
124462	//       "required": true,
124463	//       "type": "string"
124464	//     }
124465	//   },
124466	//   "path": "{project}/regions/{region}/disks/{resource}/setLabels",
124467	//   "request": {
124468	//     "$ref": "RegionSetLabelsRequest"
124469	//   },
124470	//   "response": {
124471	//     "$ref": "Operation"
124472	//   },
124473	//   "scopes": [
124474	//     "https://www.googleapis.com/auth/cloud-platform",
124475	//     "https://www.googleapis.com/auth/compute"
124476	//   ]
124477	// }
124478
124479}
124480
124481// method id "compute.regionDisks.testIamPermissions":
124482
124483type RegionDisksTestIamPermissionsCall struct {
124484	s                      *Service
124485	project                string
124486	region                 string
124487	resource               string
124488	testpermissionsrequest *TestPermissionsRequest
124489	urlParams_             gensupport.URLParams
124490	ctx_                   context.Context
124491	header_                http.Header
124492}
124493
124494// TestIamPermissions: Returns permissions that a caller has on the
124495// specified resource. (== suppress_warning http-rest-shadowed ==)
124496func (r *RegionDisksService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *RegionDisksTestIamPermissionsCall {
124497	c := &RegionDisksTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
124498	c.project = project
124499	c.region = region
124500	c.resource = resource
124501	c.testpermissionsrequest = testpermissionsrequest
124502	return c
124503}
124504
124505// Fields allows partial responses to be retrieved. See
124506// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
124507// for more information.
124508func (c *RegionDisksTestIamPermissionsCall) Fields(s ...googleapi.Field) *RegionDisksTestIamPermissionsCall {
124509	c.urlParams_.Set("fields", googleapi.CombineFields(s))
124510	return c
124511}
124512
124513// Context sets the context to be used in this call's Do method. Any
124514// pending HTTP request will be aborted if the provided context is
124515// canceled.
124516func (c *RegionDisksTestIamPermissionsCall) Context(ctx context.Context) *RegionDisksTestIamPermissionsCall {
124517	c.ctx_ = ctx
124518	return c
124519}
124520
124521// Header returns an http.Header that can be modified by the caller to
124522// add HTTP headers to the request.
124523func (c *RegionDisksTestIamPermissionsCall) Header() http.Header {
124524	if c.header_ == nil {
124525		c.header_ = make(http.Header)
124526	}
124527	return c.header_
124528}
124529
124530func (c *RegionDisksTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
124531	reqHeaders := make(http.Header)
124532	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
124533	for k, v := range c.header_ {
124534		reqHeaders[k] = v
124535	}
124536	reqHeaders.Set("User-Agent", c.s.userAgent())
124537	var body io.Reader = nil
124538	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
124539	if err != nil {
124540		return nil, err
124541	}
124542	reqHeaders.Set("Content-Type", "application/json")
124543	c.urlParams_.Set("alt", alt)
124544	c.urlParams_.Set("prettyPrint", "false")
124545	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/disks/{resource}/testIamPermissions")
124546	urls += "?" + c.urlParams_.Encode()
124547	req, err := http.NewRequest("POST", urls, body)
124548	if err != nil {
124549		return nil, err
124550	}
124551	req.Header = reqHeaders
124552	googleapi.Expand(req.URL, map[string]string{
124553		"project":  c.project,
124554		"region":   c.region,
124555		"resource": c.resource,
124556	})
124557	return gensupport.SendRequest(c.ctx_, c.s.client, req)
124558}
124559
124560// Do executes the "compute.regionDisks.testIamPermissions" call.
124561// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
124562// non-2xx status code is an error. Response headers are in either
124563// *TestPermissionsResponse.ServerResponse.Header or (if a response was
124564// returned at all) in error.(*googleapi.Error).Header. Use
124565// googleapi.IsNotModified to check whether the returned error was
124566// because http.StatusNotModified was returned.
124567func (c *RegionDisksTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
124568	gensupport.SetOptions(c.urlParams_, opts...)
124569	res, err := c.doRequest("json")
124570	if res != nil && res.StatusCode == http.StatusNotModified {
124571		if res.Body != nil {
124572			res.Body.Close()
124573		}
124574		return nil, &googleapi.Error{
124575			Code:   res.StatusCode,
124576			Header: res.Header,
124577		}
124578	}
124579	if err != nil {
124580		return nil, err
124581	}
124582	defer googleapi.CloseBody(res)
124583	if err := googleapi.CheckResponse(res); err != nil {
124584		return nil, err
124585	}
124586	ret := &TestPermissionsResponse{
124587		ServerResponse: googleapi.ServerResponse{
124588			Header:         res.Header,
124589			HTTPStatusCode: res.StatusCode,
124590		},
124591	}
124592	target := &ret
124593	if err := gensupport.DecodeResponse(target, res); err != nil {
124594		return nil, err
124595	}
124596	return ret, nil
124597	// {
124598	//   "description": "Returns permissions that a caller has on the specified resource. (== suppress_warning http-rest-shadowed ==)",
124599	//   "httpMethod": "POST",
124600	//   "id": "compute.regionDisks.testIamPermissions",
124601	//   "parameterOrder": [
124602	//     "project",
124603	//     "region",
124604	//     "resource"
124605	//   ],
124606	//   "parameters": {
124607	//     "project": {
124608	//       "description": "Project ID for this request.",
124609	//       "location": "path",
124610	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
124611	//       "required": true,
124612	//       "type": "string"
124613	//     },
124614	//     "region": {
124615	//       "description": "The name of the region for this request.",
124616	//       "location": "path",
124617	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
124618	//       "required": true,
124619	//       "type": "string"
124620	//     },
124621	//     "resource": {
124622	//       "description": "Name or id of the resource for this request.",
124623	//       "location": "path",
124624	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
124625	//       "required": true,
124626	//       "type": "string"
124627	//     }
124628	//   },
124629	//   "path": "{project}/regions/{region}/disks/{resource}/testIamPermissions",
124630	//   "request": {
124631	//     "$ref": "TestPermissionsRequest"
124632	//   },
124633	//   "response": {
124634	//     "$ref": "TestPermissionsResponse"
124635	//   },
124636	//   "scopes": [
124637	//     "https://www.googleapis.com/auth/cloud-platform",
124638	//     "https://www.googleapis.com/auth/compute",
124639	//     "https://www.googleapis.com/auth/compute.readonly"
124640	//   ]
124641	// }
124642
124643}
124644
124645// method id "compute.regionHealthCheckServices.delete":
124646
124647type RegionHealthCheckServicesDeleteCall struct {
124648	s                  *Service
124649	project            string
124650	region             string
124651	healthCheckService string
124652	urlParams_         gensupport.URLParams
124653	ctx_               context.Context
124654	header_            http.Header
124655}
124656
124657// Delete: Deletes the specified regional HealthCheckService. (==
124658// suppress_warning http-rest-shadowed ==)
124659func (r *RegionHealthCheckServicesService) Delete(project string, region string, healthCheckService string) *RegionHealthCheckServicesDeleteCall {
124660	c := &RegionHealthCheckServicesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
124661	c.project = project
124662	c.region = region
124663	c.healthCheckService = healthCheckService
124664	return c
124665}
124666
124667// RequestId sets the optional parameter "requestId": An optional
124668// request ID to identify requests. Specify a unique request ID so that
124669// if you must retry your request, the server will know to ignore the
124670// request if it has already been completed.
124671//
124672// For example, consider a situation where you make an initial request
124673// and the request times out. If you make the request again with the
124674// same request ID, the server can check if original operation with the
124675// same request ID was received, and if so, will ignore the second
124676// request. This prevents clients from accidentally creating duplicate
124677// commitments.
124678//
124679// The request ID must be a valid UUID with the exception that zero UUID
124680// is not supported (00000000-0000-0000-0000-000000000000).
124681func (c *RegionHealthCheckServicesDeleteCall) RequestId(requestId string) *RegionHealthCheckServicesDeleteCall {
124682	c.urlParams_.Set("requestId", requestId)
124683	return c
124684}
124685
124686// Fields allows partial responses to be retrieved. See
124687// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
124688// for more information.
124689func (c *RegionHealthCheckServicesDeleteCall) Fields(s ...googleapi.Field) *RegionHealthCheckServicesDeleteCall {
124690	c.urlParams_.Set("fields", googleapi.CombineFields(s))
124691	return c
124692}
124693
124694// Context sets the context to be used in this call's Do method. Any
124695// pending HTTP request will be aborted if the provided context is
124696// canceled.
124697func (c *RegionHealthCheckServicesDeleteCall) Context(ctx context.Context) *RegionHealthCheckServicesDeleteCall {
124698	c.ctx_ = ctx
124699	return c
124700}
124701
124702// Header returns an http.Header that can be modified by the caller to
124703// add HTTP headers to the request.
124704func (c *RegionHealthCheckServicesDeleteCall) Header() http.Header {
124705	if c.header_ == nil {
124706		c.header_ = make(http.Header)
124707	}
124708	return c.header_
124709}
124710
124711func (c *RegionHealthCheckServicesDeleteCall) doRequest(alt string) (*http.Response, error) {
124712	reqHeaders := make(http.Header)
124713	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
124714	for k, v := range c.header_ {
124715		reqHeaders[k] = v
124716	}
124717	reqHeaders.Set("User-Agent", c.s.userAgent())
124718	var body io.Reader = nil
124719	c.urlParams_.Set("alt", alt)
124720	c.urlParams_.Set("prettyPrint", "false")
124721	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/healthCheckServices/{healthCheckService}")
124722	urls += "?" + c.urlParams_.Encode()
124723	req, err := http.NewRequest("DELETE", urls, body)
124724	if err != nil {
124725		return nil, err
124726	}
124727	req.Header = reqHeaders
124728	googleapi.Expand(req.URL, map[string]string{
124729		"project":            c.project,
124730		"region":             c.region,
124731		"healthCheckService": c.healthCheckService,
124732	})
124733	return gensupport.SendRequest(c.ctx_, c.s.client, req)
124734}
124735
124736// Do executes the "compute.regionHealthCheckServices.delete" call.
124737// Exactly one of *Operation or error will be non-nil. Any non-2xx
124738// status code is an error. Response headers are in either
124739// *Operation.ServerResponse.Header or (if a response was returned at
124740// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
124741// to check whether the returned error was because
124742// http.StatusNotModified was returned.
124743func (c *RegionHealthCheckServicesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
124744	gensupport.SetOptions(c.urlParams_, opts...)
124745	res, err := c.doRequest("json")
124746	if res != nil && res.StatusCode == http.StatusNotModified {
124747		if res.Body != nil {
124748			res.Body.Close()
124749		}
124750		return nil, &googleapi.Error{
124751			Code:   res.StatusCode,
124752			Header: res.Header,
124753		}
124754	}
124755	if err != nil {
124756		return nil, err
124757	}
124758	defer googleapi.CloseBody(res)
124759	if err := googleapi.CheckResponse(res); err != nil {
124760		return nil, err
124761	}
124762	ret := &Operation{
124763		ServerResponse: googleapi.ServerResponse{
124764			Header:         res.Header,
124765			HTTPStatusCode: res.StatusCode,
124766		},
124767	}
124768	target := &ret
124769	if err := gensupport.DecodeResponse(target, res); err != nil {
124770		return nil, err
124771	}
124772	return ret, nil
124773	// {
124774	//   "description": "Deletes the specified regional HealthCheckService. (== suppress_warning http-rest-shadowed ==)",
124775	//   "httpMethod": "DELETE",
124776	//   "id": "compute.regionHealthCheckServices.delete",
124777	//   "parameterOrder": [
124778	//     "project",
124779	//     "region",
124780	//     "healthCheckService"
124781	//   ],
124782	//   "parameters": {
124783	//     "healthCheckService": {
124784	//       "description": "Name of the HealthCheckService to delete. The name must be 1-63 characters long, and comply with RFC1035.",
124785	//       "location": "path",
124786	//       "required": true,
124787	//       "type": "string"
124788	//     },
124789	//     "project": {
124790	//       "description": "Project ID for this request.",
124791	//       "location": "path",
124792	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
124793	//       "required": true,
124794	//       "type": "string"
124795	//     },
124796	//     "region": {
124797	//       "description": "Name of the region scoping this request.",
124798	//       "location": "path",
124799	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
124800	//       "required": true,
124801	//       "type": "string"
124802	//     },
124803	//     "requestId": {
124804	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
124805	//       "location": "query",
124806	//       "type": "string"
124807	//     }
124808	//   },
124809	//   "path": "{project}/regions/{region}/healthCheckServices/{healthCheckService}",
124810	//   "response": {
124811	//     "$ref": "Operation"
124812	//   },
124813	//   "scopes": [
124814	//     "https://www.googleapis.com/auth/cloud-platform",
124815	//     "https://www.googleapis.com/auth/compute"
124816	//   ]
124817	// }
124818
124819}
124820
124821// method id "compute.regionHealthCheckServices.get":
124822
124823type RegionHealthCheckServicesGetCall struct {
124824	s                  *Service
124825	project            string
124826	region             string
124827	healthCheckService string
124828	urlParams_         gensupport.URLParams
124829	ifNoneMatch_       string
124830	ctx_               context.Context
124831	header_            http.Header
124832}
124833
124834// Get: Returns the specified regional HealthCheckService resource. (==
124835// suppress_warning http-rest-shadowed ==)
124836func (r *RegionHealthCheckServicesService) Get(project string, region string, healthCheckService string) *RegionHealthCheckServicesGetCall {
124837	c := &RegionHealthCheckServicesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
124838	c.project = project
124839	c.region = region
124840	c.healthCheckService = healthCheckService
124841	return c
124842}
124843
124844// Fields allows partial responses to be retrieved. See
124845// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
124846// for more information.
124847func (c *RegionHealthCheckServicesGetCall) Fields(s ...googleapi.Field) *RegionHealthCheckServicesGetCall {
124848	c.urlParams_.Set("fields", googleapi.CombineFields(s))
124849	return c
124850}
124851
124852// IfNoneMatch sets the optional parameter which makes the operation
124853// fail if the object's ETag matches the given value. This is useful for
124854// getting updates only after the object has changed since the last
124855// request. Use googleapi.IsNotModified to check whether the response
124856// error from Do is the result of In-None-Match.
124857func (c *RegionHealthCheckServicesGetCall) IfNoneMatch(entityTag string) *RegionHealthCheckServicesGetCall {
124858	c.ifNoneMatch_ = entityTag
124859	return c
124860}
124861
124862// Context sets the context to be used in this call's Do method. Any
124863// pending HTTP request will be aborted if the provided context is
124864// canceled.
124865func (c *RegionHealthCheckServicesGetCall) Context(ctx context.Context) *RegionHealthCheckServicesGetCall {
124866	c.ctx_ = ctx
124867	return c
124868}
124869
124870// Header returns an http.Header that can be modified by the caller to
124871// add HTTP headers to the request.
124872func (c *RegionHealthCheckServicesGetCall) Header() http.Header {
124873	if c.header_ == nil {
124874		c.header_ = make(http.Header)
124875	}
124876	return c.header_
124877}
124878
124879func (c *RegionHealthCheckServicesGetCall) doRequest(alt string) (*http.Response, error) {
124880	reqHeaders := make(http.Header)
124881	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
124882	for k, v := range c.header_ {
124883		reqHeaders[k] = v
124884	}
124885	reqHeaders.Set("User-Agent", c.s.userAgent())
124886	if c.ifNoneMatch_ != "" {
124887		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
124888	}
124889	var body io.Reader = nil
124890	c.urlParams_.Set("alt", alt)
124891	c.urlParams_.Set("prettyPrint", "false")
124892	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/healthCheckServices/{healthCheckService}")
124893	urls += "?" + c.urlParams_.Encode()
124894	req, err := http.NewRequest("GET", urls, body)
124895	if err != nil {
124896		return nil, err
124897	}
124898	req.Header = reqHeaders
124899	googleapi.Expand(req.URL, map[string]string{
124900		"project":            c.project,
124901		"region":             c.region,
124902		"healthCheckService": c.healthCheckService,
124903	})
124904	return gensupport.SendRequest(c.ctx_, c.s.client, req)
124905}
124906
124907// Do executes the "compute.regionHealthCheckServices.get" call.
124908// Exactly one of *HealthCheckService or error will be non-nil. Any
124909// non-2xx status code is an error. Response headers are in either
124910// *HealthCheckService.ServerResponse.Header or (if a response was
124911// returned at all) in error.(*googleapi.Error).Header. Use
124912// googleapi.IsNotModified to check whether the returned error was
124913// because http.StatusNotModified was returned.
124914func (c *RegionHealthCheckServicesGetCall) Do(opts ...googleapi.CallOption) (*HealthCheckService, error) {
124915	gensupport.SetOptions(c.urlParams_, opts...)
124916	res, err := c.doRequest("json")
124917	if res != nil && res.StatusCode == http.StatusNotModified {
124918		if res.Body != nil {
124919			res.Body.Close()
124920		}
124921		return nil, &googleapi.Error{
124922			Code:   res.StatusCode,
124923			Header: res.Header,
124924		}
124925	}
124926	if err != nil {
124927		return nil, err
124928	}
124929	defer googleapi.CloseBody(res)
124930	if err := googleapi.CheckResponse(res); err != nil {
124931		return nil, err
124932	}
124933	ret := &HealthCheckService{
124934		ServerResponse: googleapi.ServerResponse{
124935			Header:         res.Header,
124936			HTTPStatusCode: res.StatusCode,
124937		},
124938	}
124939	target := &ret
124940	if err := gensupport.DecodeResponse(target, res); err != nil {
124941		return nil, err
124942	}
124943	return ret, nil
124944	// {
124945	//   "description": "Returns the specified regional HealthCheckService resource. (== suppress_warning http-rest-shadowed ==)",
124946	//   "httpMethod": "GET",
124947	//   "id": "compute.regionHealthCheckServices.get",
124948	//   "parameterOrder": [
124949	//     "project",
124950	//     "region",
124951	//     "healthCheckService"
124952	//   ],
124953	//   "parameters": {
124954	//     "healthCheckService": {
124955	//       "description": "Name of the HealthCheckService to update. The name must be 1-63 characters long, and comply with RFC1035.",
124956	//       "location": "path",
124957	//       "required": true,
124958	//       "type": "string"
124959	//     },
124960	//     "project": {
124961	//       "description": "Project ID for this request.",
124962	//       "location": "path",
124963	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
124964	//       "required": true,
124965	//       "type": "string"
124966	//     },
124967	//     "region": {
124968	//       "description": "Name of the region scoping this request.",
124969	//       "location": "path",
124970	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
124971	//       "required": true,
124972	//       "type": "string"
124973	//     }
124974	//   },
124975	//   "path": "{project}/regions/{region}/healthCheckServices/{healthCheckService}",
124976	//   "response": {
124977	//     "$ref": "HealthCheckService"
124978	//   },
124979	//   "scopes": [
124980	//     "https://www.googleapis.com/auth/cloud-platform",
124981	//     "https://www.googleapis.com/auth/compute",
124982	//     "https://www.googleapis.com/auth/compute.readonly"
124983	//   ]
124984	// }
124985
124986}
124987
124988// method id "compute.regionHealthCheckServices.insert":
124989
124990type RegionHealthCheckServicesInsertCall struct {
124991	s                  *Service
124992	project            string
124993	region             string
124994	healthcheckservice *HealthCheckService
124995	urlParams_         gensupport.URLParams
124996	ctx_               context.Context
124997	header_            http.Header
124998}
124999
125000// Insert: Creates a regional HealthCheckService resource in the
125001// specified project and region using the data included in the request.
125002// (== suppress_warning http-rest-shadowed ==)
125003func (r *RegionHealthCheckServicesService) Insert(project string, region string, healthcheckservice *HealthCheckService) *RegionHealthCheckServicesInsertCall {
125004	c := &RegionHealthCheckServicesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
125005	c.project = project
125006	c.region = region
125007	c.healthcheckservice = healthcheckservice
125008	return c
125009}
125010
125011// RequestId sets the optional parameter "requestId": An optional
125012// request ID to identify requests. Specify a unique request ID so that
125013// if you must retry your request, the server will know to ignore the
125014// request if it has already been completed.
125015//
125016// For example, consider a situation where you make an initial request
125017// and the request times out. If you make the request again with the
125018// same request ID, the server can check if original operation with the
125019// same request ID was received, and if so, will ignore the second
125020// request. This prevents clients from accidentally creating duplicate
125021// commitments.
125022//
125023// The request ID must be a valid UUID with the exception that zero UUID
125024// is not supported (00000000-0000-0000-0000-000000000000).
125025func (c *RegionHealthCheckServicesInsertCall) RequestId(requestId string) *RegionHealthCheckServicesInsertCall {
125026	c.urlParams_.Set("requestId", requestId)
125027	return c
125028}
125029
125030// Fields allows partial responses to be retrieved. See
125031// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
125032// for more information.
125033func (c *RegionHealthCheckServicesInsertCall) Fields(s ...googleapi.Field) *RegionHealthCheckServicesInsertCall {
125034	c.urlParams_.Set("fields", googleapi.CombineFields(s))
125035	return c
125036}
125037
125038// Context sets the context to be used in this call's Do method. Any
125039// pending HTTP request will be aborted if the provided context is
125040// canceled.
125041func (c *RegionHealthCheckServicesInsertCall) Context(ctx context.Context) *RegionHealthCheckServicesInsertCall {
125042	c.ctx_ = ctx
125043	return c
125044}
125045
125046// Header returns an http.Header that can be modified by the caller to
125047// add HTTP headers to the request.
125048func (c *RegionHealthCheckServicesInsertCall) Header() http.Header {
125049	if c.header_ == nil {
125050		c.header_ = make(http.Header)
125051	}
125052	return c.header_
125053}
125054
125055func (c *RegionHealthCheckServicesInsertCall) doRequest(alt string) (*http.Response, error) {
125056	reqHeaders := make(http.Header)
125057	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
125058	for k, v := range c.header_ {
125059		reqHeaders[k] = v
125060	}
125061	reqHeaders.Set("User-Agent", c.s.userAgent())
125062	var body io.Reader = nil
125063	body, err := googleapi.WithoutDataWrapper.JSONReader(c.healthcheckservice)
125064	if err != nil {
125065		return nil, err
125066	}
125067	reqHeaders.Set("Content-Type", "application/json")
125068	c.urlParams_.Set("alt", alt)
125069	c.urlParams_.Set("prettyPrint", "false")
125070	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/healthCheckServices")
125071	urls += "?" + c.urlParams_.Encode()
125072	req, err := http.NewRequest("POST", urls, body)
125073	if err != nil {
125074		return nil, err
125075	}
125076	req.Header = reqHeaders
125077	googleapi.Expand(req.URL, map[string]string{
125078		"project": c.project,
125079		"region":  c.region,
125080	})
125081	return gensupport.SendRequest(c.ctx_, c.s.client, req)
125082}
125083
125084// Do executes the "compute.regionHealthCheckServices.insert" call.
125085// Exactly one of *Operation or error will be non-nil. Any non-2xx
125086// status code is an error. Response headers are in either
125087// *Operation.ServerResponse.Header or (if a response was returned at
125088// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
125089// to check whether the returned error was because
125090// http.StatusNotModified was returned.
125091func (c *RegionHealthCheckServicesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
125092	gensupport.SetOptions(c.urlParams_, opts...)
125093	res, err := c.doRequest("json")
125094	if res != nil && res.StatusCode == http.StatusNotModified {
125095		if res.Body != nil {
125096			res.Body.Close()
125097		}
125098		return nil, &googleapi.Error{
125099			Code:   res.StatusCode,
125100			Header: res.Header,
125101		}
125102	}
125103	if err != nil {
125104		return nil, err
125105	}
125106	defer googleapi.CloseBody(res)
125107	if err := googleapi.CheckResponse(res); err != nil {
125108		return nil, err
125109	}
125110	ret := &Operation{
125111		ServerResponse: googleapi.ServerResponse{
125112			Header:         res.Header,
125113			HTTPStatusCode: res.StatusCode,
125114		},
125115	}
125116	target := &ret
125117	if err := gensupport.DecodeResponse(target, res); err != nil {
125118		return nil, err
125119	}
125120	return ret, nil
125121	// {
125122	//   "description": "Creates a regional HealthCheckService resource in the specified project and region using the data included in the request. (== suppress_warning http-rest-shadowed ==)",
125123	//   "httpMethod": "POST",
125124	//   "id": "compute.regionHealthCheckServices.insert",
125125	//   "parameterOrder": [
125126	//     "project",
125127	//     "region"
125128	//   ],
125129	//   "parameters": {
125130	//     "project": {
125131	//       "description": "Project ID for this request.",
125132	//       "location": "path",
125133	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
125134	//       "required": true,
125135	//       "type": "string"
125136	//     },
125137	//     "region": {
125138	//       "description": "Name of the region scoping this request.",
125139	//       "location": "path",
125140	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
125141	//       "required": true,
125142	//       "type": "string"
125143	//     },
125144	//     "requestId": {
125145	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
125146	//       "location": "query",
125147	//       "type": "string"
125148	//     }
125149	//   },
125150	//   "path": "{project}/regions/{region}/healthCheckServices",
125151	//   "request": {
125152	//     "$ref": "HealthCheckService"
125153	//   },
125154	//   "response": {
125155	//     "$ref": "Operation"
125156	//   },
125157	//   "scopes": [
125158	//     "https://www.googleapis.com/auth/cloud-platform",
125159	//     "https://www.googleapis.com/auth/compute"
125160	//   ]
125161	// }
125162
125163}
125164
125165// method id "compute.regionHealthCheckServices.list":
125166
125167type RegionHealthCheckServicesListCall struct {
125168	s            *Service
125169	project      string
125170	region       string
125171	urlParams_   gensupport.URLParams
125172	ifNoneMatch_ string
125173	ctx_         context.Context
125174	header_      http.Header
125175}
125176
125177// List: Lists all the HealthCheckService resources that have been
125178// configured for the specified project in the given region. (==
125179// suppress_warning http-rest-shadowed ==)
125180func (r *RegionHealthCheckServicesService) List(project string, region string) *RegionHealthCheckServicesListCall {
125181	c := &RegionHealthCheckServicesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
125182	c.project = project
125183	c.region = region
125184	return c
125185}
125186
125187// Filter sets the optional parameter "filter": A filter expression that
125188// filters resources listed in the response. The expression must specify
125189// the field name, a comparison operator, and the value that you want to
125190// use for filtering. The value must be a string, a number, or a
125191// boolean. The comparison operator must be either =, !=, >, or <.
125192//
125193// For example, if you are filtering Compute Engine instances, you can
125194// exclude instances named example-instance by specifying name !=
125195// example-instance.
125196//
125197// You can also filter nested fields. For example, you could specify
125198// scheduling.automaticRestart = false to include instances only if they
125199// are not scheduled for automatic restarts. You can use filtering on
125200// nested fields to filter based on resource labels.
125201//
125202// To filter on multiple expressions, provide each separate expression
125203// within parentheses. For example, (scheduling.automaticRestart = true)
125204// (cpuPlatform = "Intel Skylake"). By default, each expression is an
125205// AND expression. However, you can include AND and OR expressions
125206// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
125207// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
125208// true).
125209func (c *RegionHealthCheckServicesListCall) Filter(filter string) *RegionHealthCheckServicesListCall {
125210	c.urlParams_.Set("filter", filter)
125211	return c
125212}
125213
125214// MaxResults sets the optional parameter "maxResults": The maximum
125215// number of results per page that should be returned. If the number of
125216// available results is larger than maxResults, Compute Engine returns a
125217// nextPageToken that can be used to get the next page of results in
125218// subsequent list requests. Acceptable values are 0 to 500, inclusive.
125219// (Default: 500)
125220func (c *RegionHealthCheckServicesListCall) MaxResults(maxResults int64) *RegionHealthCheckServicesListCall {
125221	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
125222	return c
125223}
125224
125225// OrderBy sets the optional parameter "orderBy": Sorts list results by
125226// a certain order. By default, results are returned in alphanumerical
125227// order based on the resource name.
125228//
125229// You can also sort results in descending order based on the creation
125230// timestamp using orderBy="creationTimestamp desc". This sorts results
125231// based on the creationTimestamp field in reverse chronological order
125232// (newest result first). Use this to sort resources like operations so
125233// that the newest operation is returned first.
125234//
125235// Currently, only sorting by name or creationTimestamp desc is
125236// supported.
125237func (c *RegionHealthCheckServicesListCall) OrderBy(orderBy string) *RegionHealthCheckServicesListCall {
125238	c.urlParams_.Set("orderBy", orderBy)
125239	return c
125240}
125241
125242// PageToken sets the optional parameter "pageToken": Specifies a page
125243// token to use. Set pageToken to the nextPageToken returned by a
125244// previous list request to get the next page of results.
125245func (c *RegionHealthCheckServicesListCall) PageToken(pageToken string) *RegionHealthCheckServicesListCall {
125246	c.urlParams_.Set("pageToken", pageToken)
125247	return c
125248}
125249
125250// Fields allows partial responses to be retrieved. See
125251// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
125252// for more information.
125253func (c *RegionHealthCheckServicesListCall) Fields(s ...googleapi.Field) *RegionHealthCheckServicesListCall {
125254	c.urlParams_.Set("fields", googleapi.CombineFields(s))
125255	return c
125256}
125257
125258// IfNoneMatch sets the optional parameter which makes the operation
125259// fail if the object's ETag matches the given value. This is useful for
125260// getting updates only after the object has changed since the last
125261// request. Use googleapi.IsNotModified to check whether the response
125262// error from Do is the result of In-None-Match.
125263func (c *RegionHealthCheckServicesListCall) IfNoneMatch(entityTag string) *RegionHealthCheckServicesListCall {
125264	c.ifNoneMatch_ = entityTag
125265	return c
125266}
125267
125268// Context sets the context to be used in this call's Do method. Any
125269// pending HTTP request will be aborted if the provided context is
125270// canceled.
125271func (c *RegionHealthCheckServicesListCall) Context(ctx context.Context) *RegionHealthCheckServicesListCall {
125272	c.ctx_ = ctx
125273	return c
125274}
125275
125276// Header returns an http.Header that can be modified by the caller to
125277// add HTTP headers to the request.
125278func (c *RegionHealthCheckServicesListCall) Header() http.Header {
125279	if c.header_ == nil {
125280		c.header_ = make(http.Header)
125281	}
125282	return c.header_
125283}
125284
125285func (c *RegionHealthCheckServicesListCall) doRequest(alt string) (*http.Response, error) {
125286	reqHeaders := make(http.Header)
125287	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
125288	for k, v := range c.header_ {
125289		reqHeaders[k] = v
125290	}
125291	reqHeaders.Set("User-Agent", c.s.userAgent())
125292	if c.ifNoneMatch_ != "" {
125293		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
125294	}
125295	var body io.Reader = nil
125296	c.urlParams_.Set("alt", alt)
125297	c.urlParams_.Set("prettyPrint", "false")
125298	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/healthCheckServices")
125299	urls += "?" + c.urlParams_.Encode()
125300	req, err := http.NewRequest("GET", urls, body)
125301	if err != nil {
125302		return nil, err
125303	}
125304	req.Header = reqHeaders
125305	googleapi.Expand(req.URL, map[string]string{
125306		"project": c.project,
125307		"region":  c.region,
125308	})
125309	return gensupport.SendRequest(c.ctx_, c.s.client, req)
125310}
125311
125312// Do executes the "compute.regionHealthCheckServices.list" call.
125313// Exactly one of *HealthCheckServicesList or error will be non-nil. Any
125314// non-2xx status code is an error. Response headers are in either
125315// *HealthCheckServicesList.ServerResponse.Header or (if a response was
125316// returned at all) in error.(*googleapi.Error).Header. Use
125317// googleapi.IsNotModified to check whether the returned error was
125318// because http.StatusNotModified was returned.
125319func (c *RegionHealthCheckServicesListCall) Do(opts ...googleapi.CallOption) (*HealthCheckServicesList, error) {
125320	gensupport.SetOptions(c.urlParams_, opts...)
125321	res, err := c.doRequest("json")
125322	if res != nil && res.StatusCode == http.StatusNotModified {
125323		if res.Body != nil {
125324			res.Body.Close()
125325		}
125326		return nil, &googleapi.Error{
125327			Code:   res.StatusCode,
125328			Header: res.Header,
125329		}
125330	}
125331	if err != nil {
125332		return nil, err
125333	}
125334	defer googleapi.CloseBody(res)
125335	if err := googleapi.CheckResponse(res); err != nil {
125336		return nil, err
125337	}
125338	ret := &HealthCheckServicesList{
125339		ServerResponse: googleapi.ServerResponse{
125340			Header:         res.Header,
125341			HTTPStatusCode: res.StatusCode,
125342		},
125343	}
125344	target := &ret
125345	if err := gensupport.DecodeResponse(target, res); err != nil {
125346		return nil, err
125347	}
125348	return ret, nil
125349	// {
125350	//   "description": "Lists all the HealthCheckService resources that have been configured for the specified project in the given region. (== suppress_warning http-rest-shadowed ==)",
125351	//   "httpMethod": "GET",
125352	//   "id": "compute.regionHealthCheckServices.list",
125353	//   "parameterOrder": [
125354	//     "project",
125355	//     "region"
125356	//   ],
125357	//   "parameters": {
125358	//     "filter": {
125359	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
125360	//       "location": "query",
125361	//       "type": "string"
125362	//     },
125363	//     "maxResults": {
125364	//       "default": "500",
125365	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
125366	//       "format": "uint32",
125367	//       "location": "query",
125368	//       "minimum": "0",
125369	//       "type": "integer"
125370	//     },
125371	//     "orderBy": {
125372	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
125373	//       "location": "query",
125374	//       "type": "string"
125375	//     },
125376	//     "pageToken": {
125377	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
125378	//       "location": "query",
125379	//       "type": "string"
125380	//     },
125381	//     "project": {
125382	//       "description": "Project ID for this request.",
125383	//       "location": "path",
125384	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
125385	//       "required": true,
125386	//       "type": "string"
125387	//     },
125388	//     "region": {
125389	//       "description": "Name of the region scoping this request.",
125390	//       "location": "path",
125391	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
125392	//       "required": true,
125393	//       "type": "string"
125394	//     }
125395	//   },
125396	//   "path": "{project}/regions/{region}/healthCheckServices",
125397	//   "response": {
125398	//     "$ref": "HealthCheckServicesList"
125399	//   },
125400	//   "scopes": [
125401	//     "https://www.googleapis.com/auth/cloud-platform",
125402	//     "https://www.googleapis.com/auth/compute",
125403	//     "https://www.googleapis.com/auth/compute.readonly"
125404	//   ]
125405	// }
125406
125407}
125408
125409// Pages invokes f for each page of results.
125410// A non-nil error returned from f will halt the iteration.
125411// The provided context supersedes any context provided to the Context method.
125412func (c *RegionHealthCheckServicesListCall) Pages(ctx context.Context, f func(*HealthCheckServicesList) error) error {
125413	c.ctx_ = ctx
125414	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
125415	for {
125416		x, err := c.Do()
125417		if err != nil {
125418			return err
125419		}
125420		if err := f(x); err != nil {
125421			return err
125422		}
125423		if x.NextPageToken == "" {
125424			return nil
125425		}
125426		c.PageToken(x.NextPageToken)
125427	}
125428}
125429
125430// method id "compute.regionHealthCheckServices.testIamPermissions":
125431
125432type RegionHealthCheckServicesTestIamPermissionsCall struct {
125433	s                      *Service
125434	project                string
125435	region                 string
125436	resource               string
125437	testpermissionsrequest *TestPermissionsRequest
125438	urlParams_             gensupport.URLParams
125439	ctx_                   context.Context
125440	header_                http.Header
125441}
125442
125443// TestIamPermissions: Returns permissions that a caller has on the
125444// specified resource. (== suppress_warning http-rest-shadowed ==)
125445func (r *RegionHealthCheckServicesService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *RegionHealthCheckServicesTestIamPermissionsCall {
125446	c := &RegionHealthCheckServicesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
125447	c.project = project
125448	c.region = region
125449	c.resource = resource
125450	c.testpermissionsrequest = testpermissionsrequest
125451	return c
125452}
125453
125454// Fields allows partial responses to be retrieved. See
125455// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
125456// for more information.
125457func (c *RegionHealthCheckServicesTestIamPermissionsCall) Fields(s ...googleapi.Field) *RegionHealthCheckServicesTestIamPermissionsCall {
125458	c.urlParams_.Set("fields", googleapi.CombineFields(s))
125459	return c
125460}
125461
125462// Context sets the context to be used in this call's Do method. Any
125463// pending HTTP request will be aborted if the provided context is
125464// canceled.
125465func (c *RegionHealthCheckServicesTestIamPermissionsCall) Context(ctx context.Context) *RegionHealthCheckServicesTestIamPermissionsCall {
125466	c.ctx_ = ctx
125467	return c
125468}
125469
125470// Header returns an http.Header that can be modified by the caller to
125471// add HTTP headers to the request.
125472func (c *RegionHealthCheckServicesTestIamPermissionsCall) Header() http.Header {
125473	if c.header_ == nil {
125474		c.header_ = make(http.Header)
125475	}
125476	return c.header_
125477}
125478
125479func (c *RegionHealthCheckServicesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
125480	reqHeaders := make(http.Header)
125481	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
125482	for k, v := range c.header_ {
125483		reqHeaders[k] = v
125484	}
125485	reqHeaders.Set("User-Agent", c.s.userAgent())
125486	var body io.Reader = nil
125487	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
125488	if err != nil {
125489		return nil, err
125490	}
125491	reqHeaders.Set("Content-Type", "application/json")
125492	c.urlParams_.Set("alt", alt)
125493	c.urlParams_.Set("prettyPrint", "false")
125494	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/healthCheckServices/{resource}/testIamPermissions")
125495	urls += "?" + c.urlParams_.Encode()
125496	req, err := http.NewRequest("POST", urls, body)
125497	if err != nil {
125498		return nil, err
125499	}
125500	req.Header = reqHeaders
125501	googleapi.Expand(req.URL, map[string]string{
125502		"project":  c.project,
125503		"region":   c.region,
125504		"resource": c.resource,
125505	})
125506	return gensupport.SendRequest(c.ctx_, c.s.client, req)
125507}
125508
125509// Do executes the "compute.regionHealthCheckServices.testIamPermissions" call.
125510// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
125511// non-2xx status code is an error. Response headers are in either
125512// *TestPermissionsResponse.ServerResponse.Header or (if a response was
125513// returned at all) in error.(*googleapi.Error).Header. Use
125514// googleapi.IsNotModified to check whether the returned error was
125515// because http.StatusNotModified was returned.
125516func (c *RegionHealthCheckServicesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
125517	gensupport.SetOptions(c.urlParams_, opts...)
125518	res, err := c.doRequest("json")
125519	if res != nil && res.StatusCode == http.StatusNotModified {
125520		if res.Body != nil {
125521			res.Body.Close()
125522		}
125523		return nil, &googleapi.Error{
125524			Code:   res.StatusCode,
125525			Header: res.Header,
125526		}
125527	}
125528	if err != nil {
125529		return nil, err
125530	}
125531	defer googleapi.CloseBody(res)
125532	if err := googleapi.CheckResponse(res); err != nil {
125533		return nil, err
125534	}
125535	ret := &TestPermissionsResponse{
125536		ServerResponse: googleapi.ServerResponse{
125537			Header:         res.Header,
125538			HTTPStatusCode: res.StatusCode,
125539		},
125540	}
125541	target := &ret
125542	if err := gensupport.DecodeResponse(target, res); err != nil {
125543		return nil, err
125544	}
125545	return ret, nil
125546	// {
125547	//   "description": "Returns permissions that a caller has on the specified resource. (== suppress_warning http-rest-shadowed ==)",
125548	//   "httpMethod": "POST",
125549	//   "id": "compute.regionHealthCheckServices.testIamPermissions",
125550	//   "parameterOrder": [
125551	//     "project",
125552	//     "region",
125553	//     "resource"
125554	//   ],
125555	//   "parameters": {
125556	//     "project": {
125557	//       "description": "Project ID for this request.",
125558	//       "location": "path",
125559	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
125560	//       "required": true,
125561	//       "type": "string"
125562	//     },
125563	//     "region": {
125564	//       "description": "The name of the region for this request.",
125565	//       "location": "path",
125566	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
125567	//       "required": true,
125568	//       "type": "string"
125569	//     },
125570	//     "resource": {
125571	//       "description": "Name or id of the resource for this request.",
125572	//       "location": "path",
125573	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
125574	//       "required": true,
125575	//       "type": "string"
125576	//     }
125577	//   },
125578	//   "path": "{project}/regions/{region}/healthCheckServices/{resource}/testIamPermissions",
125579	//   "request": {
125580	//     "$ref": "TestPermissionsRequest"
125581	//   },
125582	//   "response": {
125583	//     "$ref": "TestPermissionsResponse"
125584	//   },
125585	//   "scopes": [
125586	//     "https://www.googleapis.com/auth/cloud-platform",
125587	//     "https://www.googleapis.com/auth/compute",
125588	//     "https://www.googleapis.com/auth/compute.readonly"
125589	//   ]
125590	// }
125591
125592}
125593
125594// method id "compute.regionHealthChecks.delete":
125595
125596type RegionHealthChecksDeleteCall struct {
125597	s           *Service
125598	project     string
125599	region      string
125600	healthCheck string
125601	urlParams_  gensupport.URLParams
125602	ctx_        context.Context
125603	header_     http.Header
125604}
125605
125606// Delete: Deletes the specified HealthCheck resource. (==
125607// suppress_warning http-rest-shadowed ==)
125608func (r *RegionHealthChecksService) Delete(project string, region string, healthCheck string) *RegionHealthChecksDeleteCall {
125609	c := &RegionHealthChecksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
125610	c.project = project
125611	c.region = region
125612	c.healthCheck = healthCheck
125613	return c
125614}
125615
125616// RequestId sets the optional parameter "requestId": An optional
125617// request ID to identify requests. Specify a unique request ID so that
125618// if you must retry your request, the server will know to ignore the
125619// request if it has already been completed.
125620//
125621// For example, consider a situation where you make an initial request
125622// and the request times out. If you make the request again with the
125623// same request ID, the server can check if original operation with the
125624// same request ID was received, and if so, will ignore the second
125625// request. This prevents clients from accidentally creating duplicate
125626// commitments.
125627//
125628// The request ID must be a valid UUID with the exception that zero UUID
125629// is not supported (00000000-0000-0000-0000-000000000000).
125630func (c *RegionHealthChecksDeleteCall) RequestId(requestId string) *RegionHealthChecksDeleteCall {
125631	c.urlParams_.Set("requestId", requestId)
125632	return c
125633}
125634
125635// Fields allows partial responses to be retrieved. See
125636// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
125637// for more information.
125638func (c *RegionHealthChecksDeleteCall) Fields(s ...googleapi.Field) *RegionHealthChecksDeleteCall {
125639	c.urlParams_.Set("fields", googleapi.CombineFields(s))
125640	return c
125641}
125642
125643// Context sets the context to be used in this call's Do method. Any
125644// pending HTTP request will be aborted if the provided context is
125645// canceled.
125646func (c *RegionHealthChecksDeleteCall) Context(ctx context.Context) *RegionHealthChecksDeleteCall {
125647	c.ctx_ = ctx
125648	return c
125649}
125650
125651// Header returns an http.Header that can be modified by the caller to
125652// add HTTP headers to the request.
125653func (c *RegionHealthChecksDeleteCall) Header() http.Header {
125654	if c.header_ == nil {
125655		c.header_ = make(http.Header)
125656	}
125657	return c.header_
125658}
125659
125660func (c *RegionHealthChecksDeleteCall) doRequest(alt string) (*http.Response, error) {
125661	reqHeaders := make(http.Header)
125662	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
125663	for k, v := range c.header_ {
125664		reqHeaders[k] = v
125665	}
125666	reqHeaders.Set("User-Agent", c.s.userAgent())
125667	var body io.Reader = nil
125668	c.urlParams_.Set("alt", alt)
125669	c.urlParams_.Set("prettyPrint", "false")
125670	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/healthChecks/{healthCheck}")
125671	urls += "?" + c.urlParams_.Encode()
125672	req, err := http.NewRequest("DELETE", urls, body)
125673	if err != nil {
125674		return nil, err
125675	}
125676	req.Header = reqHeaders
125677	googleapi.Expand(req.URL, map[string]string{
125678		"project":     c.project,
125679		"region":      c.region,
125680		"healthCheck": c.healthCheck,
125681	})
125682	return gensupport.SendRequest(c.ctx_, c.s.client, req)
125683}
125684
125685// Do executes the "compute.regionHealthChecks.delete" call.
125686// Exactly one of *Operation or error will be non-nil. Any non-2xx
125687// status code is an error. Response headers are in either
125688// *Operation.ServerResponse.Header or (if a response was returned at
125689// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
125690// to check whether the returned error was because
125691// http.StatusNotModified was returned.
125692func (c *RegionHealthChecksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
125693	gensupport.SetOptions(c.urlParams_, opts...)
125694	res, err := c.doRequest("json")
125695	if res != nil && res.StatusCode == http.StatusNotModified {
125696		if res.Body != nil {
125697			res.Body.Close()
125698		}
125699		return nil, &googleapi.Error{
125700			Code:   res.StatusCode,
125701			Header: res.Header,
125702		}
125703	}
125704	if err != nil {
125705		return nil, err
125706	}
125707	defer googleapi.CloseBody(res)
125708	if err := googleapi.CheckResponse(res); err != nil {
125709		return nil, err
125710	}
125711	ret := &Operation{
125712		ServerResponse: googleapi.ServerResponse{
125713			Header:         res.Header,
125714			HTTPStatusCode: res.StatusCode,
125715		},
125716	}
125717	target := &ret
125718	if err := gensupport.DecodeResponse(target, res); err != nil {
125719		return nil, err
125720	}
125721	return ret, nil
125722	// {
125723	//   "description": "Deletes the specified HealthCheck resource. (== suppress_warning http-rest-shadowed ==)",
125724	//   "httpMethod": "DELETE",
125725	//   "id": "compute.regionHealthChecks.delete",
125726	//   "parameterOrder": [
125727	//     "project",
125728	//     "region",
125729	//     "healthCheck"
125730	//   ],
125731	//   "parameters": {
125732	//     "healthCheck": {
125733	//       "description": "Name of the HealthCheck resource to delete.",
125734	//       "location": "path",
125735	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
125736	//       "required": true,
125737	//       "type": "string"
125738	//     },
125739	//     "project": {
125740	//       "description": "Project ID for this request.",
125741	//       "location": "path",
125742	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
125743	//       "required": true,
125744	//       "type": "string"
125745	//     },
125746	//     "region": {
125747	//       "description": "Name of the region scoping this request.",
125748	//       "location": "path",
125749	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
125750	//       "required": true,
125751	//       "type": "string"
125752	//     },
125753	//     "requestId": {
125754	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
125755	//       "location": "query",
125756	//       "type": "string"
125757	//     }
125758	//   },
125759	//   "path": "{project}/regions/{region}/healthChecks/{healthCheck}",
125760	//   "response": {
125761	//     "$ref": "Operation"
125762	//   },
125763	//   "scopes": [
125764	//     "https://www.googleapis.com/auth/cloud-platform",
125765	//     "https://www.googleapis.com/auth/compute"
125766	//   ]
125767	// }
125768
125769}
125770
125771// method id "compute.regionHealthChecks.get":
125772
125773type RegionHealthChecksGetCall struct {
125774	s            *Service
125775	project      string
125776	region       string
125777	healthCheck  string
125778	urlParams_   gensupport.URLParams
125779	ifNoneMatch_ string
125780	ctx_         context.Context
125781	header_      http.Header
125782}
125783
125784// Get: Returns the specified HealthCheck resource. Gets a list of
125785// available health checks by making a list() request. (==
125786// suppress_warning http-rest-shadowed ==)
125787func (r *RegionHealthChecksService) Get(project string, region string, healthCheck string) *RegionHealthChecksGetCall {
125788	c := &RegionHealthChecksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
125789	c.project = project
125790	c.region = region
125791	c.healthCheck = healthCheck
125792	return c
125793}
125794
125795// Fields allows partial responses to be retrieved. See
125796// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
125797// for more information.
125798func (c *RegionHealthChecksGetCall) Fields(s ...googleapi.Field) *RegionHealthChecksGetCall {
125799	c.urlParams_.Set("fields", googleapi.CombineFields(s))
125800	return c
125801}
125802
125803// IfNoneMatch sets the optional parameter which makes the operation
125804// fail if the object's ETag matches the given value. This is useful for
125805// getting updates only after the object has changed since the last
125806// request. Use googleapi.IsNotModified to check whether the response
125807// error from Do is the result of In-None-Match.
125808func (c *RegionHealthChecksGetCall) IfNoneMatch(entityTag string) *RegionHealthChecksGetCall {
125809	c.ifNoneMatch_ = entityTag
125810	return c
125811}
125812
125813// Context sets the context to be used in this call's Do method. Any
125814// pending HTTP request will be aborted if the provided context is
125815// canceled.
125816func (c *RegionHealthChecksGetCall) Context(ctx context.Context) *RegionHealthChecksGetCall {
125817	c.ctx_ = ctx
125818	return c
125819}
125820
125821// Header returns an http.Header that can be modified by the caller to
125822// add HTTP headers to the request.
125823func (c *RegionHealthChecksGetCall) Header() http.Header {
125824	if c.header_ == nil {
125825		c.header_ = make(http.Header)
125826	}
125827	return c.header_
125828}
125829
125830func (c *RegionHealthChecksGetCall) doRequest(alt string) (*http.Response, error) {
125831	reqHeaders := make(http.Header)
125832	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
125833	for k, v := range c.header_ {
125834		reqHeaders[k] = v
125835	}
125836	reqHeaders.Set("User-Agent", c.s.userAgent())
125837	if c.ifNoneMatch_ != "" {
125838		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
125839	}
125840	var body io.Reader = nil
125841	c.urlParams_.Set("alt", alt)
125842	c.urlParams_.Set("prettyPrint", "false")
125843	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/healthChecks/{healthCheck}")
125844	urls += "?" + c.urlParams_.Encode()
125845	req, err := http.NewRequest("GET", urls, body)
125846	if err != nil {
125847		return nil, err
125848	}
125849	req.Header = reqHeaders
125850	googleapi.Expand(req.URL, map[string]string{
125851		"project":     c.project,
125852		"region":      c.region,
125853		"healthCheck": c.healthCheck,
125854	})
125855	return gensupport.SendRequest(c.ctx_, c.s.client, req)
125856}
125857
125858// Do executes the "compute.regionHealthChecks.get" call.
125859// Exactly one of *HealthCheck or error will be non-nil. Any non-2xx
125860// status code is an error. Response headers are in either
125861// *HealthCheck.ServerResponse.Header or (if a response was returned at
125862// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
125863// to check whether the returned error was because
125864// http.StatusNotModified was returned.
125865func (c *RegionHealthChecksGetCall) Do(opts ...googleapi.CallOption) (*HealthCheck, error) {
125866	gensupport.SetOptions(c.urlParams_, opts...)
125867	res, err := c.doRequest("json")
125868	if res != nil && res.StatusCode == http.StatusNotModified {
125869		if res.Body != nil {
125870			res.Body.Close()
125871		}
125872		return nil, &googleapi.Error{
125873			Code:   res.StatusCode,
125874			Header: res.Header,
125875		}
125876	}
125877	if err != nil {
125878		return nil, err
125879	}
125880	defer googleapi.CloseBody(res)
125881	if err := googleapi.CheckResponse(res); err != nil {
125882		return nil, err
125883	}
125884	ret := &HealthCheck{
125885		ServerResponse: googleapi.ServerResponse{
125886			Header:         res.Header,
125887			HTTPStatusCode: res.StatusCode,
125888		},
125889	}
125890	target := &ret
125891	if err := gensupport.DecodeResponse(target, res); err != nil {
125892		return nil, err
125893	}
125894	return ret, nil
125895	// {
125896	//   "description": "Returns the specified HealthCheck resource. Gets a list of available health checks by making a list() request. (== suppress_warning http-rest-shadowed ==)",
125897	//   "httpMethod": "GET",
125898	//   "id": "compute.regionHealthChecks.get",
125899	//   "parameterOrder": [
125900	//     "project",
125901	//     "region",
125902	//     "healthCheck"
125903	//   ],
125904	//   "parameters": {
125905	//     "healthCheck": {
125906	//       "description": "Name of the HealthCheck resource to return.",
125907	//       "location": "path",
125908	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
125909	//       "required": true,
125910	//       "type": "string"
125911	//     },
125912	//     "project": {
125913	//       "description": "Project ID for this request.",
125914	//       "location": "path",
125915	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
125916	//       "required": true,
125917	//       "type": "string"
125918	//     },
125919	//     "region": {
125920	//       "description": "Name of the region scoping this request.",
125921	//       "location": "path",
125922	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
125923	//       "required": true,
125924	//       "type": "string"
125925	//     }
125926	//   },
125927	//   "path": "{project}/regions/{region}/healthChecks/{healthCheck}",
125928	//   "response": {
125929	//     "$ref": "HealthCheck"
125930	//   },
125931	//   "scopes": [
125932	//     "https://www.googleapis.com/auth/cloud-platform",
125933	//     "https://www.googleapis.com/auth/compute",
125934	//     "https://www.googleapis.com/auth/compute.readonly"
125935	//   ]
125936	// }
125937
125938}
125939
125940// method id "compute.regionHealthChecks.insert":
125941
125942type RegionHealthChecksInsertCall struct {
125943	s           *Service
125944	project     string
125945	region      string
125946	healthcheck *HealthCheck
125947	urlParams_  gensupport.URLParams
125948	ctx_        context.Context
125949	header_     http.Header
125950}
125951
125952// Insert: Creates a HealthCheck resource in the specified project using
125953// the data included in the request. (== suppress_warning
125954// http-rest-shadowed ==)
125955func (r *RegionHealthChecksService) Insert(project string, region string, healthcheck *HealthCheck) *RegionHealthChecksInsertCall {
125956	c := &RegionHealthChecksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
125957	c.project = project
125958	c.region = region
125959	c.healthcheck = healthcheck
125960	return c
125961}
125962
125963// RequestId sets the optional parameter "requestId": An optional
125964// request ID to identify requests. Specify a unique request ID so that
125965// if you must retry your request, the server will know to ignore the
125966// request if it has already been completed.
125967//
125968// For example, consider a situation where you make an initial request
125969// and the request times out. If you make the request again with the
125970// same request ID, the server can check if original operation with the
125971// same request ID was received, and if so, will ignore the second
125972// request. This prevents clients from accidentally creating duplicate
125973// commitments.
125974//
125975// The request ID must be a valid UUID with the exception that zero UUID
125976// is not supported (00000000-0000-0000-0000-000000000000).
125977func (c *RegionHealthChecksInsertCall) RequestId(requestId string) *RegionHealthChecksInsertCall {
125978	c.urlParams_.Set("requestId", requestId)
125979	return c
125980}
125981
125982// Fields allows partial responses to be retrieved. See
125983// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
125984// for more information.
125985func (c *RegionHealthChecksInsertCall) Fields(s ...googleapi.Field) *RegionHealthChecksInsertCall {
125986	c.urlParams_.Set("fields", googleapi.CombineFields(s))
125987	return c
125988}
125989
125990// Context sets the context to be used in this call's Do method. Any
125991// pending HTTP request will be aborted if the provided context is
125992// canceled.
125993func (c *RegionHealthChecksInsertCall) Context(ctx context.Context) *RegionHealthChecksInsertCall {
125994	c.ctx_ = ctx
125995	return c
125996}
125997
125998// Header returns an http.Header that can be modified by the caller to
125999// add HTTP headers to the request.
126000func (c *RegionHealthChecksInsertCall) Header() http.Header {
126001	if c.header_ == nil {
126002		c.header_ = make(http.Header)
126003	}
126004	return c.header_
126005}
126006
126007func (c *RegionHealthChecksInsertCall) doRequest(alt string) (*http.Response, error) {
126008	reqHeaders := make(http.Header)
126009	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
126010	for k, v := range c.header_ {
126011		reqHeaders[k] = v
126012	}
126013	reqHeaders.Set("User-Agent", c.s.userAgent())
126014	var body io.Reader = nil
126015	body, err := googleapi.WithoutDataWrapper.JSONReader(c.healthcheck)
126016	if err != nil {
126017		return nil, err
126018	}
126019	reqHeaders.Set("Content-Type", "application/json")
126020	c.urlParams_.Set("alt", alt)
126021	c.urlParams_.Set("prettyPrint", "false")
126022	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/healthChecks")
126023	urls += "?" + c.urlParams_.Encode()
126024	req, err := http.NewRequest("POST", urls, body)
126025	if err != nil {
126026		return nil, err
126027	}
126028	req.Header = reqHeaders
126029	googleapi.Expand(req.URL, map[string]string{
126030		"project": c.project,
126031		"region":  c.region,
126032	})
126033	return gensupport.SendRequest(c.ctx_, c.s.client, req)
126034}
126035
126036// Do executes the "compute.regionHealthChecks.insert" call.
126037// Exactly one of *Operation or error will be non-nil. Any non-2xx
126038// status code is an error. Response headers are in either
126039// *Operation.ServerResponse.Header or (if a response was returned at
126040// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
126041// to check whether the returned error was because
126042// http.StatusNotModified was returned.
126043func (c *RegionHealthChecksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
126044	gensupport.SetOptions(c.urlParams_, opts...)
126045	res, err := c.doRequest("json")
126046	if res != nil && res.StatusCode == http.StatusNotModified {
126047		if res.Body != nil {
126048			res.Body.Close()
126049		}
126050		return nil, &googleapi.Error{
126051			Code:   res.StatusCode,
126052			Header: res.Header,
126053		}
126054	}
126055	if err != nil {
126056		return nil, err
126057	}
126058	defer googleapi.CloseBody(res)
126059	if err := googleapi.CheckResponse(res); err != nil {
126060		return nil, err
126061	}
126062	ret := &Operation{
126063		ServerResponse: googleapi.ServerResponse{
126064			Header:         res.Header,
126065			HTTPStatusCode: res.StatusCode,
126066		},
126067	}
126068	target := &ret
126069	if err := gensupport.DecodeResponse(target, res); err != nil {
126070		return nil, err
126071	}
126072	return ret, nil
126073	// {
126074	//   "description": "Creates a HealthCheck resource in the specified project using the data included in the request. (== suppress_warning http-rest-shadowed ==)",
126075	//   "httpMethod": "POST",
126076	//   "id": "compute.regionHealthChecks.insert",
126077	//   "parameterOrder": [
126078	//     "project",
126079	//     "region"
126080	//   ],
126081	//   "parameters": {
126082	//     "project": {
126083	//       "description": "Project ID for this request.",
126084	//       "location": "path",
126085	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
126086	//       "required": true,
126087	//       "type": "string"
126088	//     },
126089	//     "region": {
126090	//       "description": "Name of the region scoping this request.",
126091	//       "location": "path",
126092	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
126093	//       "required": true,
126094	//       "type": "string"
126095	//     },
126096	//     "requestId": {
126097	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
126098	//       "location": "query",
126099	//       "type": "string"
126100	//     }
126101	//   },
126102	//   "path": "{project}/regions/{region}/healthChecks",
126103	//   "request": {
126104	//     "$ref": "HealthCheck"
126105	//   },
126106	//   "response": {
126107	//     "$ref": "Operation"
126108	//   },
126109	//   "scopes": [
126110	//     "https://www.googleapis.com/auth/cloud-platform",
126111	//     "https://www.googleapis.com/auth/compute"
126112	//   ]
126113	// }
126114
126115}
126116
126117// method id "compute.regionHealthChecks.list":
126118
126119type RegionHealthChecksListCall struct {
126120	s            *Service
126121	project      string
126122	region       string
126123	urlParams_   gensupport.URLParams
126124	ifNoneMatch_ string
126125	ctx_         context.Context
126126	header_      http.Header
126127}
126128
126129// List: Retrieves the list of HealthCheck resources available to the
126130// specified project. (== suppress_warning http-rest-shadowed ==)
126131func (r *RegionHealthChecksService) List(project string, region string) *RegionHealthChecksListCall {
126132	c := &RegionHealthChecksListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
126133	c.project = project
126134	c.region = region
126135	return c
126136}
126137
126138// Filter sets the optional parameter "filter": A filter expression that
126139// filters resources listed in the response. The expression must specify
126140// the field name, a comparison operator, and the value that you want to
126141// use for filtering. The value must be a string, a number, or a
126142// boolean. The comparison operator must be either =, !=, >, or <.
126143//
126144// For example, if you are filtering Compute Engine instances, you can
126145// exclude instances named example-instance by specifying name !=
126146// example-instance.
126147//
126148// You can also filter nested fields. For example, you could specify
126149// scheduling.automaticRestart = false to include instances only if they
126150// are not scheduled for automatic restarts. You can use filtering on
126151// nested fields to filter based on resource labels.
126152//
126153// To filter on multiple expressions, provide each separate expression
126154// within parentheses. For example, (scheduling.automaticRestart = true)
126155// (cpuPlatform = "Intel Skylake"). By default, each expression is an
126156// AND expression. However, you can include AND and OR expressions
126157// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
126158// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
126159// true).
126160func (c *RegionHealthChecksListCall) Filter(filter string) *RegionHealthChecksListCall {
126161	c.urlParams_.Set("filter", filter)
126162	return c
126163}
126164
126165// MaxResults sets the optional parameter "maxResults": The maximum
126166// number of results per page that should be returned. If the number of
126167// available results is larger than maxResults, Compute Engine returns a
126168// nextPageToken that can be used to get the next page of results in
126169// subsequent list requests. Acceptable values are 0 to 500, inclusive.
126170// (Default: 500)
126171func (c *RegionHealthChecksListCall) MaxResults(maxResults int64) *RegionHealthChecksListCall {
126172	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
126173	return c
126174}
126175
126176// OrderBy sets the optional parameter "orderBy": Sorts list results by
126177// a certain order. By default, results are returned in alphanumerical
126178// order based on the resource name.
126179//
126180// You can also sort results in descending order based on the creation
126181// timestamp using orderBy="creationTimestamp desc". This sorts results
126182// based on the creationTimestamp field in reverse chronological order
126183// (newest result first). Use this to sort resources like operations so
126184// that the newest operation is returned first.
126185//
126186// Currently, only sorting by name or creationTimestamp desc is
126187// supported.
126188func (c *RegionHealthChecksListCall) OrderBy(orderBy string) *RegionHealthChecksListCall {
126189	c.urlParams_.Set("orderBy", orderBy)
126190	return c
126191}
126192
126193// PageToken sets the optional parameter "pageToken": Specifies a page
126194// token to use. Set pageToken to the nextPageToken returned by a
126195// previous list request to get the next page of results.
126196func (c *RegionHealthChecksListCall) PageToken(pageToken string) *RegionHealthChecksListCall {
126197	c.urlParams_.Set("pageToken", pageToken)
126198	return c
126199}
126200
126201// Fields allows partial responses to be retrieved. See
126202// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
126203// for more information.
126204func (c *RegionHealthChecksListCall) Fields(s ...googleapi.Field) *RegionHealthChecksListCall {
126205	c.urlParams_.Set("fields", googleapi.CombineFields(s))
126206	return c
126207}
126208
126209// IfNoneMatch sets the optional parameter which makes the operation
126210// fail if the object's ETag matches the given value. This is useful for
126211// getting updates only after the object has changed since the last
126212// request. Use googleapi.IsNotModified to check whether the response
126213// error from Do is the result of In-None-Match.
126214func (c *RegionHealthChecksListCall) IfNoneMatch(entityTag string) *RegionHealthChecksListCall {
126215	c.ifNoneMatch_ = entityTag
126216	return c
126217}
126218
126219// Context sets the context to be used in this call's Do method. Any
126220// pending HTTP request will be aborted if the provided context is
126221// canceled.
126222func (c *RegionHealthChecksListCall) Context(ctx context.Context) *RegionHealthChecksListCall {
126223	c.ctx_ = ctx
126224	return c
126225}
126226
126227// Header returns an http.Header that can be modified by the caller to
126228// add HTTP headers to the request.
126229func (c *RegionHealthChecksListCall) Header() http.Header {
126230	if c.header_ == nil {
126231		c.header_ = make(http.Header)
126232	}
126233	return c.header_
126234}
126235
126236func (c *RegionHealthChecksListCall) doRequest(alt string) (*http.Response, error) {
126237	reqHeaders := make(http.Header)
126238	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
126239	for k, v := range c.header_ {
126240		reqHeaders[k] = v
126241	}
126242	reqHeaders.Set("User-Agent", c.s.userAgent())
126243	if c.ifNoneMatch_ != "" {
126244		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
126245	}
126246	var body io.Reader = nil
126247	c.urlParams_.Set("alt", alt)
126248	c.urlParams_.Set("prettyPrint", "false")
126249	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/healthChecks")
126250	urls += "?" + c.urlParams_.Encode()
126251	req, err := http.NewRequest("GET", urls, body)
126252	if err != nil {
126253		return nil, err
126254	}
126255	req.Header = reqHeaders
126256	googleapi.Expand(req.URL, map[string]string{
126257		"project": c.project,
126258		"region":  c.region,
126259	})
126260	return gensupport.SendRequest(c.ctx_, c.s.client, req)
126261}
126262
126263// Do executes the "compute.regionHealthChecks.list" call.
126264// Exactly one of *HealthCheckList or error will be non-nil. Any non-2xx
126265// status code is an error. Response headers are in either
126266// *HealthCheckList.ServerResponse.Header or (if a response was returned
126267// at all) in error.(*googleapi.Error).Header. Use
126268// googleapi.IsNotModified to check whether the returned error was
126269// because http.StatusNotModified was returned.
126270func (c *RegionHealthChecksListCall) Do(opts ...googleapi.CallOption) (*HealthCheckList, error) {
126271	gensupport.SetOptions(c.urlParams_, opts...)
126272	res, err := c.doRequest("json")
126273	if res != nil && res.StatusCode == http.StatusNotModified {
126274		if res.Body != nil {
126275			res.Body.Close()
126276		}
126277		return nil, &googleapi.Error{
126278			Code:   res.StatusCode,
126279			Header: res.Header,
126280		}
126281	}
126282	if err != nil {
126283		return nil, err
126284	}
126285	defer googleapi.CloseBody(res)
126286	if err := googleapi.CheckResponse(res); err != nil {
126287		return nil, err
126288	}
126289	ret := &HealthCheckList{
126290		ServerResponse: googleapi.ServerResponse{
126291			Header:         res.Header,
126292			HTTPStatusCode: res.StatusCode,
126293		},
126294	}
126295	target := &ret
126296	if err := gensupport.DecodeResponse(target, res); err != nil {
126297		return nil, err
126298	}
126299	return ret, nil
126300	// {
126301	//   "description": "Retrieves the list of HealthCheck resources available to the specified project. (== suppress_warning http-rest-shadowed ==)",
126302	//   "httpMethod": "GET",
126303	//   "id": "compute.regionHealthChecks.list",
126304	//   "parameterOrder": [
126305	//     "project",
126306	//     "region"
126307	//   ],
126308	//   "parameters": {
126309	//     "filter": {
126310	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
126311	//       "location": "query",
126312	//       "type": "string"
126313	//     },
126314	//     "maxResults": {
126315	//       "default": "500",
126316	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
126317	//       "format": "uint32",
126318	//       "location": "query",
126319	//       "minimum": "0",
126320	//       "type": "integer"
126321	//     },
126322	//     "orderBy": {
126323	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
126324	//       "location": "query",
126325	//       "type": "string"
126326	//     },
126327	//     "pageToken": {
126328	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
126329	//       "location": "query",
126330	//       "type": "string"
126331	//     },
126332	//     "project": {
126333	//       "description": "Project ID for this request.",
126334	//       "location": "path",
126335	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
126336	//       "required": true,
126337	//       "type": "string"
126338	//     },
126339	//     "region": {
126340	//       "description": "Name of the region scoping this request.",
126341	//       "location": "path",
126342	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
126343	//       "required": true,
126344	//       "type": "string"
126345	//     }
126346	//   },
126347	//   "path": "{project}/regions/{region}/healthChecks",
126348	//   "response": {
126349	//     "$ref": "HealthCheckList"
126350	//   },
126351	//   "scopes": [
126352	//     "https://www.googleapis.com/auth/cloud-platform",
126353	//     "https://www.googleapis.com/auth/compute",
126354	//     "https://www.googleapis.com/auth/compute.readonly"
126355	//   ]
126356	// }
126357
126358}
126359
126360// Pages invokes f for each page of results.
126361// A non-nil error returned from f will halt the iteration.
126362// The provided context supersedes any context provided to the Context method.
126363func (c *RegionHealthChecksListCall) Pages(ctx context.Context, f func(*HealthCheckList) error) error {
126364	c.ctx_ = ctx
126365	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
126366	for {
126367		x, err := c.Do()
126368		if err != nil {
126369			return err
126370		}
126371		if err := f(x); err != nil {
126372			return err
126373		}
126374		if x.NextPageToken == "" {
126375			return nil
126376		}
126377		c.PageToken(x.NextPageToken)
126378	}
126379}
126380
126381// method id "compute.regionHealthChecks.patch":
126382
126383type RegionHealthChecksPatchCall struct {
126384	s           *Service
126385	project     string
126386	region      string
126387	healthCheck string
126388	healthcheck *HealthCheck
126389	urlParams_  gensupport.URLParams
126390	ctx_        context.Context
126391	header_     http.Header
126392}
126393
126394// Patch: Updates a HealthCheck resource in the specified project using
126395// the data included in the request. This method supports PATCH
126396// semantics and uses the JSON merge patch format and processing rules.
126397// (== suppress_warning http-rest-shadowed ==)
126398func (r *RegionHealthChecksService) Patch(project string, region string, healthCheck string, healthcheck *HealthCheck) *RegionHealthChecksPatchCall {
126399	c := &RegionHealthChecksPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
126400	c.project = project
126401	c.region = region
126402	c.healthCheck = healthCheck
126403	c.healthcheck = healthcheck
126404	return c
126405}
126406
126407// RequestId sets the optional parameter "requestId": An optional
126408// request ID to identify requests. Specify a unique request ID so that
126409// if you must retry your request, the server will know to ignore the
126410// request if it has already been completed.
126411//
126412// For example, consider a situation where you make an initial request
126413// and the request times out. If you make the request again with the
126414// same request ID, the server can check if original operation with the
126415// same request ID was received, and if so, will ignore the second
126416// request. This prevents clients from accidentally creating duplicate
126417// commitments.
126418//
126419// The request ID must be a valid UUID with the exception that zero UUID
126420// is not supported (00000000-0000-0000-0000-000000000000).
126421func (c *RegionHealthChecksPatchCall) RequestId(requestId string) *RegionHealthChecksPatchCall {
126422	c.urlParams_.Set("requestId", requestId)
126423	return c
126424}
126425
126426// Fields allows partial responses to be retrieved. See
126427// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
126428// for more information.
126429func (c *RegionHealthChecksPatchCall) Fields(s ...googleapi.Field) *RegionHealthChecksPatchCall {
126430	c.urlParams_.Set("fields", googleapi.CombineFields(s))
126431	return c
126432}
126433
126434// Context sets the context to be used in this call's Do method. Any
126435// pending HTTP request will be aborted if the provided context is
126436// canceled.
126437func (c *RegionHealthChecksPatchCall) Context(ctx context.Context) *RegionHealthChecksPatchCall {
126438	c.ctx_ = ctx
126439	return c
126440}
126441
126442// Header returns an http.Header that can be modified by the caller to
126443// add HTTP headers to the request.
126444func (c *RegionHealthChecksPatchCall) Header() http.Header {
126445	if c.header_ == nil {
126446		c.header_ = make(http.Header)
126447	}
126448	return c.header_
126449}
126450
126451func (c *RegionHealthChecksPatchCall) doRequest(alt string) (*http.Response, error) {
126452	reqHeaders := make(http.Header)
126453	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
126454	for k, v := range c.header_ {
126455		reqHeaders[k] = v
126456	}
126457	reqHeaders.Set("User-Agent", c.s.userAgent())
126458	var body io.Reader = nil
126459	body, err := googleapi.WithoutDataWrapper.JSONReader(c.healthcheck)
126460	if err != nil {
126461		return nil, err
126462	}
126463	reqHeaders.Set("Content-Type", "application/json")
126464	c.urlParams_.Set("alt", alt)
126465	c.urlParams_.Set("prettyPrint", "false")
126466	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/healthChecks/{healthCheck}")
126467	urls += "?" + c.urlParams_.Encode()
126468	req, err := http.NewRequest("PATCH", urls, body)
126469	if err != nil {
126470		return nil, err
126471	}
126472	req.Header = reqHeaders
126473	googleapi.Expand(req.URL, map[string]string{
126474		"project":     c.project,
126475		"region":      c.region,
126476		"healthCheck": c.healthCheck,
126477	})
126478	return gensupport.SendRequest(c.ctx_, c.s.client, req)
126479}
126480
126481// Do executes the "compute.regionHealthChecks.patch" call.
126482// Exactly one of *Operation or error will be non-nil. Any non-2xx
126483// status code is an error. Response headers are in either
126484// *Operation.ServerResponse.Header or (if a response was returned at
126485// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
126486// to check whether the returned error was because
126487// http.StatusNotModified was returned.
126488func (c *RegionHealthChecksPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
126489	gensupport.SetOptions(c.urlParams_, opts...)
126490	res, err := c.doRequest("json")
126491	if res != nil && res.StatusCode == http.StatusNotModified {
126492		if res.Body != nil {
126493			res.Body.Close()
126494		}
126495		return nil, &googleapi.Error{
126496			Code:   res.StatusCode,
126497			Header: res.Header,
126498		}
126499	}
126500	if err != nil {
126501		return nil, err
126502	}
126503	defer googleapi.CloseBody(res)
126504	if err := googleapi.CheckResponse(res); err != nil {
126505		return nil, err
126506	}
126507	ret := &Operation{
126508		ServerResponse: googleapi.ServerResponse{
126509			Header:         res.Header,
126510			HTTPStatusCode: res.StatusCode,
126511		},
126512	}
126513	target := &ret
126514	if err := gensupport.DecodeResponse(target, res); err != nil {
126515		return nil, err
126516	}
126517	return ret, nil
126518	// {
126519	//   "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. (== suppress_warning http-rest-shadowed ==)",
126520	//   "httpMethod": "PATCH",
126521	//   "id": "compute.regionHealthChecks.patch",
126522	//   "parameterOrder": [
126523	//     "project",
126524	//     "region",
126525	//     "healthCheck"
126526	//   ],
126527	//   "parameters": {
126528	//     "healthCheck": {
126529	//       "description": "Name of the HealthCheck resource to patch.",
126530	//       "location": "path",
126531	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
126532	//       "required": true,
126533	//       "type": "string"
126534	//     },
126535	//     "project": {
126536	//       "description": "Project ID for this request.",
126537	//       "location": "path",
126538	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
126539	//       "required": true,
126540	//       "type": "string"
126541	//     },
126542	//     "region": {
126543	//       "description": "Name of the region scoping this request.",
126544	//       "location": "path",
126545	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
126546	//       "required": true,
126547	//       "type": "string"
126548	//     },
126549	//     "requestId": {
126550	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
126551	//       "location": "query",
126552	//       "type": "string"
126553	//     }
126554	//   },
126555	//   "path": "{project}/regions/{region}/healthChecks/{healthCheck}",
126556	//   "request": {
126557	//     "$ref": "HealthCheck"
126558	//   },
126559	//   "response": {
126560	//     "$ref": "Operation"
126561	//   },
126562	//   "scopes": [
126563	//     "https://www.googleapis.com/auth/cloud-platform",
126564	//     "https://www.googleapis.com/auth/compute"
126565	//   ]
126566	// }
126567
126568}
126569
126570// method id "compute.regionHealthChecks.testIamPermissions":
126571
126572type RegionHealthChecksTestIamPermissionsCall struct {
126573	s                      *Service
126574	project                string
126575	region                 string
126576	resource               string
126577	testpermissionsrequest *TestPermissionsRequest
126578	urlParams_             gensupport.URLParams
126579	ctx_                   context.Context
126580	header_                http.Header
126581}
126582
126583// TestIamPermissions: Returns permissions that a caller has on the
126584// specified resource. (== suppress_warning http-rest-shadowed ==)
126585func (r *RegionHealthChecksService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *RegionHealthChecksTestIamPermissionsCall {
126586	c := &RegionHealthChecksTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
126587	c.project = project
126588	c.region = region
126589	c.resource = resource
126590	c.testpermissionsrequest = testpermissionsrequest
126591	return c
126592}
126593
126594// Fields allows partial responses to be retrieved. See
126595// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
126596// for more information.
126597func (c *RegionHealthChecksTestIamPermissionsCall) Fields(s ...googleapi.Field) *RegionHealthChecksTestIamPermissionsCall {
126598	c.urlParams_.Set("fields", googleapi.CombineFields(s))
126599	return c
126600}
126601
126602// Context sets the context to be used in this call's Do method. Any
126603// pending HTTP request will be aborted if the provided context is
126604// canceled.
126605func (c *RegionHealthChecksTestIamPermissionsCall) Context(ctx context.Context) *RegionHealthChecksTestIamPermissionsCall {
126606	c.ctx_ = ctx
126607	return c
126608}
126609
126610// Header returns an http.Header that can be modified by the caller to
126611// add HTTP headers to the request.
126612func (c *RegionHealthChecksTestIamPermissionsCall) Header() http.Header {
126613	if c.header_ == nil {
126614		c.header_ = make(http.Header)
126615	}
126616	return c.header_
126617}
126618
126619func (c *RegionHealthChecksTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
126620	reqHeaders := make(http.Header)
126621	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
126622	for k, v := range c.header_ {
126623		reqHeaders[k] = v
126624	}
126625	reqHeaders.Set("User-Agent", c.s.userAgent())
126626	var body io.Reader = nil
126627	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
126628	if err != nil {
126629		return nil, err
126630	}
126631	reqHeaders.Set("Content-Type", "application/json")
126632	c.urlParams_.Set("alt", alt)
126633	c.urlParams_.Set("prettyPrint", "false")
126634	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/healthChecks/{resource}/testIamPermissions")
126635	urls += "?" + c.urlParams_.Encode()
126636	req, err := http.NewRequest("POST", urls, body)
126637	if err != nil {
126638		return nil, err
126639	}
126640	req.Header = reqHeaders
126641	googleapi.Expand(req.URL, map[string]string{
126642		"project":  c.project,
126643		"region":   c.region,
126644		"resource": c.resource,
126645	})
126646	return gensupport.SendRequest(c.ctx_, c.s.client, req)
126647}
126648
126649// Do executes the "compute.regionHealthChecks.testIamPermissions" call.
126650// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
126651// non-2xx status code is an error. Response headers are in either
126652// *TestPermissionsResponse.ServerResponse.Header or (if a response was
126653// returned at all) in error.(*googleapi.Error).Header. Use
126654// googleapi.IsNotModified to check whether the returned error was
126655// because http.StatusNotModified was returned.
126656func (c *RegionHealthChecksTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
126657	gensupport.SetOptions(c.urlParams_, opts...)
126658	res, err := c.doRequest("json")
126659	if res != nil && res.StatusCode == http.StatusNotModified {
126660		if res.Body != nil {
126661			res.Body.Close()
126662		}
126663		return nil, &googleapi.Error{
126664			Code:   res.StatusCode,
126665			Header: res.Header,
126666		}
126667	}
126668	if err != nil {
126669		return nil, err
126670	}
126671	defer googleapi.CloseBody(res)
126672	if err := googleapi.CheckResponse(res); err != nil {
126673		return nil, err
126674	}
126675	ret := &TestPermissionsResponse{
126676		ServerResponse: googleapi.ServerResponse{
126677			Header:         res.Header,
126678			HTTPStatusCode: res.StatusCode,
126679		},
126680	}
126681	target := &ret
126682	if err := gensupport.DecodeResponse(target, res); err != nil {
126683		return nil, err
126684	}
126685	return ret, nil
126686	// {
126687	//   "description": "Returns permissions that a caller has on the specified resource. (== suppress_warning http-rest-shadowed ==)",
126688	//   "httpMethod": "POST",
126689	//   "id": "compute.regionHealthChecks.testIamPermissions",
126690	//   "parameterOrder": [
126691	//     "project",
126692	//     "region",
126693	//     "resource"
126694	//   ],
126695	//   "parameters": {
126696	//     "project": {
126697	//       "description": "Project ID for this request.",
126698	//       "location": "path",
126699	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
126700	//       "required": true,
126701	//       "type": "string"
126702	//     },
126703	//     "region": {
126704	//       "description": "The name of the region for this request.",
126705	//       "location": "path",
126706	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
126707	//       "required": true,
126708	//       "type": "string"
126709	//     },
126710	//     "resource": {
126711	//       "description": "Name or id of the resource for this request.",
126712	//       "location": "path",
126713	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
126714	//       "required": true,
126715	//       "type": "string"
126716	//     }
126717	//   },
126718	//   "path": "{project}/regions/{region}/healthChecks/{resource}/testIamPermissions",
126719	//   "request": {
126720	//     "$ref": "TestPermissionsRequest"
126721	//   },
126722	//   "response": {
126723	//     "$ref": "TestPermissionsResponse"
126724	//   },
126725	//   "scopes": [
126726	//     "https://www.googleapis.com/auth/cloud-platform",
126727	//     "https://www.googleapis.com/auth/compute",
126728	//     "https://www.googleapis.com/auth/compute.readonly"
126729	//   ]
126730	// }
126731
126732}
126733
126734// method id "compute.regionHealthChecks.update":
126735
126736type RegionHealthChecksUpdateCall struct {
126737	s           *Service
126738	project     string
126739	region      string
126740	healthCheck string
126741	healthcheck *HealthCheck
126742	urlParams_  gensupport.URLParams
126743	ctx_        context.Context
126744	header_     http.Header
126745}
126746
126747// Update: Updates a HealthCheck resource in the specified project using
126748// the data included in the request. (== suppress_warning
126749// http-rest-shadowed ==)
126750func (r *RegionHealthChecksService) Update(project string, region string, healthCheck string, healthcheck *HealthCheck) *RegionHealthChecksUpdateCall {
126751	c := &RegionHealthChecksUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
126752	c.project = project
126753	c.region = region
126754	c.healthCheck = healthCheck
126755	c.healthcheck = healthcheck
126756	return c
126757}
126758
126759// RequestId sets the optional parameter "requestId": An optional
126760// request ID to identify requests. Specify a unique request ID so that
126761// if you must retry your request, the server will know to ignore the
126762// request if it has already been completed.
126763//
126764// For example, consider a situation where you make an initial request
126765// and the request times out. If you make the request again with the
126766// same request ID, the server can check if original operation with the
126767// same request ID was received, and if so, will ignore the second
126768// request. This prevents clients from accidentally creating duplicate
126769// commitments.
126770//
126771// The request ID must be a valid UUID with the exception that zero UUID
126772// is not supported (00000000-0000-0000-0000-000000000000).
126773func (c *RegionHealthChecksUpdateCall) RequestId(requestId string) *RegionHealthChecksUpdateCall {
126774	c.urlParams_.Set("requestId", requestId)
126775	return c
126776}
126777
126778// Fields allows partial responses to be retrieved. See
126779// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
126780// for more information.
126781func (c *RegionHealthChecksUpdateCall) Fields(s ...googleapi.Field) *RegionHealthChecksUpdateCall {
126782	c.urlParams_.Set("fields", googleapi.CombineFields(s))
126783	return c
126784}
126785
126786// Context sets the context to be used in this call's Do method. Any
126787// pending HTTP request will be aborted if the provided context is
126788// canceled.
126789func (c *RegionHealthChecksUpdateCall) Context(ctx context.Context) *RegionHealthChecksUpdateCall {
126790	c.ctx_ = ctx
126791	return c
126792}
126793
126794// Header returns an http.Header that can be modified by the caller to
126795// add HTTP headers to the request.
126796func (c *RegionHealthChecksUpdateCall) Header() http.Header {
126797	if c.header_ == nil {
126798		c.header_ = make(http.Header)
126799	}
126800	return c.header_
126801}
126802
126803func (c *RegionHealthChecksUpdateCall) doRequest(alt string) (*http.Response, error) {
126804	reqHeaders := make(http.Header)
126805	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
126806	for k, v := range c.header_ {
126807		reqHeaders[k] = v
126808	}
126809	reqHeaders.Set("User-Agent", c.s.userAgent())
126810	var body io.Reader = nil
126811	body, err := googleapi.WithoutDataWrapper.JSONReader(c.healthcheck)
126812	if err != nil {
126813		return nil, err
126814	}
126815	reqHeaders.Set("Content-Type", "application/json")
126816	c.urlParams_.Set("alt", alt)
126817	c.urlParams_.Set("prettyPrint", "false")
126818	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/healthChecks/{healthCheck}")
126819	urls += "?" + c.urlParams_.Encode()
126820	req, err := http.NewRequest("PUT", urls, body)
126821	if err != nil {
126822		return nil, err
126823	}
126824	req.Header = reqHeaders
126825	googleapi.Expand(req.URL, map[string]string{
126826		"project":     c.project,
126827		"region":      c.region,
126828		"healthCheck": c.healthCheck,
126829	})
126830	return gensupport.SendRequest(c.ctx_, c.s.client, req)
126831}
126832
126833// Do executes the "compute.regionHealthChecks.update" call.
126834// Exactly one of *Operation or error will be non-nil. Any non-2xx
126835// status code is an error. Response headers are in either
126836// *Operation.ServerResponse.Header or (if a response was returned at
126837// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
126838// to check whether the returned error was because
126839// http.StatusNotModified was returned.
126840func (c *RegionHealthChecksUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
126841	gensupport.SetOptions(c.urlParams_, opts...)
126842	res, err := c.doRequest("json")
126843	if res != nil && res.StatusCode == http.StatusNotModified {
126844		if res.Body != nil {
126845			res.Body.Close()
126846		}
126847		return nil, &googleapi.Error{
126848			Code:   res.StatusCode,
126849			Header: res.Header,
126850		}
126851	}
126852	if err != nil {
126853		return nil, err
126854	}
126855	defer googleapi.CloseBody(res)
126856	if err := googleapi.CheckResponse(res); err != nil {
126857		return nil, err
126858	}
126859	ret := &Operation{
126860		ServerResponse: googleapi.ServerResponse{
126861			Header:         res.Header,
126862			HTTPStatusCode: res.StatusCode,
126863		},
126864	}
126865	target := &ret
126866	if err := gensupport.DecodeResponse(target, res); err != nil {
126867		return nil, err
126868	}
126869	return ret, nil
126870	// {
126871	//   "description": "Updates a HealthCheck resource in the specified project using the data included in the request. (== suppress_warning http-rest-shadowed ==)",
126872	//   "httpMethod": "PUT",
126873	//   "id": "compute.regionHealthChecks.update",
126874	//   "parameterOrder": [
126875	//     "project",
126876	//     "region",
126877	//     "healthCheck"
126878	//   ],
126879	//   "parameters": {
126880	//     "healthCheck": {
126881	//       "description": "Name of the HealthCheck resource to update.",
126882	//       "location": "path",
126883	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
126884	//       "required": true,
126885	//       "type": "string"
126886	//     },
126887	//     "project": {
126888	//       "description": "Project ID for this request.",
126889	//       "location": "path",
126890	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
126891	//       "required": true,
126892	//       "type": "string"
126893	//     },
126894	//     "region": {
126895	//       "description": "Name of the region scoping this request.",
126896	//       "location": "path",
126897	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
126898	//       "required": true,
126899	//       "type": "string"
126900	//     },
126901	//     "requestId": {
126902	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
126903	//       "location": "query",
126904	//       "type": "string"
126905	//     }
126906	//   },
126907	//   "path": "{project}/regions/{region}/healthChecks/{healthCheck}",
126908	//   "request": {
126909	//     "$ref": "HealthCheck"
126910	//   },
126911	//   "response": {
126912	//     "$ref": "Operation"
126913	//   },
126914	//   "scopes": [
126915	//     "https://www.googleapis.com/auth/cloud-platform",
126916	//     "https://www.googleapis.com/auth/compute"
126917	//   ]
126918	// }
126919
126920}
126921
126922// method id "compute.regionInstanceGroupManagers.abandonInstances":
126923
126924type RegionInstanceGroupManagersAbandonInstancesCall struct {
126925	s                                                  *Service
126926	project                                            string
126927	region                                             string
126928	instanceGroupManager                               string
126929	regioninstancegroupmanagersabandoninstancesrequest *RegionInstanceGroupManagersAbandonInstancesRequest
126930	urlParams_                                         gensupport.URLParams
126931	ctx_                                               context.Context
126932	header_                                            http.Header
126933}
126934
126935// AbandonInstances: Flags the specified instances to be immediately
126936// removed from the managed instance group. Abandoning an instance does
126937// not delete the instance, but it does remove the instance from any
126938// target pools that are applied by the managed instance group. This
126939// method reduces the targetSize of the managed instance group by the
126940// number of instances that you abandon. This operation is marked as
126941// DONE when the action is scheduled even if the instances have not yet
126942// been removed from the group. You must separately verify the status of
126943// the abandoning action with the listmanagedinstances method.
126944//
126945// If the group is part of a backend service that has enabled connection
126946// draining, it can take up to 60 seconds after the connection draining
126947// duration has elapsed before the VM instance is removed or
126948// deleted.
126949//
126950// You can specify a maximum of 1000 instances with this method per
126951// request. (== suppress_warning http-rest-shadowed ==)
126952func (r *RegionInstanceGroupManagersService) AbandonInstances(project string, region string, instanceGroupManager string, regioninstancegroupmanagersabandoninstancesrequest *RegionInstanceGroupManagersAbandonInstancesRequest) *RegionInstanceGroupManagersAbandonInstancesCall {
126953	c := &RegionInstanceGroupManagersAbandonInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
126954	c.project = project
126955	c.region = region
126956	c.instanceGroupManager = instanceGroupManager
126957	c.regioninstancegroupmanagersabandoninstancesrequest = regioninstancegroupmanagersabandoninstancesrequest
126958	return c
126959}
126960
126961// RequestId sets the optional parameter "requestId": An optional
126962// request ID to identify requests. Specify a unique request ID so that
126963// if you must retry your request, the server will know to ignore the
126964// request if it has already been completed.
126965//
126966// For example, consider a situation where you make an initial request
126967// and the request times out. If you make the request again with the
126968// same request ID, the server can check if original operation with the
126969// same request ID was received, and if so, will ignore the second
126970// request. This prevents clients from accidentally creating duplicate
126971// commitments.
126972//
126973// The request ID must be a valid UUID with the exception that zero UUID
126974// is not supported (00000000-0000-0000-0000-000000000000).
126975func (c *RegionInstanceGroupManagersAbandonInstancesCall) RequestId(requestId string) *RegionInstanceGroupManagersAbandonInstancesCall {
126976	c.urlParams_.Set("requestId", requestId)
126977	return c
126978}
126979
126980// Fields allows partial responses to be retrieved. See
126981// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
126982// for more information.
126983func (c *RegionInstanceGroupManagersAbandonInstancesCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersAbandonInstancesCall {
126984	c.urlParams_.Set("fields", googleapi.CombineFields(s))
126985	return c
126986}
126987
126988// Context sets the context to be used in this call's Do method. Any
126989// pending HTTP request will be aborted if the provided context is
126990// canceled.
126991func (c *RegionInstanceGroupManagersAbandonInstancesCall) Context(ctx context.Context) *RegionInstanceGroupManagersAbandonInstancesCall {
126992	c.ctx_ = ctx
126993	return c
126994}
126995
126996// Header returns an http.Header that can be modified by the caller to
126997// add HTTP headers to the request.
126998func (c *RegionInstanceGroupManagersAbandonInstancesCall) Header() http.Header {
126999	if c.header_ == nil {
127000		c.header_ = make(http.Header)
127001	}
127002	return c.header_
127003}
127004
127005func (c *RegionInstanceGroupManagersAbandonInstancesCall) doRequest(alt string) (*http.Response, error) {
127006	reqHeaders := make(http.Header)
127007	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
127008	for k, v := range c.header_ {
127009		reqHeaders[k] = v
127010	}
127011	reqHeaders.Set("User-Agent", c.s.userAgent())
127012	var body io.Reader = nil
127013	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagersabandoninstancesrequest)
127014	if err != nil {
127015		return nil, err
127016	}
127017	reqHeaders.Set("Content-Type", "application/json")
127018	c.urlParams_.Set("alt", alt)
127019	c.urlParams_.Set("prettyPrint", "false")
127020	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/abandonInstances")
127021	urls += "?" + c.urlParams_.Encode()
127022	req, err := http.NewRequest("POST", urls, body)
127023	if err != nil {
127024		return nil, err
127025	}
127026	req.Header = reqHeaders
127027	googleapi.Expand(req.URL, map[string]string{
127028		"project":              c.project,
127029		"region":               c.region,
127030		"instanceGroupManager": c.instanceGroupManager,
127031	})
127032	return gensupport.SendRequest(c.ctx_, c.s.client, req)
127033}
127034
127035// Do executes the "compute.regionInstanceGroupManagers.abandonInstances" call.
127036// Exactly one of *Operation or error will be non-nil. Any non-2xx
127037// status code is an error. Response headers are in either
127038// *Operation.ServerResponse.Header or (if a response was returned at
127039// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
127040// to check whether the returned error was because
127041// http.StatusNotModified was returned.
127042func (c *RegionInstanceGroupManagersAbandonInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
127043	gensupport.SetOptions(c.urlParams_, opts...)
127044	res, err := c.doRequest("json")
127045	if res != nil && res.StatusCode == http.StatusNotModified {
127046		if res.Body != nil {
127047			res.Body.Close()
127048		}
127049		return nil, &googleapi.Error{
127050			Code:   res.StatusCode,
127051			Header: res.Header,
127052		}
127053	}
127054	if err != nil {
127055		return nil, err
127056	}
127057	defer googleapi.CloseBody(res)
127058	if err := googleapi.CheckResponse(res); err != nil {
127059		return nil, err
127060	}
127061	ret := &Operation{
127062		ServerResponse: googleapi.ServerResponse{
127063			Header:         res.Header,
127064			HTTPStatusCode: res.StatusCode,
127065		},
127066	}
127067	target := &ret
127068	if err := gensupport.DecodeResponse(target, res); err != nil {
127069		return nil, err
127070	}
127071	return ret, nil
127072	// {
127073	//   "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. (== suppress_warning http-rest-shadowed ==)",
127074	//   "httpMethod": "POST",
127075	//   "id": "compute.regionInstanceGroupManagers.abandonInstances",
127076	//   "parameterOrder": [
127077	//     "project",
127078	//     "region",
127079	//     "instanceGroupManager"
127080	//   ],
127081	//   "parameters": {
127082	//     "instanceGroupManager": {
127083	//       "description": "Name of the managed instance group.",
127084	//       "location": "path",
127085	//       "required": true,
127086	//       "type": "string"
127087	//     },
127088	//     "project": {
127089	//       "description": "Project ID for this request.",
127090	//       "location": "path",
127091	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
127092	//       "required": true,
127093	//       "type": "string"
127094	//     },
127095	//     "region": {
127096	//       "description": "Name of the region scoping this request.",
127097	//       "location": "path",
127098	//       "required": true,
127099	//       "type": "string"
127100	//     },
127101	//     "requestId": {
127102	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
127103	//       "location": "query",
127104	//       "type": "string"
127105	//     }
127106	//   },
127107	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/abandonInstances",
127108	//   "request": {
127109	//     "$ref": "RegionInstanceGroupManagersAbandonInstancesRequest"
127110	//   },
127111	//   "response": {
127112	//     "$ref": "Operation"
127113	//   },
127114	//   "scopes": [
127115	//     "https://www.googleapis.com/auth/cloud-platform",
127116	//     "https://www.googleapis.com/auth/compute"
127117	//   ]
127118	// }
127119
127120}
127121
127122// method id "compute.regionInstanceGroupManagers.applyUpdatesToInstances":
127123
127124type RegionInstanceGroupManagersApplyUpdatesToInstancesCall struct {
127125	s                                              *Service
127126	project                                        string
127127	region                                         string
127128	instanceGroupManager                           string
127129	regioninstancegroupmanagersapplyupdatesrequest *RegionInstanceGroupManagersApplyUpdatesRequest
127130	urlParams_                                     gensupport.URLParams
127131	ctx_                                           context.Context
127132	header_                                        http.Header
127133}
127134
127135// ApplyUpdatesToInstances: Apply updates to selected instances the
127136// managed instance group. (== suppress_warning http-rest-shadowed ==)
127137func (r *RegionInstanceGroupManagersService) ApplyUpdatesToInstances(project string, region string, instanceGroupManager string, regioninstancegroupmanagersapplyupdatesrequest *RegionInstanceGroupManagersApplyUpdatesRequest) *RegionInstanceGroupManagersApplyUpdatesToInstancesCall {
127138	c := &RegionInstanceGroupManagersApplyUpdatesToInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
127139	c.project = project
127140	c.region = region
127141	c.instanceGroupManager = instanceGroupManager
127142	c.regioninstancegroupmanagersapplyupdatesrequest = regioninstancegroupmanagersapplyupdatesrequest
127143	return c
127144}
127145
127146// Fields allows partial responses to be retrieved. See
127147// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
127148// for more information.
127149func (c *RegionInstanceGroupManagersApplyUpdatesToInstancesCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersApplyUpdatesToInstancesCall {
127150	c.urlParams_.Set("fields", googleapi.CombineFields(s))
127151	return c
127152}
127153
127154// Context sets the context to be used in this call's Do method. Any
127155// pending HTTP request will be aborted if the provided context is
127156// canceled.
127157func (c *RegionInstanceGroupManagersApplyUpdatesToInstancesCall) Context(ctx context.Context) *RegionInstanceGroupManagersApplyUpdatesToInstancesCall {
127158	c.ctx_ = ctx
127159	return c
127160}
127161
127162// Header returns an http.Header that can be modified by the caller to
127163// add HTTP headers to the request.
127164func (c *RegionInstanceGroupManagersApplyUpdatesToInstancesCall) Header() http.Header {
127165	if c.header_ == nil {
127166		c.header_ = make(http.Header)
127167	}
127168	return c.header_
127169}
127170
127171func (c *RegionInstanceGroupManagersApplyUpdatesToInstancesCall) doRequest(alt string) (*http.Response, error) {
127172	reqHeaders := make(http.Header)
127173	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
127174	for k, v := range c.header_ {
127175		reqHeaders[k] = v
127176	}
127177	reqHeaders.Set("User-Agent", c.s.userAgent())
127178	var body io.Reader = nil
127179	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagersapplyupdatesrequest)
127180	if err != nil {
127181		return nil, err
127182	}
127183	reqHeaders.Set("Content-Type", "application/json")
127184	c.urlParams_.Set("alt", alt)
127185	c.urlParams_.Set("prettyPrint", "false")
127186	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/applyUpdatesToInstances")
127187	urls += "?" + c.urlParams_.Encode()
127188	req, err := http.NewRequest("POST", urls, body)
127189	if err != nil {
127190		return nil, err
127191	}
127192	req.Header = reqHeaders
127193	googleapi.Expand(req.URL, map[string]string{
127194		"project":              c.project,
127195		"region":               c.region,
127196		"instanceGroupManager": c.instanceGroupManager,
127197	})
127198	return gensupport.SendRequest(c.ctx_, c.s.client, req)
127199}
127200
127201// Do executes the "compute.regionInstanceGroupManagers.applyUpdatesToInstances" call.
127202// Exactly one of *Operation or error will be non-nil. Any non-2xx
127203// status code is an error. Response headers are in either
127204// *Operation.ServerResponse.Header or (if a response was returned at
127205// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
127206// to check whether the returned error was because
127207// http.StatusNotModified was returned.
127208func (c *RegionInstanceGroupManagersApplyUpdatesToInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
127209	gensupport.SetOptions(c.urlParams_, opts...)
127210	res, err := c.doRequest("json")
127211	if res != nil && res.StatusCode == http.StatusNotModified {
127212		if res.Body != nil {
127213			res.Body.Close()
127214		}
127215		return nil, &googleapi.Error{
127216			Code:   res.StatusCode,
127217			Header: res.Header,
127218		}
127219	}
127220	if err != nil {
127221		return nil, err
127222	}
127223	defer googleapi.CloseBody(res)
127224	if err := googleapi.CheckResponse(res); err != nil {
127225		return nil, err
127226	}
127227	ret := &Operation{
127228		ServerResponse: googleapi.ServerResponse{
127229			Header:         res.Header,
127230			HTTPStatusCode: res.StatusCode,
127231		},
127232	}
127233	target := &ret
127234	if err := gensupport.DecodeResponse(target, res); err != nil {
127235		return nil, err
127236	}
127237	return ret, nil
127238	// {
127239	//   "description": "Apply updates to selected instances the managed instance group. (== suppress_warning http-rest-shadowed ==)",
127240	//   "httpMethod": "POST",
127241	//   "id": "compute.regionInstanceGroupManagers.applyUpdatesToInstances",
127242	//   "parameterOrder": [
127243	//     "project",
127244	//     "region",
127245	//     "instanceGroupManager"
127246	//   ],
127247	//   "parameters": {
127248	//     "instanceGroupManager": {
127249	//       "description": "The name of the managed instance group, should conform to RFC1035.",
127250	//       "location": "path",
127251	//       "required": true,
127252	//       "type": "string"
127253	//     },
127254	//     "project": {
127255	//       "description": "Project ID for this request.",
127256	//       "location": "path",
127257	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
127258	//       "required": true,
127259	//       "type": "string"
127260	//     },
127261	//     "region": {
127262	//       "description": "Name of the region scoping this request, should conform to RFC1035.",
127263	//       "location": "path",
127264	//       "required": true,
127265	//       "type": "string"
127266	//     }
127267	//   },
127268	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/applyUpdatesToInstances",
127269	//   "request": {
127270	//     "$ref": "RegionInstanceGroupManagersApplyUpdatesRequest"
127271	//   },
127272	//   "response": {
127273	//     "$ref": "Operation"
127274	//   },
127275	//   "scopes": [
127276	//     "https://www.googleapis.com/auth/cloud-platform",
127277	//     "https://www.googleapis.com/auth/compute"
127278	//   ]
127279	// }
127280
127281}
127282
127283// method id "compute.regionInstanceGroupManagers.createInstances":
127284
127285type RegionInstanceGroupManagersCreateInstancesCall struct {
127286	s                                                 *Service
127287	project                                           string
127288	region                                            string
127289	instanceGroupManager                              string
127290	regioninstancegroupmanagerscreateinstancesrequest *RegionInstanceGroupManagersCreateInstancesRequest
127291	urlParams_                                        gensupport.URLParams
127292	ctx_                                              context.Context
127293	header_                                           http.Header
127294}
127295
127296// CreateInstances: Creates instances with per-instance configs in this
127297// regional managed instance group. Instances are created using the
127298// current instance template. The create instances operation is marked
127299// DONE if the createInstances request is successful. The underlying
127300// actions take additional time. You must separately verify the status
127301// of the creating or actions with the listmanagedinstances method. (==
127302// suppress_warning http-rest-shadowed ==)
127303func (r *RegionInstanceGroupManagersService) CreateInstances(project string, region string, instanceGroupManager string, regioninstancegroupmanagerscreateinstancesrequest *RegionInstanceGroupManagersCreateInstancesRequest) *RegionInstanceGroupManagersCreateInstancesCall {
127304	c := &RegionInstanceGroupManagersCreateInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
127305	c.project = project
127306	c.region = region
127307	c.instanceGroupManager = instanceGroupManager
127308	c.regioninstancegroupmanagerscreateinstancesrequest = regioninstancegroupmanagerscreateinstancesrequest
127309	return c
127310}
127311
127312// RequestId sets the optional parameter "requestId": An optional
127313// request ID to identify requests. Specify a unique request ID so that
127314// if you must retry your request, the server will know to ignore the
127315// request if it has already been completed.
127316//
127317// For example, consider a situation where you make an initial request
127318// and the request times out. If you make the request again with the
127319// same request ID, the server can check if original operation with the
127320// same request ID was received, and if so, will ignore the second
127321// request.
127322//
127323// The request ID must be a valid UUID with the exception that zero UUID
127324// is not supported (00000000-0000-0000-0000-000000000000).
127325func (c *RegionInstanceGroupManagersCreateInstancesCall) RequestId(requestId string) *RegionInstanceGroupManagersCreateInstancesCall {
127326	c.urlParams_.Set("requestId", requestId)
127327	return c
127328}
127329
127330// Fields allows partial responses to be retrieved. See
127331// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
127332// for more information.
127333func (c *RegionInstanceGroupManagersCreateInstancesCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersCreateInstancesCall {
127334	c.urlParams_.Set("fields", googleapi.CombineFields(s))
127335	return c
127336}
127337
127338// Context sets the context to be used in this call's Do method. Any
127339// pending HTTP request will be aborted if the provided context is
127340// canceled.
127341func (c *RegionInstanceGroupManagersCreateInstancesCall) Context(ctx context.Context) *RegionInstanceGroupManagersCreateInstancesCall {
127342	c.ctx_ = ctx
127343	return c
127344}
127345
127346// Header returns an http.Header that can be modified by the caller to
127347// add HTTP headers to the request.
127348func (c *RegionInstanceGroupManagersCreateInstancesCall) Header() http.Header {
127349	if c.header_ == nil {
127350		c.header_ = make(http.Header)
127351	}
127352	return c.header_
127353}
127354
127355func (c *RegionInstanceGroupManagersCreateInstancesCall) doRequest(alt string) (*http.Response, error) {
127356	reqHeaders := make(http.Header)
127357	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
127358	for k, v := range c.header_ {
127359		reqHeaders[k] = v
127360	}
127361	reqHeaders.Set("User-Agent", c.s.userAgent())
127362	var body io.Reader = nil
127363	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagerscreateinstancesrequest)
127364	if err != nil {
127365		return nil, err
127366	}
127367	reqHeaders.Set("Content-Type", "application/json")
127368	c.urlParams_.Set("alt", alt)
127369	c.urlParams_.Set("prettyPrint", "false")
127370	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/createInstances")
127371	urls += "?" + c.urlParams_.Encode()
127372	req, err := http.NewRequest("POST", urls, body)
127373	if err != nil {
127374		return nil, err
127375	}
127376	req.Header = reqHeaders
127377	googleapi.Expand(req.URL, map[string]string{
127378		"project":              c.project,
127379		"region":               c.region,
127380		"instanceGroupManager": c.instanceGroupManager,
127381	})
127382	return gensupport.SendRequest(c.ctx_, c.s.client, req)
127383}
127384
127385// Do executes the "compute.regionInstanceGroupManagers.createInstances" call.
127386// Exactly one of *Operation or error will be non-nil. Any non-2xx
127387// status code is an error. Response headers are in either
127388// *Operation.ServerResponse.Header or (if a response was returned at
127389// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
127390// to check whether the returned error was because
127391// http.StatusNotModified was returned.
127392func (c *RegionInstanceGroupManagersCreateInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
127393	gensupport.SetOptions(c.urlParams_, opts...)
127394	res, err := c.doRequest("json")
127395	if res != nil && res.StatusCode == http.StatusNotModified {
127396		if res.Body != nil {
127397			res.Body.Close()
127398		}
127399		return nil, &googleapi.Error{
127400			Code:   res.StatusCode,
127401			Header: res.Header,
127402		}
127403	}
127404	if err != nil {
127405		return nil, err
127406	}
127407	defer googleapi.CloseBody(res)
127408	if err := googleapi.CheckResponse(res); err != nil {
127409		return nil, err
127410	}
127411	ret := &Operation{
127412		ServerResponse: googleapi.ServerResponse{
127413			Header:         res.Header,
127414			HTTPStatusCode: res.StatusCode,
127415		},
127416	}
127417	target := &ret
127418	if err := gensupport.DecodeResponse(target, res); err != nil {
127419		return nil, err
127420	}
127421	return ret, nil
127422	// {
127423	//   "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. (== suppress_warning http-rest-shadowed ==)",
127424	//   "httpMethod": "POST",
127425	//   "id": "compute.regionInstanceGroupManagers.createInstances",
127426	//   "parameterOrder": [
127427	//     "project",
127428	//     "region",
127429	//     "instanceGroupManager"
127430	//   ],
127431	//   "parameters": {
127432	//     "instanceGroupManager": {
127433	//       "description": "The name of the managed instance group. It should conform to RFC1035.",
127434	//       "location": "path",
127435	//       "required": true,
127436	//       "type": "string"
127437	//     },
127438	//     "project": {
127439	//       "description": "Project ID for this request.",
127440	//       "location": "path",
127441	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
127442	//       "required": true,
127443	//       "type": "string"
127444	//     },
127445	//     "region": {
127446	//       "description": "The name of the region where the managed instance group is located. It should conform to RFC1035.",
127447	//       "location": "path",
127448	//       "required": true,
127449	//       "type": "string"
127450	//     },
127451	//     "requestId": {
127452	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same 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).",
127453	//       "location": "query",
127454	//       "type": "string"
127455	//     }
127456	//   },
127457	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/createInstances",
127458	//   "request": {
127459	//     "$ref": "RegionInstanceGroupManagersCreateInstancesRequest"
127460	//   },
127461	//   "response": {
127462	//     "$ref": "Operation"
127463	//   },
127464	//   "scopes": [
127465	//     "https://www.googleapis.com/auth/cloud-platform",
127466	//     "https://www.googleapis.com/auth/compute"
127467	//   ]
127468	// }
127469
127470}
127471
127472// method id "compute.regionInstanceGroupManagers.delete":
127473
127474type RegionInstanceGroupManagersDeleteCall struct {
127475	s                    *Service
127476	project              string
127477	region               string
127478	instanceGroupManager string
127479	urlParams_           gensupport.URLParams
127480	ctx_                 context.Context
127481	header_              http.Header
127482}
127483
127484// Delete: Deletes the specified managed instance group and all of the
127485// instances in that group. (== suppress_warning http-rest-shadowed ==)
127486func (r *RegionInstanceGroupManagersService) Delete(project string, region string, instanceGroupManager string) *RegionInstanceGroupManagersDeleteCall {
127487	c := &RegionInstanceGroupManagersDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
127488	c.project = project
127489	c.region = region
127490	c.instanceGroupManager = instanceGroupManager
127491	return c
127492}
127493
127494// RequestId sets the optional parameter "requestId": An optional
127495// request ID to identify requests. Specify a unique request ID so that
127496// if you must retry your request, the server will know to ignore the
127497// request if it has already been completed.
127498//
127499// For example, consider a situation where you make an initial request
127500// and the request times out. If you make the request again with the
127501// same request ID, the server can check if original operation with the
127502// same request ID was received, and if so, will ignore the second
127503// request. This prevents clients from accidentally creating duplicate
127504// commitments.
127505//
127506// The request ID must be a valid UUID with the exception that zero UUID
127507// is not supported (00000000-0000-0000-0000-000000000000).
127508func (c *RegionInstanceGroupManagersDeleteCall) RequestId(requestId string) *RegionInstanceGroupManagersDeleteCall {
127509	c.urlParams_.Set("requestId", requestId)
127510	return c
127511}
127512
127513// Fields allows partial responses to be retrieved. See
127514// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
127515// for more information.
127516func (c *RegionInstanceGroupManagersDeleteCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersDeleteCall {
127517	c.urlParams_.Set("fields", googleapi.CombineFields(s))
127518	return c
127519}
127520
127521// Context sets the context to be used in this call's Do method. Any
127522// pending HTTP request will be aborted if the provided context is
127523// canceled.
127524func (c *RegionInstanceGroupManagersDeleteCall) Context(ctx context.Context) *RegionInstanceGroupManagersDeleteCall {
127525	c.ctx_ = ctx
127526	return c
127527}
127528
127529// Header returns an http.Header that can be modified by the caller to
127530// add HTTP headers to the request.
127531func (c *RegionInstanceGroupManagersDeleteCall) Header() http.Header {
127532	if c.header_ == nil {
127533		c.header_ = make(http.Header)
127534	}
127535	return c.header_
127536}
127537
127538func (c *RegionInstanceGroupManagersDeleteCall) doRequest(alt string) (*http.Response, error) {
127539	reqHeaders := make(http.Header)
127540	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
127541	for k, v := range c.header_ {
127542		reqHeaders[k] = v
127543	}
127544	reqHeaders.Set("User-Agent", c.s.userAgent())
127545	var body io.Reader = nil
127546	c.urlParams_.Set("alt", alt)
127547	c.urlParams_.Set("prettyPrint", "false")
127548	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}")
127549	urls += "?" + c.urlParams_.Encode()
127550	req, err := http.NewRequest("DELETE", urls, body)
127551	if err != nil {
127552		return nil, err
127553	}
127554	req.Header = reqHeaders
127555	googleapi.Expand(req.URL, map[string]string{
127556		"project":              c.project,
127557		"region":               c.region,
127558		"instanceGroupManager": c.instanceGroupManager,
127559	})
127560	return gensupport.SendRequest(c.ctx_, c.s.client, req)
127561}
127562
127563// Do executes the "compute.regionInstanceGroupManagers.delete" call.
127564// Exactly one of *Operation or error will be non-nil. Any non-2xx
127565// status code is an error. Response headers are in either
127566// *Operation.ServerResponse.Header or (if a response was returned at
127567// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
127568// to check whether the returned error was because
127569// http.StatusNotModified was returned.
127570func (c *RegionInstanceGroupManagersDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
127571	gensupport.SetOptions(c.urlParams_, opts...)
127572	res, err := c.doRequest("json")
127573	if res != nil && res.StatusCode == http.StatusNotModified {
127574		if res.Body != nil {
127575			res.Body.Close()
127576		}
127577		return nil, &googleapi.Error{
127578			Code:   res.StatusCode,
127579			Header: res.Header,
127580		}
127581	}
127582	if err != nil {
127583		return nil, err
127584	}
127585	defer googleapi.CloseBody(res)
127586	if err := googleapi.CheckResponse(res); err != nil {
127587		return nil, err
127588	}
127589	ret := &Operation{
127590		ServerResponse: googleapi.ServerResponse{
127591			Header:         res.Header,
127592			HTTPStatusCode: res.StatusCode,
127593		},
127594	}
127595	target := &ret
127596	if err := gensupport.DecodeResponse(target, res); err != nil {
127597		return nil, err
127598	}
127599	return ret, nil
127600	// {
127601	//   "description": "Deletes the specified managed instance group and all of the instances in that group. (== suppress_warning http-rest-shadowed ==)",
127602	//   "httpMethod": "DELETE",
127603	//   "id": "compute.regionInstanceGroupManagers.delete",
127604	//   "parameterOrder": [
127605	//     "project",
127606	//     "region",
127607	//     "instanceGroupManager"
127608	//   ],
127609	//   "parameters": {
127610	//     "instanceGroupManager": {
127611	//       "description": "Name of the managed instance group to delete.",
127612	//       "location": "path",
127613	//       "required": true,
127614	//       "type": "string"
127615	//     },
127616	//     "project": {
127617	//       "description": "Project ID for this request.",
127618	//       "location": "path",
127619	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
127620	//       "required": true,
127621	//       "type": "string"
127622	//     },
127623	//     "region": {
127624	//       "description": "Name of the region scoping this request.",
127625	//       "location": "path",
127626	//       "required": true,
127627	//       "type": "string"
127628	//     },
127629	//     "requestId": {
127630	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
127631	//       "location": "query",
127632	//       "type": "string"
127633	//     }
127634	//   },
127635	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}",
127636	//   "response": {
127637	//     "$ref": "Operation"
127638	//   },
127639	//   "scopes": [
127640	//     "https://www.googleapis.com/auth/cloud-platform",
127641	//     "https://www.googleapis.com/auth/compute"
127642	//   ]
127643	// }
127644
127645}
127646
127647// method id "compute.regionInstanceGroupManagers.deleteInstances":
127648
127649type RegionInstanceGroupManagersDeleteInstancesCall struct {
127650	s                                                 *Service
127651	project                                           string
127652	region                                            string
127653	instanceGroupManager                              string
127654	regioninstancegroupmanagersdeleteinstancesrequest *RegionInstanceGroupManagersDeleteInstancesRequest
127655	urlParams_                                        gensupport.URLParams
127656	ctx_                                              context.Context
127657	header_                                           http.Header
127658}
127659
127660// DeleteInstances: Flags the specified instances in the managed
127661// instance group to be immediately deleted. The instances are also
127662// removed from any target pools of which they were a member. This
127663// method reduces the targetSize of the managed instance group by the
127664// number of instances that you delete. The deleteInstances operation is
127665// marked DONE if the deleteInstances request is successful. The
127666// underlying actions take additional time. You must separately verify
127667// the status of the deleting action with the listmanagedinstances
127668// method.
127669//
127670// If the group is part of a backend service that has enabled connection
127671// draining, it can take up to 60 seconds after the connection draining
127672// duration has elapsed before the VM instance is removed or
127673// deleted.
127674//
127675// You can specify a maximum of 1000 instances with this method per
127676// request. (== suppress_warning http-rest-shadowed ==)
127677func (r *RegionInstanceGroupManagersService) DeleteInstances(project string, region string, instanceGroupManager string, regioninstancegroupmanagersdeleteinstancesrequest *RegionInstanceGroupManagersDeleteInstancesRequest) *RegionInstanceGroupManagersDeleteInstancesCall {
127678	c := &RegionInstanceGroupManagersDeleteInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
127679	c.project = project
127680	c.region = region
127681	c.instanceGroupManager = instanceGroupManager
127682	c.regioninstancegroupmanagersdeleteinstancesrequest = regioninstancegroupmanagersdeleteinstancesrequest
127683	return c
127684}
127685
127686// RequestId sets the optional parameter "requestId": An optional
127687// request ID to identify requests. Specify a unique request ID so that
127688// if you must retry your request, the server will know to ignore the
127689// request if it has already been completed.
127690//
127691// For example, consider a situation where you make an initial request
127692// and the request times out. If you make the request again with the
127693// same request ID, the server can check if original operation with the
127694// same request ID was received, and if so, will ignore the second
127695// request. This prevents clients from accidentally creating duplicate
127696// commitments.
127697//
127698// The request ID must be a valid UUID with the exception that zero UUID
127699// is not supported (00000000-0000-0000-0000-000000000000).
127700func (c *RegionInstanceGroupManagersDeleteInstancesCall) RequestId(requestId string) *RegionInstanceGroupManagersDeleteInstancesCall {
127701	c.urlParams_.Set("requestId", requestId)
127702	return c
127703}
127704
127705// Fields allows partial responses to be retrieved. See
127706// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
127707// for more information.
127708func (c *RegionInstanceGroupManagersDeleteInstancesCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersDeleteInstancesCall {
127709	c.urlParams_.Set("fields", googleapi.CombineFields(s))
127710	return c
127711}
127712
127713// Context sets the context to be used in this call's Do method. Any
127714// pending HTTP request will be aborted if the provided context is
127715// canceled.
127716func (c *RegionInstanceGroupManagersDeleteInstancesCall) Context(ctx context.Context) *RegionInstanceGroupManagersDeleteInstancesCall {
127717	c.ctx_ = ctx
127718	return c
127719}
127720
127721// Header returns an http.Header that can be modified by the caller to
127722// add HTTP headers to the request.
127723func (c *RegionInstanceGroupManagersDeleteInstancesCall) Header() http.Header {
127724	if c.header_ == nil {
127725		c.header_ = make(http.Header)
127726	}
127727	return c.header_
127728}
127729
127730func (c *RegionInstanceGroupManagersDeleteInstancesCall) doRequest(alt string) (*http.Response, error) {
127731	reqHeaders := make(http.Header)
127732	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
127733	for k, v := range c.header_ {
127734		reqHeaders[k] = v
127735	}
127736	reqHeaders.Set("User-Agent", c.s.userAgent())
127737	var body io.Reader = nil
127738	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagersdeleteinstancesrequest)
127739	if err != nil {
127740		return nil, err
127741	}
127742	reqHeaders.Set("Content-Type", "application/json")
127743	c.urlParams_.Set("alt", alt)
127744	c.urlParams_.Set("prettyPrint", "false")
127745	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/deleteInstances")
127746	urls += "?" + c.urlParams_.Encode()
127747	req, err := http.NewRequest("POST", urls, body)
127748	if err != nil {
127749		return nil, err
127750	}
127751	req.Header = reqHeaders
127752	googleapi.Expand(req.URL, map[string]string{
127753		"project":              c.project,
127754		"region":               c.region,
127755		"instanceGroupManager": c.instanceGroupManager,
127756	})
127757	return gensupport.SendRequest(c.ctx_, c.s.client, req)
127758}
127759
127760// Do executes the "compute.regionInstanceGroupManagers.deleteInstances" call.
127761// Exactly one of *Operation or error will be non-nil. Any non-2xx
127762// status code is an error. Response headers are in either
127763// *Operation.ServerResponse.Header or (if a response was returned at
127764// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
127765// to check whether the returned error was because
127766// http.StatusNotModified was returned.
127767func (c *RegionInstanceGroupManagersDeleteInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
127768	gensupport.SetOptions(c.urlParams_, opts...)
127769	res, err := c.doRequest("json")
127770	if res != nil && res.StatusCode == http.StatusNotModified {
127771		if res.Body != nil {
127772			res.Body.Close()
127773		}
127774		return nil, &googleapi.Error{
127775			Code:   res.StatusCode,
127776			Header: res.Header,
127777		}
127778	}
127779	if err != nil {
127780		return nil, err
127781	}
127782	defer googleapi.CloseBody(res)
127783	if err := googleapi.CheckResponse(res); err != nil {
127784		return nil, err
127785	}
127786	ret := &Operation{
127787		ServerResponse: googleapi.ServerResponse{
127788			Header:         res.Header,
127789			HTTPStatusCode: res.StatusCode,
127790		},
127791	}
127792	target := &ret
127793	if err := gensupport.DecodeResponse(target, res); err != nil {
127794		return nil, err
127795	}
127796	return ret, nil
127797	// {
127798	//   "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. (== suppress_warning http-rest-shadowed ==)",
127799	//   "httpMethod": "POST",
127800	//   "id": "compute.regionInstanceGroupManagers.deleteInstances",
127801	//   "parameterOrder": [
127802	//     "project",
127803	//     "region",
127804	//     "instanceGroupManager"
127805	//   ],
127806	//   "parameters": {
127807	//     "instanceGroupManager": {
127808	//       "description": "Name of the managed instance group.",
127809	//       "location": "path",
127810	//       "required": true,
127811	//       "type": "string"
127812	//     },
127813	//     "project": {
127814	//       "description": "Project ID for this request.",
127815	//       "location": "path",
127816	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
127817	//       "required": true,
127818	//       "type": "string"
127819	//     },
127820	//     "region": {
127821	//       "description": "Name of the region scoping this request.",
127822	//       "location": "path",
127823	//       "required": true,
127824	//       "type": "string"
127825	//     },
127826	//     "requestId": {
127827	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
127828	//       "location": "query",
127829	//       "type": "string"
127830	//     }
127831	//   },
127832	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/deleteInstances",
127833	//   "request": {
127834	//     "$ref": "RegionInstanceGroupManagersDeleteInstancesRequest"
127835	//   },
127836	//   "response": {
127837	//     "$ref": "Operation"
127838	//   },
127839	//   "scopes": [
127840	//     "https://www.googleapis.com/auth/cloud-platform",
127841	//     "https://www.googleapis.com/auth/compute"
127842	//   ]
127843	// }
127844
127845}
127846
127847// method id "compute.regionInstanceGroupManagers.deletePerInstanceConfigs":
127848
127849type RegionInstanceGroupManagersDeletePerInstanceConfigsCall struct {
127850	s                                                 *Service
127851	project                                           string
127852	region                                            string
127853	instanceGroupManager                              string
127854	regioninstancegroupmanagerdeleteinstanceconfigreq *RegionInstanceGroupManagerDeleteInstanceConfigReq
127855	urlParams_                                        gensupport.URLParams
127856	ctx_                                              context.Context
127857	header_                                           http.Header
127858}
127859
127860// DeletePerInstanceConfigs: Deletes selected per-instance configs for
127861// the managed instance group. (== suppress_warning http-rest-shadowed
127862// ==)
127863func (r *RegionInstanceGroupManagersService) DeletePerInstanceConfigs(project string, region string, instanceGroupManager string, regioninstancegroupmanagerdeleteinstanceconfigreq *RegionInstanceGroupManagerDeleteInstanceConfigReq) *RegionInstanceGroupManagersDeletePerInstanceConfigsCall {
127864	c := &RegionInstanceGroupManagersDeletePerInstanceConfigsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
127865	c.project = project
127866	c.region = region
127867	c.instanceGroupManager = instanceGroupManager
127868	c.regioninstancegroupmanagerdeleteinstanceconfigreq = regioninstancegroupmanagerdeleteinstanceconfigreq
127869	return c
127870}
127871
127872// Fields allows partial responses to be retrieved. See
127873// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
127874// for more information.
127875func (c *RegionInstanceGroupManagersDeletePerInstanceConfigsCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersDeletePerInstanceConfigsCall {
127876	c.urlParams_.Set("fields", googleapi.CombineFields(s))
127877	return c
127878}
127879
127880// Context sets the context to be used in this call's Do method. Any
127881// pending HTTP request will be aborted if the provided context is
127882// canceled.
127883func (c *RegionInstanceGroupManagersDeletePerInstanceConfigsCall) Context(ctx context.Context) *RegionInstanceGroupManagersDeletePerInstanceConfigsCall {
127884	c.ctx_ = ctx
127885	return c
127886}
127887
127888// Header returns an http.Header that can be modified by the caller to
127889// add HTTP headers to the request.
127890func (c *RegionInstanceGroupManagersDeletePerInstanceConfigsCall) Header() http.Header {
127891	if c.header_ == nil {
127892		c.header_ = make(http.Header)
127893	}
127894	return c.header_
127895}
127896
127897func (c *RegionInstanceGroupManagersDeletePerInstanceConfigsCall) doRequest(alt string) (*http.Response, error) {
127898	reqHeaders := make(http.Header)
127899	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
127900	for k, v := range c.header_ {
127901		reqHeaders[k] = v
127902	}
127903	reqHeaders.Set("User-Agent", c.s.userAgent())
127904	var body io.Reader = nil
127905	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagerdeleteinstanceconfigreq)
127906	if err != nil {
127907		return nil, err
127908	}
127909	reqHeaders.Set("Content-Type", "application/json")
127910	c.urlParams_.Set("alt", alt)
127911	c.urlParams_.Set("prettyPrint", "false")
127912	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/deletePerInstanceConfigs")
127913	urls += "?" + c.urlParams_.Encode()
127914	req, err := http.NewRequest("POST", urls, body)
127915	if err != nil {
127916		return nil, err
127917	}
127918	req.Header = reqHeaders
127919	googleapi.Expand(req.URL, map[string]string{
127920		"project":              c.project,
127921		"region":               c.region,
127922		"instanceGroupManager": c.instanceGroupManager,
127923	})
127924	return gensupport.SendRequest(c.ctx_, c.s.client, req)
127925}
127926
127927// Do executes the "compute.regionInstanceGroupManagers.deletePerInstanceConfigs" call.
127928// Exactly one of *Operation or error will be non-nil. Any non-2xx
127929// status code is an error. Response headers are in either
127930// *Operation.ServerResponse.Header or (if a response was returned at
127931// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
127932// to check whether the returned error was because
127933// http.StatusNotModified was returned.
127934func (c *RegionInstanceGroupManagersDeletePerInstanceConfigsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
127935	gensupport.SetOptions(c.urlParams_, opts...)
127936	res, err := c.doRequest("json")
127937	if res != nil && res.StatusCode == http.StatusNotModified {
127938		if res.Body != nil {
127939			res.Body.Close()
127940		}
127941		return nil, &googleapi.Error{
127942			Code:   res.StatusCode,
127943			Header: res.Header,
127944		}
127945	}
127946	if err != nil {
127947		return nil, err
127948	}
127949	defer googleapi.CloseBody(res)
127950	if err := googleapi.CheckResponse(res); err != nil {
127951		return nil, err
127952	}
127953	ret := &Operation{
127954		ServerResponse: googleapi.ServerResponse{
127955			Header:         res.Header,
127956			HTTPStatusCode: res.StatusCode,
127957		},
127958	}
127959	target := &ret
127960	if err := gensupport.DecodeResponse(target, res); err != nil {
127961		return nil, err
127962	}
127963	return ret, nil
127964	// {
127965	//   "description": "Deletes selected per-instance configs for the managed instance group. (== suppress_warning http-rest-shadowed ==)",
127966	//   "httpMethod": "POST",
127967	//   "id": "compute.regionInstanceGroupManagers.deletePerInstanceConfigs",
127968	//   "parameterOrder": [
127969	//     "project",
127970	//     "region",
127971	//     "instanceGroupManager"
127972	//   ],
127973	//   "parameters": {
127974	//     "instanceGroupManager": {
127975	//       "description": "The name of the managed instance group. It should conform to RFC1035.",
127976	//       "location": "path",
127977	//       "required": true,
127978	//       "type": "string"
127979	//     },
127980	//     "project": {
127981	//       "description": "Project ID for this request.",
127982	//       "location": "path",
127983	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
127984	//       "required": true,
127985	//       "type": "string"
127986	//     },
127987	//     "region": {
127988	//       "description": "Name of the region scoping this request, should conform to RFC1035.",
127989	//       "location": "path",
127990	//       "required": true,
127991	//       "type": "string"
127992	//     }
127993	//   },
127994	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/deletePerInstanceConfigs",
127995	//   "request": {
127996	//     "$ref": "RegionInstanceGroupManagerDeleteInstanceConfigReq"
127997	//   },
127998	//   "response": {
127999	//     "$ref": "Operation"
128000	//   },
128001	//   "scopes": [
128002	//     "https://www.googleapis.com/auth/cloud-platform",
128003	//     "https://www.googleapis.com/auth/compute"
128004	//   ]
128005	// }
128006
128007}
128008
128009// method id "compute.regionInstanceGroupManagers.get":
128010
128011type RegionInstanceGroupManagersGetCall struct {
128012	s                    *Service
128013	project              string
128014	region               string
128015	instanceGroupManager string
128016	urlParams_           gensupport.URLParams
128017	ifNoneMatch_         string
128018	ctx_                 context.Context
128019	header_              http.Header
128020}
128021
128022// Get: Returns all of the details about the specified managed instance
128023// group. (== suppress_warning http-rest-shadowed ==)
128024func (r *RegionInstanceGroupManagersService) Get(project string, region string, instanceGroupManager string) *RegionInstanceGroupManagersGetCall {
128025	c := &RegionInstanceGroupManagersGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
128026	c.project = project
128027	c.region = region
128028	c.instanceGroupManager = instanceGroupManager
128029	return c
128030}
128031
128032// Fields allows partial responses to be retrieved. See
128033// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
128034// for more information.
128035func (c *RegionInstanceGroupManagersGetCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersGetCall {
128036	c.urlParams_.Set("fields", googleapi.CombineFields(s))
128037	return c
128038}
128039
128040// IfNoneMatch sets the optional parameter which makes the operation
128041// fail if the object's ETag matches the given value. This is useful for
128042// getting updates only after the object has changed since the last
128043// request. Use googleapi.IsNotModified to check whether the response
128044// error from Do is the result of In-None-Match.
128045func (c *RegionInstanceGroupManagersGetCall) IfNoneMatch(entityTag string) *RegionInstanceGroupManagersGetCall {
128046	c.ifNoneMatch_ = entityTag
128047	return c
128048}
128049
128050// Context sets the context to be used in this call's Do method. Any
128051// pending HTTP request will be aborted if the provided context is
128052// canceled.
128053func (c *RegionInstanceGroupManagersGetCall) Context(ctx context.Context) *RegionInstanceGroupManagersGetCall {
128054	c.ctx_ = ctx
128055	return c
128056}
128057
128058// Header returns an http.Header that can be modified by the caller to
128059// add HTTP headers to the request.
128060func (c *RegionInstanceGroupManagersGetCall) Header() http.Header {
128061	if c.header_ == nil {
128062		c.header_ = make(http.Header)
128063	}
128064	return c.header_
128065}
128066
128067func (c *RegionInstanceGroupManagersGetCall) doRequest(alt string) (*http.Response, error) {
128068	reqHeaders := make(http.Header)
128069	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
128070	for k, v := range c.header_ {
128071		reqHeaders[k] = v
128072	}
128073	reqHeaders.Set("User-Agent", c.s.userAgent())
128074	if c.ifNoneMatch_ != "" {
128075		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
128076	}
128077	var body io.Reader = nil
128078	c.urlParams_.Set("alt", alt)
128079	c.urlParams_.Set("prettyPrint", "false")
128080	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}")
128081	urls += "?" + c.urlParams_.Encode()
128082	req, err := http.NewRequest("GET", urls, body)
128083	if err != nil {
128084		return nil, err
128085	}
128086	req.Header = reqHeaders
128087	googleapi.Expand(req.URL, map[string]string{
128088		"project":              c.project,
128089		"region":               c.region,
128090		"instanceGroupManager": c.instanceGroupManager,
128091	})
128092	return gensupport.SendRequest(c.ctx_, c.s.client, req)
128093}
128094
128095// Do executes the "compute.regionInstanceGroupManagers.get" call.
128096// Exactly one of *InstanceGroupManager or error will be non-nil. Any
128097// non-2xx status code is an error. Response headers are in either
128098// *InstanceGroupManager.ServerResponse.Header or (if a response was
128099// returned at all) in error.(*googleapi.Error).Header. Use
128100// googleapi.IsNotModified to check whether the returned error was
128101// because http.StatusNotModified was returned.
128102func (c *RegionInstanceGroupManagersGetCall) Do(opts ...googleapi.CallOption) (*InstanceGroupManager, error) {
128103	gensupport.SetOptions(c.urlParams_, opts...)
128104	res, err := c.doRequest("json")
128105	if res != nil && res.StatusCode == http.StatusNotModified {
128106		if res.Body != nil {
128107			res.Body.Close()
128108		}
128109		return nil, &googleapi.Error{
128110			Code:   res.StatusCode,
128111			Header: res.Header,
128112		}
128113	}
128114	if err != nil {
128115		return nil, err
128116	}
128117	defer googleapi.CloseBody(res)
128118	if err := googleapi.CheckResponse(res); err != nil {
128119		return nil, err
128120	}
128121	ret := &InstanceGroupManager{
128122		ServerResponse: googleapi.ServerResponse{
128123			Header:         res.Header,
128124			HTTPStatusCode: res.StatusCode,
128125		},
128126	}
128127	target := &ret
128128	if err := gensupport.DecodeResponse(target, res); err != nil {
128129		return nil, err
128130	}
128131	return ret, nil
128132	// {
128133	//   "description": "Returns all of the details about the specified managed instance group. (== suppress_warning http-rest-shadowed ==)",
128134	//   "httpMethod": "GET",
128135	//   "id": "compute.regionInstanceGroupManagers.get",
128136	//   "parameterOrder": [
128137	//     "project",
128138	//     "region",
128139	//     "instanceGroupManager"
128140	//   ],
128141	//   "parameters": {
128142	//     "instanceGroupManager": {
128143	//       "description": "Name of the managed instance group to return.",
128144	//       "location": "path",
128145	//       "required": true,
128146	//       "type": "string"
128147	//     },
128148	//     "project": {
128149	//       "description": "Project ID for this request.",
128150	//       "location": "path",
128151	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
128152	//       "required": true,
128153	//       "type": "string"
128154	//     },
128155	//     "region": {
128156	//       "description": "Name of the region scoping this request.",
128157	//       "location": "path",
128158	//       "required": true,
128159	//       "type": "string"
128160	//     }
128161	//   },
128162	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}",
128163	//   "response": {
128164	//     "$ref": "InstanceGroupManager"
128165	//   },
128166	//   "scopes": [
128167	//     "https://www.googleapis.com/auth/cloud-platform",
128168	//     "https://www.googleapis.com/auth/compute",
128169	//     "https://www.googleapis.com/auth/compute.readonly"
128170	//   ]
128171	// }
128172
128173}
128174
128175// method id "compute.regionInstanceGroupManagers.insert":
128176
128177type RegionInstanceGroupManagersInsertCall struct {
128178	s                    *Service
128179	project              string
128180	region               string
128181	instancegroupmanager *InstanceGroupManager
128182	urlParams_           gensupport.URLParams
128183	ctx_                 context.Context
128184	header_              http.Header
128185}
128186
128187// Insert: Creates a managed instance group using the information that
128188// you specify in the request. After the group is created, instances in
128189// the group are created using the specified instance template. This
128190// operation is marked as DONE when the group is created even if the
128191// instances in the group have not yet been created. You must separately
128192// verify the status of the individual instances with the
128193// listmanagedinstances method.
128194//
128195// A regional managed instance group can contain up to 2000 instances.
128196// (== suppress_warning http-rest-shadowed ==)
128197func (r *RegionInstanceGroupManagersService) Insert(project string, region string, instancegroupmanager *InstanceGroupManager) *RegionInstanceGroupManagersInsertCall {
128198	c := &RegionInstanceGroupManagersInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
128199	c.project = project
128200	c.region = region
128201	c.instancegroupmanager = instancegroupmanager
128202	return c
128203}
128204
128205// RequestId sets the optional parameter "requestId": An optional
128206// request ID to identify requests. Specify a unique request ID so that
128207// if you must retry your request, the server will know to ignore the
128208// request if it has already been completed.
128209//
128210// For example, consider a situation where you make an initial request
128211// and the request times out. If you make the request again with the
128212// same request ID, the server can check if original operation with the
128213// same request ID was received, and if so, will ignore the second
128214// request. This prevents clients from accidentally creating duplicate
128215// commitments.
128216//
128217// The request ID must be a valid UUID with the exception that zero UUID
128218// is not supported (00000000-0000-0000-0000-000000000000).
128219func (c *RegionInstanceGroupManagersInsertCall) RequestId(requestId string) *RegionInstanceGroupManagersInsertCall {
128220	c.urlParams_.Set("requestId", requestId)
128221	return c
128222}
128223
128224// Fields allows partial responses to be retrieved. See
128225// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
128226// for more information.
128227func (c *RegionInstanceGroupManagersInsertCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersInsertCall {
128228	c.urlParams_.Set("fields", googleapi.CombineFields(s))
128229	return c
128230}
128231
128232// Context sets the context to be used in this call's Do method. Any
128233// pending HTTP request will be aborted if the provided context is
128234// canceled.
128235func (c *RegionInstanceGroupManagersInsertCall) Context(ctx context.Context) *RegionInstanceGroupManagersInsertCall {
128236	c.ctx_ = ctx
128237	return c
128238}
128239
128240// Header returns an http.Header that can be modified by the caller to
128241// add HTTP headers to the request.
128242func (c *RegionInstanceGroupManagersInsertCall) Header() http.Header {
128243	if c.header_ == nil {
128244		c.header_ = make(http.Header)
128245	}
128246	return c.header_
128247}
128248
128249func (c *RegionInstanceGroupManagersInsertCall) doRequest(alt string) (*http.Response, error) {
128250	reqHeaders := make(http.Header)
128251	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
128252	for k, v := range c.header_ {
128253		reqHeaders[k] = v
128254	}
128255	reqHeaders.Set("User-Agent", c.s.userAgent())
128256	var body io.Reader = nil
128257	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanager)
128258	if err != nil {
128259		return nil, err
128260	}
128261	reqHeaders.Set("Content-Type", "application/json")
128262	c.urlParams_.Set("alt", alt)
128263	c.urlParams_.Set("prettyPrint", "false")
128264	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers")
128265	urls += "?" + c.urlParams_.Encode()
128266	req, err := http.NewRequest("POST", urls, body)
128267	if err != nil {
128268		return nil, err
128269	}
128270	req.Header = reqHeaders
128271	googleapi.Expand(req.URL, map[string]string{
128272		"project": c.project,
128273		"region":  c.region,
128274	})
128275	return gensupport.SendRequest(c.ctx_, c.s.client, req)
128276}
128277
128278// Do executes the "compute.regionInstanceGroupManagers.insert" call.
128279// Exactly one of *Operation or error will be non-nil. Any non-2xx
128280// status code is an error. Response headers are in either
128281// *Operation.ServerResponse.Header or (if a response was returned at
128282// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
128283// to check whether the returned error was because
128284// http.StatusNotModified was returned.
128285func (c *RegionInstanceGroupManagersInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
128286	gensupport.SetOptions(c.urlParams_, opts...)
128287	res, err := c.doRequest("json")
128288	if res != nil && res.StatusCode == http.StatusNotModified {
128289		if res.Body != nil {
128290			res.Body.Close()
128291		}
128292		return nil, &googleapi.Error{
128293			Code:   res.StatusCode,
128294			Header: res.Header,
128295		}
128296	}
128297	if err != nil {
128298		return nil, err
128299	}
128300	defer googleapi.CloseBody(res)
128301	if err := googleapi.CheckResponse(res); err != nil {
128302		return nil, err
128303	}
128304	ret := &Operation{
128305		ServerResponse: googleapi.ServerResponse{
128306			Header:         res.Header,
128307			HTTPStatusCode: res.StatusCode,
128308		},
128309	}
128310	target := &ret
128311	if err := gensupport.DecodeResponse(target, res); err != nil {
128312		return nil, err
128313	}
128314	return ret, nil
128315	// {
128316	//   "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. (== suppress_warning http-rest-shadowed ==)",
128317	//   "httpMethod": "POST",
128318	//   "id": "compute.regionInstanceGroupManagers.insert",
128319	//   "parameterOrder": [
128320	//     "project",
128321	//     "region"
128322	//   ],
128323	//   "parameters": {
128324	//     "project": {
128325	//       "description": "Project ID for this request.",
128326	//       "location": "path",
128327	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
128328	//       "required": true,
128329	//       "type": "string"
128330	//     },
128331	//     "region": {
128332	//       "description": "Name of the region scoping this request.",
128333	//       "location": "path",
128334	//       "required": true,
128335	//       "type": "string"
128336	//     },
128337	//     "requestId": {
128338	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
128339	//       "location": "query",
128340	//       "type": "string"
128341	//     }
128342	//   },
128343	//   "path": "{project}/regions/{region}/instanceGroupManagers",
128344	//   "request": {
128345	//     "$ref": "InstanceGroupManager"
128346	//   },
128347	//   "response": {
128348	//     "$ref": "Operation"
128349	//   },
128350	//   "scopes": [
128351	//     "https://www.googleapis.com/auth/cloud-platform",
128352	//     "https://www.googleapis.com/auth/compute"
128353	//   ]
128354	// }
128355
128356}
128357
128358// method id "compute.regionInstanceGroupManagers.list":
128359
128360type RegionInstanceGroupManagersListCall struct {
128361	s            *Service
128362	project      string
128363	region       string
128364	urlParams_   gensupport.URLParams
128365	ifNoneMatch_ string
128366	ctx_         context.Context
128367	header_      http.Header
128368}
128369
128370// List: Retrieves the list of managed instance groups that are
128371// contained within the specified region. (== suppress_warning
128372// http-rest-shadowed ==)
128373func (r *RegionInstanceGroupManagersService) List(project string, region string) *RegionInstanceGroupManagersListCall {
128374	c := &RegionInstanceGroupManagersListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
128375	c.project = project
128376	c.region = region
128377	return c
128378}
128379
128380// Filter sets the optional parameter "filter": A filter expression that
128381// filters resources listed in the response. The expression must specify
128382// the field name, a comparison operator, and the value that you want to
128383// use for filtering. The value must be a string, a number, or a
128384// boolean. The comparison operator must be either =, !=, >, or <.
128385//
128386// For example, if you are filtering Compute Engine instances, you can
128387// exclude instances named example-instance by specifying name !=
128388// example-instance.
128389//
128390// You can also filter nested fields. For example, you could specify
128391// scheduling.automaticRestart = false to include instances only if they
128392// are not scheduled for automatic restarts. You can use filtering on
128393// nested fields to filter based on resource labels.
128394//
128395// To filter on multiple expressions, provide each separate expression
128396// within parentheses. For example, (scheduling.automaticRestart = true)
128397// (cpuPlatform = "Intel Skylake"). By default, each expression is an
128398// AND expression. However, you can include AND and OR expressions
128399// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
128400// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
128401// true).
128402func (c *RegionInstanceGroupManagersListCall) Filter(filter string) *RegionInstanceGroupManagersListCall {
128403	c.urlParams_.Set("filter", filter)
128404	return c
128405}
128406
128407// MaxResults sets the optional parameter "maxResults": The maximum
128408// number of results per page that should be returned. If the number of
128409// available results is larger than maxResults, Compute Engine returns a
128410// nextPageToken that can be used to get the next page of results in
128411// subsequent list requests. Acceptable values are 0 to 500, inclusive.
128412// (Default: 500)
128413func (c *RegionInstanceGroupManagersListCall) MaxResults(maxResults int64) *RegionInstanceGroupManagersListCall {
128414	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
128415	return c
128416}
128417
128418// OrderBy sets the optional parameter "orderBy": Sorts list results by
128419// a certain order. By default, results are returned in alphanumerical
128420// order based on the resource name.
128421//
128422// You can also sort results in descending order based on the creation
128423// timestamp using orderBy="creationTimestamp desc". This sorts results
128424// based on the creationTimestamp field in reverse chronological order
128425// (newest result first). Use this to sort resources like operations so
128426// that the newest operation is returned first.
128427//
128428// Currently, only sorting by name or creationTimestamp desc is
128429// supported.
128430func (c *RegionInstanceGroupManagersListCall) OrderBy(orderBy string) *RegionInstanceGroupManagersListCall {
128431	c.urlParams_.Set("orderBy", orderBy)
128432	return c
128433}
128434
128435// PageToken sets the optional parameter "pageToken": Specifies a page
128436// token to use. Set pageToken to the nextPageToken returned by a
128437// previous list request to get the next page of results.
128438func (c *RegionInstanceGroupManagersListCall) PageToken(pageToken string) *RegionInstanceGroupManagersListCall {
128439	c.urlParams_.Set("pageToken", pageToken)
128440	return c
128441}
128442
128443// Fields allows partial responses to be retrieved. See
128444// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
128445// for more information.
128446func (c *RegionInstanceGroupManagersListCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersListCall {
128447	c.urlParams_.Set("fields", googleapi.CombineFields(s))
128448	return c
128449}
128450
128451// IfNoneMatch sets the optional parameter which makes the operation
128452// fail if the object's ETag matches the given value. This is useful for
128453// getting updates only after the object has changed since the last
128454// request. Use googleapi.IsNotModified to check whether the response
128455// error from Do is the result of In-None-Match.
128456func (c *RegionInstanceGroupManagersListCall) IfNoneMatch(entityTag string) *RegionInstanceGroupManagersListCall {
128457	c.ifNoneMatch_ = entityTag
128458	return c
128459}
128460
128461// Context sets the context to be used in this call's Do method. Any
128462// pending HTTP request will be aborted if the provided context is
128463// canceled.
128464func (c *RegionInstanceGroupManagersListCall) Context(ctx context.Context) *RegionInstanceGroupManagersListCall {
128465	c.ctx_ = ctx
128466	return c
128467}
128468
128469// Header returns an http.Header that can be modified by the caller to
128470// add HTTP headers to the request.
128471func (c *RegionInstanceGroupManagersListCall) Header() http.Header {
128472	if c.header_ == nil {
128473		c.header_ = make(http.Header)
128474	}
128475	return c.header_
128476}
128477
128478func (c *RegionInstanceGroupManagersListCall) doRequest(alt string) (*http.Response, error) {
128479	reqHeaders := make(http.Header)
128480	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
128481	for k, v := range c.header_ {
128482		reqHeaders[k] = v
128483	}
128484	reqHeaders.Set("User-Agent", c.s.userAgent())
128485	if c.ifNoneMatch_ != "" {
128486		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
128487	}
128488	var body io.Reader = nil
128489	c.urlParams_.Set("alt", alt)
128490	c.urlParams_.Set("prettyPrint", "false")
128491	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers")
128492	urls += "?" + c.urlParams_.Encode()
128493	req, err := http.NewRequest("GET", urls, body)
128494	if err != nil {
128495		return nil, err
128496	}
128497	req.Header = reqHeaders
128498	googleapi.Expand(req.URL, map[string]string{
128499		"project": c.project,
128500		"region":  c.region,
128501	})
128502	return gensupport.SendRequest(c.ctx_, c.s.client, req)
128503}
128504
128505// Do executes the "compute.regionInstanceGroupManagers.list" call.
128506// Exactly one of *RegionInstanceGroupManagerList or error will be
128507// non-nil. Any non-2xx status code is an error. Response headers are in
128508// either *RegionInstanceGroupManagerList.ServerResponse.Header or (if a
128509// response was returned at all) in error.(*googleapi.Error).Header. Use
128510// googleapi.IsNotModified to check whether the returned error was
128511// because http.StatusNotModified was returned.
128512func (c *RegionInstanceGroupManagersListCall) Do(opts ...googleapi.CallOption) (*RegionInstanceGroupManagerList, error) {
128513	gensupport.SetOptions(c.urlParams_, opts...)
128514	res, err := c.doRequest("json")
128515	if res != nil && res.StatusCode == http.StatusNotModified {
128516		if res.Body != nil {
128517			res.Body.Close()
128518		}
128519		return nil, &googleapi.Error{
128520			Code:   res.StatusCode,
128521			Header: res.Header,
128522		}
128523	}
128524	if err != nil {
128525		return nil, err
128526	}
128527	defer googleapi.CloseBody(res)
128528	if err := googleapi.CheckResponse(res); err != nil {
128529		return nil, err
128530	}
128531	ret := &RegionInstanceGroupManagerList{
128532		ServerResponse: googleapi.ServerResponse{
128533			Header:         res.Header,
128534			HTTPStatusCode: res.StatusCode,
128535		},
128536	}
128537	target := &ret
128538	if err := gensupport.DecodeResponse(target, res); err != nil {
128539		return nil, err
128540	}
128541	return ret, nil
128542	// {
128543	//   "description": "Retrieves the list of managed instance groups that are contained within the specified region. (== suppress_warning http-rest-shadowed ==)",
128544	//   "httpMethod": "GET",
128545	//   "id": "compute.regionInstanceGroupManagers.list",
128546	//   "parameterOrder": [
128547	//     "project",
128548	//     "region"
128549	//   ],
128550	//   "parameters": {
128551	//     "filter": {
128552	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
128553	//       "location": "query",
128554	//       "type": "string"
128555	//     },
128556	//     "maxResults": {
128557	//       "default": "500",
128558	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
128559	//       "format": "uint32",
128560	//       "location": "query",
128561	//       "minimum": "0",
128562	//       "type": "integer"
128563	//     },
128564	//     "orderBy": {
128565	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
128566	//       "location": "query",
128567	//       "type": "string"
128568	//     },
128569	//     "pageToken": {
128570	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
128571	//       "location": "query",
128572	//       "type": "string"
128573	//     },
128574	//     "project": {
128575	//       "description": "Project ID for this request.",
128576	//       "location": "path",
128577	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
128578	//       "required": true,
128579	//       "type": "string"
128580	//     },
128581	//     "region": {
128582	//       "description": "Name of the region scoping this request.",
128583	//       "location": "path",
128584	//       "required": true,
128585	//       "type": "string"
128586	//     }
128587	//   },
128588	//   "path": "{project}/regions/{region}/instanceGroupManagers",
128589	//   "response": {
128590	//     "$ref": "RegionInstanceGroupManagerList"
128591	//   },
128592	//   "scopes": [
128593	//     "https://www.googleapis.com/auth/cloud-platform",
128594	//     "https://www.googleapis.com/auth/compute",
128595	//     "https://www.googleapis.com/auth/compute.readonly"
128596	//   ]
128597	// }
128598
128599}
128600
128601// Pages invokes f for each page of results.
128602// A non-nil error returned from f will halt the iteration.
128603// The provided context supersedes any context provided to the Context method.
128604func (c *RegionInstanceGroupManagersListCall) Pages(ctx context.Context, f func(*RegionInstanceGroupManagerList) error) error {
128605	c.ctx_ = ctx
128606	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
128607	for {
128608		x, err := c.Do()
128609		if err != nil {
128610			return err
128611		}
128612		if err := f(x); err != nil {
128613			return err
128614		}
128615		if x.NextPageToken == "" {
128616			return nil
128617		}
128618		c.PageToken(x.NextPageToken)
128619	}
128620}
128621
128622// method id "compute.regionInstanceGroupManagers.listErrors":
128623
128624type RegionInstanceGroupManagersListErrorsCall struct {
128625	s                    *Service
128626	project              string
128627	region               string
128628	instanceGroupManager string
128629	urlParams_           gensupport.URLParams
128630	ifNoneMatch_         string
128631	ctx_                 context.Context
128632	header_              http.Header
128633}
128634
128635// ListErrors: Lists all errors thrown by actions on instances for a
128636// given regional managed instance group. (== suppress_warning
128637// http-rest-shadowed ==)
128638func (r *RegionInstanceGroupManagersService) ListErrors(project string, region string, instanceGroupManager string) *RegionInstanceGroupManagersListErrorsCall {
128639	c := &RegionInstanceGroupManagersListErrorsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
128640	c.project = project
128641	c.region = region
128642	c.instanceGroupManager = instanceGroupManager
128643	return c
128644}
128645
128646// Filter sets the optional parameter "filter": A filter expression that
128647// filters resources listed in the response. The expression must specify
128648// the field name, a comparison operator, and the value that you want to
128649// use for filtering. The value must be a string, a number, or a
128650// boolean. The comparison operator must be either =, !=, >, or <.
128651//
128652// For example, if you are filtering Compute Engine instances, you can
128653// exclude instances named example-instance by specifying name !=
128654// example-instance.
128655//
128656// You can also filter nested fields. For example, you could specify
128657// scheduling.automaticRestart = false to include instances only if they
128658// are not scheduled for automatic restarts. You can use filtering on
128659// nested fields to filter based on resource labels.
128660//
128661// To filter on multiple expressions, provide each separate expression
128662// within parentheses. For example, (scheduling.automaticRestart = true)
128663// (cpuPlatform = "Intel Skylake"). By default, each expression is an
128664// AND expression. However, you can include AND and OR expressions
128665// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
128666// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
128667// true).
128668func (c *RegionInstanceGroupManagersListErrorsCall) Filter(filter string) *RegionInstanceGroupManagersListErrorsCall {
128669	c.urlParams_.Set("filter", filter)
128670	return c
128671}
128672
128673// MaxResults sets the optional parameter "maxResults": The maximum
128674// number of results per page that should be returned. If the number of
128675// available results is larger than maxResults, Compute Engine returns a
128676// nextPageToken that can be used to get the next page of results in
128677// subsequent list requests. Acceptable values are 0 to 500, inclusive.
128678// (Default: 500)
128679func (c *RegionInstanceGroupManagersListErrorsCall) MaxResults(maxResults int64) *RegionInstanceGroupManagersListErrorsCall {
128680	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
128681	return c
128682}
128683
128684// OrderBy sets the optional parameter "orderBy": Sorts list results by
128685// a certain order. By default, results are returned in alphanumerical
128686// order based on the resource name.
128687//
128688// You can also sort results in descending order based on the creation
128689// timestamp using orderBy="creationTimestamp desc". This sorts results
128690// based on the creationTimestamp field in reverse chronological order
128691// (newest result first). Use this to sort resources like operations so
128692// that the newest operation is returned first.
128693//
128694// Currently, only sorting by name or creationTimestamp desc is
128695// supported.
128696func (c *RegionInstanceGroupManagersListErrorsCall) OrderBy(orderBy string) *RegionInstanceGroupManagersListErrorsCall {
128697	c.urlParams_.Set("orderBy", orderBy)
128698	return c
128699}
128700
128701// PageToken sets the optional parameter "pageToken": Specifies a page
128702// token to use. Set pageToken to the nextPageToken returned by a
128703// previous list request to get the next page of results.
128704func (c *RegionInstanceGroupManagersListErrorsCall) PageToken(pageToken string) *RegionInstanceGroupManagersListErrorsCall {
128705	c.urlParams_.Set("pageToken", pageToken)
128706	return c
128707}
128708
128709// Fields allows partial responses to be retrieved. See
128710// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
128711// for more information.
128712func (c *RegionInstanceGroupManagersListErrorsCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersListErrorsCall {
128713	c.urlParams_.Set("fields", googleapi.CombineFields(s))
128714	return c
128715}
128716
128717// IfNoneMatch sets the optional parameter which makes the operation
128718// fail if the object's ETag matches the given value. This is useful for
128719// getting updates only after the object has changed since the last
128720// request. Use googleapi.IsNotModified to check whether the response
128721// error from Do is the result of In-None-Match.
128722func (c *RegionInstanceGroupManagersListErrorsCall) IfNoneMatch(entityTag string) *RegionInstanceGroupManagersListErrorsCall {
128723	c.ifNoneMatch_ = entityTag
128724	return c
128725}
128726
128727// Context sets the context to be used in this call's Do method. Any
128728// pending HTTP request will be aborted if the provided context is
128729// canceled.
128730func (c *RegionInstanceGroupManagersListErrorsCall) Context(ctx context.Context) *RegionInstanceGroupManagersListErrorsCall {
128731	c.ctx_ = ctx
128732	return c
128733}
128734
128735// Header returns an http.Header that can be modified by the caller to
128736// add HTTP headers to the request.
128737func (c *RegionInstanceGroupManagersListErrorsCall) Header() http.Header {
128738	if c.header_ == nil {
128739		c.header_ = make(http.Header)
128740	}
128741	return c.header_
128742}
128743
128744func (c *RegionInstanceGroupManagersListErrorsCall) doRequest(alt string) (*http.Response, error) {
128745	reqHeaders := make(http.Header)
128746	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
128747	for k, v := range c.header_ {
128748		reqHeaders[k] = v
128749	}
128750	reqHeaders.Set("User-Agent", c.s.userAgent())
128751	if c.ifNoneMatch_ != "" {
128752		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
128753	}
128754	var body io.Reader = nil
128755	c.urlParams_.Set("alt", alt)
128756	c.urlParams_.Set("prettyPrint", "false")
128757	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listErrors")
128758	urls += "?" + c.urlParams_.Encode()
128759	req, err := http.NewRequest("GET", urls, body)
128760	if err != nil {
128761		return nil, err
128762	}
128763	req.Header = reqHeaders
128764	googleapi.Expand(req.URL, map[string]string{
128765		"project":              c.project,
128766		"region":               c.region,
128767		"instanceGroupManager": c.instanceGroupManager,
128768	})
128769	return gensupport.SendRequest(c.ctx_, c.s.client, req)
128770}
128771
128772// Do executes the "compute.regionInstanceGroupManagers.listErrors" call.
128773// Exactly one of *RegionInstanceGroupManagersListErrorsResponse or
128774// error will be non-nil. Any non-2xx status code is an error. Response
128775// headers are in either
128776// *RegionInstanceGroupManagersListErrorsResponse.ServerResponse.Header
128777// or (if a response was returned at all) in
128778// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
128779// whether the returned error was because http.StatusNotModified was
128780// returned.
128781func (c *RegionInstanceGroupManagersListErrorsCall) Do(opts ...googleapi.CallOption) (*RegionInstanceGroupManagersListErrorsResponse, error) {
128782	gensupport.SetOptions(c.urlParams_, opts...)
128783	res, err := c.doRequest("json")
128784	if res != nil && res.StatusCode == http.StatusNotModified {
128785		if res.Body != nil {
128786			res.Body.Close()
128787		}
128788		return nil, &googleapi.Error{
128789			Code:   res.StatusCode,
128790			Header: res.Header,
128791		}
128792	}
128793	if err != nil {
128794		return nil, err
128795	}
128796	defer googleapi.CloseBody(res)
128797	if err := googleapi.CheckResponse(res); err != nil {
128798		return nil, err
128799	}
128800	ret := &RegionInstanceGroupManagersListErrorsResponse{
128801		ServerResponse: googleapi.ServerResponse{
128802			Header:         res.Header,
128803			HTTPStatusCode: res.StatusCode,
128804		},
128805	}
128806	target := &ret
128807	if err := gensupport.DecodeResponse(target, res); err != nil {
128808		return nil, err
128809	}
128810	return ret, nil
128811	// {
128812	//   "description": "Lists all errors thrown by actions on instances for a given regional managed instance group. (== suppress_warning http-rest-shadowed ==)",
128813	//   "httpMethod": "GET",
128814	//   "id": "compute.regionInstanceGroupManagers.listErrors",
128815	//   "parameterOrder": [
128816	//     "project",
128817	//     "region",
128818	//     "instanceGroupManager"
128819	//   ],
128820	//   "parameters": {
128821	//     "filter": {
128822	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
128823	//       "location": "query",
128824	//       "type": "string"
128825	//     },
128826	//     "instanceGroupManager": {
128827	//       "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}.",
128828	//       "location": "path",
128829	//       "required": true,
128830	//       "type": "string"
128831	//     },
128832	//     "maxResults": {
128833	//       "default": "500",
128834	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
128835	//       "format": "uint32",
128836	//       "location": "query",
128837	//       "minimum": "0",
128838	//       "type": "integer"
128839	//     },
128840	//     "orderBy": {
128841	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
128842	//       "location": "query",
128843	//       "type": "string"
128844	//     },
128845	//     "pageToken": {
128846	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
128847	//       "location": "query",
128848	//       "type": "string"
128849	//     },
128850	//     "project": {
128851	//       "description": "Project ID for this request.",
128852	//       "location": "path",
128853	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
128854	//       "required": true,
128855	//       "type": "string"
128856	//     },
128857	//     "region": {
128858	//       "description": "Name of the region scoping this request. This should conform to RFC1035.",
128859	//       "location": "path",
128860	//       "required": true,
128861	//       "type": "string"
128862	//     }
128863	//   },
128864	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listErrors",
128865	//   "response": {
128866	//     "$ref": "RegionInstanceGroupManagersListErrorsResponse"
128867	//   },
128868	//   "scopes": [
128869	//     "https://www.googleapis.com/auth/cloud-platform",
128870	//     "https://www.googleapis.com/auth/compute",
128871	//     "https://www.googleapis.com/auth/compute.readonly"
128872	//   ]
128873	// }
128874
128875}
128876
128877// Pages invokes f for each page of results.
128878// A non-nil error returned from f will halt the iteration.
128879// The provided context supersedes any context provided to the Context method.
128880func (c *RegionInstanceGroupManagersListErrorsCall) Pages(ctx context.Context, f func(*RegionInstanceGroupManagersListErrorsResponse) error) error {
128881	c.ctx_ = ctx
128882	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
128883	for {
128884		x, err := c.Do()
128885		if err != nil {
128886			return err
128887		}
128888		if err := f(x); err != nil {
128889			return err
128890		}
128891		if x.NextPageToken == "" {
128892			return nil
128893		}
128894		c.PageToken(x.NextPageToken)
128895	}
128896}
128897
128898// method id "compute.regionInstanceGroupManagers.listManagedInstances":
128899
128900type RegionInstanceGroupManagersListManagedInstancesCall struct {
128901	s                    *Service
128902	project              string
128903	region               string
128904	instanceGroupManager string
128905	urlParams_           gensupport.URLParams
128906	ctx_                 context.Context
128907	header_              http.Header
128908}
128909
128910// ListManagedInstances: Lists the instances in the managed instance
128911// group and instances that are scheduled to be created. The list
128912// includes any current actions that the group has scheduled for its
128913// instances. (== suppress_warning http-rest-shadowed ==)
128914func (r *RegionInstanceGroupManagersService) ListManagedInstances(project string, region string, instanceGroupManager string) *RegionInstanceGroupManagersListManagedInstancesCall {
128915	c := &RegionInstanceGroupManagersListManagedInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
128916	c.project = project
128917	c.region = region
128918	c.instanceGroupManager = instanceGroupManager
128919	return c
128920}
128921
128922// Filter sets the optional parameter "filter": A filter expression that
128923// filters resources listed in the response. The expression must specify
128924// the field name, a comparison operator, and the value that you want to
128925// use for filtering. The value must be a string, a number, or a
128926// boolean. The comparison operator must be either =, !=, >, or <.
128927//
128928// For example, if you are filtering Compute Engine instances, you can
128929// exclude instances named example-instance by specifying name !=
128930// example-instance.
128931//
128932// You can also filter nested fields. For example, you could specify
128933// scheduling.automaticRestart = false to include instances only if they
128934// are not scheduled for automatic restarts. You can use filtering on
128935// nested fields to filter based on resource labels.
128936//
128937// To filter on multiple expressions, provide each separate expression
128938// within parentheses. For example, (scheduling.automaticRestart = true)
128939// (cpuPlatform = "Intel Skylake"). By default, each expression is an
128940// AND expression. However, you can include AND and OR expressions
128941// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
128942// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
128943// true).
128944func (c *RegionInstanceGroupManagersListManagedInstancesCall) Filter(filter string) *RegionInstanceGroupManagersListManagedInstancesCall {
128945	c.urlParams_.Set("filter", filter)
128946	return c
128947}
128948
128949// MaxResults sets the optional parameter "maxResults": The maximum
128950// number of results per page that should be returned. If the number of
128951// available results is larger than maxResults, Compute Engine returns a
128952// nextPageToken that can be used to get the next page of results in
128953// subsequent list requests. Acceptable values are 0 to 500, inclusive.
128954// (Default: 500)
128955func (c *RegionInstanceGroupManagersListManagedInstancesCall) MaxResults(maxResults int64) *RegionInstanceGroupManagersListManagedInstancesCall {
128956	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
128957	return c
128958}
128959
128960// OrderBy sets the optional parameter "order_by": Sorts list results by
128961// a certain order. By default, results are returned in alphanumerical
128962// order based on the resource name.
128963//
128964// You can also sort results in descending order based on the creation
128965// timestamp using orderBy="creationTimestamp desc". This sorts results
128966// based on the creationTimestamp field in reverse chronological order
128967// (newest result first). Use this to sort resources like operations so
128968// that the newest operation is returned first.
128969//
128970// Currently, only sorting by name or creationTimestamp desc is
128971// supported.
128972func (c *RegionInstanceGroupManagersListManagedInstancesCall) OrderBy(orderBy string) *RegionInstanceGroupManagersListManagedInstancesCall {
128973	c.urlParams_.Set("order_by", orderBy)
128974	return c
128975}
128976
128977// PageToken sets the optional parameter "pageToken": Specifies a page
128978// token to use. Set pageToken to the nextPageToken returned by a
128979// previous list request to get the next page of results.
128980func (c *RegionInstanceGroupManagersListManagedInstancesCall) PageToken(pageToken string) *RegionInstanceGroupManagersListManagedInstancesCall {
128981	c.urlParams_.Set("pageToken", pageToken)
128982	return c
128983}
128984
128985// Fields allows partial responses to be retrieved. See
128986// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
128987// for more information.
128988func (c *RegionInstanceGroupManagersListManagedInstancesCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersListManagedInstancesCall {
128989	c.urlParams_.Set("fields", googleapi.CombineFields(s))
128990	return c
128991}
128992
128993// Context sets the context to be used in this call's Do method. Any
128994// pending HTTP request will be aborted if the provided context is
128995// canceled.
128996func (c *RegionInstanceGroupManagersListManagedInstancesCall) Context(ctx context.Context) *RegionInstanceGroupManagersListManagedInstancesCall {
128997	c.ctx_ = ctx
128998	return c
128999}
129000
129001// Header returns an http.Header that can be modified by the caller to
129002// add HTTP headers to the request.
129003func (c *RegionInstanceGroupManagersListManagedInstancesCall) Header() http.Header {
129004	if c.header_ == nil {
129005		c.header_ = make(http.Header)
129006	}
129007	return c.header_
129008}
129009
129010func (c *RegionInstanceGroupManagersListManagedInstancesCall) doRequest(alt string) (*http.Response, error) {
129011	reqHeaders := make(http.Header)
129012	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
129013	for k, v := range c.header_ {
129014		reqHeaders[k] = v
129015	}
129016	reqHeaders.Set("User-Agent", c.s.userAgent())
129017	var body io.Reader = nil
129018	c.urlParams_.Set("alt", alt)
129019	c.urlParams_.Set("prettyPrint", "false")
129020	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listManagedInstances")
129021	urls += "?" + c.urlParams_.Encode()
129022	req, err := http.NewRequest("POST", urls, body)
129023	if err != nil {
129024		return nil, err
129025	}
129026	req.Header = reqHeaders
129027	googleapi.Expand(req.URL, map[string]string{
129028		"project":              c.project,
129029		"region":               c.region,
129030		"instanceGroupManager": c.instanceGroupManager,
129031	})
129032	return gensupport.SendRequest(c.ctx_, c.s.client, req)
129033}
129034
129035// Do executes the "compute.regionInstanceGroupManagers.listManagedInstances" call.
129036// Exactly one of *RegionInstanceGroupManagersListInstancesResponse or
129037// error will be non-nil. Any non-2xx status code is an error. Response
129038// headers are in either
129039// *RegionInstanceGroupManagersListInstancesResponse.ServerResponse.Heade
129040// r or (if a response was returned at all) in
129041// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
129042// whether the returned error was because http.StatusNotModified was
129043// returned.
129044func (c *RegionInstanceGroupManagersListManagedInstancesCall) Do(opts ...googleapi.CallOption) (*RegionInstanceGroupManagersListInstancesResponse, error) {
129045	gensupport.SetOptions(c.urlParams_, opts...)
129046	res, err := c.doRequest("json")
129047	if res != nil && res.StatusCode == http.StatusNotModified {
129048		if res.Body != nil {
129049			res.Body.Close()
129050		}
129051		return nil, &googleapi.Error{
129052			Code:   res.StatusCode,
129053			Header: res.Header,
129054		}
129055	}
129056	if err != nil {
129057		return nil, err
129058	}
129059	defer googleapi.CloseBody(res)
129060	if err := googleapi.CheckResponse(res); err != nil {
129061		return nil, err
129062	}
129063	ret := &RegionInstanceGroupManagersListInstancesResponse{
129064		ServerResponse: googleapi.ServerResponse{
129065			Header:         res.Header,
129066			HTTPStatusCode: res.StatusCode,
129067		},
129068	}
129069	target := &ret
129070	if err := gensupport.DecodeResponse(target, res); err != nil {
129071		return nil, err
129072	}
129073	return ret, nil
129074	// {
129075	//   "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. (== suppress_warning http-rest-shadowed ==)",
129076	//   "httpMethod": "POST",
129077	//   "id": "compute.regionInstanceGroupManagers.listManagedInstances",
129078	//   "parameterOrder": [
129079	//     "project",
129080	//     "region",
129081	//     "instanceGroupManager"
129082	//   ],
129083	//   "parameters": {
129084	//     "filter": {
129085	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
129086	//       "location": "query",
129087	//       "type": "string"
129088	//     },
129089	//     "instanceGroupManager": {
129090	//       "description": "The name of the managed instance group.",
129091	//       "location": "path",
129092	//       "required": true,
129093	//       "type": "string"
129094	//     },
129095	//     "maxResults": {
129096	//       "default": "500",
129097	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
129098	//       "format": "uint32",
129099	//       "location": "query",
129100	//       "minimum": "0",
129101	//       "type": "integer"
129102	//     },
129103	//     "order_by": {
129104	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
129105	//       "location": "query",
129106	//       "type": "string"
129107	//     },
129108	//     "pageToken": {
129109	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
129110	//       "location": "query",
129111	//       "type": "string"
129112	//     },
129113	//     "project": {
129114	//       "description": "Project ID for this request.",
129115	//       "location": "path",
129116	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
129117	//       "required": true,
129118	//       "type": "string"
129119	//     },
129120	//     "region": {
129121	//       "description": "Name of the region scoping this request.",
129122	//       "location": "path",
129123	//       "required": true,
129124	//       "type": "string"
129125	//     }
129126	//   },
129127	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listManagedInstances",
129128	//   "response": {
129129	//     "$ref": "RegionInstanceGroupManagersListInstancesResponse"
129130	//   },
129131	//   "scopes": [
129132	//     "https://www.googleapis.com/auth/cloud-platform",
129133	//     "https://www.googleapis.com/auth/compute",
129134	//     "https://www.googleapis.com/auth/compute.readonly"
129135	//   ]
129136	// }
129137
129138}
129139
129140// Pages invokes f for each page of results.
129141// A non-nil error returned from f will halt the iteration.
129142// The provided context supersedes any context provided to the Context method.
129143func (c *RegionInstanceGroupManagersListManagedInstancesCall) Pages(ctx context.Context, f func(*RegionInstanceGroupManagersListInstancesResponse) error) error {
129144	c.ctx_ = ctx
129145	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
129146	for {
129147		x, err := c.Do()
129148		if err != nil {
129149			return err
129150		}
129151		if err := f(x); err != nil {
129152			return err
129153		}
129154		if x.NextPageToken == "" {
129155			return nil
129156		}
129157		c.PageToken(x.NextPageToken)
129158	}
129159}
129160
129161// method id "compute.regionInstanceGroupManagers.listPerInstanceConfigs":
129162
129163type RegionInstanceGroupManagersListPerInstanceConfigsCall struct {
129164	s                    *Service
129165	project              string
129166	region               string
129167	instanceGroupManager string
129168	urlParams_           gensupport.URLParams
129169	ctx_                 context.Context
129170	header_              http.Header
129171}
129172
129173// ListPerInstanceConfigs: Lists all of the per-instance configs defined
129174// for the managed instance group. (== suppress_warning
129175// http-rest-shadowed ==)
129176func (r *RegionInstanceGroupManagersService) ListPerInstanceConfigs(project string, region string, instanceGroupManager string) *RegionInstanceGroupManagersListPerInstanceConfigsCall {
129177	c := &RegionInstanceGroupManagersListPerInstanceConfigsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
129178	c.project = project
129179	c.region = region
129180	c.instanceGroupManager = instanceGroupManager
129181	return c
129182}
129183
129184// Filter sets the optional parameter "filter": A filter expression that
129185// filters resources listed in the response. The expression must specify
129186// the field name, a comparison operator, and the value that you want to
129187// use for filtering. The value must be a string, a number, or a
129188// boolean. The comparison operator must be either =, !=, >, or <.
129189//
129190// For example, if you are filtering Compute Engine instances, you can
129191// exclude instances named example-instance by specifying name !=
129192// example-instance.
129193//
129194// You can also filter nested fields. For example, you could specify
129195// scheduling.automaticRestart = false to include instances only if they
129196// are not scheduled for automatic restarts. You can use filtering on
129197// nested fields to filter based on resource labels.
129198//
129199// To filter on multiple expressions, provide each separate expression
129200// within parentheses. For example, (scheduling.automaticRestart = true)
129201// (cpuPlatform = "Intel Skylake"). By default, each expression is an
129202// AND expression. However, you can include AND and OR expressions
129203// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
129204// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
129205// true).
129206func (c *RegionInstanceGroupManagersListPerInstanceConfigsCall) Filter(filter string) *RegionInstanceGroupManagersListPerInstanceConfigsCall {
129207	c.urlParams_.Set("filter", filter)
129208	return c
129209}
129210
129211// MaxResults sets the optional parameter "maxResults": The maximum
129212// number of results per page that should be returned. If the number of
129213// available results is larger than maxResults, Compute Engine returns a
129214// nextPageToken that can be used to get the next page of results in
129215// subsequent list requests. Acceptable values are 0 to 500, inclusive.
129216// (Default: 500)
129217func (c *RegionInstanceGroupManagersListPerInstanceConfigsCall) MaxResults(maxResults int64) *RegionInstanceGroupManagersListPerInstanceConfigsCall {
129218	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
129219	return c
129220}
129221
129222// OrderBy sets the optional parameter "orderBy": Sorts list results by
129223// a certain order. By default, results are returned in alphanumerical
129224// order based on the resource name.
129225//
129226// You can also sort results in descending order based on the creation
129227// timestamp using orderBy="creationTimestamp desc". This sorts results
129228// based on the creationTimestamp field in reverse chronological order
129229// (newest result first). Use this to sort resources like operations so
129230// that the newest operation is returned first.
129231//
129232// Currently, only sorting by name or creationTimestamp desc is
129233// supported.
129234func (c *RegionInstanceGroupManagersListPerInstanceConfigsCall) OrderBy(orderBy string) *RegionInstanceGroupManagersListPerInstanceConfigsCall {
129235	c.urlParams_.Set("orderBy", orderBy)
129236	return c
129237}
129238
129239// PageToken sets the optional parameter "pageToken": Specifies a page
129240// token to use. Set pageToken to the nextPageToken returned by a
129241// previous list request to get the next page of results.
129242func (c *RegionInstanceGroupManagersListPerInstanceConfigsCall) PageToken(pageToken string) *RegionInstanceGroupManagersListPerInstanceConfigsCall {
129243	c.urlParams_.Set("pageToken", pageToken)
129244	return c
129245}
129246
129247// Fields allows partial responses to be retrieved. See
129248// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
129249// for more information.
129250func (c *RegionInstanceGroupManagersListPerInstanceConfigsCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersListPerInstanceConfigsCall {
129251	c.urlParams_.Set("fields", googleapi.CombineFields(s))
129252	return c
129253}
129254
129255// Context sets the context to be used in this call's Do method. Any
129256// pending HTTP request will be aborted if the provided context is
129257// canceled.
129258func (c *RegionInstanceGroupManagersListPerInstanceConfigsCall) Context(ctx context.Context) *RegionInstanceGroupManagersListPerInstanceConfigsCall {
129259	c.ctx_ = ctx
129260	return c
129261}
129262
129263// Header returns an http.Header that can be modified by the caller to
129264// add HTTP headers to the request.
129265func (c *RegionInstanceGroupManagersListPerInstanceConfigsCall) Header() http.Header {
129266	if c.header_ == nil {
129267		c.header_ = make(http.Header)
129268	}
129269	return c.header_
129270}
129271
129272func (c *RegionInstanceGroupManagersListPerInstanceConfigsCall) doRequest(alt string) (*http.Response, error) {
129273	reqHeaders := make(http.Header)
129274	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
129275	for k, v := range c.header_ {
129276		reqHeaders[k] = v
129277	}
129278	reqHeaders.Set("User-Agent", c.s.userAgent())
129279	var body io.Reader = nil
129280	c.urlParams_.Set("alt", alt)
129281	c.urlParams_.Set("prettyPrint", "false")
129282	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listPerInstanceConfigs")
129283	urls += "?" + c.urlParams_.Encode()
129284	req, err := http.NewRequest("POST", urls, body)
129285	if err != nil {
129286		return nil, err
129287	}
129288	req.Header = reqHeaders
129289	googleapi.Expand(req.URL, map[string]string{
129290		"project":              c.project,
129291		"region":               c.region,
129292		"instanceGroupManager": c.instanceGroupManager,
129293	})
129294	return gensupport.SendRequest(c.ctx_, c.s.client, req)
129295}
129296
129297// Do executes the "compute.regionInstanceGroupManagers.listPerInstanceConfigs" call.
129298// Exactly one of *RegionInstanceGroupManagersListInstanceConfigsResp or
129299// error will be non-nil. Any non-2xx status code is an error. Response
129300// headers are in either
129301// *RegionInstanceGroupManagersListInstanceConfigsResp.ServerResponse.Hea
129302// der or (if a response was returned at all) in
129303// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
129304// whether the returned error was because http.StatusNotModified was
129305// returned.
129306func (c *RegionInstanceGroupManagersListPerInstanceConfigsCall) Do(opts ...googleapi.CallOption) (*RegionInstanceGroupManagersListInstanceConfigsResp, error) {
129307	gensupport.SetOptions(c.urlParams_, opts...)
129308	res, err := c.doRequest("json")
129309	if res != nil && res.StatusCode == http.StatusNotModified {
129310		if res.Body != nil {
129311			res.Body.Close()
129312		}
129313		return nil, &googleapi.Error{
129314			Code:   res.StatusCode,
129315			Header: res.Header,
129316		}
129317	}
129318	if err != nil {
129319		return nil, err
129320	}
129321	defer googleapi.CloseBody(res)
129322	if err := googleapi.CheckResponse(res); err != nil {
129323		return nil, err
129324	}
129325	ret := &RegionInstanceGroupManagersListInstanceConfigsResp{
129326		ServerResponse: googleapi.ServerResponse{
129327			Header:         res.Header,
129328			HTTPStatusCode: res.StatusCode,
129329		},
129330	}
129331	target := &ret
129332	if err := gensupport.DecodeResponse(target, res); err != nil {
129333		return nil, err
129334	}
129335	return ret, nil
129336	// {
129337	//   "description": "Lists all of the per-instance configs defined for the managed instance group. (== suppress_warning http-rest-shadowed ==)",
129338	//   "httpMethod": "POST",
129339	//   "id": "compute.regionInstanceGroupManagers.listPerInstanceConfigs",
129340	//   "parameterOrder": [
129341	//     "project",
129342	//     "region",
129343	//     "instanceGroupManager"
129344	//   ],
129345	//   "parameters": {
129346	//     "filter": {
129347	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
129348	//       "location": "query",
129349	//       "type": "string"
129350	//     },
129351	//     "instanceGroupManager": {
129352	//       "description": "The name of the managed instance group. It should conform to RFC1035.",
129353	//       "location": "path",
129354	//       "required": true,
129355	//       "type": "string"
129356	//     },
129357	//     "maxResults": {
129358	//       "default": "500",
129359	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
129360	//       "format": "uint32",
129361	//       "location": "query",
129362	//       "minimum": "0",
129363	//       "type": "integer"
129364	//     },
129365	//     "orderBy": {
129366	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
129367	//       "location": "query",
129368	//       "type": "string"
129369	//     },
129370	//     "pageToken": {
129371	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
129372	//       "location": "query",
129373	//       "type": "string"
129374	//     },
129375	//     "project": {
129376	//       "description": "Project ID for this request.",
129377	//       "location": "path",
129378	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
129379	//       "required": true,
129380	//       "type": "string"
129381	//     },
129382	//     "region": {
129383	//       "description": "Name of the region scoping this request, should conform to RFC1035.",
129384	//       "location": "path",
129385	//       "required": true,
129386	//       "type": "string"
129387	//     }
129388	//   },
129389	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listPerInstanceConfigs",
129390	//   "response": {
129391	//     "$ref": "RegionInstanceGroupManagersListInstanceConfigsResp"
129392	//   },
129393	//   "scopes": [
129394	//     "https://www.googleapis.com/auth/cloud-platform",
129395	//     "https://www.googleapis.com/auth/compute",
129396	//     "https://www.googleapis.com/auth/compute.readonly"
129397	//   ]
129398	// }
129399
129400}
129401
129402// Pages invokes f for each page of results.
129403// A non-nil error returned from f will halt the iteration.
129404// The provided context supersedes any context provided to the Context method.
129405func (c *RegionInstanceGroupManagersListPerInstanceConfigsCall) Pages(ctx context.Context, f func(*RegionInstanceGroupManagersListInstanceConfigsResp) error) error {
129406	c.ctx_ = ctx
129407	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
129408	for {
129409		x, err := c.Do()
129410		if err != nil {
129411			return err
129412		}
129413		if err := f(x); err != nil {
129414			return err
129415		}
129416		if x.NextPageToken == "" {
129417			return nil
129418		}
129419		c.PageToken(x.NextPageToken)
129420	}
129421}
129422
129423// method id "compute.regionInstanceGroupManagers.patch":
129424
129425type RegionInstanceGroupManagersPatchCall struct {
129426	s                    *Service
129427	project              string
129428	region               string
129429	instanceGroupManager string
129430	instancegroupmanager *InstanceGroupManager
129431	urlParams_           gensupport.URLParams
129432	ctx_                 context.Context
129433	header_              http.Header
129434}
129435
129436// Patch: Updates a managed instance group using the information that
129437// you specify in the request. This operation is marked as DONE when the
129438// group is patched even if the instances in the group are still in the
129439// process of being patched. You must separately verify the status of
129440// the individual instances with the listmanagedinstances method. This
129441// method supports PATCH semantics and uses the JSON merge patch format
129442// and processing rules. (== suppress_warning http-rest-shadowed ==)
129443func (r *RegionInstanceGroupManagersService) Patch(project string, region string, instanceGroupManager string, instancegroupmanager *InstanceGroupManager) *RegionInstanceGroupManagersPatchCall {
129444	c := &RegionInstanceGroupManagersPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
129445	c.project = project
129446	c.region = region
129447	c.instanceGroupManager = instanceGroupManager
129448	c.instancegroupmanager = instancegroupmanager
129449	return c
129450}
129451
129452// RequestId sets the optional parameter "requestId": An optional
129453// request ID to identify requests. Specify a unique request ID so that
129454// if you must retry your request, the server will know to ignore the
129455// request if it has already been completed.
129456//
129457// For example, consider a situation where you make an initial request
129458// and the request times out. If you make the request again with the
129459// same request ID, the server can check if original operation with the
129460// same request ID was received, and if so, will ignore the second
129461// request. This prevents clients from accidentally creating duplicate
129462// commitments.
129463//
129464// The request ID must be a valid UUID with the exception that zero UUID
129465// is not supported (00000000-0000-0000-0000-000000000000).
129466func (c *RegionInstanceGroupManagersPatchCall) RequestId(requestId string) *RegionInstanceGroupManagersPatchCall {
129467	c.urlParams_.Set("requestId", requestId)
129468	return c
129469}
129470
129471// Fields allows partial responses to be retrieved. See
129472// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
129473// for more information.
129474func (c *RegionInstanceGroupManagersPatchCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersPatchCall {
129475	c.urlParams_.Set("fields", googleapi.CombineFields(s))
129476	return c
129477}
129478
129479// Context sets the context to be used in this call's Do method. Any
129480// pending HTTP request will be aborted if the provided context is
129481// canceled.
129482func (c *RegionInstanceGroupManagersPatchCall) Context(ctx context.Context) *RegionInstanceGroupManagersPatchCall {
129483	c.ctx_ = ctx
129484	return c
129485}
129486
129487// Header returns an http.Header that can be modified by the caller to
129488// add HTTP headers to the request.
129489func (c *RegionInstanceGroupManagersPatchCall) Header() http.Header {
129490	if c.header_ == nil {
129491		c.header_ = make(http.Header)
129492	}
129493	return c.header_
129494}
129495
129496func (c *RegionInstanceGroupManagersPatchCall) doRequest(alt string) (*http.Response, error) {
129497	reqHeaders := make(http.Header)
129498	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
129499	for k, v := range c.header_ {
129500		reqHeaders[k] = v
129501	}
129502	reqHeaders.Set("User-Agent", c.s.userAgent())
129503	var body io.Reader = nil
129504	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanager)
129505	if err != nil {
129506		return nil, err
129507	}
129508	reqHeaders.Set("Content-Type", "application/json")
129509	c.urlParams_.Set("alt", alt)
129510	c.urlParams_.Set("prettyPrint", "false")
129511	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}")
129512	urls += "?" + c.urlParams_.Encode()
129513	req, err := http.NewRequest("PATCH", urls, body)
129514	if err != nil {
129515		return nil, err
129516	}
129517	req.Header = reqHeaders
129518	googleapi.Expand(req.URL, map[string]string{
129519		"project":              c.project,
129520		"region":               c.region,
129521		"instanceGroupManager": c.instanceGroupManager,
129522	})
129523	return gensupport.SendRequest(c.ctx_, c.s.client, req)
129524}
129525
129526// Do executes the "compute.regionInstanceGroupManagers.patch" call.
129527// Exactly one of *Operation or error will be non-nil. Any non-2xx
129528// status code is an error. Response headers are in either
129529// *Operation.ServerResponse.Header or (if a response was returned at
129530// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
129531// to check whether the returned error was because
129532// http.StatusNotModified was returned.
129533func (c *RegionInstanceGroupManagersPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
129534	gensupport.SetOptions(c.urlParams_, opts...)
129535	res, err := c.doRequest("json")
129536	if res != nil && res.StatusCode == http.StatusNotModified {
129537		if res.Body != nil {
129538			res.Body.Close()
129539		}
129540		return nil, &googleapi.Error{
129541			Code:   res.StatusCode,
129542			Header: res.Header,
129543		}
129544	}
129545	if err != nil {
129546		return nil, err
129547	}
129548	defer googleapi.CloseBody(res)
129549	if err := googleapi.CheckResponse(res); err != nil {
129550		return nil, err
129551	}
129552	ret := &Operation{
129553		ServerResponse: googleapi.ServerResponse{
129554			Header:         res.Header,
129555			HTTPStatusCode: res.StatusCode,
129556		},
129557	}
129558	target := &ret
129559	if err := gensupport.DecodeResponse(target, res); err != nil {
129560		return nil, err
129561	}
129562	return ret, nil
129563	// {
129564	//   "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. (== suppress_warning http-rest-shadowed ==)",
129565	//   "httpMethod": "PATCH",
129566	//   "id": "compute.regionInstanceGroupManagers.patch",
129567	//   "parameterOrder": [
129568	//     "project",
129569	//     "region",
129570	//     "instanceGroupManager"
129571	//   ],
129572	//   "parameters": {
129573	//     "instanceGroupManager": {
129574	//       "description": "The name of the instance group manager.",
129575	//       "location": "path",
129576	//       "required": true,
129577	//       "type": "string"
129578	//     },
129579	//     "project": {
129580	//       "description": "Project ID for this request.",
129581	//       "location": "path",
129582	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
129583	//       "required": true,
129584	//       "type": "string"
129585	//     },
129586	//     "region": {
129587	//       "description": "Name of the region scoping this request.",
129588	//       "location": "path",
129589	//       "required": true,
129590	//       "type": "string"
129591	//     },
129592	//     "requestId": {
129593	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
129594	//       "location": "query",
129595	//       "type": "string"
129596	//     }
129597	//   },
129598	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}",
129599	//   "request": {
129600	//     "$ref": "InstanceGroupManager"
129601	//   },
129602	//   "response": {
129603	//     "$ref": "Operation"
129604	//   },
129605	//   "scopes": [
129606	//     "https://www.googleapis.com/auth/cloud-platform",
129607	//     "https://www.googleapis.com/auth/compute"
129608	//   ]
129609	// }
129610
129611}
129612
129613// method id "compute.regionInstanceGroupManagers.patchPerInstanceConfigs":
129614
129615type RegionInstanceGroupManagersPatchPerInstanceConfigsCall struct {
129616	s                                                *Service
129617	project                                          string
129618	region                                           string
129619	instanceGroupManager                             string
129620	regioninstancegroupmanagerpatchinstanceconfigreq *RegionInstanceGroupManagerPatchInstanceConfigReq
129621	urlParams_                                       gensupport.URLParams
129622	ctx_                                             context.Context
129623	header_                                          http.Header
129624}
129625
129626// PatchPerInstanceConfigs: Insert or patch (for the ones that already
129627// exist) per-instance configs for the managed instance group.
129628// perInstanceConfig.instance serves as a key used to distinguish
129629// whether to perform insert or patch. (== suppress_warning
129630// http-rest-shadowed ==)
129631func (r *RegionInstanceGroupManagersService) PatchPerInstanceConfigs(project string, region string, instanceGroupManager string, regioninstancegroupmanagerpatchinstanceconfigreq *RegionInstanceGroupManagerPatchInstanceConfigReq) *RegionInstanceGroupManagersPatchPerInstanceConfigsCall {
129632	c := &RegionInstanceGroupManagersPatchPerInstanceConfigsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
129633	c.project = project
129634	c.region = region
129635	c.instanceGroupManager = instanceGroupManager
129636	c.regioninstancegroupmanagerpatchinstanceconfigreq = regioninstancegroupmanagerpatchinstanceconfigreq
129637	return c
129638}
129639
129640// RequestId sets the optional parameter "requestId": An optional
129641// request ID to identify requests. Specify a unique request ID so that
129642// if you must retry your request, the server will know to ignore the
129643// request if it has already been completed.
129644//
129645// For example, consider a situation where you make an initial request
129646// and the request times out. If you make the request again with the
129647// same request ID, the server can check if original operation with the
129648// same request ID was received, and if so, will ignore the second
129649// request. This prevents clients from accidentally creating duplicate
129650// commitments.
129651//
129652// The request ID must be a valid UUID with the exception that zero UUID
129653// is not supported (00000000-0000-0000-0000-000000000000).
129654func (c *RegionInstanceGroupManagersPatchPerInstanceConfigsCall) RequestId(requestId string) *RegionInstanceGroupManagersPatchPerInstanceConfigsCall {
129655	c.urlParams_.Set("requestId", requestId)
129656	return c
129657}
129658
129659// Fields allows partial responses to be retrieved. See
129660// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
129661// for more information.
129662func (c *RegionInstanceGroupManagersPatchPerInstanceConfigsCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersPatchPerInstanceConfigsCall {
129663	c.urlParams_.Set("fields", googleapi.CombineFields(s))
129664	return c
129665}
129666
129667// Context sets the context to be used in this call's Do method. Any
129668// pending HTTP request will be aborted if the provided context is
129669// canceled.
129670func (c *RegionInstanceGroupManagersPatchPerInstanceConfigsCall) Context(ctx context.Context) *RegionInstanceGroupManagersPatchPerInstanceConfigsCall {
129671	c.ctx_ = ctx
129672	return c
129673}
129674
129675// Header returns an http.Header that can be modified by the caller to
129676// add HTTP headers to the request.
129677func (c *RegionInstanceGroupManagersPatchPerInstanceConfigsCall) Header() http.Header {
129678	if c.header_ == nil {
129679		c.header_ = make(http.Header)
129680	}
129681	return c.header_
129682}
129683
129684func (c *RegionInstanceGroupManagersPatchPerInstanceConfigsCall) doRequest(alt string) (*http.Response, error) {
129685	reqHeaders := make(http.Header)
129686	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
129687	for k, v := range c.header_ {
129688		reqHeaders[k] = v
129689	}
129690	reqHeaders.Set("User-Agent", c.s.userAgent())
129691	var body io.Reader = nil
129692	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagerpatchinstanceconfigreq)
129693	if err != nil {
129694		return nil, err
129695	}
129696	reqHeaders.Set("Content-Type", "application/json")
129697	c.urlParams_.Set("alt", alt)
129698	c.urlParams_.Set("prettyPrint", "false")
129699	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/patchPerInstanceConfigs")
129700	urls += "?" + c.urlParams_.Encode()
129701	req, err := http.NewRequest("POST", urls, body)
129702	if err != nil {
129703		return nil, err
129704	}
129705	req.Header = reqHeaders
129706	googleapi.Expand(req.URL, map[string]string{
129707		"project":              c.project,
129708		"region":               c.region,
129709		"instanceGroupManager": c.instanceGroupManager,
129710	})
129711	return gensupport.SendRequest(c.ctx_, c.s.client, req)
129712}
129713
129714// Do executes the "compute.regionInstanceGroupManagers.patchPerInstanceConfigs" call.
129715// Exactly one of *Operation or error will be non-nil. Any non-2xx
129716// status code is an error. Response headers are in either
129717// *Operation.ServerResponse.Header or (if a response was returned at
129718// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
129719// to check whether the returned error was because
129720// http.StatusNotModified was returned.
129721func (c *RegionInstanceGroupManagersPatchPerInstanceConfigsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
129722	gensupport.SetOptions(c.urlParams_, opts...)
129723	res, err := c.doRequest("json")
129724	if res != nil && res.StatusCode == http.StatusNotModified {
129725		if res.Body != nil {
129726			res.Body.Close()
129727		}
129728		return nil, &googleapi.Error{
129729			Code:   res.StatusCode,
129730			Header: res.Header,
129731		}
129732	}
129733	if err != nil {
129734		return nil, err
129735	}
129736	defer googleapi.CloseBody(res)
129737	if err := googleapi.CheckResponse(res); err != nil {
129738		return nil, err
129739	}
129740	ret := &Operation{
129741		ServerResponse: googleapi.ServerResponse{
129742			Header:         res.Header,
129743			HTTPStatusCode: res.StatusCode,
129744		},
129745	}
129746	target := &ret
129747	if err := gensupport.DecodeResponse(target, res); err != nil {
129748		return nil, err
129749	}
129750	return ret, nil
129751	// {
129752	//   "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. (== suppress_warning http-rest-shadowed ==)",
129753	//   "httpMethod": "POST",
129754	//   "id": "compute.regionInstanceGroupManagers.patchPerInstanceConfigs",
129755	//   "parameterOrder": [
129756	//     "project",
129757	//     "region",
129758	//     "instanceGroupManager"
129759	//   ],
129760	//   "parameters": {
129761	//     "instanceGroupManager": {
129762	//       "description": "The name of the managed instance group. It should conform to RFC1035.",
129763	//       "location": "path",
129764	//       "required": true,
129765	//       "type": "string"
129766	//     },
129767	//     "project": {
129768	//       "description": "Project ID for this request.",
129769	//       "location": "path",
129770	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
129771	//       "required": true,
129772	//       "type": "string"
129773	//     },
129774	//     "region": {
129775	//       "description": "Name of the region scoping this request, should conform to RFC1035.",
129776	//       "location": "path",
129777	//       "required": true,
129778	//       "type": "string"
129779	//     },
129780	//     "requestId": {
129781	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
129782	//       "location": "query",
129783	//       "type": "string"
129784	//     }
129785	//   },
129786	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/patchPerInstanceConfigs",
129787	//   "request": {
129788	//     "$ref": "RegionInstanceGroupManagerPatchInstanceConfigReq"
129789	//   },
129790	//   "response": {
129791	//     "$ref": "Operation"
129792	//   },
129793	//   "scopes": [
129794	//     "https://www.googleapis.com/auth/cloud-platform",
129795	//     "https://www.googleapis.com/auth/compute"
129796	//   ]
129797	// }
129798
129799}
129800
129801// method id "compute.regionInstanceGroupManagers.recreateInstances":
129802
129803type RegionInstanceGroupManagersRecreateInstancesCall struct {
129804	s                                          *Service
129805	project                                    string
129806	region                                     string
129807	instanceGroupManager                       string
129808	regioninstancegroupmanagersrecreaterequest *RegionInstanceGroupManagersRecreateRequest
129809	urlParams_                                 gensupport.URLParams
129810	ctx_                                       context.Context
129811	header_                                    http.Header
129812}
129813
129814// RecreateInstances: Flags the specified instances in the managed
129815// instance group to be immediately recreated. The instances are deleted
129816// and recreated using the current instance template for the managed
129817// instance group. This operation is marked as DONE when the flag is set
129818// even if the instances have not yet been recreated. You must
129819// separately verify the status of the recreating action with the
129820// listmanagedinstances method.
129821//
129822// If the group is part of a backend service that has enabled connection
129823// draining, it can take up to 60 seconds after the connection draining
129824// duration has elapsed before the VM instance is removed or
129825// deleted.
129826//
129827// You can specify a maximum of 1000 instances with this method per
129828// request. (== suppress_warning http-rest-shadowed ==)
129829func (r *RegionInstanceGroupManagersService) RecreateInstances(project string, region string, instanceGroupManager string, regioninstancegroupmanagersrecreaterequest *RegionInstanceGroupManagersRecreateRequest) *RegionInstanceGroupManagersRecreateInstancesCall {
129830	c := &RegionInstanceGroupManagersRecreateInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
129831	c.project = project
129832	c.region = region
129833	c.instanceGroupManager = instanceGroupManager
129834	c.regioninstancegroupmanagersrecreaterequest = regioninstancegroupmanagersrecreaterequest
129835	return c
129836}
129837
129838// RequestId sets the optional parameter "requestId": An optional
129839// request ID to identify requests. Specify a unique request ID so that
129840// if you must retry your request, the server will know to ignore the
129841// request if it has already been completed.
129842//
129843// For example, consider a situation where you make an initial request
129844// and the request times out. If you make the request again with the
129845// same request ID, the server can check if original operation with the
129846// same request ID was received, and if so, will ignore the second
129847// request. This prevents clients from accidentally creating duplicate
129848// commitments.
129849//
129850// The request ID must be a valid UUID with the exception that zero UUID
129851// is not supported (00000000-0000-0000-0000-000000000000).
129852func (c *RegionInstanceGroupManagersRecreateInstancesCall) RequestId(requestId string) *RegionInstanceGroupManagersRecreateInstancesCall {
129853	c.urlParams_.Set("requestId", requestId)
129854	return c
129855}
129856
129857// Fields allows partial responses to be retrieved. See
129858// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
129859// for more information.
129860func (c *RegionInstanceGroupManagersRecreateInstancesCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersRecreateInstancesCall {
129861	c.urlParams_.Set("fields", googleapi.CombineFields(s))
129862	return c
129863}
129864
129865// Context sets the context to be used in this call's Do method. Any
129866// pending HTTP request will be aborted if the provided context is
129867// canceled.
129868func (c *RegionInstanceGroupManagersRecreateInstancesCall) Context(ctx context.Context) *RegionInstanceGroupManagersRecreateInstancesCall {
129869	c.ctx_ = ctx
129870	return c
129871}
129872
129873// Header returns an http.Header that can be modified by the caller to
129874// add HTTP headers to the request.
129875func (c *RegionInstanceGroupManagersRecreateInstancesCall) Header() http.Header {
129876	if c.header_ == nil {
129877		c.header_ = make(http.Header)
129878	}
129879	return c.header_
129880}
129881
129882func (c *RegionInstanceGroupManagersRecreateInstancesCall) doRequest(alt string) (*http.Response, error) {
129883	reqHeaders := make(http.Header)
129884	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
129885	for k, v := range c.header_ {
129886		reqHeaders[k] = v
129887	}
129888	reqHeaders.Set("User-Agent", c.s.userAgent())
129889	var body io.Reader = nil
129890	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagersrecreaterequest)
129891	if err != nil {
129892		return nil, err
129893	}
129894	reqHeaders.Set("Content-Type", "application/json")
129895	c.urlParams_.Set("alt", alt)
129896	c.urlParams_.Set("prettyPrint", "false")
129897	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/recreateInstances")
129898	urls += "?" + c.urlParams_.Encode()
129899	req, err := http.NewRequest("POST", urls, body)
129900	if err != nil {
129901		return nil, err
129902	}
129903	req.Header = reqHeaders
129904	googleapi.Expand(req.URL, map[string]string{
129905		"project":              c.project,
129906		"region":               c.region,
129907		"instanceGroupManager": c.instanceGroupManager,
129908	})
129909	return gensupport.SendRequest(c.ctx_, c.s.client, req)
129910}
129911
129912// Do executes the "compute.regionInstanceGroupManagers.recreateInstances" call.
129913// Exactly one of *Operation or error will be non-nil. Any non-2xx
129914// status code is an error. Response headers are in either
129915// *Operation.ServerResponse.Header or (if a response was returned at
129916// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
129917// to check whether the returned error was because
129918// http.StatusNotModified was returned.
129919func (c *RegionInstanceGroupManagersRecreateInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
129920	gensupport.SetOptions(c.urlParams_, opts...)
129921	res, err := c.doRequest("json")
129922	if res != nil && res.StatusCode == http.StatusNotModified {
129923		if res.Body != nil {
129924			res.Body.Close()
129925		}
129926		return nil, &googleapi.Error{
129927			Code:   res.StatusCode,
129928			Header: res.Header,
129929		}
129930	}
129931	if err != nil {
129932		return nil, err
129933	}
129934	defer googleapi.CloseBody(res)
129935	if err := googleapi.CheckResponse(res); err != nil {
129936		return nil, err
129937	}
129938	ret := &Operation{
129939		ServerResponse: googleapi.ServerResponse{
129940			Header:         res.Header,
129941			HTTPStatusCode: res.StatusCode,
129942		},
129943	}
129944	target := &ret
129945	if err := gensupport.DecodeResponse(target, res); err != nil {
129946		return nil, err
129947	}
129948	return ret, nil
129949	// {
129950	//   "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. (== suppress_warning http-rest-shadowed ==)",
129951	//   "httpMethod": "POST",
129952	//   "id": "compute.regionInstanceGroupManagers.recreateInstances",
129953	//   "parameterOrder": [
129954	//     "project",
129955	//     "region",
129956	//     "instanceGroupManager"
129957	//   ],
129958	//   "parameters": {
129959	//     "instanceGroupManager": {
129960	//       "description": "Name of the managed instance group.",
129961	//       "location": "path",
129962	//       "required": true,
129963	//       "type": "string"
129964	//     },
129965	//     "project": {
129966	//       "description": "Project ID for this request.",
129967	//       "location": "path",
129968	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
129969	//       "required": true,
129970	//       "type": "string"
129971	//     },
129972	//     "region": {
129973	//       "description": "Name of the region scoping this request.",
129974	//       "location": "path",
129975	//       "required": true,
129976	//       "type": "string"
129977	//     },
129978	//     "requestId": {
129979	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
129980	//       "location": "query",
129981	//       "type": "string"
129982	//     }
129983	//   },
129984	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/recreateInstances",
129985	//   "request": {
129986	//     "$ref": "RegionInstanceGroupManagersRecreateRequest"
129987	//   },
129988	//   "response": {
129989	//     "$ref": "Operation"
129990	//   },
129991	//   "scopes": [
129992	//     "https://www.googleapis.com/auth/cloud-platform",
129993	//     "https://www.googleapis.com/auth/compute"
129994	//   ]
129995	// }
129996
129997}
129998
129999// method id "compute.regionInstanceGroupManagers.resize":
130000
130001type RegionInstanceGroupManagersResizeCall struct {
130002	s                    *Service
130003	project              string
130004	region               string
130005	instanceGroupManager string
130006	urlParams_           gensupport.URLParams
130007	ctx_                 context.Context
130008	header_              http.Header
130009}
130010
130011// Resize: Changes the intended size of the managed instance group. If
130012// you increase the size, the group creates new instances using the
130013// current instance template. If you decrease the size, the group
130014// deletes one or more instances.
130015//
130016// The resize operation is marked DONE if the resize request is
130017// successful. The underlying actions take additional time. You must
130018// separately verify the status of the creating or deleting actions with
130019// the listmanagedinstances method.
130020//
130021// If the group is part of a backend service that has enabled connection
130022// draining, it can take up to 60 seconds after the connection draining
130023// duration has elapsed before the VM instance is removed or deleted.
130024// (== suppress_warning http-rest-shadowed ==)
130025func (r *RegionInstanceGroupManagersService) Resize(project string, region string, instanceGroupManager string, size int64) *RegionInstanceGroupManagersResizeCall {
130026	c := &RegionInstanceGroupManagersResizeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
130027	c.project = project
130028	c.region = region
130029	c.instanceGroupManager = instanceGroupManager
130030	c.urlParams_.Set("size", fmt.Sprint(size))
130031	return c
130032}
130033
130034// RequestId sets the optional parameter "requestId": An optional
130035// request ID to identify requests. Specify a unique request ID so that
130036// if you must retry your request, the server will know to ignore the
130037// request if it has already been completed.
130038//
130039// For example, consider a situation where you make an initial request
130040// and the request times out. If you make the request again with the
130041// same request ID, the server can check if original operation with the
130042// same request ID was received, and if so, will ignore the second
130043// request. This prevents clients from accidentally creating duplicate
130044// commitments.
130045//
130046// The request ID must be a valid UUID with the exception that zero UUID
130047// is not supported (00000000-0000-0000-0000-000000000000).
130048func (c *RegionInstanceGroupManagersResizeCall) RequestId(requestId string) *RegionInstanceGroupManagersResizeCall {
130049	c.urlParams_.Set("requestId", requestId)
130050	return c
130051}
130052
130053// Fields allows partial responses to be retrieved. See
130054// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
130055// for more information.
130056func (c *RegionInstanceGroupManagersResizeCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersResizeCall {
130057	c.urlParams_.Set("fields", googleapi.CombineFields(s))
130058	return c
130059}
130060
130061// Context sets the context to be used in this call's Do method. Any
130062// pending HTTP request will be aborted if the provided context is
130063// canceled.
130064func (c *RegionInstanceGroupManagersResizeCall) Context(ctx context.Context) *RegionInstanceGroupManagersResizeCall {
130065	c.ctx_ = ctx
130066	return c
130067}
130068
130069// Header returns an http.Header that can be modified by the caller to
130070// add HTTP headers to the request.
130071func (c *RegionInstanceGroupManagersResizeCall) Header() http.Header {
130072	if c.header_ == nil {
130073		c.header_ = make(http.Header)
130074	}
130075	return c.header_
130076}
130077
130078func (c *RegionInstanceGroupManagersResizeCall) doRequest(alt string) (*http.Response, error) {
130079	reqHeaders := make(http.Header)
130080	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
130081	for k, v := range c.header_ {
130082		reqHeaders[k] = v
130083	}
130084	reqHeaders.Set("User-Agent", c.s.userAgent())
130085	var body io.Reader = nil
130086	c.urlParams_.Set("alt", alt)
130087	c.urlParams_.Set("prettyPrint", "false")
130088	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/resize")
130089	urls += "?" + c.urlParams_.Encode()
130090	req, err := http.NewRequest("POST", urls, body)
130091	if err != nil {
130092		return nil, err
130093	}
130094	req.Header = reqHeaders
130095	googleapi.Expand(req.URL, map[string]string{
130096		"project":              c.project,
130097		"region":               c.region,
130098		"instanceGroupManager": c.instanceGroupManager,
130099	})
130100	return gensupport.SendRequest(c.ctx_, c.s.client, req)
130101}
130102
130103// Do executes the "compute.regionInstanceGroupManagers.resize" call.
130104// Exactly one of *Operation or error will be non-nil. Any non-2xx
130105// status code is an error. Response headers are in either
130106// *Operation.ServerResponse.Header or (if a response was returned at
130107// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
130108// to check whether the returned error was because
130109// http.StatusNotModified was returned.
130110func (c *RegionInstanceGroupManagersResizeCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
130111	gensupport.SetOptions(c.urlParams_, opts...)
130112	res, err := c.doRequest("json")
130113	if res != nil && res.StatusCode == http.StatusNotModified {
130114		if res.Body != nil {
130115			res.Body.Close()
130116		}
130117		return nil, &googleapi.Error{
130118			Code:   res.StatusCode,
130119			Header: res.Header,
130120		}
130121	}
130122	if err != nil {
130123		return nil, err
130124	}
130125	defer googleapi.CloseBody(res)
130126	if err := googleapi.CheckResponse(res); err != nil {
130127		return nil, err
130128	}
130129	ret := &Operation{
130130		ServerResponse: googleapi.ServerResponse{
130131			Header:         res.Header,
130132			HTTPStatusCode: res.StatusCode,
130133		},
130134	}
130135	target := &ret
130136	if err := gensupport.DecodeResponse(target, res); err != nil {
130137		return nil, err
130138	}
130139	return ret, nil
130140	// {
130141	//   "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. (== suppress_warning http-rest-shadowed ==)",
130142	//   "httpMethod": "POST",
130143	//   "id": "compute.regionInstanceGroupManagers.resize",
130144	//   "parameterOrder": [
130145	//     "project",
130146	//     "region",
130147	//     "instanceGroupManager",
130148	//     "size"
130149	//   ],
130150	//   "parameters": {
130151	//     "instanceGroupManager": {
130152	//       "description": "Name of the managed instance group.",
130153	//       "location": "path",
130154	//       "required": true,
130155	//       "type": "string"
130156	//     },
130157	//     "project": {
130158	//       "description": "Project ID for this request.",
130159	//       "location": "path",
130160	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
130161	//       "required": true,
130162	//       "type": "string"
130163	//     },
130164	//     "region": {
130165	//       "description": "Name of the region scoping this request.",
130166	//       "location": "path",
130167	//       "required": true,
130168	//       "type": "string"
130169	//     },
130170	//     "requestId": {
130171	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
130172	//       "location": "query",
130173	//       "type": "string"
130174	//     },
130175	//     "size": {
130176	//       "description": "Number of instances that should exist in this instance group manager.",
130177	//       "format": "int32",
130178	//       "location": "query",
130179	//       "minimum": "0",
130180	//       "required": true,
130181	//       "type": "integer"
130182	//     }
130183	//   },
130184	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/resize",
130185	//   "response": {
130186	//     "$ref": "Operation"
130187	//   },
130188	//   "scopes": [
130189	//     "https://www.googleapis.com/auth/cloud-platform",
130190	//     "https://www.googleapis.com/auth/compute"
130191	//   ]
130192	// }
130193
130194}
130195
130196// method id "compute.regionInstanceGroupManagers.setAutoHealingPolicies":
130197
130198type RegionInstanceGroupManagersSetAutoHealingPoliciesCall struct {
130199	s                                                *Service
130200	project                                          string
130201	region                                           string
130202	instanceGroupManager                             string
130203	regioninstancegroupmanagerssetautohealingrequest *RegionInstanceGroupManagersSetAutoHealingRequest
130204	urlParams_                                       gensupport.URLParams
130205	ctx_                                             context.Context
130206	header_                                          http.Header
130207}
130208
130209// SetAutoHealingPolicies: Modifies the autohealing policy for the
130210// instances in this managed instance group. [Deprecated] This method is
130211// deprecated. Please use Patch instead. (== suppress_warning
130212// http-rest-shadowed ==)
130213func (r *RegionInstanceGroupManagersService) SetAutoHealingPolicies(project string, region string, instanceGroupManager string, regioninstancegroupmanagerssetautohealingrequest *RegionInstanceGroupManagersSetAutoHealingRequest) *RegionInstanceGroupManagersSetAutoHealingPoliciesCall {
130214	c := &RegionInstanceGroupManagersSetAutoHealingPoliciesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
130215	c.project = project
130216	c.region = region
130217	c.instanceGroupManager = instanceGroupManager
130218	c.regioninstancegroupmanagerssetautohealingrequest = regioninstancegroupmanagerssetautohealingrequest
130219	return c
130220}
130221
130222// RequestId sets the optional parameter "requestId": An optional
130223// request ID to identify requests. Specify a unique request ID so that
130224// if you must retry your request, the server will know to ignore the
130225// request if it has already been completed.
130226//
130227// For example, consider a situation where you make an initial request
130228// and the request times out. If you make the request again with the
130229// same request ID, the server can check if original operation with the
130230// same request ID was received, and if so, will ignore the second
130231// request. This prevents clients from accidentally creating duplicate
130232// commitments.
130233//
130234// The request ID must be a valid UUID with the exception that zero UUID
130235// is not supported (00000000-0000-0000-0000-000000000000).
130236func (c *RegionInstanceGroupManagersSetAutoHealingPoliciesCall) RequestId(requestId string) *RegionInstanceGroupManagersSetAutoHealingPoliciesCall {
130237	c.urlParams_.Set("requestId", requestId)
130238	return c
130239}
130240
130241// Fields allows partial responses to be retrieved. See
130242// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
130243// for more information.
130244func (c *RegionInstanceGroupManagersSetAutoHealingPoliciesCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersSetAutoHealingPoliciesCall {
130245	c.urlParams_.Set("fields", googleapi.CombineFields(s))
130246	return c
130247}
130248
130249// Context sets the context to be used in this call's Do method. Any
130250// pending HTTP request will be aborted if the provided context is
130251// canceled.
130252func (c *RegionInstanceGroupManagersSetAutoHealingPoliciesCall) Context(ctx context.Context) *RegionInstanceGroupManagersSetAutoHealingPoliciesCall {
130253	c.ctx_ = ctx
130254	return c
130255}
130256
130257// Header returns an http.Header that can be modified by the caller to
130258// add HTTP headers to the request.
130259func (c *RegionInstanceGroupManagersSetAutoHealingPoliciesCall) Header() http.Header {
130260	if c.header_ == nil {
130261		c.header_ = make(http.Header)
130262	}
130263	return c.header_
130264}
130265
130266func (c *RegionInstanceGroupManagersSetAutoHealingPoliciesCall) doRequest(alt string) (*http.Response, error) {
130267	reqHeaders := make(http.Header)
130268	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
130269	for k, v := range c.header_ {
130270		reqHeaders[k] = v
130271	}
130272	reqHeaders.Set("User-Agent", c.s.userAgent())
130273	var body io.Reader = nil
130274	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagerssetautohealingrequest)
130275	if err != nil {
130276		return nil, err
130277	}
130278	reqHeaders.Set("Content-Type", "application/json")
130279	c.urlParams_.Set("alt", alt)
130280	c.urlParams_.Set("prettyPrint", "false")
130281	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/setAutoHealingPolicies")
130282	urls += "?" + c.urlParams_.Encode()
130283	req, err := http.NewRequest("POST", urls, body)
130284	if err != nil {
130285		return nil, err
130286	}
130287	req.Header = reqHeaders
130288	googleapi.Expand(req.URL, map[string]string{
130289		"project":              c.project,
130290		"region":               c.region,
130291		"instanceGroupManager": c.instanceGroupManager,
130292	})
130293	return gensupport.SendRequest(c.ctx_, c.s.client, req)
130294}
130295
130296// Do executes the "compute.regionInstanceGroupManagers.setAutoHealingPolicies" call.
130297// Exactly one of *Operation or error will be non-nil. Any non-2xx
130298// status code is an error. Response headers are in either
130299// *Operation.ServerResponse.Header or (if a response was returned at
130300// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
130301// to check whether the returned error was because
130302// http.StatusNotModified was returned.
130303func (c *RegionInstanceGroupManagersSetAutoHealingPoliciesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
130304	gensupport.SetOptions(c.urlParams_, opts...)
130305	res, err := c.doRequest("json")
130306	if res != nil && res.StatusCode == http.StatusNotModified {
130307		if res.Body != nil {
130308			res.Body.Close()
130309		}
130310		return nil, &googleapi.Error{
130311			Code:   res.StatusCode,
130312			Header: res.Header,
130313		}
130314	}
130315	if err != nil {
130316		return nil, err
130317	}
130318	defer googleapi.CloseBody(res)
130319	if err := googleapi.CheckResponse(res); err != nil {
130320		return nil, err
130321	}
130322	ret := &Operation{
130323		ServerResponse: googleapi.ServerResponse{
130324			Header:         res.Header,
130325			HTTPStatusCode: res.StatusCode,
130326		},
130327	}
130328	target := &ret
130329	if err := gensupport.DecodeResponse(target, res); err != nil {
130330		return nil, err
130331	}
130332	return ret, nil
130333	// {
130334	//   "description": "Modifies the autohealing policy for the instances in this managed instance group. [Deprecated] This method is deprecated. Please use Patch instead. (== suppress_warning http-rest-shadowed ==)",
130335	//   "httpMethod": "POST",
130336	//   "id": "compute.regionInstanceGroupManagers.setAutoHealingPolicies",
130337	//   "parameterOrder": [
130338	//     "project",
130339	//     "region",
130340	//     "instanceGroupManager"
130341	//   ],
130342	//   "parameters": {
130343	//     "instanceGroupManager": {
130344	//       "description": "Name of the managed instance group.",
130345	//       "location": "path",
130346	//       "required": true,
130347	//       "type": "string"
130348	//     },
130349	//     "project": {
130350	//       "description": "Project ID for this request.",
130351	//       "location": "path",
130352	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
130353	//       "required": true,
130354	//       "type": "string"
130355	//     },
130356	//     "region": {
130357	//       "description": "Name of the region scoping this request.",
130358	//       "location": "path",
130359	//       "required": true,
130360	//       "type": "string"
130361	//     },
130362	//     "requestId": {
130363	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
130364	//       "location": "query",
130365	//       "type": "string"
130366	//     }
130367	//   },
130368	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/setAutoHealingPolicies",
130369	//   "request": {
130370	//     "$ref": "RegionInstanceGroupManagersSetAutoHealingRequest"
130371	//   },
130372	//   "response": {
130373	//     "$ref": "Operation"
130374	//   },
130375	//   "scopes": [
130376	//     "https://www.googleapis.com/auth/cloud-platform",
130377	//     "https://www.googleapis.com/auth/compute"
130378	//   ]
130379	// }
130380
130381}
130382
130383// method id "compute.regionInstanceGroupManagers.setInstanceTemplate":
130384
130385type RegionInstanceGroupManagersSetInstanceTemplateCall struct {
130386	s                                             *Service
130387	project                                       string
130388	region                                        string
130389	instanceGroupManager                          string
130390	regioninstancegroupmanagerssettemplaterequest *RegionInstanceGroupManagersSetTemplateRequest
130391	urlParams_                                    gensupport.URLParams
130392	ctx_                                          context.Context
130393	header_                                       http.Header
130394}
130395
130396// SetInstanceTemplate: Sets the instance template to use when creating
130397// new instances or recreating instances in this group. Existing
130398// instances are not affected. (== suppress_warning http-rest-shadowed
130399// ==)
130400func (r *RegionInstanceGroupManagersService) SetInstanceTemplate(project string, region string, instanceGroupManager string, regioninstancegroupmanagerssettemplaterequest *RegionInstanceGroupManagersSetTemplateRequest) *RegionInstanceGroupManagersSetInstanceTemplateCall {
130401	c := &RegionInstanceGroupManagersSetInstanceTemplateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
130402	c.project = project
130403	c.region = region
130404	c.instanceGroupManager = instanceGroupManager
130405	c.regioninstancegroupmanagerssettemplaterequest = regioninstancegroupmanagerssettemplaterequest
130406	return c
130407}
130408
130409// RequestId sets the optional parameter "requestId": An optional
130410// request ID to identify requests. Specify a unique request ID so that
130411// if you must retry your request, the server will know to ignore the
130412// request if it has already been completed.
130413//
130414// For example, consider a situation where you make an initial request
130415// and the request times out. If you make the request again with the
130416// same request ID, the server can check if original operation with the
130417// same request ID was received, and if so, will ignore the second
130418// request. This prevents clients from accidentally creating duplicate
130419// commitments.
130420//
130421// The request ID must be a valid UUID with the exception that zero UUID
130422// is not supported (00000000-0000-0000-0000-000000000000).
130423func (c *RegionInstanceGroupManagersSetInstanceTemplateCall) RequestId(requestId string) *RegionInstanceGroupManagersSetInstanceTemplateCall {
130424	c.urlParams_.Set("requestId", requestId)
130425	return c
130426}
130427
130428// Fields allows partial responses to be retrieved. See
130429// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
130430// for more information.
130431func (c *RegionInstanceGroupManagersSetInstanceTemplateCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersSetInstanceTemplateCall {
130432	c.urlParams_.Set("fields", googleapi.CombineFields(s))
130433	return c
130434}
130435
130436// Context sets the context to be used in this call's Do method. Any
130437// pending HTTP request will be aborted if the provided context is
130438// canceled.
130439func (c *RegionInstanceGroupManagersSetInstanceTemplateCall) Context(ctx context.Context) *RegionInstanceGroupManagersSetInstanceTemplateCall {
130440	c.ctx_ = ctx
130441	return c
130442}
130443
130444// Header returns an http.Header that can be modified by the caller to
130445// add HTTP headers to the request.
130446func (c *RegionInstanceGroupManagersSetInstanceTemplateCall) Header() http.Header {
130447	if c.header_ == nil {
130448		c.header_ = make(http.Header)
130449	}
130450	return c.header_
130451}
130452
130453func (c *RegionInstanceGroupManagersSetInstanceTemplateCall) doRequest(alt string) (*http.Response, error) {
130454	reqHeaders := make(http.Header)
130455	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
130456	for k, v := range c.header_ {
130457		reqHeaders[k] = v
130458	}
130459	reqHeaders.Set("User-Agent", c.s.userAgent())
130460	var body io.Reader = nil
130461	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagerssettemplaterequest)
130462	if err != nil {
130463		return nil, err
130464	}
130465	reqHeaders.Set("Content-Type", "application/json")
130466	c.urlParams_.Set("alt", alt)
130467	c.urlParams_.Set("prettyPrint", "false")
130468	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/setInstanceTemplate")
130469	urls += "?" + c.urlParams_.Encode()
130470	req, err := http.NewRequest("POST", urls, body)
130471	if err != nil {
130472		return nil, err
130473	}
130474	req.Header = reqHeaders
130475	googleapi.Expand(req.URL, map[string]string{
130476		"project":              c.project,
130477		"region":               c.region,
130478		"instanceGroupManager": c.instanceGroupManager,
130479	})
130480	return gensupport.SendRequest(c.ctx_, c.s.client, req)
130481}
130482
130483// Do executes the "compute.regionInstanceGroupManagers.setInstanceTemplate" call.
130484// Exactly one of *Operation or error will be non-nil. Any non-2xx
130485// status code is an error. Response headers are in either
130486// *Operation.ServerResponse.Header or (if a response was returned at
130487// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
130488// to check whether the returned error was because
130489// http.StatusNotModified was returned.
130490func (c *RegionInstanceGroupManagersSetInstanceTemplateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
130491	gensupport.SetOptions(c.urlParams_, opts...)
130492	res, err := c.doRequest("json")
130493	if res != nil && res.StatusCode == http.StatusNotModified {
130494		if res.Body != nil {
130495			res.Body.Close()
130496		}
130497		return nil, &googleapi.Error{
130498			Code:   res.StatusCode,
130499			Header: res.Header,
130500		}
130501	}
130502	if err != nil {
130503		return nil, err
130504	}
130505	defer googleapi.CloseBody(res)
130506	if err := googleapi.CheckResponse(res); err != nil {
130507		return nil, err
130508	}
130509	ret := &Operation{
130510		ServerResponse: googleapi.ServerResponse{
130511			Header:         res.Header,
130512			HTTPStatusCode: res.StatusCode,
130513		},
130514	}
130515	target := &ret
130516	if err := gensupport.DecodeResponse(target, res); err != nil {
130517		return nil, err
130518	}
130519	return ret, nil
130520	// {
130521	//   "description": "Sets the instance template to use when creating new instances or recreating instances in this group. Existing instances are not affected. (== suppress_warning http-rest-shadowed ==)",
130522	//   "httpMethod": "POST",
130523	//   "id": "compute.regionInstanceGroupManagers.setInstanceTemplate",
130524	//   "parameterOrder": [
130525	//     "project",
130526	//     "region",
130527	//     "instanceGroupManager"
130528	//   ],
130529	//   "parameters": {
130530	//     "instanceGroupManager": {
130531	//       "description": "The name of the managed instance group.",
130532	//       "location": "path",
130533	//       "required": true,
130534	//       "type": "string"
130535	//     },
130536	//     "project": {
130537	//       "description": "Project ID for this request.",
130538	//       "location": "path",
130539	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
130540	//       "required": true,
130541	//       "type": "string"
130542	//     },
130543	//     "region": {
130544	//       "description": "Name of the region scoping this request.",
130545	//       "location": "path",
130546	//       "required": true,
130547	//       "type": "string"
130548	//     },
130549	//     "requestId": {
130550	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
130551	//       "location": "query",
130552	//       "type": "string"
130553	//     }
130554	//   },
130555	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/setInstanceTemplate",
130556	//   "request": {
130557	//     "$ref": "RegionInstanceGroupManagersSetTemplateRequest"
130558	//   },
130559	//   "response": {
130560	//     "$ref": "Operation"
130561	//   },
130562	//   "scopes": [
130563	//     "https://www.googleapis.com/auth/cloud-platform",
130564	//     "https://www.googleapis.com/auth/compute"
130565	//   ]
130566	// }
130567
130568}
130569
130570// method id "compute.regionInstanceGroupManagers.setTargetPools":
130571
130572type RegionInstanceGroupManagersSetTargetPoolsCall struct {
130573	s                                                *Service
130574	project                                          string
130575	region                                           string
130576	instanceGroupManager                             string
130577	regioninstancegroupmanagerssettargetpoolsrequest *RegionInstanceGroupManagersSetTargetPoolsRequest
130578	urlParams_                                       gensupport.URLParams
130579	ctx_                                             context.Context
130580	header_                                          http.Header
130581}
130582
130583// SetTargetPools: Modifies the target pools to which all new instances
130584// in this group are assigned. Existing instances in the group are not
130585// affected. (== suppress_warning http-rest-shadowed ==)
130586func (r *RegionInstanceGroupManagersService) SetTargetPools(project string, region string, instanceGroupManager string, regioninstancegroupmanagerssettargetpoolsrequest *RegionInstanceGroupManagersSetTargetPoolsRequest) *RegionInstanceGroupManagersSetTargetPoolsCall {
130587	c := &RegionInstanceGroupManagersSetTargetPoolsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
130588	c.project = project
130589	c.region = region
130590	c.instanceGroupManager = instanceGroupManager
130591	c.regioninstancegroupmanagerssettargetpoolsrequest = regioninstancegroupmanagerssettargetpoolsrequest
130592	return c
130593}
130594
130595// RequestId sets the optional parameter "requestId": An optional
130596// request ID to identify requests. Specify a unique request ID so that
130597// if you must retry your request, the server will know to ignore the
130598// request if it has already been completed.
130599//
130600// For example, consider a situation where you make an initial request
130601// and the request times out. If you make the request again with the
130602// same request ID, the server can check if original operation with the
130603// same request ID was received, and if so, will ignore the second
130604// request. This prevents clients from accidentally creating duplicate
130605// commitments.
130606//
130607// The request ID must be a valid UUID with the exception that zero UUID
130608// is not supported (00000000-0000-0000-0000-000000000000).
130609func (c *RegionInstanceGroupManagersSetTargetPoolsCall) RequestId(requestId string) *RegionInstanceGroupManagersSetTargetPoolsCall {
130610	c.urlParams_.Set("requestId", requestId)
130611	return c
130612}
130613
130614// Fields allows partial responses to be retrieved. See
130615// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
130616// for more information.
130617func (c *RegionInstanceGroupManagersSetTargetPoolsCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersSetTargetPoolsCall {
130618	c.urlParams_.Set("fields", googleapi.CombineFields(s))
130619	return c
130620}
130621
130622// Context sets the context to be used in this call's Do method. Any
130623// pending HTTP request will be aborted if the provided context is
130624// canceled.
130625func (c *RegionInstanceGroupManagersSetTargetPoolsCall) Context(ctx context.Context) *RegionInstanceGroupManagersSetTargetPoolsCall {
130626	c.ctx_ = ctx
130627	return c
130628}
130629
130630// Header returns an http.Header that can be modified by the caller to
130631// add HTTP headers to the request.
130632func (c *RegionInstanceGroupManagersSetTargetPoolsCall) Header() http.Header {
130633	if c.header_ == nil {
130634		c.header_ = make(http.Header)
130635	}
130636	return c.header_
130637}
130638
130639func (c *RegionInstanceGroupManagersSetTargetPoolsCall) doRequest(alt string) (*http.Response, error) {
130640	reqHeaders := make(http.Header)
130641	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
130642	for k, v := range c.header_ {
130643		reqHeaders[k] = v
130644	}
130645	reqHeaders.Set("User-Agent", c.s.userAgent())
130646	var body io.Reader = nil
130647	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagerssettargetpoolsrequest)
130648	if err != nil {
130649		return nil, err
130650	}
130651	reqHeaders.Set("Content-Type", "application/json")
130652	c.urlParams_.Set("alt", alt)
130653	c.urlParams_.Set("prettyPrint", "false")
130654	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/setTargetPools")
130655	urls += "?" + c.urlParams_.Encode()
130656	req, err := http.NewRequest("POST", urls, body)
130657	if err != nil {
130658		return nil, err
130659	}
130660	req.Header = reqHeaders
130661	googleapi.Expand(req.URL, map[string]string{
130662		"project":              c.project,
130663		"region":               c.region,
130664		"instanceGroupManager": c.instanceGroupManager,
130665	})
130666	return gensupport.SendRequest(c.ctx_, c.s.client, req)
130667}
130668
130669// Do executes the "compute.regionInstanceGroupManagers.setTargetPools" call.
130670// Exactly one of *Operation or error will be non-nil. Any non-2xx
130671// status code is an error. Response headers are in either
130672// *Operation.ServerResponse.Header or (if a response was returned at
130673// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
130674// to check whether the returned error was because
130675// http.StatusNotModified was returned.
130676func (c *RegionInstanceGroupManagersSetTargetPoolsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
130677	gensupport.SetOptions(c.urlParams_, opts...)
130678	res, err := c.doRequest("json")
130679	if res != nil && res.StatusCode == http.StatusNotModified {
130680		if res.Body != nil {
130681			res.Body.Close()
130682		}
130683		return nil, &googleapi.Error{
130684			Code:   res.StatusCode,
130685			Header: res.Header,
130686		}
130687	}
130688	if err != nil {
130689		return nil, err
130690	}
130691	defer googleapi.CloseBody(res)
130692	if err := googleapi.CheckResponse(res); err != nil {
130693		return nil, err
130694	}
130695	ret := &Operation{
130696		ServerResponse: googleapi.ServerResponse{
130697			Header:         res.Header,
130698			HTTPStatusCode: res.StatusCode,
130699		},
130700	}
130701	target := &ret
130702	if err := gensupport.DecodeResponse(target, res); err != nil {
130703		return nil, err
130704	}
130705	return ret, nil
130706	// {
130707	//   "description": "Modifies the target pools to which all new instances in this group are assigned. Existing instances in the group are not affected. (== suppress_warning http-rest-shadowed ==)",
130708	//   "httpMethod": "POST",
130709	//   "id": "compute.regionInstanceGroupManagers.setTargetPools",
130710	//   "parameterOrder": [
130711	//     "project",
130712	//     "region",
130713	//     "instanceGroupManager"
130714	//   ],
130715	//   "parameters": {
130716	//     "instanceGroupManager": {
130717	//       "description": "Name of the managed instance group.",
130718	//       "location": "path",
130719	//       "required": true,
130720	//       "type": "string"
130721	//     },
130722	//     "project": {
130723	//       "description": "Project ID for this request.",
130724	//       "location": "path",
130725	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
130726	//       "required": true,
130727	//       "type": "string"
130728	//     },
130729	//     "region": {
130730	//       "description": "Name of the region scoping this request.",
130731	//       "location": "path",
130732	//       "required": true,
130733	//       "type": "string"
130734	//     },
130735	//     "requestId": {
130736	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
130737	//       "location": "query",
130738	//       "type": "string"
130739	//     }
130740	//   },
130741	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/setTargetPools",
130742	//   "request": {
130743	//     "$ref": "RegionInstanceGroupManagersSetTargetPoolsRequest"
130744	//   },
130745	//   "response": {
130746	//     "$ref": "Operation"
130747	//   },
130748	//   "scopes": [
130749	//     "https://www.googleapis.com/auth/cloud-platform",
130750	//     "https://www.googleapis.com/auth/compute"
130751	//   ]
130752	// }
130753
130754}
130755
130756// method id "compute.regionInstanceGroupManagers.testIamPermissions":
130757
130758type RegionInstanceGroupManagersTestIamPermissionsCall struct {
130759	s                      *Service
130760	project                string
130761	region                 string
130762	resource               string
130763	testpermissionsrequest *TestPermissionsRequest
130764	urlParams_             gensupport.URLParams
130765	ctx_                   context.Context
130766	header_                http.Header
130767}
130768
130769// TestIamPermissions: Returns permissions that a caller has on the
130770// specified resource. (== suppress_warning http-rest-shadowed ==)
130771func (r *RegionInstanceGroupManagersService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *RegionInstanceGroupManagersTestIamPermissionsCall {
130772	c := &RegionInstanceGroupManagersTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
130773	c.project = project
130774	c.region = region
130775	c.resource = resource
130776	c.testpermissionsrequest = testpermissionsrequest
130777	return c
130778}
130779
130780// Fields allows partial responses to be retrieved. See
130781// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
130782// for more information.
130783func (c *RegionInstanceGroupManagersTestIamPermissionsCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersTestIamPermissionsCall {
130784	c.urlParams_.Set("fields", googleapi.CombineFields(s))
130785	return c
130786}
130787
130788// Context sets the context to be used in this call's Do method. Any
130789// pending HTTP request will be aborted if the provided context is
130790// canceled.
130791func (c *RegionInstanceGroupManagersTestIamPermissionsCall) Context(ctx context.Context) *RegionInstanceGroupManagersTestIamPermissionsCall {
130792	c.ctx_ = ctx
130793	return c
130794}
130795
130796// Header returns an http.Header that can be modified by the caller to
130797// add HTTP headers to the request.
130798func (c *RegionInstanceGroupManagersTestIamPermissionsCall) Header() http.Header {
130799	if c.header_ == nil {
130800		c.header_ = make(http.Header)
130801	}
130802	return c.header_
130803}
130804
130805func (c *RegionInstanceGroupManagersTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
130806	reqHeaders := make(http.Header)
130807	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
130808	for k, v := range c.header_ {
130809		reqHeaders[k] = v
130810	}
130811	reqHeaders.Set("User-Agent", c.s.userAgent())
130812	var body io.Reader = nil
130813	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
130814	if err != nil {
130815		return nil, err
130816	}
130817	reqHeaders.Set("Content-Type", "application/json")
130818	c.urlParams_.Set("alt", alt)
130819	c.urlParams_.Set("prettyPrint", "false")
130820	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{resource}/testIamPermissions")
130821	urls += "?" + c.urlParams_.Encode()
130822	req, err := http.NewRequest("POST", urls, body)
130823	if err != nil {
130824		return nil, err
130825	}
130826	req.Header = reqHeaders
130827	googleapi.Expand(req.URL, map[string]string{
130828		"project":  c.project,
130829		"region":   c.region,
130830		"resource": c.resource,
130831	})
130832	return gensupport.SendRequest(c.ctx_, c.s.client, req)
130833}
130834
130835// Do executes the "compute.regionInstanceGroupManagers.testIamPermissions" call.
130836// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
130837// non-2xx status code is an error. Response headers are in either
130838// *TestPermissionsResponse.ServerResponse.Header or (if a response was
130839// returned at all) in error.(*googleapi.Error).Header. Use
130840// googleapi.IsNotModified to check whether the returned error was
130841// because http.StatusNotModified was returned.
130842func (c *RegionInstanceGroupManagersTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
130843	gensupport.SetOptions(c.urlParams_, opts...)
130844	res, err := c.doRequest("json")
130845	if res != nil && res.StatusCode == http.StatusNotModified {
130846		if res.Body != nil {
130847			res.Body.Close()
130848		}
130849		return nil, &googleapi.Error{
130850			Code:   res.StatusCode,
130851			Header: res.Header,
130852		}
130853	}
130854	if err != nil {
130855		return nil, err
130856	}
130857	defer googleapi.CloseBody(res)
130858	if err := googleapi.CheckResponse(res); err != nil {
130859		return nil, err
130860	}
130861	ret := &TestPermissionsResponse{
130862		ServerResponse: googleapi.ServerResponse{
130863			Header:         res.Header,
130864			HTTPStatusCode: res.StatusCode,
130865		},
130866	}
130867	target := &ret
130868	if err := gensupport.DecodeResponse(target, res); err != nil {
130869		return nil, err
130870	}
130871	return ret, nil
130872	// {
130873	//   "description": "Returns permissions that a caller has on the specified resource. (== suppress_warning http-rest-shadowed ==)",
130874	//   "httpMethod": "POST",
130875	//   "id": "compute.regionInstanceGroupManagers.testIamPermissions",
130876	//   "parameterOrder": [
130877	//     "project",
130878	//     "region",
130879	//     "resource"
130880	//   ],
130881	//   "parameters": {
130882	//     "project": {
130883	//       "description": "Project ID for this request.",
130884	//       "location": "path",
130885	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
130886	//       "required": true,
130887	//       "type": "string"
130888	//     },
130889	//     "region": {
130890	//       "description": "The name of the region for this request.",
130891	//       "location": "path",
130892	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
130893	//       "required": true,
130894	//       "type": "string"
130895	//     },
130896	//     "resource": {
130897	//       "description": "Name or id of the resource for this request.",
130898	//       "location": "path",
130899	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
130900	//       "required": true,
130901	//       "type": "string"
130902	//     }
130903	//   },
130904	//   "path": "{project}/regions/{region}/instanceGroupManagers/{resource}/testIamPermissions",
130905	//   "request": {
130906	//     "$ref": "TestPermissionsRequest"
130907	//   },
130908	//   "response": {
130909	//     "$ref": "TestPermissionsResponse"
130910	//   },
130911	//   "scopes": [
130912	//     "https://www.googleapis.com/auth/cloud-platform",
130913	//     "https://www.googleapis.com/auth/compute",
130914	//     "https://www.googleapis.com/auth/compute.readonly"
130915	//   ]
130916	// }
130917
130918}
130919
130920// method id "compute.regionInstanceGroupManagers.update":
130921
130922type RegionInstanceGroupManagersUpdateCall struct {
130923	s                    *Service
130924	project              string
130925	region               string
130926	instanceGroupManager string
130927	instancegroupmanager *InstanceGroupManager
130928	urlParams_           gensupport.URLParams
130929	ctx_                 context.Context
130930	header_              http.Header
130931}
130932
130933// Update: Updates a managed instance group using the information that
130934// you specify in the request. This operation is marked as DONE when the
130935// group is updated even if the instances in the group have not yet been
130936// updated. You must separately verify the status of the individual
130937// instances with the listmanagedinstances method. (== suppress_warning
130938// http-rest-shadowed ==)
130939func (r *RegionInstanceGroupManagersService) Update(project string, region string, instanceGroupManager string, instancegroupmanager *InstanceGroupManager) *RegionInstanceGroupManagersUpdateCall {
130940	c := &RegionInstanceGroupManagersUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
130941	c.project = project
130942	c.region = region
130943	c.instanceGroupManager = instanceGroupManager
130944	c.instancegroupmanager = instancegroupmanager
130945	return c
130946}
130947
130948// RequestId sets the optional parameter "requestId": An optional
130949// request ID to identify requests. Specify a unique request ID so that
130950// if you must retry your request, the server will know to ignore the
130951// request if it has already been completed.
130952//
130953// For example, consider a situation where you make an initial request
130954// and the request times out. If you make the request again with the
130955// same request ID, the server can check if original operation with the
130956// same request ID was received, and if so, will ignore the second
130957// request. This prevents clients from accidentally creating duplicate
130958// commitments.
130959//
130960// The request ID must be a valid UUID with the exception that zero UUID
130961// is not supported (00000000-0000-0000-0000-000000000000).
130962func (c *RegionInstanceGroupManagersUpdateCall) RequestId(requestId string) *RegionInstanceGroupManagersUpdateCall {
130963	c.urlParams_.Set("requestId", requestId)
130964	return c
130965}
130966
130967// Fields allows partial responses to be retrieved. See
130968// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
130969// for more information.
130970func (c *RegionInstanceGroupManagersUpdateCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersUpdateCall {
130971	c.urlParams_.Set("fields", googleapi.CombineFields(s))
130972	return c
130973}
130974
130975// Context sets the context to be used in this call's Do method. Any
130976// pending HTTP request will be aborted if the provided context is
130977// canceled.
130978func (c *RegionInstanceGroupManagersUpdateCall) Context(ctx context.Context) *RegionInstanceGroupManagersUpdateCall {
130979	c.ctx_ = ctx
130980	return c
130981}
130982
130983// Header returns an http.Header that can be modified by the caller to
130984// add HTTP headers to the request.
130985func (c *RegionInstanceGroupManagersUpdateCall) Header() http.Header {
130986	if c.header_ == nil {
130987		c.header_ = make(http.Header)
130988	}
130989	return c.header_
130990}
130991
130992func (c *RegionInstanceGroupManagersUpdateCall) doRequest(alt string) (*http.Response, error) {
130993	reqHeaders := make(http.Header)
130994	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
130995	for k, v := range c.header_ {
130996		reqHeaders[k] = v
130997	}
130998	reqHeaders.Set("User-Agent", c.s.userAgent())
130999	var body io.Reader = nil
131000	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanager)
131001	if err != nil {
131002		return nil, err
131003	}
131004	reqHeaders.Set("Content-Type", "application/json")
131005	c.urlParams_.Set("alt", alt)
131006	c.urlParams_.Set("prettyPrint", "false")
131007	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}")
131008	urls += "?" + c.urlParams_.Encode()
131009	req, err := http.NewRequest("PUT", urls, body)
131010	if err != nil {
131011		return nil, err
131012	}
131013	req.Header = reqHeaders
131014	googleapi.Expand(req.URL, map[string]string{
131015		"project":              c.project,
131016		"region":               c.region,
131017		"instanceGroupManager": c.instanceGroupManager,
131018	})
131019	return gensupport.SendRequest(c.ctx_, c.s.client, req)
131020}
131021
131022// Do executes the "compute.regionInstanceGroupManagers.update" call.
131023// Exactly one of *Operation or error will be non-nil. Any non-2xx
131024// status code is an error. Response headers are in either
131025// *Operation.ServerResponse.Header or (if a response was returned at
131026// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
131027// to check whether the returned error was because
131028// http.StatusNotModified was returned.
131029func (c *RegionInstanceGroupManagersUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
131030	gensupport.SetOptions(c.urlParams_, opts...)
131031	res, err := c.doRequest("json")
131032	if res != nil && res.StatusCode == http.StatusNotModified {
131033		if res.Body != nil {
131034			res.Body.Close()
131035		}
131036		return nil, &googleapi.Error{
131037			Code:   res.StatusCode,
131038			Header: res.Header,
131039		}
131040	}
131041	if err != nil {
131042		return nil, err
131043	}
131044	defer googleapi.CloseBody(res)
131045	if err := googleapi.CheckResponse(res); err != nil {
131046		return nil, err
131047	}
131048	ret := &Operation{
131049		ServerResponse: googleapi.ServerResponse{
131050			Header:         res.Header,
131051			HTTPStatusCode: res.StatusCode,
131052		},
131053	}
131054	target := &ret
131055	if err := gensupport.DecodeResponse(target, res); err != nil {
131056		return nil, err
131057	}
131058	return ret, nil
131059	// {
131060	//   "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. (== suppress_warning http-rest-shadowed ==)",
131061	//   "httpMethod": "PUT",
131062	//   "id": "compute.regionInstanceGroupManagers.update",
131063	//   "parameterOrder": [
131064	//     "project",
131065	//     "region",
131066	//     "instanceGroupManager"
131067	//   ],
131068	//   "parameters": {
131069	//     "instanceGroupManager": {
131070	//       "description": "The name of the instance group manager.",
131071	//       "location": "path",
131072	//       "required": true,
131073	//       "type": "string"
131074	//     },
131075	//     "project": {
131076	//       "description": "Project ID for this request.",
131077	//       "location": "path",
131078	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
131079	//       "required": true,
131080	//       "type": "string"
131081	//     },
131082	//     "region": {
131083	//       "description": "Name of the region scoping this request.",
131084	//       "location": "path",
131085	//       "required": true,
131086	//       "type": "string"
131087	//     },
131088	//     "requestId": {
131089	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
131090	//       "location": "query",
131091	//       "type": "string"
131092	//     }
131093	//   },
131094	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}",
131095	//   "request": {
131096	//     "$ref": "InstanceGroupManager"
131097	//   },
131098	//   "response": {
131099	//     "$ref": "Operation"
131100	//   },
131101	//   "scopes": [
131102	//     "https://www.googleapis.com/auth/cloud-platform",
131103	//     "https://www.googleapis.com/auth/compute"
131104	//   ]
131105	// }
131106
131107}
131108
131109// method id "compute.regionInstanceGroupManagers.updatePerInstanceConfigs":
131110
131111type RegionInstanceGroupManagersUpdatePerInstanceConfigsCall struct {
131112	s                                                 *Service
131113	project                                           string
131114	region                                            string
131115	instanceGroupManager                              string
131116	regioninstancegroupmanagerupdateinstanceconfigreq *RegionInstanceGroupManagerUpdateInstanceConfigReq
131117	urlParams_                                        gensupport.URLParams
131118	ctx_                                              context.Context
131119	header_                                           http.Header
131120}
131121
131122// UpdatePerInstanceConfigs: Insert or update (for the ones that already
131123// exist) per-instance configs for the managed instance group.
131124// perInstanceConfig.instance serves as a key used to distinguish
131125// whether to perform insert or patch. (== suppress_warning
131126// http-rest-shadowed ==)
131127func (r *RegionInstanceGroupManagersService) UpdatePerInstanceConfigs(project string, region string, instanceGroupManager string, regioninstancegroupmanagerupdateinstanceconfigreq *RegionInstanceGroupManagerUpdateInstanceConfigReq) *RegionInstanceGroupManagersUpdatePerInstanceConfigsCall {
131128	c := &RegionInstanceGroupManagersUpdatePerInstanceConfigsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
131129	c.project = project
131130	c.region = region
131131	c.instanceGroupManager = instanceGroupManager
131132	c.regioninstancegroupmanagerupdateinstanceconfigreq = regioninstancegroupmanagerupdateinstanceconfigreq
131133	return c
131134}
131135
131136// RequestId sets the optional parameter "requestId": An optional
131137// request ID to identify requests. Specify a unique request ID so that
131138// if you must retry your request, the server will know to ignore the
131139// request if it has already been completed.
131140//
131141// For example, consider a situation where you make an initial request
131142// and the request times out. If you make the request again with the
131143// same request ID, the server can check if original operation with the
131144// same request ID was received, and if so, will ignore the second
131145// request. This prevents clients from accidentally creating duplicate
131146// commitments.
131147//
131148// The request ID must be a valid UUID with the exception that zero UUID
131149// is not supported (00000000-0000-0000-0000-000000000000).
131150func (c *RegionInstanceGroupManagersUpdatePerInstanceConfigsCall) RequestId(requestId string) *RegionInstanceGroupManagersUpdatePerInstanceConfigsCall {
131151	c.urlParams_.Set("requestId", requestId)
131152	return c
131153}
131154
131155// Fields allows partial responses to be retrieved. See
131156// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
131157// for more information.
131158func (c *RegionInstanceGroupManagersUpdatePerInstanceConfigsCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersUpdatePerInstanceConfigsCall {
131159	c.urlParams_.Set("fields", googleapi.CombineFields(s))
131160	return c
131161}
131162
131163// Context sets the context to be used in this call's Do method. Any
131164// pending HTTP request will be aborted if the provided context is
131165// canceled.
131166func (c *RegionInstanceGroupManagersUpdatePerInstanceConfigsCall) Context(ctx context.Context) *RegionInstanceGroupManagersUpdatePerInstanceConfigsCall {
131167	c.ctx_ = ctx
131168	return c
131169}
131170
131171// Header returns an http.Header that can be modified by the caller to
131172// add HTTP headers to the request.
131173func (c *RegionInstanceGroupManagersUpdatePerInstanceConfigsCall) Header() http.Header {
131174	if c.header_ == nil {
131175		c.header_ = make(http.Header)
131176	}
131177	return c.header_
131178}
131179
131180func (c *RegionInstanceGroupManagersUpdatePerInstanceConfigsCall) doRequest(alt string) (*http.Response, error) {
131181	reqHeaders := make(http.Header)
131182	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
131183	for k, v := range c.header_ {
131184		reqHeaders[k] = v
131185	}
131186	reqHeaders.Set("User-Agent", c.s.userAgent())
131187	var body io.Reader = nil
131188	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagerupdateinstanceconfigreq)
131189	if err != nil {
131190		return nil, err
131191	}
131192	reqHeaders.Set("Content-Type", "application/json")
131193	c.urlParams_.Set("alt", alt)
131194	c.urlParams_.Set("prettyPrint", "false")
131195	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/updatePerInstanceConfigs")
131196	urls += "?" + c.urlParams_.Encode()
131197	req, err := http.NewRequest("POST", urls, body)
131198	if err != nil {
131199		return nil, err
131200	}
131201	req.Header = reqHeaders
131202	googleapi.Expand(req.URL, map[string]string{
131203		"project":              c.project,
131204		"region":               c.region,
131205		"instanceGroupManager": c.instanceGroupManager,
131206	})
131207	return gensupport.SendRequest(c.ctx_, c.s.client, req)
131208}
131209
131210// Do executes the "compute.regionInstanceGroupManagers.updatePerInstanceConfigs" call.
131211// Exactly one of *Operation or error will be non-nil. Any non-2xx
131212// status code is an error. Response headers are in either
131213// *Operation.ServerResponse.Header or (if a response was returned at
131214// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
131215// to check whether the returned error was because
131216// http.StatusNotModified was returned.
131217func (c *RegionInstanceGroupManagersUpdatePerInstanceConfigsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
131218	gensupport.SetOptions(c.urlParams_, opts...)
131219	res, err := c.doRequest("json")
131220	if res != nil && res.StatusCode == http.StatusNotModified {
131221		if res.Body != nil {
131222			res.Body.Close()
131223		}
131224		return nil, &googleapi.Error{
131225			Code:   res.StatusCode,
131226			Header: res.Header,
131227		}
131228	}
131229	if err != nil {
131230		return nil, err
131231	}
131232	defer googleapi.CloseBody(res)
131233	if err := googleapi.CheckResponse(res); err != nil {
131234		return nil, err
131235	}
131236	ret := &Operation{
131237		ServerResponse: googleapi.ServerResponse{
131238			Header:         res.Header,
131239			HTTPStatusCode: res.StatusCode,
131240		},
131241	}
131242	target := &ret
131243	if err := gensupport.DecodeResponse(target, res); err != nil {
131244		return nil, err
131245	}
131246	return ret, nil
131247	// {
131248	//   "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. (== suppress_warning http-rest-shadowed ==)",
131249	//   "httpMethod": "POST",
131250	//   "id": "compute.regionInstanceGroupManagers.updatePerInstanceConfigs",
131251	//   "parameterOrder": [
131252	//     "project",
131253	//     "region",
131254	//     "instanceGroupManager"
131255	//   ],
131256	//   "parameters": {
131257	//     "instanceGroupManager": {
131258	//       "description": "The name of the managed instance group. It should conform to RFC1035.",
131259	//       "location": "path",
131260	//       "required": true,
131261	//       "type": "string"
131262	//     },
131263	//     "project": {
131264	//       "description": "Project ID for this request.",
131265	//       "location": "path",
131266	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
131267	//       "required": true,
131268	//       "type": "string"
131269	//     },
131270	//     "region": {
131271	//       "description": "Name of the region scoping this request, should conform to RFC1035.",
131272	//       "location": "path",
131273	//       "required": true,
131274	//       "type": "string"
131275	//     },
131276	//     "requestId": {
131277	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
131278	//       "location": "query",
131279	//       "type": "string"
131280	//     }
131281	//   },
131282	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/updatePerInstanceConfigs",
131283	//   "request": {
131284	//     "$ref": "RegionInstanceGroupManagerUpdateInstanceConfigReq"
131285	//   },
131286	//   "response": {
131287	//     "$ref": "Operation"
131288	//   },
131289	//   "scopes": [
131290	//     "https://www.googleapis.com/auth/cloud-platform",
131291	//     "https://www.googleapis.com/auth/compute"
131292	//   ]
131293	// }
131294
131295}
131296
131297// method id "compute.regionInstanceGroups.get":
131298
131299type RegionInstanceGroupsGetCall struct {
131300	s             *Service
131301	project       string
131302	region        string
131303	instanceGroup string
131304	urlParams_    gensupport.URLParams
131305	ifNoneMatch_  string
131306	ctx_          context.Context
131307	header_       http.Header
131308}
131309
131310// Get: Returns the specified instance group resource. (==
131311// suppress_warning http-rest-shadowed ==)
131312func (r *RegionInstanceGroupsService) Get(project string, region string, instanceGroup string) *RegionInstanceGroupsGetCall {
131313	c := &RegionInstanceGroupsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
131314	c.project = project
131315	c.region = region
131316	c.instanceGroup = instanceGroup
131317	return c
131318}
131319
131320// Fields allows partial responses to be retrieved. See
131321// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
131322// for more information.
131323func (c *RegionInstanceGroupsGetCall) Fields(s ...googleapi.Field) *RegionInstanceGroupsGetCall {
131324	c.urlParams_.Set("fields", googleapi.CombineFields(s))
131325	return c
131326}
131327
131328// IfNoneMatch sets the optional parameter which makes the operation
131329// fail if the object's ETag matches the given value. This is useful for
131330// getting updates only after the object has changed since the last
131331// request. Use googleapi.IsNotModified to check whether the response
131332// error from Do is the result of In-None-Match.
131333func (c *RegionInstanceGroupsGetCall) IfNoneMatch(entityTag string) *RegionInstanceGroupsGetCall {
131334	c.ifNoneMatch_ = entityTag
131335	return c
131336}
131337
131338// Context sets the context to be used in this call's Do method. Any
131339// pending HTTP request will be aborted if the provided context is
131340// canceled.
131341func (c *RegionInstanceGroupsGetCall) Context(ctx context.Context) *RegionInstanceGroupsGetCall {
131342	c.ctx_ = ctx
131343	return c
131344}
131345
131346// Header returns an http.Header that can be modified by the caller to
131347// add HTTP headers to the request.
131348func (c *RegionInstanceGroupsGetCall) Header() http.Header {
131349	if c.header_ == nil {
131350		c.header_ = make(http.Header)
131351	}
131352	return c.header_
131353}
131354
131355func (c *RegionInstanceGroupsGetCall) doRequest(alt string) (*http.Response, error) {
131356	reqHeaders := make(http.Header)
131357	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
131358	for k, v := range c.header_ {
131359		reqHeaders[k] = v
131360	}
131361	reqHeaders.Set("User-Agent", c.s.userAgent())
131362	if c.ifNoneMatch_ != "" {
131363		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
131364	}
131365	var body io.Reader = nil
131366	c.urlParams_.Set("alt", alt)
131367	c.urlParams_.Set("prettyPrint", "false")
131368	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroups/{instanceGroup}")
131369	urls += "?" + c.urlParams_.Encode()
131370	req, err := http.NewRequest("GET", urls, body)
131371	if err != nil {
131372		return nil, err
131373	}
131374	req.Header = reqHeaders
131375	googleapi.Expand(req.URL, map[string]string{
131376		"project":       c.project,
131377		"region":        c.region,
131378		"instanceGroup": c.instanceGroup,
131379	})
131380	return gensupport.SendRequest(c.ctx_, c.s.client, req)
131381}
131382
131383// Do executes the "compute.regionInstanceGroups.get" call.
131384// Exactly one of *InstanceGroup or error will be non-nil. Any non-2xx
131385// status code is an error. Response headers are in either
131386// *InstanceGroup.ServerResponse.Header or (if a response was returned
131387// at all) in error.(*googleapi.Error).Header. Use
131388// googleapi.IsNotModified to check whether the returned error was
131389// because http.StatusNotModified was returned.
131390func (c *RegionInstanceGroupsGetCall) Do(opts ...googleapi.CallOption) (*InstanceGroup, error) {
131391	gensupport.SetOptions(c.urlParams_, opts...)
131392	res, err := c.doRequest("json")
131393	if res != nil && res.StatusCode == http.StatusNotModified {
131394		if res.Body != nil {
131395			res.Body.Close()
131396		}
131397		return nil, &googleapi.Error{
131398			Code:   res.StatusCode,
131399			Header: res.Header,
131400		}
131401	}
131402	if err != nil {
131403		return nil, err
131404	}
131405	defer googleapi.CloseBody(res)
131406	if err := googleapi.CheckResponse(res); err != nil {
131407		return nil, err
131408	}
131409	ret := &InstanceGroup{
131410		ServerResponse: googleapi.ServerResponse{
131411			Header:         res.Header,
131412			HTTPStatusCode: res.StatusCode,
131413		},
131414	}
131415	target := &ret
131416	if err := gensupport.DecodeResponse(target, res); err != nil {
131417		return nil, err
131418	}
131419	return ret, nil
131420	// {
131421	//   "description": "Returns the specified instance group resource. (== suppress_warning http-rest-shadowed ==)",
131422	//   "httpMethod": "GET",
131423	//   "id": "compute.regionInstanceGroups.get",
131424	//   "parameterOrder": [
131425	//     "project",
131426	//     "region",
131427	//     "instanceGroup"
131428	//   ],
131429	//   "parameters": {
131430	//     "instanceGroup": {
131431	//       "description": "Name of the instance group resource to return.",
131432	//       "location": "path",
131433	//       "required": true,
131434	//       "type": "string"
131435	//     },
131436	//     "project": {
131437	//       "description": "Project ID for this request.",
131438	//       "location": "path",
131439	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
131440	//       "required": true,
131441	//       "type": "string"
131442	//     },
131443	//     "region": {
131444	//       "description": "Name of the region scoping this request.",
131445	//       "location": "path",
131446	//       "required": true,
131447	//       "type": "string"
131448	//     }
131449	//   },
131450	//   "path": "{project}/regions/{region}/instanceGroups/{instanceGroup}",
131451	//   "response": {
131452	//     "$ref": "InstanceGroup"
131453	//   },
131454	//   "scopes": [
131455	//     "https://www.googleapis.com/auth/cloud-platform",
131456	//     "https://www.googleapis.com/auth/compute",
131457	//     "https://www.googleapis.com/auth/compute.readonly"
131458	//   ]
131459	// }
131460
131461}
131462
131463// method id "compute.regionInstanceGroups.list":
131464
131465type RegionInstanceGroupsListCall struct {
131466	s            *Service
131467	project      string
131468	region       string
131469	urlParams_   gensupport.URLParams
131470	ifNoneMatch_ string
131471	ctx_         context.Context
131472	header_      http.Header
131473}
131474
131475// List: Retrieves the list of instance group resources contained within
131476// the specified region. (== suppress_warning http-rest-shadowed ==)
131477func (r *RegionInstanceGroupsService) List(project string, region string) *RegionInstanceGroupsListCall {
131478	c := &RegionInstanceGroupsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
131479	c.project = project
131480	c.region = region
131481	return c
131482}
131483
131484// Filter sets the optional parameter "filter": A filter expression that
131485// filters resources listed in the response. The expression must specify
131486// the field name, a comparison operator, and the value that you want to
131487// use for filtering. The value must be a string, a number, or a
131488// boolean. The comparison operator must be either =, !=, >, or <.
131489//
131490// For example, if you are filtering Compute Engine instances, you can
131491// exclude instances named example-instance by specifying name !=
131492// example-instance.
131493//
131494// You can also filter nested fields. For example, you could specify
131495// scheduling.automaticRestart = false to include instances only if they
131496// are not scheduled for automatic restarts. You can use filtering on
131497// nested fields to filter based on resource labels.
131498//
131499// To filter on multiple expressions, provide each separate expression
131500// within parentheses. For example, (scheduling.automaticRestart = true)
131501// (cpuPlatform = "Intel Skylake"). By default, each expression is an
131502// AND expression. However, you can include AND and OR expressions
131503// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
131504// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
131505// true).
131506func (c *RegionInstanceGroupsListCall) Filter(filter string) *RegionInstanceGroupsListCall {
131507	c.urlParams_.Set("filter", filter)
131508	return c
131509}
131510
131511// MaxResults sets the optional parameter "maxResults": The maximum
131512// number of results per page that should be returned. If the number of
131513// available results is larger than maxResults, Compute Engine returns a
131514// nextPageToken that can be used to get the next page of results in
131515// subsequent list requests. Acceptable values are 0 to 500, inclusive.
131516// (Default: 500)
131517func (c *RegionInstanceGroupsListCall) MaxResults(maxResults int64) *RegionInstanceGroupsListCall {
131518	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
131519	return c
131520}
131521
131522// OrderBy sets the optional parameter "orderBy": Sorts list results by
131523// a certain order. By default, results are returned in alphanumerical
131524// order based on the resource name.
131525//
131526// You can also sort results in descending order based on the creation
131527// timestamp using orderBy="creationTimestamp desc". This sorts results
131528// based on the creationTimestamp field in reverse chronological order
131529// (newest result first). Use this to sort resources like operations so
131530// that the newest operation is returned first.
131531//
131532// Currently, only sorting by name or creationTimestamp desc is
131533// supported.
131534func (c *RegionInstanceGroupsListCall) OrderBy(orderBy string) *RegionInstanceGroupsListCall {
131535	c.urlParams_.Set("orderBy", orderBy)
131536	return c
131537}
131538
131539// PageToken sets the optional parameter "pageToken": Specifies a page
131540// token to use. Set pageToken to the nextPageToken returned by a
131541// previous list request to get the next page of results.
131542func (c *RegionInstanceGroupsListCall) PageToken(pageToken string) *RegionInstanceGroupsListCall {
131543	c.urlParams_.Set("pageToken", pageToken)
131544	return c
131545}
131546
131547// Fields allows partial responses to be retrieved. See
131548// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
131549// for more information.
131550func (c *RegionInstanceGroupsListCall) Fields(s ...googleapi.Field) *RegionInstanceGroupsListCall {
131551	c.urlParams_.Set("fields", googleapi.CombineFields(s))
131552	return c
131553}
131554
131555// IfNoneMatch sets the optional parameter which makes the operation
131556// fail if the object's ETag matches the given value. This is useful for
131557// getting updates only after the object has changed since the last
131558// request. Use googleapi.IsNotModified to check whether the response
131559// error from Do is the result of In-None-Match.
131560func (c *RegionInstanceGroupsListCall) IfNoneMatch(entityTag string) *RegionInstanceGroupsListCall {
131561	c.ifNoneMatch_ = entityTag
131562	return c
131563}
131564
131565// Context sets the context to be used in this call's Do method. Any
131566// pending HTTP request will be aborted if the provided context is
131567// canceled.
131568func (c *RegionInstanceGroupsListCall) Context(ctx context.Context) *RegionInstanceGroupsListCall {
131569	c.ctx_ = ctx
131570	return c
131571}
131572
131573// Header returns an http.Header that can be modified by the caller to
131574// add HTTP headers to the request.
131575func (c *RegionInstanceGroupsListCall) Header() http.Header {
131576	if c.header_ == nil {
131577		c.header_ = make(http.Header)
131578	}
131579	return c.header_
131580}
131581
131582func (c *RegionInstanceGroupsListCall) doRequest(alt string) (*http.Response, error) {
131583	reqHeaders := make(http.Header)
131584	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
131585	for k, v := range c.header_ {
131586		reqHeaders[k] = v
131587	}
131588	reqHeaders.Set("User-Agent", c.s.userAgent())
131589	if c.ifNoneMatch_ != "" {
131590		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
131591	}
131592	var body io.Reader = nil
131593	c.urlParams_.Set("alt", alt)
131594	c.urlParams_.Set("prettyPrint", "false")
131595	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroups")
131596	urls += "?" + c.urlParams_.Encode()
131597	req, err := http.NewRequest("GET", urls, body)
131598	if err != nil {
131599		return nil, err
131600	}
131601	req.Header = reqHeaders
131602	googleapi.Expand(req.URL, map[string]string{
131603		"project": c.project,
131604		"region":  c.region,
131605	})
131606	return gensupport.SendRequest(c.ctx_, c.s.client, req)
131607}
131608
131609// Do executes the "compute.regionInstanceGroups.list" call.
131610// Exactly one of *RegionInstanceGroupList or error will be non-nil. Any
131611// non-2xx status code is an error. Response headers are in either
131612// *RegionInstanceGroupList.ServerResponse.Header or (if a response was
131613// returned at all) in error.(*googleapi.Error).Header. Use
131614// googleapi.IsNotModified to check whether the returned error was
131615// because http.StatusNotModified was returned.
131616func (c *RegionInstanceGroupsListCall) Do(opts ...googleapi.CallOption) (*RegionInstanceGroupList, error) {
131617	gensupport.SetOptions(c.urlParams_, opts...)
131618	res, err := c.doRequest("json")
131619	if res != nil && res.StatusCode == http.StatusNotModified {
131620		if res.Body != nil {
131621			res.Body.Close()
131622		}
131623		return nil, &googleapi.Error{
131624			Code:   res.StatusCode,
131625			Header: res.Header,
131626		}
131627	}
131628	if err != nil {
131629		return nil, err
131630	}
131631	defer googleapi.CloseBody(res)
131632	if err := googleapi.CheckResponse(res); err != nil {
131633		return nil, err
131634	}
131635	ret := &RegionInstanceGroupList{
131636		ServerResponse: googleapi.ServerResponse{
131637			Header:         res.Header,
131638			HTTPStatusCode: res.StatusCode,
131639		},
131640	}
131641	target := &ret
131642	if err := gensupport.DecodeResponse(target, res); err != nil {
131643		return nil, err
131644	}
131645	return ret, nil
131646	// {
131647	//   "description": "Retrieves the list of instance group resources contained within the specified region. (== suppress_warning http-rest-shadowed ==)",
131648	//   "httpMethod": "GET",
131649	//   "id": "compute.regionInstanceGroups.list",
131650	//   "parameterOrder": [
131651	//     "project",
131652	//     "region"
131653	//   ],
131654	//   "parameters": {
131655	//     "filter": {
131656	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
131657	//       "location": "query",
131658	//       "type": "string"
131659	//     },
131660	//     "maxResults": {
131661	//       "default": "500",
131662	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
131663	//       "format": "uint32",
131664	//       "location": "query",
131665	//       "minimum": "0",
131666	//       "type": "integer"
131667	//     },
131668	//     "orderBy": {
131669	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
131670	//       "location": "query",
131671	//       "type": "string"
131672	//     },
131673	//     "pageToken": {
131674	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
131675	//       "location": "query",
131676	//       "type": "string"
131677	//     },
131678	//     "project": {
131679	//       "description": "Project ID for this request.",
131680	//       "location": "path",
131681	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
131682	//       "required": true,
131683	//       "type": "string"
131684	//     },
131685	//     "region": {
131686	//       "description": "Name of the region scoping this request.",
131687	//       "location": "path",
131688	//       "required": true,
131689	//       "type": "string"
131690	//     }
131691	//   },
131692	//   "path": "{project}/regions/{region}/instanceGroups",
131693	//   "response": {
131694	//     "$ref": "RegionInstanceGroupList"
131695	//   },
131696	//   "scopes": [
131697	//     "https://www.googleapis.com/auth/cloud-platform",
131698	//     "https://www.googleapis.com/auth/compute",
131699	//     "https://www.googleapis.com/auth/compute.readonly"
131700	//   ]
131701	// }
131702
131703}
131704
131705// Pages invokes f for each page of results.
131706// A non-nil error returned from f will halt the iteration.
131707// The provided context supersedes any context provided to the Context method.
131708func (c *RegionInstanceGroupsListCall) Pages(ctx context.Context, f func(*RegionInstanceGroupList) error) error {
131709	c.ctx_ = ctx
131710	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
131711	for {
131712		x, err := c.Do()
131713		if err != nil {
131714			return err
131715		}
131716		if err := f(x); err != nil {
131717			return err
131718		}
131719		if x.NextPageToken == "" {
131720			return nil
131721		}
131722		c.PageToken(x.NextPageToken)
131723	}
131724}
131725
131726// method id "compute.regionInstanceGroups.listInstances":
131727
131728type RegionInstanceGroupsListInstancesCall struct {
131729	s                                        *Service
131730	project                                  string
131731	region                                   string
131732	instanceGroup                            string
131733	regioninstancegroupslistinstancesrequest *RegionInstanceGroupsListInstancesRequest
131734	urlParams_                               gensupport.URLParams
131735	ctx_                                     context.Context
131736	header_                                  http.Header
131737}
131738
131739// ListInstances: Lists the instances in the specified instance group
131740// and displays information about the named ports. Depending on the
131741// specified options, this method can list all instances or only the
131742// instances that are running. (== suppress_warning http-rest-shadowed
131743// ==)
131744func (r *RegionInstanceGroupsService) ListInstances(project string, region string, instanceGroup string, regioninstancegroupslistinstancesrequest *RegionInstanceGroupsListInstancesRequest) *RegionInstanceGroupsListInstancesCall {
131745	c := &RegionInstanceGroupsListInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
131746	c.project = project
131747	c.region = region
131748	c.instanceGroup = instanceGroup
131749	c.regioninstancegroupslistinstancesrequest = regioninstancegroupslistinstancesrequest
131750	return c
131751}
131752
131753// Filter sets the optional parameter "filter": A filter expression that
131754// filters resources listed in the response. The expression must specify
131755// the field name, a comparison operator, and the value that you want to
131756// use for filtering. The value must be a string, a number, or a
131757// boolean. The comparison operator must be either =, !=, >, or <.
131758//
131759// For example, if you are filtering Compute Engine instances, you can
131760// exclude instances named example-instance by specifying name !=
131761// example-instance.
131762//
131763// You can also filter nested fields. For example, you could specify
131764// scheduling.automaticRestart = false to include instances only if they
131765// are not scheduled for automatic restarts. You can use filtering on
131766// nested fields to filter based on resource labels.
131767//
131768// To filter on multiple expressions, provide each separate expression
131769// within parentheses. For example, (scheduling.automaticRestart = true)
131770// (cpuPlatform = "Intel Skylake"). By default, each expression is an
131771// AND expression. However, you can include AND and OR expressions
131772// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
131773// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
131774// true).
131775func (c *RegionInstanceGroupsListInstancesCall) Filter(filter string) *RegionInstanceGroupsListInstancesCall {
131776	c.urlParams_.Set("filter", filter)
131777	return c
131778}
131779
131780// MaxResults sets the optional parameter "maxResults": The maximum
131781// number of results per page that should be returned. If the number of
131782// available results is larger than maxResults, Compute Engine returns a
131783// nextPageToken that can be used to get the next page of results in
131784// subsequent list requests. Acceptable values are 0 to 500, inclusive.
131785// (Default: 500)
131786func (c *RegionInstanceGroupsListInstancesCall) MaxResults(maxResults int64) *RegionInstanceGroupsListInstancesCall {
131787	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
131788	return c
131789}
131790
131791// OrderBy sets the optional parameter "orderBy": Sorts list results by
131792// a certain order. By default, results are returned in alphanumerical
131793// order based on the resource name.
131794//
131795// You can also sort results in descending order based on the creation
131796// timestamp using orderBy="creationTimestamp desc". This sorts results
131797// based on the creationTimestamp field in reverse chronological order
131798// (newest result first). Use this to sort resources like operations so
131799// that the newest operation is returned first.
131800//
131801// Currently, only sorting by name or creationTimestamp desc is
131802// supported.
131803func (c *RegionInstanceGroupsListInstancesCall) OrderBy(orderBy string) *RegionInstanceGroupsListInstancesCall {
131804	c.urlParams_.Set("orderBy", orderBy)
131805	return c
131806}
131807
131808// PageToken sets the optional parameter "pageToken": Specifies a page
131809// token to use. Set pageToken to the nextPageToken returned by a
131810// previous list request to get the next page of results.
131811func (c *RegionInstanceGroupsListInstancesCall) PageToken(pageToken string) *RegionInstanceGroupsListInstancesCall {
131812	c.urlParams_.Set("pageToken", pageToken)
131813	return c
131814}
131815
131816// Fields allows partial responses to be retrieved. See
131817// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
131818// for more information.
131819func (c *RegionInstanceGroupsListInstancesCall) Fields(s ...googleapi.Field) *RegionInstanceGroupsListInstancesCall {
131820	c.urlParams_.Set("fields", googleapi.CombineFields(s))
131821	return c
131822}
131823
131824// Context sets the context to be used in this call's Do method. Any
131825// pending HTTP request will be aborted if the provided context is
131826// canceled.
131827func (c *RegionInstanceGroupsListInstancesCall) Context(ctx context.Context) *RegionInstanceGroupsListInstancesCall {
131828	c.ctx_ = ctx
131829	return c
131830}
131831
131832// Header returns an http.Header that can be modified by the caller to
131833// add HTTP headers to the request.
131834func (c *RegionInstanceGroupsListInstancesCall) Header() http.Header {
131835	if c.header_ == nil {
131836		c.header_ = make(http.Header)
131837	}
131838	return c.header_
131839}
131840
131841func (c *RegionInstanceGroupsListInstancesCall) doRequest(alt string) (*http.Response, error) {
131842	reqHeaders := make(http.Header)
131843	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
131844	for k, v := range c.header_ {
131845		reqHeaders[k] = v
131846	}
131847	reqHeaders.Set("User-Agent", c.s.userAgent())
131848	var body io.Reader = nil
131849	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupslistinstancesrequest)
131850	if err != nil {
131851		return nil, err
131852	}
131853	reqHeaders.Set("Content-Type", "application/json")
131854	c.urlParams_.Set("alt", alt)
131855	c.urlParams_.Set("prettyPrint", "false")
131856	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroups/{instanceGroup}/listInstances")
131857	urls += "?" + c.urlParams_.Encode()
131858	req, err := http.NewRequest("POST", urls, body)
131859	if err != nil {
131860		return nil, err
131861	}
131862	req.Header = reqHeaders
131863	googleapi.Expand(req.URL, map[string]string{
131864		"project":       c.project,
131865		"region":        c.region,
131866		"instanceGroup": c.instanceGroup,
131867	})
131868	return gensupport.SendRequest(c.ctx_, c.s.client, req)
131869}
131870
131871// Do executes the "compute.regionInstanceGroups.listInstances" call.
131872// Exactly one of *RegionInstanceGroupsListInstances or error will be
131873// non-nil. Any non-2xx status code is an error. Response headers are in
131874// either *RegionInstanceGroupsListInstances.ServerResponse.Header or
131875// (if a response was returned at all) in
131876// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
131877// whether the returned error was because http.StatusNotModified was
131878// returned.
131879func (c *RegionInstanceGroupsListInstancesCall) Do(opts ...googleapi.CallOption) (*RegionInstanceGroupsListInstances, error) {
131880	gensupport.SetOptions(c.urlParams_, opts...)
131881	res, err := c.doRequest("json")
131882	if res != nil && res.StatusCode == http.StatusNotModified {
131883		if res.Body != nil {
131884			res.Body.Close()
131885		}
131886		return nil, &googleapi.Error{
131887			Code:   res.StatusCode,
131888			Header: res.Header,
131889		}
131890	}
131891	if err != nil {
131892		return nil, err
131893	}
131894	defer googleapi.CloseBody(res)
131895	if err := googleapi.CheckResponse(res); err != nil {
131896		return nil, err
131897	}
131898	ret := &RegionInstanceGroupsListInstances{
131899		ServerResponse: googleapi.ServerResponse{
131900			Header:         res.Header,
131901			HTTPStatusCode: res.StatusCode,
131902		},
131903	}
131904	target := &ret
131905	if err := gensupport.DecodeResponse(target, res); err != nil {
131906		return nil, err
131907	}
131908	return ret, nil
131909	// {
131910	//   "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. (== suppress_warning http-rest-shadowed ==)",
131911	//   "httpMethod": "POST",
131912	//   "id": "compute.regionInstanceGroups.listInstances",
131913	//   "parameterOrder": [
131914	//     "project",
131915	//     "region",
131916	//     "instanceGroup"
131917	//   ],
131918	//   "parameters": {
131919	//     "filter": {
131920	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
131921	//       "location": "query",
131922	//       "type": "string"
131923	//     },
131924	//     "instanceGroup": {
131925	//       "description": "Name of the regional instance group for which we want to list the instances.",
131926	//       "location": "path",
131927	//       "required": true,
131928	//       "type": "string"
131929	//     },
131930	//     "maxResults": {
131931	//       "default": "500",
131932	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
131933	//       "format": "uint32",
131934	//       "location": "query",
131935	//       "minimum": "0",
131936	//       "type": "integer"
131937	//     },
131938	//     "orderBy": {
131939	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
131940	//       "location": "query",
131941	//       "type": "string"
131942	//     },
131943	//     "pageToken": {
131944	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
131945	//       "location": "query",
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	//   },
131962	//   "path": "{project}/regions/{region}/instanceGroups/{instanceGroup}/listInstances",
131963	//   "request": {
131964	//     "$ref": "RegionInstanceGroupsListInstancesRequest"
131965	//   },
131966	//   "response": {
131967	//     "$ref": "RegionInstanceGroupsListInstances"
131968	//   },
131969	//   "scopes": [
131970	//     "https://www.googleapis.com/auth/cloud-platform",
131971	//     "https://www.googleapis.com/auth/compute",
131972	//     "https://www.googleapis.com/auth/compute.readonly"
131973	//   ]
131974	// }
131975
131976}
131977
131978// Pages invokes f for each page of results.
131979// A non-nil error returned from f will halt the iteration.
131980// The provided context supersedes any context provided to the Context method.
131981func (c *RegionInstanceGroupsListInstancesCall) Pages(ctx context.Context, f func(*RegionInstanceGroupsListInstances) error) error {
131982	c.ctx_ = ctx
131983	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
131984	for {
131985		x, err := c.Do()
131986		if err != nil {
131987			return err
131988		}
131989		if err := f(x); err != nil {
131990			return err
131991		}
131992		if x.NextPageToken == "" {
131993			return nil
131994		}
131995		c.PageToken(x.NextPageToken)
131996	}
131997}
131998
131999// method id "compute.regionInstanceGroups.setNamedPorts":
132000
132001type RegionInstanceGroupsSetNamedPortsCall struct {
132002	s                                        *Service
132003	project                                  string
132004	region                                   string
132005	instanceGroup                            string
132006	regioninstancegroupssetnamedportsrequest *RegionInstanceGroupsSetNamedPortsRequest
132007	urlParams_                               gensupport.URLParams
132008	ctx_                                     context.Context
132009	header_                                  http.Header
132010}
132011
132012// SetNamedPorts: Sets the named ports for the specified regional
132013// instance group. (== suppress_warning http-rest-shadowed ==)
132014func (r *RegionInstanceGroupsService) SetNamedPorts(project string, region string, instanceGroup string, regioninstancegroupssetnamedportsrequest *RegionInstanceGroupsSetNamedPortsRequest) *RegionInstanceGroupsSetNamedPortsCall {
132015	c := &RegionInstanceGroupsSetNamedPortsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
132016	c.project = project
132017	c.region = region
132018	c.instanceGroup = instanceGroup
132019	c.regioninstancegroupssetnamedportsrequest = regioninstancegroupssetnamedportsrequest
132020	return c
132021}
132022
132023// RequestId sets the optional parameter "requestId": An optional
132024// request ID to identify requests. Specify a unique request ID so that
132025// if you must retry your request, the server will know to ignore the
132026// request if it has already been completed.
132027//
132028// For example, consider a situation where you make an initial request
132029// and the request times out. If you make the request again with the
132030// same request ID, the server can check if original operation with the
132031// same request ID was received, and if so, will ignore the second
132032// request. This prevents clients from accidentally creating duplicate
132033// commitments.
132034//
132035// The request ID must be a valid UUID with the exception that zero UUID
132036// is not supported (00000000-0000-0000-0000-000000000000).
132037func (c *RegionInstanceGroupsSetNamedPortsCall) RequestId(requestId string) *RegionInstanceGroupsSetNamedPortsCall {
132038	c.urlParams_.Set("requestId", requestId)
132039	return c
132040}
132041
132042// Fields allows partial responses to be retrieved. See
132043// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
132044// for more information.
132045func (c *RegionInstanceGroupsSetNamedPortsCall) Fields(s ...googleapi.Field) *RegionInstanceGroupsSetNamedPortsCall {
132046	c.urlParams_.Set("fields", googleapi.CombineFields(s))
132047	return c
132048}
132049
132050// Context sets the context to be used in this call's Do method. Any
132051// pending HTTP request will be aborted if the provided context is
132052// canceled.
132053func (c *RegionInstanceGroupsSetNamedPortsCall) Context(ctx context.Context) *RegionInstanceGroupsSetNamedPortsCall {
132054	c.ctx_ = ctx
132055	return c
132056}
132057
132058// Header returns an http.Header that can be modified by the caller to
132059// add HTTP headers to the request.
132060func (c *RegionInstanceGroupsSetNamedPortsCall) Header() http.Header {
132061	if c.header_ == nil {
132062		c.header_ = make(http.Header)
132063	}
132064	return c.header_
132065}
132066
132067func (c *RegionInstanceGroupsSetNamedPortsCall) doRequest(alt string) (*http.Response, error) {
132068	reqHeaders := make(http.Header)
132069	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
132070	for k, v := range c.header_ {
132071		reqHeaders[k] = v
132072	}
132073	reqHeaders.Set("User-Agent", c.s.userAgent())
132074	var body io.Reader = nil
132075	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupssetnamedportsrequest)
132076	if err != nil {
132077		return nil, err
132078	}
132079	reqHeaders.Set("Content-Type", "application/json")
132080	c.urlParams_.Set("alt", alt)
132081	c.urlParams_.Set("prettyPrint", "false")
132082	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroups/{instanceGroup}/setNamedPorts")
132083	urls += "?" + c.urlParams_.Encode()
132084	req, err := http.NewRequest("POST", urls, body)
132085	if err != nil {
132086		return nil, err
132087	}
132088	req.Header = reqHeaders
132089	googleapi.Expand(req.URL, map[string]string{
132090		"project":       c.project,
132091		"region":        c.region,
132092		"instanceGroup": c.instanceGroup,
132093	})
132094	return gensupport.SendRequest(c.ctx_, c.s.client, req)
132095}
132096
132097// Do executes the "compute.regionInstanceGroups.setNamedPorts" call.
132098// Exactly one of *Operation or error will be non-nil. Any non-2xx
132099// status code is an error. Response headers are in either
132100// *Operation.ServerResponse.Header or (if a response was returned at
132101// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
132102// to check whether the returned error was because
132103// http.StatusNotModified was returned.
132104func (c *RegionInstanceGroupsSetNamedPortsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
132105	gensupport.SetOptions(c.urlParams_, opts...)
132106	res, err := c.doRequest("json")
132107	if res != nil && res.StatusCode == http.StatusNotModified {
132108		if res.Body != nil {
132109			res.Body.Close()
132110		}
132111		return nil, &googleapi.Error{
132112			Code:   res.StatusCode,
132113			Header: res.Header,
132114		}
132115	}
132116	if err != nil {
132117		return nil, err
132118	}
132119	defer googleapi.CloseBody(res)
132120	if err := googleapi.CheckResponse(res); err != nil {
132121		return nil, err
132122	}
132123	ret := &Operation{
132124		ServerResponse: googleapi.ServerResponse{
132125			Header:         res.Header,
132126			HTTPStatusCode: res.StatusCode,
132127		},
132128	}
132129	target := &ret
132130	if err := gensupport.DecodeResponse(target, res); err != nil {
132131		return nil, err
132132	}
132133	return ret, nil
132134	// {
132135	//   "description": "Sets the named ports for the specified regional instance group. (== suppress_warning http-rest-shadowed ==)",
132136	//   "httpMethod": "POST",
132137	//   "id": "compute.regionInstanceGroups.setNamedPorts",
132138	//   "parameterOrder": [
132139	//     "project",
132140	//     "region",
132141	//     "instanceGroup"
132142	//   ],
132143	//   "parameters": {
132144	//     "instanceGroup": {
132145	//       "description": "The name of the regional instance group where the named ports are updated.",
132146	//       "location": "path",
132147	//       "required": true,
132148	//       "type": "string"
132149	//     },
132150	//     "project": {
132151	//       "description": "Project ID for this request.",
132152	//       "location": "path",
132153	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
132154	//       "required": true,
132155	//       "type": "string"
132156	//     },
132157	//     "region": {
132158	//       "description": "Name of the region scoping this request.",
132159	//       "location": "path",
132160	//       "required": true,
132161	//       "type": "string"
132162	//     },
132163	//     "requestId": {
132164	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
132165	//       "location": "query",
132166	//       "type": "string"
132167	//     }
132168	//   },
132169	//   "path": "{project}/regions/{region}/instanceGroups/{instanceGroup}/setNamedPorts",
132170	//   "request": {
132171	//     "$ref": "RegionInstanceGroupsSetNamedPortsRequest"
132172	//   },
132173	//   "response": {
132174	//     "$ref": "Operation"
132175	//   },
132176	//   "scopes": [
132177	//     "https://www.googleapis.com/auth/cloud-platform",
132178	//     "https://www.googleapis.com/auth/compute"
132179	//   ]
132180	// }
132181
132182}
132183
132184// method id "compute.regionInstanceGroups.testIamPermissions":
132185
132186type RegionInstanceGroupsTestIamPermissionsCall struct {
132187	s                      *Service
132188	project                string
132189	region                 string
132190	resource               string
132191	testpermissionsrequest *TestPermissionsRequest
132192	urlParams_             gensupport.URLParams
132193	ctx_                   context.Context
132194	header_                http.Header
132195}
132196
132197// TestIamPermissions: Returns permissions that a caller has on the
132198// specified resource. (== suppress_warning http-rest-shadowed ==)
132199func (r *RegionInstanceGroupsService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *RegionInstanceGroupsTestIamPermissionsCall {
132200	c := &RegionInstanceGroupsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
132201	c.project = project
132202	c.region = region
132203	c.resource = resource
132204	c.testpermissionsrequest = testpermissionsrequest
132205	return c
132206}
132207
132208// Fields allows partial responses to be retrieved. See
132209// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
132210// for more information.
132211func (c *RegionInstanceGroupsTestIamPermissionsCall) Fields(s ...googleapi.Field) *RegionInstanceGroupsTestIamPermissionsCall {
132212	c.urlParams_.Set("fields", googleapi.CombineFields(s))
132213	return c
132214}
132215
132216// Context sets the context to be used in this call's Do method. Any
132217// pending HTTP request will be aborted if the provided context is
132218// canceled.
132219func (c *RegionInstanceGroupsTestIamPermissionsCall) Context(ctx context.Context) *RegionInstanceGroupsTestIamPermissionsCall {
132220	c.ctx_ = ctx
132221	return c
132222}
132223
132224// Header returns an http.Header that can be modified by the caller to
132225// add HTTP headers to the request.
132226func (c *RegionInstanceGroupsTestIamPermissionsCall) Header() http.Header {
132227	if c.header_ == nil {
132228		c.header_ = make(http.Header)
132229	}
132230	return c.header_
132231}
132232
132233func (c *RegionInstanceGroupsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
132234	reqHeaders := make(http.Header)
132235	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
132236	for k, v := range c.header_ {
132237		reqHeaders[k] = v
132238	}
132239	reqHeaders.Set("User-Agent", c.s.userAgent())
132240	var body io.Reader = nil
132241	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
132242	if err != nil {
132243		return nil, err
132244	}
132245	reqHeaders.Set("Content-Type", "application/json")
132246	c.urlParams_.Set("alt", alt)
132247	c.urlParams_.Set("prettyPrint", "false")
132248	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroups/{resource}/testIamPermissions")
132249	urls += "?" + c.urlParams_.Encode()
132250	req, err := http.NewRequest("POST", urls, body)
132251	if err != nil {
132252		return nil, err
132253	}
132254	req.Header = reqHeaders
132255	googleapi.Expand(req.URL, map[string]string{
132256		"project":  c.project,
132257		"region":   c.region,
132258		"resource": c.resource,
132259	})
132260	return gensupport.SendRequest(c.ctx_, c.s.client, req)
132261}
132262
132263// Do executes the "compute.regionInstanceGroups.testIamPermissions" call.
132264// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
132265// non-2xx status code is an error. Response headers are in either
132266// *TestPermissionsResponse.ServerResponse.Header or (if a response was
132267// returned at all) in error.(*googleapi.Error).Header. Use
132268// googleapi.IsNotModified to check whether the returned error was
132269// because http.StatusNotModified was returned.
132270func (c *RegionInstanceGroupsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
132271	gensupport.SetOptions(c.urlParams_, opts...)
132272	res, err := c.doRequest("json")
132273	if res != nil && res.StatusCode == http.StatusNotModified {
132274		if res.Body != nil {
132275			res.Body.Close()
132276		}
132277		return nil, &googleapi.Error{
132278			Code:   res.StatusCode,
132279			Header: res.Header,
132280		}
132281	}
132282	if err != nil {
132283		return nil, err
132284	}
132285	defer googleapi.CloseBody(res)
132286	if err := googleapi.CheckResponse(res); err != nil {
132287		return nil, err
132288	}
132289	ret := &TestPermissionsResponse{
132290		ServerResponse: googleapi.ServerResponse{
132291			Header:         res.Header,
132292			HTTPStatusCode: res.StatusCode,
132293		},
132294	}
132295	target := &ret
132296	if err := gensupport.DecodeResponse(target, res); err != nil {
132297		return nil, err
132298	}
132299	return ret, nil
132300	// {
132301	//   "description": "Returns permissions that a caller has on the specified resource. (== suppress_warning http-rest-shadowed ==)",
132302	//   "httpMethod": "POST",
132303	//   "id": "compute.regionInstanceGroups.testIamPermissions",
132304	//   "parameterOrder": [
132305	//     "project",
132306	//     "region",
132307	//     "resource"
132308	//   ],
132309	//   "parameters": {
132310	//     "project": {
132311	//       "description": "Project ID for this request.",
132312	//       "location": "path",
132313	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
132314	//       "required": true,
132315	//       "type": "string"
132316	//     },
132317	//     "region": {
132318	//       "description": "The name of the region for this request.",
132319	//       "location": "path",
132320	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
132321	//       "required": true,
132322	//       "type": "string"
132323	//     },
132324	//     "resource": {
132325	//       "description": "Name or id of the resource for this request.",
132326	//       "location": "path",
132327	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
132328	//       "required": true,
132329	//       "type": "string"
132330	//     }
132331	//   },
132332	//   "path": "{project}/regions/{region}/instanceGroups/{resource}/testIamPermissions",
132333	//   "request": {
132334	//     "$ref": "TestPermissionsRequest"
132335	//   },
132336	//   "response": {
132337	//     "$ref": "TestPermissionsResponse"
132338	//   },
132339	//   "scopes": [
132340	//     "https://www.googleapis.com/auth/cloud-platform",
132341	//     "https://www.googleapis.com/auth/compute",
132342	//     "https://www.googleapis.com/auth/compute.readonly"
132343	//   ]
132344	// }
132345
132346}
132347
132348// method id "compute.regionNotificationEndpoints.delete":
132349
132350type RegionNotificationEndpointsDeleteCall struct {
132351	s                    *Service
132352	project              string
132353	region               string
132354	notificationEndpoint string
132355	urlParams_           gensupport.URLParams
132356	ctx_                 context.Context
132357	header_              http.Header
132358}
132359
132360// Delete: Deletes the specified NotificationEndpoint in the given
132361// region (== suppress_warning http-rest-shadowed ==)
132362func (r *RegionNotificationEndpointsService) Delete(project string, region string, notificationEndpoint string) *RegionNotificationEndpointsDeleteCall {
132363	c := &RegionNotificationEndpointsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
132364	c.project = project
132365	c.region = region
132366	c.notificationEndpoint = notificationEndpoint
132367	return c
132368}
132369
132370// RequestId sets the optional parameter "requestId": An optional
132371// request ID to identify requests. Specify a unique request ID so that
132372// if you must retry your request, the server will know to ignore the
132373// request if it has already been completed.
132374//
132375// For example, consider a situation where you make an initial request
132376// and the request times out. If you make the request again with the
132377// same request ID, the server can check if original operation with the
132378// same request ID was received, and if so, will ignore the second
132379// request. This prevents clients from accidentally creating duplicate
132380// commitments.
132381//
132382// The request ID must be a valid UUID with the exception that zero UUID
132383// is not supported (00000000-0000-0000-0000-000000000000).
132384func (c *RegionNotificationEndpointsDeleteCall) RequestId(requestId string) *RegionNotificationEndpointsDeleteCall {
132385	c.urlParams_.Set("requestId", requestId)
132386	return c
132387}
132388
132389// Fields allows partial responses to be retrieved. See
132390// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
132391// for more information.
132392func (c *RegionNotificationEndpointsDeleteCall) Fields(s ...googleapi.Field) *RegionNotificationEndpointsDeleteCall {
132393	c.urlParams_.Set("fields", googleapi.CombineFields(s))
132394	return c
132395}
132396
132397// Context sets the context to be used in this call's Do method. Any
132398// pending HTTP request will be aborted if the provided context is
132399// canceled.
132400func (c *RegionNotificationEndpointsDeleteCall) Context(ctx context.Context) *RegionNotificationEndpointsDeleteCall {
132401	c.ctx_ = ctx
132402	return c
132403}
132404
132405// Header returns an http.Header that can be modified by the caller to
132406// add HTTP headers to the request.
132407func (c *RegionNotificationEndpointsDeleteCall) Header() http.Header {
132408	if c.header_ == nil {
132409		c.header_ = make(http.Header)
132410	}
132411	return c.header_
132412}
132413
132414func (c *RegionNotificationEndpointsDeleteCall) doRequest(alt string) (*http.Response, error) {
132415	reqHeaders := make(http.Header)
132416	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
132417	for k, v := range c.header_ {
132418		reqHeaders[k] = v
132419	}
132420	reqHeaders.Set("User-Agent", c.s.userAgent())
132421	var body io.Reader = nil
132422	c.urlParams_.Set("alt", alt)
132423	c.urlParams_.Set("prettyPrint", "false")
132424	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/notificationEndpoints/{notificationEndpoint}")
132425	urls += "?" + c.urlParams_.Encode()
132426	req, err := http.NewRequest("DELETE", urls, body)
132427	if err != nil {
132428		return nil, err
132429	}
132430	req.Header = reqHeaders
132431	googleapi.Expand(req.URL, map[string]string{
132432		"project":              c.project,
132433		"region":               c.region,
132434		"notificationEndpoint": c.notificationEndpoint,
132435	})
132436	return gensupport.SendRequest(c.ctx_, c.s.client, req)
132437}
132438
132439// Do executes the "compute.regionNotificationEndpoints.delete" call.
132440// Exactly one of *Operation or error will be non-nil. Any non-2xx
132441// status code is an error. Response headers are in either
132442// *Operation.ServerResponse.Header or (if a response was returned at
132443// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
132444// to check whether the returned error was because
132445// http.StatusNotModified was returned.
132446func (c *RegionNotificationEndpointsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
132447	gensupport.SetOptions(c.urlParams_, opts...)
132448	res, err := c.doRequest("json")
132449	if res != nil && res.StatusCode == http.StatusNotModified {
132450		if res.Body != nil {
132451			res.Body.Close()
132452		}
132453		return nil, &googleapi.Error{
132454			Code:   res.StatusCode,
132455			Header: res.Header,
132456		}
132457	}
132458	if err != nil {
132459		return nil, err
132460	}
132461	defer googleapi.CloseBody(res)
132462	if err := googleapi.CheckResponse(res); err != nil {
132463		return nil, err
132464	}
132465	ret := &Operation{
132466		ServerResponse: googleapi.ServerResponse{
132467			Header:         res.Header,
132468			HTTPStatusCode: res.StatusCode,
132469		},
132470	}
132471	target := &ret
132472	if err := gensupport.DecodeResponse(target, res); err != nil {
132473		return nil, err
132474	}
132475	return ret, nil
132476	// {
132477	//   "description": "Deletes the specified NotificationEndpoint in the given region (== suppress_warning http-rest-shadowed ==)",
132478	//   "httpMethod": "DELETE",
132479	//   "id": "compute.regionNotificationEndpoints.delete",
132480	//   "parameterOrder": [
132481	//     "project",
132482	//     "region",
132483	//     "notificationEndpoint"
132484	//   ],
132485	//   "parameters": {
132486	//     "notificationEndpoint": {
132487	//       "description": "Name of the NotificationEndpoint resource to delete.",
132488	//       "location": "path",
132489	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
132490	//       "required": true,
132491	//       "type": "string"
132492	//     },
132493	//     "project": {
132494	//       "description": "Project ID for this request.",
132495	//       "location": "path",
132496	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
132497	//       "required": true,
132498	//       "type": "string"
132499	//     },
132500	//     "region": {
132501	//       "description": "Name of the region scoping this request.",
132502	//       "location": "path",
132503	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
132504	//       "required": true,
132505	//       "type": "string"
132506	//     },
132507	//     "requestId": {
132508	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
132509	//       "location": "query",
132510	//       "type": "string"
132511	//     }
132512	//   },
132513	//   "path": "{project}/regions/{region}/notificationEndpoints/{notificationEndpoint}",
132514	//   "response": {
132515	//     "$ref": "Operation"
132516	//   },
132517	//   "scopes": [
132518	//     "https://www.googleapis.com/auth/cloud-platform",
132519	//     "https://www.googleapis.com/auth/compute"
132520	//   ]
132521	// }
132522
132523}
132524
132525// method id "compute.regionNotificationEndpoints.get":
132526
132527type RegionNotificationEndpointsGetCall struct {
132528	s                    *Service
132529	project              string
132530	region               string
132531	notificationEndpoint string
132532	urlParams_           gensupport.URLParams
132533	ifNoneMatch_         string
132534	ctx_                 context.Context
132535	header_              http.Header
132536}
132537
132538// Get: Returns the specified NotificationEndpoint resource in the given
132539// region. (== suppress_warning http-rest-shadowed ==)
132540func (r *RegionNotificationEndpointsService) Get(project string, region string, notificationEndpoint string) *RegionNotificationEndpointsGetCall {
132541	c := &RegionNotificationEndpointsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
132542	c.project = project
132543	c.region = region
132544	c.notificationEndpoint = notificationEndpoint
132545	return c
132546}
132547
132548// Fields allows partial responses to be retrieved. See
132549// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
132550// for more information.
132551func (c *RegionNotificationEndpointsGetCall) Fields(s ...googleapi.Field) *RegionNotificationEndpointsGetCall {
132552	c.urlParams_.Set("fields", googleapi.CombineFields(s))
132553	return c
132554}
132555
132556// IfNoneMatch sets the optional parameter which makes the operation
132557// fail if the object's ETag matches the given value. This is useful for
132558// getting updates only after the object has changed since the last
132559// request. Use googleapi.IsNotModified to check whether the response
132560// error from Do is the result of In-None-Match.
132561func (c *RegionNotificationEndpointsGetCall) IfNoneMatch(entityTag string) *RegionNotificationEndpointsGetCall {
132562	c.ifNoneMatch_ = entityTag
132563	return c
132564}
132565
132566// Context sets the context to be used in this call's Do method. Any
132567// pending HTTP request will be aborted if the provided context is
132568// canceled.
132569func (c *RegionNotificationEndpointsGetCall) Context(ctx context.Context) *RegionNotificationEndpointsGetCall {
132570	c.ctx_ = ctx
132571	return c
132572}
132573
132574// Header returns an http.Header that can be modified by the caller to
132575// add HTTP headers to the request.
132576func (c *RegionNotificationEndpointsGetCall) Header() http.Header {
132577	if c.header_ == nil {
132578		c.header_ = make(http.Header)
132579	}
132580	return c.header_
132581}
132582
132583func (c *RegionNotificationEndpointsGetCall) doRequest(alt string) (*http.Response, error) {
132584	reqHeaders := make(http.Header)
132585	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
132586	for k, v := range c.header_ {
132587		reqHeaders[k] = v
132588	}
132589	reqHeaders.Set("User-Agent", c.s.userAgent())
132590	if c.ifNoneMatch_ != "" {
132591		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
132592	}
132593	var body io.Reader = nil
132594	c.urlParams_.Set("alt", alt)
132595	c.urlParams_.Set("prettyPrint", "false")
132596	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/notificationEndpoints/{notificationEndpoint}")
132597	urls += "?" + c.urlParams_.Encode()
132598	req, err := http.NewRequest("GET", urls, body)
132599	if err != nil {
132600		return nil, err
132601	}
132602	req.Header = reqHeaders
132603	googleapi.Expand(req.URL, map[string]string{
132604		"project":              c.project,
132605		"region":               c.region,
132606		"notificationEndpoint": c.notificationEndpoint,
132607	})
132608	return gensupport.SendRequest(c.ctx_, c.s.client, req)
132609}
132610
132611// Do executes the "compute.regionNotificationEndpoints.get" call.
132612// Exactly one of *NotificationEndpoint or error will be non-nil. Any
132613// non-2xx status code is an error. Response headers are in either
132614// *NotificationEndpoint.ServerResponse.Header or (if a response was
132615// returned at all) in error.(*googleapi.Error).Header. Use
132616// googleapi.IsNotModified to check whether the returned error was
132617// because http.StatusNotModified was returned.
132618func (c *RegionNotificationEndpointsGetCall) Do(opts ...googleapi.CallOption) (*NotificationEndpoint, error) {
132619	gensupport.SetOptions(c.urlParams_, opts...)
132620	res, err := c.doRequest("json")
132621	if res != nil && res.StatusCode == http.StatusNotModified {
132622		if res.Body != nil {
132623			res.Body.Close()
132624		}
132625		return nil, &googleapi.Error{
132626			Code:   res.StatusCode,
132627			Header: res.Header,
132628		}
132629	}
132630	if err != nil {
132631		return nil, err
132632	}
132633	defer googleapi.CloseBody(res)
132634	if err := googleapi.CheckResponse(res); err != nil {
132635		return nil, err
132636	}
132637	ret := &NotificationEndpoint{
132638		ServerResponse: googleapi.ServerResponse{
132639			Header:         res.Header,
132640			HTTPStatusCode: res.StatusCode,
132641		},
132642	}
132643	target := &ret
132644	if err := gensupport.DecodeResponse(target, res); err != nil {
132645		return nil, err
132646	}
132647	return ret, nil
132648	// {
132649	//   "description": "Returns the specified NotificationEndpoint resource in the given region. (== suppress_warning http-rest-shadowed ==)",
132650	//   "httpMethod": "GET",
132651	//   "id": "compute.regionNotificationEndpoints.get",
132652	//   "parameterOrder": [
132653	//     "project",
132654	//     "region",
132655	//     "notificationEndpoint"
132656	//   ],
132657	//   "parameters": {
132658	//     "notificationEndpoint": {
132659	//       "description": "Name of the NotificationEndpoint resource to return.",
132660	//       "location": "path",
132661	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
132662	//       "required": true,
132663	//       "type": "string"
132664	//     },
132665	//     "project": {
132666	//       "description": "Project ID for this request.",
132667	//       "location": "path",
132668	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
132669	//       "required": true,
132670	//       "type": "string"
132671	//     },
132672	//     "region": {
132673	//       "description": "Name of the region scoping this request.",
132674	//       "location": "path",
132675	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
132676	//       "required": true,
132677	//       "type": "string"
132678	//     }
132679	//   },
132680	//   "path": "{project}/regions/{region}/notificationEndpoints/{notificationEndpoint}",
132681	//   "response": {
132682	//     "$ref": "NotificationEndpoint"
132683	//   },
132684	//   "scopes": [
132685	//     "https://www.googleapis.com/auth/cloud-platform",
132686	//     "https://www.googleapis.com/auth/compute",
132687	//     "https://www.googleapis.com/auth/compute.readonly"
132688	//   ]
132689	// }
132690
132691}
132692
132693// method id "compute.regionNotificationEndpoints.insert":
132694
132695type RegionNotificationEndpointsInsertCall struct {
132696	s                    *Service
132697	project              string
132698	region               string
132699	notificationendpoint *NotificationEndpoint
132700	urlParams_           gensupport.URLParams
132701	ctx_                 context.Context
132702	header_              http.Header
132703}
132704
132705// Insert: Create a NotificationEndpoint in the specified project in the
132706// given region using the parameters that are included in the request.
132707// (== suppress_warning http-rest-shadowed ==)
132708func (r *RegionNotificationEndpointsService) Insert(project string, region string, notificationendpoint *NotificationEndpoint) *RegionNotificationEndpointsInsertCall {
132709	c := &RegionNotificationEndpointsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
132710	c.project = project
132711	c.region = region
132712	c.notificationendpoint = notificationendpoint
132713	return c
132714}
132715
132716// RequestId sets the optional parameter "requestId": An optional
132717// request ID to identify requests. Specify a unique request ID so that
132718// if you must retry your request, the server will know to ignore the
132719// request if it has already been completed.
132720//
132721// For example, consider a situation where you make an initial request
132722// and the request times out. If you make the request again with the
132723// same request ID, the server can check if original operation with the
132724// same request ID was received, and if so, will ignore the second
132725// request. This prevents clients from accidentally creating duplicate
132726// commitments.
132727//
132728// The request ID must be a valid UUID with the exception that zero UUID
132729// is not supported (00000000-0000-0000-0000-000000000000).
132730func (c *RegionNotificationEndpointsInsertCall) RequestId(requestId string) *RegionNotificationEndpointsInsertCall {
132731	c.urlParams_.Set("requestId", requestId)
132732	return c
132733}
132734
132735// Fields allows partial responses to be retrieved. See
132736// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
132737// for more information.
132738func (c *RegionNotificationEndpointsInsertCall) Fields(s ...googleapi.Field) *RegionNotificationEndpointsInsertCall {
132739	c.urlParams_.Set("fields", googleapi.CombineFields(s))
132740	return c
132741}
132742
132743// Context sets the context to be used in this call's Do method. Any
132744// pending HTTP request will be aborted if the provided context is
132745// canceled.
132746func (c *RegionNotificationEndpointsInsertCall) Context(ctx context.Context) *RegionNotificationEndpointsInsertCall {
132747	c.ctx_ = ctx
132748	return c
132749}
132750
132751// Header returns an http.Header that can be modified by the caller to
132752// add HTTP headers to the request.
132753func (c *RegionNotificationEndpointsInsertCall) Header() http.Header {
132754	if c.header_ == nil {
132755		c.header_ = make(http.Header)
132756	}
132757	return c.header_
132758}
132759
132760func (c *RegionNotificationEndpointsInsertCall) doRequest(alt string) (*http.Response, error) {
132761	reqHeaders := make(http.Header)
132762	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
132763	for k, v := range c.header_ {
132764		reqHeaders[k] = v
132765	}
132766	reqHeaders.Set("User-Agent", c.s.userAgent())
132767	var body io.Reader = nil
132768	body, err := googleapi.WithoutDataWrapper.JSONReader(c.notificationendpoint)
132769	if err != nil {
132770		return nil, err
132771	}
132772	reqHeaders.Set("Content-Type", "application/json")
132773	c.urlParams_.Set("alt", alt)
132774	c.urlParams_.Set("prettyPrint", "false")
132775	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/notificationEndpoints")
132776	urls += "?" + c.urlParams_.Encode()
132777	req, err := http.NewRequest("POST", urls, body)
132778	if err != nil {
132779		return nil, err
132780	}
132781	req.Header = reqHeaders
132782	googleapi.Expand(req.URL, map[string]string{
132783		"project": c.project,
132784		"region":  c.region,
132785	})
132786	return gensupport.SendRequest(c.ctx_, c.s.client, req)
132787}
132788
132789// Do executes the "compute.regionNotificationEndpoints.insert" call.
132790// Exactly one of *Operation or error will be non-nil. Any non-2xx
132791// status code is an error. Response headers are in either
132792// *Operation.ServerResponse.Header or (if a response was returned at
132793// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
132794// to check whether the returned error was because
132795// http.StatusNotModified was returned.
132796func (c *RegionNotificationEndpointsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
132797	gensupport.SetOptions(c.urlParams_, opts...)
132798	res, err := c.doRequest("json")
132799	if res != nil && res.StatusCode == http.StatusNotModified {
132800		if res.Body != nil {
132801			res.Body.Close()
132802		}
132803		return nil, &googleapi.Error{
132804			Code:   res.StatusCode,
132805			Header: res.Header,
132806		}
132807	}
132808	if err != nil {
132809		return nil, err
132810	}
132811	defer googleapi.CloseBody(res)
132812	if err := googleapi.CheckResponse(res); err != nil {
132813		return nil, err
132814	}
132815	ret := &Operation{
132816		ServerResponse: googleapi.ServerResponse{
132817			Header:         res.Header,
132818			HTTPStatusCode: res.StatusCode,
132819		},
132820	}
132821	target := &ret
132822	if err := gensupport.DecodeResponse(target, res); err != nil {
132823		return nil, err
132824	}
132825	return ret, nil
132826	// {
132827	//   "description": "Create a NotificationEndpoint in the specified project in the given region using the parameters that are included in the request. (== suppress_warning http-rest-shadowed ==)",
132828	//   "httpMethod": "POST",
132829	//   "id": "compute.regionNotificationEndpoints.insert",
132830	//   "parameterOrder": [
132831	//     "project",
132832	//     "region"
132833	//   ],
132834	//   "parameters": {
132835	//     "project": {
132836	//       "description": "Project ID for this request.",
132837	//       "location": "path",
132838	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
132839	//       "required": true,
132840	//       "type": "string"
132841	//     },
132842	//     "region": {
132843	//       "description": "Name of the region scoping this request.",
132844	//       "location": "path",
132845	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
132846	//       "required": true,
132847	//       "type": "string"
132848	//     },
132849	//     "requestId": {
132850	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
132851	//       "location": "query",
132852	//       "type": "string"
132853	//     }
132854	//   },
132855	//   "path": "{project}/regions/{region}/notificationEndpoints",
132856	//   "request": {
132857	//     "$ref": "NotificationEndpoint"
132858	//   },
132859	//   "response": {
132860	//     "$ref": "Operation"
132861	//   },
132862	//   "scopes": [
132863	//     "https://www.googleapis.com/auth/cloud-platform",
132864	//     "https://www.googleapis.com/auth/compute"
132865	//   ]
132866	// }
132867
132868}
132869
132870// method id "compute.regionNotificationEndpoints.list":
132871
132872type RegionNotificationEndpointsListCall struct {
132873	s            *Service
132874	project      string
132875	region       string
132876	urlParams_   gensupport.URLParams
132877	ifNoneMatch_ string
132878	ctx_         context.Context
132879	header_      http.Header
132880}
132881
132882// List: Lists the NotificationEndpoints for a project in the given
132883// region. (== suppress_warning http-rest-shadowed ==)
132884func (r *RegionNotificationEndpointsService) List(project string, region string) *RegionNotificationEndpointsListCall {
132885	c := &RegionNotificationEndpointsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
132886	c.project = project
132887	c.region = region
132888	return c
132889}
132890
132891// Filter sets the optional parameter "filter": A filter expression that
132892// filters resources listed in the response. The expression must specify
132893// the field name, a comparison operator, and the value that you want to
132894// use for filtering. The value must be a string, a number, or a
132895// boolean. The comparison operator must be either =, !=, >, or <.
132896//
132897// For example, if you are filtering Compute Engine instances, you can
132898// exclude instances named example-instance by specifying name !=
132899// example-instance.
132900//
132901// You can also filter nested fields. For example, you could specify
132902// scheduling.automaticRestart = false to include instances only if they
132903// are not scheduled for automatic restarts. You can use filtering on
132904// nested fields to filter based on resource labels.
132905//
132906// To filter on multiple expressions, provide each separate expression
132907// within parentheses. For example, (scheduling.automaticRestart = true)
132908// (cpuPlatform = "Intel Skylake"). By default, each expression is an
132909// AND expression. However, you can include AND and OR expressions
132910// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
132911// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
132912// true).
132913func (c *RegionNotificationEndpointsListCall) Filter(filter string) *RegionNotificationEndpointsListCall {
132914	c.urlParams_.Set("filter", filter)
132915	return c
132916}
132917
132918// MaxResults sets the optional parameter "maxResults": The maximum
132919// number of results per page that should be returned. If the number of
132920// available results is larger than maxResults, Compute Engine returns a
132921// nextPageToken that can be used to get the next page of results in
132922// subsequent list requests. Acceptable values are 0 to 500, inclusive.
132923// (Default: 500)
132924func (c *RegionNotificationEndpointsListCall) MaxResults(maxResults int64) *RegionNotificationEndpointsListCall {
132925	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
132926	return c
132927}
132928
132929// OrderBy sets the optional parameter "orderBy": Sorts list results by
132930// a certain order. By default, results are returned in alphanumerical
132931// order based on the resource name.
132932//
132933// You can also sort results in descending order based on the creation
132934// timestamp using orderBy="creationTimestamp desc". This sorts results
132935// based on the creationTimestamp field in reverse chronological order
132936// (newest result first). Use this to sort resources like operations so
132937// that the newest operation is returned first.
132938//
132939// Currently, only sorting by name or creationTimestamp desc is
132940// supported.
132941func (c *RegionNotificationEndpointsListCall) OrderBy(orderBy string) *RegionNotificationEndpointsListCall {
132942	c.urlParams_.Set("orderBy", orderBy)
132943	return c
132944}
132945
132946// PageToken sets the optional parameter "pageToken": Specifies a page
132947// token to use. Set pageToken to the nextPageToken returned by a
132948// previous list request to get the next page of results.
132949func (c *RegionNotificationEndpointsListCall) PageToken(pageToken string) *RegionNotificationEndpointsListCall {
132950	c.urlParams_.Set("pageToken", pageToken)
132951	return c
132952}
132953
132954// Fields allows partial responses to be retrieved. See
132955// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
132956// for more information.
132957func (c *RegionNotificationEndpointsListCall) Fields(s ...googleapi.Field) *RegionNotificationEndpointsListCall {
132958	c.urlParams_.Set("fields", googleapi.CombineFields(s))
132959	return c
132960}
132961
132962// IfNoneMatch sets the optional parameter which makes the operation
132963// fail if the object's ETag matches the given value. This is useful for
132964// getting updates only after the object has changed since the last
132965// request. Use googleapi.IsNotModified to check whether the response
132966// error from Do is the result of In-None-Match.
132967func (c *RegionNotificationEndpointsListCall) IfNoneMatch(entityTag string) *RegionNotificationEndpointsListCall {
132968	c.ifNoneMatch_ = entityTag
132969	return c
132970}
132971
132972// Context sets the context to be used in this call's Do method. Any
132973// pending HTTP request will be aborted if the provided context is
132974// canceled.
132975func (c *RegionNotificationEndpointsListCall) Context(ctx context.Context) *RegionNotificationEndpointsListCall {
132976	c.ctx_ = ctx
132977	return c
132978}
132979
132980// Header returns an http.Header that can be modified by the caller to
132981// add HTTP headers to the request.
132982func (c *RegionNotificationEndpointsListCall) Header() http.Header {
132983	if c.header_ == nil {
132984		c.header_ = make(http.Header)
132985	}
132986	return c.header_
132987}
132988
132989func (c *RegionNotificationEndpointsListCall) doRequest(alt string) (*http.Response, error) {
132990	reqHeaders := make(http.Header)
132991	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
132992	for k, v := range c.header_ {
132993		reqHeaders[k] = v
132994	}
132995	reqHeaders.Set("User-Agent", c.s.userAgent())
132996	if c.ifNoneMatch_ != "" {
132997		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
132998	}
132999	var body io.Reader = nil
133000	c.urlParams_.Set("alt", alt)
133001	c.urlParams_.Set("prettyPrint", "false")
133002	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/notificationEndpoints")
133003	urls += "?" + c.urlParams_.Encode()
133004	req, err := http.NewRequest("GET", urls, body)
133005	if err != nil {
133006		return nil, err
133007	}
133008	req.Header = reqHeaders
133009	googleapi.Expand(req.URL, map[string]string{
133010		"project": c.project,
133011		"region":  c.region,
133012	})
133013	return gensupport.SendRequest(c.ctx_, c.s.client, req)
133014}
133015
133016// Do executes the "compute.regionNotificationEndpoints.list" call.
133017// Exactly one of *NotificationEndpointList or error will be non-nil.
133018// Any non-2xx status code is an error. Response headers are in either
133019// *NotificationEndpointList.ServerResponse.Header or (if a response was
133020// returned at all) in error.(*googleapi.Error).Header. Use
133021// googleapi.IsNotModified to check whether the returned error was
133022// because http.StatusNotModified was returned.
133023func (c *RegionNotificationEndpointsListCall) Do(opts ...googleapi.CallOption) (*NotificationEndpointList, error) {
133024	gensupport.SetOptions(c.urlParams_, opts...)
133025	res, err := c.doRequest("json")
133026	if res != nil && res.StatusCode == http.StatusNotModified {
133027		if res.Body != nil {
133028			res.Body.Close()
133029		}
133030		return nil, &googleapi.Error{
133031			Code:   res.StatusCode,
133032			Header: res.Header,
133033		}
133034	}
133035	if err != nil {
133036		return nil, err
133037	}
133038	defer googleapi.CloseBody(res)
133039	if err := googleapi.CheckResponse(res); err != nil {
133040		return nil, err
133041	}
133042	ret := &NotificationEndpointList{
133043		ServerResponse: googleapi.ServerResponse{
133044			Header:         res.Header,
133045			HTTPStatusCode: res.StatusCode,
133046		},
133047	}
133048	target := &ret
133049	if err := gensupport.DecodeResponse(target, res); err != nil {
133050		return nil, err
133051	}
133052	return ret, nil
133053	// {
133054	//   "description": "Lists the NotificationEndpoints for a project in the given region. (== suppress_warning http-rest-shadowed ==)",
133055	//   "httpMethod": "GET",
133056	//   "id": "compute.regionNotificationEndpoints.list",
133057	//   "parameterOrder": [
133058	//     "project",
133059	//     "region"
133060	//   ],
133061	//   "parameters": {
133062	//     "filter": {
133063	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
133064	//       "location": "query",
133065	//       "type": "string"
133066	//     },
133067	//     "maxResults": {
133068	//       "default": "500",
133069	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
133070	//       "format": "uint32",
133071	//       "location": "query",
133072	//       "minimum": "0",
133073	//       "type": "integer"
133074	//     },
133075	//     "orderBy": {
133076	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
133077	//       "location": "query",
133078	//       "type": "string"
133079	//     },
133080	//     "pageToken": {
133081	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
133082	//       "location": "query",
133083	//       "type": "string"
133084	//     },
133085	//     "project": {
133086	//       "description": "Project ID for this request.",
133087	//       "location": "path",
133088	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
133089	//       "required": true,
133090	//       "type": "string"
133091	//     },
133092	//     "region": {
133093	//       "description": "Name of the region scoping this request.",
133094	//       "location": "path",
133095	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
133096	//       "required": true,
133097	//       "type": "string"
133098	//     }
133099	//   },
133100	//   "path": "{project}/regions/{region}/notificationEndpoints",
133101	//   "response": {
133102	//     "$ref": "NotificationEndpointList"
133103	//   },
133104	//   "scopes": [
133105	//     "https://www.googleapis.com/auth/cloud-platform",
133106	//     "https://www.googleapis.com/auth/compute",
133107	//     "https://www.googleapis.com/auth/compute.readonly"
133108	//   ]
133109	// }
133110
133111}
133112
133113// Pages invokes f for each page of results.
133114// A non-nil error returned from f will halt the iteration.
133115// The provided context supersedes any context provided to the Context method.
133116func (c *RegionNotificationEndpointsListCall) Pages(ctx context.Context, f func(*NotificationEndpointList) error) error {
133117	c.ctx_ = ctx
133118	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
133119	for {
133120		x, err := c.Do()
133121		if err != nil {
133122			return err
133123		}
133124		if err := f(x); err != nil {
133125			return err
133126		}
133127		if x.NextPageToken == "" {
133128			return nil
133129		}
133130		c.PageToken(x.NextPageToken)
133131	}
133132}
133133
133134// method id "compute.regionNotificationEndpoints.testIamPermissions":
133135
133136type RegionNotificationEndpointsTestIamPermissionsCall struct {
133137	s                      *Service
133138	project                string
133139	region                 string
133140	resource               string
133141	testpermissionsrequest *TestPermissionsRequest
133142	urlParams_             gensupport.URLParams
133143	ctx_                   context.Context
133144	header_                http.Header
133145}
133146
133147// TestIamPermissions: Returns permissions that a caller has on the
133148// specified resource. (== suppress_warning http-rest-shadowed ==)
133149func (r *RegionNotificationEndpointsService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *RegionNotificationEndpointsTestIamPermissionsCall {
133150	c := &RegionNotificationEndpointsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
133151	c.project = project
133152	c.region = region
133153	c.resource = resource
133154	c.testpermissionsrequest = testpermissionsrequest
133155	return c
133156}
133157
133158// Fields allows partial responses to be retrieved. See
133159// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
133160// for more information.
133161func (c *RegionNotificationEndpointsTestIamPermissionsCall) Fields(s ...googleapi.Field) *RegionNotificationEndpointsTestIamPermissionsCall {
133162	c.urlParams_.Set("fields", googleapi.CombineFields(s))
133163	return c
133164}
133165
133166// Context sets the context to be used in this call's Do method. Any
133167// pending HTTP request will be aborted if the provided context is
133168// canceled.
133169func (c *RegionNotificationEndpointsTestIamPermissionsCall) Context(ctx context.Context) *RegionNotificationEndpointsTestIamPermissionsCall {
133170	c.ctx_ = ctx
133171	return c
133172}
133173
133174// Header returns an http.Header that can be modified by the caller to
133175// add HTTP headers to the request.
133176func (c *RegionNotificationEndpointsTestIamPermissionsCall) Header() http.Header {
133177	if c.header_ == nil {
133178		c.header_ = make(http.Header)
133179	}
133180	return c.header_
133181}
133182
133183func (c *RegionNotificationEndpointsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
133184	reqHeaders := make(http.Header)
133185	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
133186	for k, v := range c.header_ {
133187		reqHeaders[k] = v
133188	}
133189	reqHeaders.Set("User-Agent", c.s.userAgent())
133190	var body io.Reader = nil
133191	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
133192	if err != nil {
133193		return nil, err
133194	}
133195	reqHeaders.Set("Content-Type", "application/json")
133196	c.urlParams_.Set("alt", alt)
133197	c.urlParams_.Set("prettyPrint", "false")
133198	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/notificationEndpoints/{resource}/testIamPermissions")
133199	urls += "?" + c.urlParams_.Encode()
133200	req, err := http.NewRequest("POST", urls, body)
133201	if err != nil {
133202		return nil, err
133203	}
133204	req.Header = reqHeaders
133205	googleapi.Expand(req.URL, map[string]string{
133206		"project":  c.project,
133207		"region":   c.region,
133208		"resource": c.resource,
133209	})
133210	return gensupport.SendRequest(c.ctx_, c.s.client, req)
133211}
133212
133213// Do executes the "compute.regionNotificationEndpoints.testIamPermissions" call.
133214// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
133215// non-2xx status code is an error. Response headers are in either
133216// *TestPermissionsResponse.ServerResponse.Header or (if a response was
133217// returned at all) in error.(*googleapi.Error).Header. Use
133218// googleapi.IsNotModified to check whether the returned error was
133219// because http.StatusNotModified was returned.
133220func (c *RegionNotificationEndpointsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
133221	gensupport.SetOptions(c.urlParams_, opts...)
133222	res, err := c.doRequest("json")
133223	if res != nil && res.StatusCode == http.StatusNotModified {
133224		if res.Body != nil {
133225			res.Body.Close()
133226		}
133227		return nil, &googleapi.Error{
133228			Code:   res.StatusCode,
133229			Header: res.Header,
133230		}
133231	}
133232	if err != nil {
133233		return nil, err
133234	}
133235	defer googleapi.CloseBody(res)
133236	if err := googleapi.CheckResponse(res); err != nil {
133237		return nil, err
133238	}
133239	ret := &TestPermissionsResponse{
133240		ServerResponse: googleapi.ServerResponse{
133241			Header:         res.Header,
133242			HTTPStatusCode: res.StatusCode,
133243		},
133244	}
133245	target := &ret
133246	if err := gensupport.DecodeResponse(target, res); err != nil {
133247		return nil, err
133248	}
133249	return ret, nil
133250	// {
133251	//   "description": "Returns permissions that a caller has on the specified resource. (== suppress_warning http-rest-shadowed ==)",
133252	//   "httpMethod": "POST",
133253	//   "id": "compute.regionNotificationEndpoints.testIamPermissions",
133254	//   "parameterOrder": [
133255	//     "project",
133256	//     "region",
133257	//     "resource"
133258	//   ],
133259	//   "parameters": {
133260	//     "project": {
133261	//       "description": "Project ID for this request.",
133262	//       "location": "path",
133263	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
133264	//       "required": true,
133265	//       "type": "string"
133266	//     },
133267	//     "region": {
133268	//       "description": "The name of the region for this request.",
133269	//       "location": "path",
133270	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
133271	//       "required": true,
133272	//       "type": "string"
133273	//     },
133274	//     "resource": {
133275	//       "description": "Name or id of the resource for this request.",
133276	//       "location": "path",
133277	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
133278	//       "required": true,
133279	//       "type": "string"
133280	//     }
133281	//   },
133282	//   "path": "{project}/regions/{region}/notificationEndpoints/{resource}/testIamPermissions",
133283	//   "request": {
133284	//     "$ref": "TestPermissionsRequest"
133285	//   },
133286	//   "response": {
133287	//     "$ref": "TestPermissionsResponse"
133288	//   },
133289	//   "scopes": [
133290	//     "https://www.googleapis.com/auth/cloud-platform",
133291	//     "https://www.googleapis.com/auth/compute",
133292	//     "https://www.googleapis.com/auth/compute.readonly"
133293	//   ]
133294	// }
133295
133296}
133297
133298// method id "compute.regionOperations.delete":
133299
133300type RegionOperationsDeleteCall struct {
133301	s          *Service
133302	project    string
133303	region     string
133304	operation  string
133305	urlParams_ gensupport.URLParams
133306	ctx_       context.Context
133307	header_    http.Header
133308}
133309
133310// Delete: Deletes the specified region-specific Operations resource.
133311// (== suppress_warning http-rest-shadowed ==)
133312// For details, see https://cloud.google.com/compute/docs/reference/latest/regionOperations/delete
133313func (r *RegionOperationsService) Delete(project string, region string, operation string) *RegionOperationsDeleteCall {
133314	c := &RegionOperationsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
133315	c.project = project
133316	c.region = region
133317	c.operation = operation
133318	return c
133319}
133320
133321// Fields allows partial responses to be retrieved. See
133322// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
133323// for more information.
133324func (c *RegionOperationsDeleteCall) Fields(s ...googleapi.Field) *RegionOperationsDeleteCall {
133325	c.urlParams_.Set("fields", googleapi.CombineFields(s))
133326	return c
133327}
133328
133329// Context sets the context to be used in this call's Do method. Any
133330// pending HTTP request will be aborted if the provided context is
133331// canceled.
133332func (c *RegionOperationsDeleteCall) Context(ctx context.Context) *RegionOperationsDeleteCall {
133333	c.ctx_ = ctx
133334	return c
133335}
133336
133337// Header returns an http.Header that can be modified by the caller to
133338// add HTTP headers to the request.
133339func (c *RegionOperationsDeleteCall) Header() http.Header {
133340	if c.header_ == nil {
133341		c.header_ = make(http.Header)
133342	}
133343	return c.header_
133344}
133345
133346func (c *RegionOperationsDeleteCall) doRequest(alt string) (*http.Response, error) {
133347	reqHeaders := make(http.Header)
133348	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
133349	for k, v := range c.header_ {
133350		reqHeaders[k] = v
133351	}
133352	reqHeaders.Set("User-Agent", c.s.userAgent())
133353	var body io.Reader = nil
133354	c.urlParams_.Set("alt", alt)
133355	c.urlParams_.Set("prettyPrint", "false")
133356	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/operations/{operation}")
133357	urls += "?" + c.urlParams_.Encode()
133358	req, err := http.NewRequest("DELETE", urls, body)
133359	if err != nil {
133360		return nil, err
133361	}
133362	req.Header = reqHeaders
133363	googleapi.Expand(req.URL, map[string]string{
133364		"project":   c.project,
133365		"region":    c.region,
133366		"operation": c.operation,
133367	})
133368	return gensupport.SendRequest(c.ctx_, c.s.client, req)
133369}
133370
133371// Do executes the "compute.regionOperations.delete" call.
133372func (c *RegionOperationsDeleteCall) Do(opts ...googleapi.CallOption) error {
133373	gensupport.SetOptions(c.urlParams_, opts...)
133374	res, err := c.doRequest("json")
133375	if err != nil {
133376		return err
133377	}
133378	defer googleapi.CloseBody(res)
133379	if err := googleapi.CheckResponse(res); err != nil {
133380		return err
133381	}
133382	return nil
133383	// {
133384	//   "description": "Deletes the specified region-specific Operations resource. (== suppress_warning http-rest-shadowed ==)",
133385	//   "httpMethod": "DELETE",
133386	//   "id": "compute.regionOperations.delete",
133387	//   "parameterOrder": [
133388	//     "project",
133389	//     "region",
133390	//     "operation"
133391	//   ],
133392	//   "parameters": {
133393	//     "operation": {
133394	//       "description": "Name of the Operations resource to delete.",
133395	//       "location": "path",
133396	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
133397	//       "required": true,
133398	//       "type": "string"
133399	//     },
133400	//     "project": {
133401	//       "description": "Project ID for this request.",
133402	//       "location": "path",
133403	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
133404	//       "required": true,
133405	//       "type": "string"
133406	//     },
133407	//     "region": {
133408	//       "description": "Name of the region for this request.",
133409	//       "location": "path",
133410	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
133411	//       "required": true,
133412	//       "type": "string"
133413	//     }
133414	//   },
133415	//   "path": "{project}/regions/{region}/operations/{operation}",
133416	//   "scopes": [
133417	//     "https://www.googleapis.com/auth/cloud-platform",
133418	//     "https://www.googleapis.com/auth/compute"
133419	//   ]
133420	// }
133421
133422}
133423
133424// method id "compute.regionOperations.get":
133425
133426type RegionOperationsGetCall struct {
133427	s            *Service
133428	project      string
133429	region       string
133430	operation    string
133431	urlParams_   gensupport.URLParams
133432	ifNoneMatch_ string
133433	ctx_         context.Context
133434	header_      http.Header
133435}
133436
133437// Get: Retrieves the specified region-specific Operations resource. (==
133438// suppress_warning http-rest-shadowed ==)
133439// For details, see https://cloud.google.com/compute/docs/reference/latest/regionOperations/get
133440func (r *RegionOperationsService) Get(project string, region string, operation string) *RegionOperationsGetCall {
133441	c := &RegionOperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
133442	c.project = project
133443	c.region = region
133444	c.operation = operation
133445	return c
133446}
133447
133448// Fields allows partial responses to be retrieved. See
133449// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
133450// for more information.
133451func (c *RegionOperationsGetCall) Fields(s ...googleapi.Field) *RegionOperationsGetCall {
133452	c.urlParams_.Set("fields", googleapi.CombineFields(s))
133453	return c
133454}
133455
133456// IfNoneMatch sets the optional parameter which makes the operation
133457// fail if the object's ETag matches the given value. This is useful for
133458// getting updates only after the object has changed since the last
133459// request. Use googleapi.IsNotModified to check whether the response
133460// error from Do is the result of In-None-Match.
133461func (c *RegionOperationsGetCall) IfNoneMatch(entityTag string) *RegionOperationsGetCall {
133462	c.ifNoneMatch_ = entityTag
133463	return c
133464}
133465
133466// Context sets the context to be used in this call's Do method. Any
133467// pending HTTP request will be aborted if the provided context is
133468// canceled.
133469func (c *RegionOperationsGetCall) Context(ctx context.Context) *RegionOperationsGetCall {
133470	c.ctx_ = ctx
133471	return c
133472}
133473
133474// Header returns an http.Header that can be modified by the caller to
133475// add HTTP headers to the request.
133476func (c *RegionOperationsGetCall) Header() http.Header {
133477	if c.header_ == nil {
133478		c.header_ = make(http.Header)
133479	}
133480	return c.header_
133481}
133482
133483func (c *RegionOperationsGetCall) doRequest(alt string) (*http.Response, error) {
133484	reqHeaders := make(http.Header)
133485	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
133486	for k, v := range c.header_ {
133487		reqHeaders[k] = v
133488	}
133489	reqHeaders.Set("User-Agent", c.s.userAgent())
133490	if c.ifNoneMatch_ != "" {
133491		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
133492	}
133493	var body io.Reader = nil
133494	c.urlParams_.Set("alt", alt)
133495	c.urlParams_.Set("prettyPrint", "false")
133496	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/operations/{operation}")
133497	urls += "?" + c.urlParams_.Encode()
133498	req, err := http.NewRequest("GET", urls, body)
133499	if err != nil {
133500		return nil, err
133501	}
133502	req.Header = reqHeaders
133503	googleapi.Expand(req.URL, map[string]string{
133504		"project":   c.project,
133505		"region":    c.region,
133506		"operation": c.operation,
133507	})
133508	return gensupport.SendRequest(c.ctx_, c.s.client, req)
133509}
133510
133511// Do executes the "compute.regionOperations.get" call.
133512// Exactly one of *Operation or error will be non-nil. Any non-2xx
133513// status code is an error. Response headers are in either
133514// *Operation.ServerResponse.Header or (if a response was returned at
133515// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
133516// to check whether the returned error was because
133517// http.StatusNotModified was returned.
133518func (c *RegionOperationsGetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
133519	gensupport.SetOptions(c.urlParams_, opts...)
133520	res, err := c.doRequest("json")
133521	if res != nil && res.StatusCode == http.StatusNotModified {
133522		if res.Body != nil {
133523			res.Body.Close()
133524		}
133525		return nil, &googleapi.Error{
133526			Code:   res.StatusCode,
133527			Header: res.Header,
133528		}
133529	}
133530	if err != nil {
133531		return nil, err
133532	}
133533	defer googleapi.CloseBody(res)
133534	if err := googleapi.CheckResponse(res); err != nil {
133535		return nil, err
133536	}
133537	ret := &Operation{
133538		ServerResponse: googleapi.ServerResponse{
133539			Header:         res.Header,
133540			HTTPStatusCode: res.StatusCode,
133541		},
133542	}
133543	target := &ret
133544	if err := gensupport.DecodeResponse(target, res); err != nil {
133545		return nil, err
133546	}
133547	return ret, nil
133548	// {
133549	//   "description": "Retrieves the specified region-specific Operations resource. (== suppress_warning http-rest-shadowed ==)",
133550	//   "httpMethod": "GET",
133551	//   "id": "compute.regionOperations.get",
133552	//   "parameterOrder": [
133553	//     "project",
133554	//     "region",
133555	//     "operation"
133556	//   ],
133557	//   "parameters": {
133558	//     "operation": {
133559	//       "description": "Name of the Operations resource to return.",
133560	//       "location": "path",
133561	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
133562	//       "required": true,
133563	//       "type": "string"
133564	//     },
133565	//     "project": {
133566	//       "description": "Project ID for this request.",
133567	//       "location": "path",
133568	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
133569	//       "required": true,
133570	//       "type": "string"
133571	//     },
133572	//     "region": {
133573	//       "description": "Name of the region for this request.",
133574	//       "location": "path",
133575	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
133576	//       "required": true,
133577	//       "type": "string"
133578	//     }
133579	//   },
133580	//   "path": "{project}/regions/{region}/operations/{operation}",
133581	//   "response": {
133582	//     "$ref": "Operation"
133583	//   },
133584	//   "scopes": [
133585	//     "https://www.googleapis.com/auth/cloud-platform",
133586	//     "https://www.googleapis.com/auth/compute",
133587	//     "https://www.googleapis.com/auth/compute.readonly"
133588	//   ]
133589	// }
133590
133591}
133592
133593// method id "compute.regionOperations.list":
133594
133595type RegionOperationsListCall struct {
133596	s            *Service
133597	project      string
133598	region       string
133599	urlParams_   gensupport.URLParams
133600	ifNoneMatch_ string
133601	ctx_         context.Context
133602	header_      http.Header
133603}
133604
133605// List: Retrieves a list of Operation resources contained within the
133606// specified region. (== suppress_warning http-rest-shadowed ==)
133607// For details, see https://cloud.google.com/compute/docs/reference/latest/regionOperations/list
133608func (r *RegionOperationsService) List(project string, region string) *RegionOperationsListCall {
133609	c := &RegionOperationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
133610	c.project = project
133611	c.region = region
133612	return c
133613}
133614
133615// Filter sets the optional parameter "filter": A filter expression that
133616// filters resources listed in the response. The expression must specify
133617// the field name, a comparison operator, and the value that you want to
133618// use for filtering. The value must be a string, a number, or a
133619// boolean. The comparison operator must be either =, !=, >, or <.
133620//
133621// For example, if you are filtering Compute Engine instances, you can
133622// exclude instances named example-instance by specifying name !=
133623// example-instance.
133624//
133625// You can also filter nested fields. For example, you could specify
133626// scheduling.automaticRestart = false to include instances only if they
133627// are not scheduled for automatic restarts. You can use filtering on
133628// nested fields to filter based on resource labels.
133629//
133630// To filter on multiple expressions, provide each separate expression
133631// within parentheses. For example, (scheduling.automaticRestart = true)
133632// (cpuPlatform = "Intel Skylake"). By default, each expression is an
133633// AND expression. However, you can include AND and OR expressions
133634// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
133635// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
133636// true).
133637func (c *RegionOperationsListCall) Filter(filter string) *RegionOperationsListCall {
133638	c.urlParams_.Set("filter", filter)
133639	return c
133640}
133641
133642// MaxResults sets the optional parameter "maxResults": The maximum
133643// number of results per page that should be returned. If the number of
133644// available results is larger than maxResults, Compute Engine returns a
133645// nextPageToken that can be used to get the next page of results in
133646// subsequent list requests. Acceptable values are 0 to 500, inclusive.
133647// (Default: 500)
133648func (c *RegionOperationsListCall) MaxResults(maxResults int64) *RegionOperationsListCall {
133649	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
133650	return c
133651}
133652
133653// OrderBy sets the optional parameter "orderBy": Sorts list results by
133654// a certain order. By default, results are returned in alphanumerical
133655// order based on the resource name.
133656//
133657// You can also sort results in descending order based on the creation
133658// timestamp using orderBy="creationTimestamp desc". This sorts results
133659// based on the creationTimestamp field in reverse chronological order
133660// (newest result first). Use this to sort resources like operations so
133661// that the newest operation is returned first.
133662//
133663// Currently, only sorting by name or creationTimestamp desc is
133664// supported.
133665func (c *RegionOperationsListCall) OrderBy(orderBy string) *RegionOperationsListCall {
133666	c.urlParams_.Set("orderBy", orderBy)
133667	return c
133668}
133669
133670// PageToken sets the optional parameter "pageToken": Specifies a page
133671// token to use. Set pageToken to the nextPageToken returned by a
133672// previous list request to get the next page of results.
133673func (c *RegionOperationsListCall) PageToken(pageToken string) *RegionOperationsListCall {
133674	c.urlParams_.Set("pageToken", pageToken)
133675	return c
133676}
133677
133678// Fields allows partial responses to be retrieved. See
133679// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
133680// for more information.
133681func (c *RegionOperationsListCall) Fields(s ...googleapi.Field) *RegionOperationsListCall {
133682	c.urlParams_.Set("fields", googleapi.CombineFields(s))
133683	return c
133684}
133685
133686// IfNoneMatch sets the optional parameter which makes the operation
133687// fail if the object's ETag matches the given value. This is useful for
133688// getting updates only after the object has changed since the last
133689// request. Use googleapi.IsNotModified to check whether the response
133690// error from Do is the result of In-None-Match.
133691func (c *RegionOperationsListCall) IfNoneMatch(entityTag string) *RegionOperationsListCall {
133692	c.ifNoneMatch_ = entityTag
133693	return c
133694}
133695
133696// Context sets the context to be used in this call's Do method. Any
133697// pending HTTP request will be aborted if the provided context is
133698// canceled.
133699func (c *RegionOperationsListCall) Context(ctx context.Context) *RegionOperationsListCall {
133700	c.ctx_ = ctx
133701	return c
133702}
133703
133704// Header returns an http.Header that can be modified by the caller to
133705// add HTTP headers to the request.
133706func (c *RegionOperationsListCall) Header() http.Header {
133707	if c.header_ == nil {
133708		c.header_ = make(http.Header)
133709	}
133710	return c.header_
133711}
133712
133713func (c *RegionOperationsListCall) doRequest(alt string) (*http.Response, error) {
133714	reqHeaders := make(http.Header)
133715	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
133716	for k, v := range c.header_ {
133717		reqHeaders[k] = v
133718	}
133719	reqHeaders.Set("User-Agent", c.s.userAgent())
133720	if c.ifNoneMatch_ != "" {
133721		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
133722	}
133723	var body io.Reader = nil
133724	c.urlParams_.Set("alt", alt)
133725	c.urlParams_.Set("prettyPrint", "false")
133726	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/operations")
133727	urls += "?" + c.urlParams_.Encode()
133728	req, err := http.NewRequest("GET", urls, body)
133729	if err != nil {
133730		return nil, err
133731	}
133732	req.Header = reqHeaders
133733	googleapi.Expand(req.URL, map[string]string{
133734		"project": c.project,
133735		"region":  c.region,
133736	})
133737	return gensupport.SendRequest(c.ctx_, c.s.client, req)
133738}
133739
133740// Do executes the "compute.regionOperations.list" call.
133741// Exactly one of *OperationList or error will be non-nil. Any non-2xx
133742// status code is an error. Response headers are in either
133743// *OperationList.ServerResponse.Header or (if a response was returned
133744// at all) in error.(*googleapi.Error).Header. Use
133745// googleapi.IsNotModified to check whether the returned error was
133746// because http.StatusNotModified was returned.
133747func (c *RegionOperationsListCall) Do(opts ...googleapi.CallOption) (*OperationList, error) {
133748	gensupport.SetOptions(c.urlParams_, opts...)
133749	res, err := c.doRequest("json")
133750	if res != nil && res.StatusCode == http.StatusNotModified {
133751		if res.Body != nil {
133752			res.Body.Close()
133753		}
133754		return nil, &googleapi.Error{
133755			Code:   res.StatusCode,
133756			Header: res.Header,
133757		}
133758	}
133759	if err != nil {
133760		return nil, err
133761	}
133762	defer googleapi.CloseBody(res)
133763	if err := googleapi.CheckResponse(res); err != nil {
133764		return nil, err
133765	}
133766	ret := &OperationList{
133767		ServerResponse: googleapi.ServerResponse{
133768			Header:         res.Header,
133769			HTTPStatusCode: res.StatusCode,
133770		},
133771	}
133772	target := &ret
133773	if err := gensupport.DecodeResponse(target, res); err != nil {
133774		return nil, err
133775	}
133776	return ret, nil
133777	// {
133778	//   "description": "Retrieves a list of Operation resources contained within the specified region. (== suppress_warning http-rest-shadowed ==)",
133779	//   "httpMethod": "GET",
133780	//   "id": "compute.regionOperations.list",
133781	//   "parameterOrder": [
133782	//     "project",
133783	//     "region"
133784	//   ],
133785	//   "parameters": {
133786	//     "filter": {
133787	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
133788	//       "location": "query",
133789	//       "type": "string"
133790	//     },
133791	//     "maxResults": {
133792	//       "default": "500",
133793	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
133794	//       "format": "uint32",
133795	//       "location": "query",
133796	//       "minimum": "0",
133797	//       "type": "integer"
133798	//     },
133799	//     "orderBy": {
133800	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
133801	//       "location": "query",
133802	//       "type": "string"
133803	//     },
133804	//     "pageToken": {
133805	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
133806	//       "location": "query",
133807	//       "type": "string"
133808	//     },
133809	//     "project": {
133810	//       "description": "Project ID for this request.",
133811	//       "location": "path",
133812	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
133813	//       "required": true,
133814	//       "type": "string"
133815	//     },
133816	//     "region": {
133817	//       "description": "Name of the region for this request.",
133818	//       "location": "path",
133819	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
133820	//       "required": true,
133821	//       "type": "string"
133822	//     }
133823	//   },
133824	//   "path": "{project}/regions/{region}/operations",
133825	//   "response": {
133826	//     "$ref": "OperationList"
133827	//   },
133828	//   "scopes": [
133829	//     "https://www.googleapis.com/auth/cloud-platform",
133830	//     "https://www.googleapis.com/auth/compute",
133831	//     "https://www.googleapis.com/auth/compute.readonly"
133832	//   ]
133833	// }
133834
133835}
133836
133837// Pages invokes f for each page of results.
133838// A non-nil error returned from f will halt the iteration.
133839// The provided context supersedes any context provided to the Context method.
133840func (c *RegionOperationsListCall) Pages(ctx context.Context, f func(*OperationList) error) error {
133841	c.ctx_ = ctx
133842	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
133843	for {
133844		x, err := c.Do()
133845		if err != nil {
133846			return err
133847		}
133848		if err := f(x); err != nil {
133849			return err
133850		}
133851		if x.NextPageToken == "" {
133852			return nil
133853		}
133854		c.PageToken(x.NextPageToken)
133855	}
133856}
133857
133858// method id "compute.regionOperations.wait":
133859
133860type RegionOperationsWaitCall struct {
133861	s          *Service
133862	project    string
133863	region     string
133864	operation  string
133865	urlParams_ gensupport.URLParams
133866	ctx_       context.Context
133867	header_    http.Header
133868}
133869
133870// Wait: Waits for the specified region-specific Operations resource
133871// until it is done or timeout, and retrieves the specified Operations
133872// resource. 1. Immediately returns when the operation is already done.
133873// 2. Waits for no more than the default deadline (2 minutes, subject to
133874// change) and then returns the current state of the operation, which
133875// may be DONE or still in progress. 3. Is best-effort: a. The server
133876// can wait less than the default deadline or zero seconds, in overload
133877// situations. b. There is no guarantee that the operation is actually
133878// done when returns. 4. User should be prepared to retry if the
133879// operation is not DONE. (== suppress_warning http-rest-shadowed ==)
133880func (r *RegionOperationsService) Wait(project string, region string, operation string) *RegionOperationsWaitCall {
133881	c := &RegionOperationsWaitCall{s: r.s, urlParams_: make(gensupport.URLParams)}
133882	c.project = project
133883	c.region = region
133884	c.operation = operation
133885	return c
133886}
133887
133888// Fields allows partial responses to be retrieved. See
133889// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
133890// for more information.
133891func (c *RegionOperationsWaitCall) Fields(s ...googleapi.Field) *RegionOperationsWaitCall {
133892	c.urlParams_.Set("fields", googleapi.CombineFields(s))
133893	return c
133894}
133895
133896// Context sets the context to be used in this call's Do method. Any
133897// pending HTTP request will be aborted if the provided context is
133898// canceled.
133899func (c *RegionOperationsWaitCall) Context(ctx context.Context) *RegionOperationsWaitCall {
133900	c.ctx_ = ctx
133901	return c
133902}
133903
133904// Header returns an http.Header that can be modified by the caller to
133905// add HTTP headers to the request.
133906func (c *RegionOperationsWaitCall) Header() http.Header {
133907	if c.header_ == nil {
133908		c.header_ = make(http.Header)
133909	}
133910	return c.header_
133911}
133912
133913func (c *RegionOperationsWaitCall) doRequest(alt string) (*http.Response, error) {
133914	reqHeaders := make(http.Header)
133915	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
133916	for k, v := range c.header_ {
133917		reqHeaders[k] = v
133918	}
133919	reqHeaders.Set("User-Agent", c.s.userAgent())
133920	var body io.Reader = nil
133921	c.urlParams_.Set("alt", alt)
133922	c.urlParams_.Set("prettyPrint", "false")
133923	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/operations/{operation}/wait")
133924	urls += "?" + c.urlParams_.Encode()
133925	req, err := http.NewRequest("POST", urls, body)
133926	if err != nil {
133927		return nil, err
133928	}
133929	req.Header = reqHeaders
133930	googleapi.Expand(req.URL, map[string]string{
133931		"project":   c.project,
133932		"region":    c.region,
133933		"operation": c.operation,
133934	})
133935	return gensupport.SendRequest(c.ctx_, c.s.client, req)
133936}
133937
133938// Do executes the "compute.regionOperations.wait" call.
133939// Exactly one of *Operation or error will be non-nil. Any non-2xx
133940// status code is an error. Response headers are in either
133941// *Operation.ServerResponse.Header or (if a response was returned at
133942// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
133943// to check whether the returned error was because
133944// http.StatusNotModified was returned.
133945func (c *RegionOperationsWaitCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
133946	gensupport.SetOptions(c.urlParams_, opts...)
133947	res, err := c.doRequest("json")
133948	if res != nil && res.StatusCode == http.StatusNotModified {
133949		if res.Body != nil {
133950			res.Body.Close()
133951		}
133952		return nil, &googleapi.Error{
133953			Code:   res.StatusCode,
133954			Header: res.Header,
133955		}
133956	}
133957	if err != nil {
133958		return nil, err
133959	}
133960	defer googleapi.CloseBody(res)
133961	if err := googleapi.CheckResponse(res); err != nil {
133962		return nil, err
133963	}
133964	ret := &Operation{
133965		ServerResponse: googleapi.ServerResponse{
133966			Header:         res.Header,
133967			HTTPStatusCode: res.StatusCode,
133968		},
133969	}
133970	target := &ret
133971	if err := gensupport.DecodeResponse(target, res); err != nil {
133972		return nil, err
133973	}
133974	return ret, nil
133975	// {
133976	//   "description": "Waits for the specified region-specific Operations resource until it is done or timeout, and retrieves the specified Operations resource. 1. Immediately returns when the operation is already done. 2. Waits for no more than the default deadline (2 minutes, subject to change) and then returns the current state of the operation, which may be DONE or still in progress. 3. Is best-effort: a. The server can wait less than the default deadline or zero seconds, in overload situations. b. There is no guarantee that the operation is actually done when returns. 4. User should be prepared to retry if the operation is not DONE. (== suppress_warning http-rest-shadowed ==)",
133977	//   "httpMethod": "POST",
133978	//   "id": "compute.regionOperations.wait",
133979	//   "parameterOrder": [
133980	//     "project",
133981	//     "region",
133982	//     "operation"
133983	//   ],
133984	//   "parameters": {
133985	//     "operation": {
133986	//       "description": "Name of the Operations resource to return.",
133987	//       "location": "path",
133988	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
133989	//       "required": true,
133990	//       "type": "string"
133991	//     },
133992	//     "project": {
133993	//       "description": "Project ID for this request.",
133994	//       "location": "path",
133995	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
133996	//       "required": true,
133997	//       "type": "string"
133998	//     },
133999	//     "region": {
134000	//       "description": "Name of the region for this request.",
134001	//       "location": "path",
134002	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
134003	//       "required": true,
134004	//       "type": "string"
134005	//     }
134006	//   },
134007	//   "path": "{project}/regions/{region}/operations/{operation}/wait",
134008	//   "response": {
134009	//     "$ref": "Operation"
134010	//   },
134011	//   "scopes": [
134012	//     "https://www.googleapis.com/auth/cloud-platform",
134013	//     "https://www.googleapis.com/auth/compute",
134014	//     "https://www.googleapis.com/auth/compute.readonly"
134015	//   ]
134016	// }
134017
134018}
134019
134020// method id "compute.regionSslCertificates.delete":
134021
134022type RegionSslCertificatesDeleteCall struct {
134023	s              *Service
134024	project        string
134025	region         string
134026	sslCertificate string
134027	urlParams_     gensupport.URLParams
134028	ctx_           context.Context
134029	header_        http.Header
134030}
134031
134032// Delete: Deletes the specified SslCertificate resource in the region.
134033// (== suppress_warning http-rest-shadowed ==)
134034func (r *RegionSslCertificatesService) Delete(project string, region string, sslCertificate string) *RegionSslCertificatesDeleteCall {
134035	c := &RegionSslCertificatesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
134036	c.project = project
134037	c.region = region
134038	c.sslCertificate = sslCertificate
134039	return c
134040}
134041
134042// RequestId sets the optional parameter "requestId": An optional
134043// request ID to identify requests. Specify a unique request ID so that
134044// if you must retry your request, the server will know to ignore the
134045// request if it has already been completed.
134046//
134047// For example, consider a situation where you make an initial request
134048// and the request times out. If you make the request again with the
134049// same request ID, the server can check if original operation with the
134050// same request ID was received, and if so, will ignore the second
134051// request. This prevents clients from accidentally creating duplicate
134052// commitments.
134053//
134054// The request ID must be a valid UUID with the exception that zero UUID
134055// is not supported (00000000-0000-0000-0000-000000000000).
134056func (c *RegionSslCertificatesDeleteCall) RequestId(requestId string) *RegionSslCertificatesDeleteCall {
134057	c.urlParams_.Set("requestId", requestId)
134058	return c
134059}
134060
134061// Fields allows partial responses to be retrieved. See
134062// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
134063// for more information.
134064func (c *RegionSslCertificatesDeleteCall) Fields(s ...googleapi.Field) *RegionSslCertificatesDeleteCall {
134065	c.urlParams_.Set("fields", googleapi.CombineFields(s))
134066	return c
134067}
134068
134069// Context sets the context to be used in this call's Do method. Any
134070// pending HTTP request will be aborted if the provided context is
134071// canceled.
134072func (c *RegionSslCertificatesDeleteCall) Context(ctx context.Context) *RegionSslCertificatesDeleteCall {
134073	c.ctx_ = ctx
134074	return c
134075}
134076
134077// Header returns an http.Header that can be modified by the caller to
134078// add HTTP headers to the request.
134079func (c *RegionSslCertificatesDeleteCall) Header() http.Header {
134080	if c.header_ == nil {
134081		c.header_ = make(http.Header)
134082	}
134083	return c.header_
134084}
134085
134086func (c *RegionSslCertificatesDeleteCall) doRequest(alt string) (*http.Response, error) {
134087	reqHeaders := make(http.Header)
134088	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
134089	for k, v := range c.header_ {
134090		reqHeaders[k] = v
134091	}
134092	reqHeaders.Set("User-Agent", c.s.userAgent())
134093	var body io.Reader = nil
134094	c.urlParams_.Set("alt", alt)
134095	c.urlParams_.Set("prettyPrint", "false")
134096	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/sslCertificates/{sslCertificate}")
134097	urls += "?" + c.urlParams_.Encode()
134098	req, err := http.NewRequest("DELETE", urls, body)
134099	if err != nil {
134100		return nil, err
134101	}
134102	req.Header = reqHeaders
134103	googleapi.Expand(req.URL, map[string]string{
134104		"project":        c.project,
134105		"region":         c.region,
134106		"sslCertificate": c.sslCertificate,
134107	})
134108	return gensupport.SendRequest(c.ctx_, c.s.client, req)
134109}
134110
134111// Do executes the "compute.regionSslCertificates.delete" call.
134112// Exactly one of *Operation or error will be non-nil. Any non-2xx
134113// status code is an error. Response headers are in either
134114// *Operation.ServerResponse.Header or (if a response was returned at
134115// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
134116// to check whether the returned error was because
134117// http.StatusNotModified was returned.
134118func (c *RegionSslCertificatesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
134119	gensupport.SetOptions(c.urlParams_, opts...)
134120	res, err := c.doRequest("json")
134121	if res != nil && res.StatusCode == http.StatusNotModified {
134122		if res.Body != nil {
134123			res.Body.Close()
134124		}
134125		return nil, &googleapi.Error{
134126			Code:   res.StatusCode,
134127			Header: res.Header,
134128		}
134129	}
134130	if err != nil {
134131		return nil, err
134132	}
134133	defer googleapi.CloseBody(res)
134134	if err := googleapi.CheckResponse(res); err != nil {
134135		return nil, err
134136	}
134137	ret := &Operation{
134138		ServerResponse: googleapi.ServerResponse{
134139			Header:         res.Header,
134140			HTTPStatusCode: res.StatusCode,
134141		},
134142	}
134143	target := &ret
134144	if err := gensupport.DecodeResponse(target, res); err != nil {
134145		return nil, err
134146	}
134147	return ret, nil
134148	// {
134149	//   "description": "Deletes the specified SslCertificate resource in the region. (== suppress_warning http-rest-shadowed ==)",
134150	//   "httpMethod": "DELETE",
134151	//   "id": "compute.regionSslCertificates.delete",
134152	//   "parameterOrder": [
134153	//     "project",
134154	//     "region",
134155	//     "sslCertificate"
134156	//   ],
134157	//   "parameters": {
134158	//     "project": {
134159	//       "description": "Project ID for this request.",
134160	//       "location": "path",
134161	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
134162	//       "required": true,
134163	//       "type": "string"
134164	//     },
134165	//     "region": {
134166	//       "description": "Name of the region scoping this request.",
134167	//       "location": "path",
134168	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
134169	//       "required": true,
134170	//       "type": "string"
134171	//     },
134172	//     "requestId": {
134173	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
134174	//       "location": "query",
134175	//       "type": "string"
134176	//     },
134177	//     "sslCertificate": {
134178	//       "description": "Name of the SslCertificate resource to delete.",
134179	//       "location": "path",
134180	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
134181	//       "required": true,
134182	//       "type": "string"
134183	//     }
134184	//   },
134185	//   "path": "{project}/regions/{region}/sslCertificates/{sslCertificate}",
134186	//   "response": {
134187	//     "$ref": "Operation"
134188	//   },
134189	//   "scopes": [
134190	//     "https://www.googleapis.com/auth/cloud-platform",
134191	//     "https://www.googleapis.com/auth/compute"
134192	//   ]
134193	// }
134194
134195}
134196
134197// method id "compute.regionSslCertificates.get":
134198
134199type RegionSslCertificatesGetCall struct {
134200	s              *Service
134201	project        string
134202	region         string
134203	sslCertificate string
134204	urlParams_     gensupport.URLParams
134205	ifNoneMatch_   string
134206	ctx_           context.Context
134207	header_        http.Header
134208}
134209
134210// Get: Returns the specified SslCertificate resource in the specified
134211// region. Get a list of available SSL certificates by making a list()
134212// request. (== suppress_warning http-rest-shadowed ==)
134213func (r *RegionSslCertificatesService) Get(project string, region string, sslCertificate string) *RegionSslCertificatesGetCall {
134214	c := &RegionSslCertificatesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
134215	c.project = project
134216	c.region = region
134217	c.sslCertificate = sslCertificate
134218	return c
134219}
134220
134221// Fields allows partial responses to be retrieved. See
134222// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
134223// for more information.
134224func (c *RegionSslCertificatesGetCall) Fields(s ...googleapi.Field) *RegionSslCertificatesGetCall {
134225	c.urlParams_.Set("fields", googleapi.CombineFields(s))
134226	return c
134227}
134228
134229// IfNoneMatch sets the optional parameter which makes the operation
134230// fail if the object's ETag matches the given value. This is useful for
134231// getting updates only after the object has changed since the last
134232// request. Use googleapi.IsNotModified to check whether the response
134233// error from Do is the result of In-None-Match.
134234func (c *RegionSslCertificatesGetCall) IfNoneMatch(entityTag string) *RegionSslCertificatesGetCall {
134235	c.ifNoneMatch_ = entityTag
134236	return c
134237}
134238
134239// Context sets the context to be used in this call's Do method. Any
134240// pending HTTP request will be aborted if the provided context is
134241// canceled.
134242func (c *RegionSslCertificatesGetCall) Context(ctx context.Context) *RegionSslCertificatesGetCall {
134243	c.ctx_ = ctx
134244	return c
134245}
134246
134247// Header returns an http.Header that can be modified by the caller to
134248// add HTTP headers to the request.
134249func (c *RegionSslCertificatesGetCall) Header() http.Header {
134250	if c.header_ == nil {
134251		c.header_ = make(http.Header)
134252	}
134253	return c.header_
134254}
134255
134256func (c *RegionSslCertificatesGetCall) doRequest(alt string) (*http.Response, error) {
134257	reqHeaders := make(http.Header)
134258	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
134259	for k, v := range c.header_ {
134260		reqHeaders[k] = v
134261	}
134262	reqHeaders.Set("User-Agent", c.s.userAgent())
134263	if c.ifNoneMatch_ != "" {
134264		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
134265	}
134266	var body io.Reader = nil
134267	c.urlParams_.Set("alt", alt)
134268	c.urlParams_.Set("prettyPrint", "false")
134269	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/sslCertificates/{sslCertificate}")
134270	urls += "?" + c.urlParams_.Encode()
134271	req, err := http.NewRequest("GET", urls, body)
134272	if err != nil {
134273		return nil, err
134274	}
134275	req.Header = reqHeaders
134276	googleapi.Expand(req.URL, map[string]string{
134277		"project":        c.project,
134278		"region":         c.region,
134279		"sslCertificate": c.sslCertificate,
134280	})
134281	return gensupport.SendRequest(c.ctx_, c.s.client, req)
134282}
134283
134284// Do executes the "compute.regionSslCertificates.get" call.
134285// Exactly one of *SslCertificate or error will be non-nil. Any non-2xx
134286// status code is an error. Response headers are in either
134287// *SslCertificate.ServerResponse.Header or (if a response was returned
134288// at all) in error.(*googleapi.Error).Header. Use
134289// googleapi.IsNotModified to check whether the returned error was
134290// because http.StatusNotModified was returned.
134291func (c *RegionSslCertificatesGetCall) Do(opts ...googleapi.CallOption) (*SslCertificate, error) {
134292	gensupport.SetOptions(c.urlParams_, opts...)
134293	res, err := c.doRequest("json")
134294	if res != nil && res.StatusCode == http.StatusNotModified {
134295		if res.Body != nil {
134296			res.Body.Close()
134297		}
134298		return nil, &googleapi.Error{
134299			Code:   res.StatusCode,
134300			Header: res.Header,
134301		}
134302	}
134303	if err != nil {
134304		return nil, err
134305	}
134306	defer googleapi.CloseBody(res)
134307	if err := googleapi.CheckResponse(res); err != nil {
134308		return nil, err
134309	}
134310	ret := &SslCertificate{
134311		ServerResponse: googleapi.ServerResponse{
134312			Header:         res.Header,
134313			HTTPStatusCode: res.StatusCode,
134314		},
134315	}
134316	target := &ret
134317	if err := gensupport.DecodeResponse(target, res); err != nil {
134318		return nil, err
134319	}
134320	return ret, nil
134321	// {
134322	//   "description": "Returns the specified SslCertificate resource in the specified region. Get a list of available SSL certificates by making a list() request. (== suppress_warning http-rest-shadowed ==)",
134323	//   "httpMethod": "GET",
134324	//   "id": "compute.regionSslCertificates.get",
134325	//   "parameterOrder": [
134326	//     "project",
134327	//     "region",
134328	//     "sslCertificate"
134329	//   ],
134330	//   "parameters": {
134331	//     "project": {
134332	//       "description": "Project ID for this request.",
134333	//       "location": "path",
134334	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
134335	//       "required": true,
134336	//       "type": "string"
134337	//     },
134338	//     "region": {
134339	//       "description": "Name of the region scoping this request.",
134340	//       "location": "path",
134341	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
134342	//       "required": true,
134343	//       "type": "string"
134344	//     },
134345	//     "sslCertificate": {
134346	//       "description": "Name of the SslCertificate resource to return.",
134347	//       "location": "path",
134348	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
134349	//       "required": true,
134350	//       "type": "string"
134351	//     }
134352	//   },
134353	//   "path": "{project}/regions/{region}/sslCertificates/{sslCertificate}",
134354	//   "response": {
134355	//     "$ref": "SslCertificate"
134356	//   },
134357	//   "scopes": [
134358	//     "https://www.googleapis.com/auth/cloud-platform",
134359	//     "https://www.googleapis.com/auth/compute",
134360	//     "https://www.googleapis.com/auth/compute.readonly"
134361	//   ]
134362	// }
134363
134364}
134365
134366// method id "compute.regionSslCertificates.insert":
134367
134368type RegionSslCertificatesInsertCall struct {
134369	s              *Service
134370	project        string
134371	region         string
134372	sslcertificate *SslCertificate
134373	urlParams_     gensupport.URLParams
134374	ctx_           context.Context
134375	header_        http.Header
134376}
134377
134378// Insert: Creates a SslCertificate resource in the specified project
134379// and region using the data included in the request (==
134380// suppress_warning http-rest-shadowed ==)
134381func (r *RegionSslCertificatesService) Insert(project string, region string, sslcertificate *SslCertificate) *RegionSslCertificatesInsertCall {
134382	c := &RegionSslCertificatesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
134383	c.project = project
134384	c.region = region
134385	c.sslcertificate = sslcertificate
134386	return c
134387}
134388
134389// RequestId sets the optional parameter "requestId": An optional
134390// request ID to identify requests. Specify a unique request ID so that
134391// if you must retry your request, the server will know to ignore the
134392// request if it has already been completed.
134393//
134394// For example, consider a situation where you make an initial request
134395// and the request times out. If you make the request again with the
134396// same request ID, the server can check if original operation with the
134397// same request ID was received, and if so, will ignore the second
134398// request. This prevents clients from accidentally creating duplicate
134399// commitments.
134400//
134401// The request ID must be a valid UUID with the exception that zero UUID
134402// is not supported (00000000-0000-0000-0000-000000000000).
134403func (c *RegionSslCertificatesInsertCall) RequestId(requestId string) *RegionSslCertificatesInsertCall {
134404	c.urlParams_.Set("requestId", requestId)
134405	return c
134406}
134407
134408// Fields allows partial responses to be retrieved. See
134409// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
134410// for more information.
134411func (c *RegionSslCertificatesInsertCall) Fields(s ...googleapi.Field) *RegionSslCertificatesInsertCall {
134412	c.urlParams_.Set("fields", googleapi.CombineFields(s))
134413	return c
134414}
134415
134416// Context sets the context to be used in this call's Do method. Any
134417// pending HTTP request will be aborted if the provided context is
134418// canceled.
134419func (c *RegionSslCertificatesInsertCall) Context(ctx context.Context) *RegionSslCertificatesInsertCall {
134420	c.ctx_ = ctx
134421	return c
134422}
134423
134424// Header returns an http.Header that can be modified by the caller to
134425// add HTTP headers to the request.
134426func (c *RegionSslCertificatesInsertCall) Header() http.Header {
134427	if c.header_ == nil {
134428		c.header_ = make(http.Header)
134429	}
134430	return c.header_
134431}
134432
134433func (c *RegionSslCertificatesInsertCall) doRequest(alt string) (*http.Response, error) {
134434	reqHeaders := make(http.Header)
134435	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
134436	for k, v := range c.header_ {
134437		reqHeaders[k] = v
134438	}
134439	reqHeaders.Set("User-Agent", c.s.userAgent())
134440	var body io.Reader = nil
134441	body, err := googleapi.WithoutDataWrapper.JSONReader(c.sslcertificate)
134442	if err != nil {
134443		return nil, err
134444	}
134445	reqHeaders.Set("Content-Type", "application/json")
134446	c.urlParams_.Set("alt", alt)
134447	c.urlParams_.Set("prettyPrint", "false")
134448	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/sslCertificates")
134449	urls += "?" + c.urlParams_.Encode()
134450	req, err := http.NewRequest("POST", urls, body)
134451	if err != nil {
134452		return nil, err
134453	}
134454	req.Header = reqHeaders
134455	googleapi.Expand(req.URL, map[string]string{
134456		"project": c.project,
134457		"region":  c.region,
134458	})
134459	return gensupport.SendRequest(c.ctx_, c.s.client, req)
134460}
134461
134462// Do executes the "compute.regionSslCertificates.insert" call.
134463// Exactly one of *Operation or error will be non-nil. Any non-2xx
134464// status code is an error. Response headers are in either
134465// *Operation.ServerResponse.Header or (if a response was returned at
134466// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
134467// to check whether the returned error was because
134468// http.StatusNotModified was returned.
134469func (c *RegionSslCertificatesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
134470	gensupport.SetOptions(c.urlParams_, opts...)
134471	res, err := c.doRequest("json")
134472	if res != nil && res.StatusCode == http.StatusNotModified {
134473		if res.Body != nil {
134474			res.Body.Close()
134475		}
134476		return nil, &googleapi.Error{
134477			Code:   res.StatusCode,
134478			Header: res.Header,
134479		}
134480	}
134481	if err != nil {
134482		return nil, err
134483	}
134484	defer googleapi.CloseBody(res)
134485	if err := googleapi.CheckResponse(res); err != nil {
134486		return nil, err
134487	}
134488	ret := &Operation{
134489		ServerResponse: googleapi.ServerResponse{
134490			Header:         res.Header,
134491			HTTPStatusCode: res.StatusCode,
134492		},
134493	}
134494	target := &ret
134495	if err := gensupport.DecodeResponse(target, res); err != nil {
134496		return nil, err
134497	}
134498	return ret, nil
134499	// {
134500	//   "description": "Creates a SslCertificate resource in the specified project and region using the data included in the request (== suppress_warning http-rest-shadowed ==)",
134501	//   "httpMethod": "POST",
134502	//   "id": "compute.regionSslCertificates.insert",
134503	//   "parameterOrder": [
134504	//     "project",
134505	//     "region"
134506	//   ],
134507	//   "parameters": {
134508	//     "project": {
134509	//       "description": "Project ID for this request.",
134510	//       "location": "path",
134511	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
134512	//       "required": true,
134513	//       "type": "string"
134514	//     },
134515	//     "region": {
134516	//       "description": "Name of the region scoping this request.",
134517	//       "location": "path",
134518	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
134519	//       "required": true,
134520	//       "type": "string"
134521	//     },
134522	//     "requestId": {
134523	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
134524	//       "location": "query",
134525	//       "type": "string"
134526	//     }
134527	//   },
134528	//   "path": "{project}/regions/{region}/sslCertificates",
134529	//   "request": {
134530	//     "$ref": "SslCertificate"
134531	//   },
134532	//   "response": {
134533	//     "$ref": "Operation"
134534	//   },
134535	//   "scopes": [
134536	//     "https://www.googleapis.com/auth/cloud-platform",
134537	//     "https://www.googleapis.com/auth/compute"
134538	//   ]
134539	// }
134540
134541}
134542
134543// method id "compute.regionSslCertificates.list":
134544
134545type RegionSslCertificatesListCall struct {
134546	s            *Service
134547	project      string
134548	region       string
134549	urlParams_   gensupport.URLParams
134550	ifNoneMatch_ string
134551	ctx_         context.Context
134552	header_      http.Header
134553}
134554
134555// List: Retrieves the list of SslCertificate resources available to the
134556// specified project in the specified region. (== suppress_warning
134557// http-rest-shadowed ==)
134558func (r *RegionSslCertificatesService) List(project string, region string) *RegionSslCertificatesListCall {
134559	c := &RegionSslCertificatesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
134560	c.project = project
134561	c.region = region
134562	return c
134563}
134564
134565// Filter sets the optional parameter "filter": A filter expression that
134566// filters resources listed in the response. The expression must specify
134567// the field name, a comparison operator, and the value that you want to
134568// use for filtering. The value must be a string, a number, or a
134569// boolean. The comparison operator must be either =, !=, >, or <.
134570//
134571// For example, if you are filtering Compute Engine instances, you can
134572// exclude instances named example-instance by specifying name !=
134573// example-instance.
134574//
134575// You can also filter nested fields. For example, you could specify
134576// scheduling.automaticRestart = false to include instances only if they
134577// are not scheduled for automatic restarts. You can use filtering on
134578// nested fields to filter based on resource labels.
134579//
134580// To filter on multiple expressions, provide each separate expression
134581// within parentheses. For example, (scheduling.automaticRestart = true)
134582// (cpuPlatform = "Intel Skylake"). By default, each expression is an
134583// AND expression. However, you can include AND and OR expressions
134584// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
134585// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
134586// true).
134587func (c *RegionSslCertificatesListCall) Filter(filter string) *RegionSslCertificatesListCall {
134588	c.urlParams_.Set("filter", filter)
134589	return c
134590}
134591
134592// MaxResults sets the optional parameter "maxResults": The maximum
134593// number of results per page that should be returned. If the number of
134594// available results is larger than maxResults, Compute Engine returns a
134595// nextPageToken that can be used to get the next page of results in
134596// subsequent list requests. Acceptable values are 0 to 500, inclusive.
134597// (Default: 500)
134598func (c *RegionSslCertificatesListCall) MaxResults(maxResults int64) *RegionSslCertificatesListCall {
134599	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
134600	return c
134601}
134602
134603// OrderBy sets the optional parameter "orderBy": Sorts list results by
134604// a certain order. By default, results are returned in alphanumerical
134605// order based on the resource name.
134606//
134607// You can also sort results in descending order based on the creation
134608// timestamp using orderBy="creationTimestamp desc". This sorts results
134609// based on the creationTimestamp field in reverse chronological order
134610// (newest result first). Use this to sort resources like operations so
134611// that the newest operation is returned first.
134612//
134613// Currently, only sorting by name or creationTimestamp desc is
134614// supported.
134615func (c *RegionSslCertificatesListCall) OrderBy(orderBy string) *RegionSslCertificatesListCall {
134616	c.urlParams_.Set("orderBy", orderBy)
134617	return c
134618}
134619
134620// PageToken sets the optional parameter "pageToken": Specifies a page
134621// token to use. Set pageToken to the nextPageToken returned by a
134622// previous list request to get the next page of results.
134623func (c *RegionSslCertificatesListCall) PageToken(pageToken string) *RegionSslCertificatesListCall {
134624	c.urlParams_.Set("pageToken", pageToken)
134625	return c
134626}
134627
134628// Fields allows partial responses to be retrieved. See
134629// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
134630// for more information.
134631func (c *RegionSslCertificatesListCall) Fields(s ...googleapi.Field) *RegionSslCertificatesListCall {
134632	c.urlParams_.Set("fields", googleapi.CombineFields(s))
134633	return c
134634}
134635
134636// IfNoneMatch sets the optional parameter which makes the operation
134637// fail if the object's ETag matches the given value. This is useful for
134638// getting updates only after the object has changed since the last
134639// request. Use googleapi.IsNotModified to check whether the response
134640// error from Do is the result of In-None-Match.
134641func (c *RegionSslCertificatesListCall) IfNoneMatch(entityTag string) *RegionSslCertificatesListCall {
134642	c.ifNoneMatch_ = entityTag
134643	return c
134644}
134645
134646// Context sets the context to be used in this call's Do method. Any
134647// pending HTTP request will be aborted if the provided context is
134648// canceled.
134649func (c *RegionSslCertificatesListCall) Context(ctx context.Context) *RegionSslCertificatesListCall {
134650	c.ctx_ = ctx
134651	return c
134652}
134653
134654// Header returns an http.Header that can be modified by the caller to
134655// add HTTP headers to the request.
134656func (c *RegionSslCertificatesListCall) Header() http.Header {
134657	if c.header_ == nil {
134658		c.header_ = make(http.Header)
134659	}
134660	return c.header_
134661}
134662
134663func (c *RegionSslCertificatesListCall) doRequest(alt string) (*http.Response, error) {
134664	reqHeaders := make(http.Header)
134665	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
134666	for k, v := range c.header_ {
134667		reqHeaders[k] = v
134668	}
134669	reqHeaders.Set("User-Agent", c.s.userAgent())
134670	if c.ifNoneMatch_ != "" {
134671		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
134672	}
134673	var body io.Reader = nil
134674	c.urlParams_.Set("alt", alt)
134675	c.urlParams_.Set("prettyPrint", "false")
134676	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/sslCertificates")
134677	urls += "?" + c.urlParams_.Encode()
134678	req, err := http.NewRequest("GET", urls, body)
134679	if err != nil {
134680		return nil, err
134681	}
134682	req.Header = reqHeaders
134683	googleapi.Expand(req.URL, map[string]string{
134684		"project": c.project,
134685		"region":  c.region,
134686	})
134687	return gensupport.SendRequest(c.ctx_, c.s.client, req)
134688}
134689
134690// Do executes the "compute.regionSslCertificates.list" call.
134691// Exactly one of *SslCertificateList or error will be non-nil. Any
134692// non-2xx status code is an error. Response headers are in either
134693// *SslCertificateList.ServerResponse.Header or (if a response was
134694// returned at all) in error.(*googleapi.Error).Header. Use
134695// googleapi.IsNotModified to check whether the returned error was
134696// because http.StatusNotModified was returned.
134697func (c *RegionSslCertificatesListCall) Do(opts ...googleapi.CallOption) (*SslCertificateList, error) {
134698	gensupport.SetOptions(c.urlParams_, opts...)
134699	res, err := c.doRequest("json")
134700	if res != nil && res.StatusCode == http.StatusNotModified {
134701		if res.Body != nil {
134702			res.Body.Close()
134703		}
134704		return nil, &googleapi.Error{
134705			Code:   res.StatusCode,
134706			Header: res.Header,
134707		}
134708	}
134709	if err != nil {
134710		return nil, err
134711	}
134712	defer googleapi.CloseBody(res)
134713	if err := googleapi.CheckResponse(res); err != nil {
134714		return nil, err
134715	}
134716	ret := &SslCertificateList{
134717		ServerResponse: googleapi.ServerResponse{
134718			Header:         res.Header,
134719			HTTPStatusCode: res.StatusCode,
134720		},
134721	}
134722	target := &ret
134723	if err := gensupport.DecodeResponse(target, res); err != nil {
134724		return nil, err
134725	}
134726	return ret, nil
134727	// {
134728	//   "description": "Retrieves the list of SslCertificate resources available to the specified project in the specified region. (== suppress_warning http-rest-shadowed ==)",
134729	//   "httpMethod": "GET",
134730	//   "id": "compute.regionSslCertificates.list",
134731	//   "parameterOrder": [
134732	//     "project",
134733	//     "region"
134734	//   ],
134735	//   "parameters": {
134736	//     "filter": {
134737	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
134738	//       "location": "query",
134739	//       "type": "string"
134740	//     },
134741	//     "maxResults": {
134742	//       "default": "500",
134743	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
134744	//       "format": "uint32",
134745	//       "location": "query",
134746	//       "minimum": "0",
134747	//       "type": "integer"
134748	//     },
134749	//     "orderBy": {
134750	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
134751	//       "location": "query",
134752	//       "type": "string"
134753	//     },
134754	//     "pageToken": {
134755	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
134756	//       "location": "query",
134757	//       "type": "string"
134758	//     },
134759	//     "project": {
134760	//       "description": "Project ID for this request.",
134761	//       "location": "path",
134762	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
134763	//       "required": true,
134764	//       "type": "string"
134765	//     },
134766	//     "region": {
134767	//       "description": "Name of the region scoping this request.",
134768	//       "location": "path",
134769	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
134770	//       "required": true,
134771	//       "type": "string"
134772	//     }
134773	//   },
134774	//   "path": "{project}/regions/{region}/sslCertificates",
134775	//   "response": {
134776	//     "$ref": "SslCertificateList"
134777	//   },
134778	//   "scopes": [
134779	//     "https://www.googleapis.com/auth/cloud-platform",
134780	//     "https://www.googleapis.com/auth/compute",
134781	//     "https://www.googleapis.com/auth/compute.readonly"
134782	//   ]
134783	// }
134784
134785}
134786
134787// Pages invokes f for each page of results.
134788// A non-nil error returned from f will halt the iteration.
134789// The provided context supersedes any context provided to the Context method.
134790func (c *RegionSslCertificatesListCall) Pages(ctx context.Context, f func(*SslCertificateList) error) error {
134791	c.ctx_ = ctx
134792	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
134793	for {
134794		x, err := c.Do()
134795		if err != nil {
134796			return err
134797		}
134798		if err := f(x); err != nil {
134799			return err
134800		}
134801		if x.NextPageToken == "" {
134802			return nil
134803		}
134804		c.PageToken(x.NextPageToken)
134805	}
134806}
134807
134808// method id "compute.regionSslCertificates.testIamPermissions":
134809
134810type RegionSslCertificatesTestIamPermissionsCall struct {
134811	s                      *Service
134812	project                string
134813	region                 string
134814	resource               string
134815	testpermissionsrequest *TestPermissionsRequest
134816	urlParams_             gensupport.URLParams
134817	ctx_                   context.Context
134818	header_                http.Header
134819}
134820
134821// TestIamPermissions: Returns permissions that a caller has on the
134822// specified resource and region. (== suppress_warning
134823// http-rest-shadowed ==)
134824func (r *RegionSslCertificatesService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *RegionSslCertificatesTestIamPermissionsCall {
134825	c := &RegionSslCertificatesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
134826	c.project = project
134827	c.region = region
134828	c.resource = resource
134829	c.testpermissionsrequest = testpermissionsrequest
134830	return c
134831}
134832
134833// Fields allows partial responses to be retrieved. See
134834// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
134835// for more information.
134836func (c *RegionSslCertificatesTestIamPermissionsCall) Fields(s ...googleapi.Field) *RegionSslCertificatesTestIamPermissionsCall {
134837	c.urlParams_.Set("fields", googleapi.CombineFields(s))
134838	return c
134839}
134840
134841// Context sets the context to be used in this call's Do method. Any
134842// pending HTTP request will be aborted if the provided context is
134843// canceled.
134844func (c *RegionSslCertificatesTestIamPermissionsCall) Context(ctx context.Context) *RegionSslCertificatesTestIamPermissionsCall {
134845	c.ctx_ = ctx
134846	return c
134847}
134848
134849// Header returns an http.Header that can be modified by the caller to
134850// add HTTP headers to the request.
134851func (c *RegionSslCertificatesTestIamPermissionsCall) Header() http.Header {
134852	if c.header_ == nil {
134853		c.header_ = make(http.Header)
134854	}
134855	return c.header_
134856}
134857
134858func (c *RegionSslCertificatesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
134859	reqHeaders := make(http.Header)
134860	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
134861	for k, v := range c.header_ {
134862		reqHeaders[k] = v
134863	}
134864	reqHeaders.Set("User-Agent", c.s.userAgent())
134865	var body io.Reader = nil
134866	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
134867	if err != nil {
134868		return nil, err
134869	}
134870	reqHeaders.Set("Content-Type", "application/json")
134871	c.urlParams_.Set("alt", alt)
134872	c.urlParams_.Set("prettyPrint", "false")
134873	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/sslCertificates/{resource}/testIamPermissions")
134874	urls += "?" + c.urlParams_.Encode()
134875	req, err := http.NewRequest("POST", urls, body)
134876	if err != nil {
134877		return nil, err
134878	}
134879	req.Header = reqHeaders
134880	googleapi.Expand(req.URL, map[string]string{
134881		"project":  c.project,
134882		"region":   c.region,
134883		"resource": c.resource,
134884	})
134885	return gensupport.SendRequest(c.ctx_, c.s.client, req)
134886}
134887
134888// Do executes the "compute.regionSslCertificates.testIamPermissions" call.
134889// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
134890// non-2xx status code is an error. Response headers are in either
134891// *TestPermissionsResponse.ServerResponse.Header or (if a response was
134892// returned at all) in error.(*googleapi.Error).Header. Use
134893// googleapi.IsNotModified to check whether the returned error was
134894// because http.StatusNotModified was returned.
134895func (c *RegionSslCertificatesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
134896	gensupport.SetOptions(c.urlParams_, opts...)
134897	res, err := c.doRequest("json")
134898	if res != nil && res.StatusCode == http.StatusNotModified {
134899		if res.Body != nil {
134900			res.Body.Close()
134901		}
134902		return nil, &googleapi.Error{
134903			Code:   res.StatusCode,
134904			Header: res.Header,
134905		}
134906	}
134907	if err != nil {
134908		return nil, err
134909	}
134910	defer googleapi.CloseBody(res)
134911	if err := googleapi.CheckResponse(res); err != nil {
134912		return nil, err
134913	}
134914	ret := &TestPermissionsResponse{
134915		ServerResponse: googleapi.ServerResponse{
134916			Header:         res.Header,
134917			HTTPStatusCode: res.StatusCode,
134918		},
134919	}
134920	target := &ret
134921	if err := gensupport.DecodeResponse(target, res); err != nil {
134922		return nil, err
134923	}
134924	return ret, nil
134925	// {
134926	//   "description": "Returns permissions that a caller has on the specified resource and region. (== suppress_warning http-rest-shadowed ==)",
134927	//   "httpMethod": "POST",
134928	//   "id": "compute.regionSslCertificates.testIamPermissions",
134929	//   "parameterOrder": [
134930	//     "project",
134931	//     "region",
134932	//     "resource"
134933	//   ],
134934	//   "parameters": {
134935	//     "project": {
134936	//       "description": "Project ID for this request.",
134937	//       "location": "path",
134938	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
134939	//       "required": true,
134940	//       "type": "string"
134941	//     },
134942	//     "region": {
134943	//       "description": "The name of the region for this request.",
134944	//       "location": "path",
134945	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
134946	//       "required": true,
134947	//       "type": "string"
134948	//     },
134949	//     "resource": {
134950	//       "description": "Name or id of the resource for this request.",
134951	//       "location": "path",
134952	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
134953	//       "required": true,
134954	//       "type": "string"
134955	//     }
134956	//   },
134957	//   "path": "{project}/regions/{region}/sslCertificates/{resource}/testIamPermissions",
134958	//   "request": {
134959	//     "$ref": "TestPermissionsRequest"
134960	//   },
134961	//   "response": {
134962	//     "$ref": "TestPermissionsResponse"
134963	//   },
134964	//   "scopes": [
134965	//     "https://www.googleapis.com/auth/cloud-platform",
134966	//     "https://www.googleapis.com/auth/compute",
134967	//     "https://www.googleapis.com/auth/compute.readonly"
134968	//   ]
134969	// }
134970
134971}
134972
134973// method id "compute.regionTargetHttpProxies.delete":
134974
134975type RegionTargetHttpProxiesDeleteCall struct {
134976	s               *Service
134977	project         string
134978	region          string
134979	targetHttpProxy string
134980	urlParams_      gensupport.URLParams
134981	ctx_            context.Context
134982	header_         http.Header
134983}
134984
134985// Delete: Deletes the specified TargetHttpProxy resource. (==
134986// suppress_warning http-rest-shadowed ==)
134987func (r *RegionTargetHttpProxiesService) Delete(project string, region string, targetHttpProxy string) *RegionTargetHttpProxiesDeleteCall {
134988	c := &RegionTargetHttpProxiesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
134989	c.project = project
134990	c.region = region
134991	c.targetHttpProxy = targetHttpProxy
134992	return c
134993}
134994
134995// RequestId sets the optional parameter "requestId": An optional
134996// request ID to identify requests. Specify a unique request ID so that
134997// if you must retry your request, the server will know to ignore the
134998// request if it has already been completed.
134999//
135000// For example, consider a situation where you make an initial request
135001// and the request times out. If you make the request again with the
135002// same request ID, the server can check if original operation with the
135003// same request ID was received, and if so, will ignore the second
135004// request. This prevents clients from accidentally creating duplicate
135005// commitments.
135006//
135007// The request ID must be a valid UUID with the exception that zero UUID
135008// is not supported (00000000-0000-0000-0000-000000000000).
135009func (c *RegionTargetHttpProxiesDeleteCall) RequestId(requestId string) *RegionTargetHttpProxiesDeleteCall {
135010	c.urlParams_.Set("requestId", requestId)
135011	return c
135012}
135013
135014// Fields allows partial responses to be retrieved. See
135015// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
135016// for more information.
135017func (c *RegionTargetHttpProxiesDeleteCall) Fields(s ...googleapi.Field) *RegionTargetHttpProxiesDeleteCall {
135018	c.urlParams_.Set("fields", googleapi.CombineFields(s))
135019	return c
135020}
135021
135022// Context sets the context to be used in this call's Do method. Any
135023// pending HTTP request will be aborted if the provided context is
135024// canceled.
135025func (c *RegionTargetHttpProxiesDeleteCall) Context(ctx context.Context) *RegionTargetHttpProxiesDeleteCall {
135026	c.ctx_ = ctx
135027	return c
135028}
135029
135030// Header returns an http.Header that can be modified by the caller to
135031// add HTTP headers to the request.
135032func (c *RegionTargetHttpProxiesDeleteCall) Header() http.Header {
135033	if c.header_ == nil {
135034		c.header_ = make(http.Header)
135035	}
135036	return c.header_
135037}
135038
135039func (c *RegionTargetHttpProxiesDeleteCall) doRequest(alt string) (*http.Response, error) {
135040	reqHeaders := make(http.Header)
135041	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
135042	for k, v := range c.header_ {
135043		reqHeaders[k] = v
135044	}
135045	reqHeaders.Set("User-Agent", c.s.userAgent())
135046	var body io.Reader = nil
135047	c.urlParams_.Set("alt", alt)
135048	c.urlParams_.Set("prettyPrint", "false")
135049	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}")
135050	urls += "?" + c.urlParams_.Encode()
135051	req, err := http.NewRequest("DELETE", urls, body)
135052	if err != nil {
135053		return nil, err
135054	}
135055	req.Header = reqHeaders
135056	googleapi.Expand(req.URL, map[string]string{
135057		"project":         c.project,
135058		"region":          c.region,
135059		"targetHttpProxy": c.targetHttpProxy,
135060	})
135061	return gensupport.SendRequest(c.ctx_, c.s.client, req)
135062}
135063
135064// Do executes the "compute.regionTargetHttpProxies.delete" call.
135065// Exactly one of *Operation or error will be non-nil. Any non-2xx
135066// status code is an error. Response headers are in either
135067// *Operation.ServerResponse.Header or (if a response was returned at
135068// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
135069// to check whether the returned error was because
135070// http.StatusNotModified was returned.
135071func (c *RegionTargetHttpProxiesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
135072	gensupport.SetOptions(c.urlParams_, opts...)
135073	res, err := c.doRequest("json")
135074	if res != nil && res.StatusCode == http.StatusNotModified {
135075		if res.Body != nil {
135076			res.Body.Close()
135077		}
135078		return nil, &googleapi.Error{
135079			Code:   res.StatusCode,
135080			Header: res.Header,
135081		}
135082	}
135083	if err != nil {
135084		return nil, err
135085	}
135086	defer googleapi.CloseBody(res)
135087	if err := googleapi.CheckResponse(res); err != nil {
135088		return nil, err
135089	}
135090	ret := &Operation{
135091		ServerResponse: googleapi.ServerResponse{
135092			Header:         res.Header,
135093			HTTPStatusCode: res.StatusCode,
135094		},
135095	}
135096	target := &ret
135097	if err := gensupport.DecodeResponse(target, res); err != nil {
135098		return nil, err
135099	}
135100	return ret, nil
135101	// {
135102	//   "description": "Deletes the specified TargetHttpProxy resource. (== suppress_warning http-rest-shadowed ==)",
135103	//   "httpMethod": "DELETE",
135104	//   "id": "compute.regionTargetHttpProxies.delete",
135105	//   "parameterOrder": [
135106	//     "project",
135107	//     "region",
135108	//     "targetHttpProxy"
135109	//   ],
135110	//   "parameters": {
135111	//     "project": {
135112	//       "description": "Project ID for this request.",
135113	//       "location": "path",
135114	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
135115	//       "required": true,
135116	//       "type": "string"
135117	//     },
135118	//     "region": {
135119	//       "description": "Name of the region scoping this request.",
135120	//       "location": "path",
135121	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
135122	//       "required": true,
135123	//       "type": "string"
135124	//     },
135125	//     "requestId": {
135126	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
135127	//       "location": "query",
135128	//       "type": "string"
135129	//     },
135130	//     "targetHttpProxy": {
135131	//       "description": "Name of the TargetHttpProxy resource to delete.",
135132	//       "location": "path",
135133	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
135134	//       "required": true,
135135	//       "type": "string"
135136	//     }
135137	//   },
135138	//   "path": "{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}",
135139	//   "response": {
135140	//     "$ref": "Operation"
135141	//   },
135142	//   "scopes": [
135143	//     "https://www.googleapis.com/auth/cloud-platform",
135144	//     "https://www.googleapis.com/auth/compute"
135145	//   ]
135146	// }
135147
135148}
135149
135150// method id "compute.regionTargetHttpProxies.get":
135151
135152type RegionTargetHttpProxiesGetCall struct {
135153	s               *Service
135154	project         string
135155	region          string
135156	targetHttpProxy string
135157	urlParams_      gensupport.URLParams
135158	ifNoneMatch_    string
135159	ctx_            context.Context
135160	header_         http.Header
135161}
135162
135163// Get: Returns the specified TargetHttpProxy resource in the specified
135164// region. Gets a list of available target HTTP proxies by making a
135165// list() request. (== suppress_warning http-rest-shadowed ==)
135166func (r *RegionTargetHttpProxiesService) Get(project string, region string, targetHttpProxy string) *RegionTargetHttpProxiesGetCall {
135167	c := &RegionTargetHttpProxiesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
135168	c.project = project
135169	c.region = region
135170	c.targetHttpProxy = targetHttpProxy
135171	return c
135172}
135173
135174// Fields allows partial responses to be retrieved. See
135175// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
135176// for more information.
135177func (c *RegionTargetHttpProxiesGetCall) Fields(s ...googleapi.Field) *RegionTargetHttpProxiesGetCall {
135178	c.urlParams_.Set("fields", googleapi.CombineFields(s))
135179	return c
135180}
135181
135182// IfNoneMatch sets the optional parameter which makes the operation
135183// fail if the object's ETag matches the given value. This is useful for
135184// getting updates only after the object has changed since the last
135185// request. Use googleapi.IsNotModified to check whether the response
135186// error from Do is the result of In-None-Match.
135187func (c *RegionTargetHttpProxiesGetCall) IfNoneMatch(entityTag string) *RegionTargetHttpProxiesGetCall {
135188	c.ifNoneMatch_ = entityTag
135189	return c
135190}
135191
135192// Context sets the context to be used in this call's Do method. Any
135193// pending HTTP request will be aborted if the provided context is
135194// canceled.
135195func (c *RegionTargetHttpProxiesGetCall) Context(ctx context.Context) *RegionTargetHttpProxiesGetCall {
135196	c.ctx_ = ctx
135197	return c
135198}
135199
135200// Header returns an http.Header that can be modified by the caller to
135201// add HTTP headers to the request.
135202func (c *RegionTargetHttpProxiesGetCall) Header() http.Header {
135203	if c.header_ == nil {
135204		c.header_ = make(http.Header)
135205	}
135206	return c.header_
135207}
135208
135209func (c *RegionTargetHttpProxiesGetCall) doRequest(alt string) (*http.Response, error) {
135210	reqHeaders := make(http.Header)
135211	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
135212	for k, v := range c.header_ {
135213		reqHeaders[k] = v
135214	}
135215	reqHeaders.Set("User-Agent", c.s.userAgent())
135216	if c.ifNoneMatch_ != "" {
135217		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
135218	}
135219	var body io.Reader = nil
135220	c.urlParams_.Set("alt", alt)
135221	c.urlParams_.Set("prettyPrint", "false")
135222	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}")
135223	urls += "?" + c.urlParams_.Encode()
135224	req, err := http.NewRequest("GET", urls, body)
135225	if err != nil {
135226		return nil, err
135227	}
135228	req.Header = reqHeaders
135229	googleapi.Expand(req.URL, map[string]string{
135230		"project":         c.project,
135231		"region":          c.region,
135232		"targetHttpProxy": c.targetHttpProxy,
135233	})
135234	return gensupport.SendRequest(c.ctx_, c.s.client, req)
135235}
135236
135237// Do executes the "compute.regionTargetHttpProxies.get" call.
135238// Exactly one of *TargetHttpProxy or error will be non-nil. Any non-2xx
135239// status code is an error. Response headers are in either
135240// *TargetHttpProxy.ServerResponse.Header or (if a response was returned
135241// at all) in error.(*googleapi.Error).Header. Use
135242// googleapi.IsNotModified to check whether the returned error was
135243// because http.StatusNotModified was returned.
135244func (c *RegionTargetHttpProxiesGetCall) Do(opts ...googleapi.CallOption) (*TargetHttpProxy, error) {
135245	gensupport.SetOptions(c.urlParams_, opts...)
135246	res, err := c.doRequest("json")
135247	if res != nil && res.StatusCode == http.StatusNotModified {
135248		if res.Body != nil {
135249			res.Body.Close()
135250		}
135251		return nil, &googleapi.Error{
135252			Code:   res.StatusCode,
135253			Header: res.Header,
135254		}
135255	}
135256	if err != nil {
135257		return nil, err
135258	}
135259	defer googleapi.CloseBody(res)
135260	if err := googleapi.CheckResponse(res); err != nil {
135261		return nil, err
135262	}
135263	ret := &TargetHttpProxy{
135264		ServerResponse: googleapi.ServerResponse{
135265			Header:         res.Header,
135266			HTTPStatusCode: res.StatusCode,
135267		},
135268	}
135269	target := &ret
135270	if err := gensupport.DecodeResponse(target, res); err != nil {
135271		return nil, err
135272	}
135273	return ret, nil
135274	// {
135275	//   "description": "Returns the specified TargetHttpProxy resource in the specified region. Gets a list of available target HTTP proxies by making a list() request. (== suppress_warning http-rest-shadowed ==)",
135276	//   "httpMethod": "GET",
135277	//   "id": "compute.regionTargetHttpProxies.get",
135278	//   "parameterOrder": [
135279	//     "project",
135280	//     "region",
135281	//     "targetHttpProxy"
135282	//   ],
135283	//   "parameters": {
135284	//     "project": {
135285	//       "description": "Project ID for this request.",
135286	//       "location": "path",
135287	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
135288	//       "required": true,
135289	//       "type": "string"
135290	//     },
135291	//     "region": {
135292	//       "description": "Name of the region scoping this request.",
135293	//       "location": "path",
135294	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
135295	//       "required": true,
135296	//       "type": "string"
135297	//     },
135298	//     "targetHttpProxy": {
135299	//       "description": "Name of the TargetHttpProxy resource to return.",
135300	//       "location": "path",
135301	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
135302	//       "required": true,
135303	//       "type": "string"
135304	//     }
135305	//   },
135306	//   "path": "{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}",
135307	//   "response": {
135308	//     "$ref": "TargetHttpProxy"
135309	//   },
135310	//   "scopes": [
135311	//     "https://www.googleapis.com/auth/cloud-platform",
135312	//     "https://www.googleapis.com/auth/compute",
135313	//     "https://www.googleapis.com/auth/compute.readonly"
135314	//   ]
135315	// }
135316
135317}
135318
135319// method id "compute.regionTargetHttpProxies.insert":
135320
135321type RegionTargetHttpProxiesInsertCall struct {
135322	s               *Service
135323	project         string
135324	region          string
135325	targethttpproxy *TargetHttpProxy
135326	urlParams_      gensupport.URLParams
135327	ctx_            context.Context
135328	header_         http.Header
135329}
135330
135331// Insert: Creates a TargetHttpProxy resource in the specified project
135332// and region using the data included in the request. (==
135333// suppress_warning http-rest-shadowed ==)
135334func (r *RegionTargetHttpProxiesService) Insert(project string, region string, targethttpproxy *TargetHttpProxy) *RegionTargetHttpProxiesInsertCall {
135335	c := &RegionTargetHttpProxiesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
135336	c.project = project
135337	c.region = region
135338	c.targethttpproxy = targethttpproxy
135339	return c
135340}
135341
135342// RequestId sets the optional parameter "requestId": An optional
135343// request ID to identify requests. Specify a unique request ID so that
135344// if you must retry your request, the server will know to ignore the
135345// request if it has already been completed.
135346//
135347// For example, consider a situation where you make an initial request
135348// and the request times out. If you make the request again with the
135349// same request ID, the server can check if original operation with the
135350// same request ID was received, and if so, will ignore the second
135351// request. This prevents clients from accidentally creating duplicate
135352// commitments.
135353//
135354// The request ID must be a valid UUID with the exception that zero UUID
135355// is not supported (00000000-0000-0000-0000-000000000000).
135356func (c *RegionTargetHttpProxiesInsertCall) RequestId(requestId string) *RegionTargetHttpProxiesInsertCall {
135357	c.urlParams_.Set("requestId", requestId)
135358	return c
135359}
135360
135361// Fields allows partial responses to be retrieved. See
135362// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
135363// for more information.
135364func (c *RegionTargetHttpProxiesInsertCall) Fields(s ...googleapi.Field) *RegionTargetHttpProxiesInsertCall {
135365	c.urlParams_.Set("fields", googleapi.CombineFields(s))
135366	return c
135367}
135368
135369// Context sets the context to be used in this call's Do method. Any
135370// pending HTTP request will be aborted if the provided context is
135371// canceled.
135372func (c *RegionTargetHttpProxiesInsertCall) Context(ctx context.Context) *RegionTargetHttpProxiesInsertCall {
135373	c.ctx_ = ctx
135374	return c
135375}
135376
135377// Header returns an http.Header that can be modified by the caller to
135378// add HTTP headers to the request.
135379func (c *RegionTargetHttpProxiesInsertCall) Header() http.Header {
135380	if c.header_ == nil {
135381		c.header_ = make(http.Header)
135382	}
135383	return c.header_
135384}
135385
135386func (c *RegionTargetHttpProxiesInsertCall) doRequest(alt string) (*http.Response, error) {
135387	reqHeaders := make(http.Header)
135388	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
135389	for k, v := range c.header_ {
135390		reqHeaders[k] = v
135391	}
135392	reqHeaders.Set("User-Agent", c.s.userAgent())
135393	var body io.Reader = nil
135394	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targethttpproxy)
135395	if err != nil {
135396		return nil, err
135397	}
135398	reqHeaders.Set("Content-Type", "application/json")
135399	c.urlParams_.Set("alt", alt)
135400	c.urlParams_.Set("prettyPrint", "false")
135401	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetHttpProxies")
135402	urls += "?" + c.urlParams_.Encode()
135403	req, err := http.NewRequest("POST", urls, body)
135404	if err != nil {
135405		return nil, err
135406	}
135407	req.Header = reqHeaders
135408	googleapi.Expand(req.URL, map[string]string{
135409		"project": c.project,
135410		"region":  c.region,
135411	})
135412	return gensupport.SendRequest(c.ctx_, c.s.client, req)
135413}
135414
135415// Do executes the "compute.regionTargetHttpProxies.insert" call.
135416// Exactly one of *Operation or error will be non-nil. Any non-2xx
135417// status code is an error. Response headers are in either
135418// *Operation.ServerResponse.Header or (if a response was returned at
135419// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
135420// to check whether the returned error was because
135421// http.StatusNotModified was returned.
135422func (c *RegionTargetHttpProxiesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
135423	gensupport.SetOptions(c.urlParams_, opts...)
135424	res, err := c.doRequest("json")
135425	if res != nil && res.StatusCode == http.StatusNotModified {
135426		if res.Body != nil {
135427			res.Body.Close()
135428		}
135429		return nil, &googleapi.Error{
135430			Code:   res.StatusCode,
135431			Header: res.Header,
135432		}
135433	}
135434	if err != nil {
135435		return nil, err
135436	}
135437	defer googleapi.CloseBody(res)
135438	if err := googleapi.CheckResponse(res); err != nil {
135439		return nil, err
135440	}
135441	ret := &Operation{
135442		ServerResponse: googleapi.ServerResponse{
135443			Header:         res.Header,
135444			HTTPStatusCode: res.StatusCode,
135445		},
135446	}
135447	target := &ret
135448	if err := gensupport.DecodeResponse(target, res); err != nil {
135449		return nil, err
135450	}
135451	return ret, nil
135452	// {
135453	//   "description": "Creates a TargetHttpProxy resource in the specified project and region using the data included in the request. (== suppress_warning http-rest-shadowed ==)",
135454	//   "httpMethod": "POST",
135455	//   "id": "compute.regionTargetHttpProxies.insert",
135456	//   "parameterOrder": [
135457	//     "project",
135458	//     "region"
135459	//   ],
135460	//   "parameters": {
135461	//     "project": {
135462	//       "description": "Project ID for this request.",
135463	//       "location": "path",
135464	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
135465	//       "required": true,
135466	//       "type": "string"
135467	//     },
135468	//     "region": {
135469	//       "description": "Name of the region scoping this request.",
135470	//       "location": "path",
135471	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
135472	//       "required": true,
135473	//       "type": "string"
135474	//     },
135475	//     "requestId": {
135476	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
135477	//       "location": "query",
135478	//       "type": "string"
135479	//     }
135480	//   },
135481	//   "path": "{project}/regions/{region}/targetHttpProxies",
135482	//   "request": {
135483	//     "$ref": "TargetHttpProxy"
135484	//   },
135485	//   "response": {
135486	//     "$ref": "Operation"
135487	//   },
135488	//   "scopes": [
135489	//     "https://www.googleapis.com/auth/cloud-platform",
135490	//     "https://www.googleapis.com/auth/compute"
135491	//   ]
135492	// }
135493
135494}
135495
135496// method id "compute.regionTargetHttpProxies.list":
135497
135498type RegionTargetHttpProxiesListCall struct {
135499	s            *Service
135500	project      string
135501	region       string
135502	urlParams_   gensupport.URLParams
135503	ifNoneMatch_ string
135504	ctx_         context.Context
135505	header_      http.Header
135506}
135507
135508// List: Retrieves the list of TargetHttpProxy resources available to
135509// the specified project in the specified region. (== suppress_warning
135510// http-rest-shadowed ==)
135511func (r *RegionTargetHttpProxiesService) List(project string, region string) *RegionTargetHttpProxiesListCall {
135512	c := &RegionTargetHttpProxiesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
135513	c.project = project
135514	c.region = region
135515	return c
135516}
135517
135518// Filter sets the optional parameter "filter": A filter expression that
135519// filters resources listed in the response. The expression must specify
135520// the field name, a comparison operator, and the value that you want to
135521// use for filtering. The value must be a string, a number, or a
135522// boolean. The comparison operator must be either =, !=, >, or <.
135523//
135524// For example, if you are filtering Compute Engine instances, you can
135525// exclude instances named example-instance by specifying name !=
135526// example-instance.
135527//
135528// You can also filter nested fields. For example, you could specify
135529// scheduling.automaticRestart = false to include instances only if they
135530// are not scheduled for automatic restarts. You can use filtering on
135531// nested fields to filter based on resource labels.
135532//
135533// To filter on multiple expressions, provide each separate expression
135534// within parentheses. For example, (scheduling.automaticRestart = true)
135535// (cpuPlatform = "Intel Skylake"). By default, each expression is an
135536// AND expression. However, you can include AND and OR expressions
135537// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
135538// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
135539// true).
135540func (c *RegionTargetHttpProxiesListCall) Filter(filter string) *RegionTargetHttpProxiesListCall {
135541	c.urlParams_.Set("filter", filter)
135542	return c
135543}
135544
135545// MaxResults sets the optional parameter "maxResults": The maximum
135546// number of results per page that should be returned. If the number of
135547// available results is larger than maxResults, Compute Engine returns a
135548// nextPageToken that can be used to get the next page of results in
135549// subsequent list requests. Acceptable values are 0 to 500, inclusive.
135550// (Default: 500)
135551func (c *RegionTargetHttpProxiesListCall) MaxResults(maxResults int64) *RegionTargetHttpProxiesListCall {
135552	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
135553	return c
135554}
135555
135556// OrderBy sets the optional parameter "orderBy": Sorts list results by
135557// a certain order. By default, results are returned in alphanumerical
135558// order based on the resource name.
135559//
135560// You can also sort results in descending order based on the creation
135561// timestamp using orderBy="creationTimestamp desc". This sorts results
135562// based on the creationTimestamp field in reverse chronological order
135563// (newest result first). Use this to sort resources like operations so
135564// that the newest operation is returned first.
135565//
135566// Currently, only sorting by name or creationTimestamp desc is
135567// supported.
135568func (c *RegionTargetHttpProxiesListCall) OrderBy(orderBy string) *RegionTargetHttpProxiesListCall {
135569	c.urlParams_.Set("orderBy", orderBy)
135570	return c
135571}
135572
135573// PageToken sets the optional parameter "pageToken": Specifies a page
135574// token to use. Set pageToken to the nextPageToken returned by a
135575// previous list request to get the next page of results.
135576func (c *RegionTargetHttpProxiesListCall) PageToken(pageToken string) *RegionTargetHttpProxiesListCall {
135577	c.urlParams_.Set("pageToken", pageToken)
135578	return c
135579}
135580
135581// Fields allows partial responses to be retrieved. See
135582// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
135583// for more information.
135584func (c *RegionTargetHttpProxiesListCall) Fields(s ...googleapi.Field) *RegionTargetHttpProxiesListCall {
135585	c.urlParams_.Set("fields", googleapi.CombineFields(s))
135586	return c
135587}
135588
135589// IfNoneMatch sets the optional parameter which makes the operation
135590// fail if the object's ETag matches the given value. This is useful for
135591// getting updates only after the object has changed since the last
135592// request. Use googleapi.IsNotModified to check whether the response
135593// error from Do is the result of In-None-Match.
135594func (c *RegionTargetHttpProxiesListCall) IfNoneMatch(entityTag string) *RegionTargetHttpProxiesListCall {
135595	c.ifNoneMatch_ = entityTag
135596	return c
135597}
135598
135599// Context sets the context to be used in this call's Do method. Any
135600// pending HTTP request will be aborted if the provided context is
135601// canceled.
135602func (c *RegionTargetHttpProxiesListCall) Context(ctx context.Context) *RegionTargetHttpProxiesListCall {
135603	c.ctx_ = ctx
135604	return c
135605}
135606
135607// Header returns an http.Header that can be modified by the caller to
135608// add HTTP headers to the request.
135609func (c *RegionTargetHttpProxiesListCall) Header() http.Header {
135610	if c.header_ == nil {
135611		c.header_ = make(http.Header)
135612	}
135613	return c.header_
135614}
135615
135616func (c *RegionTargetHttpProxiesListCall) doRequest(alt string) (*http.Response, error) {
135617	reqHeaders := make(http.Header)
135618	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
135619	for k, v := range c.header_ {
135620		reqHeaders[k] = v
135621	}
135622	reqHeaders.Set("User-Agent", c.s.userAgent())
135623	if c.ifNoneMatch_ != "" {
135624		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
135625	}
135626	var body io.Reader = nil
135627	c.urlParams_.Set("alt", alt)
135628	c.urlParams_.Set("prettyPrint", "false")
135629	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetHttpProxies")
135630	urls += "?" + c.urlParams_.Encode()
135631	req, err := http.NewRequest("GET", urls, body)
135632	if err != nil {
135633		return nil, err
135634	}
135635	req.Header = reqHeaders
135636	googleapi.Expand(req.URL, map[string]string{
135637		"project": c.project,
135638		"region":  c.region,
135639	})
135640	return gensupport.SendRequest(c.ctx_, c.s.client, req)
135641}
135642
135643// Do executes the "compute.regionTargetHttpProxies.list" call.
135644// Exactly one of *TargetHttpProxyList or error will be non-nil. Any
135645// non-2xx status code is an error. Response headers are in either
135646// *TargetHttpProxyList.ServerResponse.Header or (if a response was
135647// returned at all) in error.(*googleapi.Error).Header. Use
135648// googleapi.IsNotModified to check whether the returned error was
135649// because http.StatusNotModified was returned.
135650func (c *RegionTargetHttpProxiesListCall) Do(opts ...googleapi.CallOption) (*TargetHttpProxyList, error) {
135651	gensupport.SetOptions(c.urlParams_, opts...)
135652	res, err := c.doRequest("json")
135653	if res != nil && res.StatusCode == http.StatusNotModified {
135654		if res.Body != nil {
135655			res.Body.Close()
135656		}
135657		return nil, &googleapi.Error{
135658			Code:   res.StatusCode,
135659			Header: res.Header,
135660		}
135661	}
135662	if err != nil {
135663		return nil, err
135664	}
135665	defer googleapi.CloseBody(res)
135666	if err := googleapi.CheckResponse(res); err != nil {
135667		return nil, err
135668	}
135669	ret := &TargetHttpProxyList{
135670		ServerResponse: googleapi.ServerResponse{
135671			Header:         res.Header,
135672			HTTPStatusCode: res.StatusCode,
135673		},
135674	}
135675	target := &ret
135676	if err := gensupport.DecodeResponse(target, res); err != nil {
135677		return nil, err
135678	}
135679	return ret, nil
135680	// {
135681	//   "description": "Retrieves the list of TargetHttpProxy resources available to the specified project in the specified region. (== suppress_warning http-rest-shadowed ==)",
135682	//   "httpMethod": "GET",
135683	//   "id": "compute.regionTargetHttpProxies.list",
135684	//   "parameterOrder": [
135685	//     "project",
135686	//     "region"
135687	//   ],
135688	//   "parameters": {
135689	//     "filter": {
135690	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
135691	//       "location": "query",
135692	//       "type": "string"
135693	//     },
135694	//     "maxResults": {
135695	//       "default": "500",
135696	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
135697	//       "format": "uint32",
135698	//       "location": "query",
135699	//       "minimum": "0",
135700	//       "type": "integer"
135701	//     },
135702	//     "orderBy": {
135703	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
135704	//       "location": "query",
135705	//       "type": "string"
135706	//     },
135707	//     "pageToken": {
135708	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
135709	//       "location": "query",
135710	//       "type": "string"
135711	//     },
135712	//     "project": {
135713	//       "description": "Project ID for this request.",
135714	//       "location": "path",
135715	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
135716	//       "required": true,
135717	//       "type": "string"
135718	//     },
135719	//     "region": {
135720	//       "description": "Name of the region scoping this request.",
135721	//       "location": "path",
135722	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
135723	//       "required": true,
135724	//       "type": "string"
135725	//     }
135726	//   },
135727	//   "path": "{project}/regions/{region}/targetHttpProxies",
135728	//   "response": {
135729	//     "$ref": "TargetHttpProxyList"
135730	//   },
135731	//   "scopes": [
135732	//     "https://www.googleapis.com/auth/cloud-platform",
135733	//     "https://www.googleapis.com/auth/compute",
135734	//     "https://www.googleapis.com/auth/compute.readonly"
135735	//   ]
135736	// }
135737
135738}
135739
135740// Pages invokes f for each page of results.
135741// A non-nil error returned from f will halt the iteration.
135742// The provided context supersedes any context provided to the Context method.
135743func (c *RegionTargetHttpProxiesListCall) Pages(ctx context.Context, f func(*TargetHttpProxyList) error) error {
135744	c.ctx_ = ctx
135745	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
135746	for {
135747		x, err := c.Do()
135748		if err != nil {
135749			return err
135750		}
135751		if err := f(x); err != nil {
135752			return err
135753		}
135754		if x.NextPageToken == "" {
135755			return nil
135756		}
135757		c.PageToken(x.NextPageToken)
135758	}
135759}
135760
135761// method id "compute.regionTargetHttpProxies.setUrlMap":
135762
135763type RegionTargetHttpProxiesSetUrlMapCall struct {
135764	s               *Service
135765	project         string
135766	region          string
135767	targetHttpProxy string
135768	urlmapreference *UrlMapReference
135769	urlParams_      gensupport.URLParams
135770	ctx_            context.Context
135771	header_         http.Header
135772}
135773
135774// SetUrlMap: Changes the URL map for TargetHttpProxy. (==
135775// suppress_warning http-rest-shadowed ==)
135776func (r *RegionTargetHttpProxiesService) SetUrlMap(project string, region string, targetHttpProxy string, urlmapreference *UrlMapReference) *RegionTargetHttpProxiesSetUrlMapCall {
135777	c := &RegionTargetHttpProxiesSetUrlMapCall{s: r.s, urlParams_: make(gensupport.URLParams)}
135778	c.project = project
135779	c.region = region
135780	c.targetHttpProxy = targetHttpProxy
135781	c.urlmapreference = urlmapreference
135782	return c
135783}
135784
135785// RequestId sets the optional parameter "requestId": An optional
135786// request ID to identify requests. Specify a unique request ID so that
135787// if you must retry your request, the server will know to ignore the
135788// request if it has already been completed.
135789//
135790// For example, consider a situation where you make an initial request
135791// and the request times out. If you make the request again with the
135792// same request ID, the server can check if original operation with the
135793// same request ID was received, and if so, will ignore the second
135794// request. This prevents clients from accidentally creating duplicate
135795// commitments.
135796//
135797// The request ID must be a valid UUID with the exception that zero UUID
135798// is not supported (00000000-0000-0000-0000-000000000000).
135799func (c *RegionTargetHttpProxiesSetUrlMapCall) RequestId(requestId string) *RegionTargetHttpProxiesSetUrlMapCall {
135800	c.urlParams_.Set("requestId", requestId)
135801	return c
135802}
135803
135804// Fields allows partial responses to be retrieved. See
135805// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
135806// for more information.
135807func (c *RegionTargetHttpProxiesSetUrlMapCall) Fields(s ...googleapi.Field) *RegionTargetHttpProxiesSetUrlMapCall {
135808	c.urlParams_.Set("fields", googleapi.CombineFields(s))
135809	return c
135810}
135811
135812// Context sets the context to be used in this call's Do method. Any
135813// pending HTTP request will be aborted if the provided context is
135814// canceled.
135815func (c *RegionTargetHttpProxiesSetUrlMapCall) Context(ctx context.Context) *RegionTargetHttpProxiesSetUrlMapCall {
135816	c.ctx_ = ctx
135817	return c
135818}
135819
135820// Header returns an http.Header that can be modified by the caller to
135821// add HTTP headers to the request.
135822func (c *RegionTargetHttpProxiesSetUrlMapCall) Header() http.Header {
135823	if c.header_ == nil {
135824		c.header_ = make(http.Header)
135825	}
135826	return c.header_
135827}
135828
135829func (c *RegionTargetHttpProxiesSetUrlMapCall) doRequest(alt string) (*http.Response, error) {
135830	reqHeaders := make(http.Header)
135831	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
135832	for k, v := range c.header_ {
135833		reqHeaders[k] = v
135834	}
135835	reqHeaders.Set("User-Agent", c.s.userAgent())
135836	var body io.Reader = nil
135837	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmapreference)
135838	if err != nil {
135839		return nil, err
135840	}
135841	reqHeaders.Set("Content-Type", "application/json")
135842	c.urlParams_.Set("alt", alt)
135843	c.urlParams_.Set("prettyPrint", "false")
135844	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}/setUrlMap")
135845	urls += "?" + c.urlParams_.Encode()
135846	req, err := http.NewRequest("POST", urls, body)
135847	if err != nil {
135848		return nil, err
135849	}
135850	req.Header = reqHeaders
135851	googleapi.Expand(req.URL, map[string]string{
135852		"project":         c.project,
135853		"region":          c.region,
135854		"targetHttpProxy": c.targetHttpProxy,
135855	})
135856	return gensupport.SendRequest(c.ctx_, c.s.client, req)
135857}
135858
135859// Do executes the "compute.regionTargetHttpProxies.setUrlMap" call.
135860// Exactly one of *Operation or error will be non-nil. Any non-2xx
135861// status code is an error. Response headers are in either
135862// *Operation.ServerResponse.Header or (if a response was returned at
135863// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
135864// to check whether the returned error was because
135865// http.StatusNotModified was returned.
135866func (c *RegionTargetHttpProxiesSetUrlMapCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
135867	gensupport.SetOptions(c.urlParams_, opts...)
135868	res, err := c.doRequest("json")
135869	if res != nil && res.StatusCode == http.StatusNotModified {
135870		if res.Body != nil {
135871			res.Body.Close()
135872		}
135873		return nil, &googleapi.Error{
135874			Code:   res.StatusCode,
135875			Header: res.Header,
135876		}
135877	}
135878	if err != nil {
135879		return nil, err
135880	}
135881	defer googleapi.CloseBody(res)
135882	if err := googleapi.CheckResponse(res); err != nil {
135883		return nil, err
135884	}
135885	ret := &Operation{
135886		ServerResponse: googleapi.ServerResponse{
135887			Header:         res.Header,
135888			HTTPStatusCode: res.StatusCode,
135889		},
135890	}
135891	target := &ret
135892	if err := gensupport.DecodeResponse(target, res); err != nil {
135893		return nil, err
135894	}
135895	return ret, nil
135896	// {
135897	//   "description": "Changes the URL map for TargetHttpProxy. (== suppress_warning http-rest-shadowed ==)",
135898	//   "httpMethod": "POST",
135899	//   "id": "compute.regionTargetHttpProxies.setUrlMap",
135900	//   "parameterOrder": [
135901	//     "project",
135902	//     "region",
135903	//     "targetHttpProxy"
135904	//   ],
135905	//   "parameters": {
135906	//     "project": {
135907	//       "description": "Project ID for this request.",
135908	//       "location": "path",
135909	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
135910	//       "required": true,
135911	//       "type": "string"
135912	//     },
135913	//     "region": {
135914	//       "description": "Name of the region scoping this request.",
135915	//       "location": "path",
135916	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
135917	//       "required": true,
135918	//       "type": "string"
135919	//     },
135920	//     "requestId": {
135921	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
135922	//       "location": "query",
135923	//       "type": "string"
135924	//     },
135925	//     "targetHttpProxy": {
135926	//       "description": "Name of the TargetHttpProxy to set a URL map for.",
135927	//       "location": "path",
135928	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
135929	//       "required": true,
135930	//       "type": "string"
135931	//     }
135932	//   },
135933	//   "path": "{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}/setUrlMap",
135934	//   "request": {
135935	//     "$ref": "UrlMapReference"
135936	//   },
135937	//   "response": {
135938	//     "$ref": "Operation"
135939	//   },
135940	//   "scopes": [
135941	//     "https://www.googleapis.com/auth/cloud-platform",
135942	//     "https://www.googleapis.com/auth/compute"
135943	//   ]
135944	// }
135945
135946}
135947
135948// method id "compute.regionTargetHttpProxies.testIamPermissions":
135949
135950type RegionTargetHttpProxiesTestIamPermissionsCall struct {
135951	s                      *Service
135952	project                string
135953	region                 string
135954	resource               string
135955	testpermissionsrequest *TestPermissionsRequest
135956	urlParams_             gensupport.URLParams
135957	ctx_                   context.Context
135958	header_                http.Header
135959}
135960
135961// TestIamPermissions: Returns permissions that a caller has on the
135962// specified resource. (== suppress_warning http-rest-shadowed ==)
135963func (r *RegionTargetHttpProxiesService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *RegionTargetHttpProxiesTestIamPermissionsCall {
135964	c := &RegionTargetHttpProxiesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
135965	c.project = project
135966	c.region = region
135967	c.resource = resource
135968	c.testpermissionsrequest = testpermissionsrequest
135969	return c
135970}
135971
135972// Fields allows partial responses to be retrieved. See
135973// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
135974// for more information.
135975func (c *RegionTargetHttpProxiesTestIamPermissionsCall) Fields(s ...googleapi.Field) *RegionTargetHttpProxiesTestIamPermissionsCall {
135976	c.urlParams_.Set("fields", googleapi.CombineFields(s))
135977	return c
135978}
135979
135980// Context sets the context to be used in this call's Do method. Any
135981// pending HTTP request will be aborted if the provided context is
135982// canceled.
135983func (c *RegionTargetHttpProxiesTestIamPermissionsCall) Context(ctx context.Context) *RegionTargetHttpProxiesTestIamPermissionsCall {
135984	c.ctx_ = ctx
135985	return c
135986}
135987
135988// Header returns an http.Header that can be modified by the caller to
135989// add HTTP headers to the request.
135990func (c *RegionTargetHttpProxiesTestIamPermissionsCall) Header() http.Header {
135991	if c.header_ == nil {
135992		c.header_ = make(http.Header)
135993	}
135994	return c.header_
135995}
135996
135997func (c *RegionTargetHttpProxiesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
135998	reqHeaders := make(http.Header)
135999	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
136000	for k, v := range c.header_ {
136001		reqHeaders[k] = v
136002	}
136003	reqHeaders.Set("User-Agent", c.s.userAgent())
136004	var body io.Reader = nil
136005	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
136006	if err != nil {
136007		return nil, err
136008	}
136009	reqHeaders.Set("Content-Type", "application/json")
136010	c.urlParams_.Set("alt", alt)
136011	c.urlParams_.Set("prettyPrint", "false")
136012	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetHttpProxies/{resource}/testIamPermissions")
136013	urls += "?" + c.urlParams_.Encode()
136014	req, err := http.NewRequest("POST", urls, body)
136015	if err != nil {
136016		return nil, err
136017	}
136018	req.Header = reqHeaders
136019	googleapi.Expand(req.URL, map[string]string{
136020		"project":  c.project,
136021		"region":   c.region,
136022		"resource": c.resource,
136023	})
136024	return gensupport.SendRequest(c.ctx_, c.s.client, req)
136025}
136026
136027// Do executes the "compute.regionTargetHttpProxies.testIamPermissions" call.
136028// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
136029// non-2xx status code is an error. Response headers are in either
136030// *TestPermissionsResponse.ServerResponse.Header or (if a response was
136031// returned at all) in error.(*googleapi.Error).Header. Use
136032// googleapi.IsNotModified to check whether the returned error was
136033// because http.StatusNotModified was returned.
136034func (c *RegionTargetHttpProxiesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
136035	gensupport.SetOptions(c.urlParams_, opts...)
136036	res, err := c.doRequest("json")
136037	if res != nil && res.StatusCode == http.StatusNotModified {
136038		if res.Body != nil {
136039			res.Body.Close()
136040		}
136041		return nil, &googleapi.Error{
136042			Code:   res.StatusCode,
136043			Header: res.Header,
136044		}
136045	}
136046	if err != nil {
136047		return nil, err
136048	}
136049	defer googleapi.CloseBody(res)
136050	if err := googleapi.CheckResponse(res); err != nil {
136051		return nil, err
136052	}
136053	ret := &TestPermissionsResponse{
136054		ServerResponse: googleapi.ServerResponse{
136055			Header:         res.Header,
136056			HTTPStatusCode: res.StatusCode,
136057		},
136058	}
136059	target := &ret
136060	if err := gensupport.DecodeResponse(target, res); err != nil {
136061		return nil, err
136062	}
136063	return ret, nil
136064	// {
136065	//   "description": "Returns permissions that a caller has on the specified resource. (== suppress_warning http-rest-shadowed ==)",
136066	//   "httpMethod": "POST",
136067	//   "id": "compute.regionTargetHttpProxies.testIamPermissions",
136068	//   "parameterOrder": [
136069	//     "project",
136070	//     "region",
136071	//     "resource"
136072	//   ],
136073	//   "parameters": {
136074	//     "project": {
136075	//       "description": "Project ID for this request.",
136076	//       "location": "path",
136077	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
136078	//       "required": true,
136079	//       "type": "string"
136080	//     },
136081	//     "region": {
136082	//       "description": "The name of the region for this request.",
136083	//       "location": "path",
136084	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
136085	//       "required": true,
136086	//       "type": "string"
136087	//     },
136088	//     "resource": {
136089	//       "description": "Name or id of the resource for this request.",
136090	//       "location": "path",
136091	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
136092	//       "required": true,
136093	//       "type": "string"
136094	//     }
136095	//   },
136096	//   "path": "{project}/regions/{region}/targetHttpProxies/{resource}/testIamPermissions",
136097	//   "request": {
136098	//     "$ref": "TestPermissionsRequest"
136099	//   },
136100	//   "response": {
136101	//     "$ref": "TestPermissionsResponse"
136102	//   },
136103	//   "scopes": [
136104	//     "https://www.googleapis.com/auth/cloud-platform",
136105	//     "https://www.googleapis.com/auth/compute",
136106	//     "https://www.googleapis.com/auth/compute.readonly"
136107	//   ]
136108	// }
136109
136110}
136111
136112// method id "compute.regionTargetHttpsProxies.delete":
136113
136114type RegionTargetHttpsProxiesDeleteCall struct {
136115	s                *Service
136116	project          string
136117	region           string
136118	targetHttpsProxy string
136119	urlParams_       gensupport.URLParams
136120	ctx_             context.Context
136121	header_          http.Header
136122}
136123
136124// Delete: Deletes the specified TargetHttpsProxy resource. (==
136125// suppress_warning http-rest-shadowed ==)
136126func (r *RegionTargetHttpsProxiesService) Delete(project string, region string, targetHttpsProxy string) *RegionTargetHttpsProxiesDeleteCall {
136127	c := &RegionTargetHttpsProxiesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
136128	c.project = project
136129	c.region = region
136130	c.targetHttpsProxy = targetHttpsProxy
136131	return c
136132}
136133
136134// RequestId sets the optional parameter "requestId": An optional
136135// request ID to identify requests. Specify a unique request ID so that
136136// if you must retry your request, the server will know to ignore the
136137// request if it has already been completed.
136138//
136139// For example, consider a situation where you make an initial request
136140// and the request times out. If you make the request again with the
136141// same request ID, the server can check if original operation with the
136142// same request ID was received, and if so, will ignore the second
136143// request. This prevents clients from accidentally creating duplicate
136144// commitments.
136145//
136146// The request ID must be a valid UUID with the exception that zero UUID
136147// is not supported (00000000-0000-0000-0000-000000000000).
136148func (c *RegionTargetHttpsProxiesDeleteCall) RequestId(requestId string) *RegionTargetHttpsProxiesDeleteCall {
136149	c.urlParams_.Set("requestId", requestId)
136150	return c
136151}
136152
136153// Fields allows partial responses to be retrieved. See
136154// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
136155// for more information.
136156func (c *RegionTargetHttpsProxiesDeleteCall) Fields(s ...googleapi.Field) *RegionTargetHttpsProxiesDeleteCall {
136157	c.urlParams_.Set("fields", googleapi.CombineFields(s))
136158	return c
136159}
136160
136161// Context sets the context to be used in this call's Do method. Any
136162// pending HTTP request will be aborted if the provided context is
136163// canceled.
136164func (c *RegionTargetHttpsProxiesDeleteCall) Context(ctx context.Context) *RegionTargetHttpsProxiesDeleteCall {
136165	c.ctx_ = ctx
136166	return c
136167}
136168
136169// Header returns an http.Header that can be modified by the caller to
136170// add HTTP headers to the request.
136171func (c *RegionTargetHttpsProxiesDeleteCall) Header() http.Header {
136172	if c.header_ == nil {
136173		c.header_ = make(http.Header)
136174	}
136175	return c.header_
136176}
136177
136178func (c *RegionTargetHttpsProxiesDeleteCall) doRequest(alt string) (*http.Response, error) {
136179	reqHeaders := make(http.Header)
136180	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
136181	for k, v := range c.header_ {
136182		reqHeaders[k] = v
136183	}
136184	reqHeaders.Set("User-Agent", c.s.userAgent())
136185	var body io.Reader = nil
136186	c.urlParams_.Set("alt", alt)
136187	c.urlParams_.Set("prettyPrint", "false")
136188	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}")
136189	urls += "?" + c.urlParams_.Encode()
136190	req, err := http.NewRequest("DELETE", urls, body)
136191	if err != nil {
136192		return nil, err
136193	}
136194	req.Header = reqHeaders
136195	googleapi.Expand(req.URL, map[string]string{
136196		"project":          c.project,
136197		"region":           c.region,
136198		"targetHttpsProxy": c.targetHttpsProxy,
136199	})
136200	return gensupport.SendRequest(c.ctx_, c.s.client, req)
136201}
136202
136203// Do executes the "compute.regionTargetHttpsProxies.delete" call.
136204// Exactly one of *Operation or error will be non-nil. Any non-2xx
136205// status code is an error. Response headers are in either
136206// *Operation.ServerResponse.Header or (if a response was returned at
136207// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
136208// to check whether the returned error was because
136209// http.StatusNotModified was returned.
136210func (c *RegionTargetHttpsProxiesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
136211	gensupport.SetOptions(c.urlParams_, opts...)
136212	res, err := c.doRequest("json")
136213	if res != nil && res.StatusCode == http.StatusNotModified {
136214		if res.Body != nil {
136215			res.Body.Close()
136216		}
136217		return nil, &googleapi.Error{
136218			Code:   res.StatusCode,
136219			Header: res.Header,
136220		}
136221	}
136222	if err != nil {
136223		return nil, err
136224	}
136225	defer googleapi.CloseBody(res)
136226	if err := googleapi.CheckResponse(res); err != nil {
136227		return nil, err
136228	}
136229	ret := &Operation{
136230		ServerResponse: googleapi.ServerResponse{
136231			Header:         res.Header,
136232			HTTPStatusCode: res.StatusCode,
136233		},
136234	}
136235	target := &ret
136236	if err := gensupport.DecodeResponse(target, res); err != nil {
136237		return nil, err
136238	}
136239	return ret, nil
136240	// {
136241	//   "description": "Deletes the specified TargetHttpsProxy resource. (== suppress_warning http-rest-shadowed ==)",
136242	//   "httpMethod": "DELETE",
136243	//   "id": "compute.regionTargetHttpsProxies.delete",
136244	//   "parameterOrder": [
136245	//     "project",
136246	//     "region",
136247	//     "targetHttpsProxy"
136248	//   ],
136249	//   "parameters": {
136250	//     "project": {
136251	//       "description": "Project ID for this request.",
136252	//       "location": "path",
136253	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
136254	//       "required": true,
136255	//       "type": "string"
136256	//     },
136257	//     "region": {
136258	//       "description": "Name of the region scoping this request.",
136259	//       "location": "path",
136260	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
136261	//       "required": true,
136262	//       "type": "string"
136263	//     },
136264	//     "requestId": {
136265	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
136266	//       "location": "query",
136267	//       "type": "string"
136268	//     },
136269	//     "targetHttpsProxy": {
136270	//       "description": "Name of the TargetHttpsProxy resource to delete.",
136271	//       "location": "path",
136272	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
136273	//       "required": true,
136274	//       "type": "string"
136275	//     }
136276	//   },
136277	//   "path": "{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}",
136278	//   "response": {
136279	//     "$ref": "Operation"
136280	//   },
136281	//   "scopes": [
136282	//     "https://www.googleapis.com/auth/cloud-platform",
136283	//     "https://www.googleapis.com/auth/compute"
136284	//   ]
136285	// }
136286
136287}
136288
136289// method id "compute.regionTargetHttpsProxies.get":
136290
136291type RegionTargetHttpsProxiesGetCall struct {
136292	s                *Service
136293	project          string
136294	region           string
136295	targetHttpsProxy string
136296	urlParams_       gensupport.URLParams
136297	ifNoneMatch_     string
136298	ctx_             context.Context
136299	header_          http.Header
136300}
136301
136302// Get: Returns the specified TargetHttpsProxy resource in the specified
136303// region. Gets a list of available target HTTP proxies by making a
136304// list() request. (== suppress_warning http-rest-shadowed ==)
136305func (r *RegionTargetHttpsProxiesService) Get(project string, region string, targetHttpsProxy string) *RegionTargetHttpsProxiesGetCall {
136306	c := &RegionTargetHttpsProxiesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
136307	c.project = project
136308	c.region = region
136309	c.targetHttpsProxy = targetHttpsProxy
136310	return c
136311}
136312
136313// Fields allows partial responses to be retrieved. See
136314// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
136315// for more information.
136316func (c *RegionTargetHttpsProxiesGetCall) Fields(s ...googleapi.Field) *RegionTargetHttpsProxiesGetCall {
136317	c.urlParams_.Set("fields", googleapi.CombineFields(s))
136318	return c
136319}
136320
136321// IfNoneMatch sets the optional parameter which makes the operation
136322// fail if the object's ETag matches the given value. This is useful for
136323// getting updates only after the object has changed since the last
136324// request. Use googleapi.IsNotModified to check whether the response
136325// error from Do is the result of In-None-Match.
136326func (c *RegionTargetHttpsProxiesGetCall) IfNoneMatch(entityTag string) *RegionTargetHttpsProxiesGetCall {
136327	c.ifNoneMatch_ = entityTag
136328	return c
136329}
136330
136331// Context sets the context to be used in this call's Do method. Any
136332// pending HTTP request will be aborted if the provided context is
136333// canceled.
136334func (c *RegionTargetHttpsProxiesGetCall) Context(ctx context.Context) *RegionTargetHttpsProxiesGetCall {
136335	c.ctx_ = ctx
136336	return c
136337}
136338
136339// Header returns an http.Header that can be modified by the caller to
136340// add HTTP headers to the request.
136341func (c *RegionTargetHttpsProxiesGetCall) Header() http.Header {
136342	if c.header_ == nil {
136343		c.header_ = make(http.Header)
136344	}
136345	return c.header_
136346}
136347
136348func (c *RegionTargetHttpsProxiesGetCall) doRequest(alt string) (*http.Response, error) {
136349	reqHeaders := make(http.Header)
136350	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
136351	for k, v := range c.header_ {
136352		reqHeaders[k] = v
136353	}
136354	reqHeaders.Set("User-Agent", c.s.userAgent())
136355	if c.ifNoneMatch_ != "" {
136356		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
136357	}
136358	var body io.Reader = nil
136359	c.urlParams_.Set("alt", alt)
136360	c.urlParams_.Set("prettyPrint", "false")
136361	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}")
136362	urls += "?" + c.urlParams_.Encode()
136363	req, err := http.NewRequest("GET", urls, body)
136364	if err != nil {
136365		return nil, err
136366	}
136367	req.Header = reqHeaders
136368	googleapi.Expand(req.URL, map[string]string{
136369		"project":          c.project,
136370		"region":           c.region,
136371		"targetHttpsProxy": c.targetHttpsProxy,
136372	})
136373	return gensupport.SendRequest(c.ctx_, c.s.client, req)
136374}
136375
136376// Do executes the "compute.regionTargetHttpsProxies.get" call.
136377// Exactly one of *TargetHttpsProxy or error will be non-nil. Any
136378// non-2xx status code is an error. Response headers are in either
136379// *TargetHttpsProxy.ServerResponse.Header or (if a response was
136380// returned at all) in error.(*googleapi.Error).Header. Use
136381// googleapi.IsNotModified to check whether the returned error was
136382// because http.StatusNotModified was returned.
136383func (c *RegionTargetHttpsProxiesGetCall) Do(opts ...googleapi.CallOption) (*TargetHttpsProxy, error) {
136384	gensupport.SetOptions(c.urlParams_, opts...)
136385	res, err := c.doRequest("json")
136386	if res != nil && res.StatusCode == http.StatusNotModified {
136387		if res.Body != nil {
136388			res.Body.Close()
136389		}
136390		return nil, &googleapi.Error{
136391			Code:   res.StatusCode,
136392			Header: res.Header,
136393		}
136394	}
136395	if err != nil {
136396		return nil, err
136397	}
136398	defer googleapi.CloseBody(res)
136399	if err := googleapi.CheckResponse(res); err != nil {
136400		return nil, err
136401	}
136402	ret := &TargetHttpsProxy{
136403		ServerResponse: googleapi.ServerResponse{
136404			Header:         res.Header,
136405			HTTPStatusCode: res.StatusCode,
136406		},
136407	}
136408	target := &ret
136409	if err := gensupport.DecodeResponse(target, res); err != nil {
136410		return nil, err
136411	}
136412	return ret, nil
136413	// {
136414	//   "description": "Returns the specified TargetHttpsProxy resource in the specified region. Gets a list of available target HTTP proxies by making a list() request. (== suppress_warning http-rest-shadowed ==)",
136415	//   "httpMethod": "GET",
136416	//   "id": "compute.regionTargetHttpsProxies.get",
136417	//   "parameterOrder": [
136418	//     "project",
136419	//     "region",
136420	//     "targetHttpsProxy"
136421	//   ],
136422	//   "parameters": {
136423	//     "project": {
136424	//       "description": "Project ID for this request.",
136425	//       "location": "path",
136426	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
136427	//       "required": true,
136428	//       "type": "string"
136429	//     },
136430	//     "region": {
136431	//       "description": "Name of the region scoping this request.",
136432	//       "location": "path",
136433	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
136434	//       "required": true,
136435	//       "type": "string"
136436	//     },
136437	//     "targetHttpsProxy": {
136438	//       "description": "Name of the TargetHttpsProxy resource to return.",
136439	//       "location": "path",
136440	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
136441	//       "required": true,
136442	//       "type": "string"
136443	//     }
136444	//   },
136445	//   "path": "{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}",
136446	//   "response": {
136447	//     "$ref": "TargetHttpsProxy"
136448	//   },
136449	//   "scopes": [
136450	//     "https://www.googleapis.com/auth/cloud-platform",
136451	//     "https://www.googleapis.com/auth/compute",
136452	//     "https://www.googleapis.com/auth/compute.readonly"
136453	//   ]
136454	// }
136455
136456}
136457
136458// method id "compute.regionTargetHttpsProxies.insert":
136459
136460type RegionTargetHttpsProxiesInsertCall struct {
136461	s                *Service
136462	project          string
136463	region           string
136464	targethttpsproxy *TargetHttpsProxy
136465	urlParams_       gensupport.URLParams
136466	ctx_             context.Context
136467	header_          http.Header
136468}
136469
136470// Insert: Creates a TargetHttpsProxy resource in the specified project
136471// and region using the data included in the request. (==
136472// suppress_warning http-rest-shadowed ==)
136473func (r *RegionTargetHttpsProxiesService) Insert(project string, region string, targethttpsproxy *TargetHttpsProxy) *RegionTargetHttpsProxiesInsertCall {
136474	c := &RegionTargetHttpsProxiesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
136475	c.project = project
136476	c.region = region
136477	c.targethttpsproxy = targethttpsproxy
136478	return c
136479}
136480
136481// RequestId sets the optional parameter "requestId": An optional
136482// request ID to identify requests. Specify a unique request ID so that
136483// if you must retry your request, the server will know to ignore the
136484// request if it has already been completed.
136485//
136486// For example, consider a situation where you make an initial request
136487// and the request times out. If you make the request again with the
136488// same request ID, the server can check if original operation with the
136489// same request ID was received, and if so, will ignore the second
136490// request. This prevents clients from accidentally creating duplicate
136491// commitments.
136492//
136493// The request ID must be a valid UUID with the exception that zero UUID
136494// is not supported (00000000-0000-0000-0000-000000000000).
136495func (c *RegionTargetHttpsProxiesInsertCall) RequestId(requestId string) *RegionTargetHttpsProxiesInsertCall {
136496	c.urlParams_.Set("requestId", requestId)
136497	return c
136498}
136499
136500// Fields allows partial responses to be retrieved. See
136501// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
136502// for more information.
136503func (c *RegionTargetHttpsProxiesInsertCall) Fields(s ...googleapi.Field) *RegionTargetHttpsProxiesInsertCall {
136504	c.urlParams_.Set("fields", googleapi.CombineFields(s))
136505	return c
136506}
136507
136508// Context sets the context to be used in this call's Do method. Any
136509// pending HTTP request will be aborted if the provided context is
136510// canceled.
136511func (c *RegionTargetHttpsProxiesInsertCall) Context(ctx context.Context) *RegionTargetHttpsProxiesInsertCall {
136512	c.ctx_ = ctx
136513	return c
136514}
136515
136516// Header returns an http.Header that can be modified by the caller to
136517// add HTTP headers to the request.
136518func (c *RegionTargetHttpsProxiesInsertCall) Header() http.Header {
136519	if c.header_ == nil {
136520		c.header_ = make(http.Header)
136521	}
136522	return c.header_
136523}
136524
136525func (c *RegionTargetHttpsProxiesInsertCall) doRequest(alt string) (*http.Response, error) {
136526	reqHeaders := make(http.Header)
136527	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
136528	for k, v := range c.header_ {
136529		reqHeaders[k] = v
136530	}
136531	reqHeaders.Set("User-Agent", c.s.userAgent())
136532	var body io.Reader = nil
136533	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targethttpsproxy)
136534	if err != nil {
136535		return nil, err
136536	}
136537	reqHeaders.Set("Content-Type", "application/json")
136538	c.urlParams_.Set("alt", alt)
136539	c.urlParams_.Set("prettyPrint", "false")
136540	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetHttpsProxies")
136541	urls += "?" + c.urlParams_.Encode()
136542	req, err := http.NewRequest("POST", urls, body)
136543	if err != nil {
136544		return nil, err
136545	}
136546	req.Header = reqHeaders
136547	googleapi.Expand(req.URL, map[string]string{
136548		"project": c.project,
136549		"region":  c.region,
136550	})
136551	return gensupport.SendRequest(c.ctx_, c.s.client, req)
136552}
136553
136554// Do executes the "compute.regionTargetHttpsProxies.insert" call.
136555// Exactly one of *Operation or error will be non-nil. Any non-2xx
136556// status code is an error. Response headers are in either
136557// *Operation.ServerResponse.Header or (if a response was returned at
136558// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
136559// to check whether the returned error was because
136560// http.StatusNotModified was returned.
136561func (c *RegionTargetHttpsProxiesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
136562	gensupport.SetOptions(c.urlParams_, opts...)
136563	res, err := c.doRequest("json")
136564	if res != nil && res.StatusCode == http.StatusNotModified {
136565		if res.Body != nil {
136566			res.Body.Close()
136567		}
136568		return nil, &googleapi.Error{
136569			Code:   res.StatusCode,
136570			Header: res.Header,
136571		}
136572	}
136573	if err != nil {
136574		return nil, err
136575	}
136576	defer googleapi.CloseBody(res)
136577	if err := googleapi.CheckResponse(res); err != nil {
136578		return nil, err
136579	}
136580	ret := &Operation{
136581		ServerResponse: googleapi.ServerResponse{
136582			Header:         res.Header,
136583			HTTPStatusCode: res.StatusCode,
136584		},
136585	}
136586	target := &ret
136587	if err := gensupport.DecodeResponse(target, res); err != nil {
136588		return nil, err
136589	}
136590	return ret, nil
136591	// {
136592	//   "description": "Creates a TargetHttpsProxy resource in the specified project and region using the data included in the request. (== suppress_warning http-rest-shadowed ==)",
136593	//   "httpMethod": "POST",
136594	//   "id": "compute.regionTargetHttpsProxies.insert",
136595	//   "parameterOrder": [
136596	//     "project",
136597	//     "region"
136598	//   ],
136599	//   "parameters": {
136600	//     "project": {
136601	//       "description": "Project ID for this request.",
136602	//       "location": "path",
136603	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
136604	//       "required": true,
136605	//       "type": "string"
136606	//     },
136607	//     "region": {
136608	//       "description": "Name of the region scoping this request.",
136609	//       "location": "path",
136610	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
136611	//       "required": true,
136612	//       "type": "string"
136613	//     },
136614	//     "requestId": {
136615	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
136616	//       "location": "query",
136617	//       "type": "string"
136618	//     }
136619	//   },
136620	//   "path": "{project}/regions/{region}/targetHttpsProxies",
136621	//   "request": {
136622	//     "$ref": "TargetHttpsProxy"
136623	//   },
136624	//   "response": {
136625	//     "$ref": "Operation"
136626	//   },
136627	//   "scopes": [
136628	//     "https://www.googleapis.com/auth/cloud-platform",
136629	//     "https://www.googleapis.com/auth/compute"
136630	//   ]
136631	// }
136632
136633}
136634
136635// method id "compute.regionTargetHttpsProxies.list":
136636
136637type RegionTargetHttpsProxiesListCall struct {
136638	s            *Service
136639	project      string
136640	region       string
136641	urlParams_   gensupport.URLParams
136642	ifNoneMatch_ string
136643	ctx_         context.Context
136644	header_      http.Header
136645}
136646
136647// List: Retrieves the list of TargetHttpsProxy resources available to
136648// the specified project in the specified region. (== suppress_warning
136649// http-rest-shadowed ==)
136650func (r *RegionTargetHttpsProxiesService) List(project string, region string) *RegionTargetHttpsProxiesListCall {
136651	c := &RegionTargetHttpsProxiesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
136652	c.project = project
136653	c.region = region
136654	return c
136655}
136656
136657// Filter sets the optional parameter "filter": A filter expression that
136658// filters resources listed in the response. The expression must specify
136659// the field name, a comparison operator, and the value that you want to
136660// use for filtering. The value must be a string, a number, or a
136661// boolean. The comparison operator must be either =, !=, >, or <.
136662//
136663// For example, if you are filtering Compute Engine instances, you can
136664// exclude instances named example-instance by specifying name !=
136665// example-instance.
136666//
136667// You can also filter nested fields. For example, you could specify
136668// scheduling.automaticRestart = false to include instances only if they
136669// are not scheduled for automatic restarts. You can use filtering on
136670// nested fields to filter based on resource labels.
136671//
136672// To filter on multiple expressions, provide each separate expression
136673// within parentheses. For example, (scheduling.automaticRestart = true)
136674// (cpuPlatform = "Intel Skylake"). By default, each expression is an
136675// AND expression. However, you can include AND and OR expressions
136676// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
136677// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
136678// true).
136679func (c *RegionTargetHttpsProxiesListCall) Filter(filter string) *RegionTargetHttpsProxiesListCall {
136680	c.urlParams_.Set("filter", filter)
136681	return c
136682}
136683
136684// MaxResults sets the optional parameter "maxResults": The maximum
136685// number of results per page that should be returned. If the number of
136686// available results is larger than maxResults, Compute Engine returns a
136687// nextPageToken that can be used to get the next page of results in
136688// subsequent list requests. Acceptable values are 0 to 500, inclusive.
136689// (Default: 500)
136690func (c *RegionTargetHttpsProxiesListCall) MaxResults(maxResults int64) *RegionTargetHttpsProxiesListCall {
136691	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
136692	return c
136693}
136694
136695// OrderBy sets the optional parameter "orderBy": Sorts list results by
136696// a certain order. By default, results are returned in alphanumerical
136697// order based on the resource name.
136698//
136699// You can also sort results in descending order based on the creation
136700// timestamp using orderBy="creationTimestamp desc". This sorts results
136701// based on the creationTimestamp field in reverse chronological order
136702// (newest result first). Use this to sort resources like operations so
136703// that the newest operation is returned first.
136704//
136705// Currently, only sorting by name or creationTimestamp desc is
136706// supported.
136707func (c *RegionTargetHttpsProxiesListCall) OrderBy(orderBy string) *RegionTargetHttpsProxiesListCall {
136708	c.urlParams_.Set("orderBy", orderBy)
136709	return c
136710}
136711
136712// PageToken sets the optional parameter "pageToken": Specifies a page
136713// token to use. Set pageToken to the nextPageToken returned by a
136714// previous list request to get the next page of results.
136715func (c *RegionTargetHttpsProxiesListCall) PageToken(pageToken string) *RegionTargetHttpsProxiesListCall {
136716	c.urlParams_.Set("pageToken", pageToken)
136717	return c
136718}
136719
136720// Fields allows partial responses to be retrieved. See
136721// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
136722// for more information.
136723func (c *RegionTargetHttpsProxiesListCall) Fields(s ...googleapi.Field) *RegionTargetHttpsProxiesListCall {
136724	c.urlParams_.Set("fields", googleapi.CombineFields(s))
136725	return c
136726}
136727
136728// IfNoneMatch sets the optional parameter which makes the operation
136729// fail if the object's ETag matches the given value. This is useful for
136730// getting updates only after the object has changed since the last
136731// request. Use googleapi.IsNotModified to check whether the response
136732// error from Do is the result of In-None-Match.
136733func (c *RegionTargetHttpsProxiesListCall) IfNoneMatch(entityTag string) *RegionTargetHttpsProxiesListCall {
136734	c.ifNoneMatch_ = entityTag
136735	return c
136736}
136737
136738// Context sets the context to be used in this call's Do method. Any
136739// pending HTTP request will be aborted if the provided context is
136740// canceled.
136741func (c *RegionTargetHttpsProxiesListCall) Context(ctx context.Context) *RegionTargetHttpsProxiesListCall {
136742	c.ctx_ = ctx
136743	return c
136744}
136745
136746// Header returns an http.Header that can be modified by the caller to
136747// add HTTP headers to the request.
136748func (c *RegionTargetHttpsProxiesListCall) Header() http.Header {
136749	if c.header_ == nil {
136750		c.header_ = make(http.Header)
136751	}
136752	return c.header_
136753}
136754
136755func (c *RegionTargetHttpsProxiesListCall) doRequest(alt string) (*http.Response, error) {
136756	reqHeaders := make(http.Header)
136757	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
136758	for k, v := range c.header_ {
136759		reqHeaders[k] = v
136760	}
136761	reqHeaders.Set("User-Agent", c.s.userAgent())
136762	if c.ifNoneMatch_ != "" {
136763		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
136764	}
136765	var body io.Reader = nil
136766	c.urlParams_.Set("alt", alt)
136767	c.urlParams_.Set("prettyPrint", "false")
136768	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetHttpsProxies")
136769	urls += "?" + c.urlParams_.Encode()
136770	req, err := http.NewRequest("GET", urls, body)
136771	if err != nil {
136772		return nil, err
136773	}
136774	req.Header = reqHeaders
136775	googleapi.Expand(req.URL, map[string]string{
136776		"project": c.project,
136777		"region":  c.region,
136778	})
136779	return gensupport.SendRequest(c.ctx_, c.s.client, req)
136780}
136781
136782// Do executes the "compute.regionTargetHttpsProxies.list" call.
136783// Exactly one of *TargetHttpsProxyList or error will be non-nil. Any
136784// non-2xx status code is an error. Response headers are in either
136785// *TargetHttpsProxyList.ServerResponse.Header or (if a response was
136786// returned at all) in error.(*googleapi.Error).Header. Use
136787// googleapi.IsNotModified to check whether the returned error was
136788// because http.StatusNotModified was returned.
136789func (c *RegionTargetHttpsProxiesListCall) Do(opts ...googleapi.CallOption) (*TargetHttpsProxyList, error) {
136790	gensupport.SetOptions(c.urlParams_, opts...)
136791	res, err := c.doRequest("json")
136792	if res != nil && res.StatusCode == http.StatusNotModified {
136793		if res.Body != nil {
136794			res.Body.Close()
136795		}
136796		return nil, &googleapi.Error{
136797			Code:   res.StatusCode,
136798			Header: res.Header,
136799		}
136800	}
136801	if err != nil {
136802		return nil, err
136803	}
136804	defer googleapi.CloseBody(res)
136805	if err := googleapi.CheckResponse(res); err != nil {
136806		return nil, err
136807	}
136808	ret := &TargetHttpsProxyList{
136809		ServerResponse: googleapi.ServerResponse{
136810			Header:         res.Header,
136811			HTTPStatusCode: res.StatusCode,
136812		},
136813	}
136814	target := &ret
136815	if err := gensupport.DecodeResponse(target, res); err != nil {
136816		return nil, err
136817	}
136818	return ret, nil
136819	// {
136820	//   "description": "Retrieves the list of TargetHttpsProxy resources available to the specified project in the specified region. (== suppress_warning http-rest-shadowed ==)",
136821	//   "httpMethod": "GET",
136822	//   "id": "compute.regionTargetHttpsProxies.list",
136823	//   "parameterOrder": [
136824	//     "project",
136825	//     "region"
136826	//   ],
136827	//   "parameters": {
136828	//     "filter": {
136829	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
136830	//       "location": "query",
136831	//       "type": "string"
136832	//     },
136833	//     "maxResults": {
136834	//       "default": "500",
136835	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
136836	//       "format": "uint32",
136837	//       "location": "query",
136838	//       "minimum": "0",
136839	//       "type": "integer"
136840	//     },
136841	//     "orderBy": {
136842	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
136843	//       "location": "query",
136844	//       "type": "string"
136845	//     },
136846	//     "pageToken": {
136847	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
136848	//       "location": "query",
136849	//       "type": "string"
136850	//     },
136851	//     "project": {
136852	//       "description": "Project ID for this request.",
136853	//       "location": "path",
136854	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
136855	//       "required": true,
136856	//       "type": "string"
136857	//     },
136858	//     "region": {
136859	//       "description": "Name of the region scoping this request.",
136860	//       "location": "path",
136861	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
136862	//       "required": true,
136863	//       "type": "string"
136864	//     }
136865	//   },
136866	//   "path": "{project}/regions/{region}/targetHttpsProxies",
136867	//   "response": {
136868	//     "$ref": "TargetHttpsProxyList"
136869	//   },
136870	//   "scopes": [
136871	//     "https://www.googleapis.com/auth/cloud-platform",
136872	//     "https://www.googleapis.com/auth/compute",
136873	//     "https://www.googleapis.com/auth/compute.readonly"
136874	//   ]
136875	// }
136876
136877}
136878
136879// Pages invokes f for each page of results.
136880// A non-nil error returned from f will halt the iteration.
136881// The provided context supersedes any context provided to the Context method.
136882func (c *RegionTargetHttpsProxiesListCall) Pages(ctx context.Context, f func(*TargetHttpsProxyList) error) error {
136883	c.ctx_ = ctx
136884	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
136885	for {
136886		x, err := c.Do()
136887		if err != nil {
136888			return err
136889		}
136890		if err := f(x); err != nil {
136891			return err
136892		}
136893		if x.NextPageToken == "" {
136894			return nil
136895		}
136896		c.PageToken(x.NextPageToken)
136897	}
136898}
136899
136900// method id "compute.regionTargetHttpsProxies.setSslCertificates":
136901
136902type RegionTargetHttpsProxiesSetSslCertificatesCall struct {
136903	s                                                 *Service
136904	project                                           string
136905	region                                            string
136906	targetHttpsProxy                                  string
136907	regiontargethttpsproxiessetsslcertificatesrequest *RegionTargetHttpsProxiesSetSslCertificatesRequest
136908	urlParams_                                        gensupport.URLParams
136909	ctx_                                              context.Context
136910	header_                                           http.Header
136911}
136912
136913// SetSslCertificates: Replaces SslCertificates for TargetHttpsProxy.
136914// (== suppress_warning http-rest-shadowed ==)
136915func (r *RegionTargetHttpsProxiesService) SetSslCertificates(project string, region string, targetHttpsProxy string, regiontargethttpsproxiessetsslcertificatesrequest *RegionTargetHttpsProxiesSetSslCertificatesRequest) *RegionTargetHttpsProxiesSetSslCertificatesCall {
136916	c := &RegionTargetHttpsProxiesSetSslCertificatesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
136917	c.project = project
136918	c.region = region
136919	c.targetHttpsProxy = targetHttpsProxy
136920	c.regiontargethttpsproxiessetsslcertificatesrequest = regiontargethttpsproxiessetsslcertificatesrequest
136921	return c
136922}
136923
136924// RequestId sets the optional parameter "requestId": An optional
136925// request ID to identify requests. Specify a unique request ID so that
136926// if you must retry your request, the server will know to ignore the
136927// request if it has already been completed.
136928//
136929// For example, consider a situation where you make an initial request
136930// and the request times out. If you make the request again with the
136931// same request ID, the server can check if original operation with the
136932// same request ID was received, and if so, will ignore the second
136933// request. This prevents clients from accidentally creating duplicate
136934// commitments.
136935//
136936// The request ID must be a valid UUID with the exception that zero UUID
136937// is not supported (00000000-0000-0000-0000-000000000000).
136938func (c *RegionTargetHttpsProxiesSetSslCertificatesCall) RequestId(requestId string) *RegionTargetHttpsProxiesSetSslCertificatesCall {
136939	c.urlParams_.Set("requestId", requestId)
136940	return c
136941}
136942
136943// Fields allows partial responses to be retrieved. See
136944// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
136945// for more information.
136946func (c *RegionTargetHttpsProxiesSetSslCertificatesCall) Fields(s ...googleapi.Field) *RegionTargetHttpsProxiesSetSslCertificatesCall {
136947	c.urlParams_.Set("fields", googleapi.CombineFields(s))
136948	return c
136949}
136950
136951// Context sets the context to be used in this call's Do method. Any
136952// pending HTTP request will be aborted if the provided context is
136953// canceled.
136954func (c *RegionTargetHttpsProxiesSetSslCertificatesCall) Context(ctx context.Context) *RegionTargetHttpsProxiesSetSslCertificatesCall {
136955	c.ctx_ = ctx
136956	return c
136957}
136958
136959// Header returns an http.Header that can be modified by the caller to
136960// add HTTP headers to the request.
136961func (c *RegionTargetHttpsProxiesSetSslCertificatesCall) Header() http.Header {
136962	if c.header_ == nil {
136963		c.header_ = make(http.Header)
136964	}
136965	return c.header_
136966}
136967
136968func (c *RegionTargetHttpsProxiesSetSslCertificatesCall) doRequest(alt string) (*http.Response, error) {
136969	reqHeaders := make(http.Header)
136970	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
136971	for k, v := range c.header_ {
136972		reqHeaders[k] = v
136973	}
136974	reqHeaders.Set("User-Agent", c.s.userAgent())
136975	var body io.Reader = nil
136976	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regiontargethttpsproxiessetsslcertificatesrequest)
136977	if err != nil {
136978		return nil, err
136979	}
136980	reqHeaders.Set("Content-Type", "application/json")
136981	c.urlParams_.Set("alt", alt)
136982	c.urlParams_.Set("prettyPrint", "false")
136983	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}/setSslCertificates")
136984	urls += "?" + c.urlParams_.Encode()
136985	req, err := http.NewRequest("POST", urls, body)
136986	if err != nil {
136987		return nil, err
136988	}
136989	req.Header = reqHeaders
136990	googleapi.Expand(req.URL, map[string]string{
136991		"project":          c.project,
136992		"region":           c.region,
136993		"targetHttpsProxy": c.targetHttpsProxy,
136994	})
136995	return gensupport.SendRequest(c.ctx_, c.s.client, req)
136996}
136997
136998// Do executes the "compute.regionTargetHttpsProxies.setSslCertificates" call.
136999// Exactly one of *Operation or error will be non-nil. Any non-2xx
137000// status code is an error. Response headers are in either
137001// *Operation.ServerResponse.Header or (if a response was returned at
137002// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
137003// to check whether the returned error was because
137004// http.StatusNotModified was returned.
137005func (c *RegionTargetHttpsProxiesSetSslCertificatesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
137006	gensupport.SetOptions(c.urlParams_, opts...)
137007	res, err := c.doRequest("json")
137008	if res != nil && res.StatusCode == http.StatusNotModified {
137009		if res.Body != nil {
137010			res.Body.Close()
137011		}
137012		return nil, &googleapi.Error{
137013			Code:   res.StatusCode,
137014			Header: res.Header,
137015		}
137016	}
137017	if err != nil {
137018		return nil, err
137019	}
137020	defer googleapi.CloseBody(res)
137021	if err := googleapi.CheckResponse(res); err != nil {
137022		return nil, err
137023	}
137024	ret := &Operation{
137025		ServerResponse: googleapi.ServerResponse{
137026			Header:         res.Header,
137027			HTTPStatusCode: res.StatusCode,
137028		},
137029	}
137030	target := &ret
137031	if err := gensupport.DecodeResponse(target, res); err != nil {
137032		return nil, err
137033	}
137034	return ret, nil
137035	// {
137036	//   "description": "Replaces SslCertificates for TargetHttpsProxy. (== suppress_warning http-rest-shadowed ==)",
137037	//   "httpMethod": "POST",
137038	//   "id": "compute.regionTargetHttpsProxies.setSslCertificates",
137039	//   "parameterOrder": [
137040	//     "project",
137041	//     "region",
137042	//     "targetHttpsProxy"
137043	//   ],
137044	//   "parameters": {
137045	//     "project": {
137046	//       "description": "Project ID for this request.",
137047	//       "location": "path",
137048	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
137049	//       "required": true,
137050	//       "type": "string"
137051	//     },
137052	//     "region": {
137053	//       "description": "Name of the region scoping this request.",
137054	//       "location": "path",
137055	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
137056	//       "required": true,
137057	//       "type": "string"
137058	//     },
137059	//     "requestId": {
137060	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
137061	//       "location": "query",
137062	//       "type": "string"
137063	//     },
137064	//     "targetHttpsProxy": {
137065	//       "description": "Name of the TargetHttpsProxy resource to set an SslCertificates resource for.",
137066	//       "location": "path",
137067	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
137068	//       "required": true,
137069	//       "type": "string"
137070	//     }
137071	//   },
137072	//   "path": "{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}/setSslCertificates",
137073	//   "request": {
137074	//     "$ref": "RegionTargetHttpsProxiesSetSslCertificatesRequest"
137075	//   },
137076	//   "response": {
137077	//     "$ref": "Operation"
137078	//   },
137079	//   "scopes": [
137080	//     "https://www.googleapis.com/auth/cloud-platform",
137081	//     "https://www.googleapis.com/auth/compute"
137082	//   ]
137083	// }
137084
137085}
137086
137087// method id "compute.regionTargetHttpsProxies.setUrlMap":
137088
137089type RegionTargetHttpsProxiesSetUrlMapCall struct {
137090	s                *Service
137091	project          string
137092	region           string
137093	targetHttpsProxy string
137094	urlmapreference  *UrlMapReference
137095	urlParams_       gensupport.URLParams
137096	ctx_             context.Context
137097	header_          http.Header
137098}
137099
137100// SetUrlMap: Changes the URL map for TargetHttpsProxy. (==
137101// suppress_warning http-rest-shadowed ==)
137102func (r *RegionTargetHttpsProxiesService) SetUrlMap(project string, region string, targetHttpsProxy string, urlmapreference *UrlMapReference) *RegionTargetHttpsProxiesSetUrlMapCall {
137103	c := &RegionTargetHttpsProxiesSetUrlMapCall{s: r.s, urlParams_: make(gensupport.URLParams)}
137104	c.project = project
137105	c.region = region
137106	c.targetHttpsProxy = targetHttpsProxy
137107	c.urlmapreference = urlmapreference
137108	return c
137109}
137110
137111// RequestId sets the optional parameter "requestId": An optional
137112// request ID to identify requests. Specify a unique request ID so that
137113// if you must retry your request, the server will know to ignore the
137114// request if it has already been completed.
137115//
137116// For example, consider a situation where you make an initial request
137117// and the request times out. If you make the request again with the
137118// same request ID, the server can check if original operation with the
137119// same request ID was received, and if so, will ignore the second
137120// request. This prevents clients from accidentally creating duplicate
137121// commitments.
137122//
137123// The request ID must be a valid UUID with the exception that zero UUID
137124// is not supported (00000000-0000-0000-0000-000000000000).
137125func (c *RegionTargetHttpsProxiesSetUrlMapCall) RequestId(requestId string) *RegionTargetHttpsProxiesSetUrlMapCall {
137126	c.urlParams_.Set("requestId", requestId)
137127	return c
137128}
137129
137130// Fields allows partial responses to be retrieved. See
137131// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
137132// for more information.
137133func (c *RegionTargetHttpsProxiesSetUrlMapCall) Fields(s ...googleapi.Field) *RegionTargetHttpsProxiesSetUrlMapCall {
137134	c.urlParams_.Set("fields", googleapi.CombineFields(s))
137135	return c
137136}
137137
137138// Context sets the context to be used in this call's Do method. Any
137139// pending HTTP request will be aborted if the provided context is
137140// canceled.
137141func (c *RegionTargetHttpsProxiesSetUrlMapCall) Context(ctx context.Context) *RegionTargetHttpsProxiesSetUrlMapCall {
137142	c.ctx_ = ctx
137143	return c
137144}
137145
137146// Header returns an http.Header that can be modified by the caller to
137147// add HTTP headers to the request.
137148func (c *RegionTargetHttpsProxiesSetUrlMapCall) Header() http.Header {
137149	if c.header_ == nil {
137150		c.header_ = make(http.Header)
137151	}
137152	return c.header_
137153}
137154
137155func (c *RegionTargetHttpsProxiesSetUrlMapCall) doRequest(alt string) (*http.Response, error) {
137156	reqHeaders := make(http.Header)
137157	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
137158	for k, v := range c.header_ {
137159		reqHeaders[k] = v
137160	}
137161	reqHeaders.Set("User-Agent", c.s.userAgent())
137162	var body io.Reader = nil
137163	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmapreference)
137164	if err != nil {
137165		return nil, err
137166	}
137167	reqHeaders.Set("Content-Type", "application/json")
137168	c.urlParams_.Set("alt", alt)
137169	c.urlParams_.Set("prettyPrint", "false")
137170	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}/setUrlMap")
137171	urls += "?" + c.urlParams_.Encode()
137172	req, err := http.NewRequest("POST", urls, body)
137173	if err != nil {
137174		return nil, err
137175	}
137176	req.Header = reqHeaders
137177	googleapi.Expand(req.URL, map[string]string{
137178		"project":          c.project,
137179		"region":           c.region,
137180		"targetHttpsProxy": c.targetHttpsProxy,
137181	})
137182	return gensupport.SendRequest(c.ctx_, c.s.client, req)
137183}
137184
137185// Do executes the "compute.regionTargetHttpsProxies.setUrlMap" call.
137186// Exactly one of *Operation or error will be non-nil. Any non-2xx
137187// status code is an error. Response headers are in either
137188// *Operation.ServerResponse.Header or (if a response was returned at
137189// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
137190// to check whether the returned error was because
137191// http.StatusNotModified was returned.
137192func (c *RegionTargetHttpsProxiesSetUrlMapCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
137193	gensupport.SetOptions(c.urlParams_, opts...)
137194	res, err := c.doRequest("json")
137195	if res != nil && res.StatusCode == http.StatusNotModified {
137196		if res.Body != nil {
137197			res.Body.Close()
137198		}
137199		return nil, &googleapi.Error{
137200			Code:   res.StatusCode,
137201			Header: res.Header,
137202		}
137203	}
137204	if err != nil {
137205		return nil, err
137206	}
137207	defer googleapi.CloseBody(res)
137208	if err := googleapi.CheckResponse(res); err != nil {
137209		return nil, err
137210	}
137211	ret := &Operation{
137212		ServerResponse: googleapi.ServerResponse{
137213			Header:         res.Header,
137214			HTTPStatusCode: res.StatusCode,
137215		},
137216	}
137217	target := &ret
137218	if err := gensupport.DecodeResponse(target, res); err != nil {
137219		return nil, err
137220	}
137221	return ret, nil
137222	// {
137223	//   "description": "Changes the URL map for TargetHttpsProxy. (== suppress_warning http-rest-shadowed ==)",
137224	//   "httpMethod": "POST",
137225	//   "id": "compute.regionTargetHttpsProxies.setUrlMap",
137226	//   "parameterOrder": [
137227	//     "project",
137228	//     "region",
137229	//     "targetHttpsProxy"
137230	//   ],
137231	//   "parameters": {
137232	//     "project": {
137233	//       "description": "Project ID for this request.",
137234	//       "location": "path",
137235	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
137236	//       "required": true,
137237	//       "type": "string"
137238	//     },
137239	//     "region": {
137240	//       "description": "Name of the region scoping this request.",
137241	//       "location": "path",
137242	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
137243	//       "required": true,
137244	//       "type": "string"
137245	//     },
137246	//     "requestId": {
137247	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
137248	//       "location": "query",
137249	//       "type": "string"
137250	//     },
137251	//     "targetHttpsProxy": {
137252	//       "description": "Name of the TargetHttpsProxy to set a URL map for.",
137253	//       "location": "path",
137254	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
137255	//       "required": true,
137256	//       "type": "string"
137257	//     }
137258	//   },
137259	//   "path": "{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}/setUrlMap",
137260	//   "request": {
137261	//     "$ref": "UrlMapReference"
137262	//   },
137263	//   "response": {
137264	//     "$ref": "Operation"
137265	//   },
137266	//   "scopes": [
137267	//     "https://www.googleapis.com/auth/cloud-platform",
137268	//     "https://www.googleapis.com/auth/compute"
137269	//   ]
137270	// }
137271
137272}
137273
137274// method id "compute.regionTargetHttpsProxies.testIamPermissions":
137275
137276type RegionTargetHttpsProxiesTestIamPermissionsCall struct {
137277	s                      *Service
137278	project                string
137279	region                 string
137280	resource               string
137281	testpermissionsrequest *TestPermissionsRequest
137282	urlParams_             gensupport.URLParams
137283	ctx_                   context.Context
137284	header_                http.Header
137285}
137286
137287// TestIamPermissions: Returns permissions that a caller has on the
137288// specified resource. (== suppress_warning http-rest-shadowed ==)
137289func (r *RegionTargetHttpsProxiesService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *RegionTargetHttpsProxiesTestIamPermissionsCall {
137290	c := &RegionTargetHttpsProxiesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
137291	c.project = project
137292	c.region = region
137293	c.resource = resource
137294	c.testpermissionsrequest = testpermissionsrequest
137295	return c
137296}
137297
137298// Fields allows partial responses to be retrieved. See
137299// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
137300// for more information.
137301func (c *RegionTargetHttpsProxiesTestIamPermissionsCall) Fields(s ...googleapi.Field) *RegionTargetHttpsProxiesTestIamPermissionsCall {
137302	c.urlParams_.Set("fields", googleapi.CombineFields(s))
137303	return c
137304}
137305
137306// Context sets the context to be used in this call's Do method. Any
137307// pending HTTP request will be aborted if the provided context is
137308// canceled.
137309func (c *RegionTargetHttpsProxiesTestIamPermissionsCall) Context(ctx context.Context) *RegionTargetHttpsProxiesTestIamPermissionsCall {
137310	c.ctx_ = ctx
137311	return c
137312}
137313
137314// Header returns an http.Header that can be modified by the caller to
137315// add HTTP headers to the request.
137316func (c *RegionTargetHttpsProxiesTestIamPermissionsCall) Header() http.Header {
137317	if c.header_ == nil {
137318		c.header_ = make(http.Header)
137319	}
137320	return c.header_
137321}
137322
137323func (c *RegionTargetHttpsProxiesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
137324	reqHeaders := make(http.Header)
137325	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
137326	for k, v := range c.header_ {
137327		reqHeaders[k] = v
137328	}
137329	reqHeaders.Set("User-Agent", c.s.userAgent())
137330	var body io.Reader = nil
137331	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
137332	if err != nil {
137333		return nil, err
137334	}
137335	reqHeaders.Set("Content-Type", "application/json")
137336	c.urlParams_.Set("alt", alt)
137337	c.urlParams_.Set("prettyPrint", "false")
137338	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetHttpsProxies/{resource}/testIamPermissions")
137339	urls += "?" + c.urlParams_.Encode()
137340	req, err := http.NewRequest("POST", urls, body)
137341	if err != nil {
137342		return nil, err
137343	}
137344	req.Header = reqHeaders
137345	googleapi.Expand(req.URL, map[string]string{
137346		"project":  c.project,
137347		"region":   c.region,
137348		"resource": c.resource,
137349	})
137350	return gensupport.SendRequest(c.ctx_, c.s.client, req)
137351}
137352
137353// Do executes the "compute.regionTargetHttpsProxies.testIamPermissions" call.
137354// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
137355// non-2xx status code is an error. Response headers are in either
137356// *TestPermissionsResponse.ServerResponse.Header or (if a response was
137357// returned at all) in error.(*googleapi.Error).Header. Use
137358// googleapi.IsNotModified to check whether the returned error was
137359// because http.StatusNotModified was returned.
137360func (c *RegionTargetHttpsProxiesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
137361	gensupport.SetOptions(c.urlParams_, opts...)
137362	res, err := c.doRequest("json")
137363	if res != nil && res.StatusCode == http.StatusNotModified {
137364		if res.Body != nil {
137365			res.Body.Close()
137366		}
137367		return nil, &googleapi.Error{
137368			Code:   res.StatusCode,
137369			Header: res.Header,
137370		}
137371	}
137372	if err != nil {
137373		return nil, err
137374	}
137375	defer googleapi.CloseBody(res)
137376	if err := googleapi.CheckResponse(res); err != nil {
137377		return nil, err
137378	}
137379	ret := &TestPermissionsResponse{
137380		ServerResponse: googleapi.ServerResponse{
137381			Header:         res.Header,
137382			HTTPStatusCode: res.StatusCode,
137383		},
137384	}
137385	target := &ret
137386	if err := gensupport.DecodeResponse(target, res); err != nil {
137387		return nil, err
137388	}
137389	return ret, nil
137390	// {
137391	//   "description": "Returns permissions that a caller has on the specified resource. (== suppress_warning http-rest-shadowed ==)",
137392	//   "httpMethod": "POST",
137393	//   "id": "compute.regionTargetHttpsProxies.testIamPermissions",
137394	//   "parameterOrder": [
137395	//     "project",
137396	//     "region",
137397	//     "resource"
137398	//   ],
137399	//   "parameters": {
137400	//     "project": {
137401	//       "description": "Project ID for this request.",
137402	//       "location": "path",
137403	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
137404	//       "required": true,
137405	//       "type": "string"
137406	//     },
137407	//     "region": {
137408	//       "description": "The name of the region for this request.",
137409	//       "location": "path",
137410	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
137411	//       "required": true,
137412	//       "type": "string"
137413	//     },
137414	//     "resource": {
137415	//       "description": "Name or id of the resource for this request.",
137416	//       "location": "path",
137417	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
137418	//       "required": true,
137419	//       "type": "string"
137420	//     }
137421	//   },
137422	//   "path": "{project}/regions/{region}/targetHttpsProxies/{resource}/testIamPermissions",
137423	//   "request": {
137424	//     "$ref": "TestPermissionsRequest"
137425	//   },
137426	//   "response": {
137427	//     "$ref": "TestPermissionsResponse"
137428	//   },
137429	//   "scopes": [
137430	//     "https://www.googleapis.com/auth/cloud-platform",
137431	//     "https://www.googleapis.com/auth/compute",
137432	//     "https://www.googleapis.com/auth/compute.readonly"
137433	//   ]
137434	// }
137435
137436}
137437
137438// method id "compute.regionUrlMaps.delete":
137439
137440type RegionUrlMapsDeleteCall struct {
137441	s          *Service
137442	project    string
137443	region     string
137444	urlMap     string
137445	urlParams_ gensupport.URLParams
137446	ctx_       context.Context
137447	header_    http.Header
137448}
137449
137450// Delete: Deletes the specified UrlMap resource. (== suppress_warning
137451// http-rest-shadowed ==)
137452func (r *RegionUrlMapsService) Delete(project string, region string, urlMap string) *RegionUrlMapsDeleteCall {
137453	c := &RegionUrlMapsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
137454	c.project = project
137455	c.region = region
137456	c.urlMap = urlMap
137457	return c
137458}
137459
137460// RequestId sets the optional parameter "requestId": begin_interface:
137461// MixerMutationRequestBuilder Request ID to support idempotency.
137462func (c *RegionUrlMapsDeleteCall) RequestId(requestId string) *RegionUrlMapsDeleteCall {
137463	c.urlParams_.Set("requestId", requestId)
137464	return c
137465}
137466
137467// Fields allows partial responses to be retrieved. See
137468// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
137469// for more information.
137470func (c *RegionUrlMapsDeleteCall) Fields(s ...googleapi.Field) *RegionUrlMapsDeleteCall {
137471	c.urlParams_.Set("fields", googleapi.CombineFields(s))
137472	return c
137473}
137474
137475// Context sets the context to be used in this call's Do method. Any
137476// pending HTTP request will be aborted if the provided context is
137477// canceled.
137478func (c *RegionUrlMapsDeleteCall) Context(ctx context.Context) *RegionUrlMapsDeleteCall {
137479	c.ctx_ = ctx
137480	return c
137481}
137482
137483// Header returns an http.Header that can be modified by the caller to
137484// add HTTP headers to the request.
137485func (c *RegionUrlMapsDeleteCall) Header() http.Header {
137486	if c.header_ == nil {
137487		c.header_ = make(http.Header)
137488	}
137489	return c.header_
137490}
137491
137492func (c *RegionUrlMapsDeleteCall) doRequest(alt string) (*http.Response, error) {
137493	reqHeaders := make(http.Header)
137494	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
137495	for k, v := range c.header_ {
137496		reqHeaders[k] = v
137497	}
137498	reqHeaders.Set("User-Agent", c.s.userAgent())
137499	var body io.Reader = nil
137500	c.urlParams_.Set("alt", alt)
137501	c.urlParams_.Set("prettyPrint", "false")
137502	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/urlMaps/{urlMap}")
137503	urls += "?" + c.urlParams_.Encode()
137504	req, err := http.NewRequest("DELETE", urls, body)
137505	if err != nil {
137506		return nil, err
137507	}
137508	req.Header = reqHeaders
137509	googleapi.Expand(req.URL, map[string]string{
137510		"project": c.project,
137511		"region":  c.region,
137512		"urlMap":  c.urlMap,
137513	})
137514	return gensupport.SendRequest(c.ctx_, c.s.client, req)
137515}
137516
137517// Do executes the "compute.regionUrlMaps.delete" call.
137518// Exactly one of *Operation or error will be non-nil. Any non-2xx
137519// status code is an error. Response headers are in either
137520// *Operation.ServerResponse.Header or (if a response was returned at
137521// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
137522// to check whether the returned error was because
137523// http.StatusNotModified was returned.
137524func (c *RegionUrlMapsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
137525	gensupport.SetOptions(c.urlParams_, opts...)
137526	res, err := c.doRequest("json")
137527	if res != nil && res.StatusCode == http.StatusNotModified {
137528		if res.Body != nil {
137529			res.Body.Close()
137530		}
137531		return nil, &googleapi.Error{
137532			Code:   res.StatusCode,
137533			Header: res.Header,
137534		}
137535	}
137536	if err != nil {
137537		return nil, err
137538	}
137539	defer googleapi.CloseBody(res)
137540	if err := googleapi.CheckResponse(res); err != nil {
137541		return nil, err
137542	}
137543	ret := &Operation{
137544		ServerResponse: googleapi.ServerResponse{
137545			Header:         res.Header,
137546			HTTPStatusCode: res.StatusCode,
137547		},
137548	}
137549	target := &ret
137550	if err := gensupport.DecodeResponse(target, res); err != nil {
137551		return nil, err
137552	}
137553	return ret, nil
137554	// {
137555	//   "description": "Deletes the specified UrlMap resource. (== suppress_warning http-rest-shadowed ==)",
137556	//   "httpMethod": "DELETE",
137557	//   "id": "compute.regionUrlMaps.delete",
137558	//   "parameterOrder": [
137559	//     "project",
137560	//     "region",
137561	//     "urlMap"
137562	//   ],
137563	//   "parameters": {
137564	//     "project": {
137565	//       "description": "Project ID for this request.",
137566	//       "location": "path",
137567	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
137568	//       "required": true,
137569	//       "type": "string"
137570	//     },
137571	//     "region": {
137572	//       "description": "Name of the region scoping this request.",
137573	//       "location": "path",
137574	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
137575	//       "required": true,
137576	//       "type": "string"
137577	//     },
137578	//     "requestId": {
137579	//       "description": "begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.",
137580	//       "location": "query",
137581	//       "type": "string"
137582	//     },
137583	//     "urlMap": {
137584	//       "description": "Name of the UrlMap resource to delete.",
137585	//       "location": "path",
137586	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
137587	//       "required": true,
137588	//       "type": "string"
137589	//     }
137590	//   },
137591	//   "path": "{project}/regions/{region}/urlMaps/{urlMap}",
137592	//   "response": {
137593	//     "$ref": "Operation"
137594	//   },
137595	//   "scopes": [
137596	//     "https://www.googleapis.com/auth/cloud-platform",
137597	//     "https://www.googleapis.com/auth/compute"
137598	//   ]
137599	// }
137600
137601}
137602
137603// method id "compute.regionUrlMaps.get":
137604
137605type RegionUrlMapsGetCall struct {
137606	s            *Service
137607	project      string
137608	region       string
137609	urlMap       string
137610	urlParams_   gensupport.URLParams
137611	ifNoneMatch_ string
137612	ctx_         context.Context
137613	header_      http.Header
137614}
137615
137616// Get: Returns the specified UrlMap resource. Gets a list of available
137617// URL maps by making a list() request. (== suppress_warning
137618// http-rest-shadowed ==)
137619func (r *RegionUrlMapsService) Get(project string, region string, urlMap string) *RegionUrlMapsGetCall {
137620	c := &RegionUrlMapsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
137621	c.project = project
137622	c.region = region
137623	c.urlMap = urlMap
137624	return c
137625}
137626
137627// Fields allows partial responses to be retrieved. See
137628// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
137629// for more information.
137630func (c *RegionUrlMapsGetCall) Fields(s ...googleapi.Field) *RegionUrlMapsGetCall {
137631	c.urlParams_.Set("fields", googleapi.CombineFields(s))
137632	return c
137633}
137634
137635// IfNoneMatch sets the optional parameter which makes the operation
137636// fail if the object's ETag matches the given value. This is useful for
137637// getting updates only after the object has changed since the last
137638// request. Use googleapi.IsNotModified to check whether the response
137639// error from Do is the result of In-None-Match.
137640func (c *RegionUrlMapsGetCall) IfNoneMatch(entityTag string) *RegionUrlMapsGetCall {
137641	c.ifNoneMatch_ = entityTag
137642	return c
137643}
137644
137645// Context sets the context to be used in this call's Do method. Any
137646// pending HTTP request will be aborted if the provided context is
137647// canceled.
137648func (c *RegionUrlMapsGetCall) Context(ctx context.Context) *RegionUrlMapsGetCall {
137649	c.ctx_ = ctx
137650	return c
137651}
137652
137653// Header returns an http.Header that can be modified by the caller to
137654// add HTTP headers to the request.
137655func (c *RegionUrlMapsGetCall) Header() http.Header {
137656	if c.header_ == nil {
137657		c.header_ = make(http.Header)
137658	}
137659	return c.header_
137660}
137661
137662func (c *RegionUrlMapsGetCall) doRequest(alt string) (*http.Response, error) {
137663	reqHeaders := make(http.Header)
137664	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
137665	for k, v := range c.header_ {
137666		reqHeaders[k] = v
137667	}
137668	reqHeaders.Set("User-Agent", c.s.userAgent())
137669	if c.ifNoneMatch_ != "" {
137670		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
137671	}
137672	var body io.Reader = nil
137673	c.urlParams_.Set("alt", alt)
137674	c.urlParams_.Set("prettyPrint", "false")
137675	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/urlMaps/{urlMap}")
137676	urls += "?" + c.urlParams_.Encode()
137677	req, err := http.NewRequest("GET", urls, body)
137678	if err != nil {
137679		return nil, err
137680	}
137681	req.Header = reqHeaders
137682	googleapi.Expand(req.URL, map[string]string{
137683		"project": c.project,
137684		"region":  c.region,
137685		"urlMap":  c.urlMap,
137686	})
137687	return gensupport.SendRequest(c.ctx_, c.s.client, req)
137688}
137689
137690// Do executes the "compute.regionUrlMaps.get" call.
137691// Exactly one of *UrlMap or error will be non-nil. Any non-2xx status
137692// code is an error. Response headers are in either
137693// *UrlMap.ServerResponse.Header or (if a response was returned at all)
137694// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
137695// check whether the returned error was because http.StatusNotModified
137696// was returned.
137697func (c *RegionUrlMapsGetCall) Do(opts ...googleapi.CallOption) (*UrlMap, error) {
137698	gensupport.SetOptions(c.urlParams_, opts...)
137699	res, err := c.doRequest("json")
137700	if res != nil && res.StatusCode == http.StatusNotModified {
137701		if res.Body != nil {
137702			res.Body.Close()
137703		}
137704		return nil, &googleapi.Error{
137705			Code:   res.StatusCode,
137706			Header: res.Header,
137707		}
137708	}
137709	if err != nil {
137710		return nil, err
137711	}
137712	defer googleapi.CloseBody(res)
137713	if err := googleapi.CheckResponse(res); err != nil {
137714		return nil, err
137715	}
137716	ret := &UrlMap{
137717		ServerResponse: googleapi.ServerResponse{
137718			Header:         res.Header,
137719			HTTPStatusCode: res.StatusCode,
137720		},
137721	}
137722	target := &ret
137723	if err := gensupport.DecodeResponse(target, res); err != nil {
137724		return nil, err
137725	}
137726	return ret, nil
137727	// {
137728	//   "description": "Returns the specified UrlMap resource. Gets a list of available URL maps by making a list() request. (== suppress_warning http-rest-shadowed ==)",
137729	//   "httpMethod": "GET",
137730	//   "id": "compute.regionUrlMaps.get",
137731	//   "parameterOrder": [
137732	//     "project",
137733	//     "region",
137734	//     "urlMap"
137735	//   ],
137736	//   "parameters": {
137737	//     "project": {
137738	//       "description": "Project ID for this request.",
137739	//       "location": "path",
137740	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
137741	//       "required": true,
137742	//       "type": "string"
137743	//     },
137744	//     "region": {
137745	//       "description": "Name of the region scoping this request.",
137746	//       "location": "path",
137747	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
137748	//       "required": true,
137749	//       "type": "string"
137750	//     },
137751	//     "urlMap": {
137752	//       "description": "Name of the UrlMap resource to return.",
137753	//       "location": "path",
137754	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
137755	//       "required": true,
137756	//       "type": "string"
137757	//     }
137758	//   },
137759	//   "path": "{project}/regions/{region}/urlMaps/{urlMap}",
137760	//   "response": {
137761	//     "$ref": "UrlMap"
137762	//   },
137763	//   "scopes": [
137764	//     "https://www.googleapis.com/auth/cloud-platform",
137765	//     "https://www.googleapis.com/auth/compute",
137766	//     "https://www.googleapis.com/auth/compute.readonly"
137767	//   ]
137768	// }
137769
137770}
137771
137772// method id "compute.regionUrlMaps.insert":
137773
137774type RegionUrlMapsInsertCall struct {
137775	s          *Service
137776	project    string
137777	region     string
137778	urlmap     *UrlMap
137779	urlParams_ gensupport.URLParams
137780	ctx_       context.Context
137781	header_    http.Header
137782}
137783
137784// Insert: Creates a UrlMap resource in the specified project using the
137785// data included in the request. (== suppress_warning http-rest-shadowed
137786// ==)
137787func (r *RegionUrlMapsService) Insert(project string, region string, urlmap *UrlMap) *RegionUrlMapsInsertCall {
137788	c := &RegionUrlMapsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
137789	c.project = project
137790	c.region = region
137791	c.urlmap = urlmap
137792	return c
137793}
137794
137795// RequestId sets the optional parameter "requestId": begin_interface:
137796// MixerMutationRequestBuilder Request ID to support idempotency.
137797func (c *RegionUrlMapsInsertCall) RequestId(requestId string) *RegionUrlMapsInsertCall {
137798	c.urlParams_.Set("requestId", requestId)
137799	return c
137800}
137801
137802// Fields allows partial responses to be retrieved. See
137803// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
137804// for more information.
137805func (c *RegionUrlMapsInsertCall) Fields(s ...googleapi.Field) *RegionUrlMapsInsertCall {
137806	c.urlParams_.Set("fields", googleapi.CombineFields(s))
137807	return c
137808}
137809
137810// Context sets the context to be used in this call's Do method. Any
137811// pending HTTP request will be aborted if the provided context is
137812// canceled.
137813func (c *RegionUrlMapsInsertCall) Context(ctx context.Context) *RegionUrlMapsInsertCall {
137814	c.ctx_ = ctx
137815	return c
137816}
137817
137818// Header returns an http.Header that can be modified by the caller to
137819// add HTTP headers to the request.
137820func (c *RegionUrlMapsInsertCall) Header() http.Header {
137821	if c.header_ == nil {
137822		c.header_ = make(http.Header)
137823	}
137824	return c.header_
137825}
137826
137827func (c *RegionUrlMapsInsertCall) doRequest(alt string) (*http.Response, error) {
137828	reqHeaders := make(http.Header)
137829	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
137830	for k, v := range c.header_ {
137831		reqHeaders[k] = v
137832	}
137833	reqHeaders.Set("User-Agent", c.s.userAgent())
137834	var body io.Reader = nil
137835	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmap)
137836	if err != nil {
137837		return nil, err
137838	}
137839	reqHeaders.Set("Content-Type", "application/json")
137840	c.urlParams_.Set("alt", alt)
137841	c.urlParams_.Set("prettyPrint", "false")
137842	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/urlMaps")
137843	urls += "?" + c.urlParams_.Encode()
137844	req, err := http.NewRequest("POST", urls, body)
137845	if err != nil {
137846		return nil, err
137847	}
137848	req.Header = reqHeaders
137849	googleapi.Expand(req.URL, map[string]string{
137850		"project": c.project,
137851		"region":  c.region,
137852	})
137853	return gensupport.SendRequest(c.ctx_, c.s.client, req)
137854}
137855
137856// Do executes the "compute.regionUrlMaps.insert" call.
137857// Exactly one of *Operation or error will be non-nil. Any non-2xx
137858// status code is an error. Response headers are in either
137859// *Operation.ServerResponse.Header or (if a response was returned at
137860// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
137861// to check whether the returned error was because
137862// http.StatusNotModified was returned.
137863func (c *RegionUrlMapsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
137864	gensupport.SetOptions(c.urlParams_, opts...)
137865	res, err := c.doRequest("json")
137866	if res != nil && res.StatusCode == http.StatusNotModified {
137867		if res.Body != nil {
137868			res.Body.Close()
137869		}
137870		return nil, &googleapi.Error{
137871			Code:   res.StatusCode,
137872			Header: res.Header,
137873		}
137874	}
137875	if err != nil {
137876		return nil, err
137877	}
137878	defer googleapi.CloseBody(res)
137879	if err := googleapi.CheckResponse(res); err != nil {
137880		return nil, err
137881	}
137882	ret := &Operation{
137883		ServerResponse: googleapi.ServerResponse{
137884			Header:         res.Header,
137885			HTTPStatusCode: res.StatusCode,
137886		},
137887	}
137888	target := &ret
137889	if err := gensupport.DecodeResponse(target, res); err != nil {
137890		return nil, err
137891	}
137892	return ret, nil
137893	// {
137894	//   "description": "Creates a UrlMap resource in the specified project using the data included in the request. (== suppress_warning http-rest-shadowed ==)",
137895	//   "httpMethod": "POST",
137896	//   "id": "compute.regionUrlMaps.insert",
137897	//   "parameterOrder": [
137898	//     "project",
137899	//     "region"
137900	//   ],
137901	//   "parameters": {
137902	//     "project": {
137903	//       "description": "Project ID for this request.",
137904	//       "location": "path",
137905	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
137906	//       "required": true,
137907	//       "type": "string"
137908	//     },
137909	//     "region": {
137910	//       "description": "Name of the region scoping this request.",
137911	//       "location": "path",
137912	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
137913	//       "required": true,
137914	//       "type": "string"
137915	//     },
137916	//     "requestId": {
137917	//       "description": "begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.",
137918	//       "location": "query",
137919	//       "type": "string"
137920	//     }
137921	//   },
137922	//   "path": "{project}/regions/{region}/urlMaps",
137923	//   "request": {
137924	//     "$ref": "UrlMap"
137925	//   },
137926	//   "response": {
137927	//     "$ref": "Operation"
137928	//   },
137929	//   "scopes": [
137930	//     "https://www.googleapis.com/auth/cloud-platform",
137931	//     "https://www.googleapis.com/auth/compute"
137932	//   ]
137933	// }
137934
137935}
137936
137937// method id "compute.regionUrlMaps.invalidateCache":
137938
137939type RegionUrlMapsInvalidateCacheCall struct {
137940	s                     *Service
137941	project               string
137942	region                string
137943	urlMap                string
137944	cacheinvalidationrule *CacheInvalidationRule
137945	urlParams_            gensupport.URLParams
137946	ctx_                  context.Context
137947	header_               http.Header
137948}
137949
137950// InvalidateCache: Initiates a cache invalidation operation,
137951// invalidating the specified path, scoped to the specified UrlMap. (==
137952// suppress_warning http-rest-shadowed ==)
137953func (r *RegionUrlMapsService) InvalidateCache(project string, region string, urlMap string, cacheinvalidationrule *CacheInvalidationRule) *RegionUrlMapsInvalidateCacheCall {
137954	c := &RegionUrlMapsInvalidateCacheCall{s: r.s, urlParams_: make(gensupport.URLParams)}
137955	c.project = project
137956	c.region = region
137957	c.urlMap = urlMap
137958	c.cacheinvalidationrule = cacheinvalidationrule
137959	return c
137960}
137961
137962// RequestId sets the optional parameter "requestId": begin_interface:
137963// MixerMutationRequestBuilder Request ID to support idempotency.
137964func (c *RegionUrlMapsInvalidateCacheCall) RequestId(requestId string) *RegionUrlMapsInvalidateCacheCall {
137965	c.urlParams_.Set("requestId", requestId)
137966	return c
137967}
137968
137969// Fields allows partial responses to be retrieved. See
137970// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
137971// for more information.
137972func (c *RegionUrlMapsInvalidateCacheCall) Fields(s ...googleapi.Field) *RegionUrlMapsInvalidateCacheCall {
137973	c.urlParams_.Set("fields", googleapi.CombineFields(s))
137974	return c
137975}
137976
137977// Context sets the context to be used in this call's Do method. Any
137978// pending HTTP request will be aborted if the provided context is
137979// canceled.
137980func (c *RegionUrlMapsInvalidateCacheCall) Context(ctx context.Context) *RegionUrlMapsInvalidateCacheCall {
137981	c.ctx_ = ctx
137982	return c
137983}
137984
137985// Header returns an http.Header that can be modified by the caller to
137986// add HTTP headers to the request.
137987func (c *RegionUrlMapsInvalidateCacheCall) Header() http.Header {
137988	if c.header_ == nil {
137989		c.header_ = make(http.Header)
137990	}
137991	return c.header_
137992}
137993
137994func (c *RegionUrlMapsInvalidateCacheCall) doRequest(alt string) (*http.Response, error) {
137995	reqHeaders := make(http.Header)
137996	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
137997	for k, v := range c.header_ {
137998		reqHeaders[k] = v
137999	}
138000	reqHeaders.Set("User-Agent", c.s.userAgent())
138001	var body io.Reader = nil
138002	body, err := googleapi.WithoutDataWrapper.JSONReader(c.cacheinvalidationrule)
138003	if err != nil {
138004		return nil, err
138005	}
138006	reqHeaders.Set("Content-Type", "application/json")
138007	c.urlParams_.Set("alt", alt)
138008	c.urlParams_.Set("prettyPrint", "false")
138009	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/urlMaps/{urlMap}/invalidateCache")
138010	urls += "?" + c.urlParams_.Encode()
138011	req, err := http.NewRequest("POST", urls, body)
138012	if err != nil {
138013		return nil, err
138014	}
138015	req.Header = reqHeaders
138016	googleapi.Expand(req.URL, map[string]string{
138017		"project": c.project,
138018		"region":  c.region,
138019		"urlMap":  c.urlMap,
138020	})
138021	return gensupport.SendRequest(c.ctx_, c.s.client, req)
138022}
138023
138024// Do executes the "compute.regionUrlMaps.invalidateCache" call.
138025// Exactly one of *Operation or error will be non-nil. Any non-2xx
138026// status code is an error. Response headers are in either
138027// *Operation.ServerResponse.Header or (if a response was returned at
138028// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
138029// to check whether the returned error was because
138030// http.StatusNotModified was returned.
138031func (c *RegionUrlMapsInvalidateCacheCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
138032	gensupport.SetOptions(c.urlParams_, opts...)
138033	res, err := c.doRequest("json")
138034	if res != nil && res.StatusCode == http.StatusNotModified {
138035		if res.Body != nil {
138036			res.Body.Close()
138037		}
138038		return nil, &googleapi.Error{
138039			Code:   res.StatusCode,
138040			Header: res.Header,
138041		}
138042	}
138043	if err != nil {
138044		return nil, err
138045	}
138046	defer googleapi.CloseBody(res)
138047	if err := googleapi.CheckResponse(res); err != nil {
138048		return nil, err
138049	}
138050	ret := &Operation{
138051		ServerResponse: googleapi.ServerResponse{
138052			Header:         res.Header,
138053			HTTPStatusCode: res.StatusCode,
138054		},
138055	}
138056	target := &ret
138057	if err := gensupport.DecodeResponse(target, res); err != nil {
138058		return nil, err
138059	}
138060	return ret, nil
138061	// {
138062	//   "description": "Initiates a cache invalidation operation, invalidating the specified path, scoped to the specified UrlMap. (== suppress_warning http-rest-shadowed ==)",
138063	//   "httpMethod": "POST",
138064	//   "id": "compute.regionUrlMaps.invalidateCache",
138065	//   "parameterOrder": [
138066	//     "project",
138067	//     "region",
138068	//     "urlMap"
138069	//   ],
138070	//   "parameters": {
138071	//     "project": {
138072	//       "description": "Project ID for this request.",
138073	//       "location": "path",
138074	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
138075	//       "required": true,
138076	//       "type": "string"
138077	//     },
138078	//     "region": {
138079	//       "description": "Name of the region scoping this request.",
138080	//       "location": "path",
138081	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
138082	//       "required": true,
138083	//       "type": "string"
138084	//     },
138085	//     "requestId": {
138086	//       "description": "begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.",
138087	//       "location": "query",
138088	//       "type": "string"
138089	//     },
138090	//     "urlMap": {
138091	//       "description": "Name of the UrlMap scoping this request.",
138092	//       "location": "path",
138093	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
138094	//       "required": true,
138095	//       "type": "string"
138096	//     }
138097	//   },
138098	//   "path": "{project}/regions/{region}/urlMaps/{urlMap}/invalidateCache",
138099	//   "request": {
138100	//     "$ref": "CacheInvalidationRule"
138101	//   },
138102	//   "response": {
138103	//     "$ref": "Operation"
138104	//   },
138105	//   "scopes": [
138106	//     "https://www.googleapis.com/auth/cloud-platform",
138107	//     "https://www.googleapis.com/auth/compute"
138108	//   ]
138109	// }
138110
138111}
138112
138113// method id "compute.regionUrlMaps.list":
138114
138115type RegionUrlMapsListCall struct {
138116	s            *Service
138117	project      string
138118	region       string
138119	urlParams_   gensupport.URLParams
138120	ifNoneMatch_ string
138121	ctx_         context.Context
138122	header_      http.Header
138123}
138124
138125// List: Retrieves the list of UrlMap resources available to the
138126// specified project in the specified region. (== suppress_warning
138127// http-rest-shadowed ==)
138128func (r *RegionUrlMapsService) List(project string, region string) *RegionUrlMapsListCall {
138129	c := &RegionUrlMapsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
138130	c.project = project
138131	c.region = region
138132	return c
138133}
138134
138135// Filter sets the optional parameter "filter": A filter expression that
138136// filters resources listed in the response. The expression must specify
138137// the field name, a comparison operator, and the value that you want to
138138// use for filtering. The value must be a string, a number, or a
138139// boolean. The comparison operator must be either =, !=, >, or <.
138140//
138141// For example, if you are filtering Compute Engine instances, you can
138142// exclude instances named example-instance by specifying name !=
138143// example-instance.
138144//
138145// You can also filter nested fields. For example, you could specify
138146// scheduling.automaticRestart = false to include instances only if they
138147// are not scheduled for automatic restarts. You can use filtering on
138148// nested fields to filter based on resource labels.
138149//
138150// To filter on multiple expressions, provide each separate expression
138151// within parentheses. For example, (scheduling.automaticRestart = true)
138152// (cpuPlatform = "Intel Skylake"). By default, each expression is an
138153// AND expression. However, you can include AND and OR expressions
138154// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
138155// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
138156// true).
138157func (c *RegionUrlMapsListCall) Filter(filter string) *RegionUrlMapsListCall {
138158	c.urlParams_.Set("filter", filter)
138159	return c
138160}
138161
138162// MaxResults sets the optional parameter "maxResults": The maximum
138163// number of results per page that should be returned. If the number of
138164// available results is larger than maxResults, Compute Engine returns a
138165// nextPageToken that can be used to get the next page of results in
138166// subsequent list requests. Acceptable values are 0 to 500, inclusive.
138167// (Default: 500)
138168func (c *RegionUrlMapsListCall) MaxResults(maxResults int64) *RegionUrlMapsListCall {
138169	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
138170	return c
138171}
138172
138173// OrderBy sets the optional parameter "orderBy": Sorts list results by
138174// a certain order. By default, results are returned in alphanumerical
138175// order based on the resource name.
138176//
138177// You can also sort results in descending order based on the creation
138178// timestamp using orderBy="creationTimestamp desc". This sorts results
138179// based on the creationTimestamp field in reverse chronological order
138180// (newest result first). Use this to sort resources like operations so
138181// that the newest operation is returned first.
138182//
138183// Currently, only sorting by name or creationTimestamp desc is
138184// supported.
138185func (c *RegionUrlMapsListCall) OrderBy(orderBy string) *RegionUrlMapsListCall {
138186	c.urlParams_.Set("orderBy", orderBy)
138187	return c
138188}
138189
138190// PageToken sets the optional parameter "pageToken": Specifies a page
138191// token to use. Set pageToken to the nextPageToken returned by a
138192// previous list request to get the next page of results.
138193func (c *RegionUrlMapsListCall) PageToken(pageToken string) *RegionUrlMapsListCall {
138194	c.urlParams_.Set("pageToken", pageToken)
138195	return c
138196}
138197
138198// Fields allows partial responses to be retrieved. See
138199// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
138200// for more information.
138201func (c *RegionUrlMapsListCall) Fields(s ...googleapi.Field) *RegionUrlMapsListCall {
138202	c.urlParams_.Set("fields", googleapi.CombineFields(s))
138203	return c
138204}
138205
138206// IfNoneMatch sets the optional parameter which makes the operation
138207// fail if the object's ETag matches the given value. This is useful for
138208// getting updates only after the object has changed since the last
138209// request. Use googleapi.IsNotModified to check whether the response
138210// error from Do is the result of In-None-Match.
138211func (c *RegionUrlMapsListCall) IfNoneMatch(entityTag string) *RegionUrlMapsListCall {
138212	c.ifNoneMatch_ = entityTag
138213	return c
138214}
138215
138216// Context sets the context to be used in this call's Do method. Any
138217// pending HTTP request will be aborted if the provided context is
138218// canceled.
138219func (c *RegionUrlMapsListCall) Context(ctx context.Context) *RegionUrlMapsListCall {
138220	c.ctx_ = ctx
138221	return c
138222}
138223
138224// Header returns an http.Header that can be modified by the caller to
138225// add HTTP headers to the request.
138226func (c *RegionUrlMapsListCall) Header() http.Header {
138227	if c.header_ == nil {
138228		c.header_ = make(http.Header)
138229	}
138230	return c.header_
138231}
138232
138233func (c *RegionUrlMapsListCall) doRequest(alt string) (*http.Response, error) {
138234	reqHeaders := make(http.Header)
138235	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
138236	for k, v := range c.header_ {
138237		reqHeaders[k] = v
138238	}
138239	reqHeaders.Set("User-Agent", c.s.userAgent())
138240	if c.ifNoneMatch_ != "" {
138241		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
138242	}
138243	var body io.Reader = nil
138244	c.urlParams_.Set("alt", alt)
138245	c.urlParams_.Set("prettyPrint", "false")
138246	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/urlMaps")
138247	urls += "?" + c.urlParams_.Encode()
138248	req, err := http.NewRequest("GET", urls, body)
138249	if err != nil {
138250		return nil, err
138251	}
138252	req.Header = reqHeaders
138253	googleapi.Expand(req.URL, map[string]string{
138254		"project": c.project,
138255		"region":  c.region,
138256	})
138257	return gensupport.SendRequest(c.ctx_, c.s.client, req)
138258}
138259
138260// Do executes the "compute.regionUrlMaps.list" call.
138261// Exactly one of *UrlMapList or error will be non-nil. Any non-2xx
138262// status code is an error. Response headers are in either
138263// *UrlMapList.ServerResponse.Header or (if a response was returned at
138264// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
138265// to check whether the returned error was because
138266// http.StatusNotModified was returned.
138267func (c *RegionUrlMapsListCall) Do(opts ...googleapi.CallOption) (*UrlMapList, error) {
138268	gensupport.SetOptions(c.urlParams_, opts...)
138269	res, err := c.doRequest("json")
138270	if res != nil && res.StatusCode == http.StatusNotModified {
138271		if res.Body != nil {
138272			res.Body.Close()
138273		}
138274		return nil, &googleapi.Error{
138275			Code:   res.StatusCode,
138276			Header: res.Header,
138277		}
138278	}
138279	if err != nil {
138280		return nil, err
138281	}
138282	defer googleapi.CloseBody(res)
138283	if err := googleapi.CheckResponse(res); err != nil {
138284		return nil, err
138285	}
138286	ret := &UrlMapList{
138287		ServerResponse: googleapi.ServerResponse{
138288			Header:         res.Header,
138289			HTTPStatusCode: res.StatusCode,
138290		},
138291	}
138292	target := &ret
138293	if err := gensupport.DecodeResponse(target, res); err != nil {
138294		return nil, err
138295	}
138296	return ret, nil
138297	// {
138298	//   "description": "Retrieves the list of UrlMap resources available to the specified project in the specified region. (== suppress_warning http-rest-shadowed ==)",
138299	//   "httpMethod": "GET",
138300	//   "id": "compute.regionUrlMaps.list",
138301	//   "parameterOrder": [
138302	//     "project",
138303	//     "region"
138304	//   ],
138305	//   "parameters": {
138306	//     "filter": {
138307	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
138308	//       "location": "query",
138309	//       "type": "string"
138310	//     },
138311	//     "maxResults": {
138312	//       "default": "500",
138313	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
138314	//       "format": "uint32",
138315	//       "location": "query",
138316	//       "minimum": "0",
138317	//       "type": "integer"
138318	//     },
138319	//     "orderBy": {
138320	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
138321	//       "location": "query",
138322	//       "type": "string"
138323	//     },
138324	//     "pageToken": {
138325	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
138326	//       "location": "query",
138327	//       "type": "string"
138328	//     },
138329	//     "project": {
138330	//       "description": "Project ID for this request.",
138331	//       "location": "path",
138332	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
138333	//       "required": true,
138334	//       "type": "string"
138335	//     },
138336	//     "region": {
138337	//       "description": "Name of the region scoping this request.",
138338	//       "location": "path",
138339	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
138340	//       "required": true,
138341	//       "type": "string"
138342	//     }
138343	//   },
138344	//   "path": "{project}/regions/{region}/urlMaps",
138345	//   "response": {
138346	//     "$ref": "UrlMapList"
138347	//   },
138348	//   "scopes": [
138349	//     "https://www.googleapis.com/auth/cloud-platform",
138350	//     "https://www.googleapis.com/auth/compute",
138351	//     "https://www.googleapis.com/auth/compute.readonly"
138352	//   ]
138353	// }
138354
138355}
138356
138357// Pages invokes f for each page of results.
138358// A non-nil error returned from f will halt the iteration.
138359// The provided context supersedes any context provided to the Context method.
138360func (c *RegionUrlMapsListCall) Pages(ctx context.Context, f func(*UrlMapList) error) error {
138361	c.ctx_ = ctx
138362	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
138363	for {
138364		x, err := c.Do()
138365		if err != nil {
138366			return err
138367		}
138368		if err := f(x); err != nil {
138369			return err
138370		}
138371		if x.NextPageToken == "" {
138372			return nil
138373		}
138374		c.PageToken(x.NextPageToken)
138375	}
138376}
138377
138378// method id "compute.regionUrlMaps.patch":
138379
138380type RegionUrlMapsPatchCall struct {
138381	s          *Service
138382	project    string
138383	region     string
138384	urlMap     string
138385	urlmap     *UrlMap
138386	urlParams_ gensupport.URLParams
138387	ctx_       context.Context
138388	header_    http.Header
138389}
138390
138391// Patch: Patches the specified UrlMap resource with the data included
138392// in the request. This method supports PATCH semantics and uses JSON
138393// merge patch format and processing rules. (== suppress_warning
138394// http-rest-shadowed ==)
138395func (r *RegionUrlMapsService) Patch(project string, region string, urlMap string, urlmap *UrlMap) *RegionUrlMapsPatchCall {
138396	c := &RegionUrlMapsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
138397	c.project = project
138398	c.region = region
138399	c.urlMap = urlMap
138400	c.urlmap = urlmap
138401	return c
138402}
138403
138404// RequestId sets the optional parameter "requestId": begin_interface:
138405// MixerMutationRequestBuilder Request ID to support idempotency.
138406func (c *RegionUrlMapsPatchCall) RequestId(requestId string) *RegionUrlMapsPatchCall {
138407	c.urlParams_.Set("requestId", requestId)
138408	return c
138409}
138410
138411// Fields allows partial responses to be retrieved. See
138412// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
138413// for more information.
138414func (c *RegionUrlMapsPatchCall) Fields(s ...googleapi.Field) *RegionUrlMapsPatchCall {
138415	c.urlParams_.Set("fields", googleapi.CombineFields(s))
138416	return c
138417}
138418
138419// Context sets the context to be used in this call's Do method. Any
138420// pending HTTP request will be aborted if the provided context is
138421// canceled.
138422func (c *RegionUrlMapsPatchCall) Context(ctx context.Context) *RegionUrlMapsPatchCall {
138423	c.ctx_ = ctx
138424	return c
138425}
138426
138427// Header returns an http.Header that can be modified by the caller to
138428// add HTTP headers to the request.
138429func (c *RegionUrlMapsPatchCall) Header() http.Header {
138430	if c.header_ == nil {
138431		c.header_ = make(http.Header)
138432	}
138433	return c.header_
138434}
138435
138436func (c *RegionUrlMapsPatchCall) doRequest(alt string) (*http.Response, error) {
138437	reqHeaders := make(http.Header)
138438	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
138439	for k, v := range c.header_ {
138440		reqHeaders[k] = v
138441	}
138442	reqHeaders.Set("User-Agent", c.s.userAgent())
138443	var body io.Reader = nil
138444	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmap)
138445	if err != nil {
138446		return nil, err
138447	}
138448	reqHeaders.Set("Content-Type", "application/json")
138449	c.urlParams_.Set("alt", alt)
138450	c.urlParams_.Set("prettyPrint", "false")
138451	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/urlMaps/{urlMap}")
138452	urls += "?" + c.urlParams_.Encode()
138453	req, err := http.NewRequest("PATCH", urls, body)
138454	if err != nil {
138455		return nil, err
138456	}
138457	req.Header = reqHeaders
138458	googleapi.Expand(req.URL, map[string]string{
138459		"project": c.project,
138460		"region":  c.region,
138461		"urlMap":  c.urlMap,
138462	})
138463	return gensupport.SendRequest(c.ctx_, c.s.client, req)
138464}
138465
138466// Do executes the "compute.regionUrlMaps.patch" call.
138467// Exactly one of *Operation or error will be non-nil. Any non-2xx
138468// status code is an error. Response headers are in either
138469// *Operation.ServerResponse.Header or (if a response was returned at
138470// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
138471// to check whether the returned error was because
138472// http.StatusNotModified was returned.
138473func (c *RegionUrlMapsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
138474	gensupport.SetOptions(c.urlParams_, opts...)
138475	res, err := c.doRequest("json")
138476	if res != nil && res.StatusCode == http.StatusNotModified {
138477		if res.Body != nil {
138478			res.Body.Close()
138479		}
138480		return nil, &googleapi.Error{
138481			Code:   res.StatusCode,
138482			Header: res.Header,
138483		}
138484	}
138485	if err != nil {
138486		return nil, err
138487	}
138488	defer googleapi.CloseBody(res)
138489	if err := googleapi.CheckResponse(res); err != nil {
138490		return nil, err
138491	}
138492	ret := &Operation{
138493		ServerResponse: googleapi.ServerResponse{
138494			Header:         res.Header,
138495			HTTPStatusCode: res.StatusCode,
138496		},
138497	}
138498	target := &ret
138499	if err := gensupport.DecodeResponse(target, res); err != nil {
138500		return nil, err
138501	}
138502	return ret, nil
138503	// {
138504	//   "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. (== suppress_warning http-rest-shadowed ==)",
138505	//   "httpMethod": "PATCH",
138506	//   "id": "compute.regionUrlMaps.patch",
138507	//   "parameterOrder": [
138508	//     "project",
138509	//     "region",
138510	//     "urlMap"
138511	//   ],
138512	//   "parameters": {
138513	//     "project": {
138514	//       "description": "Project ID for this request.",
138515	//       "location": "path",
138516	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
138517	//       "required": true,
138518	//       "type": "string"
138519	//     },
138520	//     "region": {
138521	//       "description": "Name of the region scoping this request.",
138522	//       "location": "path",
138523	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
138524	//       "required": true,
138525	//       "type": "string"
138526	//     },
138527	//     "requestId": {
138528	//       "description": "begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.",
138529	//       "location": "query",
138530	//       "type": "string"
138531	//     },
138532	//     "urlMap": {
138533	//       "description": "Name of the UrlMap resource to patch.",
138534	//       "location": "path",
138535	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
138536	//       "required": true,
138537	//       "type": "string"
138538	//     }
138539	//   },
138540	//   "path": "{project}/regions/{region}/urlMaps/{urlMap}",
138541	//   "request": {
138542	//     "$ref": "UrlMap"
138543	//   },
138544	//   "response": {
138545	//     "$ref": "Operation"
138546	//   },
138547	//   "scopes": [
138548	//     "https://www.googleapis.com/auth/cloud-platform",
138549	//     "https://www.googleapis.com/auth/compute"
138550	//   ]
138551	// }
138552
138553}
138554
138555// method id "compute.regionUrlMaps.testIamPermissions":
138556
138557type RegionUrlMapsTestIamPermissionsCall struct {
138558	s                      *Service
138559	project                string
138560	region                 string
138561	resource               string
138562	testpermissionsrequest *TestPermissionsRequest
138563	urlParams_             gensupport.URLParams
138564	ctx_                   context.Context
138565	header_                http.Header
138566}
138567
138568// TestIamPermissions: Returns permissions that a caller has on the
138569// specified resource. (== suppress_warning http-rest-shadowed ==)
138570func (r *RegionUrlMapsService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *RegionUrlMapsTestIamPermissionsCall {
138571	c := &RegionUrlMapsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
138572	c.project = project
138573	c.region = region
138574	c.resource = resource
138575	c.testpermissionsrequest = testpermissionsrequest
138576	return c
138577}
138578
138579// Fields allows partial responses to be retrieved. See
138580// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
138581// for more information.
138582func (c *RegionUrlMapsTestIamPermissionsCall) Fields(s ...googleapi.Field) *RegionUrlMapsTestIamPermissionsCall {
138583	c.urlParams_.Set("fields", googleapi.CombineFields(s))
138584	return c
138585}
138586
138587// Context sets the context to be used in this call's Do method. Any
138588// pending HTTP request will be aborted if the provided context is
138589// canceled.
138590func (c *RegionUrlMapsTestIamPermissionsCall) Context(ctx context.Context) *RegionUrlMapsTestIamPermissionsCall {
138591	c.ctx_ = ctx
138592	return c
138593}
138594
138595// Header returns an http.Header that can be modified by the caller to
138596// add HTTP headers to the request.
138597func (c *RegionUrlMapsTestIamPermissionsCall) Header() http.Header {
138598	if c.header_ == nil {
138599		c.header_ = make(http.Header)
138600	}
138601	return c.header_
138602}
138603
138604func (c *RegionUrlMapsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
138605	reqHeaders := make(http.Header)
138606	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
138607	for k, v := range c.header_ {
138608		reqHeaders[k] = v
138609	}
138610	reqHeaders.Set("User-Agent", c.s.userAgent())
138611	var body io.Reader = nil
138612	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
138613	if err != nil {
138614		return nil, err
138615	}
138616	reqHeaders.Set("Content-Type", "application/json")
138617	c.urlParams_.Set("alt", alt)
138618	c.urlParams_.Set("prettyPrint", "false")
138619	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/urlMaps/{resource}/testIamPermissions")
138620	urls += "?" + c.urlParams_.Encode()
138621	req, err := http.NewRequest("POST", urls, body)
138622	if err != nil {
138623		return nil, err
138624	}
138625	req.Header = reqHeaders
138626	googleapi.Expand(req.URL, map[string]string{
138627		"project":  c.project,
138628		"region":   c.region,
138629		"resource": c.resource,
138630	})
138631	return gensupport.SendRequest(c.ctx_, c.s.client, req)
138632}
138633
138634// Do executes the "compute.regionUrlMaps.testIamPermissions" call.
138635// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
138636// non-2xx status code is an error. Response headers are in either
138637// *TestPermissionsResponse.ServerResponse.Header or (if a response was
138638// returned at all) in error.(*googleapi.Error).Header. Use
138639// googleapi.IsNotModified to check whether the returned error was
138640// because http.StatusNotModified was returned.
138641func (c *RegionUrlMapsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
138642	gensupport.SetOptions(c.urlParams_, opts...)
138643	res, err := c.doRequest("json")
138644	if res != nil && res.StatusCode == http.StatusNotModified {
138645		if res.Body != nil {
138646			res.Body.Close()
138647		}
138648		return nil, &googleapi.Error{
138649			Code:   res.StatusCode,
138650			Header: res.Header,
138651		}
138652	}
138653	if err != nil {
138654		return nil, err
138655	}
138656	defer googleapi.CloseBody(res)
138657	if err := googleapi.CheckResponse(res); err != nil {
138658		return nil, err
138659	}
138660	ret := &TestPermissionsResponse{
138661		ServerResponse: googleapi.ServerResponse{
138662			Header:         res.Header,
138663			HTTPStatusCode: res.StatusCode,
138664		},
138665	}
138666	target := &ret
138667	if err := gensupport.DecodeResponse(target, res); err != nil {
138668		return nil, err
138669	}
138670	return ret, nil
138671	// {
138672	//   "description": "Returns permissions that a caller has on the specified resource. (== suppress_warning http-rest-shadowed ==)",
138673	//   "httpMethod": "POST",
138674	//   "id": "compute.regionUrlMaps.testIamPermissions",
138675	//   "parameterOrder": [
138676	//     "project",
138677	//     "region",
138678	//     "resource"
138679	//   ],
138680	//   "parameters": {
138681	//     "project": {
138682	//       "description": "Project ID for this request.",
138683	//       "location": "path",
138684	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
138685	//       "required": true,
138686	//       "type": "string"
138687	//     },
138688	//     "region": {
138689	//       "description": "The name of the region for this request.",
138690	//       "location": "path",
138691	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
138692	//       "required": true,
138693	//       "type": "string"
138694	//     },
138695	//     "resource": {
138696	//       "description": "Name or id of the resource for this request.",
138697	//       "location": "path",
138698	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
138699	//       "required": true,
138700	//       "type": "string"
138701	//     }
138702	//   },
138703	//   "path": "{project}/regions/{region}/urlMaps/{resource}/testIamPermissions",
138704	//   "request": {
138705	//     "$ref": "TestPermissionsRequest"
138706	//   },
138707	//   "response": {
138708	//     "$ref": "TestPermissionsResponse"
138709	//   },
138710	//   "scopes": [
138711	//     "https://www.googleapis.com/auth/cloud-platform",
138712	//     "https://www.googleapis.com/auth/compute",
138713	//     "https://www.googleapis.com/auth/compute.readonly"
138714	//   ]
138715	// }
138716
138717}
138718
138719// method id "compute.regionUrlMaps.update":
138720
138721type RegionUrlMapsUpdateCall struct {
138722	s          *Service
138723	project    string
138724	region     string
138725	urlMap     string
138726	urlmap     *UrlMap
138727	urlParams_ gensupport.URLParams
138728	ctx_       context.Context
138729	header_    http.Header
138730}
138731
138732// Update: Updates the specified UrlMap resource with the data included
138733// in the request. (== suppress_warning http-rest-shadowed ==)
138734func (r *RegionUrlMapsService) Update(project string, region string, urlMap string, urlmap *UrlMap) *RegionUrlMapsUpdateCall {
138735	c := &RegionUrlMapsUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
138736	c.project = project
138737	c.region = region
138738	c.urlMap = urlMap
138739	c.urlmap = urlmap
138740	return c
138741}
138742
138743// RequestId sets the optional parameter "requestId": begin_interface:
138744// MixerMutationRequestBuilder Request ID to support idempotency.
138745func (c *RegionUrlMapsUpdateCall) RequestId(requestId string) *RegionUrlMapsUpdateCall {
138746	c.urlParams_.Set("requestId", requestId)
138747	return c
138748}
138749
138750// Fields allows partial responses to be retrieved. See
138751// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
138752// for more information.
138753func (c *RegionUrlMapsUpdateCall) Fields(s ...googleapi.Field) *RegionUrlMapsUpdateCall {
138754	c.urlParams_.Set("fields", googleapi.CombineFields(s))
138755	return c
138756}
138757
138758// Context sets the context to be used in this call's Do method. Any
138759// pending HTTP request will be aborted if the provided context is
138760// canceled.
138761func (c *RegionUrlMapsUpdateCall) Context(ctx context.Context) *RegionUrlMapsUpdateCall {
138762	c.ctx_ = ctx
138763	return c
138764}
138765
138766// Header returns an http.Header that can be modified by the caller to
138767// add HTTP headers to the request.
138768func (c *RegionUrlMapsUpdateCall) Header() http.Header {
138769	if c.header_ == nil {
138770		c.header_ = make(http.Header)
138771	}
138772	return c.header_
138773}
138774
138775func (c *RegionUrlMapsUpdateCall) doRequest(alt string) (*http.Response, error) {
138776	reqHeaders := make(http.Header)
138777	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
138778	for k, v := range c.header_ {
138779		reqHeaders[k] = v
138780	}
138781	reqHeaders.Set("User-Agent", c.s.userAgent())
138782	var body io.Reader = nil
138783	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmap)
138784	if err != nil {
138785		return nil, err
138786	}
138787	reqHeaders.Set("Content-Type", "application/json")
138788	c.urlParams_.Set("alt", alt)
138789	c.urlParams_.Set("prettyPrint", "false")
138790	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/urlMaps/{urlMap}")
138791	urls += "?" + c.urlParams_.Encode()
138792	req, err := http.NewRequest("PUT", urls, body)
138793	if err != nil {
138794		return nil, err
138795	}
138796	req.Header = reqHeaders
138797	googleapi.Expand(req.URL, map[string]string{
138798		"project": c.project,
138799		"region":  c.region,
138800		"urlMap":  c.urlMap,
138801	})
138802	return gensupport.SendRequest(c.ctx_, c.s.client, req)
138803}
138804
138805// Do executes the "compute.regionUrlMaps.update" call.
138806// Exactly one of *Operation or error will be non-nil. Any non-2xx
138807// status code is an error. Response headers are in either
138808// *Operation.ServerResponse.Header or (if a response was returned at
138809// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
138810// to check whether the returned error was because
138811// http.StatusNotModified was returned.
138812func (c *RegionUrlMapsUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
138813	gensupport.SetOptions(c.urlParams_, opts...)
138814	res, err := c.doRequest("json")
138815	if res != nil && res.StatusCode == http.StatusNotModified {
138816		if res.Body != nil {
138817			res.Body.Close()
138818		}
138819		return nil, &googleapi.Error{
138820			Code:   res.StatusCode,
138821			Header: res.Header,
138822		}
138823	}
138824	if err != nil {
138825		return nil, err
138826	}
138827	defer googleapi.CloseBody(res)
138828	if err := googleapi.CheckResponse(res); err != nil {
138829		return nil, err
138830	}
138831	ret := &Operation{
138832		ServerResponse: googleapi.ServerResponse{
138833			Header:         res.Header,
138834			HTTPStatusCode: res.StatusCode,
138835		},
138836	}
138837	target := &ret
138838	if err := gensupport.DecodeResponse(target, res); err != nil {
138839		return nil, err
138840	}
138841	return ret, nil
138842	// {
138843	//   "description": "Updates the specified UrlMap resource with the data included in the request. (== suppress_warning http-rest-shadowed ==)",
138844	//   "httpMethod": "PUT",
138845	//   "id": "compute.regionUrlMaps.update",
138846	//   "parameterOrder": [
138847	//     "project",
138848	//     "region",
138849	//     "urlMap"
138850	//   ],
138851	//   "parameters": {
138852	//     "project": {
138853	//       "description": "Project ID for this request.",
138854	//       "location": "path",
138855	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
138856	//       "required": true,
138857	//       "type": "string"
138858	//     },
138859	//     "region": {
138860	//       "description": "Name of the region scoping this request.",
138861	//       "location": "path",
138862	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
138863	//       "required": true,
138864	//       "type": "string"
138865	//     },
138866	//     "requestId": {
138867	//       "description": "begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.",
138868	//       "location": "query",
138869	//       "type": "string"
138870	//     },
138871	//     "urlMap": {
138872	//       "description": "Name of the UrlMap resource to update.",
138873	//       "location": "path",
138874	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
138875	//       "required": true,
138876	//       "type": "string"
138877	//     }
138878	//   },
138879	//   "path": "{project}/regions/{region}/urlMaps/{urlMap}",
138880	//   "request": {
138881	//     "$ref": "UrlMap"
138882	//   },
138883	//   "response": {
138884	//     "$ref": "Operation"
138885	//   },
138886	//   "scopes": [
138887	//     "https://www.googleapis.com/auth/cloud-platform",
138888	//     "https://www.googleapis.com/auth/compute"
138889	//   ]
138890	// }
138891
138892}
138893
138894// method id "compute.regionUrlMaps.validate":
138895
138896type RegionUrlMapsValidateCall struct {
138897	s                            *Service
138898	project                      string
138899	region                       string
138900	urlMap                       string
138901	regionurlmapsvalidaterequest *RegionUrlMapsValidateRequest
138902	urlParams_                   gensupport.URLParams
138903	ctx_                         context.Context
138904	header_                      http.Header
138905}
138906
138907// Validate: Runs static validation for the UrlMap. In particular, the
138908// tests of the provided UrlMap will be run. Calling this method does
138909// NOT create the UrlMap. (== suppress_warning http-rest-shadowed ==)
138910func (r *RegionUrlMapsService) Validate(project string, region string, urlMap string, regionurlmapsvalidaterequest *RegionUrlMapsValidateRequest) *RegionUrlMapsValidateCall {
138911	c := &RegionUrlMapsValidateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
138912	c.project = project
138913	c.region = region
138914	c.urlMap = urlMap
138915	c.regionurlmapsvalidaterequest = regionurlmapsvalidaterequest
138916	return c
138917}
138918
138919// Fields allows partial responses to be retrieved. See
138920// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
138921// for more information.
138922func (c *RegionUrlMapsValidateCall) Fields(s ...googleapi.Field) *RegionUrlMapsValidateCall {
138923	c.urlParams_.Set("fields", googleapi.CombineFields(s))
138924	return c
138925}
138926
138927// Context sets the context to be used in this call's Do method. Any
138928// pending HTTP request will be aborted if the provided context is
138929// canceled.
138930func (c *RegionUrlMapsValidateCall) Context(ctx context.Context) *RegionUrlMapsValidateCall {
138931	c.ctx_ = ctx
138932	return c
138933}
138934
138935// Header returns an http.Header that can be modified by the caller to
138936// add HTTP headers to the request.
138937func (c *RegionUrlMapsValidateCall) Header() http.Header {
138938	if c.header_ == nil {
138939		c.header_ = make(http.Header)
138940	}
138941	return c.header_
138942}
138943
138944func (c *RegionUrlMapsValidateCall) doRequest(alt string) (*http.Response, error) {
138945	reqHeaders := make(http.Header)
138946	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
138947	for k, v := range c.header_ {
138948		reqHeaders[k] = v
138949	}
138950	reqHeaders.Set("User-Agent", c.s.userAgent())
138951	var body io.Reader = nil
138952	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionurlmapsvalidaterequest)
138953	if err != nil {
138954		return nil, err
138955	}
138956	reqHeaders.Set("Content-Type", "application/json")
138957	c.urlParams_.Set("alt", alt)
138958	c.urlParams_.Set("prettyPrint", "false")
138959	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/urlMaps/{urlMap}/validate")
138960	urls += "?" + c.urlParams_.Encode()
138961	req, err := http.NewRequest("POST", urls, body)
138962	if err != nil {
138963		return nil, err
138964	}
138965	req.Header = reqHeaders
138966	googleapi.Expand(req.URL, map[string]string{
138967		"project": c.project,
138968		"region":  c.region,
138969		"urlMap":  c.urlMap,
138970	})
138971	return gensupport.SendRequest(c.ctx_, c.s.client, req)
138972}
138973
138974// Do executes the "compute.regionUrlMaps.validate" call.
138975// Exactly one of *UrlMapsValidateResponse or error will be non-nil. Any
138976// non-2xx status code is an error. Response headers are in either
138977// *UrlMapsValidateResponse.ServerResponse.Header or (if a response was
138978// returned at all) in error.(*googleapi.Error).Header. Use
138979// googleapi.IsNotModified to check whether the returned error was
138980// because http.StatusNotModified was returned.
138981func (c *RegionUrlMapsValidateCall) Do(opts ...googleapi.CallOption) (*UrlMapsValidateResponse, error) {
138982	gensupport.SetOptions(c.urlParams_, opts...)
138983	res, err := c.doRequest("json")
138984	if res != nil && res.StatusCode == http.StatusNotModified {
138985		if res.Body != nil {
138986			res.Body.Close()
138987		}
138988		return nil, &googleapi.Error{
138989			Code:   res.StatusCode,
138990			Header: res.Header,
138991		}
138992	}
138993	if err != nil {
138994		return nil, err
138995	}
138996	defer googleapi.CloseBody(res)
138997	if err := googleapi.CheckResponse(res); err != nil {
138998		return nil, err
138999	}
139000	ret := &UrlMapsValidateResponse{
139001		ServerResponse: googleapi.ServerResponse{
139002			Header:         res.Header,
139003			HTTPStatusCode: res.StatusCode,
139004		},
139005	}
139006	target := &ret
139007	if err := gensupport.DecodeResponse(target, res); err != nil {
139008		return nil, err
139009	}
139010	return ret, nil
139011	// {
139012	//   "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. (== suppress_warning http-rest-shadowed ==)",
139013	//   "httpMethod": "POST",
139014	//   "id": "compute.regionUrlMaps.validate",
139015	//   "parameterOrder": [
139016	//     "project",
139017	//     "region",
139018	//     "urlMap"
139019	//   ],
139020	//   "parameters": {
139021	//     "project": {
139022	//       "description": "Project ID for this request.",
139023	//       "location": "path",
139024	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
139025	//       "required": true,
139026	//       "type": "string"
139027	//     },
139028	//     "region": {
139029	//       "description": "Name of the region scoping this request.",
139030	//       "location": "path",
139031	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
139032	//       "required": true,
139033	//       "type": "string"
139034	//     },
139035	//     "urlMap": {
139036	//       "description": "Name of the UrlMap resource to be validated as.",
139037	//       "location": "path",
139038	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
139039	//       "required": true,
139040	//       "type": "string"
139041	//     }
139042	//   },
139043	//   "path": "{project}/regions/{region}/urlMaps/{urlMap}/validate",
139044	//   "request": {
139045	//     "$ref": "RegionUrlMapsValidateRequest"
139046	//   },
139047	//   "response": {
139048	//     "$ref": "UrlMapsValidateResponse"
139049	//   },
139050	//   "scopes": [
139051	//     "https://www.googleapis.com/auth/cloud-platform",
139052	//     "https://www.googleapis.com/auth/compute"
139053	//   ]
139054	// }
139055
139056}
139057
139058// method id "compute.regions.get":
139059
139060type RegionsGetCall struct {
139061	s            *Service
139062	project      string
139063	region       string
139064	urlParams_   gensupport.URLParams
139065	ifNoneMatch_ string
139066	ctx_         context.Context
139067	header_      http.Header
139068}
139069
139070// Get: Returns the specified Region resource. Gets a list of available
139071// regions by making a list() request. (== suppress_warning
139072// http-rest-shadowed ==)
139073// For details, see https://cloud.google.com/compute/docs/reference/latest/regions/get
139074func (r *RegionsService) Get(project string, region string) *RegionsGetCall {
139075	c := &RegionsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
139076	c.project = project
139077	c.region = region
139078	return c
139079}
139080
139081// Fields allows partial responses to be retrieved. See
139082// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
139083// for more information.
139084func (c *RegionsGetCall) Fields(s ...googleapi.Field) *RegionsGetCall {
139085	c.urlParams_.Set("fields", googleapi.CombineFields(s))
139086	return c
139087}
139088
139089// IfNoneMatch sets the optional parameter which makes the operation
139090// fail if the object's ETag matches the given value. This is useful for
139091// getting updates only after the object has changed since the last
139092// request. Use googleapi.IsNotModified to check whether the response
139093// error from Do is the result of In-None-Match.
139094func (c *RegionsGetCall) IfNoneMatch(entityTag string) *RegionsGetCall {
139095	c.ifNoneMatch_ = entityTag
139096	return c
139097}
139098
139099// Context sets the context to be used in this call's Do method. Any
139100// pending HTTP request will be aborted if the provided context is
139101// canceled.
139102func (c *RegionsGetCall) Context(ctx context.Context) *RegionsGetCall {
139103	c.ctx_ = ctx
139104	return c
139105}
139106
139107// Header returns an http.Header that can be modified by the caller to
139108// add HTTP headers to the request.
139109func (c *RegionsGetCall) Header() http.Header {
139110	if c.header_ == nil {
139111		c.header_ = make(http.Header)
139112	}
139113	return c.header_
139114}
139115
139116func (c *RegionsGetCall) doRequest(alt string) (*http.Response, error) {
139117	reqHeaders := make(http.Header)
139118	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
139119	for k, v := range c.header_ {
139120		reqHeaders[k] = v
139121	}
139122	reqHeaders.Set("User-Agent", c.s.userAgent())
139123	if c.ifNoneMatch_ != "" {
139124		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
139125	}
139126	var body io.Reader = nil
139127	c.urlParams_.Set("alt", alt)
139128	c.urlParams_.Set("prettyPrint", "false")
139129	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}")
139130	urls += "?" + c.urlParams_.Encode()
139131	req, err := http.NewRequest("GET", urls, body)
139132	if err != nil {
139133		return nil, err
139134	}
139135	req.Header = reqHeaders
139136	googleapi.Expand(req.URL, map[string]string{
139137		"project": c.project,
139138		"region":  c.region,
139139	})
139140	return gensupport.SendRequest(c.ctx_, c.s.client, req)
139141}
139142
139143// Do executes the "compute.regions.get" call.
139144// Exactly one of *Region or error will be non-nil. Any non-2xx status
139145// code is an error. Response headers are in either
139146// *Region.ServerResponse.Header or (if a response was returned at all)
139147// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
139148// check whether the returned error was because http.StatusNotModified
139149// was returned.
139150func (c *RegionsGetCall) Do(opts ...googleapi.CallOption) (*Region, error) {
139151	gensupport.SetOptions(c.urlParams_, opts...)
139152	res, err := c.doRequest("json")
139153	if res != nil && res.StatusCode == http.StatusNotModified {
139154		if res.Body != nil {
139155			res.Body.Close()
139156		}
139157		return nil, &googleapi.Error{
139158			Code:   res.StatusCode,
139159			Header: res.Header,
139160		}
139161	}
139162	if err != nil {
139163		return nil, err
139164	}
139165	defer googleapi.CloseBody(res)
139166	if err := googleapi.CheckResponse(res); err != nil {
139167		return nil, err
139168	}
139169	ret := &Region{
139170		ServerResponse: googleapi.ServerResponse{
139171			Header:         res.Header,
139172			HTTPStatusCode: res.StatusCode,
139173		},
139174	}
139175	target := &ret
139176	if err := gensupport.DecodeResponse(target, res); err != nil {
139177		return nil, err
139178	}
139179	return ret, nil
139180	// {
139181	//   "description": "Returns the specified Region resource. Gets a list of available regions by making a list() request. (== suppress_warning http-rest-shadowed ==)",
139182	//   "httpMethod": "GET",
139183	//   "id": "compute.regions.get",
139184	//   "parameterOrder": [
139185	//     "project",
139186	//     "region"
139187	//   ],
139188	//   "parameters": {
139189	//     "project": {
139190	//       "description": "Project ID for this request.",
139191	//       "location": "path",
139192	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
139193	//       "required": true,
139194	//       "type": "string"
139195	//     },
139196	//     "region": {
139197	//       "description": "Name of the region resource to return.",
139198	//       "location": "path",
139199	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
139200	//       "required": true,
139201	//       "type": "string"
139202	//     }
139203	//   },
139204	//   "path": "{project}/regions/{region}",
139205	//   "response": {
139206	//     "$ref": "Region"
139207	//   },
139208	//   "scopes": [
139209	//     "https://www.googleapis.com/auth/cloud-platform",
139210	//     "https://www.googleapis.com/auth/compute",
139211	//     "https://www.googleapis.com/auth/compute.readonly"
139212	//   ]
139213	// }
139214
139215}
139216
139217// method id "compute.regions.list":
139218
139219type RegionsListCall struct {
139220	s            *Service
139221	project      string
139222	urlParams_   gensupport.URLParams
139223	ifNoneMatch_ string
139224	ctx_         context.Context
139225	header_      http.Header
139226}
139227
139228// List: Retrieves the list of region resources available to the
139229// specified project. (== suppress_warning http-rest-shadowed ==)
139230// For details, see https://cloud.google.com/compute/docs/reference/latest/regions/list
139231func (r *RegionsService) List(project string) *RegionsListCall {
139232	c := &RegionsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
139233	c.project = project
139234	return c
139235}
139236
139237// Filter sets the optional parameter "filter": A filter expression that
139238// filters resources listed in the response. The expression must specify
139239// the field name, a comparison operator, and the value that you want to
139240// use for filtering. The value must be a string, a number, or a
139241// boolean. The comparison operator must be either =, !=, >, or <.
139242//
139243// For example, if you are filtering Compute Engine instances, you can
139244// exclude instances named example-instance by specifying name !=
139245// example-instance.
139246//
139247// You can also filter nested fields. For example, you could specify
139248// scheduling.automaticRestart = false to include instances only if they
139249// are not scheduled for automatic restarts. You can use filtering on
139250// nested fields to filter based on resource labels.
139251//
139252// To filter on multiple expressions, provide each separate expression
139253// within parentheses. For example, (scheduling.automaticRestart = true)
139254// (cpuPlatform = "Intel Skylake"). By default, each expression is an
139255// AND expression. However, you can include AND and OR expressions
139256// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
139257// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
139258// true).
139259func (c *RegionsListCall) Filter(filter string) *RegionsListCall {
139260	c.urlParams_.Set("filter", filter)
139261	return c
139262}
139263
139264// MaxResults sets the optional parameter "maxResults": The maximum
139265// number of results per page that should be returned. If the number of
139266// available results is larger than maxResults, Compute Engine returns a
139267// nextPageToken that can be used to get the next page of results in
139268// subsequent list requests. Acceptable values are 0 to 500, inclusive.
139269// (Default: 500)
139270func (c *RegionsListCall) MaxResults(maxResults int64) *RegionsListCall {
139271	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
139272	return c
139273}
139274
139275// OrderBy sets the optional parameter "orderBy": Sorts list results by
139276// a certain order. By default, results are returned in alphanumerical
139277// order based on the resource name.
139278//
139279// You can also sort results in descending order based on the creation
139280// timestamp using orderBy="creationTimestamp desc". This sorts results
139281// based on the creationTimestamp field in reverse chronological order
139282// (newest result first). Use this to sort resources like operations so
139283// that the newest operation is returned first.
139284//
139285// Currently, only sorting by name or creationTimestamp desc is
139286// supported.
139287func (c *RegionsListCall) OrderBy(orderBy string) *RegionsListCall {
139288	c.urlParams_.Set("orderBy", orderBy)
139289	return c
139290}
139291
139292// PageToken sets the optional parameter "pageToken": Specifies a page
139293// token to use. Set pageToken to the nextPageToken returned by a
139294// previous list request to get the next page of results.
139295func (c *RegionsListCall) PageToken(pageToken string) *RegionsListCall {
139296	c.urlParams_.Set("pageToken", pageToken)
139297	return c
139298}
139299
139300// Fields allows partial responses to be retrieved. See
139301// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
139302// for more information.
139303func (c *RegionsListCall) Fields(s ...googleapi.Field) *RegionsListCall {
139304	c.urlParams_.Set("fields", googleapi.CombineFields(s))
139305	return c
139306}
139307
139308// IfNoneMatch sets the optional parameter which makes the operation
139309// fail if the object's ETag matches the given value. This is useful for
139310// getting updates only after the object has changed since the last
139311// request. Use googleapi.IsNotModified to check whether the response
139312// error from Do is the result of In-None-Match.
139313func (c *RegionsListCall) IfNoneMatch(entityTag string) *RegionsListCall {
139314	c.ifNoneMatch_ = entityTag
139315	return c
139316}
139317
139318// Context sets the context to be used in this call's Do method. Any
139319// pending HTTP request will be aborted if the provided context is
139320// canceled.
139321func (c *RegionsListCall) Context(ctx context.Context) *RegionsListCall {
139322	c.ctx_ = ctx
139323	return c
139324}
139325
139326// Header returns an http.Header that can be modified by the caller to
139327// add HTTP headers to the request.
139328func (c *RegionsListCall) Header() http.Header {
139329	if c.header_ == nil {
139330		c.header_ = make(http.Header)
139331	}
139332	return c.header_
139333}
139334
139335func (c *RegionsListCall) doRequest(alt string) (*http.Response, error) {
139336	reqHeaders := make(http.Header)
139337	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
139338	for k, v := range c.header_ {
139339		reqHeaders[k] = v
139340	}
139341	reqHeaders.Set("User-Agent", c.s.userAgent())
139342	if c.ifNoneMatch_ != "" {
139343		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
139344	}
139345	var body io.Reader = nil
139346	c.urlParams_.Set("alt", alt)
139347	c.urlParams_.Set("prettyPrint", "false")
139348	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions")
139349	urls += "?" + c.urlParams_.Encode()
139350	req, err := http.NewRequest("GET", urls, body)
139351	if err != nil {
139352		return nil, err
139353	}
139354	req.Header = reqHeaders
139355	googleapi.Expand(req.URL, map[string]string{
139356		"project": c.project,
139357	})
139358	return gensupport.SendRequest(c.ctx_, c.s.client, req)
139359}
139360
139361// Do executes the "compute.regions.list" call.
139362// Exactly one of *RegionList or error will be non-nil. Any non-2xx
139363// status code is an error. Response headers are in either
139364// *RegionList.ServerResponse.Header or (if a response was returned at
139365// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
139366// to check whether the returned error was because
139367// http.StatusNotModified was returned.
139368func (c *RegionsListCall) Do(opts ...googleapi.CallOption) (*RegionList, error) {
139369	gensupport.SetOptions(c.urlParams_, opts...)
139370	res, err := c.doRequest("json")
139371	if res != nil && res.StatusCode == http.StatusNotModified {
139372		if res.Body != nil {
139373			res.Body.Close()
139374		}
139375		return nil, &googleapi.Error{
139376			Code:   res.StatusCode,
139377			Header: res.Header,
139378		}
139379	}
139380	if err != nil {
139381		return nil, err
139382	}
139383	defer googleapi.CloseBody(res)
139384	if err := googleapi.CheckResponse(res); err != nil {
139385		return nil, err
139386	}
139387	ret := &RegionList{
139388		ServerResponse: googleapi.ServerResponse{
139389			Header:         res.Header,
139390			HTTPStatusCode: res.StatusCode,
139391		},
139392	}
139393	target := &ret
139394	if err := gensupport.DecodeResponse(target, res); err != nil {
139395		return nil, err
139396	}
139397	return ret, nil
139398	// {
139399	//   "description": "Retrieves the list of region resources available to the specified project. (== suppress_warning http-rest-shadowed ==)",
139400	//   "httpMethod": "GET",
139401	//   "id": "compute.regions.list",
139402	//   "parameterOrder": [
139403	//     "project"
139404	//   ],
139405	//   "parameters": {
139406	//     "filter": {
139407	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
139408	//       "location": "query",
139409	//       "type": "string"
139410	//     },
139411	//     "maxResults": {
139412	//       "default": "500",
139413	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
139414	//       "format": "uint32",
139415	//       "location": "query",
139416	//       "minimum": "0",
139417	//       "type": "integer"
139418	//     },
139419	//     "orderBy": {
139420	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
139421	//       "location": "query",
139422	//       "type": "string"
139423	//     },
139424	//     "pageToken": {
139425	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
139426	//       "location": "query",
139427	//       "type": "string"
139428	//     },
139429	//     "project": {
139430	//       "description": "Project ID for this request.",
139431	//       "location": "path",
139432	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
139433	//       "required": true,
139434	//       "type": "string"
139435	//     }
139436	//   },
139437	//   "path": "{project}/regions",
139438	//   "response": {
139439	//     "$ref": "RegionList"
139440	//   },
139441	//   "scopes": [
139442	//     "https://www.googleapis.com/auth/cloud-platform",
139443	//     "https://www.googleapis.com/auth/compute",
139444	//     "https://www.googleapis.com/auth/compute.readonly"
139445	//   ]
139446	// }
139447
139448}
139449
139450// Pages invokes f for each page of results.
139451// A non-nil error returned from f will halt the iteration.
139452// The provided context supersedes any context provided to the Context method.
139453func (c *RegionsListCall) Pages(ctx context.Context, f func(*RegionList) error) error {
139454	c.ctx_ = ctx
139455	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
139456	for {
139457		x, err := c.Do()
139458		if err != nil {
139459			return err
139460		}
139461		if err := f(x); err != nil {
139462			return err
139463		}
139464		if x.NextPageToken == "" {
139465			return nil
139466		}
139467		c.PageToken(x.NextPageToken)
139468	}
139469}
139470
139471// method id "compute.reservations.aggregatedList":
139472
139473type ReservationsAggregatedListCall struct {
139474	s            *Service
139475	project      string
139476	urlParams_   gensupport.URLParams
139477	ifNoneMatch_ string
139478	ctx_         context.Context
139479	header_      http.Header
139480}
139481
139482// AggregatedList: Retrieves an aggregated list of reservations. (==
139483// suppress_warning http-rest-shadowed ==)
139484func (r *ReservationsService) AggregatedList(project string) *ReservationsAggregatedListCall {
139485	c := &ReservationsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
139486	c.project = project
139487	return c
139488}
139489
139490// Filter sets the optional parameter "filter": A filter expression that
139491// filters resources listed in the response. The expression must specify
139492// the field name, a comparison operator, and the value that you want to
139493// use for filtering. The value must be a string, a number, or a
139494// boolean. The comparison operator must be either =, !=, >, or <.
139495//
139496// For example, if you are filtering Compute Engine instances, you can
139497// exclude instances named example-instance by specifying name !=
139498// example-instance.
139499//
139500// You can also filter nested fields. For example, you could specify
139501// scheduling.automaticRestart = false to include instances only if they
139502// are not scheduled for automatic restarts. You can use filtering on
139503// nested fields to filter based on resource labels.
139504//
139505// To filter on multiple expressions, provide each separate expression
139506// within parentheses. For example, (scheduling.automaticRestart = true)
139507// (cpuPlatform = "Intel Skylake"). By default, each expression is an
139508// AND expression. However, you can include AND and OR expressions
139509// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
139510// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
139511// true).
139512func (c *ReservationsAggregatedListCall) Filter(filter string) *ReservationsAggregatedListCall {
139513	c.urlParams_.Set("filter", filter)
139514	return c
139515}
139516
139517// MaxResults sets the optional parameter "maxResults": The maximum
139518// number of results per page that should be returned. If the number of
139519// available results is larger than maxResults, Compute Engine returns a
139520// nextPageToken that can be used to get the next page of results in
139521// subsequent list requests. Acceptable values are 0 to 500, inclusive.
139522// (Default: 500)
139523func (c *ReservationsAggregatedListCall) MaxResults(maxResults int64) *ReservationsAggregatedListCall {
139524	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
139525	return c
139526}
139527
139528// OrderBy sets the optional parameter "orderBy": Sorts list results by
139529// a certain order. By default, results are returned in alphanumerical
139530// order based on the resource name.
139531//
139532// You can also sort results in descending order based on the creation
139533// timestamp using orderBy="creationTimestamp desc". This sorts results
139534// based on the creationTimestamp field in reverse chronological order
139535// (newest result first). Use this to sort resources like operations so
139536// that the newest operation is returned first.
139537//
139538// Currently, only sorting by name or creationTimestamp desc is
139539// supported.
139540func (c *ReservationsAggregatedListCall) OrderBy(orderBy string) *ReservationsAggregatedListCall {
139541	c.urlParams_.Set("orderBy", orderBy)
139542	return c
139543}
139544
139545// PageToken sets the optional parameter "pageToken": Specifies a page
139546// token to use. Set pageToken to the nextPageToken returned by a
139547// previous list request to get the next page of results.
139548func (c *ReservationsAggregatedListCall) PageToken(pageToken string) *ReservationsAggregatedListCall {
139549	c.urlParams_.Set("pageToken", pageToken)
139550	return c
139551}
139552
139553// Fields allows partial responses to be retrieved. See
139554// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
139555// for more information.
139556func (c *ReservationsAggregatedListCall) Fields(s ...googleapi.Field) *ReservationsAggregatedListCall {
139557	c.urlParams_.Set("fields", googleapi.CombineFields(s))
139558	return c
139559}
139560
139561// IfNoneMatch sets the optional parameter which makes the operation
139562// fail if the object's ETag matches the given value. This is useful for
139563// getting updates only after the object has changed since the last
139564// request. Use googleapi.IsNotModified to check whether the response
139565// error from Do is the result of In-None-Match.
139566func (c *ReservationsAggregatedListCall) IfNoneMatch(entityTag string) *ReservationsAggregatedListCall {
139567	c.ifNoneMatch_ = entityTag
139568	return c
139569}
139570
139571// Context sets the context to be used in this call's Do method. Any
139572// pending HTTP request will be aborted if the provided context is
139573// canceled.
139574func (c *ReservationsAggregatedListCall) Context(ctx context.Context) *ReservationsAggregatedListCall {
139575	c.ctx_ = ctx
139576	return c
139577}
139578
139579// Header returns an http.Header that can be modified by the caller to
139580// add HTTP headers to the request.
139581func (c *ReservationsAggregatedListCall) Header() http.Header {
139582	if c.header_ == nil {
139583		c.header_ = make(http.Header)
139584	}
139585	return c.header_
139586}
139587
139588func (c *ReservationsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
139589	reqHeaders := make(http.Header)
139590	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
139591	for k, v := range c.header_ {
139592		reqHeaders[k] = v
139593	}
139594	reqHeaders.Set("User-Agent", c.s.userAgent())
139595	if c.ifNoneMatch_ != "" {
139596		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
139597	}
139598	var body io.Reader = nil
139599	c.urlParams_.Set("alt", alt)
139600	c.urlParams_.Set("prettyPrint", "false")
139601	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/reservations")
139602	urls += "?" + c.urlParams_.Encode()
139603	req, err := http.NewRequest("GET", urls, body)
139604	if err != nil {
139605		return nil, err
139606	}
139607	req.Header = reqHeaders
139608	googleapi.Expand(req.URL, map[string]string{
139609		"project": c.project,
139610	})
139611	return gensupport.SendRequest(c.ctx_, c.s.client, req)
139612}
139613
139614// Do executes the "compute.reservations.aggregatedList" call.
139615// Exactly one of *ReservationAggregatedList or error will be non-nil.
139616// Any non-2xx status code is an error. Response headers are in either
139617// *ReservationAggregatedList.ServerResponse.Header or (if a response
139618// was returned at all) in error.(*googleapi.Error).Header. Use
139619// googleapi.IsNotModified to check whether the returned error was
139620// because http.StatusNotModified was returned.
139621func (c *ReservationsAggregatedListCall) Do(opts ...googleapi.CallOption) (*ReservationAggregatedList, error) {
139622	gensupport.SetOptions(c.urlParams_, opts...)
139623	res, err := c.doRequest("json")
139624	if res != nil && res.StatusCode == http.StatusNotModified {
139625		if res.Body != nil {
139626			res.Body.Close()
139627		}
139628		return nil, &googleapi.Error{
139629			Code:   res.StatusCode,
139630			Header: res.Header,
139631		}
139632	}
139633	if err != nil {
139634		return nil, err
139635	}
139636	defer googleapi.CloseBody(res)
139637	if err := googleapi.CheckResponse(res); err != nil {
139638		return nil, err
139639	}
139640	ret := &ReservationAggregatedList{
139641		ServerResponse: googleapi.ServerResponse{
139642			Header:         res.Header,
139643			HTTPStatusCode: res.StatusCode,
139644		},
139645	}
139646	target := &ret
139647	if err := gensupport.DecodeResponse(target, res); err != nil {
139648		return nil, err
139649	}
139650	return ret, nil
139651	// {
139652	//   "description": "Retrieves an aggregated list of reservations. (== suppress_warning http-rest-shadowed ==)",
139653	//   "httpMethod": "GET",
139654	//   "id": "compute.reservations.aggregatedList",
139655	//   "parameterOrder": [
139656	//     "project"
139657	//   ],
139658	//   "parameters": {
139659	//     "filter": {
139660	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
139661	//       "location": "query",
139662	//       "type": "string"
139663	//     },
139664	//     "maxResults": {
139665	//       "default": "500",
139666	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
139667	//       "format": "uint32",
139668	//       "location": "query",
139669	//       "minimum": "0",
139670	//       "type": "integer"
139671	//     },
139672	//     "orderBy": {
139673	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
139674	//       "location": "query",
139675	//       "type": "string"
139676	//     },
139677	//     "pageToken": {
139678	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
139679	//       "location": "query",
139680	//       "type": "string"
139681	//     },
139682	//     "project": {
139683	//       "description": "Project ID for this request.",
139684	//       "location": "path",
139685	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
139686	//       "required": true,
139687	//       "type": "string"
139688	//     }
139689	//   },
139690	//   "path": "{project}/aggregated/reservations",
139691	//   "response": {
139692	//     "$ref": "ReservationAggregatedList"
139693	//   },
139694	//   "scopes": [
139695	//     "https://www.googleapis.com/auth/cloud-platform",
139696	//     "https://www.googleapis.com/auth/compute",
139697	//     "https://www.googleapis.com/auth/compute.readonly"
139698	//   ]
139699	// }
139700
139701}
139702
139703// Pages invokes f for each page of results.
139704// A non-nil error returned from f will halt the iteration.
139705// The provided context supersedes any context provided to the Context method.
139706func (c *ReservationsAggregatedListCall) Pages(ctx context.Context, f func(*ReservationAggregatedList) error) error {
139707	c.ctx_ = ctx
139708	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
139709	for {
139710		x, err := c.Do()
139711		if err != nil {
139712			return err
139713		}
139714		if err := f(x); err != nil {
139715			return err
139716		}
139717		if x.NextPageToken == "" {
139718			return nil
139719		}
139720		c.PageToken(x.NextPageToken)
139721	}
139722}
139723
139724// method id "compute.reservations.delete":
139725
139726type ReservationsDeleteCall struct {
139727	s           *Service
139728	project     string
139729	zone        string
139730	reservation string
139731	urlParams_  gensupport.URLParams
139732	ctx_        context.Context
139733	header_     http.Header
139734}
139735
139736// Delete: Deletes the specified reservation. (== suppress_warning
139737// http-rest-shadowed ==)
139738func (r *ReservationsService) Delete(project string, zone string, reservation string) *ReservationsDeleteCall {
139739	c := &ReservationsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
139740	c.project = project
139741	c.zone = zone
139742	c.reservation = reservation
139743	return c
139744}
139745
139746// RequestId sets the optional parameter "requestId": An optional
139747// request ID to identify requests. Specify a unique request ID so that
139748// if you must retry your request, the server will know to ignore the
139749// request if it has already been completed.
139750//
139751// For example, consider a situation where you make an initial request
139752// and the request times out. If you make the request again with the
139753// same request ID, the server can check if original operation with the
139754// same request ID was received, and if so, will ignore the second
139755// request. This prevents clients from accidentally creating duplicate
139756// commitments.
139757//
139758// The request ID must be a valid UUID with the exception that zero UUID
139759// is not supported (00000000-0000-0000-0000-000000000000).
139760func (c *ReservationsDeleteCall) RequestId(requestId string) *ReservationsDeleteCall {
139761	c.urlParams_.Set("requestId", requestId)
139762	return c
139763}
139764
139765// Fields allows partial responses to be retrieved. See
139766// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
139767// for more information.
139768func (c *ReservationsDeleteCall) Fields(s ...googleapi.Field) *ReservationsDeleteCall {
139769	c.urlParams_.Set("fields", googleapi.CombineFields(s))
139770	return c
139771}
139772
139773// Context sets the context to be used in this call's Do method. Any
139774// pending HTTP request will be aborted if the provided context is
139775// canceled.
139776func (c *ReservationsDeleteCall) Context(ctx context.Context) *ReservationsDeleteCall {
139777	c.ctx_ = ctx
139778	return c
139779}
139780
139781// Header returns an http.Header that can be modified by the caller to
139782// add HTTP headers to the request.
139783func (c *ReservationsDeleteCall) Header() http.Header {
139784	if c.header_ == nil {
139785		c.header_ = make(http.Header)
139786	}
139787	return c.header_
139788}
139789
139790func (c *ReservationsDeleteCall) doRequest(alt string) (*http.Response, error) {
139791	reqHeaders := make(http.Header)
139792	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
139793	for k, v := range c.header_ {
139794		reqHeaders[k] = v
139795	}
139796	reqHeaders.Set("User-Agent", c.s.userAgent())
139797	var body io.Reader = nil
139798	c.urlParams_.Set("alt", alt)
139799	c.urlParams_.Set("prettyPrint", "false")
139800	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/reservations/{reservation}")
139801	urls += "?" + c.urlParams_.Encode()
139802	req, err := http.NewRequest("DELETE", urls, body)
139803	if err != nil {
139804		return nil, err
139805	}
139806	req.Header = reqHeaders
139807	googleapi.Expand(req.URL, map[string]string{
139808		"project":     c.project,
139809		"zone":        c.zone,
139810		"reservation": c.reservation,
139811	})
139812	return gensupport.SendRequest(c.ctx_, c.s.client, req)
139813}
139814
139815// Do executes the "compute.reservations.delete" call.
139816// Exactly one of *Operation or error will be non-nil. Any non-2xx
139817// status code is an error. Response headers are in either
139818// *Operation.ServerResponse.Header or (if a response was returned at
139819// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
139820// to check whether the returned error was because
139821// http.StatusNotModified was returned.
139822func (c *ReservationsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
139823	gensupport.SetOptions(c.urlParams_, opts...)
139824	res, err := c.doRequest("json")
139825	if res != nil && res.StatusCode == http.StatusNotModified {
139826		if res.Body != nil {
139827			res.Body.Close()
139828		}
139829		return nil, &googleapi.Error{
139830			Code:   res.StatusCode,
139831			Header: res.Header,
139832		}
139833	}
139834	if err != nil {
139835		return nil, err
139836	}
139837	defer googleapi.CloseBody(res)
139838	if err := googleapi.CheckResponse(res); err != nil {
139839		return nil, err
139840	}
139841	ret := &Operation{
139842		ServerResponse: googleapi.ServerResponse{
139843			Header:         res.Header,
139844			HTTPStatusCode: res.StatusCode,
139845		},
139846	}
139847	target := &ret
139848	if err := gensupport.DecodeResponse(target, res); err != nil {
139849		return nil, err
139850	}
139851	return ret, nil
139852	// {
139853	//   "description": "Deletes the specified reservation. (== suppress_warning http-rest-shadowed ==)",
139854	//   "httpMethod": "DELETE",
139855	//   "id": "compute.reservations.delete",
139856	//   "parameterOrder": [
139857	//     "project",
139858	//     "zone",
139859	//     "reservation"
139860	//   ],
139861	//   "parameters": {
139862	//     "project": {
139863	//       "description": "Project ID for this request.",
139864	//       "location": "path",
139865	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
139866	//       "required": true,
139867	//       "type": "string"
139868	//     },
139869	//     "requestId": {
139870	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
139871	//       "location": "query",
139872	//       "type": "string"
139873	//     },
139874	//     "reservation": {
139875	//       "description": "Name of the reservation to delete.",
139876	//       "location": "path",
139877	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
139878	//       "required": true,
139879	//       "type": "string"
139880	//     },
139881	//     "zone": {
139882	//       "description": "Name of the zone for this request.",
139883	//       "location": "path",
139884	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
139885	//       "required": true,
139886	//       "type": "string"
139887	//     }
139888	//   },
139889	//   "path": "{project}/zones/{zone}/reservations/{reservation}",
139890	//   "response": {
139891	//     "$ref": "Operation"
139892	//   },
139893	//   "scopes": [
139894	//     "https://www.googleapis.com/auth/cloud-platform",
139895	//     "https://www.googleapis.com/auth/compute"
139896	//   ]
139897	// }
139898
139899}
139900
139901// method id "compute.reservations.get":
139902
139903type ReservationsGetCall struct {
139904	s            *Service
139905	project      string
139906	zone         string
139907	reservation  string
139908	urlParams_   gensupport.URLParams
139909	ifNoneMatch_ string
139910	ctx_         context.Context
139911	header_      http.Header
139912}
139913
139914// Get: Retrieves information about the specified reservation. (==
139915// suppress_warning http-rest-shadowed ==)
139916func (r *ReservationsService) Get(project string, zone string, reservation string) *ReservationsGetCall {
139917	c := &ReservationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
139918	c.project = project
139919	c.zone = zone
139920	c.reservation = reservation
139921	return c
139922}
139923
139924// Fields allows partial responses to be retrieved. See
139925// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
139926// for more information.
139927func (c *ReservationsGetCall) Fields(s ...googleapi.Field) *ReservationsGetCall {
139928	c.urlParams_.Set("fields", googleapi.CombineFields(s))
139929	return c
139930}
139931
139932// IfNoneMatch sets the optional parameter which makes the operation
139933// fail if the object's ETag matches the given value. This is useful for
139934// getting updates only after the object has changed since the last
139935// request. Use googleapi.IsNotModified to check whether the response
139936// error from Do is the result of In-None-Match.
139937func (c *ReservationsGetCall) IfNoneMatch(entityTag string) *ReservationsGetCall {
139938	c.ifNoneMatch_ = entityTag
139939	return c
139940}
139941
139942// Context sets the context to be used in this call's Do method. Any
139943// pending HTTP request will be aborted if the provided context is
139944// canceled.
139945func (c *ReservationsGetCall) Context(ctx context.Context) *ReservationsGetCall {
139946	c.ctx_ = ctx
139947	return c
139948}
139949
139950// Header returns an http.Header that can be modified by the caller to
139951// add HTTP headers to the request.
139952func (c *ReservationsGetCall) Header() http.Header {
139953	if c.header_ == nil {
139954		c.header_ = make(http.Header)
139955	}
139956	return c.header_
139957}
139958
139959func (c *ReservationsGetCall) doRequest(alt string) (*http.Response, error) {
139960	reqHeaders := make(http.Header)
139961	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
139962	for k, v := range c.header_ {
139963		reqHeaders[k] = v
139964	}
139965	reqHeaders.Set("User-Agent", c.s.userAgent())
139966	if c.ifNoneMatch_ != "" {
139967		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
139968	}
139969	var body io.Reader = nil
139970	c.urlParams_.Set("alt", alt)
139971	c.urlParams_.Set("prettyPrint", "false")
139972	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/reservations/{reservation}")
139973	urls += "?" + c.urlParams_.Encode()
139974	req, err := http.NewRequest("GET", urls, body)
139975	if err != nil {
139976		return nil, err
139977	}
139978	req.Header = reqHeaders
139979	googleapi.Expand(req.URL, map[string]string{
139980		"project":     c.project,
139981		"zone":        c.zone,
139982		"reservation": c.reservation,
139983	})
139984	return gensupport.SendRequest(c.ctx_, c.s.client, req)
139985}
139986
139987// Do executes the "compute.reservations.get" call.
139988// Exactly one of *Reservation or error will be non-nil. Any non-2xx
139989// status code is an error. Response headers are in either
139990// *Reservation.ServerResponse.Header or (if a response was returned at
139991// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
139992// to check whether the returned error was because
139993// http.StatusNotModified was returned.
139994func (c *ReservationsGetCall) Do(opts ...googleapi.CallOption) (*Reservation, error) {
139995	gensupport.SetOptions(c.urlParams_, opts...)
139996	res, err := c.doRequest("json")
139997	if res != nil && res.StatusCode == http.StatusNotModified {
139998		if res.Body != nil {
139999			res.Body.Close()
140000		}
140001		return nil, &googleapi.Error{
140002			Code:   res.StatusCode,
140003			Header: res.Header,
140004		}
140005	}
140006	if err != nil {
140007		return nil, err
140008	}
140009	defer googleapi.CloseBody(res)
140010	if err := googleapi.CheckResponse(res); err != nil {
140011		return nil, err
140012	}
140013	ret := &Reservation{
140014		ServerResponse: googleapi.ServerResponse{
140015			Header:         res.Header,
140016			HTTPStatusCode: res.StatusCode,
140017		},
140018	}
140019	target := &ret
140020	if err := gensupport.DecodeResponse(target, res); err != nil {
140021		return nil, err
140022	}
140023	return ret, nil
140024	// {
140025	//   "description": "Retrieves information about the specified reservation. (== suppress_warning http-rest-shadowed ==)",
140026	//   "httpMethod": "GET",
140027	//   "id": "compute.reservations.get",
140028	//   "parameterOrder": [
140029	//     "project",
140030	//     "zone",
140031	//     "reservation"
140032	//   ],
140033	//   "parameters": {
140034	//     "project": {
140035	//       "description": "Project ID for this request.",
140036	//       "location": "path",
140037	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
140038	//       "required": true,
140039	//       "type": "string"
140040	//     },
140041	//     "reservation": {
140042	//       "description": "Name of the reservation to retrieve.",
140043	//       "location": "path",
140044	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
140045	//       "required": true,
140046	//       "type": "string"
140047	//     },
140048	//     "zone": {
140049	//       "description": "Name of the zone for this request.",
140050	//       "location": "path",
140051	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
140052	//       "required": true,
140053	//       "type": "string"
140054	//     }
140055	//   },
140056	//   "path": "{project}/zones/{zone}/reservations/{reservation}",
140057	//   "response": {
140058	//     "$ref": "Reservation"
140059	//   },
140060	//   "scopes": [
140061	//     "https://www.googleapis.com/auth/cloud-platform",
140062	//     "https://www.googleapis.com/auth/compute",
140063	//     "https://www.googleapis.com/auth/compute.readonly"
140064	//   ]
140065	// }
140066
140067}
140068
140069// method id "compute.reservations.getIamPolicy":
140070
140071type ReservationsGetIamPolicyCall struct {
140072	s            *Service
140073	project      string
140074	zone         string
140075	resource     string
140076	urlParams_   gensupport.URLParams
140077	ifNoneMatch_ string
140078	ctx_         context.Context
140079	header_      http.Header
140080}
140081
140082// GetIamPolicy: Gets the access control policy for a resource. May be
140083// empty if no such policy or resource exists. (== suppress_warning
140084// http-rest-shadowed ==)
140085func (r *ReservationsService) GetIamPolicy(project string, zone string, resource string) *ReservationsGetIamPolicyCall {
140086	c := &ReservationsGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
140087	c.project = project
140088	c.zone = zone
140089	c.resource = resource
140090	return c
140091}
140092
140093// OptionsRequestedPolicyVersion sets the optional parameter
140094// "optionsRequestedPolicyVersion": Requested IAM Policy version.
140095func (c *ReservationsGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *ReservationsGetIamPolicyCall {
140096	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
140097	return c
140098}
140099
140100// Fields allows partial responses to be retrieved. See
140101// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
140102// for more information.
140103func (c *ReservationsGetIamPolicyCall) Fields(s ...googleapi.Field) *ReservationsGetIamPolicyCall {
140104	c.urlParams_.Set("fields", googleapi.CombineFields(s))
140105	return c
140106}
140107
140108// IfNoneMatch sets the optional parameter which makes the operation
140109// fail if the object's ETag matches the given value. This is useful for
140110// getting updates only after the object has changed since the last
140111// request. Use googleapi.IsNotModified to check whether the response
140112// error from Do is the result of In-None-Match.
140113func (c *ReservationsGetIamPolicyCall) IfNoneMatch(entityTag string) *ReservationsGetIamPolicyCall {
140114	c.ifNoneMatch_ = entityTag
140115	return c
140116}
140117
140118// Context sets the context to be used in this call's Do method. Any
140119// pending HTTP request will be aborted if the provided context is
140120// canceled.
140121func (c *ReservationsGetIamPolicyCall) Context(ctx context.Context) *ReservationsGetIamPolicyCall {
140122	c.ctx_ = ctx
140123	return c
140124}
140125
140126// Header returns an http.Header that can be modified by the caller to
140127// add HTTP headers to the request.
140128func (c *ReservationsGetIamPolicyCall) Header() http.Header {
140129	if c.header_ == nil {
140130		c.header_ = make(http.Header)
140131	}
140132	return c.header_
140133}
140134
140135func (c *ReservationsGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
140136	reqHeaders := make(http.Header)
140137	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
140138	for k, v := range c.header_ {
140139		reqHeaders[k] = v
140140	}
140141	reqHeaders.Set("User-Agent", c.s.userAgent())
140142	if c.ifNoneMatch_ != "" {
140143		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
140144	}
140145	var body io.Reader = nil
140146	c.urlParams_.Set("alt", alt)
140147	c.urlParams_.Set("prettyPrint", "false")
140148	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/reservations/{resource}/getIamPolicy")
140149	urls += "?" + c.urlParams_.Encode()
140150	req, err := http.NewRequest("GET", urls, body)
140151	if err != nil {
140152		return nil, err
140153	}
140154	req.Header = reqHeaders
140155	googleapi.Expand(req.URL, map[string]string{
140156		"project":  c.project,
140157		"zone":     c.zone,
140158		"resource": c.resource,
140159	})
140160	return gensupport.SendRequest(c.ctx_, c.s.client, req)
140161}
140162
140163// Do executes the "compute.reservations.getIamPolicy" call.
140164// Exactly one of *Policy or error will be non-nil. Any non-2xx status
140165// code is an error. Response headers are in either
140166// *Policy.ServerResponse.Header or (if a response was returned at all)
140167// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
140168// check whether the returned error was because http.StatusNotModified
140169// was returned.
140170func (c *ReservationsGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
140171	gensupport.SetOptions(c.urlParams_, opts...)
140172	res, err := c.doRequest("json")
140173	if res != nil && res.StatusCode == http.StatusNotModified {
140174		if res.Body != nil {
140175			res.Body.Close()
140176		}
140177		return nil, &googleapi.Error{
140178			Code:   res.StatusCode,
140179			Header: res.Header,
140180		}
140181	}
140182	if err != nil {
140183		return nil, err
140184	}
140185	defer googleapi.CloseBody(res)
140186	if err := googleapi.CheckResponse(res); err != nil {
140187		return nil, err
140188	}
140189	ret := &Policy{
140190		ServerResponse: googleapi.ServerResponse{
140191			Header:         res.Header,
140192			HTTPStatusCode: res.StatusCode,
140193		},
140194	}
140195	target := &ret
140196	if err := gensupport.DecodeResponse(target, res); err != nil {
140197		return nil, err
140198	}
140199	return ret, nil
140200	// {
140201	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists. (== suppress_warning http-rest-shadowed ==)",
140202	//   "httpMethod": "GET",
140203	//   "id": "compute.reservations.getIamPolicy",
140204	//   "parameterOrder": [
140205	//     "project",
140206	//     "zone",
140207	//     "resource"
140208	//   ],
140209	//   "parameters": {
140210	//     "optionsRequestedPolicyVersion": {
140211	//       "description": "Requested IAM Policy version.",
140212	//       "format": "int32",
140213	//       "location": "query",
140214	//       "type": "integer"
140215	//     },
140216	//     "project": {
140217	//       "description": "Project ID for this request.",
140218	//       "location": "path",
140219	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
140220	//       "required": true,
140221	//       "type": "string"
140222	//     },
140223	//     "resource": {
140224	//       "description": "Name or id of the resource for this request.",
140225	//       "location": "path",
140226	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
140227	//       "required": true,
140228	//       "type": "string"
140229	//     },
140230	//     "zone": {
140231	//       "description": "The name of the zone for this request.",
140232	//       "location": "path",
140233	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
140234	//       "required": true,
140235	//       "type": "string"
140236	//     }
140237	//   },
140238	//   "path": "{project}/zones/{zone}/reservations/{resource}/getIamPolicy",
140239	//   "response": {
140240	//     "$ref": "Policy"
140241	//   },
140242	//   "scopes": [
140243	//     "https://www.googleapis.com/auth/cloud-platform",
140244	//     "https://www.googleapis.com/auth/compute",
140245	//     "https://www.googleapis.com/auth/compute.readonly"
140246	//   ]
140247	// }
140248
140249}
140250
140251// method id "compute.reservations.insert":
140252
140253type ReservationsInsertCall struct {
140254	s           *Service
140255	project     string
140256	zone        string
140257	reservation *Reservation
140258	urlParams_  gensupport.URLParams
140259	ctx_        context.Context
140260	header_     http.Header
140261}
140262
140263// Insert: Creates a new reservation. For more information, read
140264// Reserving zonal resources. (== suppress_warning http-rest-shadowed
140265// ==)
140266func (r *ReservationsService) Insert(project string, zone string, reservation *Reservation) *ReservationsInsertCall {
140267	c := &ReservationsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
140268	c.project = project
140269	c.zone = zone
140270	c.reservation = reservation
140271	return c
140272}
140273
140274// RequestId sets the optional parameter "requestId": An optional
140275// request ID to identify requests. Specify a unique request ID so that
140276// if you must retry your request, the server will know to ignore the
140277// request if it has already been completed.
140278//
140279// For example, consider a situation where you make an initial request
140280// and the request times out. If you make the request again with the
140281// same request ID, the server can check if original operation with the
140282// same request ID was received, and if so, will ignore the second
140283// request. This prevents clients from accidentally creating duplicate
140284// commitments.
140285//
140286// The request ID must be a valid UUID with the exception that zero UUID
140287// is not supported (00000000-0000-0000-0000-000000000000).
140288func (c *ReservationsInsertCall) RequestId(requestId string) *ReservationsInsertCall {
140289	c.urlParams_.Set("requestId", requestId)
140290	return c
140291}
140292
140293// Fields allows partial responses to be retrieved. See
140294// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
140295// for more information.
140296func (c *ReservationsInsertCall) Fields(s ...googleapi.Field) *ReservationsInsertCall {
140297	c.urlParams_.Set("fields", googleapi.CombineFields(s))
140298	return c
140299}
140300
140301// Context sets the context to be used in this call's Do method. Any
140302// pending HTTP request will be aborted if the provided context is
140303// canceled.
140304func (c *ReservationsInsertCall) Context(ctx context.Context) *ReservationsInsertCall {
140305	c.ctx_ = ctx
140306	return c
140307}
140308
140309// Header returns an http.Header that can be modified by the caller to
140310// add HTTP headers to the request.
140311func (c *ReservationsInsertCall) Header() http.Header {
140312	if c.header_ == nil {
140313		c.header_ = make(http.Header)
140314	}
140315	return c.header_
140316}
140317
140318func (c *ReservationsInsertCall) doRequest(alt string) (*http.Response, error) {
140319	reqHeaders := make(http.Header)
140320	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
140321	for k, v := range c.header_ {
140322		reqHeaders[k] = v
140323	}
140324	reqHeaders.Set("User-Agent", c.s.userAgent())
140325	var body io.Reader = nil
140326	body, err := googleapi.WithoutDataWrapper.JSONReader(c.reservation)
140327	if err != nil {
140328		return nil, err
140329	}
140330	reqHeaders.Set("Content-Type", "application/json")
140331	c.urlParams_.Set("alt", alt)
140332	c.urlParams_.Set("prettyPrint", "false")
140333	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/reservations")
140334	urls += "?" + c.urlParams_.Encode()
140335	req, err := http.NewRequest("POST", urls, body)
140336	if err != nil {
140337		return nil, err
140338	}
140339	req.Header = reqHeaders
140340	googleapi.Expand(req.URL, map[string]string{
140341		"project": c.project,
140342		"zone":    c.zone,
140343	})
140344	return gensupport.SendRequest(c.ctx_, c.s.client, req)
140345}
140346
140347// Do executes the "compute.reservations.insert" call.
140348// Exactly one of *Operation or error will be non-nil. Any non-2xx
140349// status code is an error. Response headers are in either
140350// *Operation.ServerResponse.Header or (if a response was returned at
140351// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
140352// to check whether the returned error was because
140353// http.StatusNotModified was returned.
140354func (c *ReservationsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
140355	gensupport.SetOptions(c.urlParams_, opts...)
140356	res, err := c.doRequest("json")
140357	if res != nil && res.StatusCode == http.StatusNotModified {
140358		if res.Body != nil {
140359			res.Body.Close()
140360		}
140361		return nil, &googleapi.Error{
140362			Code:   res.StatusCode,
140363			Header: res.Header,
140364		}
140365	}
140366	if err != nil {
140367		return nil, err
140368	}
140369	defer googleapi.CloseBody(res)
140370	if err := googleapi.CheckResponse(res); err != nil {
140371		return nil, err
140372	}
140373	ret := &Operation{
140374		ServerResponse: googleapi.ServerResponse{
140375			Header:         res.Header,
140376			HTTPStatusCode: res.StatusCode,
140377		},
140378	}
140379	target := &ret
140380	if err := gensupport.DecodeResponse(target, res); err != nil {
140381		return nil, err
140382	}
140383	return ret, nil
140384	// {
140385	//   "description": "Creates a new reservation. For more information, read Reserving zonal resources. (== suppress_warning http-rest-shadowed ==)",
140386	//   "httpMethod": "POST",
140387	//   "id": "compute.reservations.insert",
140388	//   "parameterOrder": [
140389	//     "project",
140390	//     "zone"
140391	//   ],
140392	//   "parameters": {
140393	//     "project": {
140394	//       "description": "Project ID for this request.",
140395	//       "location": "path",
140396	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
140397	//       "required": true,
140398	//       "type": "string"
140399	//     },
140400	//     "requestId": {
140401	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
140402	//       "location": "query",
140403	//       "type": "string"
140404	//     },
140405	//     "zone": {
140406	//       "description": "Name of the zone for this request.",
140407	//       "location": "path",
140408	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
140409	//       "required": true,
140410	//       "type": "string"
140411	//     }
140412	//   },
140413	//   "path": "{project}/zones/{zone}/reservations",
140414	//   "request": {
140415	//     "$ref": "Reservation"
140416	//   },
140417	//   "response": {
140418	//     "$ref": "Operation"
140419	//   },
140420	//   "scopes": [
140421	//     "https://www.googleapis.com/auth/cloud-platform",
140422	//     "https://www.googleapis.com/auth/compute"
140423	//   ]
140424	// }
140425
140426}
140427
140428// method id "compute.reservations.list":
140429
140430type ReservationsListCall struct {
140431	s            *Service
140432	project      string
140433	zone         string
140434	urlParams_   gensupport.URLParams
140435	ifNoneMatch_ string
140436	ctx_         context.Context
140437	header_      http.Header
140438}
140439
140440// List: A list of all the reservations that have been configured for
140441// the specified project in specified zone. (== suppress_warning
140442// http-rest-shadowed ==)
140443func (r *ReservationsService) List(project string, zone string) *ReservationsListCall {
140444	c := &ReservationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
140445	c.project = project
140446	c.zone = zone
140447	return c
140448}
140449
140450// Filter sets the optional parameter "filter": A filter expression that
140451// filters resources listed in the response. The expression must specify
140452// the field name, a comparison operator, and the value that you want to
140453// use for filtering. The value must be a string, a number, or a
140454// boolean. The comparison operator must be either =, !=, >, or <.
140455//
140456// For example, if you are filtering Compute Engine instances, you can
140457// exclude instances named example-instance by specifying name !=
140458// example-instance.
140459//
140460// You can also filter nested fields. For example, you could specify
140461// scheduling.automaticRestart = false to include instances only if they
140462// are not scheduled for automatic restarts. You can use filtering on
140463// nested fields to filter based on resource labels.
140464//
140465// To filter on multiple expressions, provide each separate expression
140466// within parentheses. For example, (scheduling.automaticRestart = true)
140467// (cpuPlatform = "Intel Skylake"). By default, each expression is an
140468// AND expression. However, you can include AND and OR expressions
140469// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
140470// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
140471// true).
140472func (c *ReservationsListCall) Filter(filter string) *ReservationsListCall {
140473	c.urlParams_.Set("filter", filter)
140474	return c
140475}
140476
140477// MaxResults sets the optional parameter "maxResults": The maximum
140478// number of results per page that should be returned. If the number of
140479// available results is larger than maxResults, Compute Engine returns a
140480// nextPageToken that can be used to get the next page of results in
140481// subsequent list requests. Acceptable values are 0 to 500, inclusive.
140482// (Default: 500)
140483func (c *ReservationsListCall) MaxResults(maxResults int64) *ReservationsListCall {
140484	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
140485	return c
140486}
140487
140488// OrderBy sets the optional parameter "orderBy": Sorts list results by
140489// a certain order. By default, results are returned in alphanumerical
140490// order based on the resource name.
140491//
140492// You can also sort results in descending order based on the creation
140493// timestamp using orderBy="creationTimestamp desc". This sorts results
140494// based on the creationTimestamp field in reverse chronological order
140495// (newest result first). Use this to sort resources like operations so
140496// that the newest operation is returned first.
140497//
140498// Currently, only sorting by name or creationTimestamp desc is
140499// supported.
140500func (c *ReservationsListCall) OrderBy(orderBy string) *ReservationsListCall {
140501	c.urlParams_.Set("orderBy", orderBy)
140502	return c
140503}
140504
140505// PageToken sets the optional parameter "pageToken": Specifies a page
140506// token to use. Set pageToken to the nextPageToken returned by a
140507// previous list request to get the next page of results.
140508func (c *ReservationsListCall) PageToken(pageToken string) *ReservationsListCall {
140509	c.urlParams_.Set("pageToken", pageToken)
140510	return c
140511}
140512
140513// Fields allows partial responses to be retrieved. See
140514// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
140515// for more information.
140516func (c *ReservationsListCall) Fields(s ...googleapi.Field) *ReservationsListCall {
140517	c.urlParams_.Set("fields", googleapi.CombineFields(s))
140518	return c
140519}
140520
140521// IfNoneMatch sets the optional parameter which makes the operation
140522// fail if the object's ETag matches the given value. This is useful for
140523// getting updates only after the object has changed since the last
140524// request. Use googleapi.IsNotModified to check whether the response
140525// error from Do is the result of In-None-Match.
140526func (c *ReservationsListCall) IfNoneMatch(entityTag string) *ReservationsListCall {
140527	c.ifNoneMatch_ = entityTag
140528	return c
140529}
140530
140531// Context sets the context to be used in this call's Do method. Any
140532// pending HTTP request will be aborted if the provided context is
140533// canceled.
140534func (c *ReservationsListCall) Context(ctx context.Context) *ReservationsListCall {
140535	c.ctx_ = ctx
140536	return c
140537}
140538
140539// Header returns an http.Header that can be modified by the caller to
140540// add HTTP headers to the request.
140541func (c *ReservationsListCall) Header() http.Header {
140542	if c.header_ == nil {
140543		c.header_ = make(http.Header)
140544	}
140545	return c.header_
140546}
140547
140548func (c *ReservationsListCall) doRequest(alt string) (*http.Response, error) {
140549	reqHeaders := make(http.Header)
140550	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
140551	for k, v := range c.header_ {
140552		reqHeaders[k] = v
140553	}
140554	reqHeaders.Set("User-Agent", c.s.userAgent())
140555	if c.ifNoneMatch_ != "" {
140556		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
140557	}
140558	var body io.Reader = nil
140559	c.urlParams_.Set("alt", alt)
140560	c.urlParams_.Set("prettyPrint", "false")
140561	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/reservations")
140562	urls += "?" + c.urlParams_.Encode()
140563	req, err := http.NewRequest("GET", urls, body)
140564	if err != nil {
140565		return nil, err
140566	}
140567	req.Header = reqHeaders
140568	googleapi.Expand(req.URL, map[string]string{
140569		"project": c.project,
140570		"zone":    c.zone,
140571	})
140572	return gensupport.SendRequest(c.ctx_, c.s.client, req)
140573}
140574
140575// Do executes the "compute.reservations.list" call.
140576// Exactly one of *ReservationList or error will be non-nil. Any non-2xx
140577// status code is an error. Response headers are in either
140578// *ReservationList.ServerResponse.Header or (if a response was returned
140579// at all) in error.(*googleapi.Error).Header. Use
140580// googleapi.IsNotModified to check whether the returned error was
140581// because http.StatusNotModified was returned.
140582func (c *ReservationsListCall) Do(opts ...googleapi.CallOption) (*ReservationList, error) {
140583	gensupport.SetOptions(c.urlParams_, opts...)
140584	res, err := c.doRequest("json")
140585	if res != nil && res.StatusCode == http.StatusNotModified {
140586		if res.Body != nil {
140587			res.Body.Close()
140588		}
140589		return nil, &googleapi.Error{
140590			Code:   res.StatusCode,
140591			Header: res.Header,
140592		}
140593	}
140594	if err != nil {
140595		return nil, err
140596	}
140597	defer googleapi.CloseBody(res)
140598	if err := googleapi.CheckResponse(res); err != nil {
140599		return nil, err
140600	}
140601	ret := &ReservationList{
140602		ServerResponse: googleapi.ServerResponse{
140603			Header:         res.Header,
140604			HTTPStatusCode: res.StatusCode,
140605		},
140606	}
140607	target := &ret
140608	if err := gensupport.DecodeResponse(target, res); err != nil {
140609		return nil, err
140610	}
140611	return ret, nil
140612	// {
140613	//   "description": "A list of all the reservations that have been configured for the specified project in specified zone. (== suppress_warning http-rest-shadowed ==)",
140614	//   "httpMethod": "GET",
140615	//   "id": "compute.reservations.list",
140616	//   "parameterOrder": [
140617	//     "project",
140618	//     "zone"
140619	//   ],
140620	//   "parameters": {
140621	//     "filter": {
140622	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
140623	//       "location": "query",
140624	//       "type": "string"
140625	//     },
140626	//     "maxResults": {
140627	//       "default": "500",
140628	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
140629	//       "format": "uint32",
140630	//       "location": "query",
140631	//       "minimum": "0",
140632	//       "type": "integer"
140633	//     },
140634	//     "orderBy": {
140635	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
140636	//       "location": "query",
140637	//       "type": "string"
140638	//     },
140639	//     "pageToken": {
140640	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
140641	//       "location": "query",
140642	//       "type": "string"
140643	//     },
140644	//     "project": {
140645	//       "description": "Project ID for this request.",
140646	//       "location": "path",
140647	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
140648	//       "required": true,
140649	//       "type": "string"
140650	//     },
140651	//     "zone": {
140652	//       "description": "Name of the zone for this request.",
140653	//       "location": "path",
140654	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
140655	//       "required": true,
140656	//       "type": "string"
140657	//     }
140658	//   },
140659	//   "path": "{project}/zones/{zone}/reservations",
140660	//   "response": {
140661	//     "$ref": "ReservationList"
140662	//   },
140663	//   "scopes": [
140664	//     "https://www.googleapis.com/auth/cloud-platform",
140665	//     "https://www.googleapis.com/auth/compute",
140666	//     "https://www.googleapis.com/auth/compute.readonly"
140667	//   ]
140668	// }
140669
140670}
140671
140672// Pages invokes f for each page of results.
140673// A non-nil error returned from f will halt the iteration.
140674// The provided context supersedes any context provided to the Context method.
140675func (c *ReservationsListCall) Pages(ctx context.Context, f func(*ReservationList) error) error {
140676	c.ctx_ = ctx
140677	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
140678	for {
140679		x, err := c.Do()
140680		if err != nil {
140681			return err
140682		}
140683		if err := f(x); err != nil {
140684			return err
140685		}
140686		if x.NextPageToken == "" {
140687			return nil
140688		}
140689		c.PageToken(x.NextPageToken)
140690	}
140691}
140692
140693// method id "compute.reservations.resize":
140694
140695type ReservationsResizeCall struct {
140696	s                         *Service
140697	project                   string
140698	zone                      string
140699	reservation               string
140700	reservationsresizerequest *ReservationsResizeRequest
140701	urlParams_                gensupport.URLParams
140702	ctx_                      context.Context
140703	header_                   http.Header
140704}
140705
140706// Resize: Resizes the reservation (applicable to standalone
140707// reservations only). For more information, read Modifying
140708// reservations. (== suppress_warning http-rest-shadowed ==)
140709func (r *ReservationsService) Resize(project string, zone string, reservation string, reservationsresizerequest *ReservationsResizeRequest) *ReservationsResizeCall {
140710	c := &ReservationsResizeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
140711	c.project = project
140712	c.zone = zone
140713	c.reservation = reservation
140714	c.reservationsresizerequest = reservationsresizerequest
140715	return c
140716}
140717
140718// RequestId sets the optional parameter "requestId": An optional
140719// request ID to identify requests. Specify a unique request ID so that
140720// if you must retry your request, the server will know to ignore the
140721// request if it has already been completed.
140722//
140723// For example, consider a situation where you make an initial request
140724// and the request times out. If you make the request again with the
140725// same request ID, the server can check if original operation with the
140726// same request ID was received, and if so, will ignore the second
140727// request. This prevents clients from accidentally creating duplicate
140728// commitments.
140729//
140730// The request ID must be a valid UUID with the exception that zero UUID
140731// is not supported (00000000-0000-0000-0000-000000000000).
140732func (c *ReservationsResizeCall) RequestId(requestId string) *ReservationsResizeCall {
140733	c.urlParams_.Set("requestId", requestId)
140734	return c
140735}
140736
140737// Fields allows partial responses to be retrieved. See
140738// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
140739// for more information.
140740func (c *ReservationsResizeCall) Fields(s ...googleapi.Field) *ReservationsResizeCall {
140741	c.urlParams_.Set("fields", googleapi.CombineFields(s))
140742	return c
140743}
140744
140745// Context sets the context to be used in this call's Do method. Any
140746// pending HTTP request will be aborted if the provided context is
140747// canceled.
140748func (c *ReservationsResizeCall) Context(ctx context.Context) *ReservationsResizeCall {
140749	c.ctx_ = ctx
140750	return c
140751}
140752
140753// Header returns an http.Header that can be modified by the caller to
140754// add HTTP headers to the request.
140755func (c *ReservationsResizeCall) Header() http.Header {
140756	if c.header_ == nil {
140757		c.header_ = make(http.Header)
140758	}
140759	return c.header_
140760}
140761
140762func (c *ReservationsResizeCall) doRequest(alt string) (*http.Response, error) {
140763	reqHeaders := make(http.Header)
140764	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
140765	for k, v := range c.header_ {
140766		reqHeaders[k] = v
140767	}
140768	reqHeaders.Set("User-Agent", c.s.userAgent())
140769	var body io.Reader = nil
140770	body, err := googleapi.WithoutDataWrapper.JSONReader(c.reservationsresizerequest)
140771	if err != nil {
140772		return nil, err
140773	}
140774	reqHeaders.Set("Content-Type", "application/json")
140775	c.urlParams_.Set("alt", alt)
140776	c.urlParams_.Set("prettyPrint", "false")
140777	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/reservations/{reservation}/resize")
140778	urls += "?" + c.urlParams_.Encode()
140779	req, err := http.NewRequest("POST", urls, body)
140780	if err != nil {
140781		return nil, err
140782	}
140783	req.Header = reqHeaders
140784	googleapi.Expand(req.URL, map[string]string{
140785		"project":     c.project,
140786		"zone":        c.zone,
140787		"reservation": c.reservation,
140788	})
140789	return gensupport.SendRequest(c.ctx_, c.s.client, req)
140790}
140791
140792// Do executes the "compute.reservations.resize" call.
140793// Exactly one of *Operation or error will be non-nil. Any non-2xx
140794// status code is an error. Response headers are in either
140795// *Operation.ServerResponse.Header or (if a response was returned at
140796// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
140797// to check whether the returned error was because
140798// http.StatusNotModified was returned.
140799func (c *ReservationsResizeCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
140800	gensupport.SetOptions(c.urlParams_, opts...)
140801	res, err := c.doRequest("json")
140802	if res != nil && res.StatusCode == http.StatusNotModified {
140803		if res.Body != nil {
140804			res.Body.Close()
140805		}
140806		return nil, &googleapi.Error{
140807			Code:   res.StatusCode,
140808			Header: res.Header,
140809		}
140810	}
140811	if err != nil {
140812		return nil, err
140813	}
140814	defer googleapi.CloseBody(res)
140815	if err := googleapi.CheckResponse(res); err != nil {
140816		return nil, err
140817	}
140818	ret := &Operation{
140819		ServerResponse: googleapi.ServerResponse{
140820			Header:         res.Header,
140821			HTTPStatusCode: res.StatusCode,
140822		},
140823	}
140824	target := &ret
140825	if err := gensupport.DecodeResponse(target, res); err != nil {
140826		return nil, err
140827	}
140828	return ret, nil
140829	// {
140830	//   "description": "Resizes the reservation (applicable to standalone reservations only). For more information, read Modifying reservations. (== suppress_warning http-rest-shadowed ==)",
140831	//   "httpMethod": "POST",
140832	//   "id": "compute.reservations.resize",
140833	//   "parameterOrder": [
140834	//     "project",
140835	//     "zone",
140836	//     "reservation"
140837	//   ],
140838	//   "parameters": {
140839	//     "project": {
140840	//       "description": "Project ID for this request.",
140841	//       "location": "path",
140842	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
140843	//       "required": true,
140844	//       "type": "string"
140845	//     },
140846	//     "requestId": {
140847	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
140848	//       "location": "query",
140849	//       "type": "string"
140850	//     },
140851	//     "reservation": {
140852	//       "description": "Name of the reservation to update.",
140853	//       "location": "path",
140854	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
140855	//       "required": true,
140856	//       "type": "string"
140857	//     },
140858	//     "zone": {
140859	//       "description": "Name of the zone for this request.",
140860	//       "location": "path",
140861	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
140862	//       "required": true,
140863	//       "type": "string"
140864	//     }
140865	//   },
140866	//   "path": "{project}/zones/{zone}/reservations/{reservation}/resize",
140867	//   "request": {
140868	//     "$ref": "ReservationsResizeRequest"
140869	//   },
140870	//   "response": {
140871	//     "$ref": "Operation"
140872	//   },
140873	//   "scopes": [
140874	//     "https://www.googleapis.com/auth/cloud-platform",
140875	//     "https://www.googleapis.com/auth/compute"
140876	//   ]
140877	// }
140878
140879}
140880
140881// method id "compute.reservations.setIamPolicy":
140882
140883type ReservationsSetIamPolicyCall struct {
140884	s                    *Service
140885	project              string
140886	zone                 string
140887	resource             string
140888	zonesetpolicyrequest *ZoneSetPolicyRequest
140889	urlParams_           gensupport.URLParams
140890	ctx_                 context.Context
140891	header_              http.Header
140892}
140893
140894// SetIamPolicy: Sets the access control policy on the specified
140895// resource. Replaces any existing policy. (== suppress_warning
140896// http-rest-shadowed ==)
140897func (r *ReservationsService) SetIamPolicy(project string, zone string, resource string, zonesetpolicyrequest *ZoneSetPolicyRequest) *ReservationsSetIamPolicyCall {
140898	c := &ReservationsSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
140899	c.project = project
140900	c.zone = zone
140901	c.resource = resource
140902	c.zonesetpolicyrequest = zonesetpolicyrequest
140903	return c
140904}
140905
140906// Fields allows partial responses to be retrieved. See
140907// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
140908// for more information.
140909func (c *ReservationsSetIamPolicyCall) Fields(s ...googleapi.Field) *ReservationsSetIamPolicyCall {
140910	c.urlParams_.Set("fields", googleapi.CombineFields(s))
140911	return c
140912}
140913
140914// Context sets the context to be used in this call's Do method. Any
140915// pending HTTP request will be aborted if the provided context is
140916// canceled.
140917func (c *ReservationsSetIamPolicyCall) Context(ctx context.Context) *ReservationsSetIamPolicyCall {
140918	c.ctx_ = ctx
140919	return c
140920}
140921
140922// Header returns an http.Header that can be modified by the caller to
140923// add HTTP headers to the request.
140924func (c *ReservationsSetIamPolicyCall) Header() http.Header {
140925	if c.header_ == nil {
140926		c.header_ = make(http.Header)
140927	}
140928	return c.header_
140929}
140930
140931func (c *ReservationsSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
140932	reqHeaders := make(http.Header)
140933	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
140934	for k, v := range c.header_ {
140935		reqHeaders[k] = v
140936	}
140937	reqHeaders.Set("User-Agent", c.s.userAgent())
140938	var body io.Reader = nil
140939	body, err := googleapi.WithoutDataWrapper.JSONReader(c.zonesetpolicyrequest)
140940	if err != nil {
140941		return nil, err
140942	}
140943	reqHeaders.Set("Content-Type", "application/json")
140944	c.urlParams_.Set("alt", alt)
140945	c.urlParams_.Set("prettyPrint", "false")
140946	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/reservations/{resource}/setIamPolicy")
140947	urls += "?" + c.urlParams_.Encode()
140948	req, err := http.NewRequest("POST", urls, body)
140949	if err != nil {
140950		return nil, err
140951	}
140952	req.Header = reqHeaders
140953	googleapi.Expand(req.URL, map[string]string{
140954		"project":  c.project,
140955		"zone":     c.zone,
140956		"resource": c.resource,
140957	})
140958	return gensupport.SendRequest(c.ctx_, c.s.client, req)
140959}
140960
140961// Do executes the "compute.reservations.setIamPolicy" call.
140962// Exactly one of *Policy or error will be non-nil. Any non-2xx status
140963// code is an error. Response headers are in either
140964// *Policy.ServerResponse.Header or (if a response was returned at all)
140965// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
140966// check whether the returned error was because http.StatusNotModified
140967// was returned.
140968func (c *ReservationsSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
140969	gensupport.SetOptions(c.urlParams_, opts...)
140970	res, err := c.doRequest("json")
140971	if res != nil && res.StatusCode == http.StatusNotModified {
140972		if res.Body != nil {
140973			res.Body.Close()
140974		}
140975		return nil, &googleapi.Error{
140976			Code:   res.StatusCode,
140977			Header: res.Header,
140978		}
140979	}
140980	if err != nil {
140981		return nil, err
140982	}
140983	defer googleapi.CloseBody(res)
140984	if err := googleapi.CheckResponse(res); err != nil {
140985		return nil, err
140986	}
140987	ret := &Policy{
140988		ServerResponse: googleapi.ServerResponse{
140989			Header:         res.Header,
140990			HTTPStatusCode: res.StatusCode,
140991		},
140992	}
140993	target := &ret
140994	if err := gensupport.DecodeResponse(target, res); err != nil {
140995		return nil, err
140996	}
140997	return ret, nil
140998	// {
140999	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy. (== suppress_warning http-rest-shadowed ==)",
141000	//   "httpMethod": "POST",
141001	//   "id": "compute.reservations.setIamPolicy",
141002	//   "parameterOrder": [
141003	//     "project",
141004	//     "zone",
141005	//     "resource"
141006	//   ],
141007	//   "parameters": {
141008	//     "project": {
141009	//       "description": "Project ID for this request.",
141010	//       "location": "path",
141011	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
141012	//       "required": true,
141013	//       "type": "string"
141014	//     },
141015	//     "resource": {
141016	//       "description": "Name or id of the resource for this request.",
141017	//       "location": "path",
141018	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
141019	//       "required": true,
141020	//       "type": "string"
141021	//     },
141022	//     "zone": {
141023	//       "description": "The name of the zone for this request.",
141024	//       "location": "path",
141025	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
141026	//       "required": true,
141027	//       "type": "string"
141028	//     }
141029	//   },
141030	//   "path": "{project}/zones/{zone}/reservations/{resource}/setIamPolicy",
141031	//   "request": {
141032	//     "$ref": "ZoneSetPolicyRequest"
141033	//   },
141034	//   "response": {
141035	//     "$ref": "Policy"
141036	//   },
141037	//   "scopes": [
141038	//     "https://www.googleapis.com/auth/cloud-platform",
141039	//     "https://www.googleapis.com/auth/compute"
141040	//   ]
141041	// }
141042
141043}
141044
141045// method id "compute.reservations.testIamPermissions":
141046
141047type ReservationsTestIamPermissionsCall struct {
141048	s                      *Service
141049	project                string
141050	zone                   string
141051	resource               string
141052	testpermissionsrequest *TestPermissionsRequest
141053	urlParams_             gensupport.URLParams
141054	ctx_                   context.Context
141055	header_                http.Header
141056}
141057
141058// TestIamPermissions: Returns permissions that a caller has on the
141059// specified resource. (== suppress_warning http-rest-shadowed ==)
141060func (r *ReservationsService) TestIamPermissions(project string, zone string, resource string, testpermissionsrequest *TestPermissionsRequest) *ReservationsTestIamPermissionsCall {
141061	c := &ReservationsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
141062	c.project = project
141063	c.zone = zone
141064	c.resource = resource
141065	c.testpermissionsrequest = testpermissionsrequest
141066	return c
141067}
141068
141069// Fields allows partial responses to be retrieved. See
141070// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
141071// for more information.
141072func (c *ReservationsTestIamPermissionsCall) Fields(s ...googleapi.Field) *ReservationsTestIamPermissionsCall {
141073	c.urlParams_.Set("fields", googleapi.CombineFields(s))
141074	return c
141075}
141076
141077// Context sets the context to be used in this call's Do method. Any
141078// pending HTTP request will be aborted if the provided context is
141079// canceled.
141080func (c *ReservationsTestIamPermissionsCall) Context(ctx context.Context) *ReservationsTestIamPermissionsCall {
141081	c.ctx_ = ctx
141082	return c
141083}
141084
141085// Header returns an http.Header that can be modified by the caller to
141086// add HTTP headers to the request.
141087func (c *ReservationsTestIamPermissionsCall) Header() http.Header {
141088	if c.header_ == nil {
141089		c.header_ = make(http.Header)
141090	}
141091	return c.header_
141092}
141093
141094func (c *ReservationsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
141095	reqHeaders := make(http.Header)
141096	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
141097	for k, v := range c.header_ {
141098		reqHeaders[k] = v
141099	}
141100	reqHeaders.Set("User-Agent", c.s.userAgent())
141101	var body io.Reader = nil
141102	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
141103	if err != nil {
141104		return nil, err
141105	}
141106	reqHeaders.Set("Content-Type", "application/json")
141107	c.urlParams_.Set("alt", alt)
141108	c.urlParams_.Set("prettyPrint", "false")
141109	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/reservations/{resource}/testIamPermissions")
141110	urls += "?" + c.urlParams_.Encode()
141111	req, err := http.NewRequest("POST", urls, body)
141112	if err != nil {
141113		return nil, err
141114	}
141115	req.Header = reqHeaders
141116	googleapi.Expand(req.URL, map[string]string{
141117		"project":  c.project,
141118		"zone":     c.zone,
141119		"resource": c.resource,
141120	})
141121	return gensupport.SendRequest(c.ctx_, c.s.client, req)
141122}
141123
141124// Do executes the "compute.reservations.testIamPermissions" call.
141125// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
141126// non-2xx status code is an error. Response headers are in either
141127// *TestPermissionsResponse.ServerResponse.Header or (if a response was
141128// returned at all) in error.(*googleapi.Error).Header. Use
141129// googleapi.IsNotModified to check whether the returned error was
141130// because http.StatusNotModified was returned.
141131func (c *ReservationsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
141132	gensupport.SetOptions(c.urlParams_, opts...)
141133	res, err := c.doRequest("json")
141134	if res != nil && res.StatusCode == http.StatusNotModified {
141135		if res.Body != nil {
141136			res.Body.Close()
141137		}
141138		return nil, &googleapi.Error{
141139			Code:   res.StatusCode,
141140			Header: res.Header,
141141		}
141142	}
141143	if err != nil {
141144		return nil, err
141145	}
141146	defer googleapi.CloseBody(res)
141147	if err := googleapi.CheckResponse(res); err != nil {
141148		return nil, err
141149	}
141150	ret := &TestPermissionsResponse{
141151		ServerResponse: googleapi.ServerResponse{
141152			Header:         res.Header,
141153			HTTPStatusCode: res.StatusCode,
141154		},
141155	}
141156	target := &ret
141157	if err := gensupport.DecodeResponse(target, res); err != nil {
141158		return nil, err
141159	}
141160	return ret, nil
141161	// {
141162	//   "description": "Returns permissions that a caller has on the specified resource. (== suppress_warning http-rest-shadowed ==)",
141163	//   "httpMethod": "POST",
141164	//   "id": "compute.reservations.testIamPermissions",
141165	//   "parameterOrder": [
141166	//     "project",
141167	//     "zone",
141168	//     "resource"
141169	//   ],
141170	//   "parameters": {
141171	//     "project": {
141172	//       "description": "Project ID for this request.",
141173	//       "location": "path",
141174	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
141175	//       "required": true,
141176	//       "type": "string"
141177	//     },
141178	//     "resource": {
141179	//       "description": "Name or id of the resource for this request.",
141180	//       "location": "path",
141181	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
141182	//       "required": true,
141183	//       "type": "string"
141184	//     },
141185	//     "zone": {
141186	//       "description": "The name of the zone for this request.",
141187	//       "location": "path",
141188	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
141189	//       "required": true,
141190	//       "type": "string"
141191	//     }
141192	//   },
141193	//   "path": "{project}/zones/{zone}/reservations/{resource}/testIamPermissions",
141194	//   "request": {
141195	//     "$ref": "TestPermissionsRequest"
141196	//   },
141197	//   "response": {
141198	//     "$ref": "TestPermissionsResponse"
141199	//   },
141200	//   "scopes": [
141201	//     "https://www.googleapis.com/auth/cloud-platform",
141202	//     "https://www.googleapis.com/auth/compute",
141203	//     "https://www.googleapis.com/auth/compute.readonly"
141204	//   ]
141205	// }
141206
141207}
141208
141209// method id "compute.resourcePolicies.aggregatedList":
141210
141211type ResourcePoliciesAggregatedListCall struct {
141212	s            *Service
141213	project      string
141214	urlParams_   gensupport.URLParams
141215	ifNoneMatch_ string
141216	ctx_         context.Context
141217	header_      http.Header
141218}
141219
141220// AggregatedList: Retrieves an aggregated list of resource policies.
141221// (== suppress_warning http-rest-shadowed ==)
141222func (r *ResourcePoliciesService) AggregatedList(project string) *ResourcePoliciesAggregatedListCall {
141223	c := &ResourcePoliciesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
141224	c.project = project
141225	return c
141226}
141227
141228// Filter sets the optional parameter "filter": A filter expression that
141229// filters resources listed in the response. The expression must specify
141230// the field name, a comparison operator, and the value that you want to
141231// use for filtering. The value must be a string, a number, or a
141232// boolean. The comparison operator must be either =, !=, >, or <.
141233//
141234// For example, if you are filtering Compute Engine instances, you can
141235// exclude instances named example-instance by specifying name !=
141236// example-instance.
141237//
141238// You can also filter nested fields. For example, you could specify
141239// scheduling.automaticRestart = false to include instances only if they
141240// are not scheduled for automatic restarts. You can use filtering on
141241// nested fields to filter based on resource labels.
141242//
141243// To filter on multiple expressions, provide each separate expression
141244// within parentheses. For example, (scheduling.automaticRestart = true)
141245// (cpuPlatform = "Intel Skylake"). By default, each expression is an
141246// AND expression. However, you can include AND and OR expressions
141247// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
141248// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
141249// true).
141250func (c *ResourcePoliciesAggregatedListCall) Filter(filter string) *ResourcePoliciesAggregatedListCall {
141251	c.urlParams_.Set("filter", filter)
141252	return c
141253}
141254
141255// MaxResults sets the optional parameter "maxResults": The maximum
141256// number of results per page that should be returned. If the number of
141257// available results is larger than maxResults, Compute Engine returns a
141258// nextPageToken that can be used to get the next page of results in
141259// subsequent list requests. Acceptable values are 0 to 500, inclusive.
141260// (Default: 500)
141261func (c *ResourcePoliciesAggregatedListCall) MaxResults(maxResults int64) *ResourcePoliciesAggregatedListCall {
141262	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
141263	return c
141264}
141265
141266// OrderBy sets the optional parameter "orderBy": Sorts list results by
141267// a certain order. By default, results are returned in alphanumerical
141268// order based on the resource name.
141269//
141270// You can also sort results in descending order based on the creation
141271// timestamp using orderBy="creationTimestamp desc". This sorts results
141272// based on the creationTimestamp field in reverse chronological order
141273// (newest result first). Use this to sort resources like operations so
141274// that the newest operation is returned first.
141275//
141276// Currently, only sorting by name or creationTimestamp desc is
141277// supported.
141278func (c *ResourcePoliciesAggregatedListCall) OrderBy(orderBy string) *ResourcePoliciesAggregatedListCall {
141279	c.urlParams_.Set("orderBy", orderBy)
141280	return c
141281}
141282
141283// PageToken sets the optional parameter "pageToken": Specifies a page
141284// token to use. Set pageToken to the nextPageToken returned by a
141285// previous list request to get the next page of results.
141286func (c *ResourcePoliciesAggregatedListCall) PageToken(pageToken string) *ResourcePoliciesAggregatedListCall {
141287	c.urlParams_.Set("pageToken", pageToken)
141288	return c
141289}
141290
141291// Fields allows partial responses to be retrieved. See
141292// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
141293// for more information.
141294func (c *ResourcePoliciesAggregatedListCall) Fields(s ...googleapi.Field) *ResourcePoliciesAggregatedListCall {
141295	c.urlParams_.Set("fields", googleapi.CombineFields(s))
141296	return c
141297}
141298
141299// IfNoneMatch sets the optional parameter which makes the operation
141300// fail if the object's ETag matches the given value. This is useful for
141301// getting updates only after the object has changed since the last
141302// request. Use googleapi.IsNotModified to check whether the response
141303// error from Do is the result of In-None-Match.
141304func (c *ResourcePoliciesAggregatedListCall) IfNoneMatch(entityTag string) *ResourcePoliciesAggregatedListCall {
141305	c.ifNoneMatch_ = entityTag
141306	return c
141307}
141308
141309// Context sets the context to be used in this call's Do method. Any
141310// pending HTTP request will be aborted if the provided context is
141311// canceled.
141312func (c *ResourcePoliciesAggregatedListCall) Context(ctx context.Context) *ResourcePoliciesAggregatedListCall {
141313	c.ctx_ = ctx
141314	return c
141315}
141316
141317// Header returns an http.Header that can be modified by the caller to
141318// add HTTP headers to the request.
141319func (c *ResourcePoliciesAggregatedListCall) Header() http.Header {
141320	if c.header_ == nil {
141321		c.header_ = make(http.Header)
141322	}
141323	return c.header_
141324}
141325
141326func (c *ResourcePoliciesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
141327	reqHeaders := make(http.Header)
141328	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
141329	for k, v := range c.header_ {
141330		reqHeaders[k] = v
141331	}
141332	reqHeaders.Set("User-Agent", c.s.userAgent())
141333	if c.ifNoneMatch_ != "" {
141334		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
141335	}
141336	var body io.Reader = nil
141337	c.urlParams_.Set("alt", alt)
141338	c.urlParams_.Set("prettyPrint", "false")
141339	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/resourcePolicies")
141340	urls += "?" + c.urlParams_.Encode()
141341	req, err := http.NewRequest("GET", urls, body)
141342	if err != nil {
141343		return nil, err
141344	}
141345	req.Header = reqHeaders
141346	googleapi.Expand(req.URL, map[string]string{
141347		"project": c.project,
141348	})
141349	return gensupport.SendRequest(c.ctx_, c.s.client, req)
141350}
141351
141352// Do executes the "compute.resourcePolicies.aggregatedList" call.
141353// Exactly one of *ResourcePolicyAggregatedList or error will be
141354// non-nil. Any non-2xx status code is an error. Response headers are in
141355// either *ResourcePolicyAggregatedList.ServerResponse.Header or (if a
141356// response was returned at all) in error.(*googleapi.Error).Header. Use
141357// googleapi.IsNotModified to check whether the returned error was
141358// because http.StatusNotModified was returned.
141359func (c *ResourcePoliciesAggregatedListCall) Do(opts ...googleapi.CallOption) (*ResourcePolicyAggregatedList, error) {
141360	gensupport.SetOptions(c.urlParams_, opts...)
141361	res, err := c.doRequest("json")
141362	if res != nil && res.StatusCode == http.StatusNotModified {
141363		if res.Body != nil {
141364			res.Body.Close()
141365		}
141366		return nil, &googleapi.Error{
141367			Code:   res.StatusCode,
141368			Header: res.Header,
141369		}
141370	}
141371	if err != nil {
141372		return nil, err
141373	}
141374	defer googleapi.CloseBody(res)
141375	if err := googleapi.CheckResponse(res); err != nil {
141376		return nil, err
141377	}
141378	ret := &ResourcePolicyAggregatedList{
141379		ServerResponse: googleapi.ServerResponse{
141380			Header:         res.Header,
141381			HTTPStatusCode: res.StatusCode,
141382		},
141383	}
141384	target := &ret
141385	if err := gensupport.DecodeResponse(target, res); err != nil {
141386		return nil, err
141387	}
141388	return ret, nil
141389	// {
141390	//   "description": "Retrieves an aggregated list of resource policies. (== suppress_warning http-rest-shadowed ==)",
141391	//   "httpMethod": "GET",
141392	//   "id": "compute.resourcePolicies.aggregatedList",
141393	//   "parameterOrder": [
141394	//     "project"
141395	//   ],
141396	//   "parameters": {
141397	//     "filter": {
141398	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
141399	//       "location": "query",
141400	//       "type": "string"
141401	//     },
141402	//     "maxResults": {
141403	//       "default": "500",
141404	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
141405	//       "format": "uint32",
141406	//       "location": "query",
141407	//       "minimum": "0",
141408	//       "type": "integer"
141409	//     },
141410	//     "orderBy": {
141411	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
141412	//       "location": "query",
141413	//       "type": "string"
141414	//     },
141415	//     "pageToken": {
141416	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
141417	//       "location": "query",
141418	//       "type": "string"
141419	//     },
141420	//     "project": {
141421	//       "description": "Project ID for this request.",
141422	//       "location": "path",
141423	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
141424	//       "required": true,
141425	//       "type": "string"
141426	//     }
141427	//   },
141428	//   "path": "{project}/aggregated/resourcePolicies",
141429	//   "response": {
141430	//     "$ref": "ResourcePolicyAggregatedList"
141431	//   },
141432	//   "scopes": [
141433	//     "https://www.googleapis.com/auth/cloud-platform",
141434	//     "https://www.googleapis.com/auth/compute",
141435	//     "https://www.googleapis.com/auth/compute.readonly"
141436	//   ]
141437	// }
141438
141439}
141440
141441// Pages invokes f for each page of results.
141442// A non-nil error returned from f will halt the iteration.
141443// The provided context supersedes any context provided to the Context method.
141444func (c *ResourcePoliciesAggregatedListCall) Pages(ctx context.Context, f func(*ResourcePolicyAggregatedList) error) error {
141445	c.ctx_ = ctx
141446	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
141447	for {
141448		x, err := c.Do()
141449		if err != nil {
141450			return err
141451		}
141452		if err := f(x); err != nil {
141453			return err
141454		}
141455		if x.NextPageToken == "" {
141456			return nil
141457		}
141458		c.PageToken(x.NextPageToken)
141459	}
141460}
141461
141462// method id "compute.resourcePolicies.delete":
141463
141464type ResourcePoliciesDeleteCall struct {
141465	s              *Service
141466	project        string
141467	region         string
141468	resourcePolicy string
141469	urlParams_     gensupport.URLParams
141470	ctx_           context.Context
141471	header_        http.Header
141472}
141473
141474// Delete: Deletes the specified resource policy. (== suppress_warning
141475// http-rest-shadowed ==)
141476func (r *ResourcePoliciesService) Delete(project string, region string, resourcePolicy string) *ResourcePoliciesDeleteCall {
141477	c := &ResourcePoliciesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
141478	c.project = project
141479	c.region = region
141480	c.resourcePolicy = resourcePolicy
141481	return c
141482}
141483
141484// RequestId sets the optional parameter "requestId": An optional
141485// request ID to identify requests. Specify a unique request ID so that
141486// if you must retry your request, the server will know to ignore the
141487// request if it has already been completed.
141488//
141489// For example, consider a situation where you make an initial request
141490// and the request times out. If you make the request again with the
141491// same request ID, the server can check if original operation with the
141492// same request ID was received, and if so, will ignore the second
141493// request. This prevents clients from accidentally creating duplicate
141494// commitments.
141495//
141496// The request ID must be a valid UUID with the exception that zero UUID
141497// is not supported (00000000-0000-0000-0000-000000000000).
141498func (c *ResourcePoliciesDeleteCall) RequestId(requestId string) *ResourcePoliciesDeleteCall {
141499	c.urlParams_.Set("requestId", requestId)
141500	return c
141501}
141502
141503// Fields allows partial responses to be retrieved. See
141504// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
141505// for more information.
141506func (c *ResourcePoliciesDeleteCall) Fields(s ...googleapi.Field) *ResourcePoliciesDeleteCall {
141507	c.urlParams_.Set("fields", googleapi.CombineFields(s))
141508	return c
141509}
141510
141511// Context sets the context to be used in this call's Do method. Any
141512// pending HTTP request will be aborted if the provided context is
141513// canceled.
141514func (c *ResourcePoliciesDeleteCall) Context(ctx context.Context) *ResourcePoliciesDeleteCall {
141515	c.ctx_ = ctx
141516	return c
141517}
141518
141519// Header returns an http.Header that can be modified by the caller to
141520// add HTTP headers to the request.
141521func (c *ResourcePoliciesDeleteCall) Header() http.Header {
141522	if c.header_ == nil {
141523		c.header_ = make(http.Header)
141524	}
141525	return c.header_
141526}
141527
141528func (c *ResourcePoliciesDeleteCall) doRequest(alt string) (*http.Response, error) {
141529	reqHeaders := make(http.Header)
141530	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
141531	for k, v := range c.header_ {
141532		reqHeaders[k] = v
141533	}
141534	reqHeaders.Set("User-Agent", c.s.userAgent())
141535	var body io.Reader = nil
141536	c.urlParams_.Set("alt", alt)
141537	c.urlParams_.Set("prettyPrint", "false")
141538	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/resourcePolicies/{resourcePolicy}")
141539	urls += "?" + c.urlParams_.Encode()
141540	req, err := http.NewRequest("DELETE", urls, body)
141541	if err != nil {
141542		return nil, err
141543	}
141544	req.Header = reqHeaders
141545	googleapi.Expand(req.URL, map[string]string{
141546		"project":        c.project,
141547		"region":         c.region,
141548		"resourcePolicy": c.resourcePolicy,
141549	})
141550	return gensupport.SendRequest(c.ctx_, c.s.client, req)
141551}
141552
141553// Do executes the "compute.resourcePolicies.delete" call.
141554// Exactly one of *Operation or error will be non-nil. Any non-2xx
141555// status code is an error. Response headers are in either
141556// *Operation.ServerResponse.Header or (if a response was returned at
141557// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
141558// to check whether the returned error was because
141559// http.StatusNotModified was returned.
141560func (c *ResourcePoliciesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
141561	gensupport.SetOptions(c.urlParams_, opts...)
141562	res, err := c.doRequest("json")
141563	if res != nil && res.StatusCode == http.StatusNotModified {
141564		if res.Body != nil {
141565			res.Body.Close()
141566		}
141567		return nil, &googleapi.Error{
141568			Code:   res.StatusCode,
141569			Header: res.Header,
141570		}
141571	}
141572	if err != nil {
141573		return nil, err
141574	}
141575	defer googleapi.CloseBody(res)
141576	if err := googleapi.CheckResponse(res); err != nil {
141577		return nil, err
141578	}
141579	ret := &Operation{
141580		ServerResponse: googleapi.ServerResponse{
141581			Header:         res.Header,
141582			HTTPStatusCode: res.StatusCode,
141583		},
141584	}
141585	target := &ret
141586	if err := gensupport.DecodeResponse(target, res); err != nil {
141587		return nil, err
141588	}
141589	return ret, nil
141590	// {
141591	//   "description": "Deletes the specified resource policy. (== suppress_warning http-rest-shadowed ==)",
141592	//   "httpMethod": "DELETE",
141593	//   "id": "compute.resourcePolicies.delete",
141594	//   "parameterOrder": [
141595	//     "project",
141596	//     "region",
141597	//     "resourcePolicy"
141598	//   ],
141599	//   "parameters": {
141600	//     "project": {
141601	//       "description": "Project ID for this request.",
141602	//       "location": "path",
141603	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
141604	//       "required": true,
141605	//       "type": "string"
141606	//     },
141607	//     "region": {
141608	//       "description": "Name of the region for this request.",
141609	//       "location": "path",
141610	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
141611	//       "required": true,
141612	//       "type": "string"
141613	//     },
141614	//     "requestId": {
141615	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
141616	//       "location": "query",
141617	//       "type": "string"
141618	//     },
141619	//     "resourcePolicy": {
141620	//       "description": "Name of the resource policy to delete.",
141621	//       "location": "path",
141622	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
141623	//       "required": true,
141624	//       "type": "string"
141625	//     }
141626	//   },
141627	//   "path": "{project}/regions/{region}/resourcePolicies/{resourcePolicy}",
141628	//   "response": {
141629	//     "$ref": "Operation"
141630	//   },
141631	//   "scopes": [
141632	//     "https://www.googleapis.com/auth/cloud-platform",
141633	//     "https://www.googleapis.com/auth/compute"
141634	//   ]
141635	// }
141636
141637}
141638
141639// method id "compute.resourcePolicies.get":
141640
141641type ResourcePoliciesGetCall struct {
141642	s              *Service
141643	project        string
141644	region         string
141645	resourcePolicy string
141646	urlParams_     gensupport.URLParams
141647	ifNoneMatch_   string
141648	ctx_           context.Context
141649	header_        http.Header
141650}
141651
141652// Get: Retrieves all information of the specified resource policy. (==
141653// suppress_warning http-rest-shadowed ==)
141654func (r *ResourcePoliciesService) Get(project string, region string, resourcePolicy string) *ResourcePoliciesGetCall {
141655	c := &ResourcePoliciesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
141656	c.project = project
141657	c.region = region
141658	c.resourcePolicy = resourcePolicy
141659	return c
141660}
141661
141662// Fields allows partial responses to be retrieved. See
141663// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
141664// for more information.
141665func (c *ResourcePoliciesGetCall) Fields(s ...googleapi.Field) *ResourcePoliciesGetCall {
141666	c.urlParams_.Set("fields", googleapi.CombineFields(s))
141667	return c
141668}
141669
141670// IfNoneMatch sets the optional parameter which makes the operation
141671// fail if the object's ETag matches the given value. This is useful for
141672// getting updates only after the object has changed since the last
141673// request. Use googleapi.IsNotModified to check whether the response
141674// error from Do is the result of In-None-Match.
141675func (c *ResourcePoliciesGetCall) IfNoneMatch(entityTag string) *ResourcePoliciesGetCall {
141676	c.ifNoneMatch_ = entityTag
141677	return c
141678}
141679
141680// Context sets the context to be used in this call's Do method. Any
141681// pending HTTP request will be aborted if the provided context is
141682// canceled.
141683func (c *ResourcePoliciesGetCall) Context(ctx context.Context) *ResourcePoliciesGetCall {
141684	c.ctx_ = ctx
141685	return c
141686}
141687
141688// Header returns an http.Header that can be modified by the caller to
141689// add HTTP headers to the request.
141690func (c *ResourcePoliciesGetCall) Header() http.Header {
141691	if c.header_ == nil {
141692		c.header_ = make(http.Header)
141693	}
141694	return c.header_
141695}
141696
141697func (c *ResourcePoliciesGetCall) doRequest(alt string) (*http.Response, error) {
141698	reqHeaders := make(http.Header)
141699	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
141700	for k, v := range c.header_ {
141701		reqHeaders[k] = v
141702	}
141703	reqHeaders.Set("User-Agent", c.s.userAgent())
141704	if c.ifNoneMatch_ != "" {
141705		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
141706	}
141707	var body io.Reader = nil
141708	c.urlParams_.Set("alt", alt)
141709	c.urlParams_.Set("prettyPrint", "false")
141710	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/resourcePolicies/{resourcePolicy}")
141711	urls += "?" + c.urlParams_.Encode()
141712	req, err := http.NewRequest("GET", urls, body)
141713	if err != nil {
141714		return nil, err
141715	}
141716	req.Header = reqHeaders
141717	googleapi.Expand(req.URL, map[string]string{
141718		"project":        c.project,
141719		"region":         c.region,
141720		"resourcePolicy": c.resourcePolicy,
141721	})
141722	return gensupport.SendRequest(c.ctx_, c.s.client, req)
141723}
141724
141725// Do executes the "compute.resourcePolicies.get" call.
141726// Exactly one of *ResourcePolicy or error will be non-nil. Any non-2xx
141727// status code is an error. Response headers are in either
141728// *ResourcePolicy.ServerResponse.Header or (if a response was returned
141729// at all) in error.(*googleapi.Error).Header. Use
141730// googleapi.IsNotModified to check whether the returned error was
141731// because http.StatusNotModified was returned.
141732func (c *ResourcePoliciesGetCall) Do(opts ...googleapi.CallOption) (*ResourcePolicy, error) {
141733	gensupport.SetOptions(c.urlParams_, opts...)
141734	res, err := c.doRequest("json")
141735	if res != nil && res.StatusCode == http.StatusNotModified {
141736		if res.Body != nil {
141737			res.Body.Close()
141738		}
141739		return nil, &googleapi.Error{
141740			Code:   res.StatusCode,
141741			Header: res.Header,
141742		}
141743	}
141744	if err != nil {
141745		return nil, err
141746	}
141747	defer googleapi.CloseBody(res)
141748	if err := googleapi.CheckResponse(res); err != nil {
141749		return nil, err
141750	}
141751	ret := &ResourcePolicy{
141752		ServerResponse: googleapi.ServerResponse{
141753			Header:         res.Header,
141754			HTTPStatusCode: res.StatusCode,
141755		},
141756	}
141757	target := &ret
141758	if err := gensupport.DecodeResponse(target, res); err != nil {
141759		return nil, err
141760	}
141761	return ret, nil
141762	// {
141763	//   "description": "Retrieves all information of the specified resource policy. (== suppress_warning http-rest-shadowed ==)",
141764	//   "httpMethod": "GET",
141765	//   "id": "compute.resourcePolicies.get",
141766	//   "parameterOrder": [
141767	//     "project",
141768	//     "region",
141769	//     "resourcePolicy"
141770	//   ],
141771	//   "parameters": {
141772	//     "project": {
141773	//       "description": "Project ID for this request.",
141774	//       "location": "path",
141775	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
141776	//       "required": true,
141777	//       "type": "string"
141778	//     },
141779	//     "region": {
141780	//       "description": "Name of the region for this request.",
141781	//       "location": "path",
141782	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
141783	//       "required": true,
141784	//       "type": "string"
141785	//     },
141786	//     "resourcePolicy": {
141787	//       "description": "Name of the resource policy to retrieve.",
141788	//       "location": "path",
141789	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
141790	//       "required": true,
141791	//       "type": "string"
141792	//     }
141793	//   },
141794	//   "path": "{project}/regions/{region}/resourcePolicies/{resourcePolicy}",
141795	//   "response": {
141796	//     "$ref": "ResourcePolicy"
141797	//   },
141798	//   "scopes": [
141799	//     "https://www.googleapis.com/auth/cloud-platform",
141800	//     "https://www.googleapis.com/auth/compute",
141801	//     "https://www.googleapis.com/auth/compute.readonly"
141802	//   ]
141803	// }
141804
141805}
141806
141807// method id "compute.resourcePolicies.getIamPolicy":
141808
141809type ResourcePoliciesGetIamPolicyCall struct {
141810	s            *Service
141811	project      string
141812	region       string
141813	resource     string
141814	urlParams_   gensupport.URLParams
141815	ifNoneMatch_ string
141816	ctx_         context.Context
141817	header_      http.Header
141818}
141819
141820// GetIamPolicy: Gets the access control policy for a resource. May be
141821// empty if no such policy or resource exists. (== suppress_warning
141822// http-rest-shadowed ==)
141823func (r *ResourcePoliciesService) GetIamPolicy(project string, region string, resource string) *ResourcePoliciesGetIamPolicyCall {
141824	c := &ResourcePoliciesGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
141825	c.project = project
141826	c.region = region
141827	c.resource = resource
141828	return c
141829}
141830
141831// OptionsRequestedPolicyVersion sets the optional parameter
141832// "optionsRequestedPolicyVersion": Requested IAM Policy version.
141833func (c *ResourcePoliciesGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *ResourcePoliciesGetIamPolicyCall {
141834	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
141835	return c
141836}
141837
141838// Fields allows partial responses to be retrieved. See
141839// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
141840// for more information.
141841func (c *ResourcePoliciesGetIamPolicyCall) Fields(s ...googleapi.Field) *ResourcePoliciesGetIamPolicyCall {
141842	c.urlParams_.Set("fields", googleapi.CombineFields(s))
141843	return c
141844}
141845
141846// IfNoneMatch sets the optional parameter which makes the operation
141847// fail if the object's ETag matches the given value. This is useful for
141848// getting updates only after the object has changed since the last
141849// request. Use googleapi.IsNotModified to check whether the response
141850// error from Do is the result of In-None-Match.
141851func (c *ResourcePoliciesGetIamPolicyCall) IfNoneMatch(entityTag string) *ResourcePoliciesGetIamPolicyCall {
141852	c.ifNoneMatch_ = entityTag
141853	return c
141854}
141855
141856// Context sets the context to be used in this call's Do method. Any
141857// pending HTTP request will be aborted if the provided context is
141858// canceled.
141859func (c *ResourcePoliciesGetIamPolicyCall) Context(ctx context.Context) *ResourcePoliciesGetIamPolicyCall {
141860	c.ctx_ = ctx
141861	return c
141862}
141863
141864// Header returns an http.Header that can be modified by the caller to
141865// add HTTP headers to the request.
141866func (c *ResourcePoliciesGetIamPolicyCall) Header() http.Header {
141867	if c.header_ == nil {
141868		c.header_ = make(http.Header)
141869	}
141870	return c.header_
141871}
141872
141873func (c *ResourcePoliciesGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
141874	reqHeaders := make(http.Header)
141875	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
141876	for k, v := range c.header_ {
141877		reqHeaders[k] = v
141878	}
141879	reqHeaders.Set("User-Agent", c.s.userAgent())
141880	if c.ifNoneMatch_ != "" {
141881		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
141882	}
141883	var body io.Reader = nil
141884	c.urlParams_.Set("alt", alt)
141885	c.urlParams_.Set("prettyPrint", "false")
141886	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/resourcePolicies/{resource}/getIamPolicy")
141887	urls += "?" + c.urlParams_.Encode()
141888	req, err := http.NewRequest("GET", urls, body)
141889	if err != nil {
141890		return nil, err
141891	}
141892	req.Header = reqHeaders
141893	googleapi.Expand(req.URL, map[string]string{
141894		"project":  c.project,
141895		"region":   c.region,
141896		"resource": c.resource,
141897	})
141898	return gensupport.SendRequest(c.ctx_, c.s.client, req)
141899}
141900
141901// Do executes the "compute.resourcePolicies.getIamPolicy" call.
141902// Exactly one of *Policy or error will be non-nil. Any non-2xx status
141903// code is an error. Response headers are in either
141904// *Policy.ServerResponse.Header or (if a response was returned at all)
141905// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
141906// check whether the returned error was because http.StatusNotModified
141907// was returned.
141908func (c *ResourcePoliciesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
141909	gensupport.SetOptions(c.urlParams_, opts...)
141910	res, err := c.doRequest("json")
141911	if res != nil && res.StatusCode == http.StatusNotModified {
141912		if res.Body != nil {
141913			res.Body.Close()
141914		}
141915		return nil, &googleapi.Error{
141916			Code:   res.StatusCode,
141917			Header: res.Header,
141918		}
141919	}
141920	if err != nil {
141921		return nil, err
141922	}
141923	defer googleapi.CloseBody(res)
141924	if err := googleapi.CheckResponse(res); err != nil {
141925		return nil, err
141926	}
141927	ret := &Policy{
141928		ServerResponse: googleapi.ServerResponse{
141929			Header:         res.Header,
141930			HTTPStatusCode: res.StatusCode,
141931		},
141932	}
141933	target := &ret
141934	if err := gensupport.DecodeResponse(target, res); err != nil {
141935		return nil, err
141936	}
141937	return ret, nil
141938	// {
141939	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists. (== suppress_warning http-rest-shadowed ==)",
141940	//   "httpMethod": "GET",
141941	//   "id": "compute.resourcePolicies.getIamPolicy",
141942	//   "parameterOrder": [
141943	//     "project",
141944	//     "region",
141945	//     "resource"
141946	//   ],
141947	//   "parameters": {
141948	//     "optionsRequestedPolicyVersion": {
141949	//       "description": "Requested IAM Policy version.",
141950	//       "format": "int32",
141951	//       "location": "query",
141952	//       "type": "integer"
141953	//     },
141954	//     "project": {
141955	//       "description": "Project ID for this request.",
141956	//       "location": "path",
141957	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
141958	//       "required": true,
141959	//       "type": "string"
141960	//     },
141961	//     "region": {
141962	//       "description": "The name of the region for this request.",
141963	//       "location": "path",
141964	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
141965	//       "required": true,
141966	//       "type": "string"
141967	//     },
141968	//     "resource": {
141969	//       "description": "Name or id of the resource for this request.",
141970	//       "location": "path",
141971	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
141972	//       "required": true,
141973	//       "type": "string"
141974	//     }
141975	//   },
141976	//   "path": "{project}/regions/{region}/resourcePolicies/{resource}/getIamPolicy",
141977	//   "response": {
141978	//     "$ref": "Policy"
141979	//   },
141980	//   "scopes": [
141981	//     "https://www.googleapis.com/auth/cloud-platform",
141982	//     "https://www.googleapis.com/auth/compute",
141983	//     "https://www.googleapis.com/auth/compute.readonly"
141984	//   ]
141985	// }
141986
141987}
141988
141989// method id "compute.resourcePolicies.insert":
141990
141991type ResourcePoliciesInsertCall struct {
141992	s              *Service
141993	project        string
141994	region         string
141995	resourcepolicy *ResourcePolicy
141996	urlParams_     gensupport.URLParams
141997	ctx_           context.Context
141998	header_        http.Header
141999}
142000
142001// Insert: Creates a new resource policy. (== suppress_warning
142002// http-rest-shadowed ==)
142003func (r *ResourcePoliciesService) Insert(project string, region string, resourcepolicy *ResourcePolicy) *ResourcePoliciesInsertCall {
142004	c := &ResourcePoliciesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
142005	c.project = project
142006	c.region = region
142007	c.resourcepolicy = resourcepolicy
142008	return c
142009}
142010
142011// RequestId sets the optional parameter "requestId": An optional
142012// request ID to identify requests. Specify a unique request ID so that
142013// if you must retry your request, the server will know to ignore the
142014// request if it has already been completed.
142015//
142016// For example, consider a situation where you make an initial request
142017// and the request times out. If you make the request again with the
142018// same request ID, the server can check if original operation with the
142019// same request ID was received, and if so, will ignore the second
142020// request. This prevents clients from accidentally creating duplicate
142021// commitments.
142022//
142023// The request ID must be a valid UUID with the exception that zero UUID
142024// is not supported (00000000-0000-0000-0000-000000000000).
142025func (c *ResourcePoliciesInsertCall) RequestId(requestId string) *ResourcePoliciesInsertCall {
142026	c.urlParams_.Set("requestId", requestId)
142027	return c
142028}
142029
142030// Fields allows partial responses to be retrieved. See
142031// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
142032// for more information.
142033func (c *ResourcePoliciesInsertCall) Fields(s ...googleapi.Field) *ResourcePoliciesInsertCall {
142034	c.urlParams_.Set("fields", googleapi.CombineFields(s))
142035	return c
142036}
142037
142038// Context sets the context to be used in this call's Do method. Any
142039// pending HTTP request will be aborted if the provided context is
142040// canceled.
142041func (c *ResourcePoliciesInsertCall) Context(ctx context.Context) *ResourcePoliciesInsertCall {
142042	c.ctx_ = ctx
142043	return c
142044}
142045
142046// Header returns an http.Header that can be modified by the caller to
142047// add HTTP headers to the request.
142048func (c *ResourcePoliciesInsertCall) Header() http.Header {
142049	if c.header_ == nil {
142050		c.header_ = make(http.Header)
142051	}
142052	return c.header_
142053}
142054
142055func (c *ResourcePoliciesInsertCall) doRequest(alt string) (*http.Response, error) {
142056	reqHeaders := make(http.Header)
142057	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
142058	for k, v := range c.header_ {
142059		reqHeaders[k] = v
142060	}
142061	reqHeaders.Set("User-Agent", c.s.userAgent())
142062	var body io.Reader = nil
142063	body, err := googleapi.WithoutDataWrapper.JSONReader(c.resourcepolicy)
142064	if err != nil {
142065		return nil, err
142066	}
142067	reqHeaders.Set("Content-Type", "application/json")
142068	c.urlParams_.Set("alt", alt)
142069	c.urlParams_.Set("prettyPrint", "false")
142070	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/resourcePolicies")
142071	urls += "?" + c.urlParams_.Encode()
142072	req, err := http.NewRequest("POST", urls, body)
142073	if err != nil {
142074		return nil, err
142075	}
142076	req.Header = reqHeaders
142077	googleapi.Expand(req.URL, map[string]string{
142078		"project": c.project,
142079		"region":  c.region,
142080	})
142081	return gensupport.SendRequest(c.ctx_, c.s.client, req)
142082}
142083
142084// Do executes the "compute.resourcePolicies.insert" call.
142085// Exactly one of *Operation or error will be non-nil. Any non-2xx
142086// status code is an error. Response headers are in either
142087// *Operation.ServerResponse.Header or (if a response was returned at
142088// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
142089// to check whether the returned error was because
142090// http.StatusNotModified was returned.
142091func (c *ResourcePoliciesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
142092	gensupport.SetOptions(c.urlParams_, opts...)
142093	res, err := c.doRequest("json")
142094	if res != nil && res.StatusCode == http.StatusNotModified {
142095		if res.Body != nil {
142096			res.Body.Close()
142097		}
142098		return nil, &googleapi.Error{
142099			Code:   res.StatusCode,
142100			Header: res.Header,
142101		}
142102	}
142103	if err != nil {
142104		return nil, err
142105	}
142106	defer googleapi.CloseBody(res)
142107	if err := googleapi.CheckResponse(res); err != nil {
142108		return nil, err
142109	}
142110	ret := &Operation{
142111		ServerResponse: googleapi.ServerResponse{
142112			Header:         res.Header,
142113			HTTPStatusCode: res.StatusCode,
142114		},
142115	}
142116	target := &ret
142117	if err := gensupport.DecodeResponse(target, res); err != nil {
142118		return nil, err
142119	}
142120	return ret, nil
142121	// {
142122	//   "description": "Creates a new resource policy. (== suppress_warning http-rest-shadowed ==)",
142123	//   "httpMethod": "POST",
142124	//   "id": "compute.resourcePolicies.insert",
142125	//   "parameterOrder": [
142126	//     "project",
142127	//     "region"
142128	//   ],
142129	//   "parameters": {
142130	//     "project": {
142131	//       "description": "Project ID for this request.",
142132	//       "location": "path",
142133	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
142134	//       "required": true,
142135	//       "type": "string"
142136	//     },
142137	//     "region": {
142138	//       "description": "Name of the region for this request.",
142139	//       "location": "path",
142140	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
142141	//       "required": true,
142142	//       "type": "string"
142143	//     },
142144	//     "requestId": {
142145	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
142146	//       "location": "query",
142147	//       "type": "string"
142148	//     }
142149	//   },
142150	//   "path": "{project}/regions/{region}/resourcePolicies",
142151	//   "request": {
142152	//     "$ref": "ResourcePolicy"
142153	//   },
142154	//   "response": {
142155	//     "$ref": "Operation"
142156	//   },
142157	//   "scopes": [
142158	//     "https://www.googleapis.com/auth/cloud-platform",
142159	//     "https://www.googleapis.com/auth/compute"
142160	//   ]
142161	// }
142162
142163}
142164
142165// method id "compute.resourcePolicies.list":
142166
142167type ResourcePoliciesListCall struct {
142168	s            *Service
142169	project      string
142170	region       string
142171	urlParams_   gensupport.URLParams
142172	ifNoneMatch_ string
142173	ctx_         context.Context
142174	header_      http.Header
142175}
142176
142177// List: A list all the resource policies that have been configured for
142178// the specified project in specified region. (== suppress_warning
142179// http-rest-shadowed ==)
142180func (r *ResourcePoliciesService) List(project string, region string) *ResourcePoliciesListCall {
142181	c := &ResourcePoliciesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
142182	c.project = project
142183	c.region = region
142184	return c
142185}
142186
142187// Filter sets the optional parameter "filter": A filter expression that
142188// filters resources listed in the response. The expression must specify
142189// the field name, a comparison operator, and the value that you want to
142190// use for filtering. The value must be a string, a number, or a
142191// boolean. The comparison operator must be either =, !=, >, or <.
142192//
142193// For example, if you are filtering Compute Engine instances, you can
142194// exclude instances named example-instance by specifying name !=
142195// example-instance.
142196//
142197// You can also filter nested fields. For example, you could specify
142198// scheduling.automaticRestart = false to include instances only if they
142199// are not scheduled for automatic restarts. You can use filtering on
142200// nested fields to filter based on resource labels.
142201//
142202// To filter on multiple expressions, provide each separate expression
142203// within parentheses. For example, (scheduling.automaticRestart = true)
142204// (cpuPlatform = "Intel Skylake"). By default, each expression is an
142205// AND expression. However, you can include AND and OR expressions
142206// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
142207// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
142208// true).
142209func (c *ResourcePoliciesListCall) Filter(filter string) *ResourcePoliciesListCall {
142210	c.urlParams_.Set("filter", filter)
142211	return c
142212}
142213
142214// MaxResults sets the optional parameter "maxResults": The maximum
142215// number of results per page that should be returned. If the number of
142216// available results is larger than maxResults, Compute Engine returns a
142217// nextPageToken that can be used to get the next page of results in
142218// subsequent list requests. Acceptable values are 0 to 500, inclusive.
142219// (Default: 500)
142220func (c *ResourcePoliciesListCall) MaxResults(maxResults int64) *ResourcePoliciesListCall {
142221	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
142222	return c
142223}
142224
142225// OrderBy sets the optional parameter "orderBy": Sorts list results by
142226// a certain order. By default, results are returned in alphanumerical
142227// order based on the resource name.
142228//
142229// You can also sort results in descending order based on the creation
142230// timestamp using orderBy="creationTimestamp desc". This sorts results
142231// based on the creationTimestamp field in reverse chronological order
142232// (newest result first). Use this to sort resources like operations so
142233// that the newest operation is returned first.
142234//
142235// Currently, only sorting by name or creationTimestamp desc is
142236// supported.
142237func (c *ResourcePoliciesListCall) OrderBy(orderBy string) *ResourcePoliciesListCall {
142238	c.urlParams_.Set("orderBy", orderBy)
142239	return c
142240}
142241
142242// PageToken sets the optional parameter "pageToken": Specifies a page
142243// token to use. Set pageToken to the nextPageToken returned by a
142244// previous list request to get the next page of results.
142245func (c *ResourcePoliciesListCall) PageToken(pageToken string) *ResourcePoliciesListCall {
142246	c.urlParams_.Set("pageToken", pageToken)
142247	return c
142248}
142249
142250// Fields allows partial responses to be retrieved. See
142251// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
142252// for more information.
142253func (c *ResourcePoliciesListCall) Fields(s ...googleapi.Field) *ResourcePoliciesListCall {
142254	c.urlParams_.Set("fields", googleapi.CombineFields(s))
142255	return c
142256}
142257
142258// IfNoneMatch sets the optional parameter which makes the operation
142259// fail if the object's ETag matches the given value. This is useful for
142260// getting updates only after the object has changed since the last
142261// request. Use googleapi.IsNotModified to check whether the response
142262// error from Do is the result of In-None-Match.
142263func (c *ResourcePoliciesListCall) IfNoneMatch(entityTag string) *ResourcePoliciesListCall {
142264	c.ifNoneMatch_ = entityTag
142265	return c
142266}
142267
142268// Context sets the context to be used in this call's Do method. Any
142269// pending HTTP request will be aborted if the provided context is
142270// canceled.
142271func (c *ResourcePoliciesListCall) Context(ctx context.Context) *ResourcePoliciesListCall {
142272	c.ctx_ = ctx
142273	return c
142274}
142275
142276// Header returns an http.Header that can be modified by the caller to
142277// add HTTP headers to the request.
142278func (c *ResourcePoliciesListCall) Header() http.Header {
142279	if c.header_ == nil {
142280		c.header_ = make(http.Header)
142281	}
142282	return c.header_
142283}
142284
142285func (c *ResourcePoliciesListCall) doRequest(alt string) (*http.Response, error) {
142286	reqHeaders := make(http.Header)
142287	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
142288	for k, v := range c.header_ {
142289		reqHeaders[k] = v
142290	}
142291	reqHeaders.Set("User-Agent", c.s.userAgent())
142292	if c.ifNoneMatch_ != "" {
142293		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
142294	}
142295	var body io.Reader = nil
142296	c.urlParams_.Set("alt", alt)
142297	c.urlParams_.Set("prettyPrint", "false")
142298	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/resourcePolicies")
142299	urls += "?" + c.urlParams_.Encode()
142300	req, err := http.NewRequest("GET", urls, body)
142301	if err != nil {
142302		return nil, err
142303	}
142304	req.Header = reqHeaders
142305	googleapi.Expand(req.URL, map[string]string{
142306		"project": c.project,
142307		"region":  c.region,
142308	})
142309	return gensupport.SendRequest(c.ctx_, c.s.client, req)
142310}
142311
142312// Do executes the "compute.resourcePolicies.list" call.
142313// Exactly one of *ResourcePolicyList or error will be non-nil. Any
142314// non-2xx status code is an error. Response headers are in either
142315// *ResourcePolicyList.ServerResponse.Header or (if a response was
142316// returned at all) in error.(*googleapi.Error).Header. Use
142317// googleapi.IsNotModified to check whether the returned error was
142318// because http.StatusNotModified was returned.
142319func (c *ResourcePoliciesListCall) Do(opts ...googleapi.CallOption) (*ResourcePolicyList, error) {
142320	gensupport.SetOptions(c.urlParams_, opts...)
142321	res, err := c.doRequest("json")
142322	if res != nil && res.StatusCode == http.StatusNotModified {
142323		if res.Body != nil {
142324			res.Body.Close()
142325		}
142326		return nil, &googleapi.Error{
142327			Code:   res.StatusCode,
142328			Header: res.Header,
142329		}
142330	}
142331	if err != nil {
142332		return nil, err
142333	}
142334	defer googleapi.CloseBody(res)
142335	if err := googleapi.CheckResponse(res); err != nil {
142336		return nil, err
142337	}
142338	ret := &ResourcePolicyList{
142339		ServerResponse: googleapi.ServerResponse{
142340			Header:         res.Header,
142341			HTTPStatusCode: res.StatusCode,
142342		},
142343	}
142344	target := &ret
142345	if err := gensupport.DecodeResponse(target, res); err != nil {
142346		return nil, err
142347	}
142348	return ret, nil
142349	// {
142350	//   "description": "A list all the resource policies that have been configured for the specified project in specified region. (== suppress_warning http-rest-shadowed ==)",
142351	//   "httpMethod": "GET",
142352	//   "id": "compute.resourcePolicies.list",
142353	//   "parameterOrder": [
142354	//     "project",
142355	//     "region"
142356	//   ],
142357	//   "parameters": {
142358	//     "filter": {
142359	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
142360	//       "location": "query",
142361	//       "type": "string"
142362	//     },
142363	//     "maxResults": {
142364	//       "default": "500",
142365	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
142366	//       "format": "uint32",
142367	//       "location": "query",
142368	//       "minimum": "0",
142369	//       "type": "integer"
142370	//     },
142371	//     "orderBy": {
142372	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
142373	//       "location": "query",
142374	//       "type": "string"
142375	//     },
142376	//     "pageToken": {
142377	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
142378	//       "location": "query",
142379	//       "type": "string"
142380	//     },
142381	//     "project": {
142382	//       "description": "Project ID for this request.",
142383	//       "location": "path",
142384	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
142385	//       "required": true,
142386	//       "type": "string"
142387	//     },
142388	//     "region": {
142389	//       "description": "Name of the region for this request.",
142390	//       "location": "path",
142391	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
142392	//       "required": true,
142393	//       "type": "string"
142394	//     }
142395	//   },
142396	//   "path": "{project}/regions/{region}/resourcePolicies",
142397	//   "response": {
142398	//     "$ref": "ResourcePolicyList"
142399	//   },
142400	//   "scopes": [
142401	//     "https://www.googleapis.com/auth/cloud-platform",
142402	//     "https://www.googleapis.com/auth/compute",
142403	//     "https://www.googleapis.com/auth/compute.readonly"
142404	//   ]
142405	// }
142406
142407}
142408
142409// Pages invokes f for each page of results.
142410// A non-nil error returned from f will halt the iteration.
142411// The provided context supersedes any context provided to the Context method.
142412func (c *ResourcePoliciesListCall) Pages(ctx context.Context, f func(*ResourcePolicyList) error) error {
142413	c.ctx_ = ctx
142414	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
142415	for {
142416		x, err := c.Do()
142417		if err != nil {
142418			return err
142419		}
142420		if err := f(x); err != nil {
142421			return err
142422		}
142423		if x.NextPageToken == "" {
142424			return nil
142425		}
142426		c.PageToken(x.NextPageToken)
142427	}
142428}
142429
142430// method id "compute.resourcePolicies.setIamPolicy":
142431
142432type ResourcePoliciesSetIamPolicyCall struct {
142433	s                      *Service
142434	project                string
142435	region                 string
142436	resource               string
142437	regionsetpolicyrequest *RegionSetPolicyRequest
142438	urlParams_             gensupport.URLParams
142439	ctx_                   context.Context
142440	header_                http.Header
142441}
142442
142443// SetIamPolicy: Sets the access control policy on the specified
142444// resource. Replaces any existing policy. (== suppress_warning
142445// http-rest-shadowed ==)
142446func (r *ResourcePoliciesService) SetIamPolicy(project string, region string, resource string, regionsetpolicyrequest *RegionSetPolicyRequest) *ResourcePoliciesSetIamPolicyCall {
142447	c := &ResourcePoliciesSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
142448	c.project = project
142449	c.region = region
142450	c.resource = resource
142451	c.regionsetpolicyrequest = regionsetpolicyrequest
142452	return c
142453}
142454
142455// Fields allows partial responses to be retrieved. See
142456// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
142457// for more information.
142458func (c *ResourcePoliciesSetIamPolicyCall) Fields(s ...googleapi.Field) *ResourcePoliciesSetIamPolicyCall {
142459	c.urlParams_.Set("fields", googleapi.CombineFields(s))
142460	return c
142461}
142462
142463// Context sets the context to be used in this call's Do method. Any
142464// pending HTTP request will be aborted if the provided context is
142465// canceled.
142466func (c *ResourcePoliciesSetIamPolicyCall) Context(ctx context.Context) *ResourcePoliciesSetIamPolicyCall {
142467	c.ctx_ = ctx
142468	return c
142469}
142470
142471// Header returns an http.Header that can be modified by the caller to
142472// add HTTP headers to the request.
142473func (c *ResourcePoliciesSetIamPolicyCall) Header() http.Header {
142474	if c.header_ == nil {
142475		c.header_ = make(http.Header)
142476	}
142477	return c.header_
142478}
142479
142480func (c *ResourcePoliciesSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
142481	reqHeaders := make(http.Header)
142482	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
142483	for k, v := range c.header_ {
142484		reqHeaders[k] = v
142485	}
142486	reqHeaders.Set("User-Agent", c.s.userAgent())
142487	var body io.Reader = nil
142488	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetpolicyrequest)
142489	if err != nil {
142490		return nil, err
142491	}
142492	reqHeaders.Set("Content-Type", "application/json")
142493	c.urlParams_.Set("alt", alt)
142494	c.urlParams_.Set("prettyPrint", "false")
142495	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/resourcePolicies/{resource}/setIamPolicy")
142496	urls += "?" + c.urlParams_.Encode()
142497	req, err := http.NewRequest("POST", urls, body)
142498	if err != nil {
142499		return nil, err
142500	}
142501	req.Header = reqHeaders
142502	googleapi.Expand(req.URL, map[string]string{
142503		"project":  c.project,
142504		"region":   c.region,
142505		"resource": c.resource,
142506	})
142507	return gensupport.SendRequest(c.ctx_, c.s.client, req)
142508}
142509
142510// Do executes the "compute.resourcePolicies.setIamPolicy" call.
142511// Exactly one of *Policy or error will be non-nil. Any non-2xx status
142512// code is an error. Response headers are in either
142513// *Policy.ServerResponse.Header or (if a response was returned at all)
142514// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
142515// check whether the returned error was because http.StatusNotModified
142516// was returned.
142517func (c *ResourcePoliciesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
142518	gensupport.SetOptions(c.urlParams_, opts...)
142519	res, err := c.doRequest("json")
142520	if res != nil && res.StatusCode == http.StatusNotModified {
142521		if res.Body != nil {
142522			res.Body.Close()
142523		}
142524		return nil, &googleapi.Error{
142525			Code:   res.StatusCode,
142526			Header: res.Header,
142527		}
142528	}
142529	if err != nil {
142530		return nil, err
142531	}
142532	defer googleapi.CloseBody(res)
142533	if err := googleapi.CheckResponse(res); err != nil {
142534		return nil, err
142535	}
142536	ret := &Policy{
142537		ServerResponse: googleapi.ServerResponse{
142538			Header:         res.Header,
142539			HTTPStatusCode: res.StatusCode,
142540		},
142541	}
142542	target := &ret
142543	if err := gensupport.DecodeResponse(target, res); err != nil {
142544		return nil, err
142545	}
142546	return ret, nil
142547	// {
142548	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy. (== suppress_warning http-rest-shadowed ==)",
142549	//   "httpMethod": "POST",
142550	//   "id": "compute.resourcePolicies.setIamPolicy",
142551	//   "parameterOrder": [
142552	//     "project",
142553	//     "region",
142554	//     "resource"
142555	//   ],
142556	//   "parameters": {
142557	//     "project": {
142558	//       "description": "Project ID for this request.",
142559	//       "location": "path",
142560	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
142561	//       "required": true,
142562	//       "type": "string"
142563	//     },
142564	//     "region": {
142565	//       "description": "The name of the region for this request.",
142566	//       "location": "path",
142567	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
142568	//       "required": true,
142569	//       "type": "string"
142570	//     },
142571	//     "resource": {
142572	//       "description": "Name or id of the resource for this request.",
142573	//       "location": "path",
142574	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
142575	//       "required": true,
142576	//       "type": "string"
142577	//     }
142578	//   },
142579	//   "path": "{project}/regions/{region}/resourcePolicies/{resource}/setIamPolicy",
142580	//   "request": {
142581	//     "$ref": "RegionSetPolicyRequest"
142582	//   },
142583	//   "response": {
142584	//     "$ref": "Policy"
142585	//   },
142586	//   "scopes": [
142587	//     "https://www.googleapis.com/auth/cloud-platform",
142588	//     "https://www.googleapis.com/auth/compute"
142589	//   ]
142590	// }
142591
142592}
142593
142594// method id "compute.resourcePolicies.testIamPermissions":
142595
142596type ResourcePoliciesTestIamPermissionsCall struct {
142597	s                      *Service
142598	project                string
142599	region                 string
142600	resource               string
142601	testpermissionsrequest *TestPermissionsRequest
142602	urlParams_             gensupport.URLParams
142603	ctx_                   context.Context
142604	header_                http.Header
142605}
142606
142607// TestIamPermissions: Returns permissions that a caller has on the
142608// specified resource. (== suppress_warning http-rest-shadowed ==)
142609func (r *ResourcePoliciesService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *ResourcePoliciesTestIamPermissionsCall {
142610	c := &ResourcePoliciesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
142611	c.project = project
142612	c.region = region
142613	c.resource = resource
142614	c.testpermissionsrequest = testpermissionsrequest
142615	return c
142616}
142617
142618// Fields allows partial responses to be retrieved. See
142619// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
142620// for more information.
142621func (c *ResourcePoliciesTestIamPermissionsCall) Fields(s ...googleapi.Field) *ResourcePoliciesTestIamPermissionsCall {
142622	c.urlParams_.Set("fields", googleapi.CombineFields(s))
142623	return c
142624}
142625
142626// Context sets the context to be used in this call's Do method. Any
142627// pending HTTP request will be aborted if the provided context is
142628// canceled.
142629func (c *ResourcePoliciesTestIamPermissionsCall) Context(ctx context.Context) *ResourcePoliciesTestIamPermissionsCall {
142630	c.ctx_ = ctx
142631	return c
142632}
142633
142634// Header returns an http.Header that can be modified by the caller to
142635// add HTTP headers to the request.
142636func (c *ResourcePoliciesTestIamPermissionsCall) Header() http.Header {
142637	if c.header_ == nil {
142638		c.header_ = make(http.Header)
142639	}
142640	return c.header_
142641}
142642
142643func (c *ResourcePoliciesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
142644	reqHeaders := make(http.Header)
142645	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
142646	for k, v := range c.header_ {
142647		reqHeaders[k] = v
142648	}
142649	reqHeaders.Set("User-Agent", c.s.userAgent())
142650	var body io.Reader = nil
142651	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
142652	if err != nil {
142653		return nil, err
142654	}
142655	reqHeaders.Set("Content-Type", "application/json")
142656	c.urlParams_.Set("alt", alt)
142657	c.urlParams_.Set("prettyPrint", "false")
142658	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/resourcePolicies/{resource}/testIamPermissions")
142659	urls += "?" + c.urlParams_.Encode()
142660	req, err := http.NewRequest("POST", urls, body)
142661	if err != nil {
142662		return nil, err
142663	}
142664	req.Header = reqHeaders
142665	googleapi.Expand(req.URL, map[string]string{
142666		"project":  c.project,
142667		"region":   c.region,
142668		"resource": c.resource,
142669	})
142670	return gensupport.SendRequest(c.ctx_, c.s.client, req)
142671}
142672
142673// Do executes the "compute.resourcePolicies.testIamPermissions" call.
142674// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
142675// non-2xx status code is an error. Response headers are in either
142676// *TestPermissionsResponse.ServerResponse.Header or (if a response was
142677// returned at all) in error.(*googleapi.Error).Header. Use
142678// googleapi.IsNotModified to check whether the returned error was
142679// because http.StatusNotModified was returned.
142680func (c *ResourcePoliciesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
142681	gensupport.SetOptions(c.urlParams_, opts...)
142682	res, err := c.doRequest("json")
142683	if res != nil && res.StatusCode == http.StatusNotModified {
142684		if res.Body != nil {
142685			res.Body.Close()
142686		}
142687		return nil, &googleapi.Error{
142688			Code:   res.StatusCode,
142689			Header: res.Header,
142690		}
142691	}
142692	if err != nil {
142693		return nil, err
142694	}
142695	defer googleapi.CloseBody(res)
142696	if err := googleapi.CheckResponse(res); err != nil {
142697		return nil, err
142698	}
142699	ret := &TestPermissionsResponse{
142700		ServerResponse: googleapi.ServerResponse{
142701			Header:         res.Header,
142702			HTTPStatusCode: res.StatusCode,
142703		},
142704	}
142705	target := &ret
142706	if err := gensupport.DecodeResponse(target, res); err != nil {
142707		return nil, err
142708	}
142709	return ret, nil
142710	// {
142711	//   "description": "Returns permissions that a caller has on the specified resource. (== suppress_warning http-rest-shadowed ==)",
142712	//   "httpMethod": "POST",
142713	//   "id": "compute.resourcePolicies.testIamPermissions",
142714	//   "parameterOrder": [
142715	//     "project",
142716	//     "region",
142717	//     "resource"
142718	//   ],
142719	//   "parameters": {
142720	//     "project": {
142721	//       "description": "Project ID for this request.",
142722	//       "location": "path",
142723	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
142724	//       "required": true,
142725	//       "type": "string"
142726	//     },
142727	//     "region": {
142728	//       "description": "The name of the region for this request.",
142729	//       "location": "path",
142730	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
142731	//       "required": true,
142732	//       "type": "string"
142733	//     },
142734	//     "resource": {
142735	//       "description": "Name or id of the resource for this request.",
142736	//       "location": "path",
142737	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
142738	//       "required": true,
142739	//       "type": "string"
142740	//     }
142741	//   },
142742	//   "path": "{project}/regions/{region}/resourcePolicies/{resource}/testIamPermissions",
142743	//   "request": {
142744	//     "$ref": "TestPermissionsRequest"
142745	//   },
142746	//   "response": {
142747	//     "$ref": "TestPermissionsResponse"
142748	//   },
142749	//   "scopes": [
142750	//     "https://www.googleapis.com/auth/cloud-platform",
142751	//     "https://www.googleapis.com/auth/compute",
142752	//     "https://www.googleapis.com/auth/compute.readonly"
142753	//   ]
142754	// }
142755
142756}
142757
142758// method id "compute.routers.aggregatedList":
142759
142760type RoutersAggregatedListCall struct {
142761	s            *Service
142762	project      string
142763	urlParams_   gensupport.URLParams
142764	ifNoneMatch_ string
142765	ctx_         context.Context
142766	header_      http.Header
142767}
142768
142769// AggregatedList: Retrieves an aggregated list of routers. (==
142770// suppress_warning http-rest-shadowed ==)
142771func (r *RoutersService) AggregatedList(project string) *RoutersAggregatedListCall {
142772	c := &RoutersAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
142773	c.project = project
142774	return c
142775}
142776
142777// Filter sets the optional parameter "filter": A filter expression that
142778// filters resources listed in the response. The expression must specify
142779// the field name, a comparison operator, and the value that you want to
142780// use for filtering. The value must be a string, a number, or a
142781// boolean. The comparison operator must be either =, !=, >, or <.
142782//
142783// For example, if you are filtering Compute Engine instances, you can
142784// exclude instances named example-instance by specifying name !=
142785// example-instance.
142786//
142787// You can also filter nested fields. For example, you could specify
142788// scheduling.automaticRestart = false to include instances only if they
142789// are not scheduled for automatic restarts. You can use filtering on
142790// nested fields to filter based on resource labels.
142791//
142792// To filter on multiple expressions, provide each separate expression
142793// within parentheses. For example, (scheduling.automaticRestart = true)
142794// (cpuPlatform = "Intel Skylake"). By default, each expression is an
142795// AND expression. However, you can include AND and OR expressions
142796// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
142797// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
142798// true).
142799func (c *RoutersAggregatedListCall) Filter(filter string) *RoutersAggregatedListCall {
142800	c.urlParams_.Set("filter", filter)
142801	return c
142802}
142803
142804// MaxResults sets the optional parameter "maxResults": The maximum
142805// number of results per page that should be returned. If the number of
142806// available results is larger than maxResults, Compute Engine returns a
142807// nextPageToken that can be used to get the next page of results in
142808// subsequent list requests. Acceptable values are 0 to 500, inclusive.
142809// (Default: 500)
142810func (c *RoutersAggregatedListCall) MaxResults(maxResults int64) *RoutersAggregatedListCall {
142811	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
142812	return c
142813}
142814
142815// OrderBy sets the optional parameter "orderBy": Sorts list results by
142816// a certain order. By default, results are returned in alphanumerical
142817// order based on the resource name.
142818//
142819// You can also sort results in descending order based on the creation
142820// timestamp using orderBy="creationTimestamp desc". This sorts results
142821// based on the creationTimestamp field in reverse chronological order
142822// (newest result first). Use this to sort resources like operations so
142823// that the newest operation is returned first.
142824//
142825// Currently, only sorting by name or creationTimestamp desc is
142826// supported.
142827func (c *RoutersAggregatedListCall) OrderBy(orderBy string) *RoutersAggregatedListCall {
142828	c.urlParams_.Set("orderBy", orderBy)
142829	return c
142830}
142831
142832// PageToken sets the optional parameter "pageToken": Specifies a page
142833// token to use. Set pageToken to the nextPageToken returned by a
142834// previous list request to get the next page of results.
142835func (c *RoutersAggregatedListCall) PageToken(pageToken string) *RoutersAggregatedListCall {
142836	c.urlParams_.Set("pageToken", pageToken)
142837	return c
142838}
142839
142840// Fields allows partial responses to be retrieved. See
142841// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
142842// for more information.
142843func (c *RoutersAggregatedListCall) Fields(s ...googleapi.Field) *RoutersAggregatedListCall {
142844	c.urlParams_.Set("fields", googleapi.CombineFields(s))
142845	return c
142846}
142847
142848// IfNoneMatch sets the optional parameter which makes the operation
142849// fail if the object's ETag matches the given value. This is useful for
142850// getting updates only after the object has changed since the last
142851// request. Use googleapi.IsNotModified to check whether the response
142852// error from Do is the result of In-None-Match.
142853func (c *RoutersAggregatedListCall) IfNoneMatch(entityTag string) *RoutersAggregatedListCall {
142854	c.ifNoneMatch_ = entityTag
142855	return c
142856}
142857
142858// Context sets the context to be used in this call's Do method. Any
142859// pending HTTP request will be aborted if the provided context is
142860// canceled.
142861func (c *RoutersAggregatedListCall) Context(ctx context.Context) *RoutersAggregatedListCall {
142862	c.ctx_ = ctx
142863	return c
142864}
142865
142866// Header returns an http.Header that can be modified by the caller to
142867// add HTTP headers to the request.
142868func (c *RoutersAggregatedListCall) Header() http.Header {
142869	if c.header_ == nil {
142870		c.header_ = make(http.Header)
142871	}
142872	return c.header_
142873}
142874
142875func (c *RoutersAggregatedListCall) doRequest(alt string) (*http.Response, error) {
142876	reqHeaders := make(http.Header)
142877	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
142878	for k, v := range c.header_ {
142879		reqHeaders[k] = v
142880	}
142881	reqHeaders.Set("User-Agent", c.s.userAgent())
142882	if c.ifNoneMatch_ != "" {
142883		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
142884	}
142885	var body io.Reader = nil
142886	c.urlParams_.Set("alt", alt)
142887	c.urlParams_.Set("prettyPrint", "false")
142888	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/routers")
142889	urls += "?" + c.urlParams_.Encode()
142890	req, err := http.NewRequest("GET", urls, body)
142891	if err != nil {
142892		return nil, err
142893	}
142894	req.Header = reqHeaders
142895	googleapi.Expand(req.URL, map[string]string{
142896		"project": c.project,
142897	})
142898	return gensupport.SendRequest(c.ctx_, c.s.client, req)
142899}
142900
142901// Do executes the "compute.routers.aggregatedList" call.
142902// Exactly one of *RouterAggregatedList or error will be non-nil. Any
142903// non-2xx status code is an error. Response headers are in either
142904// *RouterAggregatedList.ServerResponse.Header or (if a response was
142905// returned at all) in error.(*googleapi.Error).Header. Use
142906// googleapi.IsNotModified to check whether the returned error was
142907// because http.StatusNotModified was returned.
142908func (c *RoutersAggregatedListCall) Do(opts ...googleapi.CallOption) (*RouterAggregatedList, error) {
142909	gensupport.SetOptions(c.urlParams_, opts...)
142910	res, err := c.doRequest("json")
142911	if res != nil && res.StatusCode == http.StatusNotModified {
142912		if res.Body != nil {
142913			res.Body.Close()
142914		}
142915		return nil, &googleapi.Error{
142916			Code:   res.StatusCode,
142917			Header: res.Header,
142918		}
142919	}
142920	if err != nil {
142921		return nil, err
142922	}
142923	defer googleapi.CloseBody(res)
142924	if err := googleapi.CheckResponse(res); err != nil {
142925		return nil, err
142926	}
142927	ret := &RouterAggregatedList{
142928		ServerResponse: googleapi.ServerResponse{
142929			Header:         res.Header,
142930			HTTPStatusCode: res.StatusCode,
142931		},
142932	}
142933	target := &ret
142934	if err := gensupport.DecodeResponse(target, res); err != nil {
142935		return nil, err
142936	}
142937	return ret, nil
142938	// {
142939	//   "description": "Retrieves an aggregated list of routers. (== suppress_warning http-rest-shadowed ==)",
142940	//   "httpMethod": "GET",
142941	//   "id": "compute.routers.aggregatedList",
142942	//   "parameterOrder": [
142943	//     "project"
142944	//   ],
142945	//   "parameters": {
142946	//     "filter": {
142947	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
142948	//       "location": "query",
142949	//       "type": "string"
142950	//     },
142951	//     "maxResults": {
142952	//       "default": "500",
142953	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
142954	//       "format": "uint32",
142955	//       "location": "query",
142956	//       "minimum": "0",
142957	//       "type": "integer"
142958	//     },
142959	//     "orderBy": {
142960	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
142961	//       "location": "query",
142962	//       "type": "string"
142963	//     },
142964	//     "pageToken": {
142965	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
142966	//       "location": "query",
142967	//       "type": "string"
142968	//     },
142969	//     "project": {
142970	//       "description": "Project ID for this request.",
142971	//       "location": "path",
142972	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
142973	//       "required": true,
142974	//       "type": "string"
142975	//     }
142976	//   },
142977	//   "path": "{project}/aggregated/routers",
142978	//   "response": {
142979	//     "$ref": "RouterAggregatedList"
142980	//   },
142981	//   "scopes": [
142982	//     "https://www.googleapis.com/auth/cloud-platform",
142983	//     "https://www.googleapis.com/auth/compute",
142984	//     "https://www.googleapis.com/auth/compute.readonly"
142985	//   ]
142986	// }
142987
142988}
142989
142990// Pages invokes f for each page of results.
142991// A non-nil error returned from f will halt the iteration.
142992// The provided context supersedes any context provided to the Context method.
142993func (c *RoutersAggregatedListCall) Pages(ctx context.Context, f func(*RouterAggregatedList) error) error {
142994	c.ctx_ = ctx
142995	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
142996	for {
142997		x, err := c.Do()
142998		if err != nil {
142999			return err
143000		}
143001		if err := f(x); err != nil {
143002			return err
143003		}
143004		if x.NextPageToken == "" {
143005			return nil
143006		}
143007		c.PageToken(x.NextPageToken)
143008	}
143009}
143010
143011// method id "compute.routers.delete":
143012
143013type RoutersDeleteCall struct {
143014	s          *Service
143015	project    string
143016	region     string
143017	router     string
143018	urlParams_ gensupport.URLParams
143019	ctx_       context.Context
143020	header_    http.Header
143021}
143022
143023// Delete: Deletes the specified Router resource. (== suppress_warning
143024// http-rest-shadowed ==)
143025func (r *RoutersService) Delete(project string, region string, router string) *RoutersDeleteCall {
143026	c := &RoutersDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
143027	c.project = project
143028	c.region = region
143029	c.router = router
143030	return c
143031}
143032
143033// RequestId sets the optional parameter "requestId": An optional
143034// request ID to identify requests. Specify a unique request ID so that
143035// if you must retry your request, the server will know to ignore the
143036// request if it has already been completed.
143037//
143038// For example, consider a situation where you make an initial request
143039// and the request times out. If you make the request again with the
143040// same request ID, the server can check if original operation with the
143041// same request ID was received, and if so, will ignore the second
143042// request. This prevents clients from accidentally creating duplicate
143043// commitments.
143044//
143045// The request ID must be a valid UUID with the exception that zero UUID
143046// is not supported (00000000-0000-0000-0000-000000000000).
143047func (c *RoutersDeleteCall) RequestId(requestId string) *RoutersDeleteCall {
143048	c.urlParams_.Set("requestId", requestId)
143049	return c
143050}
143051
143052// Fields allows partial responses to be retrieved. See
143053// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
143054// for more information.
143055func (c *RoutersDeleteCall) Fields(s ...googleapi.Field) *RoutersDeleteCall {
143056	c.urlParams_.Set("fields", googleapi.CombineFields(s))
143057	return c
143058}
143059
143060// Context sets the context to be used in this call's Do method. Any
143061// pending HTTP request will be aborted if the provided context is
143062// canceled.
143063func (c *RoutersDeleteCall) Context(ctx context.Context) *RoutersDeleteCall {
143064	c.ctx_ = ctx
143065	return c
143066}
143067
143068// Header returns an http.Header that can be modified by the caller to
143069// add HTTP headers to the request.
143070func (c *RoutersDeleteCall) Header() http.Header {
143071	if c.header_ == nil {
143072		c.header_ = make(http.Header)
143073	}
143074	return c.header_
143075}
143076
143077func (c *RoutersDeleteCall) doRequest(alt string) (*http.Response, error) {
143078	reqHeaders := make(http.Header)
143079	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
143080	for k, v := range c.header_ {
143081		reqHeaders[k] = v
143082	}
143083	reqHeaders.Set("User-Agent", c.s.userAgent())
143084	var body io.Reader = nil
143085	c.urlParams_.Set("alt", alt)
143086	c.urlParams_.Set("prettyPrint", "false")
143087	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/routers/{router}")
143088	urls += "?" + c.urlParams_.Encode()
143089	req, err := http.NewRequest("DELETE", urls, body)
143090	if err != nil {
143091		return nil, err
143092	}
143093	req.Header = reqHeaders
143094	googleapi.Expand(req.URL, map[string]string{
143095		"project": c.project,
143096		"region":  c.region,
143097		"router":  c.router,
143098	})
143099	return gensupport.SendRequest(c.ctx_, c.s.client, req)
143100}
143101
143102// Do executes the "compute.routers.delete" call.
143103// Exactly one of *Operation or error will be non-nil. Any non-2xx
143104// status code is an error. Response headers are in either
143105// *Operation.ServerResponse.Header or (if a response was returned at
143106// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
143107// to check whether the returned error was because
143108// http.StatusNotModified was returned.
143109func (c *RoutersDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
143110	gensupport.SetOptions(c.urlParams_, opts...)
143111	res, err := c.doRequest("json")
143112	if res != nil && res.StatusCode == http.StatusNotModified {
143113		if res.Body != nil {
143114			res.Body.Close()
143115		}
143116		return nil, &googleapi.Error{
143117			Code:   res.StatusCode,
143118			Header: res.Header,
143119		}
143120	}
143121	if err != nil {
143122		return nil, err
143123	}
143124	defer googleapi.CloseBody(res)
143125	if err := googleapi.CheckResponse(res); err != nil {
143126		return nil, err
143127	}
143128	ret := &Operation{
143129		ServerResponse: googleapi.ServerResponse{
143130			Header:         res.Header,
143131			HTTPStatusCode: res.StatusCode,
143132		},
143133	}
143134	target := &ret
143135	if err := gensupport.DecodeResponse(target, res); err != nil {
143136		return nil, err
143137	}
143138	return ret, nil
143139	// {
143140	//   "description": "Deletes the specified Router resource. (== suppress_warning http-rest-shadowed ==)",
143141	//   "httpMethod": "DELETE",
143142	//   "id": "compute.routers.delete",
143143	//   "parameterOrder": [
143144	//     "project",
143145	//     "region",
143146	//     "router"
143147	//   ],
143148	//   "parameters": {
143149	//     "project": {
143150	//       "description": "Project ID for this request.",
143151	//       "location": "path",
143152	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
143153	//       "required": true,
143154	//       "type": "string"
143155	//     },
143156	//     "region": {
143157	//       "description": "Name of the region for this request.",
143158	//       "location": "path",
143159	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
143160	//       "required": true,
143161	//       "type": "string"
143162	//     },
143163	//     "requestId": {
143164	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
143165	//       "location": "query",
143166	//       "type": "string"
143167	//     },
143168	//     "router": {
143169	//       "description": "Name of the Router resource to delete.",
143170	//       "location": "path",
143171	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
143172	//       "required": true,
143173	//       "type": "string"
143174	//     }
143175	//   },
143176	//   "path": "{project}/regions/{region}/routers/{router}",
143177	//   "response": {
143178	//     "$ref": "Operation"
143179	//   },
143180	//   "scopes": [
143181	//     "https://www.googleapis.com/auth/cloud-platform",
143182	//     "https://www.googleapis.com/auth/compute"
143183	//   ]
143184	// }
143185
143186}
143187
143188// method id "compute.routers.get":
143189
143190type RoutersGetCall struct {
143191	s            *Service
143192	project      string
143193	region       string
143194	router       string
143195	urlParams_   gensupport.URLParams
143196	ifNoneMatch_ string
143197	ctx_         context.Context
143198	header_      http.Header
143199}
143200
143201// Get: Returns the specified Router resource. Gets a list of available
143202// routers by making a list() request. (== suppress_warning
143203// http-rest-shadowed ==)
143204func (r *RoutersService) Get(project string, region string, router string) *RoutersGetCall {
143205	c := &RoutersGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
143206	c.project = project
143207	c.region = region
143208	c.router = router
143209	return c
143210}
143211
143212// Fields allows partial responses to be retrieved. See
143213// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
143214// for more information.
143215func (c *RoutersGetCall) Fields(s ...googleapi.Field) *RoutersGetCall {
143216	c.urlParams_.Set("fields", googleapi.CombineFields(s))
143217	return c
143218}
143219
143220// IfNoneMatch sets the optional parameter which makes the operation
143221// fail if the object's ETag matches the given value. This is useful for
143222// getting updates only after the object has changed since the last
143223// request. Use googleapi.IsNotModified to check whether the response
143224// error from Do is the result of In-None-Match.
143225func (c *RoutersGetCall) IfNoneMatch(entityTag string) *RoutersGetCall {
143226	c.ifNoneMatch_ = entityTag
143227	return c
143228}
143229
143230// Context sets the context to be used in this call's Do method. Any
143231// pending HTTP request will be aborted if the provided context is
143232// canceled.
143233func (c *RoutersGetCall) Context(ctx context.Context) *RoutersGetCall {
143234	c.ctx_ = ctx
143235	return c
143236}
143237
143238// Header returns an http.Header that can be modified by the caller to
143239// add HTTP headers to the request.
143240func (c *RoutersGetCall) Header() http.Header {
143241	if c.header_ == nil {
143242		c.header_ = make(http.Header)
143243	}
143244	return c.header_
143245}
143246
143247func (c *RoutersGetCall) doRequest(alt string) (*http.Response, error) {
143248	reqHeaders := make(http.Header)
143249	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
143250	for k, v := range c.header_ {
143251		reqHeaders[k] = v
143252	}
143253	reqHeaders.Set("User-Agent", c.s.userAgent())
143254	if c.ifNoneMatch_ != "" {
143255		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
143256	}
143257	var body io.Reader = nil
143258	c.urlParams_.Set("alt", alt)
143259	c.urlParams_.Set("prettyPrint", "false")
143260	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/routers/{router}")
143261	urls += "?" + c.urlParams_.Encode()
143262	req, err := http.NewRequest("GET", urls, body)
143263	if err != nil {
143264		return nil, err
143265	}
143266	req.Header = reqHeaders
143267	googleapi.Expand(req.URL, map[string]string{
143268		"project": c.project,
143269		"region":  c.region,
143270		"router":  c.router,
143271	})
143272	return gensupport.SendRequest(c.ctx_, c.s.client, req)
143273}
143274
143275// Do executes the "compute.routers.get" call.
143276// Exactly one of *Router or error will be non-nil. Any non-2xx status
143277// code is an error. Response headers are in either
143278// *Router.ServerResponse.Header or (if a response was returned at all)
143279// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
143280// check whether the returned error was because http.StatusNotModified
143281// was returned.
143282func (c *RoutersGetCall) Do(opts ...googleapi.CallOption) (*Router, error) {
143283	gensupport.SetOptions(c.urlParams_, opts...)
143284	res, err := c.doRequest("json")
143285	if res != nil && res.StatusCode == http.StatusNotModified {
143286		if res.Body != nil {
143287			res.Body.Close()
143288		}
143289		return nil, &googleapi.Error{
143290			Code:   res.StatusCode,
143291			Header: res.Header,
143292		}
143293	}
143294	if err != nil {
143295		return nil, err
143296	}
143297	defer googleapi.CloseBody(res)
143298	if err := googleapi.CheckResponse(res); err != nil {
143299		return nil, err
143300	}
143301	ret := &Router{
143302		ServerResponse: googleapi.ServerResponse{
143303			Header:         res.Header,
143304			HTTPStatusCode: res.StatusCode,
143305		},
143306	}
143307	target := &ret
143308	if err := gensupport.DecodeResponse(target, res); err != nil {
143309		return nil, err
143310	}
143311	return ret, nil
143312	// {
143313	//   "description": "Returns the specified Router resource. Gets a list of available routers by making a list() request. (== suppress_warning http-rest-shadowed ==)",
143314	//   "httpMethod": "GET",
143315	//   "id": "compute.routers.get",
143316	//   "parameterOrder": [
143317	//     "project",
143318	//     "region",
143319	//     "router"
143320	//   ],
143321	//   "parameters": {
143322	//     "project": {
143323	//       "description": "Project ID for this request.",
143324	//       "location": "path",
143325	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
143326	//       "required": true,
143327	//       "type": "string"
143328	//     },
143329	//     "region": {
143330	//       "description": "Name of the region for this request.",
143331	//       "location": "path",
143332	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
143333	//       "required": true,
143334	//       "type": "string"
143335	//     },
143336	//     "router": {
143337	//       "description": "Name of the Router resource to return.",
143338	//       "location": "path",
143339	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
143340	//       "required": true,
143341	//       "type": "string"
143342	//     }
143343	//   },
143344	//   "path": "{project}/regions/{region}/routers/{router}",
143345	//   "response": {
143346	//     "$ref": "Router"
143347	//   },
143348	//   "scopes": [
143349	//     "https://www.googleapis.com/auth/cloud-platform",
143350	//     "https://www.googleapis.com/auth/compute",
143351	//     "https://www.googleapis.com/auth/compute.readonly"
143352	//   ]
143353	// }
143354
143355}
143356
143357// method id "compute.routers.getNatMappingInfo":
143358
143359type RoutersGetNatMappingInfoCall struct {
143360	s            *Service
143361	project      string
143362	region       string
143363	router       string
143364	urlParams_   gensupport.URLParams
143365	ifNoneMatch_ string
143366	ctx_         context.Context
143367	header_      http.Header
143368}
143369
143370// GetNatMappingInfo: Retrieves runtime Nat mapping information of VM
143371// endpoints. (== suppress_warning http-rest-shadowed ==)
143372func (r *RoutersService) GetNatMappingInfo(project string, region string, router string) *RoutersGetNatMappingInfoCall {
143373	c := &RoutersGetNatMappingInfoCall{s: r.s, urlParams_: make(gensupport.URLParams)}
143374	c.project = project
143375	c.region = region
143376	c.router = router
143377	return c
143378}
143379
143380// Filter sets the optional parameter "filter": A filter expression that
143381// filters resources listed in the response. The expression must specify
143382// the field name, a comparison operator, and the value that you want to
143383// use for filtering. The value must be a string, a number, or a
143384// boolean. The comparison operator must be either =, !=, >, or <.
143385//
143386// For example, if you are filtering Compute Engine instances, you can
143387// exclude instances named example-instance by specifying name !=
143388// example-instance.
143389//
143390// You can also filter nested fields. For example, you could specify
143391// scheduling.automaticRestart = false to include instances only if they
143392// are not scheduled for automatic restarts. You can use filtering on
143393// nested fields to filter based on resource labels.
143394//
143395// To filter on multiple expressions, provide each separate expression
143396// within parentheses. For example, (scheduling.automaticRestart = true)
143397// (cpuPlatform = "Intel Skylake"). By default, each expression is an
143398// AND expression. However, you can include AND and OR expressions
143399// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
143400// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
143401// true).
143402func (c *RoutersGetNatMappingInfoCall) Filter(filter string) *RoutersGetNatMappingInfoCall {
143403	c.urlParams_.Set("filter", filter)
143404	return c
143405}
143406
143407// MaxResults sets the optional parameter "maxResults": The maximum
143408// number of results per page that should be returned. If the number of
143409// available results is larger than maxResults, Compute Engine returns a
143410// nextPageToken that can be used to get the next page of results in
143411// subsequent list requests. Acceptable values are 0 to 500, inclusive.
143412// (Default: 500)
143413func (c *RoutersGetNatMappingInfoCall) MaxResults(maxResults int64) *RoutersGetNatMappingInfoCall {
143414	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
143415	return c
143416}
143417
143418// NatName sets the optional parameter "natName": Name of the nat
143419// service to filter the Nat Mapping information. If it is omitted, all
143420// nats for this router will be returned. Name should conform to
143421// RFC1035.
143422func (c *RoutersGetNatMappingInfoCall) NatName(natName string) *RoutersGetNatMappingInfoCall {
143423	c.urlParams_.Set("natName", natName)
143424	return c
143425}
143426
143427// OrderBy sets the optional parameter "orderBy": Sorts list results by
143428// a certain order. By default, results are returned in alphanumerical
143429// order based on the resource name.
143430//
143431// You can also sort results in descending order based on the creation
143432// timestamp using orderBy="creationTimestamp desc". This sorts results
143433// based on the creationTimestamp field in reverse chronological order
143434// (newest result first). Use this to sort resources like operations so
143435// that the newest operation is returned first.
143436//
143437// Currently, only sorting by name or creationTimestamp desc is
143438// supported.
143439func (c *RoutersGetNatMappingInfoCall) OrderBy(orderBy string) *RoutersGetNatMappingInfoCall {
143440	c.urlParams_.Set("orderBy", orderBy)
143441	return c
143442}
143443
143444// PageToken sets the optional parameter "pageToken": Specifies a page
143445// token to use. Set pageToken to the nextPageToken returned by a
143446// previous list request to get the next page of results.
143447func (c *RoutersGetNatMappingInfoCall) PageToken(pageToken string) *RoutersGetNatMappingInfoCall {
143448	c.urlParams_.Set("pageToken", pageToken)
143449	return c
143450}
143451
143452// Fields allows partial responses to be retrieved. See
143453// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
143454// for more information.
143455func (c *RoutersGetNatMappingInfoCall) Fields(s ...googleapi.Field) *RoutersGetNatMappingInfoCall {
143456	c.urlParams_.Set("fields", googleapi.CombineFields(s))
143457	return c
143458}
143459
143460// IfNoneMatch sets the optional parameter which makes the operation
143461// fail if the object's ETag matches the given value. This is useful for
143462// getting updates only after the object has changed since the last
143463// request. Use googleapi.IsNotModified to check whether the response
143464// error from Do is the result of In-None-Match.
143465func (c *RoutersGetNatMappingInfoCall) IfNoneMatch(entityTag string) *RoutersGetNatMappingInfoCall {
143466	c.ifNoneMatch_ = entityTag
143467	return c
143468}
143469
143470// Context sets the context to be used in this call's Do method. Any
143471// pending HTTP request will be aborted if the provided context is
143472// canceled.
143473func (c *RoutersGetNatMappingInfoCall) Context(ctx context.Context) *RoutersGetNatMappingInfoCall {
143474	c.ctx_ = ctx
143475	return c
143476}
143477
143478// Header returns an http.Header that can be modified by the caller to
143479// add HTTP headers to the request.
143480func (c *RoutersGetNatMappingInfoCall) Header() http.Header {
143481	if c.header_ == nil {
143482		c.header_ = make(http.Header)
143483	}
143484	return c.header_
143485}
143486
143487func (c *RoutersGetNatMappingInfoCall) doRequest(alt string) (*http.Response, error) {
143488	reqHeaders := make(http.Header)
143489	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
143490	for k, v := range c.header_ {
143491		reqHeaders[k] = v
143492	}
143493	reqHeaders.Set("User-Agent", c.s.userAgent())
143494	if c.ifNoneMatch_ != "" {
143495		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
143496	}
143497	var body io.Reader = nil
143498	c.urlParams_.Set("alt", alt)
143499	c.urlParams_.Set("prettyPrint", "false")
143500	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/routers/{router}/getNatMappingInfo")
143501	urls += "?" + c.urlParams_.Encode()
143502	req, err := http.NewRequest("GET", urls, body)
143503	if err != nil {
143504		return nil, err
143505	}
143506	req.Header = reqHeaders
143507	googleapi.Expand(req.URL, map[string]string{
143508		"project": c.project,
143509		"region":  c.region,
143510		"router":  c.router,
143511	})
143512	return gensupport.SendRequest(c.ctx_, c.s.client, req)
143513}
143514
143515// Do executes the "compute.routers.getNatMappingInfo" call.
143516// Exactly one of *VmEndpointNatMappingsList or error will be non-nil.
143517// Any non-2xx status code is an error. Response headers are in either
143518// *VmEndpointNatMappingsList.ServerResponse.Header or (if a response
143519// was returned at all) in error.(*googleapi.Error).Header. Use
143520// googleapi.IsNotModified to check whether the returned error was
143521// because http.StatusNotModified was returned.
143522func (c *RoutersGetNatMappingInfoCall) Do(opts ...googleapi.CallOption) (*VmEndpointNatMappingsList, error) {
143523	gensupport.SetOptions(c.urlParams_, opts...)
143524	res, err := c.doRequest("json")
143525	if res != nil && res.StatusCode == http.StatusNotModified {
143526		if res.Body != nil {
143527			res.Body.Close()
143528		}
143529		return nil, &googleapi.Error{
143530			Code:   res.StatusCode,
143531			Header: res.Header,
143532		}
143533	}
143534	if err != nil {
143535		return nil, err
143536	}
143537	defer googleapi.CloseBody(res)
143538	if err := googleapi.CheckResponse(res); err != nil {
143539		return nil, err
143540	}
143541	ret := &VmEndpointNatMappingsList{
143542		ServerResponse: googleapi.ServerResponse{
143543			Header:         res.Header,
143544			HTTPStatusCode: res.StatusCode,
143545		},
143546	}
143547	target := &ret
143548	if err := gensupport.DecodeResponse(target, res); err != nil {
143549		return nil, err
143550	}
143551	return ret, nil
143552	// {
143553	//   "description": "Retrieves runtime Nat mapping information of VM endpoints. (== suppress_warning http-rest-shadowed ==)",
143554	//   "httpMethod": "GET",
143555	//   "id": "compute.routers.getNatMappingInfo",
143556	//   "parameterOrder": [
143557	//     "project",
143558	//     "region",
143559	//     "router"
143560	//   ],
143561	//   "parameters": {
143562	//     "filter": {
143563	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
143564	//       "location": "query",
143565	//       "type": "string"
143566	//     },
143567	//     "maxResults": {
143568	//       "default": "500",
143569	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
143570	//       "format": "uint32",
143571	//       "location": "query",
143572	//       "minimum": "0",
143573	//       "type": "integer"
143574	//     },
143575	//     "natName": {
143576	//       "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.",
143577	//       "location": "query",
143578	//       "type": "string"
143579	//     },
143580	//     "orderBy": {
143581	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
143582	//       "location": "query",
143583	//       "type": "string"
143584	//     },
143585	//     "pageToken": {
143586	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
143587	//       "location": "query",
143588	//       "type": "string"
143589	//     },
143590	//     "project": {
143591	//       "description": "Project ID for this request.",
143592	//       "location": "path",
143593	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
143594	//       "required": true,
143595	//       "type": "string"
143596	//     },
143597	//     "region": {
143598	//       "description": "Name of the region for this request.",
143599	//       "location": "path",
143600	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
143601	//       "required": true,
143602	//       "type": "string"
143603	//     },
143604	//     "router": {
143605	//       "description": "Name of the Router resource to query for Nat Mapping information of VM endpoints.",
143606	//       "location": "path",
143607	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
143608	//       "required": true,
143609	//       "type": "string"
143610	//     }
143611	//   },
143612	//   "path": "{project}/regions/{region}/routers/{router}/getNatMappingInfo",
143613	//   "response": {
143614	//     "$ref": "VmEndpointNatMappingsList"
143615	//   },
143616	//   "scopes": [
143617	//     "https://www.googleapis.com/auth/cloud-platform",
143618	//     "https://www.googleapis.com/auth/compute",
143619	//     "https://www.googleapis.com/auth/compute.readonly"
143620	//   ]
143621	// }
143622
143623}
143624
143625// Pages invokes f for each page of results.
143626// A non-nil error returned from f will halt the iteration.
143627// The provided context supersedes any context provided to the Context method.
143628func (c *RoutersGetNatMappingInfoCall) Pages(ctx context.Context, f func(*VmEndpointNatMappingsList) error) error {
143629	c.ctx_ = ctx
143630	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
143631	for {
143632		x, err := c.Do()
143633		if err != nil {
143634			return err
143635		}
143636		if err := f(x); err != nil {
143637			return err
143638		}
143639		if x.NextPageToken == "" {
143640			return nil
143641		}
143642		c.PageToken(x.NextPageToken)
143643	}
143644}
143645
143646// method id "compute.routers.getRouterStatus":
143647
143648type RoutersGetRouterStatusCall struct {
143649	s            *Service
143650	project      string
143651	region       string
143652	router       string
143653	urlParams_   gensupport.URLParams
143654	ifNoneMatch_ string
143655	ctx_         context.Context
143656	header_      http.Header
143657}
143658
143659// GetRouterStatus: Retrieves runtime information of the specified
143660// router. (== suppress_warning http-rest-shadowed ==)
143661func (r *RoutersService) GetRouterStatus(project string, region string, router string) *RoutersGetRouterStatusCall {
143662	c := &RoutersGetRouterStatusCall{s: r.s, urlParams_: make(gensupport.URLParams)}
143663	c.project = project
143664	c.region = region
143665	c.router = router
143666	return c
143667}
143668
143669// Fields allows partial responses to be retrieved. See
143670// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
143671// for more information.
143672func (c *RoutersGetRouterStatusCall) Fields(s ...googleapi.Field) *RoutersGetRouterStatusCall {
143673	c.urlParams_.Set("fields", googleapi.CombineFields(s))
143674	return c
143675}
143676
143677// IfNoneMatch sets the optional parameter which makes the operation
143678// fail if the object's ETag matches the given value. This is useful for
143679// getting updates only after the object has changed since the last
143680// request. Use googleapi.IsNotModified to check whether the response
143681// error from Do is the result of In-None-Match.
143682func (c *RoutersGetRouterStatusCall) IfNoneMatch(entityTag string) *RoutersGetRouterStatusCall {
143683	c.ifNoneMatch_ = entityTag
143684	return c
143685}
143686
143687// Context sets the context to be used in this call's Do method. Any
143688// pending HTTP request will be aborted if the provided context is
143689// canceled.
143690func (c *RoutersGetRouterStatusCall) Context(ctx context.Context) *RoutersGetRouterStatusCall {
143691	c.ctx_ = ctx
143692	return c
143693}
143694
143695// Header returns an http.Header that can be modified by the caller to
143696// add HTTP headers to the request.
143697func (c *RoutersGetRouterStatusCall) Header() http.Header {
143698	if c.header_ == nil {
143699		c.header_ = make(http.Header)
143700	}
143701	return c.header_
143702}
143703
143704func (c *RoutersGetRouterStatusCall) doRequest(alt string) (*http.Response, error) {
143705	reqHeaders := make(http.Header)
143706	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
143707	for k, v := range c.header_ {
143708		reqHeaders[k] = v
143709	}
143710	reqHeaders.Set("User-Agent", c.s.userAgent())
143711	if c.ifNoneMatch_ != "" {
143712		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
143713	}
143714	var body io.Reader = nil
143715	c.urlParams_.Set("alt", alt)
143716	c.urlParams_.Set("prettyPrint", "false")
143717	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/routers/{router}/getRouterStatus")
143718	urls += "?" + c.urlParams_.Encode()
143719	req, err := http.NewRequest("GET", urls, body)
143720	if err != nil {
143721		return nil, err
143722	}
143723	req.Header = reqHeaders
143724	googleapi.Expand(req.URL, map[string]string{
143725		"project": c.project,
143726		"region":  c.region,
143727		"router":  c.router,
143728	})
143729	return gensupport.SendRequest(c.ctx_, c.s.client, req)
143730}
143731
143732// Do executes the "compute.routers.getRouterStatus" call.
143733// Exactly one of *RouterStatusResponse or error will be non-nil. Any
143734// non-2xx status code is an error. Response headers are in either
143735// *RouterStatusResponse.ServerResponse.Header or (if a response was
143736// returned at all) in error.(*googleapi.Error).Header. Use
143737// googleapi.IsNotModified to check whether the returned error was
143738// because http.StatusNotModified was returned.
143739func (c *RoutersGetRouterStatusCall) Do(opts ...googleapi.CallOption) (*RouterStatusResponse, error) {
143740	gensupport.SetOptions(c.urlParams_, opts...)
143741	res, err := c.doRequest("json")
143742	if res != nil && res.StatusCode == http.StatusNotModified {
143743		if res.Body != nil {
143744			res.Body.Close()
143745		}
143746		return nil, &googleapi.Error{
143747			Code:   res.StatusCode,
143748			Header: res.Header,
143749		}
143750	}
143751	if err != nil {
143752		return nil, err
143753	}
143754	defer googleapi.CloseBody(res)
143755	if err := googleapi.CheckResponse(res); err != nil {
143756		return nil, err
143757	}
143758	ret := &RouterStatusResponse{
143759		ServerResponse: googleapi.ServerResponse{
143760			Header:         res.Header,
143761			HTTPStatusCode: res.StatusCode,
143762		},
143763	}
143764	target := &ret
143765	if err := gensupport.DecodeResponse(target, res); err != nil {
143766		return nil, err
143767	}
143768	return ret, nil
143769	// {
143770	//   "description": "Retrieves runtime information of the specified router. (== suppress_warning http-rest-shadowed ==)",
143771	//   "httpMethod": "GET",
143772	//   "id": "compute.routers.getRouterStatus",
143773	//   "parameterOrder": [
143774	//     "project",
143775	//     "region",
143776	//     "router"
143777	//   ],
143778	//   "parameters": {
143779	//     "project": {
143780	//       "description": "Project ID for this request.",
143781	//       "location": "path",
143782	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
143783	//       "required": true,
143784	//       "type": "string"
143785	//     },
143786	//     "region": {
143787	//       "description": "Name of the region for this request.",
143788	//       "location": "path",
143789	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
143790	//       "required": true,
143791	//       "type": "string"
143792	//     },
143793	//     "router": {
143794	//       "description": "Name of the Router resource to query.",
143795	//       "location": "path",
143796	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
143797	//       "required": true,
143798	//       "type": "string"
143799	//     }
143800	//   },
143801	//   "path": "{project}/regions/{region}/routers/{router}/getRouterStatus",
143802	//   "response": {
143803	//     "$ref": "RouterStatusResponse"
143804	//   },
143805	//   "scopes": [
143806	//     "https://www.googleapis.com/auth/cloud-platform",
143807	//     "https://www.googleapis.com/auth/compute",
143808	//     "https://www.googleapis.com/auth/compute.readonly"
143809	//   ]
143810	// }
143811
143812}
143813
143814// method id "compute.routers.insert":
143815
143816type RoutersInsertCall struct {
143817	s          *Service
143818	project    string
143819	region     string
143820	router     *Router
143821	urlParams_ gensupport.URLParams
143822	ctx_       context.Context
143823	header_    http.Header
143824}
143825
143826// Insert: Creates a Router resource in the specified project and region
143827// using the data included in the request. (== suppress_warning
143828// http-rest-shadowed ==)
143829func (r *RoutersService) Insert(project string, region string, router *Router) *RoutersInsertCall {
143830	c := &RoutersInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
143831	c.project = project
143832	c.region = region
143833	c.router = router
143834	return c
143835}
143836
143837// RequestId sets the optional parameter "requestId": An optional
143838// request ID to identify requests. Specify a unique request ID so that
143839// if you must retry your request, the server will know to ignore the
143840// request if it has already been completed.
143841//
143842// For example, consider a situation where you make an initial request
143843// and the request times out. If you make the request again with the
143844// same request ID, the server can check if original operation with the
143845// same request ID was received, and if so, will ignore the second
143846// request. This prevents clients from accidentally creating duplicate
143847// commitments.
143848//
143849// The request ID must be a valid UUID with the exception that zero UUID
143850// is not supported (00000000-0000-0000-0000-000000000000).
143851func (c *RoutersInsertCall) RequestId(requestId string) *RoutersInsertCall {
143852	c.urlParams_.Set("requestId", requestId)
143853	return c
143854}
143855
143856// Fields allows partial responses to be retrieved. See
143857// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
143858// for more information.
143859func (c *RoutersInsertCall) Fields(s ...googleapi.Field) *RoutersInsertCall {
143860	c.urlParams_.Set("fields", googleapi.CombineFields(s))
143861	return c
143862}
143863
143864// Context sets the context to be used in this call's Do method. Any
143865// pending HTTP request will be aborted if the provided context is
143866// canceled.
143867func (c *RoutersInsertCall) Context(ctx context.Context) *RoutersInsertCall {
143868	c.ctx_ = ctx
143869	return c
143870}
143871
143872// Header returns an http.Header that can be modified by the caller to
143873// add HTTP headers to the request.
143874func (c *RoutersInsertCall) Header() http.Header {
143875	if c.header_ == nil {
143876		c.header_ = make(http.Header)
143877	}
143878	return c.header_
143879}
143880
143881func (c *RoutersInsertCall) doRequest(alt string) (*http.Response, error) {
143882	reqHeaders := make(http.Header)
143883	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
143884	for k, v := range c.header_ {
143885		reqHeaders[k] = v
143886	}
143887	reqHeaders.Set("User-Agent", c.s.userAgent())
143888	var body io.Reader = nil
143889	body, err := googleapi.WithoutDataWrapper.JSONReader(c.router)
143890	if err != nil {
143891		return nil, err
143892	}
143893	reqHeaders.Set("Content-Type", "application/json")
143894	c.urlParams_.Set("alt", alt)
143895	c.urlParams_.Set("prettyPrint", "false")
143896	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/routers")
143897	urls += "?" + c.urlParams_.Encode()
143898	req, err := http.NewRequest("POST", urls, body)
143899	if err != nil {
143900		return nil, err
143901	}
143902	req.Header = reqHeaders
143903	googleapi.Expand(req.URL, map[string]string{
143904		"project": c.project,
143905		"region":  c.region,
143906	})
143907	return gensupport.SendRequest(c.ctx_, c.s.client, req)
143908}
143909
143910// Do executes the "compute.routers.insert" call.
143911// Exactly one of *Operation or error will be non-nil. Any non-2xx
143912// status code is an error. Response headers are in either
143913// *Operation.ServerResponse.Header or (if a response was returned at
143914// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
143915// to check whether the returned error was because
143916// http.StatusNotModified was returned.
143917func (c *RoutersInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
143918	gensupport.SetOptions(c.urlParams_, opts...)
143919	res, err := c.doRequest("json")
143920	if res != nil && res.StatusCode == http.StatusNotModified {
143921		if res.Body != nil {
143922			res.Body.Close()
143923		}
143924		return nil, &googleapi.Error{
143925			Code:   res.StatusCode,
143926			Header: res.Header,
143927		}
143928	}
143929	if err != nil {
143930		return nil, err
143931	}
143932	defer googleapi.CloseBody(res)
143933	if err := googleapi.CheckResponse(res); err != nil {
143934		return nil, err
143935	}
143936	ret := &Operation{
143937		ServerResponse: googleapi.ServerResponse{
143938			Header:         res.Header,
143939			HTTPStatusCode: res.StatusCode,
143940		},
143941	}
143942	target := &ret
143943	if err := gensupport.DecodeResponse(target, res); err != nil {
143944		return nil, err
143945	}
143946	return ret, nil
143947	// {
143948	//   "description": "Creates a Router resource in the specified project and region using the data included in the request. (== suppress_warning http-rest-shadowed ==)",
143949	//   "httpMethod": "POST",
143950	//   "id": "compute.routers.insert",
143951	//   "parameterOrder": [
143952	//     "project",
143953	//     "region"
143954	//   ],
143955	//   "parameters": {
143956	//     "project": {
143957	//       "description": "Project ID for this request.",
143958	//       "location": "path",
143959	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
143960	//       "required": true,
143961	//       "type": "string"
143962	//     },
143963	//     "region": {
143964	//       "description": "Name of the region for this request.",
143965	//       "location": "path",
143966	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
143967	//       "required": true,
143968	//       "type": "string"
143969	//     },
143970	//     "requestId": {
143971	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
143972	//       "location": "query",
143973	//       "type": "string"
143974	//     }
143975	//   },
143976	//   "path": "{project}/regions/{region}/routers",
143977	//   "request": {
143978	//     "$ref": "Router"
143979	//   },
143980	//   "response": {
143981	//     "$ref": "Operation"
143982	//   },
143983	//   "scopes": [
143984	//     "https://www.googleapis.com/auth/cloud-platform",
143985	//     "https://www.googleapis.com/auth/compute"
143986	//   ]
143987	// }
143988
143989}
143990
143991// method id "compute.routers.list":
143992
143993type RoutersListCall struct {
143994	s            *Service
143995	project      string
143996	region       string
143997	urlParams_   gensupport.URLParams
143998	ifNoneMatch_ string
143999	ctx_         context.Context
144000	header_      http.Header
144001}
144002
144003// List: Retrieves a list of Router resources available to the specified
144004// project. (== suppress_warning http-rest-shadowed ==)
144005func (r *RoutersService) List(project string, region string) *RoutersListCall {
144006	c := &RoutersListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
144007	c.project = project
144008	c.region = region
144009	return c
144010}
144011
144012// Filter sets the optional parameter "filter": A filter expression that
144013// filters resources listed in the response. The expression must specify
144014// the field name, a comparison operator, and the value that you want to
144015// use for filtering. The value must be a string, a number, or a
144016// boolean. The comparison operator must be either =, !=, >, or <.
144017//
144018// For example, if you are filtering Compute Engine instances, you can
144019// exclude instances named example-instance by specifying name !=
144020// example-instance.
144021//
144022// You can also filter nested fields. For example, you could specify
144023// scheduling.automaticRestart = false to include instances only if they
144024// are not scheduled for automatic restarts. You can use filtering on
144025// nested fields to filter based on resource labels.
144026//
144027// To filter on multiple expressions, provide each separate expression
144028// within parentheses. For example, (scheduling.automaticRestart = true)
144029// (cpuPlatform = "Intel Skylake"). By default, each expression is an
144030// AND expression. However, you can include AND and OR expressions
144031// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
144032// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
144033// true).
144034func (c *RoutersListCall) Filter(filter string) *RoutersListCall {
144035	c.urlParams_.Set("filter", filter)
144036	return c
144037}
144038
144039// MaxResults sets the optional parameter "maxResults": The maximum
144040// number of results per page that should be returned. If the number of
144041// available results is larger than maxResults, Compute Engine returns a
144042// nextPageToken that can be used to get the next page of results in
144043// subsequent list requests. Acceptable values are 0 to 500, inclusive.
144044// (Default: 500)
144045func (c *RoutersListCall) MaxResults(maxResults int64) *RoutersListCall {
144046	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
144047	return c
144048}
144049
144050// OrderBy sets the optional parameter "orderBy": Sorts list results by
144051// a certain order. By default, results are returned in alphanumerical
144052// order based on the resource name.
144053//
144054// You can also sort results in descending order based on the creation
144055// timestamp using orderBy="creationTimestamp desc". This sorts results
144056// based on the creationTimestamp field in reverse chronological order
144057// (newest result first). Use this to sort resources like operations so
144058// that the newest operation is returned first.
144059//
144060// Currently, only sorting by name or creationTimestamp desc is
144061// supported.
144062func (c *RoutersListCall) OrderBy(orderBy string) *RoutersListCall {
144063	c.urlParams_.Set("orderBy", orderBy)
144064	return c
144065}
144066
144067// PageToken sets the optional parameter "pageToken": Specifies a page
144068// token to use. Set pageToken to the nextPageToken returned by a
144069// previous list request to get the next page of results.
144070func (c *RoutersListCall) PageToken(pageToken string) *RoutersListCall {
144071	c.urlParams_.Set("pageToken", pageToken)
144072	return c
144073}
144074
144075// Fields allows partial responses to be retrieved. See
144076// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
144077// for more information.
144078func (c *RoutersListCall) Fields(s ...googleapi.Field) *RoutersListCall {
144079	c.urlParams_.Set("fields", googleapi.CombineFields(s))
144080	return c
144081}
144082
144083// IfNoneMatch sets the optional parameter which makes the operation
144084// fail if the object's ETag matches the given value. This is useful for
144085// getting updates only after the object has changed since the last
144086// request. Use googleapi.IsNotModified to check whether the response
144087// error from Do is the result of In-None-Match.
144088func (c *RoutersListCall) IfNoneMatch(entityTag string) *RoutersListCall {
144089	c.ifNoneMatch_ = entityTag
144090	return c
144091}
144092
144093// Context sets the context to be used in this call's Do method. Any
144094// pending HTTP request will be aborted if the provided context is
144095// canceled.
144096func (c *RoutersListCall) Context(ctx context.Context) *RoutersListCall {
144097	c.ctx_ = ctx
144098	return c
144099}
144100
144101// Header returns an http.Header that can be modified by the caller to
144102// add HTTP headers to the request.
144103func (c *RoutersListCall) Header() http.Header {
144104	if c.header_ == nil {
144105		c.header_ = make(http.Header)
144106	}
144107	return c.header_
144108}
144109
144110func (c *RoutersListCall) doRequest(alt string) (*http.Response, error) {
144111	reqHeaders := make(http.Header)
144112	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
144113	for k, v := range c.header_ {
144114		reqHeaders[k] = v
144115	}
144116	reqHeaders.Set("User-Agent", c.s.userAgent())
144117	if c.ifNoneMatch_ != "" {
144118		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
144119	}
144120	var body io.Reader = nil
144121	c.urlParams_.Set("alt", alt)
144122	c.urlParams_.Set("prettyPrint", "false")
144123	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/routers")
144124	urls += "?" + c.urlParams_.Encode()
144125	req, err := http.NewRequest("GET", urls, body)
144126	if err != nil {
144127		return nil, err
144128	}
144129	req.Header = reqHeaders
144130	googleapi.Expand(req.URL, map[string]string{
144131		"project": c.project,
144132		"region":  c.region,
144133	})
144134	return gensupport.SendRequest(c.ctx_, c.s.client, req)
144135}
144136
144137// Do executes the "compute.routers.list" call.
144138// Exactly one of *RouterList or error will be non-nil. Any non-2xx
144139// status code is an error. Response headers are in either
144140// *RouterList.ServerResponse.Header or (if a response was returned at
144141// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
144142// to check whether the returned error was because
144143// http.StatusNotModified was returned.
144144func (c *RoutersListCall) Do(opts ...googleapi.CallOption) (*RouterList, error) {
144145	gensupport.SetOptions(c.urlParams_, opts...)
144146	res, err := c.doRequest("json")
144147	if res != nil && res.StatusCode == http.StatusNotModified {
144148		if res.Body != nil {
144149			res.Body.Close()
144150		}
144151		return nil, &googleapi.Error{
144152			Code:   res.StatusCode,
144153			Header: res.Header,
144154		}
144155	}
144156	if err != nil {
144157		return nil, err
144158	}
144159	defer googleapi.CloseBody(res)
144160	if err := googleapi.CheckResponse(res); err != nil {
144161		return nil, err
144162	}
144163	ret := &RouterList{
144164		ServerResponse: googleapi.ServerResponse{
144165			Header:         res.Header,
144166			HTTPStatusCode: res.StatusCode,
144167		},
144168	}
144169	target := &ret
144170	if err := gensupport.DecodeResponse(target, res); err != nil {
144171		return nil, err
144172	}
144173	return ret, nil
144174	// {
144175	//   "description": "Retrieves a list of Router resources available to the specified project. (== suppress_warning http-rest-shadowed ==)",
144176	//   "httpMethod": "GET",
144177	//   "id": "compute.routers.list",
144178	//   "parameterOrder": [
144179	//     "project",
144180	//     "region"
144181	//   ],
144182	//   "parameters": {
144183	//     "filter": {
144184	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
144185	//       "location": "query",
144186	//       "type": "string"
144187	//     },
144188	//     "maxResults": {
144189	//       "default": "500",
144190	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
144191	//       "format": "uint32",
144192	//       "location": "query",
144193	//       "minimum": "0",
144194	//       "type": "integer"
144195	//     },
144196	//     "orderBy": {
144197	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
144198	//       "location": "query",
144199	//       "type": "string"
144200	//     },
144201	//     "pageToken": {
144202	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
144203	//       "location": "query",
144204	//       "type": "string"
144205	//     },
144206	//     "project": {
144207	//       "description": "Project ID for this request.",
144208	//       "location": "path",
144209	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
144210	//       "required": true,
144211	//       "type": "string"
144212	//     },
144213	//     "region": {
144214	//       "description": "Name of the region for this request.",
144215	//       "location": "path",
144216	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
144217	//       "required": true,
144218	//       "type": "string"
144219	//     }
144220	//   },
144221	//   "path": "{project}/regions/{region}/routers",
144222	//   "response": {
144223	//     "$ref": "RouterList"
144224	//   },
144225	//   "scopes": [
144226	//     "https://www.googleapis.com/auth/cloud-platform",
144227	//     "https://www.googleapis.com/auth/compute",
144228	//     "https://www.googleapis.com/auth/compute.readonly"
144229	//   ]
144230	// }
144231
144232}
144233
144234// Pages invokes f for each page of results.
144235// A non-nil error returned from f will halt the iteration.
144236// The provided context supersedes any context provided to the Context method.
144237func (c *RoutersListCall) Pages(ctx context.Context, f func(*RouterList) error) error {
144238	c.ctx_ = ctx
144239	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
144240	for {
144241		x, err := c.Do()
144242		if err != nil {
144243			return err
144244		}
144245		if err := f(x); err != nil {
144246			return err
144247		}
144248		if x.NextPageToken == "" {
144249			return nil
144250		}
144251		c.PageToken(x.NextPageToken)
144252	}
144253}
144254
144255// method id "compute.routers.patch":
144256
144257type RoutersPatchCall struct {
144258	s          *Service
144259	project    string
144260	region     string
144261	router     string
144262	router2    *Router
144263	urlParams_ gensupport.URLParams
144264	ctx_       context.Context
144265	header_    http.Header
144266}
144267
144268// Patch: Patches the specified Router resource with the data included
144269// in the request. This method supports PATCH semantics and uses JSON
144270// merge patch format and processing rules. (== suppress_warning
144271// http-rest-shadowed ==)
144272func (r *RoutersService) Patch(project string, region string, router string, router2 *Router) *RoutersPatchCall {
144273	c := &RoutersPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
144274	c.project = project
144275	c.region = region
144276	c.router = router
144277	c.router2 = router2
144278	return c
144279}
144280
144281// RequestId sets the optional parameter "requestId": An optional
144282// request ID to identify requests. Specify a unique request ID so that
144283// if you must retry your request, the server will know to ignore the
144284// request if it has already been completed.
144285//
144286// For example, consider a situation where you make an initial request
144287// and the request times out. If you make the request again with the
144288// same request ID, the server can check if original operation with the
144289// same request ID was received, and if so, will ignore the second
144290// request. This prevents clients from accidentally creating duplicate
144291// commitments.
144292//
144293// The request ID must be a valid UUID with the exception that zero UUID
144294// is not supported (00000000-0000-0000-0000-000000000000).
144295func (c *RoutersPatchCall) RequestId(requestId string) *RoutersPatchCall {
144296	c.urlParams_.Set("requestId", requestId)
144297	return c
144298}
144299
144300// Fields allows partial responses to be retrieved. See
144301// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
144302// for more information.
144303func (c *RoutersPatchCall) Fields(s ...googleapi.Field) *RoutersPatchCall {
144304	c.urlParams_.Set("fields", googleapi.CombineFields(s))
144305	return c
144306}
144307
144308// Context sets the context to be used in this call's Do method. Any
144309// pending HTTP request will be aborted if the provided context is
144310// canceled.
144311func (c *RoutersPatchCall) Context(ctx context.Context) *RoutersPatchCall {
144312	c.ctx_ = ctx
144313	return c
144314}
144315
144316// Header returns an http.Header that can be modified by the caller to
144317// add HTTP headers to the request.
144318func (c *RoutersPatchCall) Header() http.Header {
144319	if c.header_ == nil {
144320		c.header_ = make(http.Header)
144321	}
144322	return c.header_
144323}
144324
144325func (c *RoutersPatchCall) doRequest(alt string) (*http.Response, error) {
144326	reqHeaders := make(http.Header)
144327	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
144328	for k, v := range c.header_ {
144329		reqHeaders[k] = v
144330	}
144331	reqHeaders.Set("User-Agent", c.s.userAgent())
144332	var body io.Reader = nil
144333	body, err := googleapi.WithoutDataWrapper.JSONReader(c.router2)
144334	if err != nil {
144335		return nil, err
144336	}
144337	reqHeaders.Set("Content-Type", "application/json")
144338	c.urlParams_.Set("alt", alt)
144339	c.urlParams_.Set("prettyPrint", "false")
144340	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/routers/{router}")
144341	urls += "?" + c.urlParams_.Encode()
144342	req, err := http.NewRequest("PATCH", urls, body)
144343	if err != nil {
144344		return nil, err
144345	}
144346	req.Header = reqHeaders
144347	googleapi.Expand(req.URL, map[string]string{
144348		"project": c.project,
144349		"region":  c.region,
144350		"router":  c.router,
144351	})
144352	return gensupport.SendRequest(c.ctx_, c.s.client, req)
144353}
144354
144355// Do executes the "compute.routers.patch" call.
144356// Exactly one of *Operation or error will be non-nil. Any non-2xx
144357// status code is an error. Response headers are in either
144358// *Operation.ServerResponse.Header or (if a response was returned at
144359// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
144360// to check whether the returned error was because
144361// http.StatusNotModified was returned.
144362func (c *RoutersPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
144363	gensupport.SetOptions(c.urlParams_, opts...)
144364	res, err := c.doRequest("json")
144365	if res != nil && res.StatusCode == http.StatusNotModified {
144366		if res.Body != nil {
144367			res.Body.Close()
144368		}
144369		return nil, &googleapi.Error{
144370			Code:   res.StatusCode,
144371			Header: res.Header,
144372		}
144373	}
144374	if err != nil {
144375		return nil, err
144376	}
144377	defer googleapi.CloseBody(res)
144378	if err := googleapi.CheckResponse(res); err != nil {
144379		return nil, err
144380	}
144381	ret := &Operation{
144382		ServerResponse: googleapi.ServerResponse{
144383			Header:         res.Header,
144384			HTTPStatusCode: res.StatusCode,
144385		},
144386	}
144387	target := &ret
144388	if err := gensupport.DecodeResponse(target, res); err != nil {
144389		return nil, err
144390	}
144391	return ret, nil
144392	// {
144393	//   "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. (== suppress_warning http-rest-shadowed ==)",
144394	//   "httpMethod": "PATCH",
144395	//   "id": "compute.routers.patch",
144396	//   "parameterOrder": [
144397	//     "project",
144398	//     "region",
144399	//     "router"
144400	//   ],
144401	//   "parameters": {
144402	//     "project": {
144403	//       "description": "Project ID for this request.",
144404	//       "location": "path",
144405	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
144406	//       "required": true,
144407	//       "type": "string"
144408	//     },
144409	//     "region": {
144410	//       "description": "Name of the region for this request.",
144411	//       "location": "path",
144412	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
144413	//       "required": true,
144414	//       "type": "string"
144415	//     },
144416	//     "requestId": {
144417	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
144418	//       "location": "query",
144419	//       "type": "string"
144420	//     },
144421	//     "router": {
144422	//       "description": "Name of the Router resource to patch.",
144423	//       "location": "path",
144424	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
144425	//       "required": true,
144426	//       "type": "string"
144427	//     }
144428	//   },
144429	//   "path": "{project}/regions/{region}/routers/{router}",
144430	//   "request": {
144431	//     "$ref": "Router"
144432	//   },
144433	//   "response": {
144434	//     "$ref": "Operation"
144435	//   },
144436	//   "scopes": [
144437	//     "https://www.googleapis.com/auth/cloud-platform",
144438	//     "https://www.googleapis.com/auth/compute"
144439	//   ]
144440	// }
144441
144442}
144443
144444// method id "compute.routers.preview":
144445
144446type RoutersPreviewCall struct {
144447	s          *Service
144448	project    string
144449	region     string
144450	router     string
144451	router2    *Router
144452	urlParams_ gensupport.URLParams
144453	ctx_       context.Context
144454	header_    http.Header
144455}
144456
144457// Preview: Preview fields auto-generated during router create and
144458// update operations. Calling this method does NOT create or update the
144459// router. (== suppress_warning http-rest-shadowed ==)
144460func (r *RoutersService) Preview(project string, region string, router string, router2 *Router) *RoutersPreviewCall {
144461	c := &RoutersPreviewCall{s: r.s, urlParams_: make(gensupport.URLParams)}
144462	c.project = project
144463	c.region = region
144464	c.router = router
144465	c.router2 = router2
144466	return c
144467}
144468
144469// Fields allows partial responses to be retrieved. See
144470// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
144471// for more information.
144472func (c *RoutersPreviewCall) Fields(s ...googleapi.Field) *RoutersPreviewCall {
144473	c.urlParams_.Set("fields", googleapi.CombineFields(s))
144474	return c
144475}
144476
144477// Context sets the context to be used in this call's Do method. Any
144478// pending HTTP request will be aborted if the provided context is
144479// canceled.
144480func (c *RoutersPreviewCall) Context(ctx context.Context) *RoutersPreviewCall {
144481	c.ctx_ = ctx
144482	return c
144483}
144484
144485// Header returns an http.Header that can be modified by the caller to
144486// add HTTP headers to the request.
144487func (c *RoutersPreviewCall) Header() http.Header {
144488	if c.header_ == nil {
144489		c.header_ = make(http.Header)
144490	}
144491	return c.header_
144492}
144493
144494func (c *RoutersPreviewCall) doRequest(alt string) (*http.Response, error) {
144495	reqHeaders := make(http.Header)
144496	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
144497	for k, v := range c.header_ {
144498		reqHeaders[k] = v
144499	}
144500	reqHeaders.Set("User-Agent", c.s.userAgent())
144501	var body io.Reader = nil
144502	body, err := googleapi.WithoutDataWrapper.JSONReader(c.router2)
144503	if err != nil {
144504		return nil, err
144505	}
144506	reqHeaders.Set("Content-Type", "application/json")
144507	c.urlParams_.Set("alt", alt)
144508	c.urlParams_.Set("prettyPrint", "false")
144509	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/routers/{router}/preview")
144510	urls += "?" + c.urlParams_.Encode()
144511	req, err := http.NewRequest("POST", urls, body)
144512	if err != nil {
144513		return nil, err
144514	}
144515	req.Header = reqHeaders
144516	googleapi.Expand(req.URL, map[string]string{
144517		"project": c.project,
144518		"region":  c.region,
144519		"router":  c.router,
144520	})
144521	return gensupport.SendRequest(c.ctx_, c.s.client, req)
144522}
144523
144524// Do executes the "compute.routers.preview" call.
144525// Exactly one of *RoutersPreviewResponse or error will be non-nil. Any
144526// non-2xx status code is an error. Response headers are in either
144527// *RoutersPreviewResponse.ServerResponse.Header or (if a response was
144528// returned at all) in error.(*googleapi.Error).Header. Use
144529// googleapi.IsNotModified to check whether the returned error was
144530// because http.StatusNotModified was returned.
144531func (c *RoutersPreviewCall) Do(opts ...googleapi.CallOption) (*RoutersPreviewResponse, error) {
144532	gensupport.SetOptions(c.urlParams_, opts...)
144533	res, err := c.doRequest("json")
144534	if res != nil && res.StatusCode == http.StatusNotModified {
144535		if res.Body != nil {
144536			res.Body.Close()
144537		}
144538		return nil, &googleapi.Error{
144539			Code:   res.StatusCode,
144540			Header: res.Header,
144541		}
144542	}
144543	if err != nil {
144544		return nil, err
144545	}
144546	defer googleapi.CloseBody(res)
144547	if err := googleapi.CheckResponse(res); err != nil {
144548		return nil, err
144549	}
144550	ret := &RoutersPreviewResponse{
144551		ServerResponse: googleapi.ServerResponse{
144552			Header:         res.Header,
144553			HTTPStatusCode: res.StatusCode,
144554		},
144555	}
144556	target := &ret
144557	if err := gensupport.DecodeResponse(target, res); err != nil {
144558		return nil, err
144559	}
144560	return ret, nil
144561	// {
144562	//   "description": "Preview fields auto-generated during router create and update operations. Calling this method does NOT create or update the router. (== suppress_warning http-rest-shadowed ==)",
144563	//   "httpMethod": "POST",
144564	//   "id": "compute.routers.preview",
144565	//   "parameterOrder": [
144566	//     "project",
144567	//     "region",
144568	//     "router"
144569	//   ],
144570	//   "parameters": {
144571	//     "project": {
144572	//       "description": "Project ID for this request.",
144573	//       "location": "path",
144574	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
144575	//       "required": true,
144576	//       "type": "string"
144577	//     },
144578	//     "region": {
144579	//       "description": "Name of the region for this request.",
144580	//       "location": "path",
144581	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
144582	//       "required": true,
144583	//       "type": "string"
144584	//     },
144585	//     "router": {
144586	//       "description": "Name of the Router resource to query.",
144587	//       "location": "path",
144588	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
144589	//       "required": true,
144590	//       "type": "string"
144591	//     }
144592	//   },
144593	//   "path": "{project}/regions/{region}/routers/{router}/preview",
144594	//   "request": {
144595	//     "$ref": "Router"
144596	//   },
144597	//   "response": {
144598	//     "$ref": "RoutersPreviewResponse"
144599	//   },
144600	//   "scopes": [
144601	//     "https://www.googleapis.com/auth/cloud-platform",
144602	//     "https://www.googleapis.com/auth/compute",
144603	//     "https://www.googleapis.com/auth/compute.readonly"
144604	//   ]
144605	// }
144606
144607}
144608
144609// method id "compute.routers.testIamPermissions":
144610
144611type RoutersTestIamPermissionsCall struct {
144612	s                      *Service
144613	project                string
144614	region                 string
144615	resource               string
144616	testpermissionsrequest *TestPermissionsRequest
144617	urlParams_             gensupport.URLParams
144618	ctx_                   context.Context
144619	header_                http.Header
144620}
144621
144622// TestIamPermissions: Returns permissions that a caller has on the
144623// specified resource. (== suppress_warning http-rest-shadowed ==)
144624func (r *RoutersService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *RoutersTestIamPermissionsCall {
144625	c := &RoutersTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
144626	c.project = project
144627	c.region = region
144628	c.resource = resource
144629	c.testpermissionsrequest = testpermissionsrequest
144630	return c
144631}
144632
144633// Fields allows partial responses to be retrieved. See
144634// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
144635// for more information.
144636func (c *RoutersTestIamPermissionsCall) Fields(s ...googleapi.Field) *RoutersTestIamPermissionsCall {
144637	c.urlParams_.Set("fields", googleapi.CombineFields(s))
144638	return c
144639}
144640
144641// Context sets the context to be used in this call's Do method. Any
144642// pending HTTP request will be aborted if the provided context is
144643// canceled.
144644func (c *RoutersTestIamPermissionsCall) Context(ctx context.Context) *RoutersTestIamPermissionsCall {
144645	c.ctx_ = ctx
144646	return c
144647}
144648
144649// Header returns an http.Header that can be modified by the caller to
144650// add HTTP headers to the request.
144651func (c *RoutersTestIamPermissionsCall) Header() http.Header {
144652	if c.header_ == nil {
144653		c.header_ = make(http.Header)
144654	}
144655	return c.header_
144656}
144657
144658func (c *RoutersTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
144659	reqHeaders := make(http.Header)
144660	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
144661	for k, v := range c.header_ {
144662		reqHeaders[k] = v
144663	}
144664	reqHeaders.Set("User-Agent", c.s.userAgent())
144665	var body io.Reader = nil
144666	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
144667	if err != nil {
144668		return nil, err
144669	}
144670	reqHeaders.Set("Content-Type", "application/json")
144671	c.urlParams_.Set("alt", alt)
144672	c.urlParams_.Set("prettyPrint", "false")
144673	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/routers/{resource}/testIamPermissions")
144674	urls += "?" + c.urlParams_.Encode()
144675	req, err := http.NewRequest("POST", urls, body)
144676	if err != nil {
144677		return nil, err
144678	}
144679	req.Header = reqHeaders
144680	googleapi.Expand(req.URL, map[string]string{
144681		"project":  c.project,
144682		"region":   c.region,
144683		"resource": c.resource,
144684	})
144685	return gensupport.SendRequest(c.ctx_, c.s.client, req)
144686}
144687
144688// Do executes the "compute.routers.testIamPermissions" call.
144689// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
144690// non-2xx status code is an error. Response headers are in either
144691// *TestPermissionsResponse.ServerResponse.Header or (if a response was
144692// returned at all) in error.(*googleapi.Error).Header. Use
144693// googleapi.IsNotModified to check whether the returned error was
144694// because http.StatusNotModified was returned.
144695func (c *RoutersTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
144696	gensupport.SetOptions(c.urlParams_, opts...)
144697	res, err := c.doRequest("json")
144698	if res != nil && res.StatusCode == http.StatusNotModified {
144699		if res.Body != nil {
144700			res.Body.Close()
144701		}
144702		return nil, &googleapi.Error{
144703			Code:   res.StatusCode,
144704			Header: res.Header,
144705		}
144706	}
144707	if err != nil {
144708		return nil, err
144709	}
144710	defer googleapi.CloseBody(res)
144711	if err := googleapi.CheckResponse(res); err != nil {
144712		return nil, err
144713	}
144714	ret := &TestPermissionsResponse{
144715		ServerResponse: googleapi.ServerResponse{
144716			Header:         res.Header,
144717			HTTPStatusCode: res.StatusCode,
144718		},
144719	}
144720	target := &ret
144721	if err := gensupport.DecodeResponse(target, res); err != nil {
144722		return nil, err
144723	}
144724	return ret, nil
144725	// {
144726	//   "description": "Returns permissions that a caller has on the specified resource. (== suppress_warning http-rest-shadowed ==)",
144727	//   "httpMethod": "POST",
144728	//   "id": "compute.routers.testIamPermissions",
144729	//   "parameterOrder": [
144730	//     "project",
144731	//     "region",
144732	//     "resource"
144733	//   ],
144734	//   "parameters": {
144735	//     "project": {
144736	//       "description": "Project ID for this request.",
144737	//       "location": "path",
144738	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
144739	//       "required": true,
144740	//       "type": "string"
144741	//     },
144742	//     "region": {
144743	//       "description": "The name of the region for this request.",
144744	//       "location": "path",
144745	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
144746	//       "required": true,
144747	//       "type": "string"
144748	//     },
144749	//     "resource": {
144750	//       "description": "Name or id of the resource for this request.",
144751	//       "location": "path",
144752	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
144753	//       "required": true,
144754	//       "type": "string"
144755	//     }
144756	//   },
144757	//   "path": "{project}/regions/{region}/routers/{resource}/testIamPermissions",
144758	//   "request": {
144759	//     "$ref": "TestPermissionsRequest"
144760	//   },
144761	//   "response": {
144762	//     "$ref": "TestPermissionsResponse"
144763	//   },
144764	//   "scopes": [
144765	//     "https://www.googleapis.com/auth/cloud-platform",
144766	//     "https://www.googleapis.com/auth/compute",
144767	//     "https://www.googleapis.com/auth/compute.readonly"
144768	//   ]
144769	// }
144770
144771}
144772
144773// method id "compute.routers.update":
144774
144775type RoutersUpdateCall struct {
144776	s          *Service
144777	project    string
144778	region     string
144779	router     string
144780	router2    *Router
144781	urlParams_ gensupport.URLParams
144782	ctx_       context.Context
144783	header_    http.Header
144784}
144785
144786// Update: Updates the specified Router resource with the data included
144787// in the request. This method conforms to PUT semantics, which requests
144788// that the state of the target resource be created or replaced with the
144789// state defined by the representation enclosed in the request message
144790// payload. (== suppress_warning http-rest-shadowed ==)
144791func (r *RoutersService) Update(project string, region string, router string, router2 *Router) *RoutersUpdateCall {
144792	c := &RoutersUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
144793	c.project = project
144794	c.region = region
144795	c.router = router
144796	c.router2 = router2
144797	return c
144798}
144799
144800// RequestId sets the optional parameter "requestId": An optional
144801// request ID to identify requests. Specify a unique request ID so that
144802// if you must retry your request, the server will know to ignore the
144803// request if it has already been completed.
144804//
144805// For example, consider a situation where you make an initial request
144806// and the request times out. If you make the request again with the
144807// same request ID, the server can check if original operation with the
144808// same request ID was received, and if so, will ignore the second
144809// request. This prevents clients from accidentally creating duplicate
144810// commitments.
144811//
144812// The request ID must be a valid UUID with the exception that zero UUID
144813// is not supported (00000000-0000-0000-0000-000000000000).
144814func (c *RoutersUpdateCall) RequestId(requestId string) *RoutersUpdateCall {
144815	c.urlParams_.Set("requestId", requestId)
144816	return c
144817}
144818
144819// Fields allows partial responses to be retrieved. See
144820// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
144821// for more information.
144822func (c *RoutersUpdateCall) Fields(s ...googleapi.Field) *RoutersUpdateCall {
144823	c.urlParams_.Set("fields", googleapi.CombineFields(s))
144824	return c
144825}
144826
144827// Context sets the context to be used in this call's Do method. Any
144828// pending HTTP request will be aborted if the provided context is
144829// canceled.
144830func (c *RoutersUpdateCall) Context(ctx context.Context) *RoutersUpdateCall {
144831	c.ctx_ = ctx
144832	return c
144833}
144834
144835// Header returns an http.Header that can be modified by the caller to
144836// add HTTP headers to the request.
144837func (c *RoutersUpdateCall) Header() http.Header {
144838	if c.header_ == nil {
144839		c.header_ = make(http.Header)
144840	}
144841	return c.header_
144842}
144843
144844func (c *RoutersUpdateCall) doRequest(alt string) (*http.Response, error) {
144845	reqHeaders := make(http.Header)
144846	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
144847	for k, v := range c.header_ {
144848		reqHeaders[k] = v
144849	}
144850	reqHeaders.Set("User-Agent", c.s.userAgent())
144851	var body io.Reader = nil
144852	body, err := googleapi.WithoutDataWrapper.JSONReader(c.router2)
144853	if err != nil {
144854		return nil, err
144855	}
144856	reqHeaders.Set("Content-Type", "application/json")
144857	c.urlParams_.Set("alt", alt)
144858	c.urlParams_.Set("prettyPrint", "false")
144859	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/routers/{router}")
144860	urls += "?" + c.urlParams_.Encode()
144861	req, err := http.NewRequest("PUT", urls, body)
144862	if err != nil {
144863		return nil, err
144864	}
144865	req.Header = reqHeaders
144866	googleapi.Expand(req.URL, map[string]string{
144867		"project": c.project,
144868		"region":  c.region,
144869		"router":  c.router,
144870	})
144871	return gensupport.SendRequest(c.ctx_, c.s.client, req)
144872}
144873
144874// Do executes the "compute.routers.update" call.
144875// Exactly one of *Operation or error will be non-nil. Any non-2xx
144876// status code is an error. Response headers are in either
144877// *Operation.ServerResponse.Header or (if a response was returned at
144878// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
144879// to check whether the returned error was because
144880// http.StatusNotModified was returned.
144881func (c *RoutersUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
144882	gensupport.SetOptions(c.urlParams_, opts...)
144883	res, err := c.doRequest("json")
144884	if res != nil && res.StatusCode == http.StatusNotModified {
144885		if res.Body != nil {
144886			res.Body.Close()
144887		}
144888		return nil, &googleapi.Error{
144889			Code:   res.StatusCode,
144890			Header: res.Header,
144891		}
144892	}
144893	if err != nil {
144894		return nil, err
144895	}
144896	defer googleapi.CloseBody(res)
144897	if err := googleapi.CheckResponse(res); err != nil {
144898		return nil, err
144899	}
144900	ret := &Operation{
144901		ServerResponse: googleapi.ServerResponse{
144902			Header:         res.Header,
144903			HTTPStatusCode: res.StatusCode,
144904		},
144905	}
144906	target := &ret
144907	if err := gensupport.DecodeResponse(target, res); err != nil {
144908		return nil, err
144909	}
144910	return ret, nil
144911	// {
144912	//   "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. (== suppress_warning http-rest-shadowed ==)",
144913	//   "httpMethod": "PUT",
144914	//   "id": "compute.routers.update",
144915	//   "parameterOrder": [
144916	//     "project",
144917	//     "region",
144918	//     "router"
144919	//   ],
144920	//   "parameters": {
144921	//     "project": {
144922	//       "description": "Project ID for this request.",
144923	//       "location": "path",
144924	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
144925	//       "required": true,
144926	//       "type": "string"
144927	//     },
144928	//     "region": {
144929	//       "description": "Name of the region for this request.",
144930	//       "location": "path",
144931	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
144932	//       "required": true,
144933	//       "type": "string"
144934	//     },
144935	//     "requestId": {
144936	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
144937	//       "location": "query",
144938	//       "type": "string"
144939	//     },
144940	//     "router": {
144941	//       "description": "Name of the Router resource to update.",
144942	//       "location": "path",
144943	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
144944	//       "required": true,
144945	//       "type": "string"
144946	//     }
144947	//   },
144948	//   "path": "{project}/regions/{region}/routers/{router}",
144949	//   "request": {
144950	//     "$ref": "Router"
144951	//   },
144952	//   "response": {
144953	//     "$ref": "Operation"
144954	//   },
144955	//   "scopes": [
144956	//     "https://www.googleapis.com/auth/cloud-platform",
144957	//     "https://www.googleapis.com/auth/compute"
144958	//   ]
144959	// }
144960
144961}
144962
144963// method id "compute.routes.delete":
144964
144965type RoutesDeleteCall struct {
144966	s          *Service
144967	project    string
144968	route      string
144969	urlParams_ gensupport.URLParams
144970	ctx_       context.Context
144971	header_    http.Header
144972}
144973
144974// Delete: Deletes the specified Route resource. (== suppress_warning
144975// http-rest-shadowed ==)
144976// For details, see https://cloud.google.com/compute/docs/reference/latest/routes/delete
144977func (r *RoutesService) Delete(project string, route string) *RoutesDeleteCall {
144978	c := &RoutesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
144979	c.project = project
144980	c.route = route
144981	return c
144982}
144983
144984// RequestId sets the optional parameter "requestId": An optional
144985// request ID to identify requests. Specify a unique request ID so that
144986// if you must retry your request, the server will know to ignore the
144987// request if it has already been completed.
144988//
144989// For example, consider a situation where you make an initial request
144990// and the request times out. If you make the request again with the
144991// same request ID, the server can check if original operation with the
144992// same request ID was received, and if so, will ignore the second
144993// request. This prevents clients from accidentally creating duplicate
144994// commitments.
144995//
144996// The request ID must be a valid UUID with the exception that zero UUID
144997// is not supported (00000000-0000-0000-0000-000000000000).
144998func (c *RoutesDeleteCall) RequestId(requestId string) *RoutesDeleteCall {
144999	c.urlParams_.Set("requestId", requestId)
145000	return c
145001}
145002
145003// Fields allows partial responses to be retrieved. See
145004// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
145005// for more information.
145006func (c *RoutesDeleteCall) Fields(s ...googleapi.Field) *RoutesDeleteCall {
145007	c.urlParams_.Set("fields", googleapi.CombineFields(s))
145008	return c
145009}
145010
145011// Context sets the context to be used in this call's Do method. Any
145012// pending HTTP request will be aborted if the provided context is
145013// canceled.
145014func (c *RoutesDeleteCall) Context(ctx context.Context) *RoutesDeleteCall {
145015	c.ctx_ = ctx
145016	return c
145017}
145018
145019// Header returns an http.Header that can be modified by the caller to
145020// add HTTP headers to the request.
145021func (c *RoutesDeleteCall) Header() http.Header {
145022	if c.header_ == nil {
145023		c.header_ = make(http.Header)
145024	}
145025	return c.header_
145026}
145027
145028func (c *RoutesDeleteCall) doRequest(alt string) (*http.Response, error) {
145029	reqHeaders := make(http.Header)
145030	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
145031	for k, v := range c.header_ {
145032		reqHeaders[k] = v
145033	}
145034	reqHeaders.Set("User-Agent", c.s.userAgent())
145035	var body io.Reader = nil
145036	c.urlParams_.Set("alt", alt)
145037	c.urlParams_.Set("prettyPrint", "false")
145038	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/routes/{route}")
145039	urls += "?" + c.urlParams_.Encode()
145040	req, err := http.NewRequest("DELETE", urls, body)
145041	if err != nil {
145042		return nil, err
145043	}
145044	req.Header = reqHeaders
145045	googleapi.Expand(req.URL, map[string]string{
145046		"project": c.project,
145047		"route":   c.route,
145048	})
145049	return gensupport.SendRequest(c.ctx_, c.s.client, req)
145050}
145051
145052// Do executes the "compute.routes.delete" call.
145053// Exactly one of *Operation or error will be non-nil. Any non-2xx
145054// status code is an error. Response headers are in either
145055// *Operation.ServerResponse.Header or (if a response was returned at
145056// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
145057// to check whether the returned error was because
145058// http.StatusNotModified was returned.
145059func (c *RoutesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
145060	gensupport.SetOptions(c.urlParams_, opts...)
145061	res, err := c.doRequest("json")
145062	if res != nil && res.StatusCode == http.StatusNotModified {
145063		if res.Body != nil {
145064			res.Body.Close()
145065		}
145066		return nil, &googleapi.Error{
145067			Code:   res.StatusCode,
145068			Header: res.Header,
145069		}
145070	}
145071	if err != nil {
145072		return nil, err
145073	}
145074	defer googleapi.CloseBody(res)
145075	if err := googleapi.CheckResponse(res); err != nil {
145076		return nil, err
145077	}
145078	ret := &Operation{
145079		ServerResponse: googleapi.ServerResponse{
145080			Header:         res.Header,
145081			HTTPStatusCode: res.StatusCode,
145082		},
145083	}
145084	target := &ret
145085	if err := gensupport.DecodeResponse(target, res); err != nil {
145086		return nil, err
145087	}
145088	return ret, nil
145089	// {
145090	//   "description": "Deletes the specified Route resource. (== suppress_warning http-rest-shadowed ==)",
145091	//   "httpMethod": "DELETE",
145092	//   "id": "compute.routes.delete",
145093	//   "parameterOrder": [
145094	//     "project",
145095	//     "route"
145096	//   ],
145097	//   "parameters": {
145098	//     "project": {
145099	//       "description": "Project ID for this request.",
145100	//       "location": "path",
145101	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
145102	//       "required": true,
145103	//       "type": "string"
145104	//     },
145105	//     "requestId": {
145106	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
145107	//       "location": "query",
145108	//       "type": "string"
145109	//     },
145110	//     "route": {
145111	//       "description": "Name of the Route resource to delete.",
145112	//       "location": "path",
145113	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
145114	//       "required": true,
145115	//       "type": "string"
145116	//     }
145117	//   },
145118	//   "path": "{project}/global/routes/{route}",
145119	//   "response": {
145120	//     "$ref": "Operation"
145121	//   },
145122	//   "scopes": [
145123	//     "https://www.googleapis.com/auth/cloud-platform",
145124	//     "https://www.googleapis.com/auth/compute"
145125	//   ]
145126	// }
145127
145128}
145129
145130// method id "compute.routes.get":
145131
145132type RoutesGetCall struct {
145133	s            *Service
145134	project      string
145135	route        string
145136	urlParams_   gensupport.URLParams
145137	ifNoneMatch_ string
145138	ctx_         context.Context
145139	header_      http.Header
145140}
145141
145142// Get: Returns the specified Route resource. Gets a list of available
145143// routes by making a list() request. (== suppress_warning
145144// http-rest-shadowed ==)
145145// For details, see https://cloud.google.com/compute/docs/reference/latest/routes/get
145146func (r *RoutesService) Get(project string, route string) *RoutesGetCall {
145147	c := &RoutesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
145148	c.project = project
145149	c.route = route
145150	return c
145151}
145152
145153// Fields allows partial responses to be retrieved. See
145154// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
145155// for more information.
145156func (c *RoutesGetCall) Fields(s ...googleapi.Field) *RoutesGetCall {
145157	c.urlParams_.Set("fields", googleapi.CombineFields(s))
145158	return c
145159}
145160
145161// IfNoneMatch sets the optional parameter which makes the operation
145162// fail if the object's ETag matches the given value. This is useful for
145163// getting updates only after the object has changed since the last
145164// request. Use googleapi.IsNotModified to check whether the response
145165// error from Do is the result of In-None-Match.
145166func (c *RoutesGetCall) IfNoneMatch(entityTag string) *RoutesGetCall {
145167	c.ifNoneMatch_ = entityTag
145168	return c
145169}
145170
145171// Context sets the context to be used in this call's Do method. Any
145172// pending HTTP request will be aborted if the provided context is
145173// canceled.
145174func (c *RoutesGetCall) Context(ctx context.Context) *RoutesGetCall {
145175	c.ctx_ = ctx
145176	return c
145177}
145178
145179// Header returns an http.Header that can be modified by the caller to
145180// add HTTP headers to the request.
145181func (c *RoutesGetCall) Header() http.Header {
145182	if c.header_ == nil {
145183		c.header_ = make(http.Header)
145184	}
145185	return c.header_
145186}
145187
145188func (c *RoutesGetCall) doRequest(alt string) (*http.Response, error) {
145189	reqHeaders := make(http.Header)
145190	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
145191	for k, v := range c.header_ {
145192		reqHeaders[k] = v
145193	}
145194	reqHeaders.Set("User-Agent", c.s.userAgent())
145195	if c.ifNoneMatch_ != "" {
145196		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
145197	}
145198	var body io.Reader = nil
145199	c.urlParams_.Set("alt", alt)
145200	c.urlParams_.Set("prettyPrint", "false")
145201	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/routes/{route}")
145202	urls += "?" + c.urlParams_.Encode()
145203	req, err := http.NewRequest("GET", urls, body)
145204	if err != nil {
145205		return nil, err
145206	}
145207	req.Header = reqHeaders
145208	googleapi.Expand(req.URL, map[string]string{
145209		"project": c.project,
145210		"route":   c.route,
145211	})
145212	return gensupport.SendRequest(c.ctx_, c.s.client, req)
145213}
145214
145215// Do executes the "compute.routes.get" call.
145216// Exactly one of *Route or error will be non-nil. Any non-2xx status
145217// code is an error. Response headers are in either
145218// *Route.ServerResponse.Header or (if a response was returned at all)
145219// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
145220// check whether the returned error was because http.StatusNotModified
145221// was returned.
145222func (c *RoutesGetCall) Do(opts ...googleapi.CallOption) (*Route, error) {
145223	gensupport.SetOptions(c.urlParams_, opts...)
145224	res, err := c.doRequest("json")
145225	if res != nil && res.StatusCode == http.StatusNotModified {
145226		if res.Body != nil {
145227			res.Body.Close()
145228		}
145229		return nil, &googleapi.Error{
145230			Code:   res.StatusCode,
145231			Header: res.Header,
145232		}
145233	}
145234	if err != nil {
145235		return nil, err
145236	}
145237	defer googleapi.CloseBody(res)
145238	if err := googleapi.CheckResponse(res); err != nil {
145239		return nil, err
145240	}
145241	ret := &Route{
145242		ServerResponse: googleapi.ServerResponse{
145243			Header:         res.Header,
145244			HTTPStatusCode: res.StatusCode,
145245		},
145246	}
145247	target := &ret
145248	if err := gensupport.DecodeResponse(target, res); err != nil {
145249		return nil, err
145250	}
145251	return ret, nil
145252	// {
145253	//   "description": "Returns the specified Route resource. Gets a list of available routes by making a list() request. (== suppress_warning http-rest-shadowed ==)",
145254	//   "httpMethod": "GET",
145255	//   "id": "compute.routes.get",
145256	//   "parameterOrder": [
145257	//     "project",
145258	//     "route"
145259	//   ],
145260	//   "parameters": {
145261	//     "project": {
145262	//       "description": "Project ID for this request.",
145263	//       "location": "path",
145264	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
145265	//       "required": true,
145266	//       "type": "string"
145267	//     },
145268	//     "route": {
145269	//       "description": "Name of the Route resource to return.",
145270	//       "location": "path",
145271	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
145272	//       "required": true,
145273	//       "type": "string"
145274	//     }
145275	//   },
145276	//   "path": "{project}/global/routes/{route}",
145277	//   "response": {
145278	//     "$ref": "Route"
145279	//   },
145280	//   "scopes": [
145281	//     "https://www.googleapis.com/auth/cloud-platform",
145282	//     "https://www.googleapis.com/auth/compute",
145283	//     "https://www.googleapis.com/auth/compute.readonly"
145284	//   ]
145285	// }
145286
145287}
145288
145289// method id "compute.routes.insert":
145290
145291type RoutesInsertCall struct {
145292	s          *Service
145293	project    string
145294	route      *Route
145295	urlParams_ gensupport.URLParams
145296	ctx_       context.Context
145297	header_    http.Header
145298}
145299
145300// Insert: Creates a Route resource in the specified project using the
145301// data included in the request. (== suppress_warning http-rest-shadowed
145302// ==)
145303// For details, see https://cloud.google.com/compute/docs/reference/latest/routes/insert
145304func (r *RoutesService) Insert(project string, route *Route) *RoutesInsertCall {
145305	c := &RoutesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
145306	c.project = project
145307	c.route = route
145308	return c
145309}
145310
145311// RequestId sets the optional parameter "requestId": An optional
145312// request ID to identify requests. Specify a unique request ID so that
145313// if you must retry your request, the server will know to ignore the
145314// request if it has already been completed.
145315//
145316// For example, consider a situation where you make an initial request
145317// and the request times out. If you make the request again with the
145318// same request ID, the server can check if original operation with the
145319// same request ID was received, and if so, will ignore the second
145320// request. This prevents clients from accidentally creating duplicate
145321// commitments.
145322//
145323// The request ID must be a valid UUID with the exception that zero UUID
145324// is not supported (00000000-0000-0000-0000-000000000000).
145325func (c *RoutesInsertCall) RequestId(requestId string) *RoutesInsertCall {
145326	c.urlParams_.Set("requestId", requestId)
145327	return c
145328}
145329
145330// Fields allows partial responses to be retrieved. See
145331// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
145332// for more information.
145333func (c *RoutesInsertCall) Fields(s ...googleapi.Field) *RoutesInsertCall {
145334	c.urlParams_.Set("fields", googleapi.CombineFields(s))
145335	return c
145336}
145337
145338// Context sets the context to be used in this call's Do method. Any
145339// pending HTTP request will be aborted if the provided context is
145340// canceled.
145341func (c *RoutesInsertCall) Context(ctx context.Context) *RoutesInsertCall {
145342	c.ctx_ = ctx
145343	return c
145344}
145345
145346// Header returns an http.Header that can be modified by the caller to
145347// add HTTP headers to the request.
145348func (c *RoutesInsertCall) Header() http.Header {
145349	if c.header_ == nil {
145350		c.header_ = make(http.Header)
145351	}
145352	return c.header_
145353}
145354
145355func (c *RoutesInsertCall) doRequest(alt string) (*http.Response, error) {
145356	reqHeaders := make(http.Header)
145357	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
145358	for k, v := range c.header_ {
145359		reqHeaders[k] = v
145360	}
145361	reqHeaders.Set("User-Agent", c.s.userAgent())
145362	var body io.Reader = nil
145363	body, err := googleapi.WithoutDataWrapper.JSONReader(c.route)
145364	if err != nil {
145365		return nil, err
145366	}
145367	reqHeaders.Set("Content-Type", "application/json")
145368	c.urlParams_.Set("alt", alt)
145369	c.urlParams_.Set("prettyPrint", "false")
145370	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/routes")
145371	urls += "?" + c.urlParams_.Encode()
145372	req, err := http.NewRequest("POST", urls, body)
145373	if err != nil {
145374		return nil, err
145375	}
145376	req.Header = reqHeaders
145377	googleapi.Expand(req.URL, map[string]string{
145378		"project": c.project,
145379	})
145380	return gensupport.SendRequest(c.ctx_, c.s.client, req)
145381}
145382
145383// Do executes the "compute.routes.insert" call.
145384// Exactly one of *Operation or error will be non-nil. Any non-2xx
145385// status code is an error. Response headers are in either
145386// *Operation.ServerResponse.Header or (if a response was returned at
145387// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
145388// to check whether the returned error was because
145389// http.StatusNotModified was returned.
145390func (c *RoutesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
145391	gensupport.SetOptions(c.urlParams_, opts...)
145392	res, err := c.doRequest("json")
145393	if res != nil && res.StatusCode == http.StatusNotModified {
145394		if res.Body != nil {
145395			res.Body.Close()
145396		}
145397		return nil, &googleapi.Error{
145398			Code:   res.StatusCode,
145399			Header: res.Header,
145400		}
145401	}
145402	if err != nil {
145403		return nil, err
145404	}
145405	defer googleapi.CloseBody(res)
145406	if err := googleapi.CheckResponse(res); err != nil {
145407		return nil, err
145408	}
145409	ret := &Operation{
145410		ServerResponse: googleapi.ServerResponse{
145411			Header:         res.Header,
145412			HTTPStatusCode: res.StatusCode,
145413		},
145414	}
145415	target := &ret
145416	if err := gensupport.DecodeResponse(target, res); err != nil {
145417		return nil, err
145418	}
145419	return ret, nil
145420	// {
145421	//   "description": "Creates a Route resource in the specified project using the data included in the request. (== suppress_warning http-rest-shadowed ==)",
145422	//   "httpMethod": "POST",
145423	//   "id": "compute.routes.insert",
145424	//   "parameterOrder": [
145425	//     "project"
145426	//   ],
145427	//   "parameters": {
145428	//     "project": {
145429	//       "description": "Project ID for this request.",
145430	//       "location": "path",
145431	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
145432	//       "required": true,
145433	//       "type": "string"
145434	//     },
145435	//     "requestId": {
145436	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
145437	//       "location": "query",
145438	//       "type": "string"
145439	//     }
145440	//   },
145441	//   "path": "{project}/global/routes",
145442	//   "request": {
145443	//     "$ref": "Route"
145444	//   },
145445	//   "response": {
145446	//     "$ref": "Operation"
145447	//   },
145448	//   "scopes": [
145449	//     "https://www.googleapis.com/auth/cloud-platform",
145450	//     "https://www.googleapis.com/auth/compute"
145451	//   ]
145452	// }
145453
145454}
145455
145456// method id "compute.routes.list":
145457
145458type RoutesListCall struct {
145459	s            *Service
145460	project      string
145461	urlParams_   gensupport.URLParams
145462	ifNoneMatch_ string
145463	ctx_         context.Context
145464	header_      http.Header
145465}
145466
145467// List: Retrieves the list of Route resources available to the
145468// specified project. (== suppress_warning http-rest-shadowed ==)
145469// For details, see https://cloud.google.com/compute/docs/reference/latest/routes/list
145470func (r *RoutesService) List(project string) *RoutesListCall {
145471	c := &RoutesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
145472	c.project = project
145473	return c
145474}
145475
145476// Filter sets the optional parameter "filter": A filter expression that
145477// filters resources listed in the response. The expression must specify
145478// the field name, a comparison operator, and the value that you want to
145479// use for filtering. The value must be a string, a number, or a
145480// boolean. The comparison operator must be either =, !=, >, or <.
145481//
145482// For example, if you are filtering Compute Engine instances, you can
145483// exclude instances named example-instance by specifying name !=
145484// example-instance.
145485//
145486// You can also filter nested fields. For example, you could specify
145487// scheduling.automaticRestart = false to include instances only if they
145488// are not scheduled for automatic restarts. You can use filtering on
145489// nested fields to filter based on resource labels.
145490//
145491// To filter on multiple expressions, provide each separate expression
145492// within parentheses. For example, (scheduling.automaticRestart = true)
145493// (cpuPlatform = "Intel Skylake"). By default, each expression is an
145494// AND expression. However, you can include AND and OR expressions
145495// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
145496// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
145497// true).
145498func (c *RoutesListCall) Filter(filter string) *RoutesListCall {
145499	c.urlParams_.Set("filter", filter)
145500	return c
145501}
145502
145503// MaxResults sets the optional parameter "maxResults": The maximum
145504// number of results per page that should be returned. If the number of
145505// available results is larger than maxResults, Compute Engine returns a
145506// nextPageToken that can be used to get the next page of results in
145507// subsequent list requests. Acceptable values are 0 to 500, inclusive.
145508// (Default: 500)
145509func (c *RoutesListCall) MaxResults(maxResults int64) *RoutesListCall {
145510	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
145511	return c
145512}
145513
145514// OrderBy sets the optional parameter "orderBy": Sorts list results by
145515// a certain order. By default, results are returned in alphanumerical
145516// order based on the resource name.
145517//
145518// You can also sort results in descending order based on the creation
145519// timestamp using orderBy="creationTimestamp desc". This sorts results
145520// based on the creationTimestamp field in reverse chronological order
145521// (newest result first). Use this to sort resources like operations so
145522// that the newest operation is returned first.
145523//
145524// Currently, only sorting by name or creationTimestamp desc is
145525// supported.
145526func (c *RoutesListCall) OrderBy(orderBy string) *RoutesListCall {
145527	c.urlParams_.Set("orderBy", orderBy)
145528	return c
145529}
145530
145531// PageToken sets the optional parameter "pageToken": Specifies a page
145532// token to use. Set pageToken to the nextPageToken returned by a
145533// previous list request to get the next page of results.
145534func (c *RoutesListCall) PageToken(pageToken string) *RoutesListCall {
145535	c.urlParams_.Set("pageToken", pageToken)
145536	return c
145537}
145538
145539// Fields allows partial responses to be retrieved. See
145540// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
145541// for more information.
145542func (c *RoutesListCall) Fields(s ...googleapi.Field) *RoutesListCall {
145543	c.urlParams_.Set("fields", googleapi.CombineFields(s))
145544	return c
145545}
145546
145547// IfNoneMatch sets the optional parameter which makes the operation
145548// fail if the object's ETag matches the given value. This is useful for
145549// getting updates only after the object has changed since the last
145550// request. Use googleapi.IsNotModified to check whether the response
145551// error from Do is the result of In-None-Match.
145552func (c *RoutesListCall) IfNoneMatch(entityTag string) *RoutesListCall {
145553	c.ifNoneMatch_ = entityTag
145554	return c
145555}
145556
145557// Context sets the context to be used in this call's Do method. Any
145558// pending HTTP request will be aborted if the provided context is
145559// canceled.
145560func (c *RoutesListCall) Context(ctx context.Context) *RoutesListCall {
145561	c.ctx_ = ctx
145562	return c
145563}
145564
145565// Header returns an http.Header that can be modified by the caller to
145566// add HTTP headers to the request.
145567func (c *RoutesListCall) Header() http.Header {
145568	if c.header_ == nil {
145569		c.header_ = make(http.Header)
145570	}
145571	return c.header_
145572}
145573
145574func (c *RoutesListCall) doRequest(alt string) (*http.Response, error) {
145575	reqHeaders := make(http.Header)
145576	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
145577	for k, v := range c.header_ {
145578		reqHeaders[k] = v
145579	}
145580	reqHeaders.Set("User-Agent", c.s.userAgent())
145581	if c.ifNoneMatch_ != "" {
145582		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
145583	}
145584	var body io.Reader = nil
145585	c.urlParams_.Set("alt", alt)
145586	c.urlParams_.Set("prettyPrint", "false")
145587	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/routes")
145588	urls += "?" + c.urlParams_.Encode()
145589	req, err := http.NewRequest("GET", urls, body)
145590	if err != nil {
145591		return nil, err
145592	}
145593	req.Header = reqHeaders
145594	googleapi.Expand(req.URL, map[string]string{
145595		"project": c.project,
145596	})
145597	return gensupport.SendRequest(c.ctx_, c.s.client, req)
145598}
145599
145600// Do executes the "compute.routes.list" call.
145601// Exactly one of *RouteList or error will be non-nil. Any non-2xx
145602// status code is an error. Response headers are in either
145603// *RouteList.ServerResponse.Header or (if a response was returned at
145604// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
145605// to check whether the returned error was because
145606// http.StatusNotModified was returned.
145607func (c *RoutesListCall) Do(opts ...googleapi.CallOption) (*RouteList, error) {
145608	gensupport.SetOptions(c.urlParams_, opts...)
145609	res, err := c.doRequest("json")
145610	if res != nil && res.StatusCode == http.StatusNotModified {
145611		if res.Body != nil {
145612			res.Body.Close()
145613		}
145614		return nil, &googleapi.Error{
145615			Code:   res.StatusCode,
145616			Header: res.Header,
145617		}
145618	}
145619	if err != nil {
145620		return nil, err
145621	}
145622	defer googleapi.CloseBody(res)
145623	if err := googleapi.CheckResponse(res); err != nil {
145624		return nil, err
145625	}
145626	ret := &RouteList{
145627		ServerResponse: googleapi.ServerResponse{
145628			Header:         res.Header,
145629			HTTPStatusCode: res.StatusCode,
145630		},
145631	}
145632	target := &ret
145633	if err := gensupport.DecodeResponse(target, res); err != nil {
145634		return nil, err
145635	}
145636	return ret, nil
145637	// {
145638	//   "description": "Retrieves the list of Route resources available to the specified project. (== suppress_warning http-rest-shadowed ==)",
145639	//   "httpMethod": "GET",
145640	//   "id": "compute.routes.list",
145641	//   "parameterOrder": [
145642	//     "project"
145643	//   ],
145644	//   "parameters": {
145645	//     "filter": {
145646	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
145647	//       "location": "query",
145648	//       "type": "string"
145649	//     },
145650	//     "maxResults": {
145651	//       "default": "500",
145652	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
145653	//       "format": "uint32",
145654	//       "location": "query",
145655	//       "minimum": "0",
145656	//       "type": "integer"
145657	//     },
145658	//     "orderBy": {
145659	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
145660	//       "location": "query",
145661	//       "type": "string"
145662	//     },
145663	//     "pageToken": {
145664	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
145665	//       "location": "query",
145666	//       "type": "string"
145667	//     },
145668	//     "project": {
145669	//       "description": "Project ID for this request.",
145670	//       "location": "path",
145671	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
145672	//       "required": true,
145673	//       "type": "string"
145674	//     }
145675	//   },
145676	//   "path": "{project}/global/routes",
145677	//   "response": {
145678	//     "$ref": "RouteList"
145679	//   },
145680	//   "scopes": [
145681	//     "https://www.googleapis.com/auth/cloud-platform",
145682	//     "https://www.googleapis.com/auth/compute",
145683	//     "https://www.googleapis.com/auth/compute.readonly"
145684	//   ]
145685	// }
145686
145687}
145688
145689// Pages invokes f for each page of results.
145690// A non-nil error returned from f will halt the iteration.
145691// The provided context supersedes any context provided to the Context method.
145692func (c *RoutesListCall) Pages(ctx context.Context, f func(*RouteList) error) error {
145693	c.ctx_ = ctx
145694	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
145695	for {
145696		x, err := c.Do()
145697		if err != nil {
145698			return err
145699		}
145700		if err := f(x); err != nil {
145701			return err
145702		}
145703		if x.NextPageToken == "" {
145704			return nil
145705		}
145706		c.PageToken(x.NextPageToken)
145707	}
145708}
145709
145710// method id "compute.routes.testIamPermissions":
145711
145712type RoutesTestIamPermissionsCall struct {
145713	s                      *Service
145714	project                string
145715	resource               string
145716	testpermissionsrequest *TestPermissionsRequest
145717	urlParams_             gensupport.URLParams
145718	ctx_                   context.Context
145719	header_                http.Header
145720}
145721
145722// TestIamPermissions: Returns permissions that a caller has on the
145723// specified resource. (== suppress_warning http-rest-shadowed ==)
145724func (r *RoutesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *RoutesTestIamPermissionsCall {
145725	c := &RoutesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
145726	c.project = project
145727	c.resource = resource
145728	c.testpermissionsrequest = testpermissionsrequest
145729	return c
145730}
145731
145732// Fields allows partial responses to be retrieved. See
145733// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
145734// for more information.
145735func (c *RoutesTestIamPermissionsCall) Fields(s ...googleapi.Field) *RoutesTestIamPermissionsCall {
145736	c.urlParams_.Set("fields", googleapi.CombineFields(s))
145737	return c
145738}
145739
145740// Context sets the context to be used in this call's Do method. Any
145741// pending HTTP request will be aborted if the provided context is
145742// canceled.
145743func (c *RoutesTestIamPermissionsCall) Context(ctx context.Context) *RoutesTestIamPermissionsCall {
145744	c.ctx_ = ctx
145745	return c
145746}
145747
145748// Header returns an http.Header that can be modified by the caller to
145749// add HTTP headers to the request.
145750func (c *RoutesTestIamPermissionsCall) Header() http.Header {
145751	if c.header_ == nil {
145752		c.header_ = make(http.Header)
145753	}
145754	return c.header_
145755}
145756
145757func (c *RoutesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
145758	reqHeaders := make(http.Header)
145759	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
145760	for k, v := range c.header_ {
145761		reqHeaders[k] = v
145762	}
145763	reqHeaders.Set("User-Agent", c.s.userAgent())
145764	var body io.Reader = nil
145765	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
145766	if err != nil {
145767		return nil, err
145768	}
145769	reqHeaders.Set("Content-Type", "application/json")
145770	c.urlParams_.Set("alt", alt)
145771	c.urlParams_.Set("prettyPrint", "false")
145772	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/routes/{resource}/testIamPermissions")
145773	urls += "?" + c.urlParams_.Encode()
145774	req, err := http.NewRequest("POST", urls, body)
145775	if err != nil {
145776		return nil, err
145777	}
145778	req.Header = reqHeaders
145779	googleapi.Expand(req.URL, map[string]string{
145780		"project":  c.project,
145781		"resource": c.resource,
145782	})
145783	return gensupport.SendRequest(c.ctx_, c.s.client, req)
145784}
145785
145786// Do executes the "compute.routes.testIamPermissions" call.
145787// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
145788// non-2xx status code is an error. Response headers are in either
145789// *TestPermissionsResponse.ServerResponse.Header or (if a response was
145790// returned at all) in error.(*googleapi.Error).Header. Use
145791// googleapi.IsNotModified to check whether the returned error was
145792// because http.StatusNotModified was returned.
145793func (c *RoutesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
145794	gensupport.SetOptions(c.urlParams_, opts...)
145795	res, err := c.doRequest("json")
145796	if res != nil && res.StatusCode == http.StatusNotModified {
145797		if res.Body != nil {
145798			res.Body.Close()
145799		}
145800		return nil, &googleapi.Error{
145801			Code:   res.StatusCode,
145802			Header: res.Header,
145803		}
145804	}
145805	if err != nil {
145806		return nil, err
145807	}
145808	defer googleapi.CloseBody(res)
145809	if err := googleapi.CheckResponse(res); err != nil {
145810		return nil, err
145811	}
145812	ret := &TestPermissionsResponse{
145813		ServerResponse: googleapi.ServerResponse{
145814			Header:         res.Header,
145815			HTTPStatusCode: res.StatusCode,
145816		},
145817	}
145818	target := &ret
145819	if err := gensupport.DecodeResponse(target, res); err != nil {
145820		return nil, err
145821	}
145822	return ret, nil
145823	// {
145824	//   "description": "Returns permissions that a caller has on the specified resource. (== suppress_warning http-rest-shadowed ==)",
145825	//   "httpMethod": "POST",
145826	//   "id": "compute.routes.testIamPermissions",
145827	//   "parameterOrder": [
145828	//     "project",
145829	//     "resource"
145830	//   ],
145831	//   "parameters": {
145832	//     "project": {
145833	//       "description": "Project ID for this request.",
145834	//       "location": "path",
145835	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
145836	//       "required": true,
145837	//       "type": "string"
145838	//     },
145839	//     "resource": {
145840	//       "description": "Name or id of the resource for this request.",
145841	//       "location": "path",
145842	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
145843	//       "required": true,
145844	//       "type": "string"
145845	//     }
145846	//   },
145847	//   "path": "{project}/global/routes/{resource}/testIamPermissions",
145848	//   "request": {
145849	//     "$ref": "TestPermissionsRequest"
145850	//   },
145851	//   "response": {
145852	//     "$ref": "TestPermissionsResponse"
145853	//   },
145854	//   "scopes": [
145855	//     "https://www.googleapis.com/auth/cloud-platform",
145856	//     "https://www.googleapis.com/auth/compute",
145857	//     "https://www.googleapis.com/auth/compute.readonly"
145858	//   ]
145859	// }
145860
145861}
145862
145863// method id "compute.securityPolicies.addRule":
145864
145865type SecurityPoliciesAddRuleCall struct {
145866	s                  *Service
145867	project            string
145868	securityPolicy     string
145869	securitypolicyrule *SecurityPolicyRule
145870	urlParams_         gensupport.URLParams
145871	ctx_               context.Context
145872	header_            http.Header
145873}
145874
145875// AddRule: Inserts a rule into a security policy. (== suppress_warning
145876// http-rest-shadowed ==)
145877func (r *SecurityPoliciesService) AddRule(project string, securityPolicy string, securitypolicyrule *SecurityPolicyRule) *SecurityPoliciesAddRuleCall {
145878	c := &SecurityPoliciesAddRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)}
145879	c.project = project
145880	c.securityPolicy = securityPolicy
145881	c.securitypolicyrule = securitypolicyrule
145882	return c
145883}
145884
145885// ValidateOnly sets the optional parameter "validateOnly": If true, the
145886// request will not be committed.
145887func (c *SecurityPoliciesAddRuleCall) ValidateOnly(validateOnly bool) *SecurityPoliciesAddRuleCall {
145888	c.urlParams_.Set("validateOnly", fmt.Sprint(validateOnly))
145889	return c
145890}
145891
145892// Fields allows partial responses to be retrieved. See
145893// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
145894// for more information.
145895func (c *SecurityPoliciesAddRuleCall) Fields(s ...googleapi.Field) *SecurityPoliciesAddRuleCall {
145896	c.urlParams_.Set("fields", googleapi.CombineFields(s))
145897	return c
145898}
145899
145900// Context sets the context to be used in this call's Do method. Any
145901// pending HTTP request will be aborted if the provided context is
145902// canceled.
145903func (c *SecurityPoliciesAddRuleCall) Context(ctx context.Context) *SecurityPoliciesAddRuleCall {
145904	c.ctx_ = ctx
145905	return c
145906}
145907
145908// Header returns an http.Header that can be modified by the caller to
145909// add HTTP headers to the request.
145910func (c *SecurityPoliciesAddRuleCall) Header() http.Header {
145911	if c.header_ == nil {
145912		c.header_ = make(http.Header)
145913	}
145914	return c.header_
145915}
145916
145917func (c *SecurityPoliciesAddRuleCall) doRequest(alt string) (*http.Response, error) {
145918	reqHeaders := make(http.Header)
145919	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
145920	for k, v := range c.header_ {
145921		reqHeaders[k] = v
145922	}
145923	reqHeaders.Set("User-Agent", c.s.userAgent())
145924	var body io.Reader = nil
145925	body, err := googleapi.WithoutDataWrapper.JSONReader(c.securitypolicyrule)
145926	if err != nil {
145927		return nil, err
145928	}
145929	reqHeaders.Set("Content-Type", "application/json")
145930	c.urlParams_.Set("alt", alt)
145931	c.urlParams_.Set("prettyPrint", "false")
145932	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/securityPolicies/{securityPolicy}/addRule")
145933	urls += "?" + c.urlParams_.Encode()
145934	req, err := http.NewRequest("POST", urls, body)
145935	if err != nil {
145936		return nil, err
145937	}
145938	req.Header = reqHeaders
145939	googleapi.Expand(req.URL, map[string]string{
145940		"project":        c.project,
145941		"securityPolicy": c.securityPolicy,
145942	})
145943	return gensupport.SendRequest(c.ctx_, c.s.client, req)
145944}
145945
145946// Do executes the "compute.securityPolicies.addRule" call.
145947// Exactly one of *Operation or error will be non-nil. Any non-2xx
145948// status code is an error. Response headers are in either
145949// *Operation.ServerResponse.Header or (if a response was returned at
145950// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
145951// to check whether the returned error was because
145952// http.StatusNotModified was returned.
145953func (c *SecurityPoliciesAddRuleCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
145954	gensupport.SetOptions(c.urlParams_, opts...)
145955	res, err := c.doRequest("json")
145956	if res != nil && res.StatusCode == http.StatusNotModified {
145957		if res.Body != nil {
145958			res.Body.Close()
145959		}
145960		return nil, &googleapi.Error{
145961			Code:   res.StatusCode,
145962			Header: res.Header,
145963		}
145964	}
145965	if err != nil {
145966		return nil, err
145967	}
145968	defer googleapi.CloseBody(res)
145969	if err := googleapi.CheckResponse(res); err != nil {
145970		return nil, err
145971	}
145972	ret := &Operation{
145973		ServerResponse: googleapi.ServerResponse{
145974			Header:         res.Header,
145975			HTTPStatusCode: res.StatusCode,
145976		},
145977	}
145978	target := &ret
145979	if err := gensupport.DecodeResponse(target, res); err != nil {
145980		return nil, err
145981	}
145982	return ret, nil
145983	// {
145984	//   "description": "Inserts a rule into a security policy. (== suppress_warning http-rest-shadowed ==)",
145985	//   "httpMethod": "POST",
145986	//   "id": "compute.securityPolicies.addRule",
145987	//   "parameterOrder": [
145988	//     "project",
145989	//     "securityPolicy"
145990	//   ],
145991	//   "parameters": {
145992	//     "project": {
145993	//       "description": "Project ID for this request.",
145994	//       "location": "path",
145995	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
145996	//       "required": true,
145997	//       "type": "string"
145998	//     },
145999	//     "securityPolicy": {
146000	//       "description": "Name of the security policy to update.",
146001	//       "location": "path",
146002	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
146003	//       "required": true,
146004	//       "type": "string"
146005	//     },
146006	//     "validateOnly": {
146007	//       "description": "If true, the request will not be committed.",
146008	//       "location": "query",
146009	//       "type": "boolean"
146010	//     }
146011	//   },
146012	//   "path": "{project}/global/securityPolicies/{securityPolicy}/addRule",
146013	//   "request": {
146014	//     "$ref": "SecurityPolicyRule"
146015	//   },
146016	//   "response": {
146017	//     "$ref": "Operation"
146018	//   },
146019	//   "scopes": [
146020	//     "https://www.googleapis.com/auth/cloud-platform",
146021	//     "https://www.googleapis.com/auth/compute"
146022	//   ]
146023	// }
146024
146025}
146026
146027// method id "compute.securityPolicies.delete":
146028
146029type SecurityPoliciesDeleteCall struct {
146030	s              *Service
146031	project        string
146032	securityPolicy string
146033	urlParams_     gensupport.URLParams
146034	ctx_           context.Context
146035	header_        http.Header
146036}
146037
146038// Delete: Deletes the specified policy. (== suppress_warning
146039// http-rest-shadowed ==)
146040func (r *SecurityPoliciesService) Delete(project string, securityPolicy string) *SecurityPoliciesDeleteCall {
146041	c := &SecurityPoliciesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
146042	c.project = project
146043	c.securityPolicy = securityPolicy
146044	return c
146045}
146046
146047// RequestId sets the optional parameter "requestId": An optional
146048// request ID to identify requests. Specify a unique request ID so that
146049// if you must retry your request, the server will know to ignore the
146050// request if it has already been completed.
146051//
146052// For example, consider a situation where you make an initial request
146053// and the request times out. If you make the request again with the
146054// same request ID, the server can check if original operation with the
146055// same request ID was received, and if so, will ignore the second
146056// request. This prevents clients from accidentally creating duplicate
146057// commitments.
146058//
146059// The request ID must be a valid UUID with the exception that zero UUID
146060// is not supported (00000000-0000-0000-0000-000000000000).
146061func (c *SecurityPoliciesDeleteCall) RequestId(requestId string) *SecurityPoliciesDeleteCall {
146062	c.urlParams_.Set("requestId", requestId)
146063	return c
146064}
146065
146066// Fields allows partial responses to be retrieved. See
146067// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
146068// for more information.
146069func (c *SecurityPoliciesDeleteCall) Fields(s ...googleapi.Field) *SecurityPoliciesDeleteCall {
146070	c.urlParams_.Set("fields", googleapi.CombineFields(s))
146071	return c
146072}
146073
146074// Context sets the context to be used in this call's Do method. Any
146075// pending HTTP request will be aborted if the provided context is
146076// canceled.
146077func (c *SecurityPoliciesDeleteCall) Context(ctx context.Context) *SecurityPoliciesDeleteCall {
146078	c.ctx_ = ctx
146079	return c
146080}
146081
146082// Header returns an http.Header that can be modified by the caller to
146083// add HTTP headers to the request.
146084func (c *SecurityPoliciesDeleteCall) Header() http.Header {
146085	if c.header_ == nil {
146086		c.header_ = make(http.Header)
146087	}
146088	return c.header_
146089}
146090
146091func (c *SecurityPoliciesDeleteCall) doRequest(alt string) (*http.Response, error) {
146092	reqHeaders := make(http.Header)
146093	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
146094	for k, v := range c.header_ {
146095		reqHeaders[k] = v
146096	}
146097	reqHeaders.Set("User-Agent", c.s.userAgent())
146098	var body io.Reader = nil
146099	c.urlParams_.Set("alt", alt)
146100	c.urlParams_.Set("prettyPrint", "false")
146101	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/securityPolicies/{securityPolicy}")
146102	urls += "?" + c.urlParams_.Encode()
146103	req, err := http.NewRequest("DELETE", urls, body)
146104	if err != nil {
146105		return nil, err
146106	}
146107	req.Header = reqHeaders
146108	googleapi.Expand(req.URL, map[string]string{
146109		"project":        c.project,
146110		"securityPolicy": c.securityPolicy,
146111	})
146112	return gensupport.SendRequest(c.ctx_, c.s.client, req)
146113}
146114
146115// Do executes the "compute.securityPolicies.delete" call.
146116// Exactly one of *Operation or error will be non-nil. Any non-2xx
146117// status code is an error. Response headers are in either
146118// *Operation.ServerResponse.Header or (if a response was returned at
146119// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
146120// to check whether the returned error was because
146121// http.StatusNotModified was returned.
146122func (c *SecurityPoliciesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
146123	gensupport.SetOptions(c.urlParams_, opts...)
146124	res, err := c.doRequest("json")
146125	if res != nil && res.StatusCode == http.StatusNotModified {
146126		if res.Body != nil {
146127			res.Body.Close()
146128		}
146129		return nil, &googleapi.Error{
146130			Code:   res.StatusCode,
146131			Header: res.Header,
146132		}
146133	}
146134	if err != nil {
146135		return nil, err
146136	}
146137	defer googleapi.CloseBody(res)
146138	if err := googleapi.CheckResponse(res); err != nil {
146139		return nil, err
146140	}
146141	ret := &Operation{
146142		ServerResponse: googleapi.ServerResponse{
146143			Header:         res.Header,
146144			HTTPStatusCode: res.StatusCode,
146145		},
146146	}
146147	target := &ret
146148	if err := gensupport.DecodeResponse(target, res); err != nil {
146149		return nil, err
146150	}
146151	return ret, nil
146152	// {
146153	//   "description": "Deletes the specified policy. (== suppress_warning http-rest-shadowed ==)",
146154	//   "httpMethod": "DELETE",
146155	//   "id": "compute.securityPolicies.delete",
146156	//   "parameterOrder": [
146157	//     "project",
146158	//     "securityPolicy"
146159	//   ],
146160	//   "parameters": {
146161	//     "project": {
146162	//       "description": "Project ID for this request.",
146163	//       "location": "path",
146164	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
146165	//       "required": true,
146166	//       "type": "string"
146167	//     },
146168	//     "requestId": {
146169	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
146170	//       "location": "query",
146171	//       "type": "string"
146172	//     },
146173	//     "securityPolicy": {
146174	//       "description": "Name of the security policy to delete.",
146175	//       "location": "path",
146176	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
146177	//       "required": true,
146178	//       "type": "string"
146179	//     }
146180	//   },
146181	//   "path": "{project}/global/securityPolicies/{securityPolicy}",
146182	//   "response": {
146183	//     "$ref": "Operation"
146184	//   },
146185	//   "scopes": [
146186	//     "https://www.googleapis.com/auth/cloud-platform",
146187	//     "https://www.googleapis.com/auth/compute"
146188	//   ]
146189	// }
146190
146191}
146192
146193// method id "compute.securityPolicies.get":
146194
146195type SecurityPoliciesGetCall struct {
146196	s              *Service
146197	project        string
146198	securityPolicy string
146199	urlParams_     gensupport.URLParams
146200	ifNoneMatch_   string
146201	ctx_           context.Context
146202	header_        http.Header
146203}
146204
146205// Get: List all of the ordered rules present in a single specified
146206// policy. (== suppress_warning http-rest-shadowed ==)
146207func (r *SecurityPoliciesService) Get(project string, securityPolicy string) *SecurityPoliciesGetCall {
146208	c := &SecurityPoliciesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
146209	c.project = project
146210	c.securityPolicy = securityPolicy
146211	return c
146212}
146213
146214// Fields allows partial responses to be retrieved. See
146215// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
146216// for more information.
146217func (c *SecurityPoliciesGetCall) Fields(s ...googleapi.Field) *SecurityPoliciesGetCall {
146218	c.urlParams_.Set("fields", googleapi.CombineFields(s))
146219	return c
146220}
146221
146222// IfNoneMatch sets the optional parameter which makes the operation
146223// fail if the object's ETag matches the given value. This is useful for
146224// getting updates only after the object has changed since the last
146225// request. Use googleapi.IsNotModified to check whether the response
146226// error from Do is the result of In-None-Match.
146227func (c *SecurityPoliciesGetCall) IfNoneMatch(entityTag string) *SecurityPoliciesGetCall {
146228	c.ifNoneMatch_ = entityTag
146229	return c
146230}
146231
146232// Context sets the context to be used in this call's Do method. Any
146233// pending HTTP request will be aborted if the provided context is
146234// canceled.
146235func (c *SecurityPoliciesGetCall) Context(ctx context.Context) *SecurityPoliciesGetCall {
146236	c.ctx_ = ctx
146237	return c
146238}
146239
146240// Header returns an http.Header that can be modified by the caller to
146241// add HTTP headers to the request.
146242func (c *SecurityPoliciesGetCall) Header() http.Header {
146243	if c.header_ == nil {
146244		c.header_ = make(http.Header)
146245	}
146246	return c.header_
146247}
146248
146249func (c *SecurityPoliciesGetCall) doRequest(alt string) (*http.Response, error) {
146250	reqHeaders := make(http.Header)
146251	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
146252	for k, v := range c.header_ {
146253		reqHeaders[k] = v
146254	}
146255	reqHeaders.Set("User-Agent", c.s.userAgent())
146256	if c.ifNoneMatch_ != "" {
146257		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
146258	}
146259	var body io.Reader = nil
146260	c.urlParams_.Set("alt", alt)
146261	c.urlParams_.Set("prettyPrint", "false")
146262	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/securityPolicies/{securityPolicy}")
146263	urls += "?" + c.urlParams_.Encode()
146264	req, err := http.NewRequest("GET", urls, body)
146265	if err != nil {
146266		return nil, err
146267	}
146268	req.Header = reqHeaders
146269	googleapi.Expand(req.URL, map[string]string{
146270		"project":        c.project,
146271		"securityPolicy": c.securityPolicy,
146272	})
146273	return gensupport.SendRequest(c.ctx_, c.s.client, req)
146274}
146275
146276// Do executes the "compute.securityPolicies.get" call.
146277// Exactly one of *SecurityPolicy or error will be non-nil. Any non-2xx
146278// status code is an error. Response headers are in either
146279// *SecurityPolicy.ServerResponse.Header or (if a response was returned
146280// at all) in error.(*googleapi.Error).Header. Use
146281// googleapi.IsNotModified to check whether the returned error was
146282// because http.StatusNotModified was returned.
146283func (c *SecurityPoliciesGetCall) Do(opts ...googleapi.CallOption) (*SecurityPolicy, error) {
146284	gensupport.SetOptions(c.urlParams_, opts...)
146285	res, err := c.doRequest("json")
146286	if res != nil && res.StatusCode == http.StatusNotModified {
146287		if res.Body != nil {
146288			res.Body.Close()
146289		}
146290		return nil, &googleapi.Error{
146291			Code:   res.StatusCode,
146292			Header: res.Header,
146293		}
146294	}
146295	if err != nil {
146296		return nil, err
146297	}
146298	defer googleapi.CloseBody(res)
146299	if err := googleapi.CheckResponse(res); err != nil {
146300		return nil, err
146301	}
146302	ret := &SecurityPolicy{
146303		ServerResponse: googleapi.ServerResponse{
146304			Header:         res.Header,
146305			HTTPStatusCode: res.StatusCode,
146306		},
146307	}
146308	target := &ret
146309	if err := gensupport.DecodeResponse(target, res); err != nil {
146310		return nil, err
146311	}
146312	return ret, nil
146313	// {
146314	//   "description": "List all of the ordered rules present in a single specified policy. (== suppress_warning http-rest-shadowed ==)",
146315	//   "httpMethod": "GET",
146316	//   "id": "compute.securityPolicies.get",
146317	//   "parameterOrder": [
146318	//     "project",
146319	//     "securityPolicy"
146320	//   ],
146321	//   "parameters": {
146322	//     "project": {
146323	//       "description": "Project ID for this request.",
146324	//       "location": "path",
146325	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
146326	//       "required": true,
146327	//       "type": "string"
146328	//     },
146329	//     "securityPolicy": {
146330	//       "description": "Name of the security policy to get.",
146331	//       "location": "path",
146332	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
146333	//       "required": true,
146334	//       "type": "string"
146335	//     }
146336	//   },
146337	//   "path": "{project}/global/securityPolicies/{securityPolicy}",
146338	//   "response": {
146339	//     "$ref": "SecurityPolicy"
146340	//   },
146341	//   "scopes": [
146342	//     "https://www.googleapis.com/auth/cloud-platform",
146343	//     "https://www.googleapis.com/auth/compute",
146344	//     "https://www.googleapis.com/auth/compute.readonly"
146345	//   ]
146346	// }
146347
146348}
146349
146350// method id "compute.securityPolicies.getRule":
146351
146352type SecurityPoliciesGetRuleCall struct {
146353	s              *Service
146354	project        string
146355	securityPolicy string
146356	urlParams_     gensupport.URLParams
146357	ifNoneMatch_   string
146358	ctx_           context.Context
146359	header_        http.Header
146360}
146361
146362// GetRule: Gets a rule at the specified priority. (== suppress_warning
146363// http-rest-shadowed ==)
146364func (r *SecurityPoliciesService) GetRule(project string, securityPolicy string) *SecurityPoliciesGetRuleCall {
146365	c := &SecurityPoliciesGetRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)}
146366	c.project = project
146367	c.securityPolicy = securityPolicy
146368	return c
146369}
146370
146371// Priority sets the optional parameter "priority": The priority of the
146372// rule to get from the security policy.
146373func (c *SecurityPoliciesGetRuleCall) Priority(priority int64) *SecurityPoliciesGetRuleCall {
146374	c.urlParams_.Set("priority", fmt.Sprint(priority))
146375	return c
146376}
146377
146378// Fields allows partial responses to be retrieved. See
146379// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
146380// for more information.
146381func (c *SecurityPoliciesGetRuleCall) Fields(s ...googleapi.Field) *SecurityPoliciesGetRuleCall {
146382	c.urlParams_.Set("fields", googleapi.CombineFields(s))
146383	return c
146384}
146385
146386// IfNoneMatch sets the optional parameter which makes the operation
146387// fail if the object's ETag matches the given value. This is useful for
146388// getting updates only after the object has changed since the last
146389// request. Use googleapi.IsNotModified to check whether the response
146390// error from Do is the result of In-None-Match.
146391func (c *SecurityPoliciesGetRuleCall) IfNoneMatch(entityTag string) *SecurityPoliciesGetRuleCall {
146392	c.ifNoneMatch_ = entityTag
146393	return c
146394}
146395
146396// Context sets the context to be used in this call's Do method. Any
146397// pending HTTP request will be aborted if the provided context is
146398// canceled.
146399func (c *SecurityPoliciesGetRuleCall) Context(ctx context.Context) *SecurityPoliciesGetRuleCall {
146400	c.ctx_ = ctx
146401	return c
146402}
146403
146404// Header returns an http.Header that can be modified by the caller to
146405// add HTTP headers to the request.
146406func (c *SecurityPoliciesGetRuleCall) Header() http.Header {
146407	if c.header_ == nil {
146408		c.header_ = make(http.Header)
146409	}
146410	return c.header_
146411}
146412
146413func (c *SecurityPoliciesGetRuleCall) doRequest(alt string) (*http.Response, error) {
146414	reqHeaders := make(http.Header)
146415	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
146416	for k, v := range c.header_ {
146417		reqHeaders[k] = v
146418	}
146419	reqHeaders.Set("User-Agent", c.s.userAgent())
146420	if c.ifNoneMatch_ != "" {
146421		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
146422	}
146423	var body io.Reader = nil
146424	c.urlParams_.Set("alt", alt)
146425	c.urlParams_.Set("prettyPrint", "false")
146426	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/securityPolicies/{securityPolicy}/getRule")
146427	urls += "?" + c.urlParams_.Encode()
146428	req, err := http.NewRequest("GET", urls, body)
146429	if err != nil {
146430		return nil, err
146431	}
146432	req.Header = reqHeaders
146433	googleapi.Expand(req.URL, map[string]string{
146434		"project":        c.project,
146435		"securityPolicy": c.securityPolicy,
146436	})
146437	return gensupport.SendRequest(c.ctx_, c.s.client, req)
146438}
146439
146440// Do executes the "compute.securityPolicies.getRule" call.
146441// Exactly one of *SecurityPolicyRule or error will be non-nil. Any
146442// non-2xx status code is an error. Response headers are in either
146443// *SecurityPolicyRule.ServerResponse.Header or (if a response was
146444// returned at all) in error.(*googleapi.Error).Header. Use
146445// googleapi.IsNotModified to check whether the returned error was
146446// because http.StatusNotModified was returned.
146447func (c *SecurityPoliciesGetRuleCall) Do(opts ...googleapi.CallOption) (*SecurityPolicyRule, error) {
146448	gensupport.SetOptions(c.urlParams_, opts...)
146449	res, err := c.doRequest("json")
146450	if res != nil && res.StatusCode == http.StatusNotModified {
146451		if res.Body != nil {
146452			res.Body.Close()
146453		}
146454		return nil, &googleapi.Error{
146455			Code:   res.StatusCode,
146456			Header: res.Header,
146457		}
146458	}
146459	if err != nil {
146460		return nil, err
146461	}
146462	defer googleapi.CloseBody(res)
146463	if err := googleapi.CheckResponse(res); err != nil {
146464		return nil, err
146465	}
146466	ret := &SecurityPolicyRule{
146467		ServerResponse: googleapi.ServerResponse{
146468			Header:         res.Header,
146469			HTTPStatusCode: res.StatusCode,
146470		},
146471	}
146472	target := &ret
146473	if err := gensupport.DecodeResponse(target, res); err != nil {
146474		return nil, err
146475	}
146476	return ret, nil
146477	// {
146478	//   "description": "Gets a rule at the specified priority. (== suppress_warning http-rest-shadowed ==)",
146479	//   "httpMethod": "GET",
146480	//   "id": "compute.securityPolicies.getRule",
146481	//   "parameterOrder": [
146482	//     "project",
146483	//     "securityPolicy"
146484	//   ],
146485	//   "parameters": {
146486	//     "priority": {
146487	//       "description": "The priority of the rule to get from the security policy.",
146488	//       "format": "int32",
146489	//       "location": "query",
146490	//       "type": "integer"
146491	//     },
146492	//     "project": {
146493	//       "description": "Project ID for this request.",
146494	//       "location": "path",
146495	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
146496	//       "required": true,
146497	//       "type": "string"
146498	//     },
146499	//     "securityPolicy": {
146500	//       "description": "Name of the security policy to which the queried rule belongs.",
146501	//       "location": "path",
146502	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
146503	//       "required": true,
146504	//       "type": "string"
146505	//     }
146506	//   },
146507	//   "path": "{project}/global/securityPolicies/{securityPolicy}/getRule",
146508	//   "response": {
146509	//     "$ref": "SecurityPolicyRule"
146510	//   },
146511	//   "scopes": [
146512	//     "https://www.googleapis.com/auth/cloud-platform",
146513	//     "https://www.googleapis.com/auth/compute",
146514	//     "https://www.googleapis.com/auth/compute.readonly"
146515	//   ]
146516	// }
146517
146518}
146519
146520// method id "compute.securityPolicies.insert":
146521
146522type SecurityPoliciesInsertCall struct {
146523	s              *Service
146524	project        string
146525	securitypolicy *SecurityPolicy
146526	urlParams_     gensupport.URLParams
146527	ctx_           context.Context
146528	header_        http.Header
146529}
146530
146531// Insert: Creates a new policy in the specified project using the data
146532// included in the request. (== suppress_warning http-rest-shadowed ==)
146533func (r *SecurityPoliciesService) Insert(project string, securitypolicy *SecurityPolicy) *SecurityPoliciesInsertCall {
146534	c := &SecurityPoliciesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
146535	c.project = project
146536	c.securitypolicy = securitypolicy
146537	return c
146538}
146539
146540// RequestId sets the optional parameter "requestId": An optional
146541// request ID to identify requests. Specify a unique request ID so that
146542// if you must retry your request, the server will know to ignore the
146543// request if it has already been completed.
146544//
146545// For example, consider a situation where you make an initial request
146546// and the request times out. If you make the request again with the
146547// same request ID, the server can check if original operation with the
146548// same request ID was received, and if so, will ignore the second
146549// request. This prevents clients from accidentally creating duplicate
146550// commitments.
146551//
146552// The request ID must be a valid UUID with the exception that zero UUID
146553// is not supported (00000000-0000-0000-0000-000000000000).
146554func (c *SecurityPoliciesInsertCall) RequestId(requestId string) *SecurityPoliciesInsertCall {
146555	c.urlParams_.Set("requestId", requestId)
146556	return c
146557}
146558
146559// ValidateOnly sets the optional parameter "validateOnly": If true, the
146560// request will not be committed.
146561func (c *SecurityPoliciesInsertCall) ValidateOnly(validateOnly bool) *SecurityPoliciesInsertCall {
146562	c.urlParams_.Set("validateOnly", fmt.Sprint(validateOnly))
146563	return c
146564}
146565
146566// Fields allows partial responses to be retrieved. See
146567// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
146568// for more information.
146569func (c *SecurityPoliciesInsertCall) Fields(s ...googleapi.Field) *SecurityPoliciesInsertCall {
146570	c.urlParams_.Set("fields", googleapi.CombineFields(s))
146571	return c
146572}
146573
146574// Context sets the context to be used in this call's Do method. Any
146575// pending HTTP request will be aborted if the provided context is
146576// canceled.
146577func (c *SecurityPoliciesInsertCall) Context(ctx context.Context) *SecurityPoliciesInsertCall {
146578	c.ctx_ = ctx
146579	return c
146580}
146581
146582// Header returns an http.Header that can be modified by the caller to
146583// add HTTP headers to the request.
146584func (c *SecurityPoliciesInsertCall) Header() http.Header {
146585	if c.header_ == nil {
146586		c.header_ = make(http.Header)
146587	}
146588	return c.header_
146589}
146590
146591func (c *SecurityPoliciesInsertCall) doRequest(alt string) (*http.Response, error) {
146592	reqHeaders := make(http.Header)
146593	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
146594	for k, v := range c.header_ {
146595		reqHeaders[k] = v
146596	}
146597	reqHeaders.Set("User-Agent", c.s.userAgent())
146598	var body io.Reader = nil
146599	body, err := googleapi.WithoutDataWrapper.JSONReader(c.securitypolicy)
146600	if err != nil {
146601		return nil, err
146602	}
146603	reqHeaders.Set("Content-Type", "application/json")
146604	c.urlParams_.Set("alt", alt)
146605	c.urlParams_.Set("prettyPrint", "false")
146606	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/securityPolicies")
146607	urls += "?" + c.urlParams_.Encode()
146608	req, err := http.NewRequest("POST", urls, body)
146609	if err != nil {
146610		return nil, err
146611	}
146612	req.Header = reqHeaders
146613	googleapi.Expand(req.URL, map[string]string{
146614		"project": c.project,
146615	})
146616	return gensupport.SendRequest(c.ctx_, c.s.client, req)
146617}
146618
146619// Do executes the "compute.securityPolicies.insert" call.
146620// Exactly one of *Operation or error will be non-nil. Any non-2xx
146621// status code is an error. Response headers are in either
146622// *Operation.ServerResponse.Header or (if a response was returned at
146623// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
146624// to check whether the returned error was because
146625// http.StatusNotModified was returned.
146626func (c *SecurityPoliciesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
146627	gensupport.SetOptions(c.urlParams_, opts...)
146628	res, err := c.doRequest("json")
146629	if res != nil && res.StatusCode == http.StatusNotModified {
146630		if res.Body != nil {
146631			res.Body.Close()
146632		}
146633		return nil, &googleapi.Error{
146634			Code:   res.StatusCode,
146635			Header: res.Header,
146636		}
146637	}
146638	if err != nil {
146639		return nil, err
146640	}
146641	defer googleapi.CloseBody(res)
146642	if err := googleapi.CheckResponse(res); err != nil {
146643		return nil, err
146644	}
146645	ret := &Operation{
146646		ServerResponse: googleapi.ServerResponse{
146647			Header:         res.Header,
146648			HTTPStatusCode: res.StatusCode,
146649		},
146650	}
146651	target := &ret
146652	if err := gensupport.DecodeResponse(target, res); err != nil {
146653		return nil, err
146654	}
146655	return ret, nil
146656	// {
146657	//   "description": "Creates a new policy in the specified project using the data included in the request. (== suppress_warning http-rest-shadowed ==)",
146658	//   "httpMethod": "POST",
146659	//   "id": "compute.securityPolicies.insert",
146660	//   "parameterOrder": [
146661	//     "project"
146662	//   ],
146663	//   "parameters": {
146664	//     "project": {
146665	//       "description": "Project ID for this request.",
146666	//       "location": "path",
146667	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
146668	//       "required": true,
146669	//       "type": "string"
146670	//     },
146671	//     "requestId": {
146672	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
146673	//       "location": "query",
146674	//       "type": "string"
146675	//     },
146676	//     "validateOnly": {
146677	//       "description": "If true, the request will not be committed.",
146678	//       "location": "query",
146679	//       "type": "boolean"
146680	//     }
146681	//   },
146682	//   "path": "{project}/global/securityPolicies",
146683	//   "request": {
146684	//     "$ref": "SecurityPolicy"
146685	//   },
146686	//   "response": {
146687	//     "$ref": "Operation"
146688	//   },
146689	//   "scopes": [
146690	//     "https://www.googleapis.com/auth/cloud-platform",
146691	//     "https://www.googleapis.com/auth/compute"
146692	//   ]
146693	// }
146694
146695}
146696
146697// method id "compute.securityPolicies.list":
146698
146699type SecurityPoliciesListCall struct {
146700	s            *Service
146701	project      string
146702	urlParams_   gensupport.URLParams
146703	ifNoneMatch_ string
146704	ctx_         context.Context
146705	header_      http.Header
146706}
146707
146708// List: List all the policies that have been configured for the
146709// specified project. (== suppress_warning http-rest-shadowed ==)
146710func (r *SecurityPoliciesService) List(project string) *SecurityPoliciesListCall {
146711	c := &SecurityPoliciesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
146712	c.project = project
146713	return c
146714}
146715
146716// Filter sets the optional parameter "filter": A filter expression that
146717// filters resources listed in the response. The expression must specify
146718// the field name, a comparison operator, and the value that you want to
146719// use for filtering. The value must be a string, a number, or a
146720// boolean. The comparison operator must be either =, !=, >, or <.
146721//
146722// For example, if you are filtering Compute Engine instances, you can
146723// exclude instances named example-instance by specifying name !=
146724// example-instance.
146725//
146726// You can also filter nested fields. For example, you could specify
146727// scheduling.automaticRestart = false to include instances only if they
146728// are not scheduled for automatic restarts. You can use filtering on
146729// nested fields to filter based on resource labels.
146730//
146731// To filter on multiple expressions, provide each separate expression
146732// within parentheses. For example, (scheduling.automaticRestart = true)
146733// (cpuPlatform = "Intel Skylake"). By default, each expression is an
146734// AND expression. However, you can include AND and OR expressions
146735// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
146736// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
146737// true).
146738func (c *SecurityPoliciesListCall) Filter(filter string) *SecurityPoliciesListCall {
146739	c.urlParams_.Set("filter", filter)
146740	return c
146741}
146742
146743// MaxResults sets the optional parameter "maxResults": The maximum
146744// number of results per page that should be returned. If the number of
146745// available results is larger than maxResults, Compute Engine returns a
146746// nextPageToken that can be used to get the next page of results in
146747// subsequent list requests. Acceptable values are 0 to 500, inclusive.
146748// (Default: 500)
146749func (c *SecurityPoliciesListCall) MaxResults(maxResults int64) *SecurityPoliciesListCall {
146750	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
146751	return c
146752}
146753
146754// OrderBy sets the optional parameter "orderBy": Sorts list results by
146755// a certain order. By default, results are returned in alphanumerical
146756// order based on the resource name.
146757//
146758// You can also sort results in descending order based on the creation
146759// timestamp using orderBy="creationTimestamp desc". This sorts results
146760// based on the creationTimestamp field in reverse chronological order
146761// (newest result first). Use this to sort resources like operations so
146762// that the newest operation is returned first.
146763//
146764// Currently, only sorting by name or creationTimestamp desc is
146765// supported.
146766func (c *SecurityPoliciesListCall) OrderBy(orderBy string) *SecurityPoliciesListCall {
146767	c.urlParams_.Set("orderBy", orderBy)
146768	return c
146769}
146770
146771// PageToken sets the optional parameter "pageToken": Specifies a page
146772// token to use. Set pageToken to the nextPageToken returned by a
146773// previous list request to get the next page of results.
146774func (c *SecurityPoliciesListCall) PageToken(pageToken string) *SecurityPoliciesListCall {
146775	c.urlParams_.Set("pageToken", pageToken)
146776	return c
146777}
146778
146779// Fields allows partial responses to be retrieved. See
146780// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
146781// for more information.
146782func (c *SecurityPoliciesListCall) Fields(s ...googleapi.Field) *SecurityPoliciesListCall {
146783	c.urlParams_.Set("fields", googleapi.CombineFields(s))
146784	return c
146785}
146786
146787// IfNoneMatch sets the optional parameter which makes the operation
146788// fail if the object's ETag matches the given value. This is useful for
146789// getting updates only after the object has changed since the last
146790// request. Use googleapi.IsNotModified to check whether the response
146791// error from Do is the result of In-None-Match.
146792func (c *SecurityPoliciesListCall) IfNoneMatch(entityTag string) *SecurityPoliciesListCall {
146793	c.ifNoneMatch_ = entityTag
146794	return c
146795}
146796
146797// Context sets the context to be used in this call's Do method. Any
146798// pending HTTP request will be aborted if the provided context is
146799// canceled.
146800func (c *SecurityPoliciesListCall) Context(ctx context.Context) *SecurityPoliciesListCall {
146801	c.ctx_ = ctx
146802	return c
146803}
146804
146805// Header returns an http.Header that can be modified by the caller to
146806// add HTTP headers to the request.
146807func (c *SecurityPoliciesListCall) Header() http.Header {
146808	if c.header_ == nil {
146809		c.header_ = make(http.Header)
146810	}
146811	return c.header_
146812}
146813
146814func (c *SecurityPoliciesListCall) doRequest(alt string) (*http.Response, error) {
146815	reqHeaders := make(http.Header)
146816	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
146817	for k, v := range c.header_ {
146818		reqHeaders[k] = v
146819	}
146820	reqHeaders.Set("User-Agent", c.s.userAgent())
146821	if c.ifNoneMatch_ != "" {
146822		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
146823	}
146824	var body io.Reader = nil
146825	c.urlParams_.Set("alt", alt)
146826	c.urlParams_.Set("prettyPrint", "false")
146827	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/securityPolicies")
146828	urls += "?" + c.urlParams_.Encode()
146829	req, err := http.NewRequest("GET", urls, body)
146830	if err != nil {
146831		return nil, err
146832	}
146833	req.Header = reqHeaders
146834	googleapi.Expand(req.URL, map[string]string{
146835		"project": c.project,
146836	})
146837	return gensupport.SendRequest(c.ctx_, c.s.client, req)
146838}
146839
146840// Do executes the "compute.securityPolicies.list" call.
146841// Exactly one of *SecurityPolicyList or error will be non-nil. Any
146842// non-2xx status code is an error. Response headers are in either
146843// *SecurityPolicyList.ServerResponse.Header or (if a response was
146844// returned at all) in error.(*googleapi.Error).Header. Use
146845// googleapi.IsNotModified to check whether the returned error was
146846// because http.StatusNotModified was returned.
146847func (c *SecurityPoliciesListCall) Do(opts ...googleapi.CallOption) (*SecurityPolicyList, error) {
146848	gensupport.SetOptions(c.urlParams_, opts...)
146849	res, err := c.doRequest("json")
146850	if res != nil && res.StatusCode == http.StatusNotModified {
146851		if res.Body != nil {
146852			res.Body.Close()
146853		}
146854		return nil, &googleapi.Error{
146855			Code:   res.StatusCode,
146856			Header: res.Header,
146857		}
146858	}
146859	if err != nil {
146860		return nil, err
146861	}
146862	defer googleapi.CloseBody(res)
146863	if err := googleapi.CheckResponse(res); err != nil {
146864		return nil, err
146865	}
146866	ret := &SecurityPolicyList{
146867		ServerResponse: googleapi.ServerResponse{
146868			Header:         res.Header,
146869			HTTPStatusCode: res.StatusCode,
146870		},
146871	}
146872	target := &ret
146873	if err := gensupport.DecodeResponse(target, res); err != nil {
146874		return nil, err
146875	}
146876	return ret, nil
146877	// {
146878	//   "description": "List all the policies that have been configured for the specified project. (== suppress_warning http-rest-shadowed ==)",
146879	//   "httpMethod": "GET",
146880	//   "id": "compute.securityPolicies.list",
146881	//   "parameterOrder": [
146882	//     "project"
146883	//   ],
146884	//   "parameters": {
146885	//     "filter": {
146886	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
146887	//       "location": "query",
146888	//       "type": "string"
146889	//     },
146890	//     "maxResults": {
146891	//       "default": "500",
146892	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
146893	//       "format": "uint32",
146894	//       "location": "query",
146895	//       "minimum": "0",
146896	//       "type": "integer"
146897	//     },
146898	//     "orderBy": {
146899	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
146900	//       "location": "query",
146901	//       "type": "string"
146902	//     },
146903	//     "pageToken": {
146904	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
146905	//       "location": "query",
146906	//       "type": "string"
146907	//     },
146908	//     "project": {
146909	//       "description": "Project ID for this request.",
146910	//       "location": "path",
146911	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
146912	//       "required": true,
146913	//       "type": "string"
146914	//     }
146915	//   },
146916	//   "path": "{project}/global/securityPolicies",
146917	//   "response": {
146918	//     "$ref": "SecurityPolicyList"
146919	//   },
146920	//   "scopes": [
146921	//     "https://www.googleapis.com/auth/cloud-platform",
146922	//     "https://www.googleapis.com/auth/compute",
146923	//     "https://www.googleapis.com/auth/compute.readonly"
146924	//   ]
146925	// }
146926
146927}
146928
146929// Pages invokes f for each page of results.
146930// A non-nil error returned from f will halt the iteration.
146931// The provided context supersedes any context provided to the Context method.
146932func (c *SecurityPoliciesListCall) Pages(ctx context.Context, f func(*SecurityPolicyList) error) error {
146933	c.ctx_ = ctx
146934	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
146935	for {
146936		x, err := c.Do()
146937		if err != nil {
146938			return err
146939		}
146940		if err := f(x); err != nil {
146941			return err
146942		}
146943		if x.NextPageToken == "" {
146944			return nil
146945		}
146946		c.PageToken(x.NextPageToken)
146947	}
146948}
146949
146950// method id "compute.securityPolicies.listPreconfiguredExpressionSets":
146951
146952type SecurityPoliciesListPreconfiguredExpressionSetsCall struct {
146953	s            *Service
146954	project      string
146955	urlParams_   gensupport.URLParams
146956	ifNoneMatch_ string
146957	ctx_         context.Context
146958	header_      http.Header
146959}
146960
146961// ListPreconfiguredExpressionSets: Gets the current list of
146962// preconfigured Web Application Firewall (WAF) expressions. (==
146963// suppress_warning http-rest-shadowed ==)
146964func (r *SecurityPoliciesService) ListPreconfiguredExpressionSets(project string) *SecurityPoliciesListPreconfiguredExpressionSetsCall {
146965	c := &SecurityPoliciesListPreconfiguredExpressionSetsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
146966	c.project = project
146967	return c
146968}
146969
146970// Filter sets the optional parameter "filter": A filter expression that
146971// filters resources listed in the response. The expression must specify
146972// the field name, a comparison operator, and the value that you want to
146973// use for filtering. The value must be a string, a number, or a
146974// boolean. The comparison operator must be either =, !=, >, or <.
146975//
146976// For example, if you are filtering Compute Engine instances, you can
146977// exclude instances named example-instance by specifying name !=
146978// example-instance.
146979//
146980// You can also filter nested fields. For example, you could specify
146981// scheduling.automaticRestart = false to include instances only if they
146982// are not scheduled for automatic restarts. You can use filtering on
146983// nested fields to filter based on resource labels.
146984//
146985// To filter on multiple expressions, provide each separate expression
146986// within parentheses. For example, (scheduling.automaticRestart = true)
146987// (cpuPlatform = "Intel Skylake"). By default, each expression is an
146988// AND expression. However, you can include AND and OR expressions
146989// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
146990// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
146991// true).
146992func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) Filter(filter string) *SecurityPoliciesListPreconfiguredExpressionSetsCall {
146993	c.urlParams_.Set("filter", filter)
146994	return c
146995}
146996
146997// MaxResults sets the optional parameter "maxResults": The maximum
146998// number of results per page that should be returned. If the number of
146999// available results is larger than maxResults, Compute Engine returns a
147000// nextPageToken that can be used to get the next page of results in
147001// subsequent list requests. Acceptable values are 0 to 500, inclusive.
147002// (Default: 500)
147003func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) MaxResults(maxResults int64) *SecurityPoliciesListPreconfiguredExpressionSetsCall {
147004	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
147005	return c
147006}
147007
147008// OrderBy sets the optional parameter "orderBy": Sorts list results by
147009// a certain order. By default, results are returned in alphanumerical
147010// order based on the resource name.
147011//
147012// You can also sort results in descending order based on the creation
147013// timestamp using orderBy="creationTimestamp desc". This sorts results
147014// based on the creationTimestamp field in reverse chronological order
147015// (newest result first). Use this to sort resources like operations so
147016// that the newest operation is returned first.
147017//
147018// Currently, only sorting by name or creationTimestamp desc is
147019// supported.
147020func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) OrderBy(orderBy string) *SecurityPoliciesListPreconfiguredExpressionSetsCall {
147021	c.urlParams_.Set("orderBy", orderBy)
147022	return c
147023}
147024
147025// PageToken sets the optional parameter "pageToken": Specifies a page
147026// token to use. Set pageToken to the nextPageToken returned by a
147027// previous list request to get the next page of results.
147028func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) PageToken(pageToken string) *SecurityPoliciesListPreconfiguredExpressionSetsCall {
147029	c.urlParams_.Set("pageToken", pageToken)
147030	return c
147031}
147032
147033// Fields allows partial responses to be retrieved. See
147034// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
147035// for more information.
147036func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) Fields(s ...googleapi.Field) *SecurityPoliciesListPreconfiguredExpressionSetsCall {
147037	c.urlParams_.Set("fields", googleapi.CombineFields(s))
147038	return c
147039}
147040
147041// IfNoneMatch sets the optional parameter which makes the operation
147042// fail if the object's ETag matches the given value. This is useful for
147043// getting updates only after the object has changed since the last
147044// request. Use googleapi.IsNotModified to check whether the response
147045// error from Do is the result of In-None-Match.
147046func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) IfNoneMatch(entityTag string) *SecurityPoliciesListPreconfiguredExpressionSetsCall {
147047	c.ifNoneMatch_ = entityTag
147048	return c
147049}
147050
147051// Context sets the context to be used in this call's Do method. Any
147052// pending HTTP request will be aborted if the provided context is
147053// canceled.
147054func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) Context(ctx context.Context) *SecurityPoliciesListPreconfiguredExpressionSetsCall {
147055	c.ctx_ = ctx
147056	return c
147057}
147058
147059// Header returns an http.Header that can be modified by the caller to
147060// add HTTP headers to the request.
147061func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) Header() http.Header {
147062	if c.header_ == nil {
147063		c.header_ = make(http.Header)
147064	}
147065	return c.header_
147066}
147067
147068func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) doRequest(alt string) (*http.Response, error) {
147069	reqHeaders := make(http.Header)
147070	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
147071	for k, v := range c.header_ {
147072		reqHeaders[k] = v
147073	}
147074	reqHeaders.Set("User-Agent", c.s.userAgent())
147075	if c.ifNoneMatch_ != "" {
147076		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
147077	}
147078	var body io.Reader = nil
147079	c.urlParams_.Set("alt", alt)
147080	c.urlParams_.Set("prettyPrint", "false")
147081	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/securityPolicies/listPreconfiguredExpressionSets")
147082	urls += "?" + c.urlParams_.Encode()
147083	req, err := http.NewRequest("GET", urls, body)
147084	if err != nil {
147085		return nil, err
147086	}
147087	req.Header = reqHeaders
147088	googleapi.Expand(req.URL, map[string]string{
147089		"project": c.project,
147090	})
147091	return gensupport.SendRequest(c.ctx_, c.s.client, req)
147092}
147093
147094// Do executes the "compute.securityPolicies.listPreconfiguredExpressionSets" call.
147095// Exactly one of
147096// *SecurityPoliciesListPreconfiguredExpressionSetsResponse or error
147097// will be non-nil. Any non-2xx status code is an error. Response
147098// headers are in either
147099// *SecurityPoliciesListPreconfiguredExpressionSetsResponse.ServerRespons
147100// e.Header or (if a response was returned at all) in
147101// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
147102// whether the returned error was because http.StatusNotModified was
147103// returned.
147104func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) Do(opts ...googleapi.CallOption) (*SecurityPoliciesListPreconfiguredExpressionSetsResponse, error) {
147105	gensupport.SetOptions(c.urlParams_, opts...)
147106	res, err := c.doRequest("json")
147107	if res != nil && res.StatusCode == http.StatusNotModified {
147108		if res.Body != nil {
147109			res.Body.Close()
147110		}
147111		return nil, &googleapi.Error{
147112			Code:   res.StatusCode,
147113			Header: res.Header,
147114		}
147115	}
147116	if err != nil {
147117		return nil, err
147118	}
147119	defer googleapi.CloseBody(res)
147120	if err := googleapi.CheckResponse(res); err != nil {
147121		return nil, err
147122	}
147123	ret := &SecurityPoliciesListPreconfiguredExpressionSetsResponse{
147124		ServerResponse: googleapi.ServerResponse{
147125			Header:         res.Header,
147126			HTTPStatusCode: res.StatusCode,
147127		},
147128	}
147129	target := &ret
147130	if err := gensupport.DecodeResponse(target, res); err != nil {
147131		return nil, err
147132	}
147133	return ret, nil
147134	// {
147135	//   "description": "Gets the current list of preconfigured Web Application Firewall (WAF) expressions. (== suppress_warning http-rest-shadowed ==)",
147136	//   "httpMethod": "GET",
147137	//   "id": "compute.securityPolicies.listPreconfiguredExpressionSets",
147138	//   "parameterOrder": [
147139	//     "project"
147140	//   ],
147141	//   "parameters": {
147142	//     "filter": {
147143	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
147144	//       "location": "query",
147145	//       "type": "string"
147146	//     },
147147	//     "maxResults": {
147148	//       "default": "500",
147149	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
147150	//       "format": "uint32",
147151	//       "location": "query",
147152	//       "minimum": "0",
147153	//       "type": "integer"
147154	//     },
147155	//     "orderBy": {
147156	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
147157	//       "location": "query",
147158	//       "type": "string"
147159	//     },
147160	//     "pageToken": {
147161	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
147162	//       "location": "query",
147163	//       "type": "string"
147164	//     },
147165	//     "project": {
147166	//       "description": "Project ID for this request.",
147167	//       "location": "path",
147168	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
147169	//       "required": true,
147170	//       "type": "string"
147171	//     }
147172	//   },
147173	//   "path": "{project}/global/securityPolicies/listPreconfiguredExpressionSets",
147174	//   "response": {
147175	//     "$ref": "SecurityPoliciesListPreconfiguredExpressionSetsResponse"
147176	//   },
147177	//   "scopes": [
147178	//     "https://www.googleapis.com/auth/cloud-platform",
147179	//     "https://www.googleapis.com/auth/compute"
147180	//   ]
147181	// }
147182
147183}
147184
147185// method id "compute.securityPolicies.patch":
147186
147187type SecurityPoliciesPatchCall struct {
147188	s              *Service
147189	project        string
147190	securityPolicy string
147191	securitypolicy *SecurityPolicy
147192	urlParams_     gensupport.URLParams
147193	ctx_           context.Context
147194	header_        http.Header
147195}
147196
147197// Patch: Patches the specified policy with the data included in the
147198// request. (== suppress_warning http-rest-shadowed ==)
147199func (r *SecurityPoliciesService) Patch(project string, securityPolicy string, securitypolicy *SecurityPolicy) *SecurityPoliciesPatchCall {
147200	c := &SecurityPoliciesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
147201	c.project = project
147202	c.securityPolicy = securityPolicy
147203	c.securitypolicy = securitypolicy
147204	return c
147205}
147206
147207// RequestId sets the optional parameter "requestId": An optional
147208// request ID to identify requests. Specify a unique request ID so that
147209// if you must retry your request, the server will know to ignore the
147210// request if it has already been completed.
147211//
147212// For example, consider a situation where you make an initial request
147213// and the request times out. If you make the request again with the
147214// same request ID, the server can check if original operation with the
147215// same request ID was received, and if so, will ignore the second
147216// request. This prevents clients from accidentally creating duplicate
147217// commitments.
147218//
147219// The request ID must be a valid UUID with the exception that zero UUID
147220// is not supported (00000000-0000-0000-0000-000000000000).
147221func (c *SecurityPoliciesPatchCall) RequestId(requestId string) *SecurityPoliciesPatchCall {
147222	c.urlParams_.Set("requestId", requestId)
147223	return c
147224}
147225
147226// Fields allows partial responses to be retrieved. See
147227// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
147228// for more information.
147229func (c *SecurityPoliciesPatchCall) Fields(s ...googleapi.Field) *SecurityPoliciesPatchCall {
147230	c.urlParams_.Set("fields", googleapi.CombineFields(s))
147231	return c
147232}
147233
147234// Context sets the context to be used in this call's Do method. Any
147235// pending HTTP request will be aborted if the provided context is
147236// canceled.
147237func (c *SecurityPoliciesPatchCall) Context(ctx context.Context) *SecurityPoliciesPatchCall {
147238	c.ctx_ = ctx
147239	return c
147240}
147241
147242// Header returns an http.Header that can be modified by the caller to
147243// add HTTP headers to the request.
147244func (c *SecurityPoliciesPatchCall) Header() http.Header {
147245	if c.header_ == nil {
147246		c.header_ = make(http.Header)
147247	}
147248	return c.header_
147249}
147250
147251func (c *SecurityPoliciesPatchCall) doRequest(alt string) (*http.Response, error) {
147252	reqHeaders := make(http.Header)
147253	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
147254	for k, v := range c.header_ {
147255		reqHeaders[k] = v
147256	}
147257	reqHeaders.Set("User-Agent", c.s.userAgent())
147258	var body io.Reader = nil
147259	body, err := googleapi.WithoutDataWrapper.JSONReader(c.securitypolicy)
147260	if err != nil {
147261		return nil, err
147262	}
147263	reqHeaders.Set("Content-Type", "application/json")
147264	c.urlParams_.Set("alt", alt)
147265	c.urlParams_.Set("prettyPrint", "false")
147266	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/securityPolicies/{securityPolicy}")
147267	urls += "?" + c.urlParams_.Encode()
147268	req, err := http.NewRequest("PATCH", urls, body)
147269	if err != nil {
147270		return nil, err
147271	}
147272	req.Header = reqHeaders
147273	googleapi.Expand(req.URL, map[string]string{
147274		"project":        c.project,
147275		"securityPolicy": c.securityPolicy,
147276	})
147277	return gensupport.SendRequest(c.ctx_, c.s.client, req)
147278}
147279
147280// Do executes the "compute.securityPolicies.patch" call.
147281// Exactly one of *Operation or error will be non-nil. Any non-2xx
147282// status code is an error. Response headers are in either
147283// *Operation.ServerResponse.Header or (if a response was returned at
147284// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
147285// to check whether the returned error was because
147286// http.StatusNotModified was returned.
147287func (c *SecurityPoliciesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
147288	gensupport.SetOptions(c.urlParams_, opts...)
147289	res, err := c.doRequest("json")
147290	if res != nil && res.StatusCode == http.StatusNotModified {
147291		if res.Body != nil {
147292			res.Body.Close()
147293		}
147294		return nil, &googleapi.Error{
147295			Code:   res.StatusCode,
147296			Header: res.Header,
147297		}
147298	}
147299	if err != nil {
147300		return nil, err
147301	}
147302	defer googleapi.CloseBody(res)
147303	if err := googleapi.CheckResponse(res); err != nil {
147304		return nil, err
147305	}
147306	ret := &Operation{
147307		ServerResponse: googleapi.ServerResponse{
147308			Header:         res.Header,
147309			HTTPStatusCode: res.StatusCode,
147310		},
147311	}
147312	target := &ret
147313	if err := gensupport.DecodeResponse(target, res); err != nil {
147314		return nil, err
147315	}
147316	return ret, nil
147317	// {
147318	//   "description": "Patches the specified policy with the data included in the request. (== suppress_warning http-rest-shadowed ==)",
147319	//   "httpMethod": "PATCH",
147320	//   "id": "compute.securityPolicies.patch",
147321	//   "parameterOrder": [
147322	//     "project",
147323	//     "securityPolicy"
147324	//   ],
147325	//   "parameters": {
147326	//     "project": {
147327	//       "description": "Project ID for this request.",
147328	//       "location": "path",
147329	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
147330	//       "required": true,
147331	//       "type": "string"
147332	//     },
147333	//     "requestId": {
147334	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
147335	//       "location": "query",
147336	//       "type": "string"
147337	//     },
147338	//     "securityPolicy": {
147339	//       "description": "Name of the security policy to update.",
147340	//       "location": "path",
147341	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
147342	//       "required": true,
147343	//       "type": "string"
147344	//     }
147345	//   },
147346	//   "path": "{project}/global/securityPolicies/{securityPolicy}",
147347	//   "request": {
147348	//     "$ref": "SecurityPolicy"
147349	//   },
147350	//   "response": {
147351	//     "$ref": "Operation"
147352	//   },
147353	//   "scopes": [
147354	//     "https://www.googleapis.com/auth/cloud-platform",
147355	//     "https://www.googleapis.com/auth/compute"
147356	//   ]
147357	// }
147358
147359}
147360
147361// method id "compute.securityPolicies.patchRule":
147362
147363type SecurityPoliciesPatchRuleCall struct {
147364	s                  *Service
147365	project            string
147366	securityPolicy     string
147367	securitypolicyrule *SecurityPolicyRule
147368	urlParams_         gensupport.URLParams
147369	ctx_               context.Context
147370	header_            http.Header
147371}
147372
147373// PatchRule: Patches a rule at the specified priority. (==
147374// suppress_warning http-rest-shadowed ==)
147375func (r *SecurityPoliciesService) PatchRule(project string, securityPolicy string, securitypolicyrule *SecurityPolicyRule) *SecurityPoliciesPatchRuleCall {
147376	c := &SecurityPoliciesPatchRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)}
147377	c.project = project
147378	c.securityPolicy = securityPolicy
147379	c.securitypolicyrule = securitypolicyrule
147380	return c
147381}
147382
147383// Priority sets the optional parameter "priority": The priority of the
147384// rule to patch.
147385func (c *SecurityPoliciesPatchRuleCall) Priority(priority int64) *SecurityPoliciesPatchRuleCall {
147386	c.urlParams_.Set("priority", fmt.Sprint(priority))
147387	return c
147388}
147389
147390// ValidateOnly sets the optional parameter "validateOnly": If true, the
147391// request will not be committed.
147392func (c *SecurityPoliciesPatchRuleCall) ValidateOnly(validateOnly bool) *SecurityPoliciesPatchRuleCall {
147393	c.urlParams_.Set("validateOnly", fmt.Sprint(validateOnly))
147394	return c
147395}
147396
147397// Fields allows partial responses to be retrieved. See
147398// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
147399// for more information.
147400func (c *SecurityPoliciesPatchRuleCall) Fields(s ...googleapi.Field) *SecurityPoliciesPatchRuleCall {
147401	c.urlParams_.Set("fields", googleapi.CombineFields(s))
147402	return c
147403}
147404
147405// Context sets the context to be used in this call's Do method. Any
147406// pending HTTP request will be aborted if the provided context is
147407// canceled.
147408func (c *SecurityPoliciesPatchRuleCall) Context(ctx context.Context) *SecurityPoliciesPatchRuleCall {
147409	c.ctx_ = ctx
147410	return c
147411}
147412
147413// Header returns an http.Header that can be modified by the caller to
147414// add HTTP headers to the request.
147415func (c *SecurityPoliciesPatchRuleCall) Header() http.Header {
147416	if c.header_ == nil {
147417		c.header_ = make(http.Header)
147418	}
147419	return c.header_
147420}
147421
147422func (c *SecurityPoliciesPatchRuleCall) doRequest(alt string) (*http.Response, error) {
147423	reqHeaders := make(http.Header)
147424	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
147425	for k, v := range c.header_ {
147426		reqHeaders[k] = v
147427	}
147428	reqHeaders.Set("User-Agent", c.s.userAgent())
147429	var body io.Reader = nil
147430	body, err := googleapi.WithoutDataWrapper.JSONReader(c.securitypolicyrule)
147431	if err != nil {
147432		return nil, err
147433	}
147434	reqHeaders.Set("Content-Type", "application/json")
147435	c.urlParams_.Set("alt", alt)
147436	c.urlParams_.Set("prettyPrint", "false")
147437	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/securityPolicies/{securityPolicy}/patchRule")
147438	urls += "?" + c.urlParams_.Encode()
147439	req, err := http.NewRequest("POST", urls, body)
147440	if err != nil {
147441		return nil, err
147442	}
147443	req.Header = reqHeaders
147444	googleapi.Expand(req.URL, map[string]string{
147445		"project":        c.project,
147446		"securityPolicy": c.securityPolicy,
147447	})
147448	return gensupport.SendRequest(c.ctx_, c.s.client, req)
147449}
147450
147451// Do executes the "compute.securityPolicies.patchRule" call.
147452// Exactly one of *Operation or error will be non-nil. Any non-2xx
147453// status code is an error. Response headers are in either
147454// *Operation.ServerResponse.Header or (if a response was returned at
147455// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
147456// to check whether the returned error was because
147457// http.StatusNotModified was returned.
147458func (c *SecurityPoliciesPatchRuleCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
147459	gensupport.SetOptions(c.urlParams_, opts...)
147460	res, err := c.doRequest("json")
147461	if res != nil && res.StatusCode == http.StatusNotModified {
147462		if res.Body != nil {
147463			res.Body.Close()
147464		}
147465		return nil, &googleapi.Error{
147466			Code:   res.StatusCode,
147467			Header: res.Header,
147468		}
147469	}
147470	if err != nil {
147471		return nil, err
147472	}
147473	defer googleapi.CloseBody(res)
147474	if err := googleapi.CheckResponse(res); err != nil {
147475		return nil, err
147476	}
147477	ret := &Operation{
147478		ServerResponse: googleapi.ServerResponse{
147479			Header:         res.Header,
147480			HTTPStatusCode: res.StatusCode,
147481		},
147482	}
147483	target := &ret
147484	if err := gensupport.DecodeResponse(target, res); err != nil {
147485		return nil, err
147486	}
147487	return ret, nil
147488	// {
147489	//   "description": "Patches a rule at the specified priority. (== suppress_warning http-rest-shadowed ==)",
147490	//   "httpMethod": "POST",
147491	//   "id": "compute.securityPolicies.patchRule",
147492	//   "parameterOrder": [
147493	//     "project",
147494	//     "securityPolicy"
147495	//   ],
147496	//   "parameters": {
147497	//     "priority": {
147498	//       "description": "The priority of the rule to patch.",
147499	//       "format": "int32",
147500	//       "location": "query",
147501	//       "type": "integer"
147502	//     },
147503	//     "project": {
147504	//       "description": "Project ID for this request.",
147505	//       "location": "path",
147506	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
147507	//       "required": true,
147508	//       "type": "string"
147509	//     },
147510	//     "securityPolicy": {
147511	//       "description": "Name of the security policy to update.",
147512	//       "location": "path",
147513	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
147514	//       "required": true,
147515	//       "type": "string"
147516	//     },
147517	//     "validateOnly": {
147518	//       "description": "If true, the request will not be committed.",
147519	//       "location": "query",
147520	//       "type": "boolean"
147521	//     }
147522	//   },
147523	//   "path": "{project}/global/securityPolicies/{securityPolicy}/patchRule",
147524	//   "request": {
147525	//     "$ref": "SecurityPolicyRule"
147526	//   },
147527	//   "response": {
147528	//     "$ref": "Operation"
147529	//   },
147530	//   "scopes": [
147531	//     "https://www.googleapis.com/auth/cloud-platform",
147532	//     "https://www.googleapis.com/auth/compute"
147533	//   ]
147534	// }
147535
147536}
147537
147538// method id "compute.securityPolicies.removeRule":
147539
147540type SecurityPoliciesRemoveRuleCall struct {
147541	s              *Service
147542	project        string
147543	securityPolicy string
147544	urlParams_     gensupport.URLParams
147545	ctx_           context.Context
147546	header_        http.Header
147547}
147548
147549// RemoveRule: Deletes a rule at the specified priority. (==
147550// suppress_warning http-rest-shadowed ==)
147551func (r *SecurityPoliciesService) RemoveRule(project string, securityPolicy string) *SecurityPoliciesRemoveRuleCall {
147552	c := &SecurityPoliciesRemoveRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)}
147553	c.project = project
147554	c.securityPolicy = securityPolicy
147555	return c
147556}
147557
147558// Priority sets the optional parameter "priority": The priority of the
147559// rule to remove from the security policy.
147560func (c *SecurityPoliciesRemoveRuleCall) Priority(priority int64) *SecurityPoliciesRemoveRuleCall {
147561	c.urlParams_.Set("priority", fmt.Sprint(priority))
147562	return c
147563}
147564
147565// Fields allows partial responses to be retrieved. See
147566// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
147567// for more information.
147568func (c *SecurityPoliciesRemoveRuleCall) Fields(s ...googleapi.Field) *SecurityPoliciesRemoveRuleCall {
147569	c.urlParams_.Set("fields", googleapi.CombineFields(s))
147570	return c
147571}
147572
147573// Context sets the context to be used in this call's Do method. Any
147574// pending HTTP request will be aborted if the provided context is
147575// canceled.
147576func (c *SecurityPoliciesRemoveRuleCall) Context(ctx context.Context) *SecurityPoliciesRemoveRuleCall {
147577	c.ctx_ = ctx
147578	return c
147579}
147580
147581// Header returns an http.Header that can be modified by the caller to
147582// add HTTP headers to the request.
147583func (c *SecurityPoliciesRemoveRuleCall) Header() http.Header {
147584	if c.header_ == nil {
147585		c.header_ = make(http.Header)
147586	}
147587	return c.header_
147588}
147589
147590func (c *SecurityPoliciesRemoveRuleCall) doRequest(alt string) (*http.Response, error) {
147591	reqHeaders := make(http.Header)
147592	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
147593	for k, v := range c.header_ {
147594		reqHeaders[k] = v
147595	}
147596	reqHeaders.Set("User-Agent", c.s.userAgent())
147597	var body io.Reader = nil
147598	c.urlParams_.Set("alt", alt)
147599	c.urlParams_.Set("prettyPrint", "false")
147600	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/securityPolicies/{securityPolicy}/removeRule")
147601	urls += "?" + c.urlParams_.Encode()
147602	req, err := http.NewRequest("POST", urls, body)
147603	if err != nil {
147604		return nil, err
147605	}
147606	req.Header = reqHeaders
147607	googleapi.Expand(req.URL, map[string]string{
147608		"project":        c.project,
147609		"securityPolicy": c.securityPolicy,
147610	})
147611	return gensupport.SendRequest(c.ctx_, c.s.client, req)
147612}
147613
147614// Do executes the "compute.securityPolicies.removeRule" call.
147615// Exactly one of *Operation or error will be non-nil. Any non-2xx
147616// status code is an error. Response headers are in either
147617// *Operation.ServerResponse.Header or (if a response was returned at
147618// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
147619// to check whether the returned error was because
147620// http.StatusNotModified was returned.
147621func (c *SecurityPoliciesRemoveRuleCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
147622	gensupport.SetOptions(c.urlParams_, opts...)
147623	res, err := c.doRequest("json")
147624	if res != nil && res.StatusCode == http.StatusNotModified {
147625		if res.Body != nil {
147626			res.Body.Close()
147627		}
147628		return nil, &googleapi.Error{
147629			Code:   res.StatusCode,
147630			Header: res.Header,
147631		}
147632	}
147633	if err != nil {
147634		return nil, err
147635	}
147636	defer googleapi.CloseBody(res)
147637	if err := googleapi.CheckResponse(res); err != nil {
147638		return nil, err
147639	}
147640	ret := &Operation{
147641		ServerResponse: googleapi.ServerResponse{
147642			Header:         res.Header,
147643			HTTPStatusCode: res.StatusCode,
147644		},
147645	}
147646	target := &ret
147647	if err := gensupport.DecodeResponse(target, res); err != nil {
147648		return nil, err
147649	}
147650	return ret, nil
147651	// {
147652	//   "description": "Deletes a rule at the specified priority. (== suppress_warning http-rest-shadowed ==)",
147653	//   "httpMethod": "POST",
147654	//   "id": "compute.securityPolicies.removeRule",
147655	//   "parameterOrder": [
147656	//     "project",
147657	//     "securityPolicy"
147658	//   ],
147659	//   "parameters": {
147660	//     "priority": {
147661	//       "description": "The priority of the rule to remove from the security policy.",
147662	//       "format": "int32",
147663	//       "location": "query",
147664	//       "type": "integer"
147665	//     },
147666	//     "project": {
147667	//       "description": "Project ID for this request.",
147668	//       "location": "path",
147669	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
147670	//       "required": true,
147671	//       "type": "string"
147672	//     },
147673	//     "securityPolicy": {
147674	//       "description": "Name of the security policy to update.",
147675	//       "location": "path",
147676	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
147677	//       "required": true,
147678	//       "type": "string"
147679	//     }
147680	//   },
147681	//   "path": "{project}/global/securityPolicies/{securityPolicy}/removeRule",
147682	//   "response": {
147683	//     "$ref": "Operation"
147684	//   },
147685	//   "scopes": [
147686	//     "https://www.googleapis.com/auth/cloud-platform",
147687	//     "https://www.googleapis.com/auth/compute"
147688	//   ]
147689	// }
147690
147691}
147692
147693// method id "compute.securityPolicies.setLabels":
147694
147695type SecurityPoliciesSetLabelsCall struct {
147696	s                      *Service
147697	project                string
147698	resource               string
147699	globalsetlabelsrequest *GlobalSetLabelsRequest
147700	urlParams_             gensupport.URLParams
147701	ctx_                   context.Context
147702	header_                http.Header
147703}
147704
147705// SetLabels: Sets the labels on a security policy. To learn more about
147706// labels, read the Labeling Resources documentation. (==
147707// suppress_warning http-rest-shadowed ==)
147708func (r *SecurityPoliciesService) SetLabels(project string, resource string, globalsetlabelsrequest *GlobalSetLabelsRequest) *SecurityPoliciesSetLabelsCall {
147709	c := &SecurityPoliciesSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
147710	c.project = project
147711	c.resource = resource
147712	c.globalsetlabelsrequest = globalsetlabelsrequest
147713	return c
147714}
147715
147716// Fields allows partial responses to be retrieved. See
147717// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
147718// for more information.
147719func (c *SecurityPoliciesSetLabelsCall) Fields(s ...googleapi.Field) *SecurityPoliciesSetLabelsCall {
147720	c.urlParams_.Set("fields", googleapi.CombineFields(s))
147721	return c
147722}
147723
147724// Context sets the context to be used in this call's Do method. Any
147725// pending HTTP request will be aborted if the provided context is
147726// canceled.
147727func (c *SecurityPoliciesSetLabelsCall) Context(ctx context.Context) *SecurityPoliciesSetLabelsCall {
147728	c.ctx_ = ctx
147729	return c
147730}
147731
147732// Header returns an http.Header that can be modified by the caller to
147733// add HTTP headers to the request.
147734func (c *SecurityPoliciesSetLabelsCall) Header() http.Header {
147735	if c.header_ == nil {
147736		c.header_ = make(http.Header)
147737	}
147738	return c.header_
147739}
147740
147741func (c *SecurityPoliciesSetLabelsCall) doRequest(alt string) (*http.Response, error) {
147742	reqHeaders := make(http.Header)
147743	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
147744	for k, v := range c.header_ {
147745		reqHeaders[k] = v
147746	}
147747	reqHeaders.Set("User-Agent", c.s.userAgent())
147748	var body io.Reader = nil
147749	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetlabelsrequest)
147750	if err != nil {
147751		return nil, err
147752	}
147753	reqHeaders.Set("Content-Type", "application/json")
147754	c.urlParams_.Set("alt", alt)
147755	c.urlParams_.Set("prettyPrint", "false")
147756	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/securityPolicies/{resource}/setLabels")
147757	urls += "?" + c.urlParams_.Encode()
147758	req, err := http.NewRequest("POST", urls, body)
147759	if err != nil {
147760		return nil, err
147761	}
147762	req.Header = reqHeaders
147763	googleapi.Expand(req.URL, map[string]string{
147764		"project":  c.project,
147765		"resource": c.resource,
147766	})
147767	return gensupport.SendRequest(c.ctx_, c.s.client, req)
147768}
147769
147770// Do executes the "compute.securityPolicies.setLabels" call.
147771// Exactly one of *Operation or error will be non-nil. Any non-2xx
147772// status code is an error. Response headers are in either
147773// *Operation.ServerResponse.Header or (if a response was returned at
147774// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
147775// to check whether the returned error was because
147776// http.StatusNotModified was returned.
147777func (c *SecurityPoliciesSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
147778	gensupport.SetOptions(c.urlParams_, opts...)
147779	res, err := c.doRequest("json")
147780	if res != nil && res.StatusCode == http.StatusNotModified {
147781		if res.Body != nil {
147782			res.Body.Close()
147783		}
147784		return nil, &googleapi.Error{
147785			Code:   res.StatusCode,
147786			Header: res.Header,
147787		}
147788	}
147789	if err != nil {
147790		return nil, err
147791	}
147792	defer googleapi.CloseBody(res)
147793	if err := googleapi.CheckResponse(res); err != nil {
147794		return nil, err
147795	}
147796	ret := &Operation{
147797		ServerResponse: googleapi.ServerResponse{
147798			Header:         res.Header,
147799			HTTPStatusCode: res.StatusCode,
147800		},
147801	}
147802	target := &ret
147803	if err := gensupport.DecodeResponse(target, res); err != nil {
147804		return nil, err
147805	}
147806	return ret, nil
147807	// {
147808	//   "description": "Sets the labels on a security policy. To learn more about labels, read the Labeling Resources documentation. (== suppress_warning http-rest-shadowed ==)",
147809	//   "httpMethod": "POST",
147810	//   "id": "compute.securityPolicies.setLabels",
147811	//   "parameterOrder": [
147812	//     "project",
147813	//     "resource"
147814	//   ],
147815	//   "parameters": {
147816	//     "project": {
147817	//       "description": "Project ID for this request.",
147818	//       "location": "path",
147819	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
147820	//       "required": true,
147821	//       "type": "string"
147822	//     },
147823	//     "resource": {
147824	//       "description": "Name or id of the resource for this request.",
147825	//       "location": "path",
147826	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
147827	//       "required": true,
147828	//       "type": "string"
147829	//     }
147830	//   },
147831	//   "path": "{project}/global/securityPolicies/{resource}/setLabels",
147832	//   "request": {
147833	//     "$ref": "GlobalSetLabelsRequest"
147834	//   },
147835	//   "response": {
147836	//     "$ref": "Operation"
147837	//   },
147838	//   "scopes": [
147839	//     "https://www.googleapis.com/auth/cloud-platform",
147840	//     "https://www.googleapis.com/auth/compute"
147841	//   ]
147842	// }
147843
147844}
147845
147846// method id "compute.securityPolicies.testIamPermissions":
147847
147848type SecurityPoliciesTestIamPermissionsCall struct {
147849	s                      *Service
147850	project                string
147851	resource               string
147852	testpermissionsrequest *TestPermissionsRequest
147853	urlParams_             gensupport.URLParams
147854	ctx_                   context.Context
147855	header_                http.Header
147856}
147857
147858// TestIamPermissions: Returns permissions that a caller has on the
147859// specified resource. (== suppress_warning http-rest-shadowed ==)
147860func (r *SecurityPoliciesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *SecurityPoliciesTestIamPermissionsCall {
147861	c := &SecurityPoliciesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
147862	c.project = project
147863	c.resource = resource
147864	c.testpermissionsrequest = testpermissionsrequest
147865	return c
147866}
147867
147868// Fields allows partial responses to be retrieved. See
147869// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
147870// for more information.
147871func (c *SecurityPoliciesTestIamPermissionsCall) Fields(s ...googleapi.Field) *SecurityPoliciesTestIamPermissionsCall {
147872	c.urlParams_.Set("fields", googleapi.CombineFields(s))
147873	return c
147874}
147875
147876// Context sets the context to be used in this call's Do method. Any
147877// pending HTTP request will be aborted if the provided context is
147878// canceled.
147879func (c *SecurityPoliciesTestIamPermissionsCall) Context(ctx context.Context) *SecurityPoliciesTestIamPermissionsCall {
147880	c.ctx_ = ctx
147881	return c
147882}
147883
147884// Header returns an http.Header that can be modified by the caller to
147885// add HTTP headers to the request.
147886func (c *SecurityPoliciesTestIamPermissionsCall) Header() http.Header {
147887	if c.header_ == nil {
147888		c.header_ = make(http.Header)
147889	}
147890	return c.header_
147891}
147892
147893func (c *SecurityPoliciesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
147894	reqHeaders := make(http.Header)
147895	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
147896	for k, v := range c.header_ {
147897		reqHeaders[k] = v
147898	}
147899	reqHeaders.Set("User-Agent", c.s.userAgent())
147900	var body io.Reader = nil
147901	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
147902	if err != nil {
147903		return nil, err
147904	}
147905	reqHeaders.Set("Content-Type", "application/json")
147906	c.urlParams_.Set("alt", alt)
147907	c.urlParams_.Set("prettyPrint", "false")
147908	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/securityPolicies/{resource}/testIamPermissions")
147909	urls += "?" + c.urlParams_.Encode()
147910	req, err := http.NewRequest("POST", urls, body)
147911	if err != nil {
147912		return nil, err
147913	}
147914	req.Header = reqHeaders
147915	googleapi.Expand(req.URL, map[string]string{
147916		"project":  c.project,
147917		"resource": c.resource,
147918	})
147919	return gensupport.SendRequest(c.ctx_, c.s.client, req)
147920}
147921
147922// Do executes the "compute.securityPolicies.testIamPermissions" call.
147923// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
147924// non-2xx status code is an error. Response headers are in either
147925// *TestPermissionsResponse.ServerResponse.Header or (if a response was
147926// returned at all) in error.(*googleapi.Error).Header. Use
147927// googleapi.IsNotModified to check whether the returned error was
147928// because http.StatusNotModified was returned.
147929func (c *SecurityPoliciesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
147930	gensupport.SetOptions(c.urlParams_, opts...)
147931	res, err := c.doRequest("json")
147932	if res != nil && res.StatusCode == http.StatusNotModified {
147933		if res.Body != nil {
147934			res.Body.Close()
147935		}
147936		return nil, &googleapi.Error{
147937			Code:   res.StatusCode,
147938			Header: res.Header,
147939		}
147940	}
147941	if err != nil {
147942		return nil, err
147943	}
147944	defer googleapi.CloseBody(res)
147945	if err := googleapi.CheckResponse(res); err != nil {
147946		return nil, err
147947	}
147948	ret := &TestPermissionsResponse{
147949		ServerResponse: googleapi.ServerResponse{
147950			Header:         res.Header,
147951			HTTPStatusCode: res.StatusCode,
147952		},
147953	}
147954	target := &ret
147955	if err := gensupport.DecodeResponse(target, res); err != nil {
147956		return nil, err
147957	}
147958	return ret, nil
147959	// {
147960	//   "description": "Returns permissions that a caller has on the specified resource. (== suppress_warning http-rest-shadowed ==)",
147961	//   "httpMethod": "POST",
147962	//   "id": "compute.securityPolicies.testIamPermissions",
147963	//   "parameterOrder": [
147964	//     "project",
147965	//     "resource"
147966	//   ],
147967	//   "parameters": {
147968	//     "project": {
147969	//       "description": "Project ID for this request.",
147970	//       "location": "path",
147971	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
147972	//       "required": true,
147973	//       "type": "string"
147974	//     },
147975	//     "resource": {
147976	//       "description": "Name or id of the resource for this request.",
147977	//       "location": "path",
147978	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
147979	//       "required": true,
147980	//       "type": "string"
147981	//     }
147982	//   },
147983	//   "path": "{project}/global/securityPolicies/{resource}/testIamPermissions",
147984	//   "request": {
147985	//     "$ref": "TestPermissionsRequest"
147986	//   },
147987	//   "response": {
147988	//     "$ref": "TestPermissionsResponse"
147989	//   },
147990	//   "scopes": [
147991	//     "https://www.googleapis.com/auth/cloud-platform",
147992	//     "https://www.googleapis.com/auth/compute",
147993	//     "https://www.googleapis.com/auth/compute.readonly"
147994	//   ]
147995	// }
147996
147997}
147998
147999// method id "compute.snapshots.delete":
148000
148001type SnapshotsDeleteCall struct {
148002	s          *Service
148003	project    string
148004	snapshot   string
148005	urlParams_ gensupport.URLParams
148006	ctx_       context.Context
148007	header_    http.Header
148008}
148009
148010// Delete: Deletes the specified Snapshot resource. Keep in mind that
148011// deleting a single snapshot might not necessarily delete all the data
148012// on that snapshot. If any data on the snapshot that is marked for
148013// deletion is needed for subsequent snapshots, the data will be moved
148014// to the next corresponding snapshot.
148015//
148016// For more information, see Deleting snapshots. (== suppress_warning
148017// http-rest-shadowed ==)
148018// For details, see https://cloud.google.com/compute/docs/reference/latest/snapshots/delete
148019func (r *SnapshotsService) Delete(project string, snapshot string) *SnapshotsDeleteCall {
148020	c := &SnapshotsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
148021	c.project = project
148022	c.snapshot = snapshot
148023	return c
148024}
148025
148026// RequestId sets the optional parameter "requestId": An optional
148027// request ID to identify requests. Specify a unique request ID so that
148028// if you must retry your request, the server will know to ignore the
148029// request if it has already been completed.
148030//
148031// For example, consider a situation where you make an initial request
148032// and the request times out. If you make the request again with the
148033// same request ID, the server can check if original operation with the
148034// same request ID was received, and if so, will ignore the second
148035// request. This prevents clients from accidentally creating duplicate
148036// commitments.
148037//
148038// The request ID must be a valid UUID with the exception that zero UUID
148039// is not supported (00000000-0000-0000-0000-000000000000).
148040func (c *SnapshotsDeleteCall) RequestId(requestId string) *SnapshotsDeleteCall {
148041	c.urlParams_.Set("requestId", requestId)
148042	return c
148043}
148044
148045// Fields allows partial responses to be retrieved. See
148046// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
148047// for more information.
148048func (c *SnapshotsDeleteCall) Fields(s ...googleapi.Field) *SnapshotsDeleteCall {
148049	c.urlParams_.Set("fields", googleapi.CombineFields(s))
148050	return c
148051}
148052
148053// Context sets the context to be used in this call's Do method. Any
148054// pending HTTP request will be aborted if the provided context is
148055// canceled.
148056func (c *SnapshotsDeleteCall) Context(ctx context.Context) *SnapshotsDeleteCall {
148057	c.ctx_ = ctx
148058	return c
148059}
148060
148061// Header returns an http.Header that can be modified by the caller to
148062// add HTTP headers to the request.
148063func (c *SnapshotsDeleteCall) Header() http.Header {
148064	if c.header_ == nil {
148065		c.header_ = make(http.Header)
148066	}
148067	return c.header_
148068}
148069
148070func (c *SnapshotsDeleteCall) doRequest(alt string) (*http.Response, error) {
148071	reqHeaders := make(http.Header)
148072	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
148073	for k, v := range c.header_ {
148074		reqHeaders[k] = v
148075	}
148076	reqHeaders.Set("User-Agent", c.s.userAgent())
148077	var body io.Reader = nil
148078	c.urlParams_.Set("alt", alt)
148079	c.urlParams_.Set("prettyPrint", "false")
148080	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/snapshots/{snapshot}")
148081	urls += "?" + c.urlParams_.Encode()
148082	req, err := http.NewRequest("DELETE", urls, body)
148083	if err != nil {
148084		return nil, err
148085	}
148086	req.Header = reqHeaders
148087	googleapi.Expand(req.URL, map[string]string{
148088		"project":  c.project,
148089		"snapshot": c.snapshot,
148090	})
148091	return gensupport.SendRequest(c.ctx_, c.s.client, req)
148092}
148093
148094// Do executes the "compute.snapshots.delete" call.
148095// Exactly one of *Operation or error will be non-nil. Any non-2xx
148096// status code is an error. Response headers are in either
148097// *Operation.ServerResponse.Header or (if a response was returned at
148098// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
148099// to check whether the returned error was because
148100// http.StatusNotModified was returned.
148101func (c *SnapshotsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
148102	gensupport.SetOptions(c.urlParams_, opts...)
148103	res, err := c.doRequest("json")
148104	if res != nil && res.StatusCode == http.StatusNotModified {
148105		if res.Body != nil {
148106			res.Body.Close()
148107		}
148108		return nil, &googleapi.Error{
148109			Code:   res.StatusCode,
148110			Header: res.Header,
148111		}
148112	}
148113	if err != nil {
148114		return nil, err
148115	}
148116	defer googleapi.CloseBody(res)
148117	if err := googleapi.CheckResponse(res); err != nil {
148118		return nil, err
148119	}
148120	ret := &Operation{
148121		ServerResponse: googleapi.ServerResponse{
148122			Header:         res.Header,
148123			HTTPStatusCode: res.StatusCode,
148124		},
148125	}
148126	target := &ret
148127	if err := gensupport.DecodeResponse(target, res); err != nil {
148128		return nil, err
148129	}
148130	return ret, nil
148131	// {
148132	//   "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. (== suppress_warning http-rest-shadowed ==)",
148133	//   "httpMethod": "DELETE",
148134	//   "id": "compute.snapshots.delete",
148135	//   "parameterOrder": [
148136	//     "project",
148137	//     "snapshot"
148138	//   ],
148139	//   "parameters": {
148140	//     "project": {
148141	//       "description": "Project ID for this request.",
148142	//       "location": "path",
148143	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
148144	//       "required": true,
148145	//       "type": "string"
148146	//     },
148147	//     "requestId": {
148148	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
148149	//       "location": "query",
148150	//       "type": "string"
148151	//     },
148152	//     "snapshot": {
148153	//       "description": "Name of the Snapshot resource to delete.",
148154	//       "location": "path",
148155	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
148156	//       "required": true,
148157	//       "type": "string"
148158	//     }
148159	//   },
148160	//   "path": "{project}/global/snapshots/{snapshot}",
148161	//   "response": {
148162	//     "$ref": "Operation"
148163	//   },
148164	//   "scopes": [
148165	//     "https://www.googleapis.com/auth/cloud-platform",
148166	//     "https://www.googleapis.com/auth/compute"
148167	//   ]
148168	// }
148169
148170}
148171
148172// method id "compute.snapshots.get":
148173
148174type SnapshotsGetCall struct {
148175	s            *Service
148176	project      string
148177	snapshot     string
148178	urlParams_   gensupport.URLParams
148179	ifNoneMatch_ string
148180	ctx_         context.Context
148181	header_      http.Header
148182}
148183
148184// Get: Returns the specified Snapshot resource. Gets a list of
148185// available snapshots by making a list() request. (== suppress_warning
148186// http-rest-shadowed ==)
148187// For details, see https://cloud.google.com/compute/docs/reference/latest/snapshots/get
148188func (r *SnapshotsService) Get(project string, snapshot string) *SnapshotsGetCall {
148189	c := &SnapshotsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
148190	c.project = project
148191	c.snapshot = snapshot
148192	return c
148193}
148194
148195// Fields allows partial responses to be retrieved. See
148196// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
148197// for more information.
148198func (c *SnapshotsGetCall) Fields(s ...googleapi.Field) *SnapshotsGetCall {
148199	c.urlParams_.Set("fields", googleapi.CombineFields(s))
148200	return c
148201}
148202
148203// IfNoneMatch sets the optional parameter which makes the operation
148204// fail if the object's ETag matches the given value. This is useful for
148205// getting updates only after the object has changed since the last
148206// request. Use googleapi.IsNotModified to check whether the response
148207// error from Do is the result of In-None-Match.
148208func (c *SnapshotsGetCall) IfNoneMatch(entityTag string) *SnapshotsGetCall {
148209	c.ifNoneMatch_ = entityTag
148210	return c
148211}
148212
148213// Context sets the context to be used in this call's Do method. Any
148214// pending HTTP request will be aborted if the provided context is
148215// canceled.
148216func (c *SnapshotsGetCall) Context(ctx context.Context) *SnapshotsGetCall {
148217	c.ctx_ = ctx
148218	return c
148219}
148220
148221// Header returns an http.Header that can be modified by the caller to
148222// add HTTP headers to the request.
148223func (c *SnapshotsGetCall) Header() http.Header {
148224	if c.header_ == nil {
148225		c.header_ = make(http.Header)
148226	}
148227	return c.header_
148228}
148229
148230func (c *SnapshotsGetCall) doRequest(alt string) (*http.Response, error) {
148231	reqHeaders := make(http.Header)
148232	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
148233	for k, v := range c.header_ {
148234		reqHeaders[k] = v
148235	}
148236	reqHeaders.Set("User-Agent", c.s.userAgent())
148237	if c.ifNoneMatch_ != "" {
148238		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
148239	}
148240	var body io.Reader = nil
148241	c.urlParams_.Set("alt", alt)
148242	c.urlParams_.Set("prettyPrint", "false")
148243	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/snapshots/{snapshot}")
148244	urls += "?" + c.urlParams_.Encode()
148245	req, err := http.NewRequest("GET", urls, body)
148246	if err != nil {
148247		return nil, err
148248	}
148249	req.Header = reqHeaders
148250	googleapi.Expand(req.URL, map[string]string{
148251		"project":  c.project,
148252		"snapshot": c.snapshot,
148253	})
148254	return gensupport.SendRequest(c.ctx_, c.s.client, req)
148255}
148256
148257// Do executes the "compute.snapshots.get" call.
148258// Exactly one of *Snapshot or error will be non-nil. Any non-2xx status
148259// code is an error. Response headers are in either
148260// *Snapshot.ServerResponse.Header or (if a response was returned at
148261// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
148262// to check whether the returned error was because
148263// http.StatusNotModified was returned.
148264func (c *SnapshotsGetCall) Do(opts ...googleapi.CallOption) (*Snapshot, error) {
148265	gensupport.SetOptions(c.urlParams_, opts...)
148266	res, err := c.doRequest("json")
148267	if res != nil && res.StatusCode == http.StatusNotModified {
148268		if res.Body != nil {
148269			res.Body.Close()
148270		}
148271		return nil, &googleapi.Error{
148272			Code:   res.StatusCode,
148273			Header: res.Header,
148274		}
148275	}
148276	if err != nil {
148277		return nil, err
148278	}
148279	defer googleapi.CloseBody(res)
148280	if err := googleapi.CheckResponse(res); err != nil {
148281		return nil, err
148282	}
148283	ret := &Snapshot{
148284		ServerResponse: googleapi.ServerResponse{
148285			Header:         res.Header,
148286			HTTPStatusCode: res.StatusCode,
148287		},
148288	}
148289	target := &ret
148290	if err := gensupport.DecodeResponse(target, res); err != nil {
148291		return nil, err
148292	}
148293	return ret, nil
148294	// {
148295	//   "description": "Returns the specified Snapshot resource. Gets a list of available snapshots by making a list() request. (== suppress_warning http-rest-shadowed ==)",
148296	//   "httpMethod": "GET",
148297	//   "id": "compute.snapshots.get",
148298	//   "parameterOrder": [
148299	//     "project",
148300	//     "snapshot"
148301	//   ],
148302	//   "parameters": {
148303	//     "project": {
148304	//       "description": "Project ID for this request.",
148305	//       "location": "path",
148306	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
148307	//       "required": true,
148308	//       "type": "string"
148309	//     },
148310	//     "snapshot": {
148311	//       "description": "Name of the Snapshot resource to return.",
148312	//       "location": "path",
148313	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
148314	//       "required": true,
148315	//       "type": "string"
148316	//     }
148317	//   },
148318	//   "path": "{project}/global/snapshots/{snapshot}",
148319	//   "response": {
148320	//     "$ref": "Snapshot"
148321	//   },
148322	//   "scopes": [
148323	//     "https://www.googleapis.com/auth/cloud-platform",
148324	//     "https://www.googleapis.com/auth/compute",
148325	//     "https://www.googleapis.com/auth/compute.readonly"
148326	//   ]
148327	// }
148328
148329}
148330
148331// method id "compute.snapshots.getIamPolicy":
148332
148333type SnapshotsGetIamPolicyCall struct {
148334	s            *Service
148335	project      string
148336	resource     string
148337	urlParams_   gensupport.URLParams
148338	ifNoneMatch_ string
148339	ctx_         context.Context
148340	header_      http.Header
148341}
148342
148343// GetIamPolicy: Gets the access control policy for a resource. May be
148344// empty if no such policy or resource exists. (== suppress_warning
148345// http-rest-shadowed ==)
148346func (r *SnapshotsService) GetIamPolicy(project string, resource string) *SnapshotsGetIamPolicyCall {
148347	c := &SnapshotsGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
148348	c.project = project
148349	c.resource = resource
148350	return c
148351}
148352
148353// OptionsRequestedPolicyVersion sets the optional parameter
148354// "optionsRequestedPolicyVersion": Requested IAM Policy version.
148355func (c *SnapshotsGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *SnapshotsGetIamPolicyCall {
148356	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
148357	return c
148358}
148359
148360// Fields allows partial responses to be retrieved. See
148361// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
148362// for more information.
148363func (c *SnapshotsGetIamPolicyCall) Fields(s ...googleapi.Field) *SnapshotsGetIamPolicyCall {
148364	c.urlParams_.Set("fields", googleapi.CombineFields(s))
148365	return c
148366}
148367
148368// IfNoneMatch sets the optional parameter which makes the operation
148369// fail if the object's ETag matches the given value. This is useful for
148370// getting updates only after the object has changed since the last
148371// request. Use googleapi.IsNotModified to check whether the response
148372// error from Do is the result of In-None-Match.
148373func (c *SnapshotsGetIamPolicyCall) IfNoneMatch(entityTag string) *SnapshotsGetIamPolicyCall {
148374	c.ifNoneMatch_ = entityTag
148375	return c
148376}
148377
148378// Context sets the context to be used in this call's Do method. Any
148379// pending HTTP request will be aborted if the provided context is
148380// canceled.
148381func (c *SnapshotsGetIamPolicyCall) Context(ctx context.Context) *SnapshotsGetIamPolicyCall {
148382	c.ctx_ = ctx
148383	return c
148384}
148385
148386// Header returns an http.Header that can be modified by the caller to
148387// add HTTP headers to the request.
148388func (c *SnapshotsGetIamPolicyCall) Header() http.Header {
148389	if c.header_ == nil {
148390		c.header_ = make(http.Header)
148391	}
148392	return c.header_
148393}
148394
148395func (c *SnapshotsGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
148396	reqHeaders := make(http.Header)
148397	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
148398	for k, v := range c.header_ {
148399		reqHeaders[k] = v
148400	}
148401	reqHeaders.Set("User-Agent", c.s.userAgent())
148402	if c.ifNoneMatch_ != "" {
148403		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
148404	}
148405	var body io.Reader = nil
148406	c.urlParams_.Set("alt", alt)
148407	c.urlParams_.Set("prettyPrint", "false")
148408	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/snapshots/{resource}/getIamPolicy")
148409	urls += "?" + c.urlParams_.Encode()
148410	req, err := http.NewRequest("GET", urls, body)
148411	if err != nil {
148412		return nil, err
148413	}
148414	req.Header = reqHeaders
148415	googleapi.Expand(req.URL, map[string]string{
148416		"project":  c.project,
148417		"resource": c.resource,
148418	})
148419	return gensupport.SendRequest(c.ctx_, c.s.client, req)
148420}
148421
148422// Do executes the "compute.snapshots.getIamPolicy" call.
148423// Exactly one of *Policy or error will be non-nil. Any non-2xx status
148424// code is an error. Response headers are in either
148425// *Policy.ServerResponse.Header or (if a response was returned at all)
148426// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
148427// check whether the returned error was because http.StatusNotModified
148428// was returned.
148429func (c *SnapshotsGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
148430	gensupport.SetOptions(c.urlParams_, opts...)
148431	res, err := c.doRequest("json")
148432	if res != nil && res.StatusCode == http.StatusNotModified {
148433		if res.Body != nil {
148434			res.Body.Close()
148435		}
148436		return nil, &googleapi.Error{
148437			Code:   res.StatusCode,
148438			Header: res.Header,
148439		}
148440	}
148441	if err != nil {
148442		return nil, err
148443	}
148444	defer googleapi.CloseBody(res)
148445	if err := googleapi.CheckResponse(res); err != nil {
148446		return nil, err
148447	}
148448	ret := &Policy{
148449		ServerResponse: googleapi.ServerResponse{
148450			Header:         res.Header,
148451			HTTPStatusCode: res.StatusCode,
148452		},
148453	}
148454	target := &ret
148455	if err := gensupport.DecodeResponse(target, res); err != nil {
148456		return nil, err
148457	}
148458	return ret, nil
148459	// {
148460	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists. (== suppress_warning http-rest-shadowed ==)",
148461	//   "httpMethod": "GET",
148462	//   "id": "compute.snapshots.getIamPolicy",
148463	//   "parameterOrder": [
148464	//     "project",
148465	//     "resource"
148466	//   ],
148467	//   "parameters": {
148468	//     "optionsRequestedPolicyVersion": {
148469	//       "description": "Requested IAM Policy version.",
148470	//       "format": "int32",
148471	//       "location": "query",
148472	//       "type": "integer"
148473	//     },
148474	//     "project": {
148475	//       "description": "Project ID for this request.",
148476	//       "location": "path",
148477	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
148478	//       "required": true,
148479	//       "type": "string"
148480	//     },
148481	//     "resource": {
148482	//       "description": "Name or id of the resource for this request.",
148483	//       "location": "path",
148484	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
148485	//       "required": true,
148486	//       "type": "string"
148487	//     }
148488	//   },
148489	//   "path": "{project}/global/snapshots/{resource}/getIamPolicy",
148490	//   "response": {
148491	//     "$ref": "Policy"
148492	//   },
148493	//   "scopes": [
148494	//     "https://www.googleapis.com/auth/cloud-platform",
148495	//     "https://www.googleapis.com/auth/compute",
148496	//     "https://www.googleapis.com/auth/compute.readonly"
148497	//   ]
148498	// }
148499
148500}
148501
148502// method id "compute.snapshots.list":
148503
148504type SnapshotsListCall struct {
148505	s            *Service
148506	project      string
148507	urlParams_   gensupport.URLParams
148508	ifNoneMatch_ string
148509	ctx_         context.Context
148510	header_      http.Header
148511}
148512
148513// List: Retrieves the list of Snapshot resources contained within the
148514// specified project. (== suppress_warning http-rest-shadowed ==)
148515// For details, see https://cloud.google.com/compute/docs/reference/latest/snapshots/list
148516func (r *SnapshotsService) List(project string) *SnapshotsListCall {
148517	c := &SnapshotsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
148518	c.project = project
148519	return c
148520}
148521
148522// Filter sets the optional parameter "filter": A filter expression that
148523// filters resources listed in the response. The expression must specify
148524// the field name, a comparison operator, and the value that you want to
148525// use for filtering. The value must be a string, a number, or a
148526// boolean. The comparison operator must be either =, !=, >, or <.
148527//
148528// For example, if you are filtering Compute Engine instances, you can
148529// exclude instances named example-instance by specifying name !=
148530// example-instance.
148531//
148532// You can also filter nested fields. For example, you could specify
148533// scheduling.automaticRestart = false to include instances only if they
148534// are not scheduled for automatic restarts. You can use filtering on
148535// nested fields to filter based on resource labels.
148536//
148537// To filter on multiple expressions, provide each separate expression
148538// within parentheses. For example, (scheduling.automaticRestart = true)
148539// (cpuPlatform = "Intel Skylake"). By default, each expression is an
148540// AND expression. However, you can include AND and OR expressions
148541// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
148542// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
148543// true).
148544func (c *SnapshotsListCall) Filter(filter string) *SnapshotsListCall {
148545	c.urlParams_.Set("filter", filter)
148546	return c
148547}
148548
148549// MaxResults sets the optional parameter "maxResults": The maximum
148550// number of results per page that should be returned. If the number of
148551// available results is larger than maxResults, Compute Engine returns a
148552// nextPageToken that can be used to get the next page of results in
148553// subsequent list requests. Acceptable values are 0 to 500, inclusive.
148554// (Default: 500)
148555func (c *SnapshotsListCall) MaxResults(maxResults int64) *SnapshotsListCall {
148556	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
148557	return c
148558}
148559
148560// OrderBy sets the optional parameter "orderBy": Sorts list results by
148561// a certain order. By default, results are returned in alphanumerical
148562// order based on the resource name.
148563//
148564// You can also sort results in descending order based on the creation
148565// timestamp using orderBy="creationTimestamp desc". This sorts results
148566// based on the creationTimestamp field in reverse chronological order
148567// (newest result first). Use this to sort resources like operations so
148568// that the newest operation is returned first.
148569//
148570// Currently, only sorting by name or creationTimestamp desc is
148571// supported.
148572func (c *SnapshotsListCall) OrderBy(orderBy string) *SnapshotsListCall {
148573	c.urlParams_.Set("orderBy", orderBy)
148574	return c
148575}
148576
148577// PageToken sets the optional parameter "pageToken": Specifies a page
148578// token to use. Set pageToken to the nextPageToken returned by a
148579// previous list request to get the next page of results.
148580func (c *SnapshotsListCall) PageToken(pageToken string) *SnapshotsListCall {
148581	c.urlParams_.Set("pageToken", pageToken)
148582	return c
148583}
148584
148585// Fields allows partial responses to be retrieved. See
148586// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
148587// for more information.
148588func (c *SnapshotsListCall) Fields(s ...googleapi.Field) *SnapshotsListCall {
148589	c.urlParams_.Set("fields", googleapi.CombineFields(s))
148590	return c
148591}
148592
148593// IfNoneMatch sets the optional parameter which makes the operation
148594// fail if the object's ETag matches the given value. This is useful for
148595// getting updates only after the object has changed since the last
148596// request. Use googleapi.IsNotModified to check whether the response
148597// error from Do is the result of In-None-Match.
148598func (c *SnapshotsListCall) IfNoneMatch(entityTag string) *SnapshotsListCall {
148599	c.ifNoneMatch_ = entityTag
148600	return c
148601}
148602
148603// Context sets the context to be used in this call's Do method. Any
148604// pending HTTP request will be aborted if the provided context is
148605// canceled.
148606func (c *SnapshotsListCall) Context(ctx context.Context) *SnapshotsListCall {
148607	c.ctx_ = ctx
148608	return c
148609}
148610
148611// Header returns an http.Header that can be modified by the caller to
148612// add HTTP headers to the request.
148613func (c *SnapshotsListCall) Header() http.Header {
148614	if c.header_ == nil {
148615		c.header_ = make(http.Header)
148616	}
148617	return c.header_
148618}
148619
148620func (c *SnapshotsListCall) doRequest(alt string) (*http.Response, error) {
148621	reqHeaders := make(http.Header)
148622	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
148623	for k, v := range c.header_ {
148624		reqHeaders[k] = v
148625	}
148626	reqHeaders.Set("User-Agent", c.s.userAgent())
148627	if c.ifNoneMatch_ != "" {
148628		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
148629	}
148630	var body io.Reader = nil
148631	c.urlParams_.Set("alt", alt)
148632	c.urlParams_.Set("prettyPrint", "false")
148633	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/snapshots")
148634	urls += "?" + c.urlParams_.Encode()
148635	req, err := http.NewRequest("GET", urls, body)
148636	if err != nil {
148637		return nil, err
148638	}
148639	req.Header = reqHeaders
148640	googleapi.Expand(req.URL, map[string]string{
148641		"project": c.project,
148642	})
148643	return gensupport.SendRequest(c.ctx_, c.s.client, req)
148644}
148645
148646// Do executes the "compute.snapshots.list" call.
148647// Exactly one of *SnapshotList or error will be non-nil. Any non-2xx
148648// status code is an error. Response headers are in either
148649// *SnapshotList.ServerResponse.Header or (if a response was returned at
148650// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
148651// to check whether the returned error was because
148652// http.StatusNotModified was returned.
148653func (c *SnapshotsListCall) Do(opts ...googleapi.CallOption) (*SnapshotList, error) {
148654	gensupport.SetOptions(c.urlParams_, opts...)
148655	res, err := c.doRequest("json")
148656	if res != nil && res.StatusCode == http.StatusNotModified {
148657		if res.Body != nil {
148658			res.Body.Close()
148659		}
148660		return nil, &googleapi.Error{
148661			Code:   res.StatusCode,
148662			Header: res.Header,
148663		}
148664	}
148665	if err != nil {
148666		return nil, err
148667	}
148668	defer googleapi.CloseBody(res)
148669	if err := googleapi.CheckResponse(res); err != nil {
148670		return nil, err
148671	}
148672	ret := &SnapshotList{
148673		ServerResponse: googleapi.ServerResponse{
148674			Header:         res.Header,
148675			HTTPStatusCode: res.StatusCode,
148676		},
148677	}
148678	target := &ret
148679	if err := gensupport.DecodeResponse(target, res); err != nil {
148680		return nil, err
148681	}
148682	return ret, nil
148683	// {
148684	//   "description": "Retrieves the list of Snapshot resources contained within the specified project. (== suppress_warning http-rest-shadowed ==)",
148685	//   "httpMethod": "GET",
148686	//   "id": "compute.snapshots.list",
148687	//   "parameterOrder": [
148688	//     "project"
148689	//   ],
148690	//   "parameters": {
148691	//     "filter": {
148692	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
148693	//       "location": "query",
148694	//       "type": "string"
148695	//     },
148696	//     "maxResults": {
148697	//       "default": "500",
148698	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
148699	//       "format": "uint32",
148700	//       "location": "query",
148701	//       "minimum": "0",
148702	//       "type": "integer"
148703	//     },
148704	//     "orderBy": {
148705	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
148706	//       "location": "query",
148707	//       "type": "string"
148708	//     },
148709	//     "pageToken": {
148710	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
148711	//       "location": "query",
148712	//       "type": "string"
148713	//     },
148714	//     "project": {
148715	//       "description": "Project ID for this request.",
148716	//       "location": "path",
148717	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
148718	//       "required": true,
148719	//       "type": "string"
148720	//     }
148721	//   },
148722	//   "path": "{project}/global/snapshots",
148723	//   "response": {
148724	//     "$ref": "SnapshotList"
148725	//   },
148726	//   "scopes": [
148727	//     "https://www.googleapis.com/auth/cloud-platform",
148728	//     "https://www.googleapis.com/auth/compute",
148729	//     "https://www.googleapis.com/auth/compute.readonly"
148730	//   ]
148731	// }
148732
148733}
148734
148735// Pages invokes f for each page of results.
148736// A non-nil error returned from f will halt the iteration.
148737// The provided context supersedes any context provided to the Context method.
148738func (c *SnapshotsListCall) Pages(ctx context.Context, f func(*SnapshotList) error) error {
148739	c.ctx_ = ctx
148740	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
148741	for {
148742		x, err := c.Do()
148743		if err != nil {
148744			return err
148745		}
148746		if err := f(x); err != nil {
148747			return err
148748		}
148749		if x.NextPageToken == "" {
148750			return nil
148751		}
148752		c.PageToken(x.NextPageToken)
148753	}
148754}
148755
148756// method id "compute.snapshots.setIamPolicy":
148757
148758type SnapshotsSetIamPolicyCall struct {
148759	s                      *Service
148760	project                string
148761	resource               string
148762	globalsetpolicyrequest *GlobalSetPolicyRequest
148763	urlParams_             gensupport.URLParams
148764	ctx_                   context.Context
148765	header_                http.Header
148766}
148767
148768// SetIamPolicy: Sets the access control policy on the specified
148769// resource. Replaces any existing policy. (== suppress_warning
148770// http-rest-shadowed ==)
148771func (r *SnapshotsService) SetIamPolicy(project string, resource string, globalsetpolicyrequest *GlobalSetPolicyRequest) *SnapshotsSetIamPolicyCall {
148772	c := &SnapshotsSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
148773	c.project = project
148774	c.resource = resource
148775	c.globalsetpolicyrequest = globalsetpolicyrequest
148776	return c
148777}
148778
148779// Fields allows partial responses to be retrieved. See
148780// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
148781// for more information.
148782func (c *SnapshotsSetIamPolicyCall) Fields(s ...googleapi.Field) *SnapshotsSetIamPolicyCall {
148783	c.urlParams_.Set("fields", googleapi.CombineFields(s))
148784	return c
148785}
148786
148787// Context sets the context to be used in this call's Do method. Any
148788// pending HTTP request will be aborted if the provided context is
148789// canceled.
148790func (c *SnapshotsSetIamPolicyCall) Context(ctx context.Context) *SnapshotsSetIamPolicyCall {
148791	c.ctx_ = ctx
148792	return c
148793}
148794
148795// Header returns an http.Header that can be modified by the caller to
148796// add HTTP headers to the request.
148797func (c *SnapshotsSetIamPolicyCall) Header() http.Header {
148798	if c.header_ == nil {
148799		c.header_ = make(http.Header)
148800	}
148801	return c.header_
148802}
148803
148804func (c *SnapshotsSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
148805	reqHeaders := make(http.Header)
148806	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
148807	for k, v := range c.header_ {
148808		reqHeaders[k] = v
148809	}
148810	reqHeaders.Set("User-Agent", c.s.userAgent())
148811	var body io.Reader = nil
148812	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetpolicyrequest)
148813	if err != nil {
148814		return nil, err
148815	}
148816	reqHeaders.Set("Content-Type", "application/json")
148817	c.urlParams_.Set("alt", alt)
148818	c.urlParams_.Set("prettyPrint", "false")
148819	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/snapshots/{resource}/setIamPolicy")
148820	urls += "?" + c.urlParams_.Encode()
148821	req, err := http.NewRequest("POST", urls, body)
148822	if err != nil {
148823		return nil, err
148824	}
148825	req.Header = reqHeaders
148826	googleapi.Expand(req.URL, map[string]string{
148827		"project":  c.project,
148828		"resource": c.resource,
148829	})
148830	return gensupport.SendRequest(c.ctx_, c.s.client, req)
148831}
148832
148833// Do executes the "compute.snapshots.setIamPolicy" call.
148834// Exactly one of *Policy or error will be non-nil. Any non-2xx status
148835// code is an error. Response headers are in either
148836// *Policy.ServerResponse.Header or (if a response was returned at all)
148837// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
148838// check whether the returned error was because http.StatusNotModified
148839// was returned.
148840func (c *SnapshotsSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
148841	gensupport.SetOptions(c.urlParams_, opts...)
148842	res, err := c.doRequest("json")
148843	if res != nil && res.StatusCode == http.StatusNotModified {
148844		if res.Body != nil {
148845			res.Body.Close()
148846		}
148847		return nil, &googleapi.Error{
148848			Code:   res.StatusCode,
148849			Header: res.Header,
148850		}
148851	}
148852	if err != nil {
148853		return nil, err
148854	}
148855	defer googleapi.CloseBody(res)
148856	if err := googleapi.CheckResponse(res); err != nil {
148857		return nil, err
148858	}
148859	ret := &Policy{
148860		ServerResponse: googleapi.ServerResponse{
148861			Header:         res.Header,
148862			HTTPStatusCode: res.StatusCode,
148863		},
148864	}
148865	target := &ret
148866	if err := gensupport.DecodeResponse(target, res); err != nil {
148867		return nil, err
148868	}
148869	return ret, nil
148870	// {
148871	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy. (== suppress_warning http-rest-shadowed ==)",
148872	//   "httpMethod": "POST",
148873	//   "id": "compute.snapshots.setIamPolicy",
148874	//   "parameterOrder": [
148875	//     "project",
148876	//     "resource"
148877	//   ],
148878	//   "parameters": {
148879	//     "project": {
148880	//       "description": "Project ID for this request.",
148881	//       "location": "path",
148882	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
148883	//       "required": true,
148884	//       "type": "string"
148885	//     },
148886	//     "resource": {
148887	//       "description": "Name or id of the resource for this request.",
148888	//       "location": "path",
148889	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
148890	//       "required": true,
148891	//       "type": "string"
148892	//     }
148893	//   },
148894	//   "path": "{project}/global/snapshots/{resource}/setIamPolicy",
148895	//   "request": {
148896	//     "$ref": "GlobalSetPolicyRequest"
148897	//   },
148898	//   "response": {
148899	//     "$ref": "Policy"
148900	//   },
148901	//   "scopes": [
148902	//     "https://www.googleapis.com/auth/cloud-platform",
148903	//     "https://www.googleapis.com/auth/compute"
148904	//   ]
148905	// }
148906
148907}
148908
148909// method id "compute.snapshots.setLabels":
148910
148911type SnapshotsSetLabelsCall struct {
148912	s                      *Service
148913	project                string
148914	resource               string
148915	globalsetlabelsrequest *GlobalSetLabelsRequest
148916	urlParams_             gensupport.URLParams
148917	ctx_                   context.Context
148918	header_                http.Header
148919}
148920
148921// SetLabels: Sets the labels on a snapshot. To learn more about labels,
148922// read the Labeling Resources documentation. (== suppress_warning
148923// http-rest-shadowed ==)
148924func (r *SnapshotsService) SetLabels(project string, resource string, globalsetlabelsrequest *GlobalSetLabelsRequest) *SnapshotsSetLabelsCall {
148925	c := &SnapshotsSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
148926	c.project = project
148927	c.resource = resource
148928	c.globalsetlabelsrequest = globalsetlabelsrequest
148929	return c
148930}
148931
148932// Fields allows partial responses to be retrieved. See
148933// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
148934// for more information.
148935func (c *SnapshotsSetLabelsCall) Fields(s ...googleapi.Field) *SnapshotsSetLabelsCall {
148936	c.urlParams_.Set("fields", googleapi.CombineFields(s))
148937	return c
148938}
148939
148940// Context sets the context to be used in this call's Do method. Any
148941// pending HTTP request will be aborted if the provided context is
148942// canceled.
148943func (c *SnapshotsSetLabelsCall) Context(ctx context.Context) *SnapshotsSetLabelsCall {
148944	c.ctx_ = ctx
148945	return c
148946}
148947
148948// Header returns an http.Header that can be modified by the caller to
148949// add HTTP headers to the request.
148950func (c *SnapshotsSetLabelsCall) Header() http.Header {
148951	if c.header_ == nil {
148952		c.header_ = make(http.Header)
148953	}
148954	return c.header_
148955}
148956
148957func (c *SnapshotsSetLabelsCall) doRequest(alt string) (*http.Response, error) {
148958	reqHeaders := make(http.Header)
148959	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
148960	for k, v := range c.header_ {
148961		reqHeaders[k] = v
148962	}
148963	reqHeaders.Set("User-Agent", c.s.userAgent())
148964	var body io.Reader = nil
148965	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetlabelsrequest)
148966	if err != nil {
148967		return nil, err
148968	}
148969	reqHeaders.Set("Content-Type", "application/json")
148970	c.urlParams_.Set("alt", alt)
148971	c.urlParams_.Set("prettyPrint", "false")
148972	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/snapshots/{resource}/setLabels")
148973	urls += "?" + c.urlParams_.Encode()
148974	req, err := http.NewRequest("POST", urls, body)
148975	if err != nil {
148976		return nil, err
148977	}
148978	req.Header = reqHeaders
148979	googleapi.Expand(req.URL, map[string]string{
148980		"project":  c.project,
148981		"resource": c.resource,
148982	})
148983	return gensupport.SendRequest(c.ctx_, c.s.client, req)
148984}
148985
148986// Do executes the "compute.snapshots.setLabels" call.
148987// Exactly one of *Operation or error will be non-nil. Any non-2xx
148988// status code is an error. Response headers are in either
148989// *Operation.ServerResponse.Header or (if a response was returned at
148990// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
148991// to check whether the returned error was because
148992// http.StatusNotModified was returned.
148993func (c *SnapshotsSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
148994	gensupport.SetOptions(c.urlParams_, opts...)
148995	res, err := c.doRequest("json")
148996	if res != nil && res.StatusCode == http.StatusNotModified {
148997		if res.Body != nil {
148998			res.Body.Close()
148999		}
149000		return nil, &googleapi.Error{
149001			Code:   res.StatusCode,
149002			Header: res.Header,
149003		}
149004	}
149005	if err != nil {
149006		return nil, err
149007	}
149008	defer googleapi.CloseBody(res)
149009	if err := googleapi.CheckResponse(res); err != nil {
149010		return nil, err
149011	}
149012	ret := &Operation{
149013		ServerResponse: googleapi.ServerResponse{
149014			Header:         res.Header,
149015			HTTPStatusCode: res.StatusCode,
149016		},
149017	}
149018	target := &ret
149019	if err := gensupport.DecodeResponse(target, res); err != nil {
149020		return nil, err
149021	}
149022	return ret, nil
149023	// {
149024	//   "description": "Sets the labels on a snapshot. To learn more about labels, read the Labeling Resources documentation. (== suppress_warning http-rest-shadowed ==)",
149025	//   "httpMethod": "POST",
149026	//   "id": "compute.snapshots.setLabels",
149027	//   "parameterOrder": [
149028	//     "project",
149029	//     "resource"
149030	//   ],
149031	//   "parameters": {
149032	//     "project": {
149033	//       "description": "Project ID for this request.",
149034	//       "location": "path",
149035	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
149036	//       "required": true,
149037	//       "type": "string"
149038	//     },
149039	//     "resource": {
149040	//       "description": "Name or id of the resource for this request.",
149041	//       "location": "path",
149042	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
149043	//       "required": true,
149044	//       "type": "string"
149045	//     }
149046	//   },
149047	//   "path": "{project}/global/snapshots/{resource}/setLabels",
149048	//   "request": {
149049	//     "$ref": "GlobalSetLabelsRequest"
149050	//   },
149051	//   "response": {
149052	//     "$ref": "Operation"
149053	//   },
149054	//   "scopes": [
149055	//     "https://www.googleapis.com/auth/cloud-platform",
149056	//     "https://www.googleapis.com/auth/compute"
149057	//   ]
149058	// }
149059
149060}
149061
149062// method id "compute.snapshots.testIamPermissions":
149063
149064type SnapshotsTestIamPermissionsCall struct {
149065	s                      *Service
149066	project                string
149067	resource               string
149068	testpermissionsrequest *TestPermissionsRequest
149069	urlParams_             gensupport.URLParams
149070	ctx_                   context.Context
149071	header_                http.Header
149072}
149073
149074// TestIamPermissions: Returns permissions that a caller has on the
149075// specified resource. (== suppress_warning http-rest-shadowed ==)
149076func (r *SnapshotsService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *SnapshotsTestIamPermissionsCall {
149077	c := &SnapshotsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
149078	c.project = project
149079	c.resource = resource
149080	c.testpermissionsrequest = testpermissionsrequest
149081	return c
149082}
149083
149084// Fields allows partial responses to be retrieved. See
149085// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
149086// for more information.
149087func (c *SnapshotsTestIamPermissionsCall) Fields(s ...googleapi.Field) *SnapshotsTestIamPermissionsCall {
149088	c.urlParams_.Set("fields", googleapi.CombineFields(s))
149089	return c
149090}
149091
149092// Context sets the context to be used in this call's Do method. Any
149093// pending HTTP request will be aborted if the provided context is
149094// canceled.
149095func (c *SnapshotsTestIamPermissionsCall) Context(ctx context.Context) *SnapshotsTestIamPermissionsCall {
149096	c.ctx_ = ctx
149097	return c
149098}
149099
149100// Header returns an http.Header that can be modified by the caller to
149101// add HTTP headers to the request.
149102func (c *SnapshotsTestIamPermissionsCall) Header() http.Header {
149103	if c.header_ == nil {
149104		c.header_ = make(http.Header)
149105	}
149106	return c.header_
149107}
149108
149109func (c *SnapshotsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
149110	reqHeaders := make(http.Header)
149111	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
149112	for k, v := range c.header_ {
149113		reqHeaders[k] = v
149114	}
149115	reqHeaders.Set("User-Agent", c.s.userAgent())
149116	var body io.Reader = nil
149117	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
149118	if err != nil {
149119		return nil, err
149120	}
149121	reqHeaders.Set("Content-Type", "application/json")
149122	c.urlParams_.Set("alt", alt)
149123	c.urlParams_.Set("prettyPrint", "false")
149124	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/snapshots/{resource}/testIamPermissions")
149125	urls += "?" + c.urlParams_.Encode()
149126	req, err := http.NewRequest("POST", urls, body)
149127	if err != nil {
149128		return nil, err
149129	}
149130	req.Header = reqHeaders
149131	googleapi.Expand(req.URL, map[string]string{
149132		"project":  c.project,
149133		"resource": c.resource,
149134	})
149135	return gensupport.SendRequest(c.ctx_, c.s.client, req)
149136}
149137
149138// Do executes the "compute.snapshots.testIamPermissions" call.
149139// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
149140// non-2xx status code is an error. Response headers are in either
149141// *TestPermissionsResponse.ServerResponse.Header or (if a response was
149142// returned at all) in error.(*googleapi.Error).Header. Use
149143// googleapi.IsNotModified to check whether the returned error was
149144// because http.StatusNotModified was returned.
149145func (c *SnapshotsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
149146	gensupport.SetOptions(c.urlParams_, opts...)
149147	res, err := c.doRequest("json")
149148	if res != nil && res.StatusCode == http.StatusNotModified {
149149		if res.Body != nil {
149150			res.Body.Close()
149151		}
149152		return nil, &googleapi.Error{
149153			Code:   res.StatusCode,
149154			Header: res.Header,
149155		}
149156	}
149157	if err != nil {
149158		return nil, err
149159	}
149160	defer googleapi.CloseBody(res)
149161	if err := googleapi.CheckResponse(res); err != nil {
149162		return nil, err
149163	}
149164	ret := &TestPermissionsResponse{
149165		ServerResponse: googleapi.ServerResponse{
149166			Header:         res.Header,
149167			HTTPStatusCode: res.StatusCode,
149168		},
149169	}
149170	target := &ret
149171	if err := gensupport.DecodeResponse(target, res); err != nil {
149172		return nil, err
149173	}
149174	return ret, nil
149175	// {
149176	//   "description": "Returns permissions that a caller has on the specified resource. (== suppress_warning http-rest-shadowed ==)",
149177	//   "httpMethod": "POST",
149178	//   "id": "compute.snapshots.testIamPermissions",
149179	//   "parameterOrder": [
149180	//     "project",
149181	//     "resource"
149182	//   ],
149183	//   "parameters": {
149184	//     "project": {
149185	//       "description": "Project ID for this request.",
149186	//       "location": "path",
149187	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
149188	//       "required": true,
149189	//       "type": "string"
149190	//     },
149191	//     "resource": {
149192	//       "description": "Name or id of the resource for this request.",
149193	//       "location": "path",
149194	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
149195	//       "required": true,
149196	//       "type": "string"
149197	//     }
149198	//   },
149199	//   "path": "{project}/global/snapshots/{resource}/testIamPermissions",
149200	//   "request": {
149201	//     "$ref": "TestPermissionsRequest"
149202	//   },
149203	//   "response": {
149204	//     "$ref": "TestPermissionsResponse"
149205	//   },
149206	//   "scopes": [
149207	//     "https://www.googleapis.com/auth/cloud-platform",
149208	//     "https://www.googleapis.com/auth/compute",
149209	//     "https://www.googleapis.com/auth/compute.readonly"
149210	//   ]
149211	// }
149212
149213}
149214
149215// method id "compute.sslCertificates.aggregatedList":
149216
149217type SslCertificatesAggregatedListCall struct {
149218	s            *Service
149219	project      string
149220	urlParams_   gensupport.URLParams
149221	ifNoneMatch_ string
149222	ctx_         context.Context
149223	header_      http.Header
149224}
149225
149226// AggregatedList: Retrieves the list of all SslCertificate resources,
149227// regional and global, available to the specified project. (==
149228// suppress_warning http-rest-shadowed ==)
149229func (r *SslCertificatesService) AggregatedList(project string) *SslCertificatesAggregatedListCall {
149230	c := &SslCertificatesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
149231	c.project = project
149232	return c
149233}
149234
149235// Filter sets the optional parameter "filter": A filter expression that
149236// filters resources listed in the response. The expression must specify
149237// the field name, a comparison operator, and the value that you want to
149238// use for filtering. The value must be a string, a number, or a
149239// boolean. The comparison operator must be either =, !=, >, or <.
149240//
149241// For example, if you are filtering Compute Engine instances, you can
149242// exclude instances named example-instance by specifying name !=
149243// example-instance.
149244//
149245// You can also filter nested fields. For example, you could specify
149246// scheduling.automaticRestart = false to include instances only if they
149247// are not scheduled for automatic restarts. You can use filtering on
149248// nested fields to filter based on resource labels.
149249//
149250// To filter on multiple expressions, provide each separate expression
149251// within parentheses. For example, (scheduling.automaticRestart = true)
149252// (cpuPlatform = "Intel Skylake"). By default, each expression is an
149253// AND expression. However, you can include AND and OR expressions
149254// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
149255// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
149256// true).
149257func (c *SslCertificatesAggregatedListCall) Filter(filter string) *SslCertificatesAggregatedListCall {
149258	c.urlParams_.Set("filter", filter)
149259	return c
149260}
149261
149262// MaxResults sets the optional parameter "maxResults": The maximum
149263// number of results per page that should be returned. If the number of
149264// available results is larger than maxResults, Compute Engine returns a
149265// nextPageToken that can be used to get the next page of results in
149266// subsequent list requests. Acceptable values are 0 to 500, inclusive.
149267// (Default: 500)
149268func (c *SslCertificatesAggregatedListCall) MaxResults(maxResults int64) *SslCertificatesAggregatedListCall {
149269	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
149270	return c
149271}
149272
149273// OrderBy sets the optional parameter "orderBy": Sorts list results by
149274// a certain order. By default, results are returned in alphanumerical
149275// order based on the resource name.
149276//
149277// You can also sort results in descending order based on the creation
149278// timestamp using orderBy="creationTimestamp desc". This sorts results
149279// based on the creationTimestamp field in reverse chronological order
149280// (newest result first). Use this to sort resources like operations so
149281// that the newest operation is returned first.
149282//
149283// Currently, only sorting by name or creationTimestamp desc is
149284// supported.
149285func (c *SslCertificatesAggregatedListCall) OrderBy(orderBy string) *SslCertificatesAggregatedListCall {
149286	c.urlParams_.Set("orderBy", orderBy)
149287	return c
149288}
149289
149290// PageToken sets the optional parameter "pageToken": Specifies a page
149291// token to use. Set pageToken to the nextPageToken returned by a
149292// previous list request to get the next page of results.
149293func (c *SslCertificatesAggregatedListCall) PageToken(pageToken string) *SslCertificatesAggregatedListCall {
149294	c.urlParams_.Set("pageToken", pageToken)
149295	return c
149296}
149297
149298// Fields allows partial responses to be retrieved. See
149299// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
149300// for more information.
149301func (c *SslCertificatesAggregatedListCall) Fields(s ...googleapi.Field) *SslCertificatesAggregatedListCall {
149302	c.urlParams_.Set("fields", googleapi.CombineFields(s))
149303	return c
149304}
149305
149306// IfNoneMatch sets the optional parameter which makes the operation
149307// fail if the object's ETag matches the given value. This is useful for
149308// getting updates only after the object has changed since the last
149309// request. Use googleapi.IsNotModified to check whether the response
149310// error from Do is the result of In-None-Match.
149311func (c *SslCertificatesAggregatedListCall) IfNoneMatch(entityTag string) *SslCertificatesAggregatedListCall {
149312	c.ifNoneMatch_ = entityTag
149313	return c
149314}
149315
149316// Context sets the context to be used in this call's Do method. Any
149317// pending HTTP request will be aborted if the provided context is
149318// canceled.
149319func (c *SslCertificatesAggregatedListCall) Context(ctx context.Context) *SslCertificatesAggregatedListCall {
149320	c.ctx_ = ctx
149321	return c
149322}
149323
149324// Header returns an http.Header that can be modified by the caller to
149325// add HTTP headers to the request.
149326func (c *SslCertificatesAggregatedListCall) Header() http.Header {
149327	if c.header_ == nil {
149328		c.header_ = make(http.Header)
149329	}
149330	return c.header_
149331}
149332
149333func (c *SslCertificatesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
149334	reqHeaders := make(http.Header)
149335	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
149336	for k, v := range c.header_ {
149337		reqHeaders[k] = v
149338	}
149339	reqHeaders.Set("User-Agent", c.s.userAgent())
149340	if c.ifNoneMatch_ != "" {
149341		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
149342	}
149343	var body io.Reader = nil
149344	c.urlParams_.Set("alt", alt)
149345	c.urlParams_.Set("prettyPrint", "false")
149346	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/sslCertificates")
149347	urls += "?" + c.urlParams_.Encode()
149348	req, err := http.NewRequest("GET", urls, body)
149349	if err != nil {
149350		return nil, err
149351	}
149352	req.Header = reqHeaders
149353	googleapi.Expand(req.URL, map[string]string{
149354		"project": c.project,
149355	})
149356	return gensupport.SendRequest(c.ctx_, c.s.client, req)
149357}
149358
149359// Do executes the "compute.sslCertificates.aggregatedList" call.
149360// Exactly one of *SslCertificateAggregatedList or error will be
149361// non-nil. Any non-2xx status code is an error. Response headers are in
149362// either *SslCertificateAggregatedList.ServerResponse.Header or (if a
149363// response was returned at all) in error.(*googleapi.Error).Header. Use
149364// googleapi.IsNotModified to check whether the returned error was
149365// because http.StatusNotModified was returned.
149366func (c *SslCertificatesAggregatedListCall) Do(opts ...googleapi.CallOption) (*SslCertificateAggregatedList, error) {
149367	gensupport.SetOptions(c.urlParams_, opts...)
149368	res, err := c.doRequest("json")
149369	if res != nil && res.StatusCode == http.StatusNotModified {
149370		if res.Body != nil {
149371			res.Body.Close()
149372		}
149373		return nil, &googleapi.Error{
149374			Code:   res.StatusCode,
149375			Header: res.Header,
149376		}
149377	}
149378	if err != nil {
149379		return nil, err
149380	}
149381	defer googleapi.CloseBody(res)
149382	if err := googleapi.CheckResponse(res); err != nil {
149383		return nil, err
149384	}
149385	ret := &SslCertificateAggregatedList{
149386		ServerResponse: googleapi.ServerResponse{
149387			Header:         res.Header,
149388			HTTPStatusCode: res.StatusCode,
149389		},
149390	}
149391	target := &ret
149392	if err := gensupport.DecodeResponse(target, res); err != nil {
149393		return nil, err
149394	}
149395	return ret, nil
149396	// {
149397	//   "description": "Retrieves the list of all SslCertificate resources, regional and global, available to the specified project. (== suppress_warning http-rest-shadowed ==)",
149398	//   "httpMethod": "GET",
149399	//   "id": "compute.sslCertificates.aggregatedList",
149400	//   "parameterOrder": [
149401	//     "project"
149402	//   ],
149403	//   "parameters": {
149404	//     "filter": {
149405	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
149406	//       "location": "query",
149407	//       "type": "string"
149408	//     },
149409	//     "maxResults": {
149410	//       "default": "500",
149411	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
149412	//       "format": "uint32",
149413	//       "location": "query",
149414	//       "minimum": "0",
149415	//       "type": "integer"
149416	//     },
149417	//     "orderBy": {
149418	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
149419	//       "location": "query",
149420	//       "type": "string"
149421	//     },
149422	//     "pageToken": {
149423	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
149424	//       "location": "query",
149425	//       "type": "string"
149426	//     },
149427	//     "project": {
149428	//       "description": "Name of the project scoping this request.",
149429	//       "location": "path",
149430	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
149431	//       "required": true,
149432	//       "type": "string"
149433	//     }
149434	//   },
149435	//   "path": "{project}/aggregated/sslCertificates",
149436	//   "response": {
149437	//     "$ref": "SslCertificateAggregatedList"
149438	//   },
149439	//   "scopes": [
149440	//     "https://www.googleapis.com/auth/cloud-platform",
149441	//     "https://www.googleapis.com/auth/compute",
149442	//     "https://www.googleapis.com/auth/compute.readonly"
149443	//   ]
149444	// }
149445
149446}
149447
149448// Pages invokes f for each page of results.
149449// A non-nil error returned from f will halt the iteration.
149450// The provided context supersedes any context provided to the Context method.
149451func (c *SslCertificatesAggregatedListCall) Pages(ctx context.Context, f func(*SslCertificateAggregatedList) error) error {
149452	c.ctx_ = ctx
149453	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
149454	for {
149455		x, err := c.Do()
149456		if err != nil {
149457			return err
149458		}
149459		if err := f(x); err != nil {
149460			return err
149461		}
149462		if x.NextPageToken == "" {
149463			return nil
149464		}
149465		c.PageToken(x.NextPageToken)
149466	}
149467}
149468
149469// method id "compute.sslCertificates.delete":
149470
149471type SslCertificatesDeleteCall struct {
149472	s              *Service
149473	project        string
149474	sslCertificate string
149475	urlParams_     gensupport.URLParams
149476	ctx_           context.Context
149477	header_        http.Header
149478}
149479
149480// Delete: Deletes the specified SslCertificate resource. (==
149481// suppress_warning http-rest-shadowed ==)
149482func (r *SslCertificatesService) Delete(project string, sslCertificate string) *SslCertificatesDeleteCall {
149483	c := &SslCertificatesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
149484	c.project = project
149485	c.sslCertificate = sslCertificate
149486	return c
149487}
149488
149489// RequestId sets the optional parameter "requestId": An optional
149490// request ID to identify requests. Specify a unique request ID so that
149491// if you must retry your request, the server will know to ignore the
149492// request if it has already been completed.
149493//
149494// For example, consider a situation where you make an initial request
149495// and the request times out. If you make the request again with the
149496// same request ID, the server can check if original operation with the
149497// same request ID was received, and if so, will ignore the second
149498// request. This prevents clients from accidentally creating duplicate
149499// commitments.
149500//
149501// The request ID must be a valid UUID with the exception that zero UUID
149502// is not supported (00000000-0000-0000-0000-000000000000).
149503func (c *SslCertificatesDeleteCall) RequestId(requestId string) *SslCertificatesDeleteCall {
149504	c.urlParams_.Set("requestId", requestId)
149505	return c
149506}
149507
149508// Fields allows partial responses to be retrieved. See
149509// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
149510// for more information.
149511func (c *SslCertificatesDeleteCall) Fields(s ...googleapi.Field) *SslCertificatesDeleteCall {
149512	c.urlParams_.Set("fields", googleapi.CombineFields(s))
149513	return c
149514}
149515
149516// Context sets the context to be used in this call's Do method. Any
149517// pending HTTP request will be aborted if the provided context is
149518// canceled.
149519func (c *SslCertificatesDeleteCall) Context(ctx context.Context) *SslCertificatesDeleteCall {
149520	c.ctx_ = ctx
149521	return c
149522}
149523
149524// Header returns an http.Header that can be modified by the caller to
149525// add HTTP headers to the request.
149526func (c *SslCertificatesDeleteCall) Header() http.Header {
149527	if c.header_ == nil {
149528		c.header_ = make(http.Header)
149529	}
149530	return c.header_
149531}
149532
149533func (c *SslCertificatesDeleteCall) doRequest(alt string) (*http.Response, error) {
149534	reqHeaders := make(http.Header)
149535	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
149536	for k, v := range c.header_ {
149537		reqHeaders[k] = v
149538	}
149539	reqHeaders.Set("User-Agent", c.s.userAgent())
149540	var body io.Reader = nil
149541	c.urlParams_.Set("alt", alt)
149542	c.urlParams_.Set("prettyPrint", "false")
149543	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/sslCertificates/{sslCertificate}")
149544	urls += "?" + c.urlParams_.Encode()
149545	req, err := http.NewRequest("DELETE", urls, body)
149546	if err != nil {
149547		return nil, err
149548	}
149549	req.Header = reqHeaders
149550	googleapi.Expand(req.URL, map[string]string{
149551		"project":        c.project,
149552		"sslCertificate": c.sslCertificate,
149553	})
149554	return gensupport.SendRequest(c.ctx_, c.s.client, req)
149555}
149556
149557// Do executes the "compute.sslCertificates.delete" call.
149558// Exactly one of *Operation or error will be non-nil. Any non-2xx
149559// status code is an error. Response headers are in either
149560// *Operation.ServerResponse.Header or (if a response was returned at
149561// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
149562// to check whether the returned error was because
149563// http.StatusNotModified was returned.
149564func (c *SslCertificatesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
149565	gensupport.SetOptions(c.urlParams_, opts...)
149566	res, err := c.doRequest("json")
149567	if res != nil && res.StatusCode == http.StatusNotModified {
149568		if res.Body != nil {
149569			res.Body.Close()
149570		}
149571		return nil, &googleapi.Error{
149572			Code:   res.StatusCode,
149573			Header: res.Header,
149574		}
149575	}
149576	if err != nil {
149577		return nil, err
149578	}
149579	defer googleapi.CloseBody(res)
149580	if err := googleapi.CheckResponse(res); err != nil {
149581		return nil, err
149582	}
149583	ret := &Operation{
149584		ServerResponse: googleapi.ServerResponse{
149585			Header:         res.Header,
149586			HTTPStatusCode: res.StatusCode,
149587		},
149588	}
149589	target := &ret
149590	if err := gensupport.DecodeResponse(target, res); err != nil {
149591		return nil, err
149592	}
149593	return ret, nil
149594	// {
149595	//   "description": "Deletes the specified SslCertificate resource. (== suppress_warning http-rest-shadowed ==)",
149596	//   "httpMethod": "DELETE",
149597	//   "id": "compute.sslCertificates.delete",
149598	//   "parameterOrder": [
149599	//     "project",
149600	//     "sslCertificate"
149601	//   ],
149602	//   "parameters": {
149603	//     "project": {
149604	//       "description": "Project ID for this request.",
149605	//       "location": "path",
149606	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
149607	//       "required": true,
149608	//       "type": "string"
149609	//     },
149610	//     "requestId": {
149611	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
149612	//       "location": "query",
149613	//       "type": "string"
149614	//     },
149615	//     "sslCertificate": {
149616	//       "description": "Name of the SslCertificate resource to delete.",
149617	//       "location": "path",
149618	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
149619	//       "required": true,
149620	//       "type": "string"
149621	//     }
149622	//   },
149623	//   "path": "{project}/global/sslCertificates/{sslCertificate}",
149624	//   "response": {
149625	//     "$ref": "Operation"
149626	//   },
149627	//   "scopes": [
149628	//     "https://www.googleapis.com/auth/cloud-platform",
149629	//     "https://www.googleapis.com/auth/compute"
149630	//   ]
149631	// }
149632
149633}
149634
149635// method id "compute.sslCertificates.get":
149636
149637type SslCertificatesGetCall struct {
149638	s              *Service
149639	project        string
149640	sslCertificate string
149641	urlParams_     gensupport.URLParams
149642	ifNoneMatch_   string
149643	ctx_           context.Context
149644	header_        http.Header
149645}
149646
149647// Get: Returns the specified SslCertificate resource. Gets a list of
149648// available SSL certificates by making a list() request. (==
149649// suppress_warning http-rest-shadowed ==)
149650func (r *SslCertificatesService) Get(project string, sslCertificate string) *SslCertificatesGetCall {
149651	c := &SslCertificatesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
149652	c.project = project
149653	c.sslCertificate = sslCertificate
149654	return c
149655}
149656
149657// Fields allows partial responses to be retrieved. See
149658// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
149659// for more information.
149660func (c *SslCertificatesGetCall) Fields(s ...googleapi.Field) *SslCertificatesGetCall {
149661	c.urlParams_.Set("fields", googleapi.CombineFields(s))
149662	return c
149663}
149664
149665// IfNoneMatch sets the optional parameter which makes the operation
149666// fail if the object's ETag matches the given value. This is useful for
149667// getting updates only after the object has changed since the last
149668// request. Use googleapi.IsNotModified to check whether the response
149669// error from Do is the result of In-None-Match.
149670func (c *SslCertificatesGetCall) IfNoneMatch(entityTag string) *SslCertificatesGetCall {
149671	c.ifNoneMatch_ = entityTag
149672	return c
149673}
149674
149675// Context sets the context to be used in this call's Do method. Any
149676// pending HTTP request will be aborted if the provided context is
149677// canceled.
149678func (c *SslCertificatesGetCall) Context(ctx context.Context) *SslCertificatesGetCall {
149679	c.ctx_ = ctx
149680	return c
149681}
149682
149683// Header returns an http.Header that can be modified by the caller to
149684// add HTTP headers to the request.
149685func (c *SslCertificatesGetCall) Header() http.Header {
149686	if c.header_ == nil {
149687		c.header_ = make(http.Header)
149688	}
149689	return c.header_
149690}
149691
149692func (c *SslCertificatesGetCall) doRequest(alt string) (*http.Response, error) {
149693	reqHeaders := make(http.Header)
149694	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
149695	for k, v := range c.header_ {
149696		reqHeaders[k] = v
149697	}
149698	reqHeaders.Set("User-Agent", c.s.userAgent())
149699	if c.ifNoneMatch_ != "" {
149700		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
149701	}
149702	var body io.Reader = nil
149703	c.urlParams_.Set("alt", alt)
149704	c.urlParams_.Set("prettyPrint", "false")
149705	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/sslCertificates/{sslCertificate}")
149706	urls += "?" + c.urlParams_.Encode()
149707	req, err := http.NewRequest("GET", urls, body)
149708	if err != nil {
149709		return nil, err
149710	}
149711	req.Header = reqHeaders
149712	googleapi.Expand(req.URL, map[string]string{
149713		"project":        c.project,
149714		"sslCertificate": c.sslCertificate,
149715	})
149716	return gensupport.SendRequest(c.ctx_, c.s.client, req)
149717}
149718
149719// Do executes the "compute.sslCertificates.get" call.
149720// Exactly one of *SslCertificate or error will be non-nil. Any non-2xx
149721// status code is an error. Response headers are in either
149722// *SslCertificate.ServerResponse.Header or (if a response was returned
149723// at all) in error.(*googleapi.Error).Header. Use
149724// googleapi.IsNotModified to check whether the returned error was
149725// because http.StatusNotModified was returned.
149726func (c *SslCertificatesGetCall) Do(opts ...googleapi.CallOption) (*SslCertificate, error) {
149727	gensupport.SetOptions(c.urlParams_, opts...)
149728	res, err := c.doRequest("json")
149729	if res != nil && res.StatusCode == http.StatusNotModified {
149730		if res.Body != nil {
149731			res.Body.Close()
149732		}
149733		return nil, &googleapi.Error{
149734			Code:   res.StatusCode,
149735			Header: res.Header,
149736		}
149737	}
149738	if err != nil {
149739		return nil, err
149740	}
149741	defer googleapi.CloseBody(res)
149742	if err := googleapi.CheckResponse(res); err != nil {
149743		return nil, err
149744	}
149745	ret := &SslCertificate{
149746		ServerResponse: googleapi.ServerResponse{
149747			Header:         res.Header,
149748			HTTPStatusCode: res.StatusCode,
149749		},
149750	}
149751	target := &ret
149752	if err := gensupport.DecodeResponse(target, res); err != nil {
149753		return nil, err
149754	}
149755	return ret, nil
149756	// {
149757	//   "description": "Returns the specified SslCertificate resource. Gets a list of available SSL certificates by making a list() request. (== suppress_warning http-rest-shadowed ==)",
149758	//   "httpMethod": "GET",
149759	//   "id": "compute.sslCertificates.get",
149760	//   "parameterOrder": [
149761	//     "project",
149762	//     "sslCertificate"
149763	//   ],
149764	//   "parameters": {
149765	//     "project": {
149766	//       "description": "Project ID for this request.",
149767	//       "location": "path",
149768	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
149769	//       "required": true,
149770	//       "type": "string"
149771	//     },
149772	//     "sslCertificate": {
149773	//       "description": "Name of the SslCertificate resource to return.",
149774	//       "location": "path",
149775	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
149776	//       "required": true,
149777	//       "type": "string"
149778	//     }
149779	//   },
149780	//   "path": "{project}/global/sslCertificates/{sslCertificate}",
149781	//   "response": {
149782	//     "$ref": "SslCertificate"
149783	//   },
149784	//   "scopes": [
149785	//     "https://www.googleapis.com/auth/cloud-platform",
149786	//     "https://www.googleapis.com/auth/compute",
149787	//     "https://www.googleapis.com/auth/compute.readonly"
149788	//   ]
149789	// }
149790
149791}
149792
149793// method id "compute.sslCertificates.insert":
149794
149795type SslCertificatesInsertCall struct {
149796	s              *Service
149797	project        string
149798	sslcertificate *SslCertificate
149799	urlParams_     gensupport.URLParams
149800	ctx_           context.Context
149801	header_        http.Header
149802}
149803
149804// Insert: Creates a SslCertificate resource in the specified project
149805// using the data included in the request. (== suppress_warning
149806// http-rest-shadowed ==)
149807func (r *SslCertificatesService) Insert(project string, sslcertificate *SslCertificate) *SslCertificatesInsertCall {
149808	c := &SslCertificatesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
149809	c.project = project
149810	c.sslcertificate = sslcertificate
149811	return c
149812}
149813
149814// RequestId sets the optional parameter "requestId": An optional
149815// request ID to identify requests. Specify a unique request ID so that
149816// if you must retry your request, the server will know to ignore the
149817// request if it has already been completed.
149818//
149819// For example, consider a situation where you make an initial request
149820// and the request times out. If you make the request again with the
149821// same request ID, the server can check if original operation with the
149822// same request ID was received, and if so, will ignore the second
149823// request. This prevents clients from accidentally creating duplicate
149824// commitments.
149825//
149826// The request ID must be a valid UUID with the exception that zero UUID
149827// is not supported (00000000-0000-0000-0000-000000000000).
149828func (c *SslCertificatesInsertCall) RequestId(requestId string) *SslCertificatesInsertCall {
149829	c.urlParams_.Set("requestId", requestId)
149830	return c
149831}
149832
149833// Fields allows partial responses to be retrieved. See
149834// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
149835// for more information.
149836func (c *SslCertificatesInsertCall) Fields(s ...googleapi.Field) *SslCertificatesInsertCall {
149837	c.urlParams_.Set("fields", googleapi.CombineFields(s))
149838	return c
149839}
149840
149841// Context sets the context to be used in this call's Do method. Any
149842// pending HTTP request will be aborted if the provided context is
149843// canceled.
149844func (c *SslCertificatesInsertCall) Context(ctx context.Context) *SslCertificatesInsertCall {
149845	c.ctx_ = ctx
149846	return c
149847}
149848
149849// Header returns an http.Header that can be modified by the caller to
149850// add HTTP headers to the request.
149851func (c *SslCertificatesInsertCall) Header() http.Header {
149852	if c.header_ == nil {
149853		c.header_ = make(http.Header)
149854	}
149855	return c.header_
149856}
149857
149858func (c *SslCertificatesInsertCall) doRequest(alt string) (*http.Response, error) {
149859	reqHeaders := make(http.Header)
149860	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
149861	for k, v := range c.header_ {
149862		reqHeaders[k] = v
149863	}
149864	reqHeaders.Set("User-Agent", c.s.userAgent())
149865	var body io.Reader = nil
149866	body, err := googleapi.WithoutDataWrapper.JSONReader(c.sslcertificate)
149867	if err != nil {
149868		return nil, err
149869	}
149870	reqHeaders.Set("Content-Type", "application/json")
149871	c.urlParams_.Set("alt", alt)
149872	c.urlParams_.Set("prettyPrint", "false")
149873	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/sslCertificates")
149874	urls += "?" + c.urlParams_.Encode()
149875	req, err := http.NewRequest("POST", urls, body)
149876	if err != nil {
149877		return nil, err
149878	}
149879	req.Header = reqHeaders
149880	googleapi.Expand(req.URL, map[string]string{
149881		"project": c.project,
149882	})
149883	return gensupport.SendRequest(c.ctx_, c.s.client, req)
149884}
149885
149886// Do executes the "compute.sslCertificates.insert" call.
149887// Exactly one of *Operation or error will be non-nil. Any non-2xx
149888// status code is an error. Response headers are in either
149889// *Operation.ServerResponse.Header or (if a response was returned at
149890// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
149891// to check whether the returned error was because
149892// http.StatusNotModified was returned.
149893func (c *SslCertificatesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
149894	gensupport.SetOptions(c.urlParams_, opts...)
149895	res, err := c.doRequest("json")
149896	if res != nil && res.StatusCode == http.StatusNotModified {
149897		if res.Body != nil {
149898			res.Body.Close()
149899		}
149900		return nil, &googleapi.Error{
149901			Code:   res.StatusCode,
149902			Header: res.Header,
149903		}
149904	}
149905	if err != nil {
149906		return nil, err
149907	}
149908	defer googleapi.CloseBody(res)
149909	if err := googleapi.CheckResponse(res); err != nil {
149910		return nil, err
149911	}
149912	ret := &Operation{
149913		ServerResponse: googleapi.ServerResponse{
149914			Header:         res.Header,
149915			HTTPStatusCode: res.StatusCode,
149916		},
149917	}
149918	target := &ret
149919	if err := gensupport.DecodeResponse(target, res); err != nil {
149920		return nil, err
149921	}
149922	return ret, nil
149923	// {
149924	//   "description": "Creates a SslCertificate resource in the specified project using the data included in the request. (== suppress_warning http-rest-shadowed ==)",
149925	//   "httpMethod": "POST",
149926	//   "id": "compute.sslCertificates.insert",
149927	//   "parameterOrder": [
149928	//     "project"
149929	//   ],
149930	//   "parameters": {
149931	//     "project": {
149932	//       "description": "Project ID for this request.",
149933	//       "location": "path",
149934	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
149935	//       "required": true,
149936	//       "type": "string"
149937	//     },
149938	//     "requestId": {
149939	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
149940	//       "location": "query",
149941	//       "type": "string"
149942	//     }
149943	//   },
149944	//   "path": "{project}/global/sslCertificates",
149945	//   "request": {
149946	//     "$ref": "SslCertificate"
149947	//   },
149948	//   "response": {
149949	//     "$ref": "Operation"
149950	//   },
149951	//   "scopes": [
149952	//     "https://www.googleapis.com/auth/cloud-platform",
149953	//     "https://www.googleapis.com/auth/compute"
149954	//   ]
149955	// }
149956
149957}
149958
149959// method id "compute.sslCertificates.list":
149960
149961type SslCertificatesListCall struct {
149962	s            *Service
149963	project      string
149964	urlParams_   gensupport.URLParams
149965	ifNoneMatch_ string
149966	ctx_         context.Context
149967	header_      http.Header
149968}
149969
149970// List: Retrieves the list of SslCertificate resources available to the
149971// specified project. (== suppress_warning http-rest-shadowed ==)
149972func (r *SslCertificatesService) List(project string) *SslCertificatesListCall {
149973	c := &SslCertificatesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
149974	c.project = project
149975	return c
149976}
149977
149978// Filter sets the optional parameter "filter": A filter expression that
149979// filters resources listed in the response. The expression must specify
149980// the field name, a comparison operator, and the value that you want to
149981// use for filtering. The value must be a string, a number, or a
149982// boolean. The comparison operator must be either =, !=, >, or <.
149983//
149984// For example, if you are filtering Compute Engine instances, you can
149985// exclude instances named example-instance by specifying name !=
149986// example-instance.
149987//
149988// You can also filter nested fields. For example, you could specify
149989// scheduling.automaticRestart = false to include instances only if they
149990// are not scheduled for automatic restarts. You can use filtering on
149991// nested fields to filter based on resource labels.
149992//
149993// To filter on multiple expressions, provide each separate expression
149994// within parentheses. For example, (scheduling.automaticRestart = true)
149995// (cpuPlatform = "Intel Skylake"). By default, each expression is an
149996// AND expression. However, you can include AND and OR expressions
149997// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
149998// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
149999// true).
150000func (c *SslCertificatesListCall) Filter(filter string) *SslCertificatesListCall {
150001	c.urlParams_.Set("filter", filter)
150002	return c
150003}
150004
150005// MaxResults sets the optional parameter "maxResults": The maximum
150006// number of results per page that should be returned. If the number of
150007// available results is larger than maxResults, Compute Engine returns a
150008// nextPageToken that can be used to get the next page of results in
150009// subsequent list requests. Acceptable values are 0 to 500, inclusive.
150010// (Default: 500)
150011func (c *SslCertificatesListCall) MaxResults(maxResults int64) *SslCertificatesListCall {
150012	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
150013	return c
150014}
150015
150016// OrderBy sets the optional parameter "orderBy": Sorts list results by
150017// a certain order. By default, results are returned in alphanumerical
150018// order based on the resource name.
150019//
150020// You can also sort results in descending order based on the creation
150021// timestamp using orderBy="creationTimestamp desc". This sorts results
150022// based on the creationTimestamp field in reverse chronological order
150023// (newest result first). Use this to sort resources like operations so
150024// that the newest operation is returned first.
150025//
150026// Currently, only sorting by name or creationTimestamp desc is
150027// supported.
150028func (c *SslCertificatesListCall) OrderBy(orderBy string) *SslCertificatesListCall {
150029	c.urlParams_.Set("orderBy", orderBy)
150030	return c
150031}
150032
150033// PageToken sets the optional parameter "pageToken": Specifies a page
150034// token to use. Set pageToken to the nextPageToken returned by a
150035// previous list request to get the next page of results.
150036func (c *SslCertificatesListCall) PageToken(pageToken string) *SslCertificatesListCall {
150037	c.urlParams_.Set("pageToken", pageToken)
150038	return c
150039}
150040
150041// Fields allows partial responses to be retrieved. See
150042// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
150043// for more information.
150044func (c *SslCertificatesListCall) Fields(s ...googleapi.Field) *SslCertificatesListCall {
150045	c.urlParams_.Set("fields", googleapi.CombineFields(s))
150046	return c
150047}
150048
150049// IfNoneMatch sets the optional parameter which makes the operation
150050// fail if the object's ETag matches the given value. This is useful for
150051// getting updates only after the object has changed since the last
150052// request. Use googleapi.IsNotModified to check whether the response
150053// error from Do is the result of In-None-Match.
150054func (c *SslCertificatesListCall) IfNoneMatch(entityTag string) *SslCertificatesListCall {
150055	c.ifNoneMatch_ = entityTag
150056	return c
150057}
150058
150059// Context sets the context to be used in this call's Do method. Any
150060// pending HTTP request will be aborted if the provided context is
150061// canceled.
150062func (c *SslCertificatesListCall) Context(ctx context.Context) *SslCertificatesListCall {
150063	c.ctx_ = ctx
150064	return c
150065}
150066
150067// Header returns an http.Header that can be modified by the caller to
150068// add HTTP headers to the request.
150069func (c *SslCertificatesListCall) Header() http.Header {
150070	if c.header_ == nil {
150071		c.header_ = make(http.Header)
150072	}
150073	return c.header_
150074}
150075
150076func (c *SslCertificatesListCall) doRequest(alt string) (*http.Response, error) {
150077	reqHeaders := make(http.Header)
150078	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
150079	for k, v := range c.header_ {
150080		reqHeaders[k] = v
150081	}
150082	reqHeaders.Set("User-Agent", c.s.userAgent())
150083	if c.ifNoneMatch_ != "" {
150084		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
150085	}
150086	var body io.Reader = nil
150087	c.urlParams_.Set("alt", alt)
150088	c.urlParams_.Set("prettyPrint", "false")
150089	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/sslCertificates")
150090	urls += "?" + c.urlParams_.Encode()
150091	req, err := http.NewRequest("GET", urls, body)
150092	if err != nil {
150093		return nil, err
150094	}
150095	req.Header = reqHeaders
150096	googleapi.Expand(req.URL, map[string]string{
150097		"project": c.project,
150098	})
150099	return gensupport.SendRequest(c.ctx_, c.s.client, req)
150100}
150101
150102// Do executes the "compute.sslCertificates.list" call.
150103// Exactly one of *SslCertificateList or error will be non-nil. Any
150104// non-2xx status code is an error. Response headers are in either
150105// *SslCertificateList.ServerResponse.Header or (if a response was
150106// returned at all) in error.(*googleapi.Error).Header. Use
150107// googleapi.IsNotModified to check whether the returned error was
150108// because http.StatusNotModified was returned.
150109func (c *SslCertificatesListCall) Do(opts ...googleapi.CallOption) (*SslCertificateList, error) {
150110	gensupport.SetOptions(c.urlParams_, opts...)
150111	res, err := c.doRequest("json")
150112	if res != nil && res.StatusCode == http.StatusNotModified {
150113		if res.Body != nil {
150114			res.Body.Close()
150115		}
150116		return nil, &googleapi.Error{
150117			Code:   res.StatusCode,
150118			Header: res.Header,
150119		}
150120	}
150121	if err != nil {
150122		return nil, err
150123	}
150124	defer googleapi.CloseBody(res)
150125	if err := googleapi.CheckResponse(res); err != nil {
150126		return nil, err
150127	}
150128	ret := &SslCertificateList{
150129		ServerResponse: googleapi.ServerResponse{
150130			Header:         res.Header,
150131			HTTPStatusCode: res.StatusCode,
150132		},
150133	}
150134	target := &ret
150135	if err := gensupport.DecodeResponse(target, res); err != nil {
150136		return nil, err
150137	}
150138	return ret, nil
150139	// {
150140	//   "description": "Retrieves the list of SslCertificate resources available to the specified project. (== suppress_warning http-rest-shadowed ==)",
150141	//   "httpMethod": "GET",
150142	//   "id": "compute.sslCertificates.list",
150143	//   "parameterOrder": [
150144	//     "project"
150145	//   ],
150146	//   "parameters": {
150147	//     "filter": {
150148	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
150149	//       "location": "query",
150150	//       "type": "string"
150151	//     },
150152	//     "maxResults": {
150153	//       "default": "500",
150154	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
150155	//       "format": "uint32",
150156	//       "location": "query",
150157	//       "minimum": "0",
150158	//       "type": "integer"
150159	//     },
150160	//     "orderBy": {
150161	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
150162	//       "location": "query",
150163	//       "type": "string"
150164	//     },
150165	//     "pageToken": {
150166	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
150167	//       "location": "query",
150168	//       "type": "string"
150169	//     },
150170	//     "project": {
150171	//       "description": "Project ID for this request.",
150172	//       "location": "path",
150173	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
150174	//       "required": true,
150175	//       "type": "string"
150176	//     }
150177	//   },
150178	//   "path": "{project}/global/sslCertificates",
150179	//   "response": {
150180	//     "$ref": "SslCertificateList"
150181	//   },
150182	//   "scopes": [
150183	//     "https://www.googleapis.com/auth/cloud-platform",
150184	//     "https://www.googleapis.com/auth/compute",
150185	//     "https://www.googleapis.com/auth/compute.readonly"
150186	//   ]
150187	// }
150188
150189}
150190
150191// Pages invokes f for each page of results.
150192// A non-nil error returned from f will halt the iteration.
150193// The provided context supersedes any context provided to the Context method.
150194func (c *SslCertificatesListCall) Pages(ctx context.Context, f func(*SslCertificateList) error) error {
150195	c.ctx_ = ctx
150196	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
150197	for {
150198		x, err := c.Do()
150199		if err != nil {
150200			return err
150201		}
150202		if err := f(x); err != nil {
150203			return err
150204		}
150205		if x.NextPageToken == "" {
150206			return nil
150207		}
150208		c.PageToken(x.NextPageToken)
150209	}
150210}
150211
150212// method id "compute.sslCertificates.testIamPermissions":
150213
150214type SslCertificatesTestIamPermissionsCall struct {
150215	s                      *Service
150216	project                string
150217	resource               string
150218	testpermissionsrequest *TestPermissionsRequest
150219	urlParams_             gensupport.URLParams
150220	ctx_                   context.Context
150221	header_                http.Header
150222}
150223
150224// TestIamPermissions: Returns permissions that a caller has on the
150225// specified resource. (== suppress_warning http-rest-shadowed ==)
150226func (r *SslCertificatesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *SslCertificatesTestIamPermissionsCall {
150227	c := &SslCertificatesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
150228	c.project = project
150229	c.resource = resource
150230	c.testpermissionsrequest = testpermissionsrequest
150231	return c
150232}
150233
150234// Fields allows partial responses to be retrieved. See
150235// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
150236// for more information.
150237func (c *SslCertificatesTestIamPermissionsCall) Fields(s ...googleapi.Field) *SslCertificatesTestIamPermissionsCall {
150238	c.urlParams_.Set("fields", googleapi.CombineFields(s))
150239	return c
150240}
150241
150242// Context sets the context to be used in this call's Do method. Any
150243// pending HTTP request will be aborted if the provided context is
150244// canceled.
150245func (c *SslCertificatesTestIamPermissionsCall) Context(ctx context.Context) *SslCertificatesTestIamPermissionsCall {
150246	c.ctx_ = ctx
150247	return c
150248}
150249
150250// Header returns an http.Header that can be modified by the caller to
150251// add HTTP headers to the request.
150252func (c *SslCertificatesTestIamPermissionsCall) Header() http.Header {
150253	if c.header_ == nil {
150254		c.header_ = make(http.Header)
150255	}
150256	return c.header_
150257}
150258
150259func (c *SslCertificatesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
150260	reqHeaders := make(http.Header)
150261	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
150262	for k, v := range c.header_ {
150263		reqHeaders[k] = v
150264	}
150265	reqHeaders.Set("User-Agent", c.s.userAgent())
150266	var body io.Reader = nil
150267	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
150268	if err != nil {
150269		return nil, err
150270	}
150271	reqHeaders.Set("Content-Type", "application/json")
150272	c.urlParams_.Set("alt", alt)
150273	c.urlParams_.Set("prettyPrint", "false")
150274	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/sslCertificates/{resource}/testIamPermissions")
150275	urls += "?" + c.urlParams_.Encode()
150276	req, err := http.NewRequest("POST", urls, body)
150277	if err != nil {
150278		return nil, err
150279	}
150280	req.Header = reqHeaders
150281	googleapi.Expand(req.URL, map[string]string{
150282		"project":  c.project,
150283		"resource": c.resource,
150284	})
150285	return gensupport.SendRequest(c.ctx_, c.s.client, req)
150286}
150287
150288// Do executes the "compute.sslCertificates.testIamPermissions" call.
150289// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
150290// non-2xx status code is an error. Response headers are in either
150291// *TestPermissionsResponse.ServerResponse.Header or (if a response was
150292// returned at all) in error.(*googleapi.Error).Header. Use
150293// googleapi.IsNotModified to check whether the returned error was
150294// because http.StatusNotModified was returned.
150295func (c *SslCertificatesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
150296	gensupport.SetOptions(c.urlParams_, opts...)
150297	res, err := c.doRequest("json")
150298	if res != nil && res.StatusCode == http.StatusNotModified {
150299		if res.Body != nil {
150300			res.Body.Close()
150301		}
150302		return nil, &googleapi.Error{
150303			Code:   res.StatusCode,
150304			Header: res.Header,
150305		}
150306	}
150307	if err != nil {
150308		return nil, err
150309	}
150310	defer googleapi.CloseBody(res)
150311	if err := googleapi.CheckResponse(res); err != nil {
150312		return nil, err
150313	}
150314	ret := &TestPermissionsResponse{
150315		ServerResponse: googleapi.ServerResponse{
150316			Header:         res.Header,
150317			HTTPStatusCode: res.StatusCode,
150318		},
150319	}
150320	target := &ret
150321	if err := gensupport.DecodeResponse(target, res); err != nil {
150322		return nil, err
150323	}
150324	return ret, nil
150325	// {
150326	//   "description": "Returns permissions that a caller has on the specified resource. (== suppress_warning http-rest-shadowed ==)",
150327	//   "httpMethod": "POST",
150328	//   "id": "compute.sslCertificates.testIamPermissions",
150329	//   "parameterOrder": [
150330	//     "project",
150331	//     "resource"
150332	//   ],
150333	//   "parameters": {
150334	//     "project": {
150335	//       "description": "Project ID for this request.",
150336	//       "location": "path",
150337	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
150338	//       "required": true,
150339	//       "type": "string"
150340	//     },
150341	//     "resource": {
150342	//       "description": "Name or id of the resource for this request.",
150343	//       "location": "path",
150344	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
150345	//       "required": true,
150346	//       "type": "string"
150347	//     }
150348	//   },
150349	//   "path": "{project}/global/sslCertificates/{resource}/testIamPermissions",
150350	//   "request": {
150351	//     "$ref": "TestPermissionsRequest"
150352	//   },
150353	//   "response": {
150354	//     "$ref": "TestPermissionsResponse"
150355	//   },
150356	//   "scopes": [
150357	//     "https://www.googleapis.com/auth/cloud-platform",
150358	//     "https://www.googleapis.com/auth/compute",
150359	//     "https://www.googleapis.com/auth/compute.readonly"
150360	//   ]
150361	// }
150362
150363}
150364
150365// method id "compute.sslPolicies.delete":
150366
150367type SslPoliciesDeleteCall struct {
150368	s          *Service
150369	project    string
150370	sslPolicy  string
150371	urlParams_ gensupport.URLParams
150372	ctx_       context.Context
150373	header_    http.Header
150374}
150375
150376// Delete: Deletes the specified SSL policy. The SSL policy resource can
150377// be deleted only if it is not in use by any TargetHttpsProxy or
150378// TargetSslProxy resources. (== suppress_warning http-rest-shadowed ==)
150379func (r *SslPoliciesService) Delete(project string, sslPolicy string) *SslPoliciesDeleteCall {
150380	c := &SslPoliciesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
150381	c.project = project
150382	c.sslPolicy = sslPolicy
150383	return c
150384}
150385
150386// RequestId sets the optional parameter "requestId": An optional
150387// request ID to identify requests. Specify a unique request ID so that
150388// if you must retry your request, the server will know to ignore the
150389// request if it has already been completed.
150390//
150391// For example, consider a situation where you make an initial request
150392// and the request times out. If you make the request again with the
150393// same request ID, the server can check if original operation with the
150394// same request ID was received, and if so, will ignore the second
150395// request. This prevents clients from accidentally creating duplicate
150396// commitments.
150397//
150398// The request ID must be a valid UUID with the exception that zero UUID
150399// is not supported (00000000-0000-0000-0000-000000000000).
150400func (c *SslPoliciesDeleteCall) RequestId(requestId string) *SslPoliciesDeleteCall {
150401	c.urlParams_.Set("requestId", requestId)
150402	return c
150403}
150404
150405// Fields allows partial responses to be retrieved. See
150406// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
150407// for more information.
150408func (c *SslPoliciesDeleteCall) Fields(s ...googleapi.Field) *SslPoliciesDeleteCall {
150409	c.urlParams_.Set("fields", googleapi.CombineFields(s))
150410	return c
150411}
150412
150413// Context sets the context to be used in this call's Do method. Any
150414// pending HTTP request will be aborted if the provided context is
150415// canceled.
150416func (c *SslPoliciesDeleteCall) Context(ctx context.Context) *SslPoliciesDeleteCall {
150417	c.ctx_ = ctx
150418	return c
150419}
150420
150421// Header returns an http.Header that can be modified by the caller to
150422// add HTTP headers to the request.
150423func (c *SslPoliciesDeleteCall) Header() http.Header {
150424	if c.header_ == nil {
150425		c.header_ = make(http.Header)
150426	}
150427	return c.header_
150428}
150429
150430func (c *SslPoliciesDeleteCall) doRequest(alt string) (*http.Response, error) {
150431	reqHeaders := make(http.Header)
150432	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
150433	for k, v := range c.header_ {
150434		reqHeaders[k] = v
150435	}
150436	reqHeaders.Set("User-Agent", c.s.userAgent())
150437	var body io.Reader = nil
150438	c.urlParams_.Set("alt", alt)
150439	c.urlParams_.Set("prettyPrint", "false")
150440	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/sslPolicies/{sslPolicy}")
150441	urls += "?" + c.urlParams_.Encode()
150442	req, err := http.NewRequest("DELETE", urls, body)
150443	if err != nil {
150444		return nil, err
150445	}
150446	req.Header = reqHeaders
150447	googleapi.Expand(req.URL, map[string]string{
150448		"project":   c.project,
150449		"sslPolicy": c.sslPolicy,
150450	})
150451	return gensupport.SendRequest(c.ctx_, c.s.client, req)
150452}
150453
150454// Do executes the "compute.sslPolicies.delete" call.
150455// Exactly one of *Operation or error will be non-nil. Any non-2xx
150456// status code is an error. Response headers are in either
150457// *Operation.ServerResponse.Header or (if a response was returned at
150458// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
150459// to check whether the returned error was because
150460// http.StatusNotModified was returned.
150461func (c *SslPoliciesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
150462	gensupport.SetOptions(c.urlParams_, opts...)
150463	res, err := c.doRequest("json")
150464	if res != nil && res.StatusCode == http.StatusNotModified {
150465		if res.Body != nil {
150466			res.Body.Close()
150467		}
150468		return nil, &googleapi.Error{
150469			Code:   res.StatusCode,
150470			Header: res.Header,
150471		}
150472	}
150473	if err != nil {
150474		return nil, err
150475	}
150476	defer googleapi.CloseBody(res)
150477	if err := googleapi.CheckResponse(res); err != nil {
150478		return nil, err
150479	}
150480	ret := &Operation{
150481		ServerResponse: googleapi.ServerResponse{
150482			Header:         res.Header,
150483			HTTPStatusCode: res.StatusCode,
150484		},
150485	}
150486	target := &ret
150487	if err := gensupport.DecodeResponse(target, res); err != nil {
150488		return nil, err
150489	}
150490	return ret, nil
150491	// {
150492	//   "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. (== suppress_warning http-rest-shadowed ==)",
150493	//   "httpMethod": "DELETE",
150494	//   "id": "compute.sslPolicies.delete",
150495	//   "parameterOrder": [
150496	//     "project",
150497	//     "sslPolicy"
150498	//   ],
150499	//   "parameters": {
150500	//     "project": {
150501	//       "description": "Project ID for this request.",
150502	//       "location": "path",
150503	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
150504	//       "required": true,
150505	//       "type": "string"
150506	//     },
150507	//     "requestId": {
150508	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
150509	//       "location": "query",
150510	//       "type": "string"
150511	//     },
150512	//     "sslPolicy": {
150513	//       "description": "Name of the SSL policy to delete. The name must be 1-63 characters long, and comply with RFC1035.",
150514	//       "location": "path",
150515	//       "required": true,
150516	//       "type": "string"
150517	//     }
150518	//   },
150519	//   "path": "{project}/global/sslPolicies/{sslPolicy}",
150520	//   "response": {
150521	//     "$ref": "Operation"
150522	//   },
150523	//   "scopes": [
150524	//     "https://www.googleapis.com/auth/cloud-platform",
150525	//     "https://www.googleapis.com/auth/compute"
150526	//   ]
150527	// }
150528
150529}
150530
150531// method id "compute.sslPolicies.get":
150532
150533type SslPoliciesGetCall struct {
150534	s            *Service
150535	project      string
150536	sslPolicy    string
150537	urlParams_   gensupport.URLParams
150538	ifNoneMatch_ string
150539	ctx_         context.Context
150540	header_      http.Header
150541}
150542
150543// Get: Lists all of the ordered rules present in a single specified
150544// policy. (== suppress_warning http-rest-shadowed ==)
150545func (r *SslPoliciesService) Get(project string, sslPolicy string) *SslPoliciesGetCall {
150546	c := &SslPoliciesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
150547	c.project = project
150548	c.sslPolicy = sslPolicy
150549	return c
150550}
150551
150552// Fields allows partial responses to be retrieved. See
150553// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
150554// for more information.
150555func (c *SslPoliciesGetCall) Fields(s ...googleapi.Field) *SslPoliciesGetCall {
150556	c.urlParams_.Set("fields", googleapi.CombineFields(s))
150557	return c
150558}
150559
150560// IfNoneMatch sets the optional parameter which makes the operation
150561// fail if the object's ETag matches the given value. This is useful for
150562// getting updates only after the object has changed since the last
150563// request. Use googleapi.IsNotModified to check whether the response
150564// error from Do is the result of In-None-Match.
150565func (c *SslPoliciesGetCall) IfNoneMatch(entityTag string) *SslPoliciesGetCall {
150566	c.ifNoneMatch_ = entityTag
150567	return c
150568}
150569
150570// Context sets the context to be used in this call's Do method. Any
150571// pending HTTP request will be aborted if the provided context is
150572// canceled.
150573func (c *SslPoliciesGetCall) Context(ctx context.Context) *SslPoliciesGetCall {
150574	c.ctx_ = ctx
150575	return c
150576}
150577
150578// Header returns an http.Header that can be modified by the caller to
150579// add HTTP headers to the request.
150580func (c *SslPoliciesGetCall) Header() http.Header {
150581	if c.header_ == nil {
150582		c.header_ = make(http.Header)
150583	}
150584	return c.header_
150585}
150586
150587func (c *SslPoliciesGetCall) doRequest(alt string) (*http.Response, error) {
150588	reqHeaders := make(http.Header)
150589	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
150590	for k, v := range c.header_ {
150591		reqHeaders[k] = v
150592	}
150593	reqHeaders.Set("User-Agent", c.s.userAgent())
150594	if c.ifNoneMatch_ != "" {
150595		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
150596	}
150597	var body io.Reader = nil
150598	c.urlParams_.Set("alt", alt)
150599	c.urlParams_.Set("prettyPrint", "false")
150600	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/sslPolicies/{sslPolicy}")
150601	urls += "?" + c.urlParams_.Encode()
150602	req, err := http.NewRequest("GET", urls, body)
150603	if err != nil {
150604		return nil, err
150605	}
150606	req.Header = reqHeaders
150607	googleapi.Expand(req.URL, map[string]string{
150608		"project":   c.project,
150609		"sslPolicy": c.sslPolicy,
150610	})
150611	return gensupport.SendRequest(c.ctx_, c.s.client, req)
150612}
150613
150614// Do executes the "compute.sslPolicies.get" call.
150615// Exactly one of *SslPolicy or error will be non-nil. Any non-2xx
150616// status code is an error. Response headers are in either
150617// *SslPolicy.ServerResponse.Header or (if a response was returned at
150618// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
150619// to check whether the returned error was because
150620// http.StatusNotModified was returned.
150621func (c *SslPoliciesGetCall) Do(opts ...googleapi.CallOption) (*SslPolicy, error) {
150622	gensupport.SetOptions(c.urlParams_, opts...)
150623	res, err := c.doRequest("json")
150624	if res != nil && res.StatusCode == http.StatusNotModified {
150625		if res.Body != nil {
150626			res.Body.Close()
150627		}
150628		return nil, &googleapi.Error{
150629			Code:   res.StatusCode,
150630			Header: res.Header,
150631		}
150632	}
150633	if err != nil {
150634		return nil, err
150635	}
150636	defer googleapi.CloseBody(res)
150637	if err := googleapi.CheckResponse(res); err != nil {
150638		return nil, err
150639	}
150640	ret := &SslPolicy{
150641		ServerResponse: googleapi.ServerResponse{
150642			Header:         res.Header,
150643			HTTPStatusCode: res.StatusCode,
150644		},
150645	}
150646	target := &ret
150647	if err := gensupport.DecodeResponse(target, res); err != nil {
150648		return nil, err
150649	}
150650	return ret, nil
150651	// {
150652	//   "description": "Lists all of the ordered rules present in a single specified policy. (== suppress_warning http-rest-shadowed ==)",
150653	//   "httpMethod": "GET",
150654	//   "id": "compute.sslPolicies.get",
150655	//   "parameterOrder": [
150656	//     "project",
150657	//     "sslPolicy"
150658	//   ],
150659	//   "parameters": {
150660	//     "project": {
150661	//       "description": "Project ID for this request.",
150662	//       "location": "path",
150663	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
150664	//       "required": true,
150665	//       "type": "string"
150666	//     },
150667	//     "sslPolicy": {
150668	//       "description": "Name of the SSL policy to update. The name must be 1-63 characters long, and comply with RFC1035.",
150669	//       "location": "path",
150670	//       "required": true,
150671	//       "type": "string"
150672	//     }
150673	//   },
150674	//   "path": "{project}/global/sslPolicies/{sslPolicy}",
150675	//   "response": {
150676	//     "$ref": "SslPolicy"
150677	//   },
150678	//   "scopes": [
150679	//     "https://www.googleapis.com/auth/cloud-platform",
150680	//     "https://www.googleapis.com/auth/compute",
150681	//     "https://www.googleapis.com/auth/compute.readonly"
150682	//   ]
150683	// }
150684
150685}
150686
150687// method id "compute.sslPolicies.insert":
150688
150689type SslPoliciesInsertCall struct {
150690	s          *Service
150691	project    string
150692	sslpolicy  *SslPolicy
150693	urlParams_ gensupport.URLParams
150694	ctx_       context.Context
150695	header_    http.Header
150696}
150697
150698// Insert: Returns the specified SSL policy resource. Gets a list of
150699// available SSL policies by making a list() request. (==
150700// suppress_warning http-rest-shadowed ==)
150701func (r *SslPoliciesService) Insert(project string, sslpolicy *SslPolicy) *SslPoliciesInsertCall {
150702	c := &SslPoliciesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
150703	c.project = project
150704	c.sslpolicy = sslpolicy
150705	return c
150706}
150707
150708// RequestId sets the optional parameter "requestId": An optional
150709// request ID to identify requests. Specify a unique request ID so that
150710// if you must retry your request, the server will know to ignore the
150711// request if it has already been completed.
150712//
150713// For example, consider a situation where you make an initial request
150714// and the request times out. If you make the request again with the
150715// same request ID, the server can check if original operation with the
150716// same request ID was received, and if so, will ignore the second
150717// request. This prevents clients from accidentally creating duplicate
150718// commitments.
150719//
150720// The request ID must be a valid UUID with the exception that zero UUID
150721// is not supported (00000000-0000-0000-0000-000000000000).
150722func (c *SslPoliciesInsertCall) RequestId(requestId string) *SslPoliciesInsertCall {
150723	c.urlParams_.Set("requestId", requestId)
150724	return c
150725}
150726
150727// Fields allows partial responses to be retrieved. See
150728// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
150729// for more information.
150730func (c *SslPoliciesInsertCall) Fields(s ...googleapi.Field) *SslPoliciesInsertCall {
150731	c.urlParams_.Set("fields", googleapi.CombineFields(s))
150732	return c
150733}
150734
150735// Context sets the context to be used in this call's Do method. Any
150736// pending HTTP request will be aborted if the provided context is
150737// canceled.
150738func (c *SslPoliciesInsertCall) Context(ctx context.Context) *SslPoliciesInsertCall {
150739	c.ctx_ = ctx
150740	return c
150741}
150742
150743// Header returns an http.Header that can be modified by the caller to
150744// add HTTP headers to the request.
150745func (c *SslPoliciesInsertCall) Header() http.Header {
150746	if c.header_ == nil {
150747		c.header_ = make(http.Header)
150748	}
150749	return c.header_
150750}
150751
150752func (c *SslPoliciesInsertCall) doRequest(alt string) (*http.Response, error) {
150753	reqHeaders := make(http.Header)
150754	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
150755	for k, v := range c.header_ {
150756		reqHeaders[k] = v
150757	}
150758	reqHeaders.Set("User-Agent", c.s.userAgent())
150759	var body io.Reader = nil
150760	body, err := googleapi.WithoutDataWrapper.JSONReader(c.sslpolicy)
150761	if err != nil {
150762		return nil, err
150763	}
150764	reqHeaders.Set("Content-Type", "application/json")
150765	c.urlParams_.Set("alt", alt)
150766	c.urlParams_.Set("prettyPrint", "false")
150767	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/sslPolicies")
150768	urls += "?" + c.urlParams_.Encode()
150769	req, err := http.NewRequest("POST", urls, body)
150770	if err != nil {
150771		return nil, err
150772	}
150773	req.Header = reqHeaders
150774	googleapi.Expand(req.URL, map[string]string{
150775		"project": c.project,
150776	})
150777	return gensupport.SendRequest(c.ctx_, c.s.client, req)
150778}
150779
150780// Do executes the "compute.sslPolicies.insert" call.
150781// Exactly one of *Operation or error will be non-nil. Any non-2xx
150782// status code is an error. Response headers are in either
150783// *Operation.ServerResponse.Header or (if a response was returned at
150784// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
150785// to check whether the returned error was because
150786// http.StatusNotModified was returned.
150787func (c *SslPoliciesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
150788	gensupport.SetOptions(c.urlParams_, opts...)
150789	res, err := c.doRequest("json")
150790	if res != nil && res.StatusCode == http.StatusNotModified {
150791		if res.Body != nil {
150792			res.Body.Close()
150793		}
150794		return nil, &googleapi.Error{
150795			Code:   res.StatusCode,
150796			Header: res.Header,
150797		}
150798	}
150799	if err != nil {
150800		return nil, err
150801	}
150802	defer googleapi.CloseBody(res)
150803	if err := googleapi.CheckResponse(res); err != nil {
150804		return nil, err
150805	}
150806	ret := &Operation{
150807		ServerResponse: googleapi.ServerResponse{
150808			Header:         res.Header,
150809			HTTPStatusCode: res.StatusCode,
150810		},
150811	}
150812	target := &ret
150813	if err := gensupport.DecodeResponse(target, res); err != nil {
150814		return nil, err
150815	}
150816	return ret, nil
150817	// {
150818	//   "description": "Returns the specified SSL policy resource. Gets a list of available SSL policies by making a list() request. (== suppress_warning http-rest-shadowed ==)",
150819	//   "httpMethod": "POST",
150820	//   "id": "compute.sslPolicies.insert",
150821	//   "parameterOrder": [
150822	//     "project"
150823	//   ],
150824	//   "parameters": {
150825	//     "project": {
150826	//       "description": "Project ID for this request.",
150827	//       "location": "path",
150828	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
150829	//       "required": true,
150830	//       "type": "string"
150831	//     },
150832	//     "requestId": {
150833	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
150834	//       "location": "query",
150835	//       "type": "string"
150836	//     }
150837	//   },
150838	//   "path": "{project}/global/sslPolicies",
150839	//   "request": {
150840	//     "$ref": "SslPolicy"
150841	//   },
150842	//   "response": {
150843	//     "$ref": "Operation"
150844	//   },
150845	//   "scopes": [
150846	//     "https://www.googleapis.com/auth/cloud-platform",
150847	//     "https://www.googleapis.com/auth/compute"
150848	//   ]
150849	// }
150850
150851}
150852
150853// method id "compute.sslPolicies.list":
150854
150855type SslPoliciesListCall struct {
150856	s            *Service
150857	project      string
150858	urlParams_   gensupport.URLParams
150859	ifNoneMatch_ string
150860	ctx_         context.Context
150861	header_      http.Header
150862}
150863
150864// List: Lists all the SSL policies that have been configured for the
150865// specified project. (== suppress_warning http-rest-shadowed ==)
150866func (r *SslPoliciesService) List(project string) *SslPoliciesListCall {
150867	c := &SslPoliciesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
150868	c.project = project
150869	return c
150870}
150871
150872// Filter sets the optional parameter "filter": A filter expression that
150873// filters resources listed in the response. The expression must specify
150874// the field name, a comparison operator, and the value that you want to
150875// use for filtering. The value must be a string, a number, or a
150876// boolean. The comparison operator must be either =, !=, >, or <.
150877//
150878// For example, if you are filtering Compute Engine instances, you can
150879// exclude instances named example-instance by specifying name !=
150880// example-instance.
150881//
150882// You can also filter nested fields. For example, you could specify
150883// scheduling.automaticRestart = false to include instances only if they
150884// are not scheduled for automatic restarts. You can use filtering on
150885// nested fields to filter based on resource labels.
150886//
150887// To filter on multiple expressions, provide each separate expression
150888// within parentheses. For example, (scheduling.automaticRestart = true)
150889// (cpuPlatform = "Intel Skylake"). By default, each expression is an
150890// AND expression. However, you can include AND and OR expressions
150891// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
150892// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
150893// true).
150894func (c *SslPoliciesListCall) Filter(filter string) *SslPoliciesListCall {
150895	c.urlParams_.Set("filter", filter)
150896	return c
150897}
150898
150899// MaxResults sets the optional parameter "maxResults": The maximum
150900// number of results per page that should be returned. If the number of
150901// available results is larger than maxResults, Compute Engine returns a
150902// nextPageToken that can be used to get the next page of results in
150903// subsequent list requests. Acceptable values are 0 to 500, inclusive.
150904// (Default: 500)
150905func (c *SslPoliciesListCall) MaxResults(maxResults int64) *SslPoliciesListCall {
150906	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
150907	return c
150908}
150909
150910// OrderBy sets the optional parameter "orderBy": Sorts list results by
150911// a certain order. By default, results are returned in alphanumerical
150912// order based on the resource name.
150913//
150914// You can also sort results in descending order based on the creation
150915// timestamp using orderBy="creationTimestamp desc". This sorts results
150916// based on the creationTimestamp field in reverse chronological order
150917// (newest result first). Use this to sort resources like operations so
150918// that the newest operation is returned first.
150919//
150920// Currently, only sorting by name or creationTimestamp desc is
150921// supported.
150922func (c *SslPoliciesListCall) OrderBy(orderBy string) *SslPoliciesListCall {
150923	c.urlParams_.Set("orderBy", orderBy)
150924	return c
150925}
150926
150927// PageToken sets the optional parameter "pageToken": Specifies a page
150928// token to use. Set pageToken to the nextPageToken returned by a
150929// previous list request to get the next page of results.
150930func (c *SslPoliciesListCall) PageToken(pageToken string) *SslPoliciesListCall {
150931	c.urlParams_.Set("pageToken", pageToken)
150932	return c
150933}
150934
150935// Fields allows partial responses to be retrieved. See
150936// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
150937// for more information.
150938func (c *SslPoliciesListCall) Fields(s ...googleapi.Field) *SslPoliciesListCall {
150939	c.urlParams_.Set("fields", googleapi.CombineFields(s))
150940	return c
150941}
150942
150943// IfNoneMatch sets the optional parameter which makes the operation
150944// fail if the object's ETag matches the given value. This is useful for
150945// getting updates only after the object has changed since the last
150946// request. Use googleapi.IsNotModified to check whether the response
150947// error from Do is the result of In-None-Match.
150948func (c *SslPoliciesListCall) IfNoneMatch(entityTag string) *SslPoliciesListCall {
150949	c.ifNoneMatch_ = entityTag
150950	return c
150951}
150952
150953// Context sets the context to be used in this call's Do method. Any
150954// pending HTTP request will be aborted if the provided context is
150955// canceled.
150956func (c *SslPoliciesListCall) Context(ctx context.Context) *SslPoliciesListCall {
150957	c.ctx_ = ctx
150958	return c
150959}
150960
150961// Header returns an http.Header that can be modified by the caller to
150962// add HTTP headers to the request.
150963func (c *SslPoliciesListCall) Header() http.Header {
150964	if c.header_ == nil {
150965		c.header_ = make(http.Header)
150966	}
150967	return c.header_
150968}
150969
150970func (c *SslPoliciesListCall) doRequest(alt string) (*http.Response, error) {
150971	reqHeaders := make(http.Header)
150972	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
150973	for k, v := range c.header_ {
150974		reqHeaders[k] = v
150975	}
150976	reqHeaders.Set("User-Agent", c.s.userAgent())
150977	if c.ifNoneMatch_ != "" {
150978		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
150979	}
150980	var body io.Reader = nil
150981	c.urlParams_.Set("alt", alt)
150982	c.urlParams_.Set("prettyPrint", "false")
150983	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/sslPolicies")
150984	urls += "?" + c.urlParams_.Encode()
150985	req, err := http.NewRequest("GET", urls, body)
150986	if err != nil {
150987		return nil, err
150988	}
150989	req.Header = reqHeaders
150990	googleapi.Expand(req.URL, map[string]string{
150991		"project": c.project,
150992	})
150993	return gensupport.SendRequest(c.ctx_, c.s.client, req)
150994}
150995
150996// Do executes the "compute.sslPolicies.list" call.
150997// Exactly one of *SslPoliciesList or error will be non-nil. Any non-2xx
150998// status code is an error. Response headers are in either
150999// *SslPoliciesList.ServerResponse.Header or (if a response was returned
151000// at all) in error.(*googleapi.Error).Header. Use
151001// googleapi.IsNotModified to check whether the returned error was
151002// because http.StatusNotModified was returned.
151003func (c *SslPoliciesListCall) Do(opts ...googleapi.CallOption) (*SslPoliciesList, error) {
151004	gensupport.SetOptions(c.urlParams_, opts...)
151005	res, err := c.doRequest("json")
151006	if res != nil && res.StatusCode == http.StatusNotModified {
151007		if res.Body != nil {
151008			res.Body.Close()
151009		}
151010		return nil, &googleapi.Error{
151011			Code:   res.StatusCode,
151012			Header: res.Header,
151013		}
151014	}
151015	if err != nil {
151016		return nil, err
151017	}
151018	defer googleapi.CloseBody(res)
151019	if err := googleapi.CheckResponse(res); err != nil {
151020		return nil, err
151021	}
151022	ret := &SslPoliciesList{
151023		ServerResponse: googleapi.ServerResponse{
151024			Header:         res.Header,
151025			HTTPStatusCode: res.StatusCode,
151026		},
151027	}
151028	target := &ret
151029	if err := gensupport.DecodeResponse(target, res); err != nil {
151030		return nil, err
151031	}
151032	return ret, nil
151033	// {
151034	//   "description": "Lists all the SSL policies that have been configured for the specified project. (== suppress_warning http-rest-shadowed ==)",
151035	//   "httpMethod": "GET",
151036	//   "id": "compute.sslPolicies.list",
151037	//   "parameterOrder": [
151038	//     "project"
151039	//   ],
151040	//   "parameters": {
151041	//     "filter": {
151042	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
151043	//       "location": "query",
151044	//       "type": "string"
151045	//     },
151046	//     "maxResults": {
151047	//       "default": "500",
151048	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
151049	//       "format": "uint32",
151050	//       "location": "query",
151051	//       "minimum": "0",
151052	//       "type": "integer"
151053	//     },
151054	//     "orderBy": {
151055	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
151056	//       "location": "query",
151057	//       "type": "string"
151058	//     },
151059	//     "pageToken": {
151060	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
151061	//       "location": "query",
151062	//       "type": "string"
151063	//     },
151064	//     "project": {
151065	//       "description": "Project ID for this request.",
151066	//       "location": "path",
151067	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
151068	//       "required": true,
151069	//       "type": "string"
151070	//     }
151071	//   },
151072	//   "path": "{project}/global/sslPolicies",
151073	//   "response": {
151074	//     "$ref": "SslPoliciesList"
151075	//   },
151076	//   "scopes": [
151077	//     "https://www.googleapis.com/auth/cloud-platform",
151078	//     "https://www.googleapis.com/auth/compute",
151079	//     "https://www.googleapis.com/auth/compute.readonly"
151080	//   ]
151081	// }
151082
151083}
151084
151085// Pages invokes f for each page of results.
151086// A non-nil error returned from f will halt the iteration.
151087// The provided context supersedes any context provided to the Context method.
151088func (c *SslPoliciesListCall) Pages(ctx context.Context, f func(*SslPoliciesList) error) error {
151089	c.ctx_ = ctx
151090	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
151091	for {
151092		x, err := c.Do()
151093		if err != nil {
151094			return err
151095		}
151096		if err := f(x); err != nil {
151097			return err
151098		}
151099		if x.NextPageToken == "" {
151100			return nil
151101		}
151102		c.PageToken(x.NextPageToken)
151103	}
151104}
151105
151106// method id "compute.sslPolicies.listAvailableFeatures":
151107
151108type SslPoliciesListAvailableFeaturesCall struct {
151109	s            *Service
151110	project      string
151111	urlParams_   gensupport.URLParams
151112	ifNoneMatch_ string
151113	ctx_         context.Context
151114	header_      http.Header
151115}
151116
151117// ListAvailableFeatures: Lists all features that can be specified in
151118// the SSL policy when using custom profile. (== suppress_warning
151119// http-rest-shadowed ==)
151120func (r *SslPoliciesService) ListAvailableFeatures(project string) *SslPoliciesListAvailableFeaturesCall {
151121	c := &SslPoliciesListAvailableFeaturesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
151122	c.project = project
151123	return c
151124}
151125
151126// Filter sets the optional parameter "filter": A filter expression that
151127// filters resources listed in the response. The expression must specify
151128// the field name, a comparison operator, and the value that you want to
151129// use for filtering. The value must be a string, a number, or a
151130// boolean. The comparison operator must be either =, !=, >, or <.
151131//
151132// For example, if you are filtering Compute Engine instances, you can
151133// exclude instances named example-instance by specifying name !=
151134// example-instance.
151135//
151136// You can also filter nested fields. For example, you could specify
151137// scheduling.automaticRestart = false to include instances only if they
151138// are not scheduled for automatic restarts. You can use filtering on
151139// nested fields to filter based on resource labels.
151140//
151141// To filter on multiple expressions, provide each separate expression
151142// within parentheses. For example, (scheduling.automaticRestart = true)
151143// (cpuPlatform = "Intel Skylake"). By default, each expression is an
151144// AND expression. However, you can include AND and OR expressions
151145// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
151146// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
151147// true).
151148func (c *SslPoliciesListAvailableFeaturesCall) Filter(filter string) *SslPoliciesListAvailableFeaturesCall {
151149	c.urlParams_.Set("filter", filter)
151150	return c
151151}
151152
151153// MaxResults sets the optional parameter "maxResults": The maximum
151154// number of results per page that should be returned. If the number of
151155// available results is larger than maxResults, Compute Engine returns a
151156// nextPageToken that can be used to get the next page of results in
151157// subsequent list requests. Acceptable values are 0 to 500, inclusive.
151158// (Default: 500)
151159func (c *SslPoliciesListAvailableFeaturesCall) MaxResults(maxResults int64) *SslPoliciesListAvailableFeaturesCall {
151160	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
151161	return c
151162}
151163
151164// OrderBy sets the optional parameter "orderBy": Sorts list results by
151165// a certain order. By default, results are returned in alphanumerical
151166// order based on the resource name.
151167//
151168// You can also sort results in descending order based on the creation
151169// timestamp using orderBy="creationTimestamp desc". This sorts results
151170// based on the creationTimestamp field in reverse chronological order
151171// (newest result first). Use this to sort resources like operations so
151172// that the newest operation is returned first.
151173//
151174// Currently, only sorting by name or creationTimestamp desc is
151175// supported.
151176func (c *SslPoliciesListAvailableFeaturesCall) OrderBy(orderBy string) *SslPoliciesListAvailableFeaturesCall {
151177	c.urlParams_.Set("orderBy", orderBy)
151178	return c
151179}
151180
151181// PageToken sets the optional parameter "pageToken": Specifies a page
151182// token to use. Set pageToken to the nextPageToken returned by a
151183// previous list request to get the next page of results.
151184func (c *SslPoliciesListAvailableFeaturesCall) PageToken(pageToken string) *SslPoliciesListAvailableFeaturesCall {
151185	c.urlParams_.Set("pageToken", pageToken)
151186	return c
151187}
151188
151189// Fields allows partial responses to be retrieved. See
151190// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
151191// for more information.
151192func (c *SslPoliciesListAvailableFeaturesCall) Fields(s ...googleapi.Field) *SslPoliciesListAvailableFeaturesCall {
151193	c.urlParams_.Set("fields", googleapi.CombineFields(s))
151194	return c
151195}
151196
151197// IfNoneMatch sets the optional parameter which makes the operation
151198// fail if the object's ETag matches the given value. This is useful for
151199// getting updates only after the object has changed since the last
151200// request. Use googleapi.IsNotModified to check whether the response
151201// error from Do is the result of In-None-Match.
151202func (c *SslPoliciesListAvailableFeaturesCall) IfNoneMatch(entityTag string) *SslPoliciesListAvailableFeaturesCall {
151203	c.ifNoneMatch_ = entityTag
151204	return c
151205}
151206
151207// Context sets the context to be used in this call's Do method. Any
151208// pending HTTP request will be aborted if the provided context is
151209// canceled.
151210func (c *SslPoliciesListAvailableFeaturesCall) Context(ctx context.Context) *SslPoliciesListAvailableFeaturesCall {
151211	c.ctx_ = ctx
151212	return c
151213}
151214
151215// Header returns an http.Header that can be modified by the caller to
151216// add HTTP headers to the request.
151217func (c *SslPoliciesListAvailableFeaturesCall) Header() http.Header {
151218	if c.header_ == nil {
151219		c.header_ = make(http.Header)
151220	}
151221	return c.header_
151222}
151223
151224func (c *SslPoliciesListAvailableFeaturesCall) doRequest(alt string) (*http.Response, error) {
151225	reqHeaders := make(http.Header)
151226	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
151227	for k, v := range c.header_ {
151228		reqHeaders[k] = v
151229	}
151230	reqHeaders.Set("User-Agent", c.s.userAgent())
151231	if c.ifNoneMatch_ != "" {
151232		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
151233	}
151234	var body io.Reader = nil
151235	c.urlParams_.Set("alt", alt)
151236	c.urlParams_.Set("prettyPrint", "false")
151237	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/sslPolicies/listAvailableFeatures")
151238	urls += "?" + c.urlParams_.Encode()
151239	req, err := http.NewRequest("GET", urls, body)
151240	if err != nil {
151241		return nil, err
151242	}
151243	req.Header = reqHeaders
151244	googleapi.Expand(req.URL, map[string]string{
151245		"project": c.project,
151246	})
151247	return gensupport.SendRequest(c.ctx_, c.s.client, req)
151248}
151249
151250// Do executes the "compute.sslPolicies.listAvailableFeatures" call.
151251// Exactly one of *SslPoliciesListAvailableFeaturesResponse or error
151252// will be non-nil. Any non-2xx status code is an error. Response
151253// headers are in either
151254// *SslPoliciesListAvailableFeaturesResponse.ServerResponse.Header or
151255// (if a response was returned at all) in
151256// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
151257// whether the returned error was because http.StatusNotModified was
151258// returned.
151259func (c *SslPoliciesListAvailableFeaturesCall) Do(opts ...googleapi.CallOption) (*SslPoliciesListAvailableFeaturesResponse, error) {
151260	gensupport.SetOptions(c.urlParams_, opts...)
151261	res, err := c.doRequest("json")
151262	if res != nil && res.StatusCode == http.StatusNotModified {
151263		if res.Body != nil {
151264			res.Body.Close()
151265		}
151266		return nil, &googleapi.Error{
151267			Code:   res.StatusCode,
151268			Header: res.Header,
151269		}
151270	}
151271	if err != nil {
151272		return nil, err
151273	}
151274	defer googleapi.CloseBody(res)
151275	if err := googleapi.CheckResponse(res); err != nil {
151276		return nil, err
151277	}
151278	ret := &SslPoliciesListAvailableFeaturesResponse{
151279		ServerResponse: googleapi.ServerResponse{
151280			Header:         res.Header,
151281			HTTPStatusCode: res.StatusCode,
151282		},
151283	}
151284	target := &ret
151285	if err := gensupport.DecodeResponse(target, res); err != nil {
151286		return nil, err
151287	}
151288	return ret, nil
151289	// {
151290	//   "description": "Lists all features that can be specified in the SSL policy when using custom profile. (== suppress_warning http-rest-shadowed ==)",
151291	//   "httpMethod": "GET",
151292	//   "id": "compute.sslPolicies.listAvailableFeatures",
151293	//   "parameterOrder": [
151294	//     "project"
151295	//   ],
151296	//   "parameters": {
151297	//     "filter": {
151298	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
151299	//       "location": "query",
151300	//       "type": "string"
151301	//     },
151302	//     "maxResults": {
151303	//       "default": "500",
151304	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
151305	//       "format": "uint32",
151306	//       "location": "query",
151307	//       "minimum": "0",
151308	//       "type": "integer"
151309	//     },
151310	//     "orderBy": {
151311	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
151312	//       "location": "query",
151313	//       "type": "string"
151314	//     },
151315	//     "pageToken": {
151316	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
151317	//       "location": "query",
151318	//       "type": "string"
151319	//     },
151320	//     "project": {
151321	//       "description": "Project ID for this request.",
151322	//       "location": "path",
151323	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
151324	//       "required": true,
151325	//       "type": "string"
151326	//     }
151327	//   },
151328	//   "path": "{project}/global/sslPolicies/listAvailableFeatures",
151329	//   "response": {
151330	//     "$ref": "SslPoliciesListAvailableFeaturesResponse"
151331	//   },
151332	//   "scopes": [
151333	//     "https://www.googleapis.com/auth/cloud-platform",
151334	//     "https://www.googleapis.com/auth/compute",
151335	//     "https://www.googleapis.com/auth/compute.readonly"
151336	//   ]
151337	// }
151338
151339}
151340
151341// method id "compute.sslPolicies.patch":
151342
151343type SslPoliciesPatchCall struct {
151344	s          *Service
151345	project    string
151346	sslPolicy  string
151347	sslpolicy  *SslPolicy
151348	urlParams_ gensupport.URLParams
151349	ctx_       context.Context
151350	header_    http.Header
151351}
151352
151353// Patch: Patches the specified SSL policy with the data included in the
151354// request. (== suppress_warning http-rest-shadowed ==)
151355func (r *SslPoliciesService) Patch(project string, sslPolicy string, sslpolicy *SslPolicy) *SslPoliciesPatchCall {
151356	c := &SslPoliciesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
151357	c.project = project
151358	c.sslPolicy = sslPolicy
151359	c.sslpolicy = sslpolicy
151360	return c
151361}
151362
151363// RequestId sets the optional parameter "requestId": An optional
151364// request ID to identify requests. Specify a unique request ID so that
151365// if you must retry your request, the server will know to ignore the
151366// request if it has already been completed.
151367//
151368// For example, consider a situation where you make an initial request
151369// and the request times out. If you make the request again with the
151370// same request ID, the server can check if original operation with the
151371// same request ID was received, and if so, will ignore the second
151372// request. This prevents clients from accidentally creating duplicate
151373// commitments.
151374//
151375// The request ID must be a valid UUID with the exception that zero UUID
151376// is not supported (00000000-0000-0000-0000-000000000000).
151377func (c *SslPoliciesPatchCall) RequestId(requestId string) *SslPoliciesPatchCall {
151378	c.urlParams_.Set("requestId", requestId)
151379	return c
151380}
151381
151382// Fields allows partial responses to be retrieved. See
151383// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
151384// for more information.
151385func (c *SslPoliciesPatchCall) Fields(s ...googleapi.Field) *SslPoliciesPatchCall {
151386	c.urlParams_.Set("fields", googleapi.CombineFields(s))
151387	return c
151388}
151389
151390// Context sets the context to be used in this call's Do method. Any
151391// pending HTTP request will be aborted if the provided context is
151392// canceled.
151393func (c *SslPoliciesPatchCall) Context(ctx context.Context) *SslPoliciesPatchCall {
151394	c.ctx_ = ctx
151395	return c
151396}
151397
151398// Header returns an http.Header that can be modified by the caller to
151399// add HTTP headers to the request.
151400func (c *SslPoliciesPatchCall) Header() http.Header {
151401	if c.header_ == nil {
151402		c.header_ = make(http.Header)
151403	}
151404	return c.header_
151405}
151406
151407func (c *SslPoliciesPatchCall) doRequest(alt string) (*http.Response, error) {
151408	reqHeaders := make(http.Header)
151409	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
151410	for k, v := range c.header_ {
151411		reqHeaders[k] = v
151412	}
151413	reqHeaders.Set("User-Agent", c.s.userAgent())
151414	var body io.Reader = nil
151415	body, err := googleapi.WithoutDataWrapper.JSONReader(c.sslpolicy)
151416	if err != nil {
151417		return nil, err
151418	}
151419	reqHeaders.Set("Content-Type", "application/json")
151420	c.urlParams_.Set("alt", alt)
151421	c.urlParams_.Set("prettyPrint", "false")
151422	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/sslPolicies/{sslPolicy}")
151423	urls += "?" + c.urlParams_.Encode()
151424	req, err := http.NewRequest("PATCH", urls, body)
151425	if err != nil {
151426		return nil, err
151427	}
151428	req.Header = reqHeaders
151429	googleapi.Expand(req.URL, map[string]string{
151430		"project":   c.project,
151431		"sslPolicy": c.sslPolicy,
151432	})
151433	return gensupport.SendRequest(c.ctx_, c.s.client, req)
151434}
151435
151436// Do executes the "compute.sslPolicies.patch" call.
151437// Exactly one of *Operation or error will be non-nil. Any non-2xx
151438// status code is an error. Response headers are in either
151439// *Operation.ServerResponse.Header or (if a response was returned at
151440// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
151441// to check whether the returned error was because
151442// http.StatusNotModified was returned.
151443func (c *SslPoliciesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
151444	gensupport.SetOptions(c.urlParams_, opts...)
151445	res, err := c.doRequest("json")
151446	if res != nil && res.StatusCode == http.StatusNotModified {
151447		if res.Body != nil {
151448			res.Body.Close()
151449		}
151450		return nil, &googleapi.Error{
151451			Code:   res.StatusCode,
151452			Header: res.Header,
151453		}
151454	}
151455	if err != nil {
151456		return nil, err
151457	}
151458	defer googleapi.CloseBody(res)
151459	if err := googleapi.CheckResponse(res); err != nil {
151460		return nil, err
151461	}
151462	ret := &Operation{
151463		ServerResponse: googleapi.ServerResponse{
151464			Header:         res.Header,
151465			HTTPStatusCode: res.StatusCode,
151466		},
151467	}
151468	target := &ret
151469	if err := gensupport.DecodeResponse(target, res); err != nil {
151470		return nil, err
151471	}
151472	return ret, nil
151473	// {
151474	//   "description": "Patches the specified SSL policy with the data included in the request. (== suppress_warning http-rest-shadowed ==)",
151475	//   "httpMethod": "PATCH",
151476	//   "id": "compute.sslPolicies.patch",
151477	//   "parameterOrder": [
151478	//     "project",
151479	//     "sslPolicy"
151480	//   ],
151481	//   "parameters": {
151482	//     "project": {
151483	//       "description": "Project ID for this request.",
151484	//       "location": "path",
151485	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
151486	//       "required": true,
151487	//       "type": "string"
151488	//     },
151489	//     "requestId": {
151490	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
151491	//       "location": "query",
151492	//       "type": "string"
151493	//     },
151494	//     "sslPolicy": {
151495	//       "description": "Name of the SSL policy to update. The name must be 1-63 characters long, and comply with RFC1035.",
151496	//       "location": "path",
151497	//       "required": true,
151498	//       "type": "string"
151499	//     }
151500	//   },
151501	//   "path": "{project}/global/sslPolicies/{sslPolicy}",
151502	//   "request": {
151503	//     "$ref": "SslPolicy"
151504	//   },
151505	//   "response": {
151506	//     "$ref": "Operation"
151507	//   },
151508	//   "scopes": [
151509	//     "https://www.googleapis.com/auth/cloud-platform",
151510	//     "https://www.googleapis.com/auth/compute"
151511	//   ]
151512	// }
151513
151514}
151515
151516// method id "compute.sslPolicies.testIamPermissions":
151517
151518type SslPoliciesTestIamPermissionsCall struct {
151519	s                      *Service
151520	project                string
151521	resource               string
151522	testpermissionsrequest *TestPermissionsRequest
151523	urlParams_             gensupport.URLParams
151524	ctx_                   context.Context
151525	header_                http.Header
151526}
151527
151528// TestIamPermissions: Returns permissions that a caller has on the
151529// specified resource. (== suppress_warning http-rest-shadowed ==)
151530func (r *SslPoliciesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *SslPoliciesTestIamPermissionsCall {
151531	c := &SslPoliciesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
151532	c.project = project
151533	c.resource = resource
151534	c.testpermissionsrequest = testpermissionsrequest
151535	return c
151536}
151537
151538// Fields allows partial responses to be retrieved. See
151539// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
151540// for more information.
151541func (c *SslPoliciesTestIamPermissionsCall) Fields(s ...googleapi.Field) *SslPoliciesTestIamPermissionsCall {
151542	c.urlParams_.Set("fields", googleapi.CombineFields(s))
151543	return c
151544}
151545
151546// Context sets the context to be used in this call's Do method. Any
151547// pending HTTP request will be aborted if the provided context is
151548// canceled.
151549func (c *SslPoliciesTestIamPermissionsCall) Context(ctx context.Context) *SslPoliciesTestIamPermissionsCall {
151550	c.ctx_ = ctx
151551	return c
151552}
151553
151554// Header returns an http.Header that can be modified by the caller to
151555// add HTTP headers to the request.
151556func (c *SslPoliciesTestIamPermissionsCall) Header() http.Header {
151557	if c.header_ == nil {
151558		c.header_ = make(http.Header)
151559	}
151560	return c.header_
151561}
151562
151563func (c *SslPoliciesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
151564	reqHeaders := make(http.Header)
151565	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
151566	for k, v := range c.header_ {
151567		reqHeaders[k] = v
151568	}
151569	reqHeaders.Set("User-Agent", c.s.userAgent())
151570	var body io.Reader = nil
151571	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
151572	if err != nil {
151573		return nil, err
151574	}
151575	reqHeaders.Set("Content-Type", "application/json")
151576	c.urlParams_.Set("alt", alt)
151577	c.urlParams_.Set("prettyPrint", "false")
151578	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/sslPolicies/{resource}/testIamPermissions")
151579	urls += "?" + c.urlParams_.Encode()
151580	req, err := http.NewRequest("POST", urls, body)
151581	if err != nil {
151582		return nil, err
151583	}
151584	req.Header = reqHeaders
151585	googleapi.Expand(req.URL, map[string]string{
151586		"project":  c.project,
151587		"resource": c.resource,
151588	})
151589	return gensupport.SendRequest(c.ctx_, c.s.client, req)
151590}
151591
151592// Do executes the "compute.sslPolicies.testIamPermissions" call.
151593// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
151594// non-2xx status code is an error. Response headers are in either
151595// *TestPermissionsResponse.ServerResponse.Header or (if a response was
151596// returned at all) in error.(*googleapi.Error).Header. Use
151597// googleapi.IsNotModified to check whether the returned error was
151598// because http.StatusNotModified was returned.
151599func (c *SslPoliciesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
151600	gensupport.SetOptions(c.urlParams_, opts...)
151601	res, err := c.doRequest("json")
151602	if res != nil && res.StatusCode == http.StatusNotModified {
151603		if res.Body != nil {
151604			res.Body.Close()
151605		}
151606		return nil, &googleapi.Error{
151607			Code:   res.StatusCode,
151608			Header: res.Header,
151609		}
151610	}
151611	if err != nil {
151612		return nil, err
151613	}
151614	defer googleapi.CloseBody(res)
151615	if err := googleapi.CheckResponse(res); err != nil {
151616		return nil, err
151617	}
151618	ret := &TestPermissionsResponse{
151619		ServerResponse: googleapi.ServerResponse{
151620			Header:         res.Header,
151621			HTTPStatusCode: res.StatusCode,
151622		},
151623	}
151624	target := &ret
151625	if err := gensupport.DecodeResponse(target, res); err != nil {
151626		return nil, err
151627	}
151628	return ret, nil
151629	// {
151630	//   "description": "Returns permissions that a caller has on the specified resource. (== suppress_warning http-rest-shadowed ==)",
151631	//   "httpMethod": "POST",
151632	//   "id": "compute.sslPolicies.testIamPermissions",
151633	//   "parameterOrder": [
151634	//     "project",
151635	//     "resource"
151636	//   ],
151637	//   "parameters": {
151638	//     "project": {
151639	//       "description": "Project ID for this request.",
151640	//       "location": "path",
151641	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
151642	//       "required": true,
151643	//       "type": "string"
151644	//     },
151645	//     "resource": {
151646	//       "description": "Name or id of the resource for this request.",
151647	//       "location": "path",
151648	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
151649	//       "required": true,
151650	//       "type": "string"
151651	//     }
151652	//   },
151653	//   "path": "{project}/global/sslPolicies/{resource}/testIamPermissions",
151654	//   "request": {
151655	//     "$ref": "TestPermissionsRequest"
151656	//   },
151657	//   "response": {
151658	//     "$ref": "TestPermissionsResponse"
151659	//   },
151660	//   "scopes": [
151661	//     "https://www.googleapis.com/auth/cloud-platform",
151662	//     "https://www.googleapis.com/auth/compute",
151663	//     "https://www.googleapis.com/auth/compute.readonly"
151664	//   ]
151665	// }
151666
151667}
151668
151669// method id "compute.subnetworks.aggregatedList":
151670
151671type SubnetworksAggregatedListCall struct {
151672	s            *Service
151673	project      string
151674	urlParams_   gensupport.URLParams
151675	ifNoneMatch_ string
151676	ctx_         context.Context
151677	header_      http.Header
151678}
151679
151680// AggregatedList: Retrieves an aggregated list of subnetworks. (==
151681// suppress_warning http-rest-shadowed ==)
151682func (r *SubnetworksService) AggregatedList(project string) *SubnetworksAggregatedListCall {
151683	c := &SubnetworksAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
151684	c.project = project
151685	return c
151686}
151687
151688// Filter sets the optional parameter "filter": A filter expression that
151689// filters resources listed in the response. The expression must specify
151690// the field name, a comparison operator, and the value that you want to
151691// use for filtering. The value must be a string, a number, or a
151692// boolean. The comparison operator must be either =, !=, >, or <.
151693//
151694// For example, if you are filtering Compute Engine instances, you can
151695// exclude instances named example-instance by specifying name !=
151696// example-instance.
151697//
151698// You can also filter nested fields. For example, you could specify
151699// scheduling.automaticRestart = false to include instances only if they
151700// are not scheduled for automatic restarts. You can use filtering on
151701// nested fields to filter based on resource labels.
151702//
151703// To filter on multiple expressions, provide each separate expression
151704// within parentheses. For example, (scheduling.automaticRestart = true)
151705// (cpuPlatform = "Intel Skylake"). By default, each expression is an
151706// AND expression. However, you can include AND and OR expressions
151707// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
151708// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
151709// true).
151710func (c *SubnetworksAggregatedListCall) Filter(filter string) *SubnetworksAggregatedListCall {
151711	c.urlParams_.Set("filter", filter)
151712	return c
151713}
151714
151715// MaxResults sets the optional parameter "maxResults": The maximum
151716// number of results per page that should be returned. If the number of
151717// available results is larger than maxResults, Compute Engine returns a
151718// nextPageToken that can be used to get the next page of results in
151719// subsequent list requests. Acceptable values are 0 to 500, inclusive.
151720// (Default: 500)
151721func (c *SubnetworksAggregatedListCall) MaxResults(maxResults int64) *SubnetworksAggregatedListCall {
151722	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
151723	return c
151724}
151725
151726// OrderBy sets the optional parameter "orderBy": Sorts list results by
151727// a certain order. By default, results are returned in alphanumerical
151728// order based on the resource name.
151729//
151730// You can also sort results in descending order based on the creation
151731// timestamp using orderBy="creationTimestamp desc". This sorts results
151732// based on the creationTimestamp field in reverse chronological order
151733// (newest result first). Use this to sort resources like operations so
151734// that the newest operation is returned first.
151735//
151736// Currently, only sorting by name or creationTimestamp desc is
151737// supported.
151738func (c *SubnetworksAggregatedListCall) OrderBy(orderBy string) *SubnetworksAggregatedListCall {
151739	c.urlParams_.Set("orderBy", orderBy)
151740	return c
151741}
151742
151743// PageToken sets the optional parameter "pageToken": Specifies a page
151744// token to use. Set pageToken to the nextPageToken returned by a
151745// previous list request to get the next page of results.
151746func (c *SubnetworksAggregatedListCall) PageToken(pageToken string) *SubnetworksAggregatedListCall {
151747	c.urlParams_.Set("pageToken", pageToken)
151748	return c
151749}
151750
151751// Fields allows partial responses to be retrieved. See
151752// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
151753// for more information.
151754func (c *SubnetworksAggregatedListCall) Fields(s ...googleapi.Field) *SubnetworksAggregatedListCall {
151755	c.urlParams_.Set("fields", googleapi.CombineFields(s))
151756	return c
151757}
151758
151759// IfNoneMatch sets the optional parameter which makes the operation
151760// fail if the object's ETag matches the given value. This is useful for
151761// getting updates only after the object has changed since the last
151762// request. Use googleapi.IsNotModified to check whether the response
151763// error from Do is the result of In-None-Match.
151764func (c *SubnetworksAggregatedListCall) IfNoneMatch(entityTag string) *SubnetworksAggregatedListCall {
151765	c.ifNoneMatch_ = entityTag
151766	return c
151767}
151768
151769// Context sets the context to be used in this call's Do method. Any
151770// pending HTTP request will be aborted if the provided context is
151771// canceled.
151772func (c *SubnetworksAggregatedListCall) Context(ctx context.Context) *SubnetworksAggregatedListCall {
151773	c.ctx_ = ctx
151774	return c
151775}
151776
151777// Header returns an http.Header that can be modified by the caller to
151778// add HTTP headers to the request.
151779func (c *SubnetworksAggregatedListCall) Header() http.Header {
151780	if c.header_ == nil {
151781		c.header_ = make(http.Header)
151782	}
151783	return c.header_
151784}
151785
151786func (c *SubnetworksAggregatedListCall) doRequest(alt string) (*http.Response, error) {
151787	reqHeaders := make(http.Header)
151788	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
151789	for k, v := range c.header_ {
151790		reqHeaders[k] = v
151791	}
151792	reqHeaders.Set("User-Agent", c.s.userAgent())
151793	if c.ifNoneMatch_ != "" {
151794		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
151795	}
151796	var body io.Reader = nil
151797	c.urlParams_.Set("alt", alt)
151798	c.urlParams_.Set("prettyPrint", "false")
151799	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/subnetworks")
151800	urls += "?" + c.urlParams_.Encode()
151801	req, err := http.NewRequest("GET", urls, body)
151802	if err != nil {
151803		return nil, err
151804	}
151805	req.Header = reqHeaders
151806	googleapi.Expand(req.URL, map[string]string{
151807		"project": c.project,
151808	})
151809	return gensupport.SendRequest(c.ctx_, c.s.client, req)
151810}
151811
151812// Do executes the "compute.subnetworks.aggregatedList" call.
151813// Exactly one of *SubnetworkAggregatedList or error will be non-nil.
151814// Any non-2xx status code is an error. Response headers are in either
151815// *SubnetworkAggregatedList.ServerResponse.Header or (if a response was
151816// returned at all) in error.(*googleapi.Error).Header. Use
151817// googleapi.IsNotModified to check whether the returned error was
151818// because http.StatusNotModified was returned.
151819func (c *SubnetworksAggregatedListCall) Do(opts ...googleapi.CallOption) (*SubnetworkAggregatedList, error) {
151820	gensupport.SetOptions(c.urlParams_, opts...)
151821	res, err := c.doRequest("json")
151822	if res != nil && res.StatusCode == http.StatusNotModified {
151823		if res.Body != nil {
151824			res.Body.Close()
151825		}
151826		return nil, &googleapi.Error{
151827			Code:   res.StatusCode,
151828			Header: res.Header,
151829		}
151830	}
151831	if err != nil {
151832		return nil, err
151833	}
151834	defer googleapi.CloseBody(res)
151835	if err := googleapi.CheckResponse(res); err != nil {
151836		return nil, err
151837	}
151838	ret := &SubnetworkAggregatedList{
151839		ServerResponse: googleapi.ServerResponse{
151840			Header:         res.Header,
151841			HTTPStatusCode: res.StatusCode,
151842		},
151843	}
151844	target := &ret
151845	if err := gensupport.DecodeResponse(target, res); err != nil {
151846		return nil, err
151847	}
151848	return ret, nil
151849	// {
151850	//   "description": "Retrieves an aggregated list of subnetworks. (== suppress_warning http-rest-shadowed ==)",
151851	//   "httpMethod": "GET",
151852	//   "id": "compute.subnetworks.aggregatedList",
151853	//   "parameterOrder": [
151854	//     "project"
151855	//   ],
151856	//   "parameters": {
151857	//     "filter": {
151858	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
151859	//       "location": "query",
151860	//       "type": "string"
151861	//     },
151862	//     "maxResults": {
151863	//       "default": "500",
151864	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
151865	//       "format": "uint32",
151866	//       "location": "query",
151867	//       "minimum": "0",
151868	//       "type": "integer"
151869	//     },
151870	//     "orderBy": {
151871	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
151872	//       "location": "query",
151873	//       "type": "string"
151874	//     },
151875	//     "pageToken": {
151876	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
151877	//       "location": "query",
151878	//       "type": "string"
151879	//     },
151880	//     "project": {
151881	//       "description": "Project ID for this request.",
151882	//       "location": "path",
151883	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
151884	//       "required": true,
151885	//       "type": "string"
151886	//     }
151887	//   },
151888	//   "path": "{project}/aggregated/subnetworks",
151889	//   "response": {
151890	//     "$ref": "SubnetworkAggregatedList"
151891	//   },
151892	//   "scopes": [
151893	//     "https://www.googleapis.com/auth/cloud-platform",
151894	//     "https://www.googleapis.com/auth/compute",
151895	//     "https://www.googleapis.com/auth/compute.readonly"
151896	//   ]
151897	// }
151898
151899}
151900
151901// Pages invokes f for each page of results.
151902// A non-nil error returned from f will halt the iteration.
151903// The provided context supersedes any context provided to the Context method.
151904func (c *SubnetworksAggregatedListCall) Pages(ctx context.Context, f func(*SubnetworkAggregatedList) error) error {
151905	c.ctx_ = ctx
151906	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
151907	for {
151908		x, err := c.Do()
151909		if err != nil {
151910			return err
151911		}
151912		if err := f(x); err != nil {
151913			return err
151914		}
151915		if x.NextPageToken == "" {
151916			return nil
151917		}
151918		c.PageToken(x.NextPageToken)
151919	}
151920}
151921
151922// method id "compute.subnetworks.delete":
151923
151924type SubnetworksDeleteCall struct {
151925	s          *Service
151926	project    string
151927	region     string
151928	subnetwork string
151929	urlParams_ gensupport.URLParams
151930	ctx_       context.Context
151931	header_    http.Header
151932}
151933
151934// Delete: Deletes the specified subnetwork. (== suppress_warning
151935// http-rest-shadowed ==)
151936func (r *SubnetworksService) Delete(project string, region string, subnetwork string) *SubnetworksDeleteCall {
151937	c := &SubnetworksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
151938	c.project = project
151939	c.region = region
151940	c.subnetwork = subnetwork
151941	return c
151942}
151943
151944// RequestId sets the optional parameter "requestId": An optional
151945// request ID to identify requests. Specify a unique request ID so that
151946// if you must retry your request, the server will know to ignore the
151947// request if it has already been completed.
151948//
151949// For example, consider a situation where you make an initial request
151950// and the request times out. If you make the request again with the
151951// same request ID, the server can check if original operation with the
151952// same request ID was received, and if so, will ignore the second
151953// request. This prevents clients from accidentally creating duplicate
151954// commitments.
151955//
151956// The request ID must be a valid UUID with the exception that zero UUID
151957// is not supported (00000000-0000-0000-0000-000000000000).
151958func (c *SubnetworksDeleteCall) RequestId(requestId string) *SubnetworksDeleteCall {
151959	c.urlParams_.Set("requestId", requestId)
151960	return c
151961}
151962
151963// Fields allows partial responses to be retrieved. See
151964// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
151965// for more information.
151966func (c *SubnetworksDeleteCall) Fields(s ...googleapi.Field) *SubnetworksDeleteCall {
151967	c.urlParams_.Set("fields", googleapi.CombineFields(s))
151968	return c
151969}
151970
151971// Context sets the context to be used in this call's Do method. Any
151972// pending HTTP request will be aborted if the provided context is
151973// canceled.
151974func (c *SubnetworksDeleteCall) Context(ctx context.Context) *SubnetworksDeleteCall {
151975	c.ctx_ = ctx
151976	return c
151977}
151978
151979// Header returns an http.Header that can be modified by the caller to
151980// add HTTP headers to the request.
151981func (c *SubnetworksDeleteCall) Header() http.Header {
151982	if c.header_ == nil {
151983		c.header_ = make(http.Header)
151984	}
151985	return c.header_
151986}
151987
151988func (c *SubnetworksDeleteCall) doRequest(alt string) (*http.Response, error) {
151989	reqHeaders := make(http.Header)
151990	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
151991	for k, v := range c.header_ {
151992		reqHeaders[k] = v
151993	}
151994	reqHeaders.Set("User-Agent", c.s.userAgent())
151995	var body io.Reader = nil
151996	c.urlParams_.Set("alt", alt)
151997	c.urlParams_.Set("prettyPrint", "false")
151998	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/subnetworks/{subnetwork}")
151999	urls += "?" + c.urlParams_.Encode()
152000	req, err := http.NewRequest("DELETE", urls, body)
152001	if err != nil {
152002		return nil, err
152003	}
152004	req.Header = reqHeaders
152005	googleapi.Expand(req.URL, map[string]string{
152006		"project":    c.project,
152007		"region":     c.region,
152008		"subnetwork": c.subnetwork,
152009	})
152010	return gensupport.SendRequest(c.ctx_, c.s.client, req)
152011}
152012
152013// Do executes the "compute.subnetworks.delete" call.
152014// Exactly one of *Operation or error will be non-nil. Any non-2xx
152015// status code is an error. Response headers are in either
152016// *Operation.ServerResponse.Header or (if a response was returned at
152017// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
152018// to check whether the returned error was because
152019// http.StatusNotModified was returned.
152020func (c *SubnetworksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
152021	gensupport.SetOptions(c.urlParams_, opts...)
152022	res, err := c.doRequest("json")
152023	if res != nil && res.StatusCode == http.StatusNotModified {
152024		if res.Body != nil {
152025			res.Body.Close()
152026		}
152027		return nil, &googleapi.Error{
152028			Code:   res.StatusCode,
152029			Header: res.Header,
152030		}
152031	}
152032	if err != nil {
152033		return nil, err
152034	}
152035	defer googleapi.CloseBody(res)
152036	if err := googleapi.CheckResponse(res); err != nil {
152037		return nil, err
152038	}
152039	ret := &Operation{
152040		ServerResponse: googleapi.ServerResponse{
152041			Header:         res.Header,
152042			HTTPStatusCode: res.StatusCode,
152043		},
152044	}
152045	target := &ret
152046	if err := gensupport.DecodeResponse(target, res); err != nil {
152047		return nil, err
152048	}
152049	return ret, nil
152050	// {
152051	//   "description": "Deletes the specified subnetwork. (== suppress_warning http-rest-shadowed ==)",
152052	//   "httpMethod": "DELETE",
152053	//   "id": "compute.subnetworks.delete",
152054	//   "parameterOrder": [
152055	//     "project",
152056	//     "region",
152057	//     "subnetwork"
152058	//   ],
152059	//   "parameters": {
152060	//     "project": {
152061	//       "description": "Project ID for this request.",
152062	//       "location": "path",
152063	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
152064	//       "required": true,
152065	//       "type": "string"
152066	//     },
152067	//     "region": {
152068	//       "description": "Name of the region scoping this request.",
152069	//       "location": "path",
152070	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
152071	//       "required": true,
152072	//       "type": "string"
152073	//     },
152074	//     "requestId": {
152075	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
152076	//       "location": "query",
152077	//       "type": "string"
152078	//     },
152079	//     "subnetwork": {
152080	//       "description": "Name of the Subnetwork resource to delete.",
152081	//       "location": "path",
152082	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
152083	//       "required": true,
152084	//       "type": "string"
152085	//     }
152086	//   },
152087	//   "path": "{project}/regions/{region}/subnetworks/{subnetwork}",
152088	//   "response": {
152089	//     "$ref": "Operation"
152090	//   },
152091	//   "scopes": [
152092	//     "https://www.googleapis.com/auth/cloud-platform",
152093	//     "https://www.googleapis.com/auth/compute"
152094	//   ]
152095	// }
152096
152097}
152098
152099// method id "compute.subnetworks.expandIpCidrRange":
152100
152101type SubnetworksExpandIpCidrRangeCall struct {
152102	s                                   *Service
152103	project                             string
152104	region                              string
152105	subnetwork                          string
152106	subnetworksexpandipcidrrangerequest *SubnetworksExpandIpCidrRangeRequest
152107	urlParams_                          gensupport.URLParams
152108	ctx_                                context.Context
152109	header_                             http.Header
152110}
152111
152112// ExpandIpCidrRange: Expands the IP CIDR range of the subnetwork to a
152113// specified value. (== suppress_warning http-rest-shadowed ==)
152114func (r *SubnetworksService) ExpandIpCidrRange(project string, region string, subnetwork string, subnetworksexpandipcidrrangerequest *SubnetworksExpandIpCidrRangeRequest) *SubnetworksExpandIpCidrRangeCall {
152115	c := &SubnetworksExpandIpCidrRangeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
152116	c.project = project
152117	c.region = region
152118	c.subnetwork = subnetwork
152119	c.subnetworksexpandipcidrrangerequest = subnetworksexpandipcidrrangerequest
152120	return c
152121}
152122
152123// RequestId sets the optional parameter "requestId": An optional
152124// request ID to identify requests. Specify a unique request ID so that
152125// if you must retry your request, the server will know to ignore the
152126// request if it has already been completed.
152127//
152128// For example, consider a situation where you make an initial request
152129// and the request times out. If you make the request again with the
152130// same request ID, the server can check if original operation with the
152131// same request ID was received, and if so, will ignore the second
152132// request. This prevents clients from accidentally creating duplicate
152133// commitments.
152134//
152135// The request ID must be a valid UUID with the exception that zero UUID
152136// is not supported (00000000-0000-0000-0000-000000000000).
152137func (c *SubnetworksExpandIpCidrRangeCall) RequestId(requestId string) *SubnetworksExpandIpCidrRangeCall {
152138	c.urlParams_.Set("requestId", requestId)
152139	return c
152140}
152141
152142// Fields allows partial responses to be retrieved. See
152143// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
152144// for more information.
152145func (c *SubnetworksExpandIpCidrRangeCall) Fields(s ...googleapi.Field) *SubnetworksExpandIpCidrRangeCall {
152146	c.urlParams_.Set("fields", googleapi.CombineFields(s))
152147	return c
152148}
152149
152150// Context sets the context to be used in this call's Do method. Any
152151// pending HTTP request will be aborted if the provided context is
152152// canceled.
152153func (c *SubnetworksExpandIpCidrRangeCall) Context(ctx context.Context) *SubnetworksExpandIpCidrRangeCall {
152154	c.ctx_ = ctx
152155	return c
152156}
152157
152158// Header returns an http.Header that can be modified by the caller to
152159// add HTTP headers to the request.
152160func (c *SubnetworksExpandIpCidrRangeCall) Header() http.Header {
152161	if c.header_ == nil {
152162		c.header_ = make(http.Header)
152163	}
152164	return c.header_
152165}
152166
152167func (c *SubnetworksExpandIpCidrRangeCall) doRequest(alt string) (*http.Response, error) {
152168	reqHeaders := make(http.Header)
152169	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
152170	for k, v := range c.header_ {
152171		reqHeaders[k] = v
152172	}
152173	reqHeaders.Set("User-Agent", c.s.userAgent())
152174	var body io.Reader = nil
152175	body, err := googleapi.WithoutDataWrapper.JSONReader(c.subnetworksexpandipcidrrangerequest)
152176	if err != nil {
152177		return nil, err
152178	}
152179	reqHeaders.Set("Content-Type", "application/json")
152180	c.urlParams_.Set("alt", alt)
152181	c.urlParams_.Set("prettyPrint", "false")
152182	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/subnetworks/{subnetwork}/expandIpCidrRange")
152183	urls += "?" + c.urlParams_.Encode()
152184	req, err := http.NewRequest("POST", urls, body)
152185	if err != nil {
152186		return nil, err
152187	}
152188	req.Header = reqHeaders
152189	googleapi.Expand(req.URL, map[string]string{
152190		"project":    c.project,
152191		"region":     c.region,
152192		"subnetwork": c.subnetwork,
152193	})
152194	return gensupport.SendRequest(c.ctx_, c.s.client, req)
152195}
152196
152197// Do executes the "compute.subnetworks.expandIpCidrRange" call.
152198// Exactly one of *Operation or error will be non-nil. Any non-2xx
152199// status code is an error. Response headers are in either
152200// *Operation.ServerResponse.Header or (if a response was returned at
152201// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
152202// to check whether the returned error was because
152203// http.StatusNotModified was returned.
152204func (c *SubnetworksExpandIpCidrRangeCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
152205	gensupport.SetOptions(c.urlParams_, opts...)
152206	res, err := c.doRequest("json")
152207	if res != nil && res.StatusCode == http.StatusNotModified {
152208		if res.Body != nil {
152209			res.Body.Close()
152210		}
152211		return nil, &googleapi.Error{
152212			Code:   res.StatusCode,
152213			Header: res.Header,
152214		}
152215	}
152216	if err != nil {
152217		return nil, err
152218	}
152219	defer googleapi.CloseBody(res)
152220	if err := googleapi.CheckResponse(res); err != nil {
152221		return nil, err
152222	}
152223	ret := &Operation{
152224		ServerResponse: googleapi.ServerResponse{
152225			Header:         res.Header,
152226			HTTPStatusCode: res.StatusCode,
152227		},
152228	}
152229	target := &ret
152230	if err := gensupport.DecodeResponse(target, res); err != nil {
152231		return nil, err
152232	}
152233	return ret, nil
152234	// {
152235	//   "description": "Expands the IP CIDR range of the subnetwork to a specified value. (== suppress_warning http-rest-shadowed ==)",
152236	//   "httpMethod": "POST",
152237	//   "id": "compute.subnetworks.expandIpCidrRange",
152238	//   "parameterOrder": [
152239	//     "project",
152240	//     "region",
152241	//     "subnetwork"
152242	//   ],
152243	//   "parameters": {
152244	//     "project": {
152245	//       "description": "Project ID for this request.",
152246	//       "location": "path",
152247	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
152248	//       "required": true,
152249	//       "type": "string"
152250	//     },
152251	//     "region": {
152252	//       "description": "Name of the region scoping this request.",
152253	//       "location": "path",
152254	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
152255	//       "required": true,
152256	//       "type": "string"
152257	//     },
152258	//     "requestId": {
152259	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
152260	//       "location": "query",
152261	//       "type": "string"
152262	//     },
152263	//     "subnetwork": {
152264	//       "description": "Name of the Subnetwork resource to update.",
152265	//       "location": "path",
152266	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
152267	//       "required": true,
152268	//       "type": "string"
152269	//     }
152270	//   },
152271	//   "path": "{project}/regions/{region}/subnetworks/{subnetwork}/expandIpCidrRange",
152272	//   "request": {
152273	//     "$ref": "SubnetworksExpandIpCidrRangeRequest"
152274	//   },
152275	//   "response": {
152276	//     "$ref": "Operation"
152277	//   },
152278	//   "scopes": [
152279	//     "https://www.googleapis.com/auth/cloud-platform",
152280	//     "https://www.googleapis.com/auth/compute"
152281	//   ]
152282	// }
152283
152284}
152285
152286// method id "compute.subnetworks.get":
152287
152288type SubnetworksGetCall struct {
152289	s            *Service
152290	project      string
152291	region       string
152292	subnetwork   string
152293	urlParams_   gensupport.URLParams
152294	ifNoneMatch_ string
152295	ctx_         context.Context
152296	header_      http.Header
152297}
152298
152299// Get: Returns the specified subnetwork. Gets a list of available
152300// subnetworks list() request. (== suppress_warning http-rest-shadowed
152301// ==)
152302func (r *SubnetworksService) Get(project string, region string, subnetwork string) *SubnetworksGetCall {
152303	c := &SubnetworksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
152304	c.project = project
152305	c.region = region
152306	c.subnetwork = subnetwork
152307	return c
152308}
152309
152310// Fields allows partial responses to be retrieved. See
152311// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
152312// for more information.
152313func (c *SubnetworksGetCall) Fields(s ...googleapi.Field) *SubnetworksGetCall {
152314	c.urlParams_.Set("fields", googleapi.CombineFields(s))
152315	return c
152316}
152317
152318// IfNoneMatch sets the optional parameter which makes the operation
152319// fail if the object's ETag matches the given value. This is useful for
152320// getting updates only after the object has changed since the last
152321// request. Use googleapi.IsNotModified to check whether the response
152322// error from Do is the result of In-None-Match.
152323func (c *SubnetworksGetCall) IfNoneMatch(entityTag string) *SubnetworksGetCall {
152324	c.ifNoneMatch_ = entityTag
152325	return c
152326}
152327
152328// Context sets the context to be used in this call's Do method. Any
152329// pending HTTP request will be aborted if the provided context is
152330// canceled.
152331func (c *SubnetworksGetCall) Context(ctx context.Context) *SubnetworksGetCall {
152332	c.ctx_ = ctx
152333	return c
152334}
152335
152336// Header returns an http.Header that can be modified by the caller to
152337// add HTTP headers to the request.
152338func (c *SubnetworksGetCall) Header() http.Header {
152339	if c.header_ == nil {
152340		c.header_ = make(http.Header)
152341	}
152342	return c.header_
152343}
152344
152345func (c *SubnetworksGetCall) doRequest(alt string) (*http.Response, error) {
152346	reqHeaders := make(http.Header)
152347	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
152348	for k, v := range c.header_ {
152349		reqHeaders[k] = v
152350	}
152351	reqHeaders.Set("User-Agent", c.s.userAgent())
152352	if c.ifNoneMatch_ != "" {
152353		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
152354	}
152355	var body io.Reader = nil
152356	c.urlParams_.Set("alt", alt)
152357	c.urlParams_.Set("prettyPrint", "false")
152358	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/subnetworks/{subnetwork}")
152359	urls += "?" + c.urlParams_.Encode()
152360	req, err := http.NewRequest("GET", urls, body)
152361	if err != nil {
152362		return nil, err
152363	}
152364	req.Header = reqHeaders
152365	googleapi.Expand(req.URL, map[string]string{
152366		"project":    c.project,
152367		"region":     c.region,
152368		"subnetwork": c.subnetwork,
152369	})
152370	return gensupport.SendRequest(c.ctx_, c.s.client, req)
152371}
152372
152373// Do executes the "compute.subnetworks.get" call.
152374// Exactly one of *Subnetwork or error will be non-nil. Any non-2xx
152375// status code is an error. Response headers are in either
152376// *Subnetwork.ServerResponse.Header or (if a response was returned at
152377// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
152378// to check whether the returned error was because
152379// http.StatusNotModified was returned.
152380func (c *SubnetworksGetCall) Do(opts ...googleapi.CallOption) (*Subnetwork, error) {
152381	gensupport.SetOptions(c.urlParams_, opts...)
152382	res, err := c.doRequest("json")
152383	if res != nil && res.StatusCode == http.StatusNotModified {
152384		if res.Body != nil {
152385			res.Body.Close()
152386		}
152387		return nil, &googleapi.Error{
152388			Code:   res.StatusCode,
152389			Header: res.Header,
152390		}
152391	}
152392	if err != nil {
152393		return nil, err
152394	}
152395	defer googleapi.CloseBody(res)
152396	if err := googleapi.CheckResponse(res); err != nil {
152397		return nil, err
152398	}
152399	ret := &Subnetwork{
152400		ServerResponse: googleapi.ServerResponse{
152401			Header:         res.Header,
152402			HTTPStatusCode: res.StatusCode,
152403		},
152404	}
152405	target := &ret
152406	if err := gensupport.DecodeResponse(target, res); err != nil {
152407		return nil, err
152408	}
152409	return ret, nil
152410	// {
152411	//   "description": "Returns the specified subnetwork. Gets a list of available subnetworks list() request. (== suppress_warning http-rest-shadowed ==)",
152412	//   "httpMethod": "GET",
152413	//   "id": "compute.subnetworks.get",
152414	//   "parameterOrder": [
152415	//     "project",
152416	//     "region",
152417	//     "subnetwork"
152418	//   ],
152419	//   "parameters": {
152420	//     "project": {
152421	//       "description": "Project ID for this request.",
152422	//       "location": "path",
152423	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
152424	//       "required": true,
152425	//       "type": "string"
152426	//     },
152427	//     "region": {
152428	//       "description": "Name of the region scoping this request.",
152429	//       "location": "path",
152430	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
152431	//       "required": true,
152432	//       "type": "string"
152433	//     },
152434	//     "subnetwork": {
152435	//       "description": "Name of the Subnetwork resource to return.",
152436	//       "location": "path",
152437	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
152438	//       "required": true,
152439	//       "type": "string"
152440	//     }
152441	//   },
152442	//   "path": "{project}/regions/{region}/subnetworks/{subnetwork}",
152443	//   "response": {
152444	//     "$ref": "Subnetwork"
152445	//   },
152446	//   "scopes": [
152447	//     "https://www.googleapis.com/auth/cloud-platform",
152448	//     "https://www.googleapis.com/auth/compute",
152449	//     "https://www.googleapis.com/auth/compute.readonly"
152450	//   ]
152451	// }
152452
152453}
152454
152455// method id "compute.subnetworks.getIamPolicy":
152456
152457type SubnetworksGetIamPolicyCall struct {
152458	s            *Service
152459	project      string
152460	region       string
152461	resource     string
152462	urlParams_   gensupport.URLParams
152463	ifNoneMatch_ string
152464	ctx_         context.Context
152465	header_      http.Header
152466}
152467
152468// GetIamPolicy: Gets the access control policy for a resource. May be
152469// empty if no such policy or resource exists. (== suppress_warning
152470// http-rest-shadowed ==)
152471func (r *SubnetworksService) GetIamPolicy(project string, region string, resource string) *SubnetworksGetIamPolicyCall {
152472	c := &SubnetworksGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
152473	c.project = project
152474	c.region = region
152475	c.resource = resource
152476	return c
152477}
152478
152479// OptionsRequestedPolicyVersion sets the optional parameter
152480// "optionsRequestedPolicyVersion": Requested IAM Policy version.
152481func (c *SubnetworksGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *SubnetworksGetIamPolicyCall {
152482	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
152483	return c
152484}
152485
152486// Fields allows partial responses to be retrieved. See
152487// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
152488// for more information.
152489func (c *SubnetworksGetIamPolicyCall) Fields(s ...googleapi.Field) *SubnetworksGetIamPolicyCall {
152490	c.urlParams_.Set("fields", googleapi.CombineFields(s))
152491	return c
152492}
152493
152494// IfNoneMatch sets the optional parameter which makes the operation
152495// fail if the object's ETag matches the given value. This is useful for
152496// getting updates only after the object has changed since the last
152497// request. Use googleapi.IsNotModified to check whether the response
152498// error from Do is the result of In-None-Match.
152499func (c *SubnetworksGetIamPolicyCall) IfNoneMatch(entityTag string) *SubnetworksGetIamPolicyCall {
152500	c.ifNoneMatch_ = entityTag
152501	return c
152502}
152503
152504// Context sets the context to be used in this call's Do method. Any
152505// pending HTTP request will be aborted if the provided context is
152506// canceled.
152507func (c *SubnetworksGetIamPolicyCall) Context(ctx context.Context) *SubnetworksGetIamPolicyCall {
152508	c.ctx_ = ctx
152509	return c
152510}
152511
152512// Header returns an http.Header that can be modified by the caller to
152513// add HTTP headers to the request.
152514func (c *SubnetworksGetIamPolicyCall) Header() http.Header {
152515	if c.header_ == nil {
152516		c.header_ = make(http.Header)
152517	}
152518	return c.header_
152519}
152520
152521func (c *SubnetworksGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
152522	reqHeaders := make(http.Header)
152523	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
152524	for k, v := range c.header_ {
152525		reqHeaders[k] = v
152526	}
152527	reqHeaders.Set("User-Agent", c.s.userAgent())
152528	if c.ifNoneMatch_ != "" {
152529		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
152530	}
152531	var body io.Reader = nil
152532	c.urlParams_.Set("alt", alt)
152533	c.urlParams_.Set("prettyPrint", "false")
152534	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/subnetworks/{resource}/getIamPolicy")
152535	urls += "?" + c.urlParams_.Encode()
152536	req, err := http.NewRequest("GET", urls, body)
152537	if err != nil {
152538		return nil, err
152539	}
152540	req.Header = reqHeaders
152541	googleapi.Expand(req.URL, map[string]string{
152542		"project":  c.project,
152543		"region":   c.region,
152544		"resource": c.resource,
152545	})
152546	return gensupport.SendRequest(c.ctx_, c.s.client, req)
152547}
152548
152549// Do executes the "compute.subnetworks.getIamPolicy" call.
152550// Exactly one of *Policy or error will be non-nil. Any non-2xx status
152551// code is an error. Response headers are in either
152552// *Policy.ServerResponse.Header or (if a response was returned at all)
152553// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
152554// check whether the returned error was because http.StatusNotModified
152555// was returned.
152556func (c *SubnetworksGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
152557	gensupport.SetOptions(c.urlParams_, opts...)
152558	res, err := c.doRequest("json")
152559	if res != nil && res.StatusCode == http.StatusNotModified {
152560		if res.Body != nil {
152561			res.Body.Close()
152562		}
152563		return nil, &googleapi.Error{
152564			Code:   res.StatusCode,
152565			Header: res.Header,
152566		}
152567	}
152568	if err != nil {
152569		return nil, err
152570	}
152571	defer googleapi.CloseBody(res)
152572	if err := googleapi.CheckResponse(res); err != nil {
152573		return nil, err
152574	}
152575	ret := &Policy{
152576		ServerResponse: googleapi.ServerResponse{
152577			Header:         res.Header,
152578			HTTPStatusCode: res.StatusCode,
152579		},
152580	}
152581	target := &ret
152582	if err := gensupport.DecodeResponse(target, res); err != nil {
152583		return nil, err
152584	}
152585	return ret, nil
152586	// {
152587	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists. (== suppress_warning http-rest-shadowed ==)",
152588	//   "httpMethod": "GET",
152589	//   "id": "compute.subnetworks.getIamPolicy",
152590	//   "parameterOrder": [
152591	//     "project",
152592	//     "region",
152593	//     "resource"
152594	//   ],
152595	//   "parameters": {
152596	//     "optionsRequestedPolicyVersion": {
152597	//       "description": "Requested IAM Policy version.",
152598	//       "format": "int32",
152599	//       "location": "query",
152600	//       "type": "integer"
152601	//     },
152602	//     "project": {
152603	//       "description": "Project ID for this request.",
152604	//       "location": "path",
152605	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
152606	//       "required": true,
152607	//       "type": "string"
152608	//     },
152609	//     "region": {
152610	//       "description": "The name of the region for this request.",
152611	//       "location": "path",
152612	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
152613	//       "required": true,
152614	//       "type": "string"
152615	//     },
152616	//     "resource": {
152617	//       "description": "Name or id of the resource for this request.",
152618	//       "location": "path",
152619	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
152620	//       "required": true,
152621	//       "type": "string"
152622	//     }
152623	//   },
152624	//   "path": "{project}/regions/{region}/subnetworks/{resource}/getIamPolicy",
152625	//   "response": {
152626	//     "$ref": "Policy"
152627	//   },
152628	//   "scopes": [
152629	//     "https://www.googleapis.com/auth/cloud-platform",
152630	//     "https://www.googleapis.com/auth/compute",
152631	//     "https://www.googleapis.com/auth/compute.readonly"
152632	//   ]
152633	// }
152634
152635}
152636
152637// method id "compute.subnetworks.insert":
152638
152639type SubnetworksInsertCall struct {
152640	s          *Service
152641	project    string
152642	region     string
152643	subnetwork *Subnetwork
152644	urlParams_ gensupport.URLParams
152645	ctx_       context.Context
152646	header_    http.Header
152647}
152648
152649// Insert: Creates a subnetwork in the specified project using the data
152650// included in the request. (== suppress_warning http-rest-shadowed ==)
152651func (r *SubnetworksService) Insert(project string, region string, subnetwork *Subnetwork) *SubnetworksInsertCall {
152652	c := &SubnetworksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
152653	c.project = project
152654	c.region = region
152655	c.subnetwork = subnetwork
152656	return c
152657}
152658
152659// RequestId sets the optional parameter "requestId": An optional
152660// request ID to identify requests. Specify a unique request ID so that
152661// if you must retry your request, the server will know to ignore the
152662// request if it has already been completed.
152663//
152664// For example, consider a situation where you make an initial request
152665// and the request times out. If you make the request again with the
152666// same request ID, the server can check if original operation with the
152667// same request ID was received, and if so, will ignore the second
152668// request. This prevents clients from accidentally creating duplicate
152669// commitments.
152670//
152671// The request ID must be a valid UUID with the exception that zero UUID
152672// is not supported (00000000-0000-0000-0000-000000000000).
152673func (c *SubnetworksInsertCall) RequestId(requestId string) *SubnetworksInsertCall {
152674	c.urlParams_.Set("requestId", requestId)
152675	return c
152676}
152677
152678// Fields allows partial responses to be retrieved. See
152679// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
152680// for more information.
152681func (c *SubnetworksInsertCall) Fields(s ...googleapi.Field) *SubnetworksInsertCall {
152682	c.urlParams_.Set("fields", googleapi.CombineFields(s))
152683	return c
152684}
152685
152686// Context sets the context to be used in this call's Do method. Any
152687// pending HTTP request will be aborted if the provided context is
152688// canceled.
152689func (c *SubnetworksInsertCall) Context(ctx context.Context) *SubnetworksInsertCall {
152690	c.ctx_ = ctx
152691	return c
152692}
152693
152694// Header returns an http.Header that can be modified by the caller to
152695// add HTTP headers to the request.
152696func (c *SubnetworksInsertCall) Header() http.Header {
152697	if c.header_ == nil {
152698		c.header_ = make(http.Header)
152699	}
152700	return c.header_
152701}
152702
152703func (c *SubnetworksInsertCall) doRequest(alt string) (*http.Response, error) {
152704	reqHeaders := make(http.Header)
152705	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
152706	for k, v := range c.header_ {
152707		reqHeaders[k] = v
152708	}
152709	reqHeaders.Set("User-Agent", c.s.userAgent())
152710	var body io.Reader = nil
152711	body, err := googleapi.WithoutDataWrapper.JSONReader(c.subnetwork)
152712	if err != nil {
152713		return nil, err
152714	}
152715	reqHeaders.Set("Content-Type", "application/json")
152716	c.urlParams_.Set("alt", alt)
152717	c.urlParams_.Set("prettyPrint", "false")
152718	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/subnetworks")
152719	urls += "?" + c.urlParams_.Encode()
152720	req, err := http.NewRequest("POST", urls, body)
152721	if err != nil {
152722		return nil, err
152723	}
152724	req.Header = reqHeaders
152725	googleapi.Expand(req.URL, map[string]string{
152726		"project": c.project,
152727		"region":  c.region,
152728	})
152729	return gensupport.SendRequest(c.ctx_, c.s.client, req)
152730}
152731
152732// Do executes the "compute.subnetworks.insert" call.
152733// Exactly one of *Operation or error will be non-nil. Any non-2xx
152734// status code is an error. Response headers are in either
152735// *Operation.ServerResponse.Header or (if a response was returned at
152736// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
152737// to check whether the returned error was because
152738// http.StatusNotModified was returned.
152739func (c *SubnetworksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
152740	gensupport.SetOptions(c.urlParams_, opts...)
152741	res, err := c.doRequest("json")
152742	if res != nil && res.StatusCode == http.StatusNotModified {
152743		if res.Body != nil {
152744			res.Body.Close()
152745		}
152746		return nil, &googleapi.Error{
152747			Code:   res.StatusCode,
152748			Header: res.Header,
152749		}
152750	}
152751	if err != nil {
152752		return nil, err
152753	}
152754	defer googleapi.CloseBody(res)
152755	if err := googleapi.CheckResponse(res); err != nil {
152756		return nil, err
152757	}
152758	ret := &Operation{
152759		ServerResponse: googleapi.ServerResponse{
152760			Header:         res.Header,
152761			HTTPStatusCode: res.StatusCode,
152762		},
152763	}
152764	target := &ret
152765	if err := gensupport.DecodeResponse(target, res); err != nil {
152766		return nil, err
152767	}
152768	return ret, nil
152769	// {
152770	//   "description": "Creates a subnetwork in the specified project using the data included in the request. (== suppress_warning http-rest-shadowed ==)",
152771	//   "httpMethod": "POST",
152772	//   "id": "compute.subnetworks.insert",
152773	//   "parameterOrder": [
152774	//     "project",
152775	//     "region"
152776	//   ],
152777	//   "parameters": {
152778	//     "project": {
152779	//       "description": "Project ID for this request.",
152780	//       "location": "path",
152781	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
152782	//       "required": true,
152783	//       "type": "string"
152784	//     },
152785	//     "region": {
152786	//       "description": "Name of the region scoping this request.",
152787	//       "location": "path",
152788	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
152789	//       "required": true,
152790	//       "type": "string"
152791	//     },
152792	//     "requestId": {
152793	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
152794	//       "location": "query",
152795	//       "type": "string"
152796	//     }
152797	//   },
152798	//   "path": "{project}/regions/{region}/subnetworks",
152799	//   "request": {
152800	//     "$ref": "Subnetwork"
152801	//   },
152802	//   "response": {
152803	//     "$ref": "Operation"
152804	//   },
152805	//   "scopes": [
152806	//     "https://www.googleapis.com/auth/cloud-platform",
152807	//     "https://www.googleapis.com/auth/compute"
152808	//   ]
152809	// }
152810
152811}
152812
152813// method id "compute.subnetworks.list":
152814
152815type SubnetworksListCall struct {
152816	s            *Service
152817	project      string
152818	region       string
152819	urlParams_   gensupport.URLParams
152820	ifNoneMatch_ string
152821	ctx_         context.Context
152822	header_      http.Header
152823}
152824
152825// List: Retrieves a list of subnetworks available to the specified
152826// project. (== suppress_warning http-rest-shadowed ==)
152827func (r *SubnetworksService) List(project string, region string) *SubnetworksListCall {
152828	c := &SubnetworksListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
152829	c.project = project
152830	c.region = region
152831	return c
152832}
152833
152834// Filter sets the optional parameter "filter": A filter expression that
152835// filters resources listed in the response. The expression must specify
152836// the field name, a comparison operator, and the value that you want to
152837// use for filtering. The value must be a string, a number, or a
152838// boolean. The comparison operator must be either =, !=, >, or <.
152839//
152840// For example, if you are filtering Compute Engine instances, you can
152841// exclude instances named example-instance by specifying name !=
152842// example-instance.
152843//
152844// You can also filter nested fields. For example, you could specify
152845// scheduling.automaticRestart = false to include instances only if they
152846// are not scheduled for automatic restarts. You can use filtering on
152847// nested fields to filter based on resource labels.
152848//
152849// To filter on multiple expressions, provide each separate expression
152850// within parentheses. For example, (scheduling.automaticRestart = true)
152851// (cpuPlatform = "Intel Skylake"). By default, each expression is an
152852// AND expression. However, you can include AND and OR expressions
152853// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
152854// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
152855// true).
152856func (c *SubnetworksListCall) Filter(filter string) *SubnetworksListCall {
152857	c.urlParams_.Set("filter", filter)
152858	return c
152859}
152860
152861// MaxResults sets the optional parameter "maxResults": The maximum
152862// number of results per page that should be returned. If the number of
152863// available results is larger than maxResults, Compute Engine returns a
152864// nextPageToken that can be used to get the next page of results in
152865// subsequent list requests. Acceptable values are 0 to 500, inclusive.
152866// (Default: 500)
152867func (c *SubnetworksListCall) MaxResults(maxResults int64) *SubnetworksListCall {
152868	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
152869	return c
152870}
152871
152872// OrderBy sets the optional parameter "orderBy": Sorts list results by
152873// a certain order. By default, results are returned in alphanumerical
152874// order based on the resource name.
152875//
152876// You can also sort results in descending order based on the creation
152877// timestamp using orderBy="creationTimestamp desc". This sorts results
152878// based on the creationTimestamp field in reverse chronological order
152879// (newest result first). Use this to sort resources like operations so
152880// that the newest operation is returned first.
152881//
152882// Currently, only sorting by name or creationTimestamp desc is
152883// supported.
152884func (c *SubnetworksListCall) OrderBy(orderBy string) *SubnetworksListCall {
152885	c.urlParams_.Set("orderBy", orderBy)
152886	return c
152887}
152888
152889// PageToken sets the optional parameter "pageToken": Specifies a page
152890// token to use. Set pageToken to the nextPageToken returned by a
152891// previous list request to get the next page of results.
152892func (c *SubnetworksListCall) PageToken(pageToken string) *SubnetworksListCall {
152893	c.urlParams_.Set("pageToken", pageToken)
152894	return c
152895}
152896
152897// Fields allows partial responses to be retrieved. See
152898// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
152899// for more information.
152900func (c *SubnetworksListCall) Fields(s ...googleapi.Field) *SubnetworksListCall {
152901	c.urlParams_.Set("fields", googleapi.CombineFields(s))
152902	return c
152903}
152904
152905// IfNoneMatch sets the optional parameter which makes the operation
152906// fail if the object's ETag matches the given value. This is useful for
152907// getting updates only after the object has changed since the last
152908// request. Use googleapi.IsNotModified to check whether the response
152909// error from Do is the result of In-None-Match.
152910func (c *SubnetworksListCall) IfNoneMatch(entityTag string) *SubnetworksListCall {
152911	c.ifNoneMatch_ = entityTag
152912	return c
152913}
152914
152915// Context sets the context to be used in this call's Do method. Any
152916// pending HTTP request will be aborted if the provided context is
152917// canceled.
152918func (c *SubnetworksListCall) Context(ctx context.Context) *SubnetworksListCall {
152919	c.ctx_ = ctx
152920	return c
152921}
152922
152923// Header returns an http.Header that can be modified by the caller to
152924// add HTTP headers to the request.
152925func (c *SubnetworksListCall) Header() http.Header {
152926	if c.header_ == nil {
152927		c.header_ = make(http.Header)
152928	}
152929	return c.header_
152930}
152931
152932func (c *SubnetworksListCall) doRequest(alt string) (*http.Response, error) {
152933	reqHeaders := make(http.Header)
152934	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
152935	for k, v := range c.header_ {
152936		reqHeaders[k] = v
152937	}
152938	reqHeaders.Set("User-Agent", c.s.userAgent())
152939	if c.ifNoneMatch_ != "" {
152940		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
152941	}
152942	var body io.Reader = nil
152943	c.urlParams_.Set("alt", alt)
152944	c.urlParams_.Set("prettyPrint", "false")
152945	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/subnetworks")
152946	urls += "?" + c.urlParams_.Encode()
152947	req, err := http.NewRequest("GET", urls, body)
152948	if err != nil {
152949		return nil, err
152950	}
152951	req.Header = reqHeaders
152952	googleapi.Expand(req.URL, map[string]string{
152953		"project": c.project,
152954		"region":  c.region,
152955	})
152956	return gensupport.SendRequest(c.ctx_, c.s.client, req)
152957}
152958
152959// Do executes the "compute.subnetworks.list" call.
152960// Exactly one of *SubnetworkList or error will be non-nil. Any non-2xx
152961// status code is an error. Response headers are in either
152962// *SubnetworkList.ServerResponse.Header or (if a response was returned
152963// at all) in error.(*googleapi.Error).Header. Use
152964// googleapi.IsNotModified to check whether the returned error was
152965// because http.StatusNotModified was returned.
152966func (c *SubnetworksListCall) Do(opts ...googleapi.CallOption) (*SubnetworkList, error) {
152967	gensupport.SetOptions(c.urlParams_, opts...)
152968	res, err := c.doRequest("json")
152969	if res != nil && res.StatusCode == http.StatusNotModified {
152970		if res.Body != nil {
152971			res.Body.Close()
152972		}
152973		return nil, &googleapi.Error{
152974			Code:   res.StatusCode,
152975			Header: res.Header,
152976		}
152977	}
152978	if err != nil {
152979		return nil, err
152980	}
152981	defer googleapi.CloseBody(res)
152982	if err := googleapi.CheckResponse(res); err != nil {
152983		return nil, err
152984	}
152985	ret := &SubnetworkList{
152986		ServerResponse: googleapi.ServerResponse{
152987			Header:         res.Header,
152988			HTTPStatusCode: res.StatusCode,
152989		},
152990	}
152991	target := &ret
152992	if err := gensupport.DecodeResponse(target, res); err != nil {
152993		return nil, err
152994	}
152995	return ret, nil
152996	// {
152997	//   "description": "Retrieves a list of subnetworks available to the specified project. (== suppress_warning http-rest-shadowed ==)",
152998	//   "httpMethod": "GET",
152999	//   "id": "compute.subnetworks.list",
153000	//   "parameterOrder": [
153001	//     "project",
153002	//     "region"
153003	//   ],
153004	//   "parameters": {
153005	//     "filter": {
153006	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
153007	//       "location": "query",
153008	//       "type": "string"
153009	//     },
153010	//     "maxResults": {
153011	//       "default": "500",
153012	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
153013	//       "format": "uint32",
153014	//       "location": "query",
153015	//       "minimum": "0",
153016	//       "type": "integer"
153017	//     },
153018	//     "orderBy": {
153019	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
153020	//       "location": "query",
153021	//       "type": "string"
153022	//     },
153023	//     "pageToken": {
153024	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
153025	//       "location": "query",
153026	//       "type": "string"
153027	//     },
153028	//     "project": {
153029	//       "description": "Project ID for this request.",
153030	//       "location": "path",
153031	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
153032	//       "required": true,
153033	//       "type": "string"
153034	//     },
153035	//     "region": {
153036	//       "description": "Name of the region scoping this request.",
153037	//       "location": "path",
153038	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
153039	//       "required": true,
153040	//       "type": "string"
153041	//     }
153042	//   },
153043	//   "path": "{project}/regions/{region}/subnetworks",
153044	//   "response": {
153045	//     "$ref": "SubnetworkList"
153046	//   },
153047	//   "scopes": [
153048	//     "https://www.googleapis.com/auth/cloud-platform",
153049	//     "https://www.googleapis.com/auth/compute",
153050	//     "https://www.googleapis.com/auth/compute.readonly"
153051	//   ]
153052	// }
153053
153054}
153055
153056// Pages invokes f for each page of results.
153057// A non-nil error returned from f will halt the iteration.
153058// The provided context supersedes any context provided to the Context method.
153059func (c *SubnetworksListCall) Pages(ctx context.Context, f func(*SubnetworkList) error) error {
153060	c.ctx_ = ctx
153061	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
153062	for {
153063		x, err := c.Do()
153064		if err != nil {
153065			return err
153066		}
153067		if err := f(x); err != nil {
153068			return err
153069		}
153070		if x.NextPageToken == "" {
153071			return nil
153072		}
153073		c.PageToken(x.NextPageToken)
153074	}
153075}
153076
153077// method id "compute.subnetworks.listUsable":
153078
153079type SubnetworksListUsableCall struct {
153080	s            *Service
153081	project      string
153082	urlParams_   gensupport.URLParams
153083	ifNoneMatch_ string
153084	ctx_         context.Context
153085	header_      http.Header
153086}
153087
153088// ListUsable: Retrieves an aggregated list of all usable subnetworks in
153089// the project. The list contains all of the subnetworks in the project
153090// and the subnetworks that were shared by a Shared VPC host project.
153091// (== suppress_warning http-rest-shadowed ==)
153092func (r *SubnetworksService) ListUsable(project string) *SubnetworksListUsableCall {
153093	c := &SubnetworksListUsableCall{s: r.s, urlParams_: make(gensupport.URLParams)}
153094	c.project = project
153095	return c
153096}
153097
153098// Filter sets the optional parameter "filter": A filter expression that
153099// filters resources listed in the response. The expression must specify
153100// the field name, a comparison operator, and the value that you want to
153101// use for filtering. The value must be a string, a number, or a
153102// boolean. The comparison operator must be either =, !=, >, or <.
153103//
153104// For example, if you are filtering Compute Engine instances, you can
153105// exclude instances named example-instance by specifying name !=
153106// example-instance.
153107//
153108// You can also filter nested fields. For example, you could specify
153109// scheduling.automaticRestart = false to include instances only if they
153110// are not scheduled for automatic restarts. You can use filtering on
153111// nested fields to filter based on resource labels.
153112//
153113// To filter on multiple expressions, provide each separate expression
153114// within parentheses. For example, (scheduling.automaticRestart = true)
153115// (cpuPlatform = "Intel Skylake"). By default, each expression is an
153116// AND expression. However, you can include AND and OR expressions
153117// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
153118// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
153119// true).
153120func (c *SubnetworksListUsableCall) Filter(filter string) *SubnetworksListUsableCall {
153121	c.urlParams_.Set("filter", filter)
153122	return c
153123}
153124
153125// MaxResults sets the optional parameter "maxResults": The maximum
153126// number of results per page that should be returned. If the number of
153127// available results is larger than maxResults, Compute Engine returns a
153128// nextPageToken that can be used to get the next page of results in
153129// subsequent list requests. Acceptable values are 0 to 500, inclusive.
153130// (Default: 500)
153131func (c *SubnetworksListUsableCall) MaxResults(maxResults int64) *SubnetworksListUsableCall {
153132	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
153133	return c
153134}
153135
153136// OrderBy sets the optional parameter "orderBy": Sorts list results by
153137// a certain order. By default, results are returned in alphanumerical
153138// order based on the resource name.
153139//
153140// You can also sort results in descending order based on the creation
153141// timestamp using orderBy="creationTimestamp desc". This sorts results
153142// based on the creationTimestamp field in reverse chronological order
153143// (newest result first). Use this to sort resources like operations so
153144// that the newest operation is returned first.
153145//
153146// Currently, only sorting by name or creationTimestamp desc is
153147// supported.
153148func (c *SubnetworksListUsableCall) OrderBy(orderBy string) *SubnetworksListUsableCall {
153149	c.urlParams_.Set("orderBy", orderBy)
153150	return c
153151}
153152
153153// PageToken sets the optional parameter "pageToken": Specifies a page
153154// token to use. Set pageToken to the nextPageToken returned by a
153155// previous list request to get the next page of results.
153156func (c *SubnetworksListUsableCall) PageToken(pageToken string) *SubnetworksListUsableCall {
153157	c.urlParams_.Set("pageToken", pageToken)
153158	return c
153159}
153160
153161// Fields allows partial responses to be retrieved. See
153162// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
153163// for more information.
153164func (c *SubnetworksListUsableCall) Fields(s ...googleapi.Field) *SubnetworksListUsableCall {
153165	c.urlParams_.Set("fields", googleapi.CombineFields(s))
153166	return c
153167}
153168
153169// IfNoneMatch sets the optional parameter which makes the operation
153170// fail if the object's ETag matches the given value. This is useful for
153171// getting updates only after the object has changed since the last
153172// request. Use googleapi.IsNotModified to check whether the response
153173// error from Do is the result of In-None-Match.
153174func (c *SubnetworksListUsableCall) IfNoneMatch(entityTag string) *SubnetworksListUsableCall {
153175	c.ifNoneMatch_ = entityTag
153176	return c
153177}
153178
153179// Context sets the context to be used in this call's Do method. Any
153180// pending HTTP request will be aborted if the provided context is
153181// canceled.
153182func (c *SubnetworksListUsableCall) Context(ctx context.Context) *SubnetworksListUsableCall {
153183	c.ctx_ = ctx
153184	return c
153185}
153186
153187// Header returns an http.Header that can be modified by the caller to
153188// add HTTP headers to the request.
153189func (c *SubnetworksListUsableCall) Header() http.Header {
153190	if c.header_ == nil {
153191		c.header_ = make(http.Header)
153192	}
153193	return c.header_
153194}
153195
153196func (c *SubnetworksListUsableCall) doRequest(alt string) (*http.Response, error) {
153197	reqHeaders := make(http.Header)
153198	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
153199	for k, v := range c.header_ {
153200		reqHeaders[k] = v
153201	}
153202	reqHeaders.Set("User-Agent", c.s.userAgent())
153203	if c.ifNoneMatch_ != "" {
153204		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
153205	}
153206	var body io.Reader = nil
153207	c.urlParams_.Set("alt", alt)
153208	c.urlParams_.Set("prettyPrint", "false")
153209	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/subnetworks/listUsable")
153210	urls += "?" + c.urlParams_.Encode()
153211	req, err := http.NewRequest("GET", urls, body)
153212	if err != nil {
153213		return nil, err
153214	}
153215	req.Header = reqHeaders
153216	googleapi.Expand(req.URL, map[string]string{
153217		"project": c.project,
153218	})
153219	return gensupport.SendRequest(c.ctx_, c.s.client, req)
153220}
153221
153222// Do executes the "compute.subnetworks.listUsable" call.
153223// Exactly one of *UsableSubnetworksAggregatedList or error will be
153224// non-nil. Any non-2xx status code is an error. Response headers are in
153225// either *UsableSubnetworksAggregatedList.ServerResponse.Header or (if
153226// a response was returned at all) in error.(*googleapi.Error).Header.
153227// Use googleapi.IsNotModified to check whether the returned error was
153228// because http.StatusNotModified was returned.
153229func (c *SubnetworksListUsableCall) Do(opts ...googleapi.CallOption) (*UsableSubnetworksAggregatedList, error) {
153230	gensupport.SetOptions(c.urlParams_, opts...)
153231	res, err := c.doRequest("json")
153232	if res != nil && res.StatusCode == http.StatusNotModified {
153233		if res.Body != nil {
153234			res.Body.Close()
153235		}
153236		return nil, &googleapi.Error{
153237			Code:   res.StatusCode,
153238			Header: res.Header,
153239		}
153240	}
153241	if err != nil {
153242		return nil, err
153243	}
153244	defer googleapi.CloseBody(res)
153245	if err := googleapi.CheckResponse(res); err != nil {
153246		return nil, err
153247	}
153248	ret := &UsableSubnetworksAggregatedList{
153249		ServerResponse: googleapi.ServerResponse{
153250			Header:         res.Header,
153251			HTTPStatusCode: res.StatusCode,
153252		},
153253	}
153254	target := &ret
153255	if err := gensupport.DecodeResponse(target, res); err != nil {
153256		return nil, err
153257	}
153258	return ret, nil
153259	// {
153260	//   "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. (== suppress_warning http-rest-shadowed ==)",
153261	//   "httpMethod": "GET",
153262	//   "id": "compute.subnetworks.listUsable",
153263	//   "parameterOrder": [
153264	//     "project"
153265	//   ],
153266	//   "parameters": {
153267	//     "filter": {
153268	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
153269	//       "location": "query",
153270	//       "type": "string"
153271	//     },
153272	//     "maxResults": {
153273	//       "default": "500",
153274	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
153275	//       "format": "uint32",
153276	//       "location": "query",
153277	//       "minimum": "0",
153278	//       "type": "integer"
153279	//     },
153280	//     "orderBy": {
153281	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
153282	//       "location": "query",
153283	//       "type": "string"
153284	//     },
153285	//     "pageToken": {
153286	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
153287	//       "location": "query",
153288	//       "type": "string"
153289	//     },
153290	//     "project": {
153291	//       "description": "Project ID for this request.",
153292	//       "location": "path",
153293	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
153294	//       "required": true,
153295	//       "type": "string"
153296	//     }
153297	//   },
153298	//   "path": "{project}/aggregated/subnetworks/listUsable",
153299	//   "response": {
153300	//     "$ref": "UsableSubnetworksAggregatedList"
153301	//   },
153302	//   "scopes": [
153303	//     "https://www.googleapis.com/auth/cloud-platform",
153304	//     "https://www.googleapis.com/auth/compute",
153305	//     "https://www.googleapis.com/auth/compute.readonly"
153306	//   ]
153307	// }
153308
153309}
153310
153311// Pages invokes f for each page of results.
153312// A non-nil error returned from f will halt the iteration.
153313// The provided context supersedes any context provided to the Context method.
153314func (c *SubnetworksListUsableCall) Pages(ctx context.Context, f func(*UsableSubnetworksAggregatedList) error) error {
153315	c.ctx_ = ctx
153316	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
153317	for {
153318		x, err := c.Do()
153319		if err != nil {
153320			return err
153321		}
153322		if err := f(x); err != nil {
153323			return err
153324		}
153325		if x.NextPageToken == "" {
153326			return nil
153327		}
153328		c.PageToken(x.NextPageToken)
153329	}
153330}
153331
153332// method id "compute.subnetworks.patch":
153333
153334type SubnetworksPatchCall struct {
153335	s           *Service
153336	project     string
153337	region      string
153338	subnetwork  string
153339	subnetwork2 *Subnetwork
153340	urlParams_  gensupport.URLParams
153341	ctx_        context.Context
153342	header_     http.Header
153343}
153344
153345// Patch: Patches the specified subnetwork with the data included in the
153346// request. Only certain fields can up updated with a patch request as
153347// indicated in the field descriptions. You must specify the current
153348// fingeprint of the subnetwork resource being patched. (==
153349// suppress_warning http-rest-shadowed ==)
153350func (r *SubnetworksService) Patch(project string, region string, subnetwork string, subnetwork2 *Subnetwork) *SubnetworksPatchCall {
153351	c := &SubnetworksPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
153352	c.project = project
153353	c.region = region
153354	c.subnetwork = subnetwork
153355	c.subnetwork2 = subnetwork2
153356	return c
153357}
153358
153359// DrainTimeoutSeconds sets the optional parameter
153360// "drainTimeoutSeconds": The drain timeout specifies the upper bound in
153361// seconds on the amount of time allowed to drain connections from the
153362// current ACTIVE subnetwork to the current BACKUP subnetwork. The drain
153363// timeout is only applicable when the following conditions are true: -
153364// the subnetwork being patched has purpose =
153365// INTERNAL_HTTPS_LOAD_BALANCER - the subnetwork being patched has role
153366// = BACKUP - the patch request is setting the role to ACTIVE. Note that
153367// after this patch operation the roles of the ACTIVE and BACKUP
153368// subnetworks will be swapped.
153369func (c *SubnetworksPatchCall) DrainTimeoutSeconds(drainTimeoutSeconds int64) *SubnetworksPatchCall {
153370	c.urlParams_.Set("drainTimeoutSeconds", fmt.Sprint(drainTimeoutSeconds))
153371	return c
153372}
153373
153374// RequestId sets the optional parameter "requestId": An optional
153375// request ID to identify requests. Specify a unique request ID so that
153376// if you must retry your request, the server will know to ignore the
153377// request if it has already been completed.
153378//
153379// For example, consider a situation where you make an initial request
153380// and the request times out. If you make the request again with the
153381// same request ID, the server can check if original operation with the
153382// same request ID was received, and if so, will ignore the second
153383// request. This prevents clients from accidentally creating duplicate
153384// commitments.
153385//
153386// The request ID must be a valid UUID with the exception that zero UUID
153387// is not supported (00000000-0000-0000-0000-000000000000).
153388func (c *SubnetworksPatchCall) RequestId(requestId string) *SubnetworksPatchCall {
153389	c.urlParams_.Set("requestId", requestId)
153390	return c
153391}
153392
153393// Fields allows partial responses to be retrieved. See
153394// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
153395// for more information.
153396func (c *SubnetworksPatchCall) Fields(s ...googleapi.Field) *SubnetworksPatchCall {
153397	c.urlParams_.Set("fields", googleapi.CombineFields(s))
153398	return c
153399}
153400
153401// Context sets the context to be used in this call's Do method. Any
153402// pending HTTP request will be aborted if the provided context is
153403// canceled.
153404func (c *SubnetworksPatchCall) Context(ctx context.Context) *SubnetworksPatchCall {
153405	c.ctx_ = ctx
153406	return c
153407}
153408
153409// Header returns an http.Header that can be modified by the caller to
153410// add HTTP headers to the request.
153411func (c *SubnetworksPatchCall) Header() http.Header {
153412	if c.header_ == nil {
153413		c.header_ = make(http.Header)
153414	}
153415	return c.header_
153416}
153417
153418func (c *SubnetworksPatchCall) doRequest(alt string) (*http.Response, error) {
153419	reqHeaders := make(http.Header)
153420	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
153421	for k, v := range c.header_ {
153422		reqHeaders[k] = v
153423	}
153424	reqHeaders.Set("User-Agent", c.s.userAgent())
153425	var body io.Reader = nil
153426	body, err := googleapi.WithoutDataWrapper.JSONReader(c.subnetwork2)
153427	if err != nil {
153428		return nil, err
153429	}
153430	reqHeaders.Set("Content-Type", "application/json")
153431	c.urlParams_.Set("alt", alt)
153432	c.urlParams_.Set("prettyPrint", "false")
153433	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/subnetworks/{subnetwork}")
153434	urls += "?" + c.urlParams_.Encode()
153435	req, err := http.NewRequest("PATCH", urls, body)
153436	if err != nil {
153437		return nil, err
153438	}
153439	req.Header = reqHeaders
153440	googleapi.Expand(req.URL, map[string]string{
153441		"project":    c.project,
153442		"region":     c.region,
153443		"subnetwork": c.subnetwork,
153444	})
153445	return gensupport.SendRequest(c.ctx_, c.s.client, req)
153446}
153447
153448// Do executes the "compute.subnetworks.patch" call.
153449// Exactly one of *Operation or error will be non-nil. Any non-2xx
153450// status code is an error. Response headers are in either
153451// *Operation.ServerResponse.Header or (if a response was returned at
153452// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
153453// to check whether the returned error was because
153454// http.StatusNotModified was returned.
153455func (c *SubnetworksPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
153456	gensupport.SetOptions(c.urlParams_, opts...)
153457	res, err := c.doRequest("json")
153458	if res != nil && res.StatusCode == http.StatusNotModified {
153459		if res.Body != nil {
153460			res.Body.Close()
153461		}
153462		return nil, &googleapi.Error{
153463			Code:   res.StatusCode,
153464			Header: res.Header,
153465		}
153466	}
153467	if err != nil {
153468		return nil, err
153469	}
153470	defer googleapi.CloseBody(res)
153471	if err := googleapi.CheckResponse(res); err != nil {
153472		return nil, err
153473	}
153474	ret := &Operation{
153475		ServerResponse: googleapi.ServerResponse{
153476			Header:         res.Header,
153477			HTTPStatusCode: res.StatusCode,
153478		},
153479	}
153480	target := &ret
153481	if err := gensupport.DecodeResponse(target, res); err != nil {
153482		return nil, err
153483	}
153484	return ret, nil
153485	// {
153486	//   "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. (== suppress_warning http-rest-shadowed ==)",
153487	//   "httpMethod": "PATCH",
153488	//   "id": "compute.subnetworks.patch",
153489	//   "parameterOrder": [
153490	//     "project",
153491	//     "region",
153492	//     "subnetwork"
153493	//   ],
153494	//   "parameters": {
153495	//     "drainTimeoutSeconds": {
153496	//       "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.",
153497	//       "format": "int32",
153498	//       "location": "query",
153499	//       "type": "integer"
153500	//     },
153501	//     "project": {
153502	//       "description": "Project ID for this request.",
153503	//       "location": "path",
153504	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
153505	//       "required": true,
153506	//       "type": "string"
153507	//     },
153508	//     "region": {
153509	//       "description": "Name of the region scoping this request.",
153510	//       "location": "path",
153511	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
153512	//       "required": true,
153513	//       "type": "string"
153514	//     },
153515	//     "requestId": {
153516	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
153517	//       "location": "query",
153518	//       "type": "string"
153519	//     },
153520	//     "subnetwork": {
153521	//       "description": "Name of the Subnetwork resource to patch.",
153522	//       "location": "path",
153523	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
153524	//       "required": true,
153525	//       "type": "string"
153526	//     }
153527	//   },
153528	//   "path": "{project}/regions/{region}/subnetworks/{subnetwork}",
153529	//   "request": {
153530	//     "$ref": "Subnetwork"
153531	//   },
153532	//   "response": {
153533	//     "$ref": "Operation"
153534	//   },
153535	//   "scopes": [
153536	//     "https://www.googleapis.com/auth/cloud-platform",
153537	//     "https://www.googleapis.com/auth/compute"
153538	//   ]
153539	// }
153540
153541}
153542
153543// method id "compute.subnetworks.setIamPolicy":
153544
153545type SubnetworksSetIamPolicyCall struct {
153546	s                      *Service
153547	project                string
153548	region                 string
153549	resource               string
153550	regionsetpolicyrequest *RegionSetPolicyRequest
153551	urlParams_             gensupport.URLParams
153552	ctx_                   context.Context
153553	header_                http.Header
153554}
153555
153556// SetIamPolicy: Sets the access control policy on the specified
153557// resource. Replaces any existing policy. (== suppress_warning
153558// http-rest-shadowed ==)
153559func (r *SubnetworksService) SetIamPolicy(project string, region string, resource string, regionsetpolicyrequest *RegionSetPolicyRequest) *SubnetworksSetIamPolicyCall {
153560	c := &SubnetworksSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
153561	c.project = project
153562	c.region = region
153563	c.resource = resource
153564	c.regionsetpolicyrequest = regionsetpolicyrequest
153565	return c
153566}
153567
153568// Fields allows partial responses to be retrieved. See
153569// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
153570// for more information.
153571func (c *SubnetworksSetIamPolicyCall) Fields(s ...googleapi.Field) *SubnetworksSetIamPolicyCall {
153572	c.urlParams_.Set("fields", googleapi.CombineFields(s))
153573	return c
153574}
153575
153576// Context sets the context to be used in this call's Do method. Any
153577// pending HTTP request will be aborted if the provided context is
153578// canceled.
153579func (c *SubnetworksSetIamPolicyCall) Context(ctx context.Context) *SubnetworksSetIamPolicyCall {
153580	c.ctx_ = ctx
153581	return c
153582}
153583
153584// Header returns an http.Header that can be modified by the caller to
153585// add HTTP headers to the request.
153586func (c *SubnetworksSetIamPolicyCall) Header() http.Header {
153587	if c.header_ == nil {
153588		c.header_ = make(http.Header)
153589	}
153590	return c.header_
153591}
153592
153593func (c *SubnetworksSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
153594	reqHeaders := make(http.Header)
153595	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
153596	for k, v := range c.header_ {
153597		reqHeaders[k] = v
153598	}
153599	reqHeaders.Set("User-Agent", c.s.userAgent())
153600	var body io.Reader = nil
153601	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetpolicyrequest)
153602	if err != nil {
153603		return nil, err
153604	}
153605	reqHeaders.Set("Content-Type", "application/json")
153606	c.urlParams_.Set("alt", alt)
153607	c.urlParams_.Set("prettyPrint", "false")
153608	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/subnetworks/{resource}/setIamPolicy")
153609	urls += "?" + c.urlParams_.Encode()
153610	req, err := http.NewRequest("POST", urls, body)
153611	if err != nil {
153612		return nil, err
153613	}
153614	req.Header = reqHeaders
153615	googleapi.Expand(req.URL, map[string]string{
153616		"project":  c.project,
153617		"region":   c.region,
153618		"resource": c.resource,
153619	})
153620	return gensupport.SendRequest(c.ctx_, c.s.client, req)
153621}
153622
153623// Do executes the "compute.subnetworks.setIamPolicy" call.
153624// Exactly one of *Policy or error will be non-nil. Any non-2xx status
153625// code is an error. Response headers are in either
153626// *Policy.ServerResponse.Header or (if a response was returned at all)
153627// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
153628// check whether the returned error was because http.StatusNotModified
153629// was returned.
153630func (c *SubnetworksSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
153631	gensupport.SetOptions(c.urlParams_, opts...)
153632	res, err := c.doRequest("json")
153633	if res != nil && res.StatusCode == http.StatusNotModified {
153634		if res.Body != nil {
153635			res.Body.Close()
153636		}
153637		return nil, &googleapi.Error{
153638			Code:   res.StatusCode,
153639			Header: res.Header,
153640		}
153641	}
153642	if err != nil {
153643		return nil, err
153644	}
153645	defer googleapi.CloseBody(res)
153646	if err := googleapi.CheckResponse(res); err != nil {
153647		return nil, err
153648	}
153649	ret := &Policy{
153650		ServerResponse: googleapi.ServerResponse{
153651			Header:         res.Header,
153652			HTTPStatusCode: res.StatusCode,
153653		},
153654	}
153655	target := &ret
153656	if err := gensupport.DecodeResponse(target, res); err != nil {
153657		return nil, err
153658	}
153659	return ret, nil
153660	// {
153661	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy. (== suppress_warning http-rest-shadowed ==)",
153662	//   "httpMethod": "POST",
153663	//   "id": "compute.subnetworks.setIamPolicy",
153664	//   "parameterOrder": [
153665	//     "project",
153666	//     "region",
153667	//     "resource"
153668	//   ],
153669	//   "parameters": {
153670	//     "project": {
153671	//       "description": "Project ID for this request.",
153672	//       "location": "path",
153673	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
153674	//       "required": true,
153675	//       "type": "string"
153676	//     },
153677	//     "region": {
153678	//       "description": "The name of the region for this request.",
153679	//       "location": "path",
153680	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
153681	//       "required": true,
153682	//       "type": "string"
153683	//     },
153684	//     "resource": {
153685	//       "description": "Name or id of the resource for this request.",
153686	//       "location": "path",
153687	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
153688	//       "required": true,
153689	//       "type": "string"
153690	//     }
153691	//   },
153692	//   "path": "{project}/regions/{region}/subnetworks/{resource}/setIamPolicy",
153693	//   "request": {
153694	//     "$ref": "RegionSetPolicyRequest"
153695	//   },
153696	//   "response": {
153697	//     "$ref": "Policy"
153698	//   },
153699	//   "scopes": [
153700	//     "https://www.googleapis.com/auth/cloud-platform",
153701	//     "https://www.googleapis.com/auth/compute"
153702	//   ]
153703	// }
153704
153705}
153706
153707// method id "compute.subnetworks.setPrivateIpGoogleAccess":
153708
153709type SubnetworksSetPrivateIpGoogleAccessCall struct {
153710	s                                          *Service
153711	project                                    string
153712	region                                     string
153713	subnetwork                                 string
153714	subnetworkssetprivateipgoogleaccessrequest *SubnetworksSetPrivateIpGoogleAccessRequest
153715	urlParams_                                 gensupport.URLParams
153716	ctx_                                       context.Context
153717	header_                                    http.Header
153718}
153719
153720// SetPrivateIpGoogleAccess: Set whether VMs in this subnet can access
153721// Google services without assigning external IP addresses through
153722// Private Google Access. (== suppress_warning http-rest-shadowed ==)
153723func (r *SubnetworksService) SetPrivateIpGoogleAccess(project string, region string, subnetwork string, subnetworkssetprivateipgoogleaccessrequest *SubnetworksSetPrivateIpGoogleAccessRequest) *SubnetworksSetPrivateIpGoogleAccessCall {
153724	c := &SubnetworksSetPrivateIpGoogleAccessCall{s: r.s, urlParams_: make(gensupport.URLParams)}
153725	c.project = project
153726	c.region = region
153727	c.subnetwork = subnetwork
153728	c.subnetworkssetprivateipgoogleaccessrequest = subnetworkssetprivateipgoogleaccessrequest
153729	return c
153730}
153731
153732// RequestId sets the optional parameter "requestId": An optional
153733// request ID to identify requests. Specify a unique request ID so that
153734// if you must retry your request, the server will know to ignore the
153735// request if it has already been completed.
153736//
153737// For example, consider a situation where you make an initial request
153738// and the request times out. If you make the request again with the
153739// same request ID, the server can check if original operation with the
153740// same request ID was received, and if so, will ignore the second
153741// request. This prevents clients from accidentally creating duplicate
153742// commitments.
153743//
153744// The request ID must be a valid UUID with the exception that zero UUID
153745// is not supported (00000000-0000-0000-0000-000000000000).
153746func (c *SubnetworksSetPrivateIpGoogleAccessCall) RequestId(requestId string) *SubnetworksSetPrivateIpGoogleAccessCall {
153747	c.urlParams_.Set("requestId", requestId)
153748	return c
153749}
153750
153751// Fields allows partial responses to be retrieved. See
153752// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
153753// for more information.
153754func (c *SubnetworksSetPrivateIpGoogleAccessCall) Fields(s ...googleapi.Field) *SubnetworksSetPrivateIpGoogleAccessCall {
153755	c.urlParams_.Set("fields", googleapi.CombineFields(s))
153756	return c
153757}
153758
153759// Context sets the context to be used in this call's Do method. Any
153760// pending HTTP request will be aborted if the provided context is
153761// canceled.
153762func (c *SubnetworksSetPrivateIpGoogleAccessCall) Context(ctx context.Context) *SubnetworksSetPrivateIpGoogleAccessCall {
153763	c.ctx_ = ctx
153764	return c
153765}
153766
153767// Header returns an http.Header that can be modified by the caller to
153768// add HTTP headers to the request.
153769func (c *SubnetworksSetPrivateIpGoogleAccessCall) Header() http.Header {
153770	if c.header_ == nil {
153771		c.header_ = make(http.Header)
153772	}
153773	return c.header_
153774}
153775
153776func (c *SubnetworksSetPrivateIpGoogleAccessCall) doRequest(alt string) (*http.Response, error) {
153777	reqHeaders := make(http.Header)
153778	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
153779	for k, v := range c.header_ {
153780		reqHeaders[k] = v
153781	}
153782	reqHeaders.Set("User-Agent", c.s.userAgent())
153783	var body io.Reader = nil
153784	body, err := googleapi.WithoutDataWrapper.JSONReader(c.subnetworkssetprivateipgoogleaccessrequest)
153785	if err != nil {
153786		return nil, err
153787	}
153788	reqHeaders.Set("Content-Type", "application/json")
153789	c.urlParams_.Set("alt", alt)
153790	c.urlParams_.Set("prettyPrint", "false")
153791	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/subnetworks/{subnetwork}/setPrivateIpGoogleAccess")
153792	urls += "?" + c.urlParams_.Encode()
153793	req, err := http.NewRequest("POST", urls, body)
153794	if err != nil {
153795		return nil, err
153796	}
153797	req.Header = reqHeaders
153798	googleapi.Expand(req.URL, map[string]string{
153799		"project":    c.project,
153800		"region":     c.region,
153801		"subnetwork": c.subnetwork,
153802	})
153803	return gensupport.SendRequest(c.ctx_, c.s.client, req)
153804}
153805
153806// Do executes the "compute.subnetworks.setPrivateIpGoogleAccess" call.
153807// Exactly one of *Operation or error will be non-nil. Any non-2xx
153808// status code is an error. Response headers are in either
153809// *Operation.ServerResponse.Header or (if a response was returned at
153810// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
153811// to check whether the returned error was because
153812// http.StatusNotModified was returned.
153813func (c *SubnetworksSetPrivateIpGoogleAccessCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
153814	gensupport.SetOptions(c.urlParams_, opts...)
153815	res, err := c.doRequest("json")
153816	if res != nil && res.StatusCode == http.StatusNotModified {
153817		if res.Body != nil {
153818			res.Body.Close()
153819		}
153820		return nil, &googleapi.Error{
153821			Code:   res.StatusCode,
153822			Header: res.Header,
153823		}
153824	}
153825	if err != nil {
153826		return nil, err
153827	}
153828	defer googleapi.CloseBody(res)
153829	if err := googleapi.CheckResponse(res); err != nil {
153830		return nil, err
153831	}
153832	ret := &Operation{
153833		ServerResponse: googleapi.ServerResponse{
153834			Header:         res.Header,
153835			HTTPStatusCode: res.StatusCode,
153836		},
153837	}
153838	target := &ret
153839	if err := gensupport.DecodeResponse(target, res); err != nil {
153840		return nil, err
153841	}
153842	return ret, nil
153843	// {
153844	//   "description": "Set whether VMs in this subnet can access Google services without assigning external IP addresses through Private Google Access. (== suppress_warning http-rest-shadowed ==)",
153845	//   "httpMethod": "POST",
153846	//   "id": "compute.subnetworks.setPrivateIpGoogleAccess",
153847	//   "parameterOrder": [
153848	//     "project",
153849	//     "region",
153850	//     "subnetwork"
153851	//   ],
153852	//   "parameters": {
153853	//     "project": {
153854	//       "description": "Project ID for this request.",
153855	//       "location": "path",
153856	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
153857	//       "required": true,
153858	//       "type": "string"
153859	//     },
153860	//     "region": {
153861	//       "description": "Name of the region scoping this request.",
153862	//       "location": "path",
153863	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
153864	//       "required": true,
153865	//       "type": "string"
153866	//     },
153867	//     "requestId": {
153868	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
153869	//       "location": "query",
153870	//       "type": "string"
153871	//     },
153872	//     "subnetwork": {
153873	//       "description": "Name of the Subnetwork resource.",
153874	//       "location": "path",
153875	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
153876	//       "required": true,
153877	//       "type": "string"
153878	//     }
153879	//   },
153880	//   "path": "{project}/regions/{region}/subnetworks/{subnetwork}/setPrivateIpGoogleAccess",
153881	//   "request": {
153882	//     "$ref": "SubnetworksSetPrivateIpGoogleAccessRequest"
153883	//   },
153884	//   "response": {
153885	//     "$ref": "Operation"
153886	//   },
153887	//   "scopes": [
153888	//     "https://www.googleapis.com/auth/cloud-platform",
153889	//     "https://www.googleapis.com/auth/compute"
153890	//   ]
153891	// }
153892
153893}
153894
153895// method id "compute.subnetworks.testIamPermissions":
153896
153897type SubnetworksTestIamPermissionsCall struct {
153898	s                      *Service
153899	project                string
153900	region                 string
153901	resource               string
153902	testpermissionsrequest *TestPermissionsRequest
153903	urlParams_             gensupport.URLParams
153904	ctx_                   context.Context
153905	header_                http.Header
153906}
153907
153908// TestIamPermissions: Returns permissions that a caller has on the
153909// specified resource. (== suppress_warning http-rest-shadowed ==)
153910func (r *SubnetworksService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *SubnetworksTestIamPermissionsCall {
153911	c := &SubnetworksTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
153912	c.project = project
153913	c.region = region
153914	c.resource = resource
153915	c.testpermissionsrequest = testpermissionsrequest
153916	return c
153917}
153918
153919// Fields allows partial responses to be retrieved. See
153920// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
153921// for more information.
153922func (c *SubnetworksTestIamPermissionsCall) Fields(s ...googleapi.Field) *SubnetworksTestIamPermissionsCall {
153923	c.urlParams_.Set("fields", googleapi.CombineFields(s))
153924	return c
153925}
153926
153927// Context sets the context to be used in this call's Do method. Any
153928// pending HTTP request will be aborted if the provided context is
153929// canceled.
153930func (c *SubnetworksTestIamPermissionsCall) Context(ctx context.Context) *SubnetworksTestIamPermissionsCall {
153931	c.ctx_ = ctx
153932	return c
153933}
153934
153935// Header returns an http.Header that can be modified by the caller to
153936// add HTTP headers to the request.
153937func (c *SubnetworksTestIamPermissionsCall) Header() http.Header {
153938	if c.header_ == nil {
153939		c.header_ = make(http.Header)
153940	}
153941	return c.header_
153942}
153943
153944func (c *SubnetworksTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
153945	reqHeaders := make(http.Header)
153946	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
153947	for k, v := range c.header_ {
153948		reqHeaders[k] = v
153949	}
153950	reqHeaders.Set("User-Agent", c.s.userAgent())
153951	var body io.Reader = nil
153952	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
153953	if err != nil {
153954		return nil, err
153955	}
153956	reqHeaders.Set("Content-Type", "application/json")
153957	c.urlParams_.Set("alt", alt)
153958	c.urlParams_.Set("prettyPrint", "false")
153959	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/subnetworks/{resource}/testIamPermissions")
153960	urls += "?" + c.urlParams_.Encode()
153961	req, err := http.NewRequest("POST", urls, body)
153962	if err != nil {
153963		return nil, err
153964	}
153965	req.Header = reqHeaders
153966	googleapi.Expand(req.URL, map[string]string{
153967		"project":  c.project,
153968		"region":   c.region,
153969		"resource": c.resource,
153970	})
153971	return gensupport.SendRequest(c.ctx_, c.s.client, req)
153972}
153973
153974// Do executes the "compute.subnetworks.testIamPermissions" call.
153975// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
153976// non-2xx status code is an error. Response headers are in either
153977// *TestPermissionsResponse.ServerResponse.Header or (if a response was
153978// returned at all) in error.(*googleapi.Error).Header. Use
153979// googleapi.IsNotModified to check whether the returned error was
153980// because http.StatusNotModified was returned.
153981func (c *SubnetworksTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
153982	gensupport.SetOptions(c.urlParams_, opts...)
153983	res, err := c.doRequest("json")
153984	if res != nil && res.StatusCode == http.StatusNotModified {
153985		if res.Body != nil {
153986			res.Body.Close()
153987		}
153988		return nil, &googleapi.Error{
153989			Code:   res.StatusCode,
153990			Header: res.Header,
153991		}
153992	}
153993	if err != nil {
153994		return nil, err
153995	}
153996	defer googleapi.CloseBody(res)
153997	if err := googleapi.CheckResponse(res); err != nil {
153998		return nil, err
153999	}
154000	ret := &TestPermissionsResponse{
154001		ServerResponse: googleapi.ServerResponse{
154002			Header:         res.Header,
154003			HTTPStatusCode: res.StatusCode,
154004		},
154005	}
154006	target := &ret
154007	if err := gensupport.DecodeResponse(target, res); err != nil {
154008		return nil, err
154009	}
154010	return ret, nil
154011	// {
154012	//   "description": "Returns permissions that a caller has on the specified resource. (== suppress_warning http-rest-shadowed ==)",
154013	//   "httpMethod": "POST",
154014	//   "id": "compute.subnetworks.testIamPermissions",
154015	//   "parameterOrder": [
154016	//     "project",
154017	//     "region",
154018	//     "resource"
154019	//   ],
154020	//   "parameters": {
154021	//     "project": {
154022	//       "description": "Project ID for this request.",
154023	//       "location": "path",
154024	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
154025	//       "required": true,
154026	//       "type": "string"
154027	//     },
154028	//     "region": {
154029	//       "description": "The name of the region for this request.",
154030	//       "location": "path",
154031	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
154032	//       "required": true,
154033	//       "type": "string"
154034	//     },
154035	//     "resource": {
154036	//       "description": "Name or id of the resource for this request.",
154037	//       "location": "path",
154038	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
154039	//       "required": true,
154040	//       "type": "string"
154041	//     }
154042	//   },
154043	//   "path": "{project}/regions/{region}/subnetworks/{resource}/testIamPermissions",
154044	//   "request": {
154045	//     "$ref": "TestPermissionsRequest"
154046	//   },
154047	//   "response": {
154048	//     "$ref": "TestPermissionsResponse"
154049	//   },
154050	//   "scopes": [
154051	//     "https://www.googleapis.com/auth/cloud-platform",
154052	//     "https://www.googleapis.com/auth/compute",
154053	//     "https://www.googleapis.com/auth/compute.readonly"
154054	//   ]
154055	// }
154056
154057}
154058
154059// method id "compute.targetHttpProxies.aggregatedList":
154060
154061type TargetHttpProxiesAggregatedListCall struct {
154062	s            *Service
154063	project      string
154064	urlParams_   gensupport.URLParams
154065	ifNoneMatch_ string
154066	ctx_         context.Context
154067	header_      http.Header
154068}
154069
154070// AggregatedList: Retrieves the list of all TargetHttpProxy resources,
154071// regional and global, available to the specified project. (==
154072// suppress_warning http-rest-shadowed ==)
154073func (r *TargetHttpProxiesService) AggregatedList(project string) *TargetHttpProxiesAggregatedListCall {
154074	c := &TargetHttpProxiesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
154075	c.project = project
154076	return c
154077}
154078
154079// Filter sets the optional parameter "filter": A filter expression that
154080// filters resources listed in the response. The expression must specify
154081// the field name, a comparison operator, and the value that you want to
154082// use for filtering. The value must be a string, a number, or a
154083// boolean. The comparison operator must be either =, !=, >, or <.
154084//
154085// For example, if you are filtering Compute Engine instances, you can
154086// exclude instances named example-instance by specifying name !=
154087// example-instance.
154088//
154089// You can also filter nested fields. For example, you could specify
154090// scheduling.automaticRestart = false to include instances only if they
154091// are not scheduled for automatic restarts. You can use filtering on
154092// nested fields to filter based on resource labels.
154093//
154094// To filter on multiple expressions, provide each separate expression
154095// within parentheses. For example, (scheduling.automaticRestart = true)
154096// (cpuPlatform = "Intel Skylake"). By default, each expression is an
154097// AND expression. However, you can include AND and OR expressions
154098// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
154099// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
154100// true).
154101func (c *TargetHttpProxiesAggregatedListCall) Filter(filter string) *TargetHttpProxiesAggregatedListCall {
154102	c.urlParams_.Set("filter", filter)
154103	return c
154104}
154105
154106// MaxResults sets the optional parameter "maxResults": The maximum
154107// number of results per page that should be returned. If the number of
154108// available results is larger than maxResults, Compute Engine returns a
154109// nextPageToken that can be used to get the next page of results in
154110// subsequent list requests. Acceptable values are 0 to 500, inclusive.
154111// (Default: 500)
154112func (c *TargetHttpProxiesAggregatedListCall) MaxResults(maxResults int64) *TargetHttpProxiesAggregatedListCall {
154113	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
154114	return c
154115}
154116
154117// OrderBy sets the optional parameter "orderBy": Sorts list results by
154118// a certain order. By default, results are returned in alphanumerical
154119// order based on the resource name.
154120//
154121// You can also sort results in descending order based on the creation
154122// timestamp using orderBy="creationTimestamp desc". This sorts results
154123// based on the creationTimestamp field in reverse chronological order
154124// (newest result first). Use this to sort resources like operations so
154125// that the newest operation is returned first.
154126//
154127// Currently, only sorting by name or creationTimestamp desc is
154128// supported.
154129func (c *TargetHttpProxiesAggregatedListCall) OrderBy(orderBy string) *TargetHttpProxiesAggregatedListCall {
154130	c.urlParams_.Set("orderBy", orderBy)
154131	return c
154132}
154133
154134// PageToken sets the optional parameter "pageToken": Specifies a page
154135// token to use. Set pageToken to the nextPageToken returned by a
154136// previous list request to get the next page of results.
154137func (c *TargetHttpProxiesAggregatedListCall) PageToken(pageToken string) *TargetHttpProxiesAggregatedListCall {
154138	c.urlParams_.Set("pageToken", pageToken)
154139	return c
154140}
154141
154142// Fields allows partial responses to be retrieved. See
154143// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
154144// for more information.
154145func (c *TargetHttpProxiesAggregatedListCall) Fields(s ...googleapi.Field) *TargetHttpProxiesAggregatedListCall {
154146	c.urlParams_.Set("fields", googleapi.CombineFields(s))
154147	return c
154148}
154149
154150// IfNoneMatch sets the optional parameter which makes the operation
154151// fail if the object's ETag matches the given value. This is useful for
154152// getting updates only after the object has changed since the last
154153// request. Use googleapi.IsNotModified to check whether the response
154154// error from Do is the result of In-None-Match.
154155func (c *TargetHttpProxiesAggregatedListCall) IfNoneMatch(entityTag string) *TargetHttpProxiesAggregatedListCall {
154156	c.ifNoneMatch_ = entityTag
154157	return c
154158}
154159
154160// Context sets the context to be used in this call's Do method. Any
154161// pending HTTP request will be aborted if the provided context is
154162// canceled.
154163func (c *TargetHttpProxiesAggregatedListCall) Context(ctx context.Context) *TargetHttpProxiesAggregatedListCall {
154164	c.ctx_ = ctx
154165	return c
154166}
154167
154168// Header returns an http.Header that can be modified by the caller to
154169// add HTTP headers to the request.
154170func (c *TargetHttpProxiesAggregatedListCall) Header() http.Header {
154171	if c.header_ == nil {
154172		c.header_ = make(http.Header)
154173	}
154174	return c.header_
154175}
154176
154177func (c *TargetHttpProxiesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
154178	reqHeaders := make(http.Header)
154179	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
154180	for k, v := range c.header_ {
154181		reqHeaders[k] = v
154182	}
154183	reqHeaders.Set("User-Agent", c.s.userAgent())
154184	if c.ifNoneMatch_ != "" {
154185		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
154186	}
154187	var body io.Reader = nil
154188	c.urlParams_.Set("alt", alt)
154189	c.urlParams_.Set("prettyPrint", "false")
154190	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/targetHttpProxies")
154191	urls += "?" + c.urlParams_.Encode()
154192	req, err := http.NewRequest("GET", urls, body)
154193	if err != nil {
154194		return nil, err
154195	}
154196	req.Header = reqHeaders
154197	googleapi.Expand(req.URL, map[string]string{
154198		"project": c.project,
154199	})
154200	return gensupport.SendRequest(c.ctx_, c.s.client, req)
154201}
154202
154203// Do executes the "compute.targetHttpProxies.aggregatedList" call.
154204// Exactly one of *TargetHttpProxyAggregatedList or error will be
154205// non-nil. Any non-2xx status code is an error. Response headers are in
154206// either *TargetHttpProxyAggregatedList.ServerResponse.Header or (if a
154207// response was returned at all) in error.(*googleapi.Error).Header. Use
154208// googleapi.IsNotModified to check whether the returned error was
154209// because http.StatusNotModified was returned.
154210func (c *TargetHttpProxiesAggregatedListCall) Do(opts ...googleapi.CallOption) (*TargetHttpProxyAggregatedList, error) {
154211	gensupport.SetOptions(c.urlParams_, opts...)
154212	res, err := c.doRequest("json")
154213	if res != nil && res.StatusCode == http.StatusNotModified {
154214		if res.Body != nil {
154215			res.Body.Close()
154216		}
154217		return nil, &googleapi.Error{
154218			Code:   res.StatusCode,
154219			Header: res.Header,
154220		}
154221	}
154222	if err != nil {
154223		return nil, err
154224	}
154225	defer googleapi.CloseBody(res)
154226	if err := googleapi.CheckResponse(res); err != nil {
154227		return nil, err
154228	}
154229	ret := &TargetHttpProxyAggregatedList{
154230		ServerResponse: googleapi.ServerResponse{
154231			Header:         res.Header,
154232			HTTPStatusCode: res.StatusCode,
154233		},
154234	}
154235	target := &ret
154236	if err := gensupport.DecodeResponse(target, res); err != nil {
154237		return nil, err
154238	}
154239	return ret, nil
154240	// {
154241	//   "description": "Retrieves the list of all TargetHttpProxy resources, regional and global, available to the specified project. (== suppress_warning http-rest-shadowed ==)",
154242	//   "httpMethod": "GET",
154243	//   "id": "compute.targetHttpProxies.aggregatedList",
154244	//   "parameterOrder": [
154245	//     "project"
154246	//   ],
154247	//   "parameters": {
154248	//     "filter": {
154249	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
154250	//       "location": "query",
154251	//       "type": "string"
154252	//     },
154253	//     "maxResults": {
154254	//       "default": "500",
154255	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
154256	//       "format": "uint32",
154257	//       "location": "query",
154258	//       "minimum": "0",
154259	//       "type": "integer"
154260	//     },
154261	//     "orderBy": {
154262	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
154263	//       "location": "query",
154264	//       "type": "string"
154265	//     },
154266	//     "pageToken": {
154267	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
154268	//       "location": "query",
154269	//       "type": "string"
154270	//     },
154271	//     "project": {
154272	//       "description": "Name of the project scoping this request.",
154273	//       "location": "path",
154274	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
154275	//       "required": true,
154276	//       "type": "string"
154277	//     }
154278	//   },
154279	//   "path": "{project}/aggregated/targetHttpProxies",
154280	//   "response": {
154281	//     "$ref": "TargetHttpProxyAggregatedList"
154282	//   },
154283	//   "scopes": [
154284	//     "https://www.googleapis.com/auth/cloud-platform",
154285	//     "https://www.googleapis.com/auth/compute",
154286	//     "https://www.googleapis.com/auth/compute.readonly"
154287	//   ]
154288	// }
154289
154290}
154291
154292// Pages invokes f for each page of results.
154293// A non-nil error returned from f will halt the iteration.
154294// The provided context supersedes any context provided to the Context method.
154295func (c *TargetHttpProxiesAggregatedListCall) Pages(ctx context.Context, f func(*TargetHttpProxyAggregatedList) error) error {
154296	c.ctx_ = ctx
154297	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
154298	for {
154299		x, err := c.Do()
154300		if err != nil {
154301			return err
154302		}
154303		if err := f(x); err != nil {
154304			return err
154305		}
154306		if x.NextPageToken == "" {
154307			return nil
154308		}
154309		c.PageToken(x.NextPageToken)
154310	}
154311}
154312
154313// method id "compute.targetHttpProxies.delete":
154314
154315type TargetHttpProxiesDeleteCall struct {
154316	s               *Service
154317	project         string
154318	targetHttpProxy string
154319	urlParams_      gensupport.URLParams
154320	ctx_            context.Context
154321	header_         http.Header
154322}
154323
154324// Delete: Deletes the specified TargetHttpProxy resource. (==
154325// suppress_warning http-rest-shadowed ==)
154326// For details, see https://cloud.google.com/compute/docs/reference/latest/targetHttpProxies/delete
154327func (r *TargetHttpProxiesService) Delete(project string, targetHttpProxy string) *TargetHttpProxiesDeleteCall {
154328	c := &TargetHttpProxiesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
154329	c.project = project
154330	c.targetHttpProxy = targetHttpProxy
154331	return c
154332}
154333
154334// RequestId sets the optional parameter "requestId": An optional
154335// request ID to identify requests. Specify a unique request ID so that
154336// if you must retry your request, the server will know to ignore the
154337// request if it has already been completed.
154338//
154339// For example, consider a situation where you make an initial request
154340// and the request times out. If you make the request again with the
154341// same request ID, the server can check if original operation with the
154342// same request ID was received, and if so, will ignore the second
154343// request. This prevents clients from accidentally creating duplicate
154344// commitments.
154345//
154346// The request ID must be a valid UUID with the exception that zero UUID
154347// is not supported (00000000-0000-0000-0000-000000000000).
154348func (c *TargetHttpProxiesDeleteCall) RequestId(requestId string) *TargetHttpProxiesDeleteCall {
154349	c.urlParams_.Set("requestId", requestId)
154350	return c
154351}
154352
154353// Fields allows partial responses to be retrieved. See
154354// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
154355// for more information.
154356func (c *TargetHttpProxiesDeleteCall) Fields(s ...googleapi.Field) *TargetHttpProxiesDeleteCall {
154357	c.urlParams_.Set("fields", googleapi.CombineFields(s))
154358	return c
154359}
154360
154361// Context sets the context to be used in this call's Do method. Any
154362// pending HTTP request will be aborted if the provided context is
154363// canceled.
154364func (c *TargetHttpProxiesDeleteCall) Context(ctx context.Context) *TargetHttpProxiesDeleteCall {
154365	c.ctx_ = ctx
154366	return c
154367}
154368
154369// Header returns an http.Header that can be modified by the caller to
154370// add HTTP headers to the request.
154371func (c *TargetHttpProxiesDeleteCall) Header() http.Header {
154372	if c.header_ == nil {
154373		c.header_ = make(http.Header)
154374	}
154375	return c.header_
154376}
154377
154378func (c *TargetHttpProxiesDeleteCall) doRequest(alt string) (*http.Response, error) {
154379	reqHeaders := make(http.Header)
154380	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
154381	for k, v := range c.header_ {
154382		reqHeaders[k] = v
154383	}
154384	reqHeaders.Set("User-Agent", c.s.userAgent())
154385	var body io.Reader = nil
154386	c.urlParams_.Set("alt", alt)
154387	c.urlParams_.Set("prettyPrint", "false")
154388	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetHttpProxies/{targetHttpProxy}")
154389	urls += "?" + c.urlParams_.Encode()
154390	req, err := http.NewRequest("DELETE", urls, body)
154391	if err != nil {
154392		return nil, err
154393	}
154394	req.Header = reqHeaders
154395	googleapi.Expand(req.URL, map[string]string{
154396		"project":         c.project,
154397		"targetHttpProxy": c.targetHttpProxy,
154398	})
154399	return gensupport.SendRequest(c.ctx_, c.s.client, req)
154400}
154401
154402// Do executes the "compute.targetHttpProxies.delete" call.
154403// Exactly one of *Operation or error will be non-nil. Any non-2xx
154404// status code is an error. Response headers are in either
154405// *Operation.ServerResponse.Header or (if a response was returned at
154406// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
154407// to check whether the returned error was because
154408// http.StatusNotModified was returned.
154409func (c *TargetHttpProxiesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
154410	gensupport.SetOptions(c.urlParams_, opts...)
154411	res, err := c.doRequest("json")
154412	if res != nil && res.StatusCode == http.StatusNotModified {
154413		if res.Body != nil {
154414			res.Body.Close()
154415		}
154416		return nil, &googleapi.Error{
154417			Code:   res.StatusCode,
154418			Header: res.Header,
154419		}
154420	}
154421	if err != nil {
154422		return nil, err
154423	}
154424	defer googleapi.CloseBody(res)
154425	if err := googleapi.CheckResponse(res); err != nil {
154426		return nil, err
154427	}
154428	ret := &Operation{
154429		ServerResponse: googleapi.ServerResponse{
154430			Header:         res.Header,
154431			HTTPStatusCode: res.StatusCode,
154432		},
154433	}
154434	target := &ret
154435	if err := gensupport.DecodeResponse(target, res); err != nil {
154436		return nil, err
154437	}
154438	return ret, nil
154439	// {
154440	//   "description": "Deletes the specified TargetHttpProxy resource. (== suppress_warning http-rest-shadowed ==)",
154441	//   "httpMethod": "DELETE",
154442	//   "id": "compute.targetHttpProxies.delete",
154443	//   "parameterOrder": [
154444	//     "project",
154445	//     "targetHttpProxy"
154446	//   ],
154447	//   "parameters": {
154448	//     "project": {
154449	//       "description": "Project ID for this request.",
154450	//       "location": "path",
154451	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
154452	//       "required": true,
154453	//       "type": "string"
154454	//     },
154455	//     "requestId": {
154456	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
154457	//       "location": "query",
154458	//       "type": "string"
154459	//     },
154460	//     "targetHttpProxy": {
154461	//       "description": "Name of the TargetHttpProxy resource to delete.",
154462	//       "location": "path",
154463	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
154464	//       "required": true,
154465	//       "type": "string"
154466	//     }
154467	//   },
154468	//   "path": "{project}/global/targetHttpProxies/{targetHttpProxy}",
154469	//   "response": {
154470	//     "$ref": "Operation"
154471	//   },
154472	//   "scopes": [
154473	//     "https://www.googleapis.com/auth/cloud-platform",
154474	//     "https://www.googleapis.com/auth/compute"
154475	//   ]
154476	// }
154477
154478}
154479
154480// method id "compute.targetHttpProxies.get":
154481
154482type TargetHttpProxiesGetCall struct {
154483	s               *Service
154484	project         string
154485	targetHttpProxy string
154486	urlParams_      gensupport.URLParams
154487	ifNoneMatch_    string
154488	ctx_            context.Context
154489	header_         http.Header
154490}
154491
154492// Get: Returns the specified TargetHttpProxy resource. Gets a list of
154493// available target HTTP proxies by making a list() request. (==
154494// suppress_warning http-rest-shadowed ==)
154495// For details, see https://cloud.google.com/compute/docs/reference/latest/targetHttpProxies/get
154496func (r *TargetHttpProxiesService) Get(project string, targetHttpProxy string) *TargetHttpProxiesGetCall {
154497	c := &TargetHttpProxiesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
154498	c.project = project
154499	c.targetHttpProxy = targetHttpProxy
154500	return c
154501}
154502
154503// Fields allows partial responses to be retrieved. See
154504// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
154505// for more information.
154506func (c *TargetHttpProxiesGetCall) Fields(s ...googleapi.Field) *TargetHttpProxiesGetCall {
154507	c.urlParams_.Set("fields", googleapi.CombineFields(s))
154508	return c
154509}
154510
154511// IfNoneMatch sets the optional parameter which makes the operation
154512// fail if the object's ETag matches the given value. This is useful for
154513// getting updates only after the object has changed since the last
154514// request. Use googleapi.IsNotModified to check whether the response
154515// error from Do is the result of In-None-Match.
154516func (c *TargetHttpProxiesGetCall) IfNoneMatch(entityTag string) *TargetHttpProxiesGetCall {
154517	c.ifNoneMatch_ = entityTag
154518	return c
154519}
154520
154521// Context sets the context to be used in this call's Do method. Any
154522// pending HTTP request will be aborted if the provided context is
154523// canceled.
154524func (c *TargetHttpProxiesGetCall) Context(ctx context.Context) *TargetHttpProxiesGetCall {
154525	c.ctx_ = ctx
154526	return c
154527}
154528
154529// Header returns an http.Header that can be modified by the caller to
154530// add HTTP headers to the request.
154531func (c *TargetHttpProxiesGetCall) Header() http.Header {
154532	if c.header_ == nil {
154533		c.header_ = make(http.Header)
154534	}
154535	return c.header_
154536}
154537
154538func (c *TargetHttpProxiesGetCall) doRequest(alt string) (*http.Response, error) {
154539	reqHeaders := make(http.Header)
154540	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
154541	for k, v := range c.header_ {
154542		reqHeaders[k] = v
154543	}
154544	reqHeaders.Set("User-Agent", c.s.userAgent())
154545	if c.ifNoneMatch_ != "" {
154546		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
154547	}
154548	var body io.Reader = nil
154549	c.urlParams_.Set("alt", alt)
154550	c.urlParams_.Set("prettyPrint", "false")
154551	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetHttpProxies/{targetHttpProxy}")
154552	urls += "?" + c.urlParams_.Encode()
154553	req, err := http.NewRequest("GET", urls, body)
154554	if err != nil {
154555		return nil, err
154556	}
154557	req.Header = reqHeaders
154558	googleapi.Expand(req.URL, map[string]string{
154559		"project":         c.project,
154560		"targetHttpProxy": c.targetHttpProxy,
154561	})
154562	return gensupport.SendRequest(c.ctx_, c.s.client, req)
154563}
154564
154565// Do executes the "compute.targetHttpProxies.get" call.
154566// Exactly one of *TargetHttpProxy or error will be non-nil. Any non-2xx
154567// status code is an error. Response headers are in either
154568// *TargetHttpProxy.ServerResponse.Header or (if a response was returned
154569// at all) in error.(*googleapi.Error).Header. Use
154570// googleapi.IsNotModified to check whether the returned error was
154571// because http.StatusNotModified was returned.
154572func (c *TargetHttpProxiesGetCall) Do(opts ...googleapi.CallOption) (*TargetHttpProxy, error) {
154573	gensupport.SetOptions(c.urlParams_, opts...)
154574	res, err := c.doRequest("json")
154575	if res != nil && res.StatusCode == http.StatusNotModified {
154576		if res.Body != nil {
154577			res.Body.Close()
154578		}
154579		return nil, &googleapi.Error{
154580			Code:   res.StatusCode,
154581			Header: res.Header,
154582		}
154583	}
154584	if err != nil {
154585		return nil, err
154586	}
154587	defer googleapi.CloseBody(res)
154588	if err := googleapi.CheckResponse(res); err != nil {
154589		return nil, err
154590	}
154591	ret := &TargetHttpProxy{
154592		ServerResponse: googleapi.ServerResponse{
154593			Header:         res.Header,
154594			HTTPStatusCode: res.StatusCode,
154595		},
154596	}
154597	target := &ret
154598	if err := gensupport.DecodeResponse(target, res); err != nil {
154599		return nil, err
154600	}
154601	return ret, nil
154602	// {
154603	//   "description": "Returns the specified TargetHttpProxy resource. Gets a list of available target HTTP proxies by making a list() request. (== suppress_warning http-rest-shadowed ==)",
154604	//   "httpMethod": "GET",
154605	//   "id": "compute.targetHttpProxies.get",
154606	//   "parameterOrder": [
154607	//     "project",
154608	//     "targetHttpProxy"
154609	//   ],
154610	//   "parameters": {
154611	//     "project": {
154612	//       "description": "Project ID for this request.",
154613	//       "location": "path",
154614	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
154615	//       "required": true,
154616	//       "type": "string"
154617	//     },
154618	//     "targetHttpProxy": {
154619	//       "description": "Name of the TargetHttpProxy resource to return.",
154620	//       "location": "path",
154621	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
154622	//       "required": true,
154623	//       "type": "string"
154624	//     }
154625	//   },
154626	//   "path": "{project}/global/targetHttpProxies/{targetHttpProxy}",
154627	//   "response": {
154628	//     "$ref": "TargetHttpProxy"
154629	//   },
154630	//   "scopes": [
154631	//     "https://www.googleapis.com/auth/cloud-platform",
154632	//     "https://www.googleapis.com/auth/compute",
154633	//     "https://www.googleapis.com/auth/compute.readonly"
154634	//   ]
154635	// }
154636
154637}
154638
154639// method id "compute.targetHttpProxies.insert":
154640
154641type TargetHttpProxiesInsertCall struct {
154642	s               *Service
154643	project         string
154644	targethttpproxy *TargetHttpProxy
154645	urlParams_      gensupport.URLParams
154646	ctx_            context.Context
154647	header_         http.Header
154648}
154649
154650// Insert: Creates a TargetHttpProxy resource in the specified project
154651// using the data included in the request. (== suppress_warning
154652// http-rest-shadowed ==)
154653// For details, see https://cloud.google.com/compute/docs/reference/latest/targetHttpProxies/insert
154654func (r *TargetHttpProxiesService) Insert(project string, targethttpproxy *TargetHttpProxy) *TargetHttpProxiesInsertCall {
154655	c := &TargetHttpProxiesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
154656	c.project = project
154657	c.targethttpproxy = targethttpproxy
154658	return c
154659}
154660
154661// RequestId sets the optional parameter "requestId": An optional
154662// request ID to identify requests. Specify a unique request ID so that
154663// if you must retry your request, the server will know to ignore the
154664// request if it has already been completed.
154665//
154666// For example, consider a situation where you make an initial request
154667// and the request times out. If you make the request again with the
154668// same request ID, the server can check if original operation with the
154669// same request ID was received, and if so, will ignore the second
154670// request. This prevents clients from accidentally creating duplicate
154671// commitments.
154672//
154673// The request ID must be a valid UUID with the exception that zero UUID
154674// is not supported (00000000-0000-0000-0000-000000000000).
154675func (c *TargetHttpProxiesInsertCall) RequestId(requestId string) *TargetHttpProxiesInsertCall {
154676	c.urlParams_.Set("requestId", requestId)
154677	return c
154678}
154679
154680// Fields allows partial responses to be retrieved. See
154681// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
154682// for more information.
154683func (c *TargetHttpProxiesInsertCall) Fields(s ...googleapi.Field) *TargetHttpProxiesInsertCall {
154684	c.urlParams_.Set("fields", googleapi.CombineFields(s))
154685	return c
154686}
154687
154688// Context sets the context to be used in this call's Do method. Any
154689// pending HTTP request will be aborted if the provided context is
154690// canceled.
154691func (c *TargetHttpProxiesInsertCall) Context(ctx context.Context) *TargetHttpProxiesInsertCall {
154692	c.ctx_ = ctx
154693	return c
154694}
154695
154696// Header returns an http.Header that can be modified by the caller to
154697// add HTTP headers to the request.
154698func (c *TargetHttpProxiesInsertCall) Header() http.Header {
154699	if c.header_ == nil {
154700		c.header_ = make(http.Header)
154701	}
154702	return c.header_
154703}
154704
154705func (c *TargetHttpProxiesInsertCall) doRequest(alt string) (*http.Response, error) {
154706	reqHeaders := make(http.Header)
154707	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
154708	for k, v := range c.header_ {
154709		reqHeaders[k] = v
154710	}
154711	reqHeaders.Set("User-Agent", c.s.userAgent())
154712	var body io.Reader = nil
154713	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targethttpproxy)
154714	if err != nil {
154715		return nil, err
154716	}
154717	reqHeaders.Set("Content-Type", "application/json")
154718	c.urlParams_.Set("alt", alt)
154719	c.urlParams_.Set("prettyPrint", "false")
154720	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetHttpProxies")
154721	urls += "?" + c.urlParams_.Encode()
154722	req, err := http.NewRequest("POST", urls, body)
154723	if err != nil {
154724		return nil, err
154725	}
154726	req.Header = reqHeaders
154727	googleapi.Expand(req.URL, map[string]string{
154728		"project": c.project,
154729	})
154730	return gensupport.SendRequest(c.ctx_, c.s.client, req)
154731}
154732
154733// Do executes the "compute.targetHttpProxies.insert" call.
154734// Exactly one of *Operation or error will be non-nil. Any non-2xx
154735// status code is an error. Response headers are in either
154736// *Operation.ServerResponse.Header or (if a response was returned at
154737// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
154738// to check whether the returned error was because
154739// http.StatusNotModified was returned.
154740func (c *TargetHttpProxiesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
154741	gensupport.SetOptions(c.urlParams_, opts...)
154742	res, err := c.doRequest("json")
154743	if res != nil && res.StatusCode == http.StatusNotModified {
154744		if res.Body != nil {
154745			res.Body.Close()
154746		}
154747		return nil, &googleapi.Error{
154748			Code:   res.StatusCode,
154749			Header: res.Header,
154750		}
154751	}
154752	if err != nil {
154753		return nil, err
154754	}
154755	defer googleapi.CloseBody(res)
154756	if err := googleapi.CheckResponse(res); err != nil {
154757		return nil, err
154758	}
154759	ret := &Operation{
154760		ServerResponse: googleapi.ServerResponse{
154761			Header:         res.Header,
154762			HTTPStatusCode: res.StatusCode,
154763		},
154764	}
154765	target := &ret
154766	if err := gensupport.DecodeResponse(target, res); err != nil {
154767		return nil, err
154768	}
154769	return ret, nil
154770	// {
154771	//   "description": "Creates a TargetHttpProxy resource in the specified project using the data included in the request. (== suppress_warning http-rest-shadowed ==)",
154772	//   "httpMethod": "POST",
154773	//   "id": "compute.targetHttpProxies.insert",
154774	//   "parameterOrder": [
154775	//     "project"
154776	//   ],
154777	//   "parameters": {
154778	//     "project": {
154779	//       "description": "Project ID for this request.",
154780	//       "location": "path",
154781	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
154782	//       "required": true,
154783	//       "type": "string"
154784	//     },
154785	//     "requestId": {
154786	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
154787	//       "location": "query",
154788	//       "type": "string"
154789	//     }
154790	//   },
154791	//   "path": "{project}/global/targetHttpProxies",
154792	//   "request": {
154793	//     "$ref": "TargetHttpProxy"
154794	//   },
154795	//   "response": {
154796	//     "$ref": "Operation"
154797	//   },
154798	//   "scopes": [
154799	//     "https://www.googleapis.com/auth/cloud-platform",
154800	//     "https://www.googleapis.com/auth/compute"
154801	//   ]
154802	// }
154803
154804}
154805
154806// method id "compute.targetHttpProxies.list":
154807
154808type TargetHttpProxiesListCall struct {
154809	s            *Service
154810	project      string
154811	urlParams_   gensupport.URLParams
154812	ifNoneMatch_ string
154813	ctx_         context.Context
154814	header_      http.Header
154815}
154816
154817// List: Retrieves the list of TargetHttpProxy resources available to
154818// the specified project. (== suppress_warning http-rest-shadowed ==)
154819// For details, see https://cloud.google.com/compute/docs/reference/latest/targetHttpProxies/list
154820func (r *TargetHttpProxiesService) List(project string) *TargetHttpProxiesListCall {
154821	c := &TargetHttpProxiesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
154822	c.project = project
154823	return c
154824}
154825
154826// Filter sets the optional parameter "filter": A filter expression that
154827// filters resources listed in the response. The expression must specify
154828// the field name, a comparison operator, and the value that you want to
154829// use for filtering. The value must be a string, a number, or a
154830// boolean. The comparison operator must be either =, !=, >, or <.
154831//
154832// For example, if you are filtering Compute Engine instances, you can
154833// exclude instances named example-instance by specifying name !=
154834// example-instance.
154835//
154836// You can also filter nested fields. For example, you could specify
154837// scheduling.automaticRestart = false to include instances only if they
154838// are not scheduled for automatic restarts. You can use filtering on
154839// nested fields to filter based on resource labels.
154840//
154841// To filter on multiple expressions, provide each separate expression
154842// within parentheses. For example, (scheduling.automaticRestart = true)
154843// (cpuPlatform = "Intel Skylake"). By default, each expression is an
154844// AND expression. However, you can include AND and OR expressions
154845// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
154846// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
154847// true).
154848func (c *TargetHttpProxiesListCall) Filter(filter string) *TargetHttpProxiesListCall {
154849	c.urlParams_.Set("filter", filter)
154850	return c
154851}
154852
154853// MaxResults sets the optional parameter "maxResults": The maximum
154854// number of results per page that should be returned. If the number of
154855// available results is larger than maxResults, Compute Engine returns a
154856// nextPageToken that can be used to get the next page of results in
154857// subsequent list requests. Acceptable values are 0 to 500, inclusive.
154858// (Default: 500)
154859func (c *TargetHttpProxiesListCall) MaxResults(maxResults int64) *TargetHttpProxiesListCall {
154860	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
154861	return c
154862}
154863
154864// OrderBy sets the optional parameter "orderBy": Sorts list results by
154865// a certain order. By default, results are returned in alphanumerical
154866// order based on the resource name.
154867//
154868// You can also sort results in descending order based on the creation
154869// timestamp using orderBy="creationTimestamp desc". This sorts results
154870// based on the creationTimestamp field in reverse chronological order
154871// (newest result first). Use this to sort resources like operations so
154872// that the newest operation is returned first.
154873//
154874// Currently, only sorting by name or creationTimestamp desc is
154875// supported.
154876func (c *TargetHttpProxiesListCall) OrderBy(orderBy string) *TargetHttpProxiesListCall {
154877	c.urlParams_.Set("orderBy", orderBy)
154878	return c
154879}
154880
154881// PageToken sets the optional parameter "pageToken": Specifies a page
154882// token to use. Set pageToken to the nextPageToken returned by a
154883// previous list request to get the next page of results.
154884func (c *TargetHttpProxiesListCall) PageToken(pageToken string) *TargetHttpProxiesListCall {
154885	c.urlParams_.Set("pageToken", pageToken)
154886	return c
154887}
154888
154889// Fields allows partial responses to be retrieved. See
154890// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
154891// for more information.
154892func (c *TargetHttpProxiesListCall) Fields(s ...googleapi.Field) *TargetHttpProxiesListCall {
154893	c.urlParams_.Set("fields", googleapi.CombineFields(s))
154894	return c
154895}
154896
154897// IfNoneMatch sets the optional parameter which makes the operation
154898// fail if the object's ETag matches the given value. This is useful for
154899// getting updates only after the object has changed since the last
154900// request. Use googleapi.IsNotModified to check whether the response
154901// error from Do is the result of In-None-Match.
154902func (c *TargetHttpProxiesListCall) IfNoneMatch(entityTag string) *TargetHttpProxiesListCall {
154903	c.ifNoneMatch_ = entityTag
154904	return c
154905}
154906
154907// Context sets the context to be used in this call's Do method. Any
154908// pending HTTP request will be aborted if the provided context is
154909// canceled.
154910func (c *TargetHttpProxiesListCall) Context(ctx context.Context) *TargetHttpProxiesListCall {
154911	c.ctx_ = ctx
154912	return c
154913}
154914
154915// Header returns an http.Header that can be modified by the caller to
154916// add HTTP headers to the request.
154917func (c *TargetHttpProxiesListCall) Header() http.Header {
154918	if c.header_ == nil {
154919		c.header_ = make(http.Header)
154920	}
154921	return c.header_
154922}
154923
154924func (c *TargetHttpProxiesListCall) doRequest(alt string) (*http.Response, error) {
154925	reqHeaders := make(http.Header)
154926	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
154927	for k, v := range c.header_ {
154928		reqHeaders[k] = v
154929	}
154930	reqHeaders.Set("User-Agent", c.s.userAgent())
154931	if c.ifNoneMatch_ != "" {
154932		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
154933	}
154934	var body io.Reader = nil
154935	c.urlParams_.Set("alt", alt)
154936	c.urlParams_.Set("prettyPrint", "false")
154937	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetHttpProxies")
154938	urls += "?" + c.urlParams_.Encode()
154939	req, err := http.NewRequest("GET", urls, body)
154940	if err != nil {
154941		return nil, err
154942	}
154943	req.Header = reqHeaders
154944	googleapi.Expand(req.URL, map[string]string{
154945		"project": c.project,
154946	})
154947	return gensupport.SendRequest(c.ctx_, c.s.client, req)
154948}
154949
154950// Do executes the "compute.targetHttpProxies.list" call.
154951// Exactly one of *TargetHttpProxyList or error will be non-nil. Any
154952// non-2xx status code is an error. Response headers are in either
154953// *TargetHttpProxyList.ServerResponse.Header or (if a response was
154954// returned at all) in error.(*googleapi.Error).Header. Use
154955// googleapi.IsNotModified to check whether the returned error was
154956// because http.StatusNotModified was returned.
154957func (c *TargetHttpProxiesListCall) Do(opts ...googleapi.CallOption) (*TargetHttpProxyList, error) {
154958	gensupport.SetOptions(c.urlParams_, opts...)
154959	res, err := c.doRequest("json")
154960	if res != nil && res.StatusCode == http.StatusNotModified {
154961		if res.Body != nil {
154962			res.Body.Close()
154963		}
154964		return nil, &googleapi.Error{
154965			Code:   res.StatusCode,
154966			Header: res.Header,
154967		}
154968	}
154969	if err != nil {
154970		return nil, err
154971	}
154972	defer googleapi.CloseBody(res)
154973	if err := googleapi.CheckResponse(res); err != nil {
154974		return nil, err
154975	}
154976	ret := &TargetHttpProxyList{
154977		ServerResponse: googleapi.ServerResponse{
154978			Header:         res.Header,
154979			HTTPStatusCode: res.StatusCode,
154980		},
154981	}
154982	target := &ret
154983	if err := gensupport.DecodeResponse(target, res); err != nil {
154984		return nil, err
154985	}
154986	return ret, nil
154987	// {
154988	//   "description": "Retrieves the list of TargetHttpProxy resources available to the specified project. (== suppress_warning http-rest-shadowed ==)",
154989	//   "httpMethod": "GET",
154990	//   "id": "compute.targetHttpProxies.list",
154991	//   "parameterOrder": [
154992	//     "project"
154993	//   ],
154994	//   "parameters": {
154995	//     "filter": {
154996	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
154997	//       "location": "query",
154998	//       "type": "string"
154999	//     },
155000	//     "maxResults": {
155001	//       "default": "500",
155002	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
155003	//       "format": "uint32",
155004	//       "location": "query",
155005	//       "minimum": "0",
155006	//       "type": "integer"
155007	//     },
155008	//     "orderBy": {
155009	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
155010	//       "location": "query",
155011	//       "type": "string"
155012	//     },
155013	//     "pageToken": {
155014	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
155015	//       "location": "query",
155016	//       "type": "string"
155017	//     },
155018	//     "project": {
155019	//       "description": "Project ID for this request.",
155020	//       "location": "path",
155021	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
155022	//       "required": true,
155023	//       "type": "string"
155024	//     }
155025	//   },
155026	//   "path": "{project}/global/targetHttpProxies",
155027	//   "response": {
155028	//     "$ref": "TargetHttpProxyList"
155029	//   },
155030	//   "scopes": [
155031	//     "https://www.googleapis.com/auth/cloud-platform",
155032	//     "https://www.googleapis.com/auth/compute",
155033	//     "https://www.googleapis.com/auth/compute.readonly"
155034	//   ]
155035	// }
155036
155037}
155038
155039// Pages invokes f for each page of results.
155040// A non-nil error returned from f will halt the iteration.
155041// The provided context supersedes any context provided to the Context method.
155042func (c *TargetHttpProxiesListCall) Pages(ctx context.Context, f func(*TargetHttpProxyList) error) error {
155043	c.ctx_ = ctx
155044	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
155045	for {
155046		x, err := c.Do()
155047		if err != nil {
155048			return err
155049		}
155050		if err := f(x); err != nil {
155051			return err
155052		}
155053		if x.NextPageToken == "" {
155054			return nil
155055		}
155056		c.PageToken(x.NextPageToken)
155057	}
155058}
155059
155060// method id "compute.targetHttpProxies.setUrlMap":
155061
155062type TargetHttpProxiesSetUrlMapCall struct {
155063	s               *Service
155064	project         string
155065	targetHttpProxy string
155066	urlmapreference *UrlMapReference
155067	urlParams_      gensupport.URLParams
155068	ctx_            context.Context
155069	header_         http.Header
155070}
155071
155072// SetUrlMap: Changes the URL map for TargetHttpProxy. (==
155073// suppress_warning http-rest-shadowed ==)
155074// For details, see https://cloud.google.com/compute/docs/reference/latest/targetHttpProxies/setUrlMap
155075func (r *TargetHttpProxiesService) SetUrlMap(project string, targetHttpProxy string, urlmapreference *UrlMapReference) *TargetHttpProxiesSetUrlMapCall {
155076	c := &TargetHttpProxiesSetUrlMapCall{s: r.s, urlParams_: make(gensupport.URLParams)}
155077	c.project = project
155078	c.targetHttpProxy = targetHttpProxy
155079	c.urlmapreference = urlmapreference
155080	return c
155081}
155082
155083// RequestId sets the optional parameter "requestId": An optional
155084// request ID to identify requests. Specify a unique request ID so that
155085// if you must retry your request, the server will know to ignore the
155086// request if it has already been completed.
155087//
155088// For example, consider a situation where you make an initial request
155089// and the request times out. If you make the request again with the
155090// same request ID, the server can check if original operation with the
155091// same request ID was received, and if so, will ignore the second
155092// request. This prevents clients from accidentally creating duplicate
155093// commitments.
155094//
155095// The request ID must be a valid UUID with the exception that zero UUID
155096// is not supported (00000000-0000-0000-0000-000000000000).
155097func (c *TargetHttpProxiesSetUrlMapCall) RequestId(requestId string) *TargetHttpProxiesSetUrlMapCall {
155098	c.urlParams_.Set("requestId", requestId)
155099	return c
155100}
155101
155102// Fields allows partial responses to be retrieved. See
155103// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
155104// for more information.
155105func (c *TargetHttpProxiesSetUrlMapCall) Fields(s ...googleapi.Field) *TargetHttpProxiesSetUrlMapCall {
155106	c.urlParams_.Set("fields", googleapi.CombineFields(s))
155107	return c
155108}
155109
155110// Context sets the context to be used in this call's Do method. Any
155111// pending HTTP request will be aborted if the provided context is
155112// canceled.
155113func (c *TargetHttpProxiesSetUrlMapCall) Context(ctx context.Context) *TargetHttpProxiesSetUrlMapCall {
155114	c.ctx_ = ctx
155115	return c
155116}
155117
155118// Header returns an http.Header that can be modified by the caller to
155119// add HTTP headers to the request.
155120func (c *TargetHttpProxiesSetUrlMapCall) Header() http.Header {
155121	if c.header_ == nil {
155122		c.header_ = make(http.Header)
155123	}
155124	return c.header_
155125}
155126
155127func (c *TargetHttpProxiesSetUrlMapCall) doRequest(alt string) (*http.Response, error) {
155128	reqHeaders := make(http.Header)
155129	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
155130	for k, v := range c.header_ {
155131		reqHeaders[k] = v
155132	}
155133	reqHeaders.Set("User-Agent", c.s.userAgent())
155134	var body io.Reader = nil
155135	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmapreference)
155136	if err != nil {
155137		return nil, err
155138	}
155139	reqHeaders.Set("Content-Type", "application/json")
155140	c.urlParams_.Set("alt", alt)
155141	c.urlParams_.Set("prettyPrint", "false")
155142	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/targetHttpProxies/{targetHttpProxy}/setUrlMap")
155143	urls += "?" + c.urlParams_.Encode()
155144	req, err := http.NewRequest("POST", urls, body)
155145	if err != nil {
155146		return nil, err
155147	}
155148	req.Header = reqHeaders
155149	googleapi.Expand(req.URL, map[string]string{
155150		"project":         c.project,
155151		"targetHttpProxy": c.targetHttpProxy,
155152	})
155153	return gensupport.SendRequest(c.ctx_, c.s.client, req)
155154}
155155
155156// Do executes the "compute.targetHttpProxies.setUrlMap" call.
155157// Exactly one of *Operation or error will be non-nil. Any non-2xx
155158// status code is an error. Response headers are in either
155159// *Operation.ServerResponse.Header or (if a response was returned at
155160// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
155161// to check whether the returned error was because
155162// http.StatusNotModified was returned.
155163func (c *TargetHttpProxiesSetUrlMapCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
155164	gensupport.SetOptions(c.urlParams_, opts...)
155165	res, err := c.doRequest("json")
155166	if res != nil && res.StatusCode == http.StatusNotModified {
155167		if res.Body != nil {
155168			res.Body.Close()
155169		}
155170		return nil, &googleapi.Error{
155171			Code:   res.StatusCode,
155172			Header: res.Header,
155173		}
155174	}
155175	if err != nil {
155176		return nil, err
155177	}
155178	defer googleapi.CloseBody(res)
155179	if err := googleapi.CheckResponse(res); err != nil {
155180		return nil, err
155181	}
155182	ret := &Operation{
155183		ServerResponse: googleapi.ServerResponse{
155184			Header:         res.Header,
155185			HTTPStatusCode: res.StatusCode,
155186		},
155187	}
155188	target := &ret
155189	if err := gensupport.DecodeResponse(target, res); err != nil {
155190		return nil, err
155191	}
155192	return ret, nil
155193	// {
155194	//   "description": "Changes the URL map for TargetHttpProxy. (== suppress_warning http-rest-shadowed ==)",
155195	//   "httpMethod": "POST",
155196	//   "id": "compute.targetHttpProxies.setUrlMap",
155197	//   "parameterOrder": [
155198	//     "project",
155199	//     "targetHttpProxy"
155200	//   ],
155201	//   "parameters": {
155202	//     "project": {
155203	//       "description": "Project ID for this request.",
155204	//       "location": "path",
155205	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
155206	//       "required": true,
155207	//       "type": "string"
155208	//     },
155209	//     "requestId": {
155210	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
155211	//       "location": "query",
155212	//       "type": "string"
155213	//     },
155214	//     "targetHttpProxy": {
155215	//       "description": "Name of the TargetHttpProxy to set a URL map for.",
155216	//       "location": "path",
155217	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
155218	//       "required": true,
155219	//       "type": "string"
155220	//     }
155221	//   },
155222	//   "path": "{project}/targetHttpProxies/{targetHttpProxy}/setUrlMap",
155223	//   "request": {
155224	//     "$ref": "UrlMapReference"
155225	//   },
155226	//   "response": {
155227	//     "$ref": "Operation"
155228	//   },
155229	//   "scopes": [
155230	//     "https://www.googleapis.com/auth/cloud-platform",
155231	//     "https://www.googleapis.com/auth/compute"
155232	//   ]
155233	// }
155234
155235}
155236
155237// method id "compute.targetHttpProxies.testIamPermissions":
155238
155239type TargetHttpProxiesTestIamPermissionsCall struct {
155240	s                      *Service
155241	project                string
155242	resource               string
155243	testpermissionsrequest *TestPermissionsRequest
155244	urlParams_             gensupport.URLParams
155245	ctx_                   context.Context
155246	header_                http.Header
155247}
155248
155249// TestIamPermissions: Returns permissions that a caller has on the
155250// specified resource. (== suppress_warning http-rest-shadowed ==)
155251func (r *TargetHttpProxiesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *TargetHttpProxiesTestIamPermissionsCall {
155252	c := &TargetHttpProxiesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
155253	c.project = project
155254	c.resource = resource
155255	c.testpermissionsrequest = testpermissionsrequest
155256	return c
155257}
155258
155259// Fields allows partial responses to be retrieved. See
155260// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
155261// for more information.
155262func (c *TargetHttpProxiesTestIamPermissionsCall) Fields(s ...googleapi.Field) *TargetHttpProxiesTestIamPermissionsCall {
155263	c.urlParams_.Set("fields", googleapi.CombineFields(s))
155264	return c
155265}
155266
155267// Context sets the context to be used in this call's Do method. Any
155268// pending HTTP request will be aborted if the provided context is
155269// canceled.
155270func (c *TargetHttpProxiesTestIamPermissionsCall) Context(ctx context.Context) *TargetHttpProxiesTestIamPermissionsCall {
155271	c.ctx_ = ctx
155272	return c
155273}
155274
155275// Header returns an http.Header that can be modified by the caller to
155276// add HTTP headers to the request.
155277func (c *TargetHttpProxiesTestIamPermissionsCall) Header() http.Header {
155278	if c.header_ == nil {
155279		c.header_ = make(http.Header)
155280	}
155281	return c.header_
155282}
155283
155284func (c *TargetHttpProxiesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
155285	reqHeaders := make(http.Header)
155286	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
155287	for k, v := range c.header_ {
155288		reqHeaders[k] = v
155289	}
155290	reqHeaders.Set("User-Agent", c.s.userAgent())
155291	var body io.Reader = nil
155292	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
155293	if err != nil {
155294		return nil, err
155295	}
155296	reqHeaders.Set("Content-Type", "application/json")
155297	c.urlParams_.Set("alt", alt)
155298	c.urlParams_.Set("prettyPrint", "false")
155299	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetHttpProxies/{resource}/testIamPermissions")
155300	urls += "?" + c.urlParams_.Encode()
155301	req, err := http.NewRequest("POST", urls, body)
155302	if err != nil {
155303		return nil, err
155304	}
155305	req.Header = reqHeaders
155306	googleapi.Expand(req.URL, map[string]string{
155307		"project":  c.project,
155308		"resource": c.resource,
155309	})
155310	return gensupport.SendRequest(c.ctx_, c.s.client, req)
155311}
155312
155313// Do executes the "compute.targetHttpProxies.testIamPermissions" call.
155314// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
155315// non-2xx status code is an error. Response headers are in either
155316// *TestPermissionsResponse.ServerResponse.Header or (if a response was
155317// returned at all) in error.(*googleapi.Error).Header. Use
155318// googleapi.IsNotModified to check whether the returned error was
155319// because http.StatusNotModified was returned.
155320func (c *TargetHttpProxiesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
155321	gensupport.SetOptions(c.urlParams_, opts...)
155322	res, err := c.doRequest("json")
155323	if res != nil && res.StatusCode == http.StatusNotModified {
155324		if res.Body != nil {
155325			res.Body.Close()
155326		}
155327		return nil, &googleapi.Error{
155328			Code:   res.StatusCode,
155329			Header: res.Header,
155330		}
155331	}
155332	if err != nil {
155333		return nil, err
155334	}
155335	defer googleapi.CloseBody(res)
155336	if err := googleapi.CheckResponse(res); err != nil {
155337		return nil, err
155338	}
155339	ret := &TestPermissionsResponse{
155340		ServerResponse: googleapi.ServerResponse{
155341			Header:         res.Header,
155342			HTTPStatusCode: res.StatusCode,
155343		},
155344	}
155345	target := &ret
155346	if err := gensupport.DecodeResponse(target, res); err != nil {
155347		return nil, err
155348	}
155349	return ret, nil
155350	// {
155351	//   "description": "Returns permissions that a caller has on the specified resource. (== suppress_warning http-rest-shadowed ==)",
155352	//   "httpMethod": "POST",
155353	//   "id": "compute.targetHttpProxies.testIamPermissions",
155354	//   "parameterOrder": [
155355	//     "project",
155356	//     "resource"
155357	//   ],
155358	//   "parameters": {
155359	//     "project": {
155360	//       "description": "Project ID for this request.",
155361	//       "location": "path",
155362	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
155363	//       "required": true,
155364	//       "type": "string"
155365	//     },
155366	//     "resource": {
155367	//       "description": "Name or id of the resource for this request.",
155368	//       "location": "path",
155369	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
155370	//       "required": true,
155371	//       "type": "string"
155372	//     }
155373	//   },
155374	//   "path": "{project}/global/targetHttpProxies/{resource}/testIamPermissions",
155375	//   "request": {
155376	//     "$ref": "TestPermissionsRequest"
155377	//   },
155378	//   "response": {
155379	//     "$ref": "TestPermissionsResponse"
155380	//   },
155381	//   "scopes": [
155382	//     "https://www.googleapis.com/auth/cloud-platform",
155383	//     "https://www.googleapis.com/auth/compute",
155384	//     "https://www.googleapis.com/auth/compute.readonly"
155385	//   ]
155386	// }
155387
155388}
155389
155390// method id "compute.targetHttpsProxies.aggregatedList":
155391
155392type TargetHttpsProxiesAggregatedListCall struct {
155393	s            *Service
155394	project      string
155395	urlParams_   gensupport.URLParams
155396	ifNoneMatch_ string
155397	ctx_         context.Context
155398	header_      http.Header
155399}
155400
155401// AggregatedList: Retrieves the list of all TargetHttpsProxy resources,
155402// regional and global, available to the specified project. (==
155403// suppress_warning http-rest-shadowed ==)
155404func (r *TargetHttpsProxiesService) AggregatedList(project string) *TargetHttpsProxiesAggregatedListCall {
155405	c := &TargetHttpsProxiesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
155406	c.project = project
155407	return c
155408}
155409
155410// Filter sets the optional parameter "filter": A filter expression that
155411// filters resources listed in the response. The expression must specify
155412// the field name, a comparison operator, and the value that you want to
155413// use for filtering. The value must be a string, a number, or a
155414// boolean. The comparison operator must be either =, !=, >, or <.
155415//
155416// For example, if you are filtering Compute Engine instances, you can
155417// exclude instances named example-instance by specifying name !=
155418// example-instance.
155419//
155420// You can also filter nested fields. For example, you could specify
155421// scheduling.automaticRestart = false to include instances only if they
155422// are not scheduled for automatic restarts. You can use filtering on
155423// nested fields to filter based on resource labels.
155424//
155425// To filter on multiple expressions, provide each separate expression
155426// within parentheses. For example, (scheduling.automaticRestart = true)
155427// (cpuPlatform = "Intel Skylake"). By default, each expression is an
155428// AND expression. However, you can include AND and OR expressions
155429// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
155430// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
155431// true).
155432func (c *TargetHttpsProxiesAggregatedListCall) Filter(filter string) *TargetHttpsProxiesAggregatedListCall {
155433	c.urlParams_.Set("filter", filter)
155434	return c
155435}
155436
155437// MaxResults sets the optional parameter "maxResults": The maximum
155438// number of results per page that should be returned. If the number of
155439// available results is larger than maxResults, Compute Engine returns a
155440// nextPageToken that can be used to get the next page of results in
155441// subsequent list requests. Acceptable values are 0 to 500, inclusive.
155442// (Default: 500)
155443func (c *TargetHttpsProxiesAggregatedListCall) MaxResults(maxResults int64) *TargetHttpsProxiesAggregatedListCall {
155444	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
155445	return c
155446}
155447
155448// OrderBy sets the optional parameter "orderBy": Sorts list results by
155449// a certain order. By default, results are returned in alphanumerical
155450// order based on the resource name.
155451//
155452// You can also sort results in descending order based on the creation
155453// timestamp using orderBy="creationTimestamp desc". This sorts results
155454// based on the creationTimestamp field in reverse chronological order
155455// (newest result first). Use this to sort resources like operations so
155456// that the newest operation is returned first.
155457//
155458// Currently, only sorting by name or creationTimestamp desc is
155459// supported.
155460func (c *TargetHttpsProxiesAggregatedListCall) OrderBy(orderBy string) *TargetHttpsProxiesAggregatedListCall {
155461	c.urlParams_.Set("orderBy", orderBy)
155462	return c
155463}
155464
155465// PageToken sets the optional parameter "pageToken": Specifies a page
155466// token to use. Set pageToken to the nextPageToken returned by a
155467// previous list request to get the next page of results.
155468func (c *TargetHttpsProxiesAggregatedListCall) PageToken(pageToken string) *TargetHttpsProxiesAggregatedListCall {
155469	c.urlParams_.Set("pageToken", pageToken)
155470	return c
155471}
155472
155473// Fields allows partial responses to be retrieved. See
155474// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
155475// for more information.
155476func (c *TargetHttpsProxiesAggregatedListCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesAggregatedListCall {
155477	c.urlParams_.Set("fields", googleapi.CombineFields(s))
155478	return c
155479}
155480
155481// IfNoneMatch sets the optional parameter which makes the operation
155482// fail if the object's ETag matches the given value. This is useful for
155483// getting updates only after the object has changed since the last
155484// request. Use googleapi.IsNotModified to check whether the response
155485// error from Do is the result of In-None-Match.
155486func (c *TargetHttpsProxiesAggregatedListCall) IfNoneMatch(entityTag string) *TargetHttpsProxiesAggregatedListCall {
155487	c.ifNoneMatch_ = entityTag
155488	return c
155489}
155490
155491// Context sets the context to be used in this call's Do method. Any
155492// pending HTTP request will be aborted if the provided context is
155493// canceled.
155494func (c *TargetHttpsProxiesAggregatedListCall) Context(ctx context.Context) *TargetHttpsProxiesAggregatedListCall {
155495	c.ctx_ = ctx
155496	return c
155497}
155498
155499// Header returns an http.Header that can be modified by the caller to
155500// add HTTP headers to the request.
155501func (c *TargetHttpsProxiesAggregatedListCall) Header() http.Header {
155502	if c.header_ == nil {
155503		c.header_ = make(http.Header)
155504	}
155505	return c.header_
155506}
155507
155508func (c *TargetHttpsProxiesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
155509	reqHeaders := make(http.Header)
155510	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
155511	for k, v := range c.header_ {
155512		reqHeaders[k] = v
155513	}
155514	reqHeaders.Set("User-Agent", c.s.userAgent())
155515	if c.ifNoneMatch_ != "" {
155516		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
155517	}
155518	var body io.Reader = nil
155519	c.urlParams_.Set("alt", alt)
155520	c.urlParams_.Set("prettyPrint", "false")
155521	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/targetHttpsProxies")
155522	urls += "?" + c.urlParams_.Encode()
155523	req, err := http.NewRequest("GET", urls, body)
155524	if err != nil {
155525		return nil, err
155526	}
155527	req.Header = reqHeaders
155528	googleapi.Expand(req.URL, map[string]string{
155529		"project": c.project,
155530	})
155531	return gensupport.SendRequest(c.ctx_, c.s.client, req)
155532}
155533
155534// Do executes the "compute.targetHttpsProxies.aggregatedList" call.
155535// Exactly one of *TargetHttpsProxyAggregatedList or error will be
155536// non-nil. Any non-2xx status code is an error. Response headers are in
155537// either *TargetHttpsProxyAggregatedList.ServerResponse.Header or (if a
155538// response was returned at all) in error.(*googleapi.Error).Header. Use
155539// googleapi.IsNotModified to check whether the returned error was
155540// because http.StatusNotModified was returned.
155541func (c *TargetHttpsProxiesAggregatedListCall) Do(opts ...googleapi.CallOption) (*TargetHttpsProxyAggregatedList, error) {
155542	gensupport.SetOptions(c.urlParams_, opts...)
155543	res, err := c.doRequest("json")
155544	if res != nil && res.StatusCode == http.StatusNotModified {
155545		if res.Body != nil {
155546			res.Body.Close()
155547		}
155548		return nil, &googleapi.Error{
155549			Code:   res.StatusCode,
155550			Header: res.Header,
155551		}
155552	}
155553	if err != nil {
155554		return nil, err
155555	}
155556	defer googleapi.CloseBody(res)
155557	if err := googleapi.CheckResponse(res); err != nil {
155558		return nil, err
155559	}
155560	ret := &TargetHttpsProxyAggregatedList{
155561		ServerResponse: googleapi.ServerResponse{
155562			Header:         res.Header,
155563			HTTPStatusCode: res.StatusCode,
155564		},
155565	}
155566	target := &ret
155567	if err := gensupport.DecodeResponse(target, res); err != nil {
155568		return nil, err
155569	}
155570	return ret, nil
155571	// {
155572	//   "description": "Retrieves the list of all TargetHttpsProxy resources, regional and global, available to the specified project. (== suppress_warning http-rest-shadowed ==)",
155573	//   "httpMethod": "GET",
155574	//   "id": "compute.targetHttpsProxies.aggregatedList",
155575	//   "parameterOrder": [
155576	//     "project"
155577	//   ],
155578	//   "parameters": {
155579	//     "filter": {
155580	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
155581	//       "location": "query",
155582	//       "type": "string"
155583	//     },
155584	//     "maxResults": {
155585	//       "default": "500",
155586	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
155587	//       "format": "uint32",
155588	//       "location": "query",
155589	//       "minimum": "0",
155590	//       "type": "integer"
155591	//     },
155592	//     "orderBy": {
155593	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
155594	//       "location": "query",
155595	//       "type": "string"
155596	//     },
155597	//     "pageToken": {
155598	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
155599	//       "location": "query",
155600	//       "type": "string"
155601	//     },
155602	//     "project": {
155603	//       "description": "Name of the project scoping this request.",
155604	//       "location": "path",
155605	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
155606	//       "required": true,
155607	//       "type": "string"
155608	//     }
155609	//   },
155610	//   "path": "{project}/aggregated/targetHttpsProxies",
155611	//   "response": {
155612	//     "$ref": "TargetHttpsProxyAggregatedList"
155613	//   },
155614	//   "scopes": [
155615	//     "https://www.googleapis.com/auth/cloud-platform",
155616	//     "https://www.googleapis.com/auth/compute",
155617	//     "https://www.googleapis.com/auth/compute.readonly"
155618	//   ]
155619	// }
155620
155621}
155622
155623// Pages invokes f for each page of results.
155624// A non-nil error returned from f will halt the iteration.
155625// The provided context supersedes any context provided to the Context method.
155626func (c *TargetHttpsProxiesAggregatedListCall) Pages(ctx context.Context, f func(*TargetHttpsProxyAggregatedList) error) error {
155627	c.ctx_ = ctx
155628	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
155629	for {
155630		x, err := c.Do()
155631		if err != nil {
155632			return err
155633		}
155634		if err := f(x); err != nil {
155635			return err
155636		}
155637		if x.NextPageToken == "" {
155638			return nil
155639		}
155640		c.PageToken(x.NextPageToken)
155641	}
155642}
155643
155644// method id "compute.targetHttpsProxies.delete":
155645
155646type TargetHttpsProxiesDeleteCall struct {
155647	s                *Service
155648	project          string
155649	targetHttpsProxy string
155650	urlParams_       gensupport.URLParams
155651	ctx_             context.Context
155652	header_          http.Header
155653}
155654
155655// Delete: Deletes the specified TargetHttpsProxy resource. (==
155656// suppress_warning http-rest-shadowed ==)
155657func (r *TargetHttpsProxiesService) Delete(project string, targetHttpsProxy string) *TargetHttpsProxiesDeleteCall {
155658	c := &TargetHttpsProxiesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
155659	c.project = project
155660	c.targetHttpsProxy = targetHttpsProxy
155661	return c
155662}
155663
155664// RequestId sets the optional parameter "requestId": An optional
155665// request ID to identify requests. Specify a unique request ID so that
155666// if you must retry your request, the server will know to ignore the
155667// request if it has already been completed.
155668//
155669// For example, consider a situation where you make an initial request
155670// and the request times out. If you make the request again with the
155671// same request ID, the server can check if original operation with the
155672// same request ID was received, and if so, will ignore the second
155673// request. This prevents clients from accidentally creating duplicate
155674// commitments.
155675//
155676// The request ID must be a valid UUID with the exception that zero UUID
155677// is not supported (00000000-0000-0000-0000-000000000000).
155678func (c *TargetHttpsProxiesDeleteCall) RequestId(requestId string) *TargetHttpsProxiesDeleteCall {
155679	c.urlParams_.Set("requestId", requestId)
155680	return c
155681}
155682
155683// Fields allows partial responses to be retrieved. See
155684// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
155685// for more information.
155686func (c *TargetHttpsProxiesDeleteCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesDeleteCall {
155687	c.urlParams_.Set("fields", googleapi.CombineFields(s))
155688	return c
155689}
155690
155691// Context sets the context to be used in this call's Do method. Any
155692// pending HTTP request will be aborted if the provided context is
155693// canceled.
155694func (c *TargetHttpsProxiesDeleteCall) Context(ctx context.Context) *TargetHttpsProxiesDeleteCall {
155695	c.ctx_ = ctx
155696	return c
155697}
155698
155699// Header returns an http.Header that can be modified by the caller to
155700// add HTTP headers to the request.
155701func (c *TargetHttpsProxiesDeleteCall) Header() http.Header {
155702	if c.header_ == nil {
155703		c.header_ = make(http.Header)
155704	}
155705	return c.header_
155706}
155707
155708func (c *TargetHttpsProxiesDeleteCall) doRequest(alt string) (*http.Response, error) {
155709	reqHeaders := make(http.Header)
155710	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
155711	for k, v := range c.header_ {
155712		reqHeaders[k] = v
155713	}
155714	reqHeaders.Set("User-Agent", c.s.userAgent())
155715	var body io.Reader = nil
155716	c.urlParams_.Set("alt", alt)
155717	c.urlParams_.Set("prettyPrint", "false")
155718	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetHttpsProxies/{targetHttpsProxy}")
155719	urls += "?" + c.urlParams_.Encode()
155720	req, err := http.NewRequest("DELETE", urls, body)
155721	if err != nil {
155722		return nil, err
155723	}
155724	req.Header = reqHeaders
155725	googleapi.Expand(req.URL, map[string]string{
155726		"project":          c.project,
155727		"targetHttpsProxy": c.targetHttpsProxy,
155728	})
155729	return gensupport.SendRequest(c.ctx_, c.s.client, req)
155730}
155731
155732// Do executes the "compute.targetHttpsProxies.delete" call.
155733// Exactly one of *Operation or error will be non-nil. Any non-2xx
155734// status code is an error. Response headers are in either
155735// *Operation.ServerResponse.Header or (if a response was returned at
155736// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
155737// to check whether the returned error was because
155738// http.StatusNotModified was returned.
155739func (c *TargetHttpsProxiesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
155740	gensupport.SetOptions(c.urlParams_, opts...)
155741	res, err := c.doRequest("json")
155742	if res != nil && res.StatusCode == http.StatusNotModified {
155743		if res.Body != nil {
155744			res.Body.Close()
155745		}
155746		return nil, &googleapi.Error{
155747			Code:   res.StatusCode,
155748			Header: res.Header,
155749		}
155750	}
155751	if err != nil {
155752		return nil, err
155753	}
155754	defer googleapi.CloseBody(res)
155755	if err := googleapi.CheckResponse(res); err != nil {
155756		return nil, err
155757	}
155758	ret := &Operation{
155759		ServerResponse: googleapi.ServerResponse{
155760			Header:         res.Header,
155761			HTTPStatusCode: res.StatusCode,
155762		},
155763	}
155764	target := &ret
155765	if err := gensupport.DecodeResponse(target, res); err != nil {
155766		return nil, err
155767	}
155768	return ret, nil
155769	// {
155770	//   "description": "Deletes the specified TargetHttpsProxy resource. (== suppress_warning http-rest-shadowed ==)",
155771	//   "httpMethod": "DELETE",
155772	//   "id": "compute.targetHttpsProxies.delete",
155773	//   "parameterOrder": [
155774	//     "project",
155775	//     "targetHttpsProxy"
155776	//   ],
155777	//   "parameters": {
155778	//     "project": {
155779	//       "description": "Project ID for this request.",
155780	//       "location": "path",
155781	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
155782	//       "required": true,
155783	//       "type": "string"
155784	//     },
155785	//     "requestId": {
155786	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
155787	//       "location": "query",
155788	//       "type": "string"
155789	//     },
155790	//     "targetHttpsProxy": {
155791	//       "description": "Name of the TargetHttpsProxy resource to delete.",
155792	//       "location": "path",
155793	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
155794	//       "required": true,
155795	//       "type": "string"
155796	//     }
155797	//   },
155798	//   "path": "{project}/global/targetHttpsProxies/{targetHttpsProxy}",
155799	//   "response": {
155800	//     "$ref": "Operation"
155801	//   },
155802	//   "scopes": [
155803	//     "https://www.googleapis.com/auth/cloud-platform",
155804	//     "https://www.googleapis.com/auth/compute"
155805	//   ]
155806	// }
155807
155808}
155809
155810// method id "compute.targetHttpsProxies.get":
155811
155812type TargetHttpsProxiesGetCall struct {
155813	s                *Service
155814	project          string
155815	targetHttpsProxy string
155816	urlParams_       gensupport.URLParams
155817	ifNoneMatch_     string
155818	ctx_             context.Context
155819	header_          http.Header
155820}
155821
155822// Get: Returns the specified TargetHttpsProxy resource. Gets a list of
155823// available target HTTPS proxies by making a list() request. (==
155824// suppress_warning http-rest-shadowed ==)
155825func (r *TargetHttpsProxiesService) Get(project string, targetHttpsProxy string) *TargetHttpsProxiesGetCall {
155826	c := &TargetHttpsProxiesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
155827	c.project = project
155828	c.targetHttpsProxy = targetHttpsProxy
155829	return c
155830}
155831
155832// Fields allows partial responses to be retrieved. See
155833// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
155834// for more information.
155835func (c *TargetHttpsProxiesGetCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesGetCall {
155836	c.urlParams_.Set("fields", googleapi.CombineFields(s))
155837	return c
155838}
155839
155840// IfNoneMatch sets the optional parameter which makes the operation
155841// fail if the object's ETag matches the given value. This is useful for
155842// getting updates only after the object has changed since the last
155843// request. Use googleapi.IsNotModified to check whether the response
155844// error from Do is the result of In-None-Match.
155845func (c *TargetHttpsProxiesGetCall) IfNoneMatch(entityTag string) *TargetHttpsProxiesGetCall {
155846	c.ifNoneMatch_ = entityTag
155847	return c
155848}
155849
155850// Context sets the context to be used in this call's Do method. Any
155851// pending HTTP request will be aborted if the provided context is
155852// canceled.
155853func (c *TargetHttpsProxiesGetCall) Context(ctx context.Context) *TargetHttpsProxiesGetCall {
155854	c.ctx_ = ctx
155855	return c
155856}
155857
155858// Header returns an http.Header that can be modified by the caller to
155859// add HTTP headers to the request.
155860func (c *TargetHttpsProxiesGetCall) Header() http.Header {
155861	if c.header_ == nil {
155862		c.header_ = make(http.Header)
155863	}
155864	return c.header_
155865}
155866
155867func (c *TargetHttpsProxiesGetCall) doRequest(alt string) (*http.Response, error) {
155868	reqHeaders := make(http.Header)
155869	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
155870	for k, v := range c.header_ {
155871		reqHeaders[k] = v
155872	}
155873	reqHeaders.Set("User-Agent", c.s.userAgent())
155874	if c.ifNoneMatch_ != "" {
155875		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
155876	}
155877	var body io.Reader = nil
155878	c.urlParams_.Set("alt", alt)
155879	c.urlParams_.Set("prettyPrint", "false")
155880	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetHttpsProxies/{targetHttpsProxy}")
155881	urls += "?" + c.urlParams_.Encode()
155882	req, err := http.NewRequest("GET", urls, body)
155883	if err != nil {
155884		return nil, err
155885	}
155886	req.Header = reqHeaders
155887	googleapi.Expand(req.URL, map[string]string{
155888		"project":          c.project,
155889		"targetHttpsProxy": c.targetHttpsProxy,
155890	})
155891	return gensupport.SendRequest(c.ctx_, c.s.client, req)
155892}
155893
155894// Do executes the "compute.targetHttpsProxies.get" call.
155895// Exactly one of *TargetHttpsProxy or error will be non-nil. Any
155896// non-2xx status code is an error. Response headers are in either
155897// *TargetHttpsProxy.ServerResponse.Header or (if a response was
155898// returned at all) in error.(*googleapi.Error).Header. Use
155899// googleapi.IsNotModified to check whether the returned error was
155900// because http.StatusNotModified was returned.
155901func (c *TargetHttpsProxiesGetCall) Do(opts ...googleapi.CallOption) (*TargetHttpsProxy, error) {
155902	gensupport.SetOptions(c.urlParams_, opts...)
155903	res, err := c.doRequest("json")
155904	if res != nil && res.StatusCode == http.StatusNotModified {
155905		if res.Body != nil {
155906			res.Body.Close()
155907		}
155908		return nil, &googleapi.Error{
155909			Code:   res.StatusCode,
155910			Header: res.Header,
155911		}
155912	}
155913	if err != nil {
155914		return nil, err
155915	}
155916	defer googleapi.CloseBody(res)
155917	if err := googleapi.CheckResponse(res); err != nil {
155918		return nil, err
155919	}
155920	ret := &TargetHttpsProxy{
155921		ServerResponse: googleapi.ServerResponse{
155922			Header:         res.Header,
155923			HTTPStatusCode: res.StatusCode,
155924		},
155925	}
155926	target := &ret
155927	if err := gensupport.DecodeResponse(target, res); err != nil {
155928		return nil, err
155929	}
155930	return ret, nil
155931	// {
155932	//   "description": "Returns the specified TargetHttpsProxy resource. Gets a list of available target HTTPS proxies by making a list() request. (== suppress_warning http-rest-shadowed ==)",
155933	//   "httpMethod": "GET",
155934	//   "id": "compute.targetHttpsProxies.get",
155935	//   "parameterOrder": [
155936	//     "project",
155937	//     "targetHttpsProxy"
155938	//   ],
155939	//   "parameters": {
155940	//     "project": {
155941	//       "description": "Project ID for this request.",
155942	//       "location": "path",
155943	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
155944	//       "required": true,
155945	//       "type": "string"
155946	//     },
155947	//     "targetHttpsProxy": {
155948	//       "description": "Name of the TargetHttpsProxy resource to return.",
155949	//       "location": "path",
155950	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
155951	//       "required": true,
155952	//       "type": "string"
155953	//     }
155954	//   },
155955	//   "path": "{project}/global/targetHttpsProxies/{targetHttpsProxy}",
155956	//   "response": {
155957	//     "$ref": "TargetHttpsProxy"
155958	//   },
155959	//   "scopes": [
155960	//     "https://www.googleapis.com/auth/cloud-platform",
155961	//     "https://www.googleapis.com/auth/compute",
155962	//     "https://www.googleapis.com/auth/compute.readonly"
155963	//   ]
155964	// }
155965
155966}
155967
155968// method id "compute.targetHttpsProxies.insert":
155969
155970type TargetHttpsProxiesInsertCall struct {
155971	s                *Service
155972	project          string
155973	targethttpsproxy *TargetHttpsProxy
155974	urlParams_       gensupport.URLParams
155975	ctx_             context.Context
155976	header_          http.Header
155977}
155978
155979// Insert: Creates a TargetHttpsProxy resource in the specified project
155980// using the data included in the request. (== suppress_warning
155981// http-rest-shadowed ==)
155982func (r *TargetHttpsProxiesService) Insert(project string, targethttpsproxy *TargetHttpsProxy) *TargetHttpsProxiesInsertCall {
155983	c := &TargetHttpsProxiesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
155984	c.project = project
155985	c.targethttpsproxy = targethttpsproxy
155986	return c
155987}
155988
155989// RequestId sets the optional parameter "requestId": An optional
155990// request ID to identify requests. Specify a unique request ID so that
155991// if you must retry your request, the server will know to ignore the
155992// request if it has already been completed.
155993//
155994// For example, consider a situation where you make an initial request
155995// and the request times out. If you make the request again with the
155996// same request ID, the server can check if original operation with the
155997// same request ID was received, and if so, will ignore the second
155998// request. This prevents clients from accidentally creating duplicate
155999// commitments.
156000//
156001// The request ID must be a valid UUID with the exception that zero UUID
156002// is not supported (00000000-0000-0000-0000-000000000000).
156003func (c *TargetHttpsProxiesInsertCall) RequestId(requestId string) *TargetHttpsProxiesInsertCall {
156004	c.urlParams_.Set("requestId", requestId)
156005	return c
156006}
156007
156008// Fields allows partial responses to be retrieved. See
156009// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
156010// for more information.
156011func (c *TargetHttpsProxiesInsertCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesInsertCall {
156012	c.urlParams_.Set("fields", googleapi.CombineFields(s))
156013	return c
156014}
156015
156016// Context sets the context to be used in this call's Do method. Any
156017// pending HTTP request will be aborted if the provided context is
156018// canceled.
156019func (c *TargetHttpsProxiesInsertCall) Context(ctx context.Context) *TargetHttpsProxiesInsertCall {
156020	c.ctx_ = ctx
156021	return c
156022}
156023
156024// Header returns an http.Header that can be modified by the caller to
156025// add HTTP headers to the request.
156026func (c *TargetHttpsProxiesInsertCall) Header() http.Header {
156027	if c.header_ == nil {
156028		c.header_ = make(http.Header)
156029	}
156030	return c.header_
156031}
156032
156033func (c *TargetHttpsProxiesInsertCall) doRequest(alt string) (*http.Response, error) {
156034	reqHeaders := make(http.Header)
156035	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
156036	for k, v := range c.header_ {
156037		reqHeaders[k] = v
156038	}
156039	reqHeaders.Set("User-Agent", c.s.userAgent())
156040	var body io.Reader = nil
156041	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targethttpsproxy)
156042	if err != nil {
156043		return nil, err
156044	}
156045	reqHeaders.Set("Content-Type", "application/json")
156046	c.urlParams_.Set("alt", alt)
156047	c.urlParams_.Set("prettyPrint", "false")
156048	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetHttpsProxies")
156049	urls += "?" + c.urlParams_.Encode()
156050	req, err := http.NewRequest("POST", urls, body)
156051	if err != nil {
156052		return nil, err
156053	}
156054	req.Header = reqHeaders
156055	googleapi.Expand(req.URL, map[string]string{
156056		"project": c.project,
156057	})
156058	return gensupport.SendRequest(c.ctx_, c.s.client, req)
156059}
156060
156061// Do executes the "compute.targetHttpsProxies.insert" call.
156062// Exactly one of *Operation or error will be non-nil. Any non-2xx
156063// status code is an error. Response headers are in either
156064// *Operation.ServerResponse.Header or (if a response was returned at
156065// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
156066// to check whether the returned error was because
156067// http.StatusNotModified was returned.
156068func (c *TargetHttpsProxiesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
156069	gensupport.SetOptions(c.urlParams_, opts...)
156070	res, err := c.doRequest("json")
156071	if res != nil && res.StatusCode == http.StatusNotModified {
156072		if res.Body != nil {
156073			res.Body.Close()
156074		}
156075		return nil, &googleapi.Error{
156076			Code:   res.StatusCode,
156077			Header: res.Header,
156078		}
156079	}
156080	if err != nil {
156081		return nil, err
156082	}
156083	defer googleapi.CloseBody(res)
156084	if err := googleapi.CheckResponse(res); err != nil {
156085		return nil, err
156086	}
156087	ret := &Operation{
156088		ServerResponse: googleapi.ServerResponse{
156089			Header:         res.Header,
156090			HTTPStatusCode: res.StatusCode,
156091		},
156092	}
156093	target := &ret
156094	if err := gensupport.DecodeResponse(target, res); err != nil {
156095		return nil, err
156096	}
156097	return ret, nil
156098	// {
156099	//   "description": "Creates a TargetHttpsProxy resource in the specified project using the data included in the request. (== suppress_warning http-rest-shadowed ==)",
156100	//   "httpMethod": "POST",
156101	//   "id": "compute.targetHttpsProxies.insert",
156102	//   "parameterOrder": [
156103	//     "project"
156104	//   ],
156105	//   "parameters": {
156106	//     "project": {
156107	//       "description": "Project ID for this request.",
156108	//       "location": "path",
156109	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
156110	//       "required": true,
156111	//       "type": "string"
156112	//     },
156113	//     "requestId": {
156114	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
156115	//       "location": "query",
156116	//       "type": "string"
156117	//     }
156118	//   },
156119	//   "path": "{project}/global/targetHttpsProxies",
156120	//   "request": {
156121	//     "$ref": "TargetHttpsProxy"
156122	//   },
156123	//   "response": {
156124	//     "$ref": "Operation"
156125	//   },
156126	//   "scopes": [
156127	//     "https://www.googleapis.com/auth/cloud-platform",
156128	//     "https://www.googleapis.com/auth/compute"
156129	//   ]
156130	// }
156131
156132}
156133
156134// method id "compute.targetHttpsProxies.list":
156135
156136type TargetHttpsProxiesListCall struct {
156137	s            *Service
156138	project      string
156139	urlParams_   gensupport.URLParams
156140	ifNoneMatch_ string
156141	ctx_         context.Context
156142	header_      http.Header
156143}
156144
156145// List: Retrieves the list of TargetHttpsProxy resources available to
156146// the specified project. (== suppress_warning http-rest-shadowed ==)
156147func (r *TargetHttpsProxiesService) List(project string) *TargetHttpsProxiesListCall {
156148	c := &TargetHttpsProxiesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
156149	c.project = project
156150	return c
156151}
156152
156153// Filter sets the optional parameter "filter": A filter expression that
156154// filters resources listed in the response. The expression must specify
156155// the field name, a comparison operator, and the value that you want to
156156// use for filtering. The value must be a string, a number, or a
156157// boolean. The comparison operator must be either =, !=, >, or <.
156158//
156159// For example, if you are filtering Compute Engine instances, you can
156160// exclude instances named example-instance by specifying name !=
156161// example-instance.
156162//
156163// You can also filter nested fields. For example, you could specify
156164// scheduling.automaticRestart = false to include instances only if they
156165// are not scheduled for automatic restarts. You can use filtering on
156166// nested fields to filter based on resource labels.
156167//
156168// To filter on multiple expressions, provide each separate expression
156169// within parentheses. For example, (scheduling.automaticRestart = true)
156170// (cpuPlatform = "Intel Skylake"). By default, each expression is an
156171// AND expression. However, you can include AND and OR expressions
156172// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
156173// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
156174// true).
156175func (c *TargetHttpsProxiesListCall) Filter(filter string) *TargetHttpsProxiesListCall {
156176	c.urlParams_.Set("filter", filter)
156177	return c
156178}
156179
156180// MaxResults sets the optional parameter "maxResults": The maximum
156181// number of results per page that should be returned. If the number of
156182// available results is larger than maxResults, Compute Engine returns a
156183// nextPageToken that can be used to get the next page of results in
156184// subsequent list requests. Acceptable values are 0 to 500, inclusive.
156185// (Default: 500)
156186func (c *TargetHttpsProxiesListCall) MaxResults(maxResults int64) *TargetHttpsProxiesListCall {
156187	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
156188	return c
156189}
156190
156191// OrderBy sets the optional parameter "orderBy": Sorts list results by
156192// a certain order. By default, results are returned in alphanumerical
156193// order based on the resource name.
156194//
156195// You can also sort results in descending order based on the creation
156196// timestamp using orderBy="creationTimestamp desc". This sorts results
156197// based on the creationTimestamp field in reverse chronological order
156198// (newest result first). Use this to sort resources like operations so
156199// that the newest operation is returned first.
156200//
156201// Currently, only sorting by name or creationTimestamp desc is
156202// supported.
156203func (c *TargetHttpsProxiesListCall) OrderBy(orderBy string) *TargetHttpsProxiesListCall {
156204	c.urlParams_.Set("orderBy", orderBy)
156205	return c
156206}
156207
156208// PageToken sets the optional parameter "pageToken": Specifies a page
156209// token to use. Set pageToken to the nextPageToken returned by a
156210// previous list request to get the next page of results.
156211func (c *TargetHttpsProxiesListCall) PageToken(pageToken string) *TargetHttpsProxiesListCall {
156212	c.urlParams_.Set("pageToken", pageToken)
156213	return c
156214}
156215
156216// Fields allows partial responses to be retrieved. See
156217// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
156218// for more information.
156219func (c *TargetHttpsProxiesListCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesListCall {
156220	c.urlParams_.Set("fields", googleapi.CombineFields(s))
156221	return c
156222}
156223
156224// IfNoneMatch sets the optional parameter which makes the operation
156225// fail if the object's ETag matches the given value. This is useful for
156226// getting updates only after the object has changed since the last
156227// request. Use googleapi.IsNotModified to check whether the response
156228// error from Do is the result of In-None-Match.
156229func (c *TargetHttpsProxiesListCall) IfNoneMatch(entityTag string) *TargetHttpsProxiesListCall {
156230	c.ifNoneMatch_ = entityTag
156231	return c
156232}
156233
156234// Context sets the context to be used in this call's Do method. Any
156235// pending HTTP request will be aborted if the provided context is
156236// canceled.
156237func (c *TargetHttpsProxiesListCall) Context(ctx context.Context) *TargetHttpsProxiesListCall {
156238	c.ctx_ = ctx
156239	return c
156240}
156241
156242// Header returns an http.Header that can be modified by the caller to
156243// add HTTP headers to the request.
156244func (c *TargetHttpsProxiesListCall) Header() http.Header {
156245	if c.header_ == nil {
156246		c.header_ = make(http.Header)
156247	}
156248	return c.header_
156249}
156250
156251func (c *TargetHttpsProxiesListCall) doRequest(alt string) (*http.Response, error) {
156252	reqHeaders := make(http.Header)
156253	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
156254	for k, v := range c.header_ {
156255		reqHeaders[k] = v
156256	}
156257	reqHeaders.Set("User-Agent", c.s.userAgent())
156258	if c.ifNoneMatch_ != "" {
156259		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
156260	}
156261	var body io.Reader = nil
156262	c.urlParams_.Set("alt", alt)
156263	c.urlParams_.Set("prettyPrint", "false")
156264	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetHttpsProxies")
156265	urls += "?" + c.urlParams_.Encode()
156266	req, err := http.NewRequest("GET", urls, body)
156267	if err != nil {
156268		return nil, err
156269	}
156270	req.Header = reqHeaders
156271	googleapi.Expand(req.URL, map[string]string{
156272		"project": c.project,
156273	})
156274	return gensupport.SendRequest(c.ctx_, c.s.client, req)
156275}
156276
156277// Do executes the "compute.targetHttpsProxies.list" call.
156278// Exactly one of *TargetHttpsProxyList or error will be non-nil. Any
156279// non-2xx status code is an error. Response headers are in either
156280// *TargetHttpsProxyList.ServerResponse.Header or (if a response was
156281// returned at all) in error.(*googleapi.Error).Header. Use
156282// googleapi.IsNotModified to check whether the returned error was
156283// because http.StatusNotModified was returned.
156284func (c *TargetHttpsProxiesListCall) Do(opts ...googleapi.CallOption) (*TargetHttpsProxyList, error) {
156285	gensupport.SetOptions(c.urlParams_, opts...)
156286	res, err := c.doRequest("json")
156287	if res != nil && res.StatusCode == http.StatusNotModified {
156288		if res.Body != nil {
156289			res.Body.Close()
156290		}
156291		return nil, &googleapi.Error{
156292			Code:   res.StatusCode,
156293			Header: res.Header,
156294		}
156295	}
156296	if err != nil {
156297		return nil, err
156298	}
156299	defer googleapi.CloseBody(res)
156300	if err := googleapi.CheckResponse(res); err != nil {
156301		return nil, err
156302	}
156303	ret := &TargetHttpsProxyList{
156304		ServerResponse: googleapi.ServerResponse{
156305			Header:         res.Header,
156306			HTTPStatusCode: res.StatusCode,
156307		},
156308	}
156309	target := &ret
156310	if err := gensupport.DecodeResponse(target, res); err != nil {
156311		return nil, err
156312	}
156313	return ret, nil
156314	// {
156315	//   "description": "Retrieves the list of TargetHttpsProxy resources available to the specified project. (== suppress_warning http-rest-shadowed ==)",
156316	//   "httpMethod": "GET",
156317	//   "id": "compute.targetHttpsProxies.list",
156318	//   "parameterOrder": [
156319	//     "project"
156320	//   ],
156321	//   "parameters": {
156322	//     "filter": {
156323	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
156324	//       "location": "query",
156325	//       "type": "string"
156326	//     },
156327	//     "maxResults": {
156328	//       "default": "500",
156329	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
156330	//       "format": "uint32",
156331	//       "location": "query",
156332	//       "minimum": "0",
156333	//       "type": "integer"
156334	//     },
156335	//     "orderBy": {
156336	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
156337	//       "location": "query",
156338	//       "type": "string"
156339	//     },
156340	//     "pageToken": {
156341	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
156342	//       "location": "query",
156343	//       "type": "string"
156344	//     },
156345	//     "project": {
156346	//       "description": "Project ID for this request.",
156347	//       "location": "path",
156348	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
156349	//       "required": true,
156350	//       "type": "string"
156351	//     }
156352	//   },
156353	//   "path": "{project}/global/targetHttpsProxies",
156354	//   "response": {
156355	//     "$ref": "TargetHttpsProxyList"
156356	//   },
156357	//   "scopes": [
156358	//     "https://www.googleapis.com/auth/cloud-platform",
156359	//     "https://www.googleapis.com/auth/compute",
156360	//     "https://www.googleapis.com/auth/compute.readonly"
156361	//   ]
156362	// }
156363
156364}
156365
156366// Pages invokes f for each page of results.
156367// A non-nil error returned from f will halt the iteration.
156368// The provided context supersedes any context provided to the Context method.
156369func (c *TargetHttpsProxiesListCall) Pages(ctx context.Context, f func(*TargetHttpsProxyList) error) error {
156370	c.ctx_ = ctx
156371	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
156372	for {
156373		x, err := c.Do()
156374		if err != nil {
156375			return err
156376		}
156377		if err := f(x); err != nil {
156378			return err
156379		}
156380		if x.NextPageToken == "" {
156381			return nil
156382		}
156383		c.PageToken(x.NextPageToken)
156384	}
156385}
156386
156387// method id "compute.targetHttpsProxies.setQuicOverride":
156388
156389type TargetHttpsProxiesSetQuicOverrideCall struct {
156390	s                                        *Service
156391	project                                  string
156392	targetHttpsProxy                         string
156393	targethttpsproxiessetquicoverriderequest *TargetHttpsProxiesSetQuicOverrideRequest
156394	urlParams_                               gensupport.URLParams
156395	ctx_                                     context.Context
156396	header_                                  http.Header
156397}
156398
156399// SetQuicOverride: Sets the QUIC override policy for TargetHttpsProxy.
156400// (== suppress_warning http-rest-shadowed ==)
156401func (r *TargetHttpsProxiesService) SetQuicOverride(project string, targetHttpsProxy string, targethttpsproxiessetquicoverriderequest *TargetHttpsProxiesSetQuicOverrideRequest) *TargetHttpsProxiesSetQuicOverrideCall {
156402	c := &TargetHttpsProxiesSetQuicOverrideCall{s: r.s, urlParams_: make(gensupport.URLParams)}
156403	c.project = project
156404	c.targetHttpsProxy = targetHttpsProxy
156405	c.targethttpsproxiessetquicoverriderequest = targethttpsproxiessetquicoverriderequest
156406	return c
156407}
156408
156409// RequestId sets the optional parameter "requestId": An optional
156410// request ID to identify requests. Specify a unique request ID so that
156411// if you must retry your request, the server will know to ignore the
156412// request if it has already been completed.
156413//
156414// For example, consider a situation where you make an initial request
156415// and the request times out. If you make the request again with the
156416// same request ID, the server can check if original operation with the
156417// same request ID was received, and if so, will ignore the second
156418// request. This prevents clients from accidentally creating duplicate
156419// commitments.
156420//
156421// The request ID must be a valid UUID with the exception that zero UUID
156422// is not supported (00000000-0000-0000-0000-000000000000).
156423func (c *TargetHttpsProxiesSetQuicOverrideCall) RequestId(requestId string) *TargetHttpsProxiesSetQuicOverrideCall {
156424	c.urlParams_.Set("requestId", requestId)
156425	return c
156426}
156427
156428// Fields allows partial responses to be retrieved. See
156429// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
156430// for more information.
156431func (c *TargetHttpsProxiesSetQuicOverrideCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesSetQuicOverrideCall {
156432	c.urlParams_.Set("fields", googleapi.CombineFields(s))
156433	return c
156434}
156435
156436// Context sets the context to be used in this call's Do method. Any
156437// pending HTTP request will be aborted if the provided context is
156438// canceled.
156439func (c *TargetHttpsProxiesSetQuicOverrideCall) Context(ctx context.Context) *TargetHttpsProxiesSetQuicOverrideCall {
156440	c.ctx_ = ctx
156441	return c
156442}
156443
156444// Header returns an http.Header that can be modified by the caller to
156445// add HTTP headers to the request.
156446func (c *TargetHttpsProxiesSetQuicOverrideCall) Header() http.Header {
156447	if c.header_ == nil {
156448		c.header_ = make(http.Header)
156449	}
156450	return c.header_
156451}
156452
156453func (c *TargetHttpsProxiesSetQuicOverrideCall) doRequest(alt string) (*http.Response, error) {
156454	reqHeaders := make(http.Header)
156455	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
156456	for k, v := range c.header_ {
156457		reqHeaders[k] = v
156458	}
156459	reqHeaders.Set("User-Agent", c.s.userAgent())
156460	var body io.Reader = nil
156461	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targethttpsproxiessetquicoverriderequest)
156462	if err != nil {
156463		return nil, err
156464	}
156465	reqHeaders.Set("Content-Type", "application/json")
156466	c.urlParams_.Set("alt", alt)
156467	c.urlParams_.Set("prettyPrint", "false")
156468	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetHttpsProxies/{targetHttpsProxy}/setQuicOverride")
156469	urls += "?" + c.urlParams_.Encode()
156470	req, err := http.NewRequest("POST", urls, body)
156471	if err != nil {
156472		return nil, err
156473	}
156474	req.Header = reqHeaders
156475	googleapi.Expand(req.URL, map[string]string{
156476		"project":          c.project,
156477		"targetHttpsProxy": c.targetHttpsProxy,
156478	})
156479	return gensupport.SendRequest(c.ctx_, c.s.client, req)
156480}
156481
156482// Do executes the "compute.targetHttpsProxies.setQuicOverride" call.
156483// Exactly one of *Operation or error will be non-nil. Any non-2xx
156484// status code is an error. Response headers are in either
156485// *Operation.ServerResponse.Header or (if a response was returned at
156486// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
156487// to check whether the returned error was because
156488// http.StatusNotModified was returned.
156489func (c *TargetHttpsProxiesSetQuicOverrideCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
156490	gensupport.SetOptions(c.urlParams_, opts...)
156491	res, err := c.doRequest("json")
156492	if res != nil && res.StatusCode == http.StatusNotModified {
156493		if res.Body != nil {
156494			res.Body.Close()
156495		}
156496		return nil, &googleapi.Error{
156497			Code:   res.StatusCode,
156498			Header: res.Header,
156499		}
156500	}
156501	if err != nil {
156502		return nil, err
156503	}
156504	defer googleapi.CloseBody(res)
156505	if err := googleapi.CheckResponse(res); err != nil {
156506		return nil, err
156507	}
156508	ret := &Operation{
156509		ServerResponse: googleapi.ServerResponse{
156510			Header:         res.Header,
156511			HTTPStatusCode: res.StatusCode,
156512		},
156513	}
156514	target := &ret
156515	if err := gensupport.DecodeResponse(target, res); err != nil {
156516		return nil, err
156517	}
156518	return ret, nil
156519	// {
156520	//   "description": "Sets the QUIC override policy for TargetHttpsProxy. (== suppress_warning http-rest-shadowed ==)",
156521	//   "httpMethod": "POST",
156522	//   "id": "compute.targetHttpsProxies.setQuicOverride",
156523	//   "parameterOrder": [
156524	//     "project",
156525	//     "targetHttpsProxy"
156526	//   ],
156527	//   "parameters": {
156528	//     "project": {
156529	//       "description": "Project ID for this request.",
156530	//       "location": "path",
156531	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
156532	//       "required": true,
156533	//       "type": "string"
156534	//     },
156535	//     "requestId": {
156536	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
156537	//       "location": "query",
156538	//       "type": "string"
156539	//     },
156540	//     "targetHttpsProxy": {
156541	//       "description": "Name of the TargetHttpsProxy resource to set the QUIC override policy for. The name should conform to RFC1035.",
156542	//       "location": "path",
156543	//       "required": true,
156544	//       "type": "string"
156545	//     }
156546	//   },
156547	//   "path": "{project}/global/targetHttpsProxies/{targetHttpsProxy}/setQuicOverride",
156548	//   "request": {
156549	//     "$ref": "TargetHttpsProxiesSetQuicOverrideRequest"
156550	//   },
156551	//   "response": {
156552	//     "$ref": "Operation"
156553	//   },
156554	//   "scopes": [
156555	//     "https://www.googleapis.com/auth/cloud-platform",
156556	//     "https://www.googleapis.com/auth/compute"
156557	//   ]
156558	// }
156559
156560}
156561
156562// method id "compute.targetHttpsProxies.setSslCertificates":
156563
156564type TargetHttpsProxiesSetSslCertificatesCall struct {
156565	s                                           *Service
156566	project                                     string
156567	targetHttpsProxy                            string
156568	targethttpsproxiessetsslcertificatesrequest *TargetHttpsProxiesSetSslCertificatesRequest
156569	urlParams_                                  gensupport.URLParams
156570	ctx_                                        context.Context
156571	header_                                     http.Header
156572}
156573
156574// SetSslCertificates: Replaces SslCertificates for TargetHttpsProxy.
156575// (== suppress_warning http-rest-shadowed ==)
156576func (r *TargetHttpsProxiesService) SetSslCertificates(project string, targetHttpsProxy string, targethttpsproxiessetsslcertificatesrequest *TargetHttpsProxiesSetSslCertificatesRequest) *TargetHttpsProxiesSetSslCertificatesCall {
156577	c := &TargetHttpsProxiesSetSslCertificatesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
156578	c.project = project
156579	c.targetHttpsProxy = targetHttpsProxy
156580	c.targethttpsproxiessetsslcertificatesrequest = targethttpsproxiessetsslcertificatesrequest
156581	return c
156582}
156583
156584// RequestId sets the optional parameter "requestId": An optional
156585// request ID to identify requests. Specify a unique request ID so that
156586// if you must retry your request, the server will know to ignore the
156587// request if it has already been completed.
156588//
156589// For example, consider a situation where you make an initial request
156590// and the request times out. If you make the request again with the
156591// same request ID, the server can check if original operation with the
156592// same request ID was received, and if so, will ignore the second
156593// request. This prevents clients from accidentally creating duplicate
156594// commitments.
156595//
156596// The request ID must be a valid UUID with the exception that zero UUID
156597// is not supported (00000000-0000-0000-0000-000000000000).
156598func (c *TargetHttpsProxiesSetSslCertificatesCall) RequestId(requestId string) *TargetHttpsProxiesSetSslCertificatesCall {
156599	c.urlParams_.Set("requestId", requestId)
156600	return c
156601}
156602
156603// Fields allows partial responses to be retrieved. See
156604// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
156605// for more information.
156606func (c *TargetHttpsProxiesSetSslCertificatesCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesSetSslCertificatesCall {
156607	c.urlParams_.Set("fields", googleapi.CombineFields(s))
156608	return c
156609}
156610
156611// Context sets the context to be used in this call's Do method. Any
156612// pending HTTP request will be aborted if the provided context is
156613// canceled.
156614func (c *TargetHttpsProxiesSetSslCertificatesCall) Context(ctx context.Context) *TargetHttpsProxiesSetSslCertificatesCall {
156615	c.ctx_ = ctx
156616	return c
156617}
156618
156619// Header returns an http.Header that can be modified by the caller to
156620// add HTTP headers to the request.
156621func (c *TargetHttpsProxiesSetSslCertificatesCall) Header() http.Header {
156622	if c.header_ == nil {
156623		c.header_ = make(http.Header)
156624	}
156625	return c.header_
156626}
156627
156628func (c *TargetHttpsProxiesSetSslCertificatesCall) doRequest(alt string) (*http.Response, error) {
156629	reqHeaders := make(http.Header)
156630	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
156631	for k, v := range c.header_ {
156632		reqHeaders[k] = v
156633	}
156634	reqHeaders.Set("User-Agent", c.s.userAgent())
156635	var body io.Reader = nil
156636	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targethttpsproxiessetsslcertificatesrequest)
156637	if err != nil {
156638		return nil, err
156639	}
156640	reqHeaders.Set("Content-Type", "application/json")
156641	c.urlParams_.Set("alt", alt)
156642	c.urlParams_.Set("prettyPrint", "false")
156643	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/targetHttpsProxies/{targetHttpsProxy}/setSslCertificates")
156644	urls += "?" + c.urlParams_.Encode()
156645	req, err := http.NewRequest("POST", urls, body)
156646	if err != nil {
156647		return nil, err
156648	}
156649	req.Header = reqHeaders
156650	googleapi.Expand(req.URL, map[string]string{
156651		"project":          c.project,
156652		"targetHttpsProxy": c.targetHttpsProxy,
156653	})
156654	return gensupport.SendRequest(c.ctx_, c.s.client, req)
156655}
156656
156657// Do executes the "compute.targetHttpsProxies.setSslCertificates" call.
156658// Exactly one of *Operation or error will be non-nil. Any non-2xx
156659// status code is an error. Response headers are in either
156660// *Operation.ServerResponse.Header or (if a response was returned at
156661// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
156662// to check whether the returned error was because
156663// http.StatusNotModified was returned.
156664func (c *TargetHttpsProxiesSetSslCertificatesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
156665	gensupport.SetOptions(c.urlParams_, opts...)
156666	res, err := c.doRequest("json")
156667	if res != nil && res.StatusCode == http.StatusNotModified {
156668		if res.Body != nil {
156669			res.Body.Close()
156670		}
156671		return nil, &googleapi.Error{
156672			Code:   res.StatusCode,
156673			Header: res.Header,
156674		}
156675	}
156676	if err != nil {
156677		return nil, err
156678	}
156679	defer googleapi.CloseBody(res)
156680	if err := googleapi.CheckResponse(res); err != nil {
156681		return nil, err
156682	}
156683	ret := &Operation{
156684		ServerResponse: googleapi.ServerResponse{
156685			Header:         res.Header,
156686			HTTPStatusCode: res.StatusCode,
156687		},
156688	}
156689	target := &ret
156690	if err := gensupport.DecodeResponse(target, res); err != nil {
156691		return nil, err
156692	}
156693	return ret, nil
156694	// {
156695	//   "description": "Replaces SslCertificates for TargetHttpsProxy. (== suppress_warning http-rest-shadowed ==)",
156696	//   "httpMethod": "POST",
156697	//   "id": "compute.targetHttpsProxies.setSslCertificates",
156698	//   "parameterOrder": [
156699	//     "project",
156700	//     "targetHttpsProxy"
156701	//   ],
156702	//   "parameters": {
156703	//     "project": {
156704	//       "description": "Project ID for this request.",
156705	//       "location": "path",
156706	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
156707	//       "required": true,
156708	//       "type": "string"
156709	//     },
156710	//     "requestId": {
156711	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
156712	//       "location": "query",
156713	//       "type": "string"
156714	//     },
156715	//     "targetHttpsProxy": {
156716	//       "description": "Name of the TargetHttpsProxy resource to set an SslCertificates resource for.",
156717	//       "location": "path",
156718	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
156719	//       "required": true,
156720	//       "type": "string"
156721	//     }
156722	//   },
156723	//   "path": "{project}/targetHttpsProxies/{targetHttpsProxy}/setSslCertificates",
156724	//   "request": {
156725	//     "$ref": "TargetHttpsProxiesSetSslCertificatesRequest"
156726	//   },
156727	//   "response": {
156728	//     "$ref": "Operation"
156729	//   },
156730	//   "scopes": [
156731	//     "https://www.googleapis.com/auth/cloud-platform",
156732	//     "https://www.googleapis.com/auth/compute"
156733	//   ]
156734	// }
156735
156736}
156737
156738// method id "compute.targetHttpsProxies.setSslPolicy":
156739
156740type TargetHttpsProxiesSetSslPolicyCall struct {
156741	s                  *Service
156742	project            string
156743	targetHttpsProxy   string
156744	sslpolicyreference *SslPolicyReference
156745	urlParams_         gensupport.URLParams
156746	ctx_               context.Context
156747	header_            http.Header
156748}
156749
156750// SetSslPolicy: Sets the SSL policy for TargetHttpsProxy. The SSL
156751// policy specifies the server-side support for SSL features. This
156752// affects connections between clients and the HTTPS proxy load
156753// balancer. They do not affect the connection between the load balancer
156754// and the backends. (== suppress_warning http-rest-shadowed ==)
156755func (r *TargetHttpsProxiesService) SetSslPolicy(project string, targetHttpsProxy string, sslpolicyreference *SslPolicyReference) *TargetHttpsProxiesSetSslPolicyCall {
156756	c := &TargetHttpsProxiesSetSslPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
156757	c.project = project
156758	c.targetHttpsProxy = targetHttpsProxy
156759	c.sslpolicyreference = sslpolicyreference
156760	return c
156761}
156762
156763// RequestId sets the optional parameter "requestId": An optional
156764// request ID to identify requests. Specify a unique request ID so that
156765// if you must retry your request, the server will know to ignore the
156766// request if it has already been completed.
156767//
156768// For example, consider a situation where you make an initial request
156769// and the request times out. If you make the request again with the
156770// same request ID, the server can check if original operation with the
156771// same request ID was received, and if so, will ignore the second
156772// request. This prevents clients from accidentally creating duplicate
156773// commitments.
156774//
156775// The request ID must be a valid UUID with the exception that zero UUID
156776// is not supported (00000000-0000-0000-0000-000000000000).
156777func (c *TargetHttpsProxiesSetSslPolicyCall) RequestId(requestId string) *TargetHttpsProxiesSetSslPolicyCall {
156778	c.urlParams_.Set("requestId", requestId)
156779	return c
156780}
156781
156782// Fields allows partial responses to be retrieved. See
156783// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
156784// for more information.
156785func (c *TargetHttpsProxiesSetSslPolicyCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesSetSslPolicyCall {
156786	c.urlParams_.Set("fields", googleapi.CombineFields(s))
156787	return c
156788}
156789
156790// Context sets the context to be used in this call's Do method. Any
156791// pending HTTP request will be aborted if the provided context is
156792// canceled.
156793func (c *TargetHttpsProxiesSetSslPolicyCall) Context(ctx context.Context) *TargetHttpsProxiesSetSslPolicyCall {
156794	c.ctx_ = ctx
156795	return c
156796}
156797
156798// Header returns an http.Header that can be modified by the caller to
156799// add HTTP headers to the request.
156800func (c *TargetHttpsProxiesSetSslPolicyCall) Header() http.Header {
156801	if c.header_ == nil {
156802		c.header_ = make(http.Header)
156803	}
156804	return c.header_
156805}
156806
156807func (c *TargetHttpsProxiesSetSslPolicyCall) doRequest(alt string) (*http.Response, error) {
156808	reqHeaders := make(http.Header)
156809	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
156810	for k, v := range c.header_ {
156811		reqHeaders[k] = v
156812	}
156813	reqHeaders.Set("User-Agent", c.s.userAgent())
156814	var body io.Reader = nil
156815	body, err := googleapi.WithoutDataWrapper.JSONReader(c.sslpolicyreference)
156816	if err != nil {
156817		return nil, err
156818	}
156819	reqHeaders.Set("Content-Type", "application/json")
156820	c.urlParams_.Set("alt", alt)
156821	c.urlParams_.Set("prettyPrint", "false")
156822	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetHttpsProxies/{targetHttpsProxy}/setSslPolicy")
156823	urls += "?" + c.urlParams_.Encode()
156824	req, err := http.NewRequest("POST", urls, body)
156825	if err != nil {
156826		return nil, err
156827	}
156828	req.Header = reqHeaders
156829	googleapi.Expand(req.URL, map[string]string{
156830		"project":          c.project,
156831		"targetHttpsProxy": c.targetHttpsProxy,
156832	})
156833	return gensupport.SendRequest(c.ctx_, c.s.client, req)
156834}
156835
156836// Do executes the "compute.targetHttpsProxies.setSslPolicy" call.
156837// Exactly one of *Operation or error will be non-nil. Any non-2xx
156838// status code is an error. Response headers are in either
156839// *Operation.ServerResponse.Header or (if a response was returned at
156840// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
156841// to check whether the returned error was because
156842// http.StatusNotModified was returned.
156843func (c *TargetHttpsProxiesSetSslPolicyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
156844	gensupport.SetOptions(c.urlParams_, opts...)
156845	res, err := c.doRequest("json")
156846	if res != nil && res.StatusCode == http.StatusNotModified {
156847		if res.Body != nil {
156848			res.Body.Close()
156849		}
156850		return nil, &googleapi.Error{
156851			Code:   res.StatusCode,
156852			Header: res.Header,
156853		}
156854	}
156855	if err != nil {
156856		return nil, err
156857	}
156858	defer googleapi.CloseBody(res)
156859	if err := googleapi.CheckResponse(res); err != nil {
156860		return nil, err
156861	}
156862	ret := &Operation{
156863		ServerResponse: googleapi.ServerResponse{
156864			Header:         res.Header,
156865			HTTPStatusCode: res.StatusCode,
156866		},
156867	}
156868	target := &ret
156869	if err := gensupport.DecodeResponse(target, res); err != nil {
156870		return nil, err
156871	}
156872	return ret, nil
156873	// {
156874	//   "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. (== suppress_warning http-rest-shadowed ==)",
156875	//   "httpMethod": "POST",
156876	//   "id": "compute.targetHttpsProxies.setSslPolicy",
156877	//   "parameterOrder": [
156878	//     "project",
156879	//     "targetHttpsProxy"
156880	//   ],
156881	//   "parameters": {
156882	//     "project": {
156883	//       "description": "Project ID for this request.",
156884	//       "location": "path",
156885	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
156886	//       "required": true,
156887	//       "type": "string"
156888	//     },
156889	//     "requestId": {
156890	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
156891	//       "location": "query",
156892	//       "type": "string"
156893	//     },
156894	//     "targetHttpsProxy": {
156895	//       "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.",
156896	//       "location": "path",
156897	//       "required": true,
156898	//       "type": "string"
156899	//     }
156900	//   },
156901	//   "path": "{project}/global/targetHttpsProxies/{targetHttpsProxy}/setSslPolicy",
156902	//   "request": {
156903	//     "$ref": "SslPolicyReference"
156904	//   },
156905	//   "response": {
156906	//     "$ref": "Operation"
156907	//   },
156908	//   "scopes": [
156909	//     "https://www.googleapis.com/auth/cloud-platform",
156910	//     "https://www.googleapis.com/auth/compute"
156911	//   ]
156912	// }
156913
156914}
156915
156916// method id "compute.targetHttpsProxies.setUrlMap":
156917
156918type TargetHttpsProxiesSetUrlMapCall struct {
156919	s                *Service
156920	project          string
156921	targetHttpsProxy string
156922	urlmapreference  *UrlMapReference
156923	urlParams_       gensupport.URLParams
156924	ctx_             context.Context
156925	header_          http.Header
156926}
156927
156928// SetUrlMap: Changes the URL map for TargetHttpsProxy. (==
156929// suppress_warning http-rest-shadowed ==)
156930func (r *TargetHttpsProxiesService) SetUrlMap(project string, targetHttpsProxy string, urlmapreference *UrlMapReference) *TargetHttpsProxiesSetUrlMapCall {
156931	c := &TargetHttpsProxiesSetUrlMapCall{s: r.s, urlParams_: make(gensupport.URLParams)}
156932	c.project = project
156933	c.targetHttpsProxy = targetHttpsProxy
156934	c.urlmapreference = urlmapreference
156935	return c
156936}
156937
156938// RequestId sets the optional parameter "requestId": An optional
156939// request ID to identify requests. Specify a unique request ID so that
156940// if you must retry your request, the server will know to ignore the
156941// request if it has already been completed.
156942//
156943// For example, consider a situation where you make an initial request
156944// and the request times out. If you make the request again with the
156945// same request ID, the server can check if original operation with the
156946// same request ID was received, and if so, will ignore the second
156947// request. This prevents clients from accidentally creating duplicate
156948// commitments.
156949//
156950// The request ID must be a valid UUID with the exception that zero UUID
156951// is not supported (00000000-0000-0000-0000-000000000000).
156952func (c *TargetHttpsProxiesSetUrlMapCall) RequestId(requestId string) *TargetHttpsProxiesSetUrlMapCall {
156953	c.urlParams_.Set("requestId", requestId)
156954	return c
156955}
156956
156957// Fields allows partial responses to be retrieved. See
156958// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
156959// for more information.
156960func (c *TargetHttpsProxiesSetUrlMapCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesSetUrlMapCall {
156961	c.urlParams_.Set("fields", googleapi.CombineFields(s))
156962	return c
156963}
156964
156965// Context sets the context to be used in this call's Do method. Any
156966// pending HTTP request will be aborted if the provided context is
156967// canceled.
156968func (c *TargetHttpsProxiesSetUrlMapCall) Context(ctx context.Context) *TargetHttpsProxiesSetUrlMapCall {
156969	c.ctx_ = ctx
156970	return c
156971}
156972
156973// Header returns an http.Header that can be modified by the caller to
156974// add HTTP headers to the request.
156975func (c *TargetHttpsProxiesSetUrlMapCall) Header() http.Header {
156976	if c.header_ == nil {
156977		c.header_ = make(http.Header)
156978	}
156979	return c.header_
156980}
156981
156982func (c *TargetHttpsProxiesSetUrlMapCall) doRequest(alt string) (*http.Response, error) {
156983	reqHeaders := make(http.Header)
156984	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
156985	for k, v := range c.header_ {
156986		reqHeaders[k] = v
156987	}
156988	reqHeaders.Set("User-Agent", c.s.userAgent())
156989	var body io.Reader = nil
156990	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmapreference)
156991	if err != nil {
156992		return nil, err
156993	}
156994	reqHeaders.Set("Content-Type", "application/json")
156995	c.urlParams_.Set("alt", alt)
156996	c.urlParams_.Set("prettyPrint", "false")
156997	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/targetHttpsProxies/{targetHttpsProxy}/setUrlMap")
156998	urls += "?" + c.urlParams_.Encode()
156999	req, err := http.NewRequest("POST", urls, body)
157000	if err != nil {
157001		return nil, err
157002	}
157003	req.Header = reqHeaders
157004	googleapi.Expand(req.URL, map[string]string{
157005		"project":          c.project,
157006		"targetHttpsProxy": c.targetHttpsProxy,
157007	})
157008	return gensupport.SendRequest(c.ctx_, c.s.client, req)
157009}
157010
157011// Do executes the "compute.targetHttpsProxies.setUrlMap" call.
157012// Exactly one of *Operation or error will be non-nil. Any non-2xx
157013// status code is an error. Response headers are in either
157014// *Operation.ServerResponse.Header or (if a response was returned at
157015// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
157016// to check whether the returned error was because
157017// http.StatusNotModified was returned.
157018func (c *TargetHttpsProxiesSetUrlMapCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
157019	gensupport.SetOptions(c.urlParams_, opts...)
157020	res, err := c.doRequest("json")
157021	if res != nil && res.StatusCode == http.StatusNotModified {
157022		if res.Body != nil {
157023			res.Body.Close()
157024		}
157025		return nil, &googleapi.Error{
157026			Code:   res.StatusCode,
157027			Header: res.Header,
157028		}
157029	}
157030	if err != nil {
157031		return nil, err
157032	}
157033	defer googleapi.CloseBody(res)
157034	if err := googleapi.CheckResponse(res); err != nil {
157035		return nil, err
157036	}
157037	ret := &Operation{
157038		ServerResponse: googleapi.ServerResponse{
157039			Header:         res.Header,
157040			HTTPStatusCode: res.StatusCode,
157041		},
157042	}
157043	target := &ret
157044	if err := gensupport.DecodeResponse(target, res); err != nil {
157045		return nil, err
157046	}
157047	return ret, nil
157048	// {
157049	//   "description": "Changes the URL map for TargetHttpsProxy. (== suppress_warning http-rest-shadowed ==)",
157050	//   "httpMethod": "POST",
157051	//   "id": "compute.targetHttpsProxies.setUrlMap",
157052	//   "parameterOrder": [
157053	//     "project",
157054	//     "targetHttpsProxy"
157055	//   ],
157056	//   "parameters": {
157057	//     "project": {
157058	//       "description": "Project ID for this request.",
157059	//       "location": "path",
157060	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
157061	//       "required": true,
157062	//       "type": "string"
157063	//     },
157064	//     "requestId": {
157065	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
157066	//       "location": "query",
157067	//       "type": "string"
157068	//     },
157069	//     "targetHttpsProxy": {
157070	//       "description": "Name of the TargetHttpsProxy resource whose URL map is to be set.",
157071	//       "location": "path",
157072	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
157073	//       "required": true,
157074	//       "type": "string"
157075	//     }
157076	//   },
157077	//   "path": "{project}/targetHttpsProxies/{targetHttpsProxy}/setUrlMap",
157078	//   "request": {
157079	//     "$ref": "UrlMapReference"
157080	//   },
157081	//   "response": {
157082	//     "$ref": "Operation"
157083	//   },
157084	//   "scopes": [
157085	//     "https://www.googleapis.com/auth/cloud-platform",
157086	//     "https://www.googleapis.com/auth/compute"
157087	//   ]
157088	// }
157089
157090}
157091
157092// method id "compute.targetHttpsProxies.testIamPermissions":
157093
157094type TargetHttpsProxiesTestIamPermissionsCall struct {
157095	s                      *Service
157096	project                string
157097	resource               string
157098	testpermissionsrequest *TestPermissionsRequest
157099	urlParams_             gensupport.URLParams
157100	ctx_                   context.Context
157101	header_                http.Header
157102}
157103
157104// TestIamPermissions: Returns permissions that a caller has on the
157105// specified resource. (== suppress_warning http-rest-shadowed ==)
157106func (r *TargetHttpsProxiesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *TargetHttpsProxiesTestIamPermissionsCall {
157107	c := &TargetHttpsProxiesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
157108	c.project = project
157109	c.resource = resource
157110	c.testpermissionsrequest = testpermissionsrequest
157111	return c
157112}
157113
157114// Fields allows partial responses to be retrieved. See
157115// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
157116// for more information.
157117func (c *TargetHttpsProxiesTestIamPermissionsCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesTestIamPermissionsCall {
157118	c.urlParams_.Set("fields", googleapi.CombineFields(s))
157119	return c
157120}
157121
157122// Context sets the context to be used in this call's Do method. Any
157123// pending HTTP request will be aborted if the provided context is
157124// canceled.
157125func (c *TargetHttpsProxiesTestIamPermissionsCall) Context(ctx context.Context) *TargetHttpsProxiesTestIamPermissionsCall {
157126	c.ctx_ = ctx
157127	return c
157128}
157129
157130// Header returns an http.Header that can be modified by the caller to
157131// add HTTP headers to the request.
157132func (c *TargetHttpsProxiesTestIamPermissionsCall) Header() http.Header {
157133	if c.header_ == nil {
157134		c.header_ = make(http.Header)
157135	}
157136	return c.header_
157137}
157138
157139func (c *TargetHttpsProxiesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
157140	reqHeaders := make(http.Header)
157141	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
157142	for k, v := range c.header_ {
157143		reqHeaders[k] = v
157144	}
157145	reqHeaders.Set("User-Agent", c.s.userAgent())
157146	var body io.Reader = nil
157147	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
157148	if err != nil {
157149		return nil, err
157150	}
157151	reqHeaders.Set("Content-Type", "application/json")
157152	c.urlParams_.Set("alt", alt)
157153	c.urlParams_.Set("prettyPrint", "false")
157154	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetHttpsProxies/{resource}/testIamPermissions")
157155	urls += "?" + c.urlParams_.Encode()
157156	req, err := http.NewRequest("POST", urls, body)
157157	if err != nil {
157158		return nil, err
157159	}
157160	req.Header = reqHeaders
157161	googleapi.Expand(req.URL, map[string]string{
157162		"project":  c.project,
157163		"resource": c.resource,
157164	})
157165	return gensupport.SendRequest(c.ctx_, c.s.client, req)
157166}
157167
157168// Do executes the "compute.targetHttpsProxies.testIamPermissions" call.
157169// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
157170// non-2xx status code is an error. Response headers are in either
157171// *TestPermissionsResponse.ServerResponse.Header or (if a response was
157172// returned at all) in error.(*googleapi.Error).Header. Use
157173// googleapi.IsNotModified to check whether the returned error was
157174// because http.StatusNotModified was returned.
157175func (c *TargetHttpsProxiesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
157176	gensupport.SetOptions(c.urlParams_, opts...)
157177	res, err := c.doRequest("json")
157178	if res != nil && res.StatusCode == http.StatusNotModified {
157179		if res.Body != nil {
157180			res.Body.Close()
157181		}
157182		return nil, &googleapi.Error{
157183			Code:   res.StatusCode,
157184			Header: res.Header,
157185		}
157186	}
157187	if err != nil {
157188		return nil, err
157189	}
157190	defer googleapi.CloseBody(res)
157191	if err := googleapi.CheckResponse(res); err != nil {
157192		return nil, err
157193	}
157194	ret := &TestPermissionsResponse{
157195		ServerResponse: googleapi.ServerResponse{
157196			Header:         res.Header,
157197			HTTPStatusCode: res.StatusCode,
157198		},
157199	}
157200	target := &ret
157201	if err := gensupport.DecodeResponse(target, res); err != nil {
157202		return nil, err
157203	}
157204	return ret, nil
157205	// {
157206	//   "description": "Returns permissions that a caller has on the specified resource. (== suppress_warning http-rest-shadowed ==)",
157207	//   "httpMethod": "POST",
157208	//   "id": "compute.targetHttpsProxies.testIamPermissions",
157209	//   "parameterOrder": [
157210	//     "project",
157211	//     "resource"
157212	//   ],
157213	//   "parameters": {
157214	//     "project": {
157215	//       "description": "Project ID for this request.",
157216	//       "location": "path",
157217	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
157218	//       "required": true,
157219	//       "type": "string"
157220	//     },
157221	//     "resource": {
157222	//       "description": "Name or id of the resource for this request.",
157223	//       "location": "path",
157224	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
157225	//       "required": true,
157226	//       "type": "string"
157227	//     }
157228	//   },
157229	//   "path": "{project}/global/targetHttpsProxies/{resource}/testIamPermissions",
157230	//   "request": {
157231	//     "$ref": "TestPermissionsRequest"
157232	//   },
157233	//   "response": {
157234	//     "$ref": "TestPermissionsResponse"
157235	//   },
157236	//   "scopes": [
157237	//     "https://www.googleapis.com/auth/cloud-platform",
157238	//     "https://www.googleapis.com/auth/compute",
157239	//     "https://www.googleapis.com/auth/compute.readonly"
157240	//   ]
157241	// }
157242
157243}
157244
157245// method id "compute.targetInstances.aggregatedList":
157246
157247type TargetInstancesAggregatedListCall struct {
157248	s            *Service
157249	project      string
157250	urlParams_   gensupport.URLParams
157251	ifNoneMatch_ string
157252	ctx_         context.Context
157253	header_      http.Header
157254}
157255
157256// AggregatedList: Retrieves an aggregated list of target instances. (==
157257// suppress_warning http-rest-shadowed ==)
157258// For details, see https://cloud.google.com/compute/docs/reference/latest/targetInstances/aggregatedList
157259func (r *TargetInstancesService) AggregatedList(project string) *TargetInstancesAggregatedListCall {
157260	c := &TargetInstancesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
157261	c.project = project
157262	return c
157263}
157264
157265// Filter sets the optional parameter "filter": A filter expression that
157266// filters resources listed in the response. The expression must specify
157267// the field name, a comparison operator, and the value that you want to
157268// use for filtering. The value must be a string, a number, or a
157269// boolean. The comparison operator must be either =, !=, >, or <.
157270//
157271// For example, if you are filtering Compute Engine instances, you can
157272// exclude instances named example-instance by specifying name !=
157273// example-instance.
157274//
157275// You can also filter nested fields. For example, you could specify
157276// scheduling.automaticRestart = false to include instances only if they
157277// are not scheduled for automatic restarts. You can use filtering on
157278// nested fields to filter based on resource labels.
157279//
157280// To filter on multiple expressions, provide each separate expression
157281// within parentheses. For example, (scheduling.automaticRestart = true)
157282// (cpuPlatform = "Intel Skylake"). By default, each expression is an
157283// AND expression. However, you can include AND and OR expressions
157284// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
157285// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
157286// true).
157287func (c *TargetInstancesAggregatedListCall) Filter(filter string) *TargetInstancesAggregatedListCall {
157288	c.urlParams_.Set("filter", filter)
157289	return c
157290}
157291
157292// MaxResults sets the optional parameter "maxResults": The maximum
157293// number of results per page that should be returned. If the number of
157294// available results is larger than maxResults, Compute Engine returns a
157295// nextPageToken that can be used to get the next page of results in
157296// subsequent list requests. Acceptable values are 0 to 500, inclusive.
157297// (Default: 500)
157298func (c *TargetInstancesAggregatedListCall) MaxResults(maxResults int64) *TargetInstancesAggregatedListCall {
157299	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
157300	return c
157301}
157302
157303// OrderBy sets the optional parameter "orderBy": Sorts list results by
157304// a certain order. By default, results are returned in alphanumerical
157305// order based on the resource name.
157306//
157307// You can also sort results in descending order based on the creation
157308// timestamp using orderBy="creationTimestamp desc". This sorts results
157309// based on the creationTimestamp field in reverse chronological order
157310// (newest result first). Use this to sort resources like operations so
157311// that the newest operation is returned first.
157312//
157313// Currently, only sorting by name or creationTimestamp desc is
157314// supported.
157315func (c *TargetInstancesAggregatedListCall) OrderBy(orderBy string) *TargetInstancesAggregatedListCall {
157316	c.urlParams_.Set("orderBy", orderBy)
157317	return c
157318}
157319
157320// PageToken sets the optional parameter "pageToken": Specifies a page
157321// token to use. Set pageToken to the nextPageToken returned by a
157322// previous list request to get the next page of results.
157323func (c *TargetInstancesAggregatedListCall) PageToken(pageToken string) *TargetInstancesAggregatedListCall {
157324	c.urlParams_.Set("pageToken", pageToken)
157325	return c
157326}
157327
157328// Fields allows partial responses to be retrieved. See
157329// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
157330// for more information.
157331func (c *TargetInstancesAggregatedListCall) Fields(s ...googleapi.Field) *TargetInstancesAggregatedListCall {
157332	c.urlParams_.Set("fields", googleapi.CombineFields(s))
157333	return c
157334}
157335
157336// IfNoneMatch sets the optional parameter which makes the operation
157337// fail if the object's ETag matches the given value. This is useful for
157338// getting updates only after the object has changed since the last
157339// request. Use googleapi.IsNotModified to check whether the response
157340// error from Do is the result of In-None-Match.
157341func (c *TargetInstancesAggregatedListCall) IfNoneMatch(entityTag string) *TargetInstancesAggregatedListCall {
157342	c.ifNoneMatch_ = entityTag
157343	return c
157344}
157345
157346// Context sets the context to be used in this call's Do method. Any
157347// pending HTTP request will be aborted if the provided context is
157348// canceled.
157349func (c *TargetInstancesAggregatedListCall) Context(ctx context.Context) *TargetInstancesAggregatedListCall {
157350	c.ctx_ = ctx
157351	return c
157352}
157353
157354// Header returns an http.Header that can be modified by the caller to
157355// add HTTP headers to the request.
157356func (c *TargetInstancesAggregatedListCall) Header() http.Header {
157357	if c.header_ == nil {
157358		c.header_ = make(http.Header)
157359	}
157360	return c.header_
157361}
157362
157363func (c *TargetInstancesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
157364	reqHeaders := make(http.Header)
157365	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
157366	for k, v := range c.header_ {
157367		reqHeaders[k] = v
157368	}
157369	reqHeaders.Set("User-Agent", c.s.userAgent())
157370	if c.ifNoneMatch_ != "" {
157371		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
157372	}
157373	var body io.Reader = nil
157374	c.urlParams_.Set("alt", alt)
157375	c.urlParams_.Set("prettyPrint", "false")
157376	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/targetInstances")
157377	urls += "?" + c.urlParams_.Encode()
157378	req, err := http.NewRequest("GET", urls, body)
157379	if err != nil {
157380		return nil, err
157381	}
157382	req.Header = reqHeaders
157383	googleapi.Expand(req.URL, map[string]string{
157384		"project": c.project,
157385	})
157386	return gensupport.SendRequest(c.ctx_, c.s.client, req)
157387}
157388
157389// Do executes the "compute.targetInstances.aggregatedList" call.
157390// Exactly one of *TargetInstanceAggregatedList or error will be
157391// non-nil. Any non-2xx status code is an error. Response headers are in
157392// either *TargetInstanceAggregatedList.ServerResponse.Header or (if a
157393// response was returned at all) in error.(*googleapi.Error).Header. Use
157394// googleapi.IsNotModified to check whether the returned error was
157395// because http.StatusNotModified was returned.
157396func (c *TargetInstancesAggregatedListCall) Do(opts ...googleapi.CallOption) (*TargetInstanceAggregatedList, error) {
157397	gensupport.SetOptions(c.urlParams_, opts...)
157398	res, err := c.doRequest("json")
157399	if res != nil && res.StatusCode == http.StatusNotModified {
157400		if res.Body != nil {
157401			res.Body.Close()
157402		}
157403		return nil, &googleapi.Error{
157404			Code:   res.StatusCode,
157405			Header: res.Header,
157406		}
157407	}
157408	if err != nil {
157409		return nil, err
157410	}
157411	defer googleapi.CloseBody(res)
157412	if err := googleapi.CheckResponse(res); err != nil {
157413		return nil, err
157414	}
157415	ret := &TargetInstanceAggregatedList{
157416		ServerResponse: googleapi.ServerResponse{
157417			Header:         res.Header,
157418			HTTPStatusCode: res.StatusCode,
157419		},
157420	}
157421	target := &ret
157422	if err := gensupport.DecodeResponse(target, res); err != nil {
157423		return nil, err
157424	}
157425	return ret, nil
157426	// {
157427	//   "description": "Retrieves an aggregated list of target instances. (== suppress_warning http-rest-shadowed ==)",
157428	//   "httpMethod": "GET",
157429	//   "id": "compute.targetInstances.aggregatedList",
157430	//   "parameterOrder": [
157431	//     "project"
157432	//   ],
157433	//   "parameters": {
157434	//     "filter": {
157435	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
157436	//       "location": "query",
157437	//       "type": "string"
157438	//     },
157439	//     "maxResults": {
157440	//       "default": "500",
157441	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
157442	//       "format": "uint32",
157443	//       "location": "query",
157444	//       "minimum": "0",
157445	//       "type": "integer"
157446	//     },
157447	//     "orderBy": {
157448	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
157449	//       "location": "query",
157450	//       "type": "string"
157451	//     },
157452	//     "pageToken": {
157453	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
157454	//       "location": "query",
157455	//       "type": "string"
157456	//     },
157457	//     "project": {
157458	//       "description": "Project ID for this request.",
157459	//       "location": "path",
157460	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
157461	//       "required": true,
157462	//       "type": "string"
157463	//     }
157464	//   },
157465	//   "path": "{project}/aggregated/targetInstances",
157466	//   "response": {
157467	//     "$ref": "TargetInstanceAggregatedList"
157468	//   },
157469	//   "scopes": [
157470	//     "https://www.googleapis.com/auth/cloud-platform",
157471	//     "https://www.googleapis.com/auth/compute",
157472	//     "https://www.googleapis.com/auth/compute.readonly"
157473	//   ]
157474	// }
157475
157476}
157477
157478// Pages invokes f for each page of results.
157479// A non-nil error returned from f will halt the iteration.
157480// The provided context supersedes any context provided to the Context method.
157481func (c *TargetInstancesAggregatedListCall) Pages(ctx context.Context, f func(*TargetInstanceAggregatedList) error) error {
157482	c.ctx_ = ctx
157483	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
157484	for {
157485		x, err := c.Do()
157486		if err != nil {
157487			return err
157488		}
157489		if err := f(x); err != nil {
157490			return err
157491		}
157492		if x.NextPageToken == "" {
157493			return nil
157494		}
157495		c.PageToken(x.NextPageToken)
157496	}
157497}
157498
157499// method id "compute.targetInstances.delete":
157500
157501type TargetInstancesDeleteCall struct {
157502	s              *Service
157503	project        string
157504	zone           string
157505	targetInstance string
157506	urlParams_     gensupport.URLParams
157507	ctx_           context.Context
157508	header_        http.Header
157509}
157510
157511// Delete: Deletes the specified TargetInstance resource. (==
157512// suppress_warning http-rest-shadowed ==)
157513// For details, see https://cloud.google.com/compute/docs/reference/latest/targetInstances/delete
157514func (r *TargetInstancesService) Delete(project string, zone string, targetInstance string) *TargetInstancesDeleteCall {
157515	c := &TargetInstancesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
157516	c.project = project
157517	c.zone = zone
157518	c.targetInstance = targetInstance
157519	return c
157520}
157521
157522// RequestId sets the optional parameter "requestId": An optional
157523// request ID to identify requests. Specify a unique request ID so that
157524// if you must retry your request, the server will know to ignore the
157525// request if it has already been completed.
157526//
157527// For example, consider a situation where you make an initial request
157528// and the request times out. If you make the request again with the
157529// same request ID, the server can check if original operation with the
157530// same request ID was received, and if so, will ignore the second
157531// request. This prevents clients from accidentally creating duplicate
157532// commitments.
157533//
157534// The request ID must be a valid UUID with the exception that zero UUID
157535// is not supported (00000000-0000-0000-0000-000000000000).
157536func (c *TargetInstancesDeleteCall) RequestId(requestId string) *TargetInstancesDeleteCall {
157537	c.urlParams_.Set("requestId", requestId)
157538	return c
157539}
157540
157541// Fields allows partial responses to be retrieved. See
157542// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
157543// for more information.
157544func (c *TargetInstancesDeleteCall) Fields(s ...googleapi.Field) *TargetInstancesDeleteCall {
157545	c.urlParams_.Set("fields", googleapi.CombineFields(s))
157546	return c
157547}
157548
157549// Context sets the context to be used in this call's Do method. Any
157550// pending HTTP request will be aborted if the provided context is
157551// canceled.
157552func (c *TargetInstancesDeleteCall) Context(ctx context.Context) *TargetInstancesDeleteCall {
157553	c.ctx_ = ctx
157554	return c
157555}
157556
157557// Header returns an http.Header that can be modified by the caller to
157558// add HTTP headers to the request.
157559func (c *TargetInstancesDeleteCall) Header() http.Header {
157560	if c.header_ == nil {
157561		c.header_ = make(http.Header)
157562	}
157563	return c.header_
157564}
157565
157566func (c *TargetInstancesDeleteCall) doRequest(alt string) (*http.Response, error) {
157567	reqHeaders := make(http.Header)
157568	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
157569	for k, v := range c.header_ {
157570		reqHeaders[k] = v
157571	}
157572	reqHeaders.Set("User-Agent", c.s.userAgent())
157573	var body io.Reader = nil
157574	c.urlParams_.Set("alt", alt)
157575	c.urlParams_.Set("prettyPrint", "false")
157576	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/targetInstances/{targetInstance}")
157577	urls += "?" + c.urlParams_.Encode()
157578	req, err := http.NewRequest("DELETE", urls, body)
157579	if err != nil {
157580		return nil, err
157581	}
157582	req.Header = reqHeaders
157583	googleapi.Expand(req.URL, map[string]string{
157584		"project":        c.project,
157585		"zone":           c.zone,
157586		"targetInstance": c.targetInstance,
157587	})
157588	return gensupport.SendRequest(c.ctx_, c.s.client, req)
157589}
157590
157591// Do executes the "compute.targetInstances.delete" call.
157592// Exactly one of *Operation or error will be non-nil. Any non-2xx
157593// status code is an error. Response headers are in either
157594// *Operation.ServerResponse.Header or (if a response was returned at
157595// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
157596// to check whether the returned error was because
157597// http.StatusNotModified was returned.
157598func (c *TargetInstancesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
157599	gensupport.SetOptions(c.urlParams_, opts...)
157600	res, err := c.doRequest("json")
157601	if res != nil && res.StatusCode == http.StatusNotModified {
157602		if res.Body != nil {
157603			res.Body.Close()
157604		}
157605		return nil, &googleapi.Error{
157606			Code:   res.StatusCode,
157607			Header: res.Header,
157608		}
157609	}
157610	if err != nil {
157611		return nil, err
157612	}
157613	defer googleapi.CloseBody(res)
157614	if err := googleapi.CheckResponse(res); err != nil {
157615		return nil, err
157616	}
157617	ret := &Operation{
157618		ServerResponse: googleapi.ServerResponse{
157619			Header:         res.Header,
157620			HTTPStatusCode: res.StatusCode,
157621		},
157622	}
157623	target := &ret
157624	if err := gensupport.DecodeResponse(target, res); err != nil {
157625		return nil, err
157626	}
157627	return ret, nil
157628	// {
157629	//   "description": "Deletes the specified TargetInstance resource. (== suppress_warning http-rest-shadowed ==)",
157630	//   "httpMethod": "DELETE",
157631	//   "id": "compute.targetInstances.delete",
157632	//   "parameterOrder": [
157633	//     "project",
157634	//     "zone",
157635	//     "targetInstance"
157636	//   ],
157637	//   "parameters": {
157638	//     "project": {
157639	//       "description": "Project ID for this request.",
157640	//       "location": "path",
157641	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
157642	//       "required": true,
157643	//       "type": "string"
157644	//     },
157645	//     "requestId": {
157646	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
157647	//       "location": "query",
157648	//       "type": "string"
157649	//     },
157650	//     "targetInstance": {
157651	//       "description": "Name of the TargetInstance resource to delete.",
157652	//       "location": "path",
157653	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
157654	//       "required": true,
157655	//       "type": "string"
157656	//     },
157657	//     "zone": {
157658	//       "description": "Name of the zone scoping this request.",
157659	//       "location": "path",
157660	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
157661	//       "required": true,
157662	//       "type": "string"
157663	//     }
157664	//   },
157665	//   "path": "{project}/zones/{zone}/targetInstances/{targetInstance}",
157666	//   "response": {
157667	//     "$ref": "Operation"
157668	//   },
157669	//   "scopes": [
157670	//     "https://www.googleapis.com/auth/cloud-platform",
157671	//     "https://www.googleapis.com/auth/compute"
157672	//   ]
157673	// }
157674
157675}
157676
157677// method id "compute.targetInstances.get":
157678
157679type TargetInstancesGetCall struct {
157680	s              *Service
157681	project        string
157682	zone           string
157683	targetInstance string
157684	urlParams_     gensupport.URLParams
157685	ifNoneMatch_   string
157686	ctx_           context.Context
157687	header_        http.Header
157688}
157689
157690// Get: Returns the specified TargetInstance resource. Gets a list of
157691// available target instances by making a list() request. (==
157692// suppress_warning http-rest-shadowed ==)
157693// For details, see https://cloud.google.com/compute/docs/reference/latest/targetInstances/get
157694func (r *TargetInstancesService) Get(project string, zone string, targetInstance string) *TargetInstancesGetCall {
157695	c := &TargetInstancesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
157696	c.project = project
157697	c.zone = zone
157698	c.targetInstance = targetInstance
157699	return c
157700}
157701
157702// Fields allows partial responses to be retrieved. See
157703// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
157704// for more information.
157705func (c *TargetInstancesGetCall) Fields(s ...googleapi.Field) *TargetInstancesGetCall {
157706	c.urlParams_.Set("fields", googleapi.CombineFields(s))
157707	return c
157708}
157709
157710// IfNoneMatch sets the optional parameter which makes the operation
157711// fail if the object's ETag matches the given value. This is useful for
157712// getting updates only after the object has changed since the last
157713// request. Use googleapi.IsNotModified to check whether the response
157714// error from Do is the result of In-None-Match.
157715func (c *TargetInstancesGetCall) IfNoneMatch(entityTag string) *TargetInstancesGetCall {
157716	c.ifNoneMatch_ = entityTag
157717	return c
157718}
157719
157720// Context sets the context to be used in this call's Do method. Any
157721// pending HTTP request will be aborted if the provided context is
157722// canceled.
157723func (c *TargetInstancesGetCall) Context(ctx context.Context) *TargetInstancesGetCall {
157724	c.ctx_ = ctx
157725	return c
157726}
157727
157728// Header returns an http.Header that can be modified by the caller to
157729// add HTTP headers to the request.
157730func (c *TargetInstancesGetCall) Header() http.Header {
157731	if c.header_ == nil {
157732		c.header_ = make(http.Header)
157733	}
157734	return c.header_
157735}
157736
157737func (c *TargetInstancesGetCall) doRequest(alt string) (*http.Response, error) {
157738	reqHeaders := make(http.Header)
157739	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
157740	for k, v := range c.header_ {
157741		reqHeaders[k] = v
157742	}
157743	reqHeaders.Set("User-Agent", c.s.userAgent())
157744	if c.ifNoneMatch_ != "" {
157745		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
157746	}
157747	var body io.Reader = nil
157748	c.urlParams_.Set("alt", alt)
157749	c.urlParams_.Set("prettyPrint", "false")
157750	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/targetInstances/{targetInstance}")
157751	urls += "?" + c.urlParams_.Encode()
157752	req, err := http.NewRequest("GET", urls, body)
157753	if err != nil {
157754		return nil, err
157755	}
157756	req.Header = reqHeaders
157757	googleapi.Expand(req.URL, map[string]string{
157758		"project":        c.project,
157759		"zone":           c.zone,
157760		"targetInstance": c.targetInstance,
157761	})
157762	return gensupport.SendRequest(c.ctx_, c.s.client, req)
157763}
157764
157765// Do executes the "compute.targetInstances.get" call.
157766// Exactly one of *TargetInstance or error will be non-nil. Any non-2xx
157767// status code is an error. Response headers are in either
157768// *TargetInstance.ServerResponse.Header or (if a response was returned
157769// at all) in error.(*googleapi.Error).Header. Use
157770// googleapi.IsNotModified to check whether the returned error was
157771// because http.StatusNotModified was returned.
157772func (c *TargetInstancesGetCall) Do(opts ...googleapi.CallOption) (*TargetInstance, error) {
157773	gensupport.SetOptions(c.urlParams_, opts...)
157774	res, err := c.doRequest("json")
157775	if res != nil && res.StatusCode == http.StatusNotModified {
157776		if res.Body != nil {
157777			res.Body.Close()
157778		}
157779		return nil, &googleapi.Error{
157780			Code:   res.StatusCode,
157781			Header: res.Header,
157782		}
157783	}
157784	if err != nil {
157785		return nil, err
157786	}
157787	defer googleapi.CloseBody(res)
157788	if err := googleapi.CheckResponse(res); err != nil {
157789		return nil, err
157790	}
157791	ret := &TargetInstance{
157792		ServerResponse: googleapi.ServerResponse{
157793			Header:         res.Header,
157794			HTTPStatusCode: res.StatusCode,
157795		},
157796	}
157797	target := &ret
157798	if err := gensupport.DecodeResponse(target, res); err != nil {
157799		return nil, err
157800	}
157801	return ret, nil
157802	// {
157803	//   "description": "Returns the specified TargetInstance resource. Gets a list of available target instances by making a list() request. (== suppress_warning http-rest-shadowed ==)",
157804	//   "httpMethod": "GET",
157805	//   "id": "compute.targetInstances.get",
157806	//   "parameterOrder": [
157807	//     "project",
157808	//     "zone",
157809	//     "targetInstance"
157810	//   ],
157811	//   "parameters": {
157812	//     "project": {
157813	//       "description": "Project ID for this request.",
157814	//       "location": "path",
157815	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
157816	//       "required": true,
157817	//       "type": "string"
157818	//     },
157819	//     "targetInstance": {
157820	//       "description": "Name of the TargetInstance resource to return.",
157821	//       "location": "path",
157822	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
157823	//       "required": true,
157824	//       "type": "string"
157825	//     },
157826	//     "zone": {
157827	//       "description": "Name of the zone scoping this request.",
157828	//       "location": "path",
157829	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
157830	//       "required": true,
157831	//       "type": "string"
157832	//     }
157833	//   },
157834	//   "path": "{project}/zones/{zone}/targetInstances/{targetInstance}",
157835	//   "response": {
157836	//     "$ref": "TargetInstance"
157837	//   },
157838	//   "scopes": [
157839	//     "https://www.googleapis.com/auth/cloud-platform",
157840	//     "https://www.googleapis.com/auth/compute",
157841	//     "https://www.googleapis.com/auth/compute.readonly"
157842	//   ]
157843	// }
157844
157845}
157846
157847// method id "compute.targetInstances.insert":
157848
157849type TargetInstancesInsertCall struct {
157850	s              *Service
157851	project        string
157852	zone           string
157853	targetinstance *TargetInstance
157854	urlParams_     gensupport.URLParams
157855	ctx_           context.Context
157856	header_        http.Header
157857}
157858
157859// Insert: Creates a TargetInstance resource in the specified project
157860// and zone using the data included in the request. (== suppress_warning
157861// http-rest-shadowed ==)
157862// For details, see https://cloud.google.com/compute/docs/reference/latest/targetInstances/insert
157863func (r *TargetInstancesService) Insert(project string, zone string, targetinstance *TargetInstance) *TargetInstancesInsertCall {
157864	c := &TargetInstancesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
157865	c.project = project
157866	c.zone = zone
157867	c.targetinstance = targetinstance
157868	return c
157869}
157870
157871// RequestId sets the optional parameter "requestId": An optional
157872// request ID to identify requests. Specify a unique request ID so that
157873// if you must retry your request, the server will know to ignore the
157874// request if it has already been completed.
157875//
157876// For example, consider a situation where you make an initial request
157877// and the request times out. If you make the request again with the
157878// same request ID, the server can check if original operation with the
157879// same request ID was received, and if so, will ignore the second
157880// request. This prevents clients from accidentally creating duplicate
157881// commitments.
157882//
157883// The request ID must be a valid UUID with the exception that zero UUID
157884// is not supported (00000000-0000-0000-0000-000000000000).
157885func (c *TargetInstancesInsertCall) RequestId(requestId string) *TargetInstancesInsertCall {
157886	c.urlParams_.Set("requestId", requestId)
157887	return c
157888}
157889
157890// Fields allows partial responses to be retrieved. See
157891// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
157892// for more information.
157893func (c *TargetInstancesInsertCall) Fields(s ...googleapi.Field) *TargetInstancesInsertCall {
157894	c.urlParams_.Set("fields", googleapi.CombineFields(s))
157895	return c
157896}
157897
157898// Context sets the context to be used in this call's Do method. Any
157899// pending HTTP request will be aborted if the provided context is
157900// canceled.
157901func (c *TargetInstancesInsertCall) Context(ctx context.Context) *TargetInstancesInsertCall {
157902	c.ctx_ = ctx
157903	return c
157904}
157905
157906// Header returns an http.Header that can be modified by the caller to
157907// add HTTP headers to the request.
157908func (c *TargetInstancesInsertCall) Header() http.Header {
157909	if c.header_ == nil {
157910		c.header_ = make(http.Header)
157911	}
157912	return c.header_
157913}
157914
157915func (c *TargetInstancesInsertCall) doRequest(alt string) (*http.Response, error) {
157916	reqHeaders := make(http.Header)
157917	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
157918	for k, v := range c.header_ {
157919		reqHeaders[k] = v
157920	}
157921	reqHeaders.Set("User-Agent", c.s.userAgent())
157922	var body io.Reader = nil
157923	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetinstance)
157924	if err != nil {
157925		return nil, err
157926	}
157927	reqHeaders.Set("Content-Type", "application/json")
157928	c.urlParams_.Set("alt", alt)
157929	c.urlParams_.Set("prettyPrint", "false")
157930	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/targetInstances")
157931	urls += "?" + c.urlParams_.Encode()
157932	req, err := http.NewRequest("POST", urls, body)
157933	if err != nil {
157934		return nil, err
157935	}
157936	req.Header = reqHeaders
157937	googleapi.Expand(req.URL, map[string]string{
157938		"project": c.project,
157939		"zone":    c.zone,
157940	})
157941	return gensupport.SendRequest(c.ctx_, c.s.client, req)
157942}
157943
157944// Do executes the "compute.targetInstances.insert" call.
157945// Exactly one of *Operation or error will be non-nil. Any non-2xx
157946// status code is an error. Response headers are in either
157947// *Operation.ServerResponse.Header or (if a response was returned at
157948// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
157949// to check whether the returned error was because
157950// http.StatusNotModified was returned.
157951func (c *TargetInstancesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
157952	gensupport.SetOptions(c.urlParams_, opts...)
157953	res, err := c.doRequest("json")
157954	if res != nil && res.StatusCode == http.StatusNotModified {
157955		if res.Body != nil {
157956			res.Body.Close()
157957		}
157958		return nil, &googleapi.Error{
157959			Code:   res.StatusCode,
157960			Header: res.Header,
157961		}
157962	}
157963	if err != nil {
157964		return nil, err
157965	}
157966	defer googleapi.CloseBody(res)
157967	if err := googleapi.CheckResponse(res); err != nil {
157968		return nil, err
157969	}
157970	ret := &Operation{
157971		ServerResponse: googleapi.ServerResponse{
157972			Header:         res.Header,
157973			HTTPStatusCode: res.StatusCode,
157974		},
157975	}
157976	target := &ret
157977	if err := gensupport.DecodeResponse(target, res); err != nil {
157978		return nil, err
157979	}
157980	return ret, nil
157981	// {
157982	//   "description": "Creates a TargetInstance resource in the specified project and zone using the data included in the request. (== suppress_warning http-rest-shadowed ==)",
157983	//   "httpMethod": "POST",
157984	//   "id": "compute.targetInstances.insert",
157985	//   "parameterOrder": [
157986	//     "project",
157987	//     "zone"
157988	//   ],
157989	//   "parameters": {
157990	//     "project": {
157991	//       "description": "Project ID for this request.",
157992	//       "location": "path",
157993	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
157994	//       "required": true,
157995	//       "type": "string"
157996	//     },
157997	//     "requestId": {
157998	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
157999	//       "location": "query",
158000	//       "type": "string"
158001	//     },
158002	//     "zone": {
158003	//       "description": "Name of the zone scoping this request.",
158004	//       "location": "path",
158005	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
158006	//       "required": true,
158007	//       "type": "string"
158008	//     }
158009	//   },
158010	//   "path": "{project}/zones/{zone}/targetInstances",
158011	//   "request": {
158012	//     "$ref": "TargetInstance"
158013	//   },
158014	//   "response": {
158015	//     "$ref": "Operation"
158016	//   },
158017	//   "scopes": [
158018	//     "https://www.googleapis.com/auth/cloud-platform",
158019	//     "https://www.googleapis.com/auth/compute"
158020	//   ]
158021	// }
158022
158023}
158024
158025// method id "compute.targetInstances.list":
158026
158027type TargetInstancesListCall struct {
158028	s            *Service
158029	project      string
158030	zone         string
158031	urlParams_   gensupport.URLParams
158032	ifNoneMatch_ string
158033	ctx_         context.Context
158034	header_      http.Header
158035}
158036
158037// List: Retrieves a list of TargetInstance resources available to the
158038// specified project and zone. (== suppress_warning http-rest-shadowed
158039// ==)
158040// For details, see https://cloud.google.com/compute/docs/reference/latest/targetInstances/list
158041func (r *TargetInstancesService) List(project string, zone string) *TargetInstancesListCall {
158042	c := &TargetInstancesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
158043	c.project = project
158044	c.zone = zone
158045	return c
158046}
158047
158048// Filter sets the optional parameter "filter": A filter expression that
158049// filters resources listed in the response. The expression must specify
158050// the field name, a comparison operator, and the value that you want to
158051// use for filtering. The value must be a string, a number, or a
158052// boolean. The comparison operator must be either =, !=, >, or <.
158053//
158054// For example, if you are filtering Compute Engine instances, you can
158055// exclude instances named example-instance by specifying name !=
158056// example-instance.
158057//
158058// You can also filter nested fields. For example, you could specify
158059// scheduling.automaticRestart = false to include instances only if they
158060// are not scheduled for automatic restarts. You can use filtering on
158061// nested fields to filter based on resource labels.
158062//
158063// To filter on multiple expressions, provide each separate expression
158064// within parentheses. For example, (scheduling.automaticRestart = true)
158065// (cpuPlatform = "Intel Skylake"). By default, each expression is an
158066// AND expression. However, you can include AND and OR expressions
158067// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
158068// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
158069// true).
158070func (c *TargetInstancesListCall) Filter(filter string) *TargetInstancesListCall {
158071	c.urlParams_.Set("filter", filter)
158072	return c
158073}
158074
158075// MaxResults sets the optional parameter "maxResults": The maximum
158076// number of results per page that should be returned. If the number of
158077// available results is larger than maxResults, Compute Engine returns a
158078// nextPageToken that can be used to get the next page of results in
158079// subsequent list requests. Acceptable values are 0 to 500, inclusive.
158080// (Default: 500)
158081func (c *TargetInstancesListCall) MaxResults(maxResults int64) *TargetInstancesListCall {
158082	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
158083	return c
158084}
158085
158086// OrderBy sets the optional parameter "orderBy": Sorts list results by
158087// a certain order. By default, results are returned in alphanumerical
158088// order based on the resource name.
158089//
158090// You can also sort results in descending order based on the creation
158091// timestamp using orderBy="creationTimestamp desc". This sorts results
158092// based on the creationTimestamp field in reverse chronological order
158093// (newest result first). Use this to sort resources like operations so
158094// that the newest operation is returned first.
158095//
158096// Currently, only sorting by name or creationTimestamp desc is
158097// supported.
158098func (c *TargetInstancesListCall) OrderBy(orderBy string) *TargetInstancesListCall {
158099	c.urlParams_.Set("orderBy", orderBy)
158100	return c
158101}
158102
158103// PageToken sets the optional parameter "pageToken": Specifies a page
158104// token to use. Set pageToken to the nextPageToken returned by a
158105// previous list request to get the next page of results.
158106func (c *TargetInstancesListCall) PageToken(pageToken string) *TargetInstancesListCall {
158107	c.urlParams_.Set("pageToken", pageToken)
158108	return c
158109}
158110
158111// Fields allows partial responses to be retrieved. See
158112// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
158113// for more information.
158114func (c *TargetInstancesListCall) Fields(s ...googleapi.Field) *TargetInstancesListCall {
158115	c.urlParams_.Set("fields", googleapi.CombineFields(s))
158116	return c
158117}
158118
158119// IfNoneMatch sets the optional parameter which makes the operation
158120// fail if the object's ETag matches the given value. This is useful for
158121// getting updates only after the object has changed since the last
158122// request. Use googleapi.IsNotModified to check whether the response
158123// error from Do is the result of In-None-Match.
158124func (c *TargetInstancesListCall) IfNoneMatch(entityTag string) *TargetInstancesListCall {
158125	c.ifNoneMatch_ = entityTag
158126	return c
158127}
158128
158129// Context sets the context to be used in this call's Do method. Any
158130// pending HTTP request will be aborted if the provided context is
158131// canceled.
158132func (c *TargetInstancesListCall) Context(ctx context.Context) *TargetInstancesListCall {
158133	c.ctx_ = ctx
158134	return c
158135}
158136
158137// Header returns an http.Header that can be modified by the caller to
158138// add HTTP headers to the request.
158139func (c *TargetInstancesListCall) Header() http.Header {
158140	if c.header_ == nil {
158141		c.header_ = make(http.Header)
158142	}
158143	return c.header_
158144}
158145
158146func (c *TargetInstancesListCall) doRequest(alt string) (*http.Response, error) {
158147	reqHeaders := make(http.Header)
158148	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
158149	for k, v := range c.header_ {
158150		reqHeaders[k] = v
158151	}
158152	reqHeaders.Set("User-Agent", c.s.userAgent())
158153	if c.ifNoneMatch_ != "" {
158154		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
158155	}
158156	var body io.Reader = nil
158157	c.urlParams_.Set("alt", alt)
158158	c.urlParams_.Set("prettyPrint", "false")
158159	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/targetInstances")
158160	urls += "?" + c.urlParams_.Encode()
158161	req, err := http.NewRequest("GET", urls, body)
158162	if err != nil {
158163		return nil, err
158164	}
158165	req.Header = reqHeaders
158166	googleapi.Expand(req.URL, map[string]string{
158167		"project": c.project,
158168		"zone":    c.zone,
158169	})
158170	return gensupport.SendRequest(c.ctx_, c.s.client, req)
158171}
158172
158173// Do executes the "compute.targetInstances.list" call.
158174// Exactly one of *TargetInstanceList or error will be non-nil. Any
158175// non-2xx status code is an error. Response headers are in either
158176// *TargetInstanceList.ServerResponse.Header or (if a response was
158177// returned at all) in error.(*googleapi.Error).Header. Use
158178// googleapi.IsNotModified to check whether the returned error was
158179// because http.StatusNotModified was returned.
158180func (c *TargetInstancesListCall) Do(opts ...googleapi.CallOption) (*TargetInstanceList, error) {
158181	gensupport.SetOptions(c.urlParams_, opts...)
158182	res, err := c.doRequest("json")
158183	if res != nil && res.StatusCode == http.StatusNotModified {
158184		if res.Body != nil {
158185			res.Body.Close()
158186		}
158187		return nil, &googleapi.Error{
158188			Code:   res.StatusCode,
158189			Header: res.Header,
158190		}
158191	}
158192	if err != nil {
158193		return nil, err
158194	}
158195	defer googleapi.CloseBody(res)
158196	if err := googleapi.CheckResponse(res); err != nil {
158197		return nil, err
158198	}
158199	ret := &TargetInstanceList{
158200		ServerResponse: googleapi.ServerResponse{
158201			Header:         res.Header,
158202			HTTPStatusCode: res.StatusCode,
158203		},
158204	}
158205	target := &ret
158206	if err := gensupport.DecodeResponse(target, res); err != nil {
158207		return nil, err
158208	}
158209	return ret, nil
158210	// {
158211	//   "description": "Retrieves a list of TargetInstance resources available to the specified project and zone. (== suppress_warning http-rest-shadowed ==)",
158212	//   "httpMethod": "GET",
158213	//   "id": "compute.targetInstances.list",
158214	//   "parameterOrder": [
158215	//     "project",
158216	//     "zone"
158217	//   ],
158218	//   "parameters": {
158219	//     "filter": {
158220	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
158221	//       "location": "query",
158222	//       "type": "string"
158223	//     },
158224	//     "maxResults": {
158225	//       "default": "500",
158226	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
158227	//       "format": "uint32",
158228	//       "location": "query",
158229	//       "minimum": "0",
158230	//       "type": "integer"
158231	//     },
158232	//     "orderBy": {
158233	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
158234	//       "location": "query",
158235	//       "type": "string"
158236	//     },
158237	//     "pageToken": {
158238	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
158239	//       "location": "query",
158240	//       "type": "string"
158241	//     },
158242	//     "project": {
158243	//       "description": "Project ID for this request.",
158244	//       "location": "path",
158245	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
158246	//       "required": true,
158247	//       "type": "string"
158248	//     },
158249	//     "zone": {
158250	//       "description": "Name of the zone scoping this request.",
158251	//       "location": "path",
158252	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
158253	//       "required": true,
158254	//       "type": "string"
158255	//     }
158256	//   },
158257	//   "path": "{project}/zones/{zone}/targetInstances",
158258	//   "response": {
158259	//     "$ref": "TargetInstanceList"
158260	//   },
158261	//   "scopes": [
158262	//     "https://www.googleapis.com/auth/cloud-platform",
158263	//     "https://www.googleapis.com/auth/compute",
158264	//     "https://www.googleapis.com/auth/compute.readonly"
158265	//   ]
158266	// }
158267
158268}
158269
158270// Pages invokes f for each page of results.
158271// A non-nil error returned from f will halt the iteration.
158272// The provided context supersedes any context provided to the Context method.
158273func (c *TargetInstancesListCall) Pages(ctx context.Context, f func(*TargetInstanceList) error) error {
158274	c.ctx_ = ctx
158275	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
158276	for {
158277		x, err := c.Do()
158278		if err != nil {
158279			return err
158280		}
158281		if err := f(x); err != nil {
158282			return err
158283		}
158284		if x.NextPageToken == "" {
158285			return nil
158286		}
158287		c.PageToken(x.NextPageToken)
158288	}
158289}
158290
158291// method id "compute.targetInstances.testIamPermissions":
158292
158293type TargetInstancesTestIamPermissionsCall struct {
158294	s                      *Service
158295	project                string
158296	zone                   string
158297	resource               string
158298	testpermissionsrequest *TestPermissionsRequest
158299	urlParams_             gensupport.URLParams
158300	ctx_                   context.Context
158301	header_                http.Header
158302}
158303
158304// TestIamPermissions: Returns permissions that a caller has on the
158305// specified resource. (== suppress_warning http-rest-shadowed ==)
158306func (r *TargetInstancesService) TestIamPermissions(project string, zone string, resource string, testpermissionsrequest *TestPermissionsRequest) *TargetInstancesTestIamPermissionsCall {
158307	c := &TargetInstancesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
158308	c.project = project
158309	c.zone = zone
158310	c.resource = resource
158311	c.testpermissionsrequest = testpermissionsrequest
158312	return c
158313}
158314
158315// Fields allows partial responses to be retrieved. See
158316// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
158317// for more information.
158318func (c *TargetInstancesTestIamPermissionsCall) Fields(s ...googleapi.Field) *TargetInstancesTestIamPermissionsCall {
158319	c.urlParams_.Set("fields", googleapi.CombineFields(s))
158320	return c
158321}
158322
158323// Context sets the context to be used in this call's Do method. Any
158324// pending HTTP request will be aborted if the provided context is
158325// canceled.
158326func (c *TargetInstancesTestIamPermissionsCall) Context(ctx context.Context) *TargetInstancesTestIamPermissionsCall {
158327	c.ctx_ = ctx
158328	return c
158329}
158330
158331// Header returns an http.Header that can be modified by the caller to
158332// add HTTP headers to the request.
158333func (c *TargetInstancesTestIamPermissionsCall) Header() http.Header {
158334	if c.header_ == nil {
158335		c.header_ = make(http.Header)
158336	}
158337	return c.header_
158338}
158339
158340func (c *TargetInstancesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
158341	reqHeaders := make(http.Header)
158342	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
158343	for k, v := range c.header_ {
158344		reqHeaders[k] = v
158345	}
158346	reqHeaders.Set("User-Agent", c.s.userAgent())
158347	var body io.Reader = nil
158348	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
158349	if err != nil {
158350		return nil, err
158351	}
158352	reqHeaders.Set("Content-Type", "application/json")
158353	c.urlParams_.Set("alt", alt)
158354	c.urlParams_.Set("prettyPrint", "false")
158355	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/targetInstances/{resource}/testIamPermissions")
158356	urls += "?" + c.urlParams_.Encode()
158357	req, err := http.NewRequest("POST", urls, body)
158358	if err != nil {
158359		return nil, err
158360	}
158361	req.Header = reqHeaders
158362	googleapi.Expand(req.URL, map[string]string{
158363		"project":  c.project,
158364		"zone":     c.zone,
158365		"resource": c.resource,
158366	})
158367	return gensupport.SendRequest(c.ctx_, c.s.client, req)
158368}
158369
158370// Do executes the "compute.targetInstances.testIamPermissions" call.
158371// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
158372// non-2xx status code is an error. Response headers are in either
158373// *TestPermissionsResponse.ServerResponse.Header or (if a response was
158374// returned at all) in error.(*googleapi.Error).Header. Use
158375// googleapi.IsNotModified to check whether the returned error was
158376// because http.StatusNotModified was returned.
158377func (c *TargetInstancesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
158378	gensupport.SetOptions(c.urlParams_, opts...)
158379	res, err := c.doRequest("json")
158380	if res != nil && res.StatusCode == http.StatusNotModified {
158381		if res.Body != nil {
158382			res.Body.Close()
158383		}
158384		return nil, &googleapi.Error{
158385			Code:   res.StatusCode,
158386			Header: res.Header,
158387		}
158388	}
158389	if err != nil {
158390		return nil, err
158391	}
158392	defer googleapi.CloseBody(res)
158393	if err := googleapi.CheckResponse(res); err != nil {
158394		return nil, err
158395	}
158396	ret := &TestPermissionsResponse{
158397		ServerResponse: googleapi.ServerResponse{
158398			Header:         res.Header,
158399			HTTPStatusCode: res.StatusCode,
158400		},
158401	}
158402	target := &ret
158403	if err := gensupport.DecodeResponse(target, res); err != nil {
158404		return nil, err
158405	}
158406	return ret, nil
158407	// {
158408	//   "description": "Returns permissions that a caller has on the specified resource. (== suppress_warning http-rest-shadowed ==)",
158409	//   "httpMethod": "POST",
158410	//   "id": "compute.targetInstances.testIamPermissions",
158411	//   "parameterOrder": [
158412	//     "project",
158413	//     "zone",
158414	//     "resource"
158415	//   ],
158416	//   "parameters": {
158417	//     "project": {
158418	//       "description": "Project ID for this request.",
158419	//       "location": "path",
158420	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
158421	//       "required": true,
158422	//       "type": "string"
158423	//     },
158424	//     "resource": {
158425	//       "description": "Name or id of the resource for this request.",
158426	//       "location": "path",
158427	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
158428	//       "required": true,
158429	//       "type": "string"
158430	//     },
158431	//     "zone": {
158432	//       "description": "The name of the zone for this request.",
158433	//       "location": "path",
158434	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
158435	//       "required": true,
158436	//       "type": "string"
158437	//     }
158438	//   },
158439	//   "path": "{project}/zones/{zone}/targetInstances/{resource}/testIamPermissions",
158440	//   "request": {
158441	//     "$ref": "TestPermissionsRequest"
158442	//   },
158443	//   "response": {
158444	//     "$ref": "TestPermissionsResponse"
158445	//   },
158446	//   "scopes": [
158447	//     "https://www.googleapis.com/auth/cloud-platform",
158448	//     "https://www.googleapis.com/auth/compute",
158449	//     "https://www.googleapis.com/auth/compute.readonly"
158450	//   ]
158451	// }
158452
158453}
158454
158455// method id "compute.targetPools.addHealthCheck":
158456
158457type TargetPoolsAddHealthCheckCall struct {
158458	s                                *Service
158459	project                          string
158460	region                           string
158461	targetPool                       string
158462	targetpoolsaddhealthcheckrequest *TargetPoolsAddHealthCheckRequest
158463	urlParams_                       gensupport.URLParams
158464	ctx_                             context.Context
158465	header_                          http.Header
158466}
158467
158468// AddHealthCheck: Adds health check URLs to a target pool. (==
158469// suppress_warning http-rest-shadowed ==)
158470// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/addHealthCheck
158471func (r *TargetPoolsService) AddHealthCheck(project string, region string, targetPool string, targetpoolsaddhealthcheckrequest *TargetPoolsAddHealthCheckRequest) *TargetPoolsAddHealthCheckCall {
158472	c := &TargetPoolsAddHealthCheckCall{s: r.s, urlParams_: make(gensupport.URLParams)}
158473	c.project = project
158474	c.region = region
158475	c.targetPool = targetPool
158476	c.targetpoolsaddhealthcheckrequest = targetpoolsaddhealthcheckrequest
158477	return c
158478}
158479
158480// RequestId sets the optional parameter "requestId": An optional
158481// request ID to identify requests. Specify a unique request ID so that
158482// if you must retry your request, the server will know to ignore the
158483// request if it has already been completed.
158484//
158485// For example, consider a situation where you make an initial request
158486// and the request times out. If you make the request again with the
158487// same request ID, the server can check if original operation with the
158488// same request ID was received, and if so, will ignore the second
158489// request. This prevents clients from accidentally creating duplicate
158490// commitments.
158491//
158492// The request ID must be a valid UUID with the exception that zero UUID
158493// is not supported (00000000-0000-0000-0000-000000000000).
158494func (c *TargetPoolsAddHealthCheckCall) RequestId(requestId string) *TargetPoolsAddHealthCheckCall {
158495	c.urlParams_.Set("requestId", requestId)
158496	return c
158497}
158498
158499// Fields allows partial responses to be retrieved. See
158500// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
158501// for more information.
158502func (c *TargetPoolsAddHealthCheckCall) Fields(s ...googleapi.Field) *TargetPoolsAddHealthCheckCall {
158503	c.urlParams_.Set("fields", googleapi.CombineFields(s))
158504	return c
158505}
158506
158507// Context sets the context to be used in this call's Do method. Any
158508// pending HTTP request will be aborted if the provided context is
158509// canceled.
158510func (c *TargetPoolsAddHealthCheckCall) Context(ctx context.Context) *TargetPoolsAddHealthCheckCall {
158511	c.ctx_ = ctx
158512	return c
158513}
158514
158515// Header returns an http.Header that can be modified by the caller to
158516// add HTTP headers to the request.
158517func (c *TargetPoolsAddHealthCheckCall) Header() http.Header {
158518	if c.header_ == nil {
158519		c.header_ = make(http.Header)
158520	}
158521	return c.header_
158522}
158523
158524func (c *TargetPoolsAddHealthCheckCall) doRequest(alt string) (*http.Response, error) {
158525	reqHeaders := make(http.Header)
158526	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
158527	for k, v := range c.header_ {
158528		reqHeaders[k] = v
158529	}
158530	reqHeaders.Set("User-Agent", c.s.userAgent())
158531	var body io.Reader = nil
158532	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetpoolsaddhealthcheckrequest)
158533	if err != nil {
158534		return nil, err
158535	}
158536	reqHeaders.Set("Content-Type", "application/json")
158537	c.urlParams_.Set("alt", alt)
158538	c.urlParams_.Set("prettyPrint", "false")
158539	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetPools/{targetPool}/addHealthCheck")
158540	urls += "?" + c.urlParams_.Encode()
158541	req, err := http.NewRequest("POST", urls, body)
158542	if err != nil {
158543		return nil, err
158544	}
158545	req.Header = reqHeaders
158546	googleapi.Expand(req.URL, map[string]string{
158547		"project":    c.project,
158548		"region":     c.region,
158549		"targetPool": c.targetPool,
158550	})
158551	return gensupport.SendRequest(c.ctx_, c.s.client, req)
158552}
158553
158554// Do executes the "compute.targetPools.addHealthCheck" call.
158555// Exactly one of *Operation or error will be non-nil. Any non-2xx
158556// status code is an error. Response headers are in either
158557// *Operation.ServerResponse.Header or (if a response was returned at
158558// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
158559// to check whether the returned error was because
158560// http.StatusNotModified was returned.
158561func (c *TargetPoolsAddHealthCheckCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
158562	gensupport.SetOptions(c.urlParams_, opts...)
158563	res, err := c.doRequest("json")
158564	if res != nil && res.StatusCode == http.StatusNotModified {
158565		if res.Body != nil {
158566			res.Body.Close()
158567		}
158568		return nil, &googleapi.Error{
158569			Code:   res.StatusCode,
158570			Header: res.Header,
158571		}
158572	}
158573	if err != nil {
158574		return nil, err
158575	}
158576	defer googleapi.CloseBody(res)
158577	if err := googleapi.CheckResponse(res); err != nil {
158578		return nil, err
158579	}
158580	ret := &Operation{
158581		ServerResponse: googleapi.ServerResponse{
158582			Header:         res.Header,
158583			HTTPStatusCode: res.StatusCode,
158584		},
158585	}
158586	target := &ret
158587	if err := gensupport.DecodeResponse(target, res); err != nil {
158588		return nil, err
158589	}
158590	return ret, nil
158591	// {
158592	//   "description": "Adds health check URLs to a target pool. (== suppress_warning http-rest-shadowed ==)",
158593	//   "httpMethod": "POST",
158594	//   "id": "compute.targetPools.addHealthCheck",
158595	//   "parameterOrder": [
158596	//     "project",
158597	//     "region",
158598	//     "targetPool"
158599	//   ],
158600	//   "parameters": {
158601	//     "project": {
158602	//       "description": "Project ID for this request.",
158603	//       "location": "path",
158604	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
158605	//       "required": true,
158606	//       "type": "string"
158607	//     },
158608	//     "region": {
158609	//       "description": "Name of the region scoping this request.",
158610	//       "location": "path",
158611	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
158612	//       "required": true,
158613	//       "type": "string"
158614	//     },
158615	//     "requestId": {
158616	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
158617	//       "location": "query",
158618	//       "type": "string"
158619	//     },
158620	//     "targetPool": {
158621	//       "description": "Name of the target pool to add a health check to.",
158622	//       "location": "path",
158623	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
158624	//       "required": true,
158625	//       "type": "string"
158626	//     }
158627	//   },
158628	//   "path": "{project}/regions/{region}/targetPools/{targetPool}/addHealthCheck",
158629	//   "request": {
158630	//     "$ref": "TargetPoolsAddHealthCheckRequest"
158631	//   },
158632	//   "response": {
158633	//     "$ref": "Operation"
158634	//   },
158635	//   "scopes": [
158636	//     "https://www.googleapis.com/auth/cloud-platform",
158637	//     "https://www.googleapis.com/auth/compute"
158638	//   ]
158639	// }
158640
158641}
158642
158643// method id "compute.targetPools.addInstance":
158644
158645type TargetPoolsAddInstanceCall struct {
158646	s                             *Service
158647	project                       string
158648	region                        string
158649	targetPool                    string
158650	targetpoolsaddinstancerequest *TargetPoolsAddInstanceRequest
158651	urlParams_                    gensupport.URLParams
158652	ctx_                          context.Context
158653	header_                       http.Header
158654}
158655
158656// AddInstance: Adds an instance to a target pool. (== suppress_warning
158657// http-rest-shadowed ==)
158658// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/addInstance
158659func (r *TargetPoolsService) AddInstance(project string, region string, targetPool string, targetpoolsaddinstancerequest *TargetPoolsAddInstanceRequest) *TargetPoolsAddInstanceCall {
158660	c := &TargetPoolsAddInstanceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
158661	c.project = project
158662	c.region = region
158663	c.targetPool = targetPool
158664	c.targetpoolsaddinstancerequest = targetpoolsaddinstancerequest
158665	return c
158666}
158667
158668// RequestId sets the optional parameter "requestId": An optional
158669// request ID to identify requests. Specify a unique request ID so that
158670// if you must retry your request, the server will know to ignore the
158671// request if it has already been completed.
158672//
158673// For example, consider a situation where you make an initial request
158674// and the request times out. If you make the request again with the
158675// same request ID, the server can check if original operation with the
158676// same request ID was received, and if so, will ignore the second
158677// request. This prevents clients from accidentally creating duplicate
158678// commitments.
158679//
158680// The request ID must be a valid UUID with the exception that zero UUID
158681// is not supported (00000000-0000-0000-0000-000000000000).
158682func (c *TargetPoolsAddInstanceCall) RequestId(requestId string) *TargetPoolsAddInstanceCall {
158683	c.urlParams_.Set("requestId", requestId)
158684	return c
158685}
158686
158687// Fields allows partial responses to be retrieved. See
158688// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
158689// for more information.
158690func (c *TargetPoolsAddInstanceCall) Fields(s ...googleapi.Field) *TargetPoolsAddInstanceCall {
158691	c.urlParams_.Set("fields", googleapi.CombineFields(s))
158692	return c
158693}
158694
158695// Context sets the context to be used in this call's Do method. Any
158696// pending HTTP request will be aborted if the provided context is
158697// canceled.
158698func (c *TargetPoolsAddInstanceCall) Context(ctx context.Context) *TargetPoolsAddInstanceCall {
158699	c.ctx_ = ctx
158700	return c
158701}
158702
158703// Header returns an http.Header that can be modified by the caller to
158704// add HTTP headers to the request.
158705func (c *TargetPoolsAddInstanceCall) Header() http.Header {
158706	if c.header_ == nil {
158707		c.header_ = make(http.Header)
158708	}
158709	return c.header_
158710}
158711
158712func (c *TargetPoolsAddInstanceCall) doRequest(alt string) (*http.Response, error) {
158713	reqHeaders := make(http.Header)
158714	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
158715	for k, v := range c.header_ {
158716		reqHeaders[k] = v
158717	}
158718	reqHeaders.Set("User-Agent", c.s.userAgent())
158719	var body io.Reader = nil
158720	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetpoolsaddinstancerequest)
158721	if err != nil {
158722		return nil, err
158723	}
158724	reqHeaders.Set("Content-Type", "application/json")
158725	c.urlParams_.Set("alt", alt)
158726	c.urlParams_.Set("prettyPrint", "false")
158727	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetPools/{targetPool}/addInstance")
158728	urls += "?" + c.urlParams_.Encode()
158729	req, err := http.NewRequest("POST", urls, body)
158730	if err != nil {
158731		return nil, err
158732	}
158733	req.Header = reqHeaders
158734	googleapi.Expand(req.URL, map[string]string{
158735		"project":    c.project,
158736		"region":     c.region,
158737		"targetPool": c.targetPool,
158738	})
158739	return gensupport.SendRequest(c.ctx_, c.s.client, req)
158740}
158741
158742// Do executes the "compute.targetPools.addInstance" call.
158743// Exactly one of *Operation or error will be non-nil. Any non-2xx
158744// status code is an error. Response headers are in either
158745// *Operation.ServerResponse.Header or (if a response was returned at
158746// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
158747// to check whether the returned error was because
158748// http.StatusNotModified was returned.
158749func (c *TargetPoolsAddInstanceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
158750	gensupport.SetOptions(c.urlParams_, opts...)
158751	res, err := c.doRequest("json")
158752	if res != nil && res.StatusCode == http.StatusNotModified {
158753		if res.Body != nil {
158754			res.Body.Close()
158755		}
158756		return nil, &googleapi.Error{
158757			Code:   res.StatusCode,
158758			Header: res.Header,
158759		}
158760	}
158761	if err != nil {
158762		return nil, err
158763	}
158764	defer googleapi.CloseBody(res)
158765	if err := googleapi.CheckResponse(res); err != nil {
158766		return nil, err
158767	}
158768	ret := &Operation{
158769		ServerResponse: googleapi.ServerResponse{
158770			Header:         res.Header,
158771			HTTPStatusCode: res.StatusCode,
158772		},
158773	}
158774	target := &ret
158775	if err := gensupport.DecodeResponse(target, res); err != nil {
158776		return nil, err
158777	}
158778	return ret, nil
158779	// {
158780	//   "description": "Adds an instance to a target pool. (== suppress_warning http-rest-shadowed ==)",
158781	//   "httpMethod": "POST",
158782	//   "id": "compute.targetPools.addInstance",
158783	//   "parameterOrder": [
158784	//     "project",
158785	//     "region",
158786	//     "targetPool"
158787	//   ],
158788	//   "parameters": {
158789	//     "project": {
158790	//       "description": "Project ID for this request.",
158791	//       "location": "path",
158792	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
158793	//       "required": true,
158794	//       "type": "string"
158795	//     },
158796	//     "region": {
158797	//       "description": "Name of the region scoping this request.",
158798	//       "location": "path",
158799	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
158800	//       "required": true,
158801	//       "type": "string"
158802	//     },
158803	//     "requestId": {
158804	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
158805	//       "location": "query",
158806	//       "type": "string"
158807	//     },
158808	//     "targetPool": {
158809	//       "description": "Name of the TargetPool resource to add instances to.",
158810	//       "location": "path",
158811	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
158812	//       "required": true,
158813	//       "type": "string"
158814	//     }
158815	//   },
158816	//   "path": "{project}/regions/{region}/targetPools/{targetPool}/addInstance",
158817	//   "request": {
158818	//     "$ref": "TargetPoolsAddInstanceRequest"
158819	//   },
158820	//   "response": {
158821	//     "$ref": "Operation"
158822	//   },
158823	//   "scopes": [
158824	//     "https://www.googleapis.com/auth/cloud-platform",
158825	//     "https://www.googleapis.com/auth/compute"
158826	//   ]
158827	// }
158828
158829}
158830
158831// method id "compute.targetPools.aggregatedList":
158832
158833type TargetPoolsAggregatedListCall struct {
158834	s            *Service
158835	project      string
158836	urlParams_   gensupport.URLParams
158837	ifNoneMatch_ string
158838	ctx_         context.Context
158839	header_      http.Header
158840}
158841
158842// AggregatedList: Retrieves an aggregated list of target pools. (==
158843// suppress_warning http-rest-shadowed ==)
158844// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/aggregatedList
158845func (r *TargetPoolsService) AggregatedList(project string) *TargetPoolsAggregatedListCall {
158846	c := &TargetPoolsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
158847	c.project = project
158848	return c
158849}
158850
158851// Filter sets the optional parameter "filter": A filter expression that
158852// filters resources listed in the response. The expression must specify
158853// the field name, a comparison operator, and the value that you want to
158854// use for filtering. The value must be a string, a number, or a
158855// boolean. The comparison operator must be either =, !=, >, or <.
158856//
158857// For example, if you are filtering Compute Engine instances, you can
158858// exclude instances named example-instance by specifying name !=
158859// example-instance.
158860//
158861// You can also filter nested fields. For example, you could specify
158862// scheduling.automaticRestart = false to include instances only if they
158863// are not scheduled for automatic restarts. You can use filtering on
158864// nested fields to filter based on resource labels.
158865//
158866// To filter on multiple expressions, provide each separate expression
158867// within parentheses. For example, (scheduling.automaticRestart = true)
158868// (cpuPlatform = "Intel Skylake"). By default, each expression is an
158869// AND expression. However, you can include AND and OR expressions
158870// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
158871// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
158872// true).
158873func (c *TargetPoolsAggregatedListCall) Filter(filter string) *TargetPoolsAggregatedListCall {
158874	c.urlParams_.Set("filter", filter)
158875	return c
158876}
158877
158878// MaxResults sets the optional parameter "maxResults": The maximum
158879// number of results per page that should be returned. If the number of
158880// available results is larger than maxResults, Compute Engine returns a
158881// nextPageToken that can be used to get the next page of results in
158882// subsequent list requests. Acceptable values are 0 to 500, inclusive.
158883// (Default: 500)
158884func (c *TargetPoolsAggregatedListCall) MaxResults(maxResults int64) *TargetPoolsAggregatedListCall {
158885	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
158886	return c
158887}
158888
158889// OrderBy sets the optional parameter "orderBy": Sorts list results by
158890// a certain order. By default, results are returned in alphanumerical
158891// order based on the resource name.
158892//
158893// You can also sort results in descending order based on the creation
158894// timestamp using orderBy="creationTimestamp desc". This sorts results
158895// based on the creationTimestamp field in reverse chronological order
158896// (newest result first). Use this to sort resources like operations so
158897// that the newest operation is returned first.
158898//
158899// Currently, only sorting by name or creationTimestamp desc is
158900// supported.
158901func (c *TargetPoolsAggregatedListCall) OrderBy(orderBy string) *TargetPoolsAggregatedListCall {
158902	c.urlParams_.Set("orderBy", orderBy)
158903	return c
158904}
158905
158906// PageToken sets the optional parameter "pageToken": Specifies a page
158907// token to use. Set pageToken to the nextPageToken returned by a
158908// previous list request to get the next page of results.
158909func (c *TargetPoolsAggregatedListCall) PageToken(pageToken string) *TargetPoolsAggregatedListCall {
158910	c.urlParams_.Set("pageToken", pageToken)
158911	return c
158912}
158913
158914// Fields allows partial responses to be retrieved. See
158915// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
158916// for more information.
158917func (c *TargetPoolsAggregatedListCall) Fields(s ...googleapi.Field) *TargetPoolsAggregatedListCall {
158918	c.urlParams_.Set("fields", googleapi.CombineFields(s))
158919	return c
158920}
158921
158922// IfNoneMatch sets the optional parameter which makes the operation
158923// fail if the object's ETag matches the given value. This is useful for
158924// getting updates only after the object has changed since the last
158925// request. Use googleapi.IsNotModified to check whether the response
158926// error from Do is the result of In-None-Match.
158927func (c *TargetPoolsAggregatedListCall) IfNoneMatch(entityTag string) *TargetPoolsAggregatedListCall {
158928	c.ifNoneMatch_ = entityTag
158929	return c
158930}
158931
158932// Context sets the context to be used in this call's Do method. Any
158933// pending HTTP request will be aborted if the provided context is
158934// canceled.
158935func (c *TargetPoolsAggregatedListCall) Context(ctx context.Context) *TargetPoolsAggregatedListCall {
158936	c.ctx_ = ctx
158937	return c
158938}
158939
158940// Header returns an http.Header that can be modified by the caller to
158941// add HTTP headers to the request.
158942func (c *TargetPoolsAggregatedListCall) Header() http.Header {
158943	if c.header_ == nil {
158944		c.header_ = make(http.Header)
158945	}
158946	return c.header_
158947}
158948
158949func (c *TargetPoolsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
158950	reqHeaders := make(http.Header)
158951	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
158952	for k, v := range c.header_ {
158953		reqHeaders[k] = v
158954	}
158955	reqHeaders.Set("User-Agent", c.s.userAgent())
158956	if c.ifNoneMatch_ != "" {
158957		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
158958	}
158959	var body io.Reader = nil
158960	c.urlParams_.Set("alt", alt)
158961	c.urlParams_.Set("prettyPrint", "false")
158962	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/targetPools")
158963	urls += "?" + c.urlParams_.Encode()
158964	req, err := http.NewRequest("GET", urls, body)
158965	if err != nil {
158966		return nil, err
158967	}
158968	req.Header = reqHeaders
158969	googleapi.Expand(req.URL, map[string]string{
158970		"project": c.project,
158971	})
158972	return gensupport.SendRequest(c.ctx_, c.s.client, req)
158973}
158974
158975// Do executes the "compute.targetPools.aggregatedList" call.
158976// Exactly one of *TargetPoolAggregatedList or error will be non-nil.
158977// Any non-2xx status code is an error. Response headers are in either
158978// *TargetPoolAggregatedList.ServerResponse.Header or (if a response was
158979// returned at all) in error.(*googleapi.Error).Header. Use
158980// googleapi.IsNotModified to check whether the returned error was
158981// because http.StatusNotModified was returned.
158982func (c *TargetPoolsAggregatedListCall) Do(opts ...googleapi.CallOption) (*TargetPoolAggregatedList, error) {
158983	gensupport.SetOptions(c.urlParams_, opts...)
158984	res, err := c.doRequest("json")
158985	if res != nil && res.StatusCode == http.StatusNotModified {
158986		if res.Body != nil {
158987			res.Body.Close()
158988		}
158989		return nil, &googleapi.Error{
158990			Code:   res.StatusCode,
158991			Header: res.Header,
158992		}
158993	}
158994	if err != nil {
158995		return nil, err
158996	}
158997	defer googleapi.CloseBody(res)
158998	if err := googleapi.CheckResponse(res); err != nil {
158999		return nil, err
159000	}
159001	ret := &TargetPoolAggregatedList{
159002		ServerResponse: googleapi.ServerResponse{
159003			Header:         res.Header,
159004			HTTPStatusCode: res.StatusCode,
159005		},
159006	}
159007	target := &ret
159008	if err := gensupport.DecodeResponse(target, res); err != nil {
159009		return nil, err
159010	}
159011	return ret, nil
159012	// {
159013	//   "description": "Retrieves an aggregated list of target pools. (== suppress_warning http-rest-shadowed ==)",
159014	//   "httpMethod": "GET",
159015	//   "id": "compute.targetPools.aggregatedList",
159016	//   "parameterOrder": [
159017	//     "project"
159018	//   ],
159019	//   "parameters": {
159020	//     "filter": {
159021	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
159022	//       "location": "query",
159023	//       "type": "string"
159024	//     },
159025	//     "maxResults": {
159026	//       "default": "500",
159027	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
159028	//       "format": "uint32",
159029	//       "location": "query",
159030	//       "minimum": "0",
159031	//       "type": "integer"
159032	//     },
159033	//     "orderBy": {
159034	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
159035	//       "location": "query",
159036	//       "type": "string"
159037	//     },
159038	//     "pageToken": {
159039	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
159040	//       "location": "query",
159041	//       "type": "string"
159042	//     },
159043	//     "project": {
159044	//       "description": "Project ID for this request.",
159045	//       "location": "path",
159046	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
159047	//       "required": true,
159048	//       "type": "string"
159049	//     }
159050	//   },
159051	//   "path": "{project}/aggregated/targetPools",
159052	//   "response": {
159053	//     "$ref": "TargetPoolAggregatedList"
159054	//   },
159055	//   "scopes": [
159056	//     "https://www.googleapis.com/auth/cloud-platform",
159057	//     "https://www.googleapis.com/auth/compute",
159058	//     "https://www.googleapis.com/auth/compute.readonly"
159059	//   ]
159060	// }
159061
159062}
159063
159064// Pages invokes f for each page of results.
159065// A non-nil error returned from f will halt the iteration.
159066// The provided context supersedes any context provided to the Context method.
159067func (c *TargetPoolsAggregatedListCall) Pages(ctx context.Context, f func(*TargetPoolAggregatedList) error) error {
159068	c.ctx_ = ctx
159069	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
159070	for {
159071		x, err := c.Do()
159072		if err != nil {
159073			return err
159074		}
159075		if err := f(x); err != nil {
159076			return err
159077		}
159078		if x.NextPageToken == "" {
159079			return nil
159080		}
159081		c.PageToken(x.NextPageToken)
159082	}
159083}
159084
159085// method id "compute.targetPools.delete":
159086
159087type TargetPoolsDeleteCall struct {
159088	s          *Service
159089	project    string
159090	region     string
159091	targetPool string
159092	urlParams_ gensupport.URLParams
159093	ctx_       context.Context
159094	header_    http.Header
159095}
159096
159097// Delete: Deletes the specified target pool. (== suppress_warning
159098// http-rest-shadowed ==)
159099// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/delete
159100func (r *TargetPoolsService) Delete(project string, region string, targetPool string) *TargetPoolsDeleteCall {
159101	c := &TargetPoolsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
159102	c.project = project
159103	c.region = region
159104	c.targetPool = targetPool
159105	return c
159106}
159107
159108// RequestId sets the optional parameter "requestId": An optional
159109// request ID to identify requests. Specify a unique request ID so that
159110// if you must retry your request, the server will know to ignore the
159111// request if it has already been completed.
159112//
159113// For example, consider a situation where you make an initial request
159114// and the request times out. If you make the request again with the
159115// same request ID, the server can check if original operation with the
159116// same request ID was received, and if so, will ignore the second
159117// request. This prevents clients from accidentally creating duplicate
159118// commitments.
159119//
159120// The request ID must be a valid UUID with the exception that zero UUID
159121// is not supported (00000000-0000-0000-0000-000000000000).
159122func (c *TargetPoolsDeleteCall) RequestId(requestId string) *TargetPoolsDeleteCall {
159123	c.urlParams_.Set("requestId", requestId)
159124	return c
159125}
159126
159127// Fields allows partial responses to be retrieved. See
159128// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
159129// for more information.
159130func (c *TargetPoolsDeleteCall) Fields(s ...googleapi.Field) *TargetPoolsDeleteCall {
159131	c.urlParams_.Set("fields", googleapi.CombineFields(s))
159132	return c
159133}
159134
159135// Context sets the context to be used in this call's Do method. Any
159136// pending HTTP request will be aborted if the provided context is
159137// canceled.
159138func (c *TargetPoolsDeleteCall) Context(ctx context.Context) *TargetPoolsDeleteCall {
159139	c.ctx_ = ctx
159140	return c
159141}
159142
159143// Header returns an http.Header that can be modified by the caller to
159144// add HTTP headers to the request.
159145func (c *TargetPoolsDeleteCall) Header() http.Header {
159146	if c.header_ == nil {
159147		c.header_ = make(http.Header)
159148	}
159149	return c.header_
159150}
159151
159152func (c *TargetPoolsDeleteCall) doRequest(alt string) (*http.Response, error) {
159153	reqHeaders := make(http.Header)
159154	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
159155	for k, v := range c.header_ {
159156		reqHeaders[k] = v
159157	}
159158	reqHeaders.Set("User-Agent", c.s.userAgent())
159159	var body io.Reader = nil
159160	c.urlParams_.Set("alt", alt)
159161	c.urlParams_.Set("prettyPrint", "false")
159162	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetPools/{targetPool}")
159163	urls += "?" + c.urlParams_.Encode()
159164	req, err := http.NewRequest("DELETE", urls, body)
159165	if err != nil {
159166		return nil, err
159167	}
159168	req.Header = reqHeaders
159169	googleapi.Expand(req.URL, map[string]string{
159170		"project":    c.project,
159171		"region":     c.region,
159172		"targetPool": c.targetPool,
159173	})
159174	return gensupport.SendRequest(c.ctx_, c.s.client, req)
159175}
159176
159177// Do executes the "compute.targetPools.delete" call.
159178// Exactly one of *Operation or error will be non-nil. Any non-2xx
159179// status code is an error. Response headers are in either
159180// *Operation.ServerResponse.Header or (if a response was returned at
159181// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
159182// to check whether the returned error was because
159183// http.StatusNotModified was returned.
159184func (c *TargetPoolsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
159185	gensupport.SetOptions(c.urlParams_, opts...)
159186	res, err := c.doRequest("json")
159187	if res != nil && res.StatusCode == http.StatusNotModified {
159188		if res.Body != nil {
159189			res.Body.Close()
159190		}
159191		return nil, &googleapi.Error{
159192			Code:   res.StatusCode,
159193			Header: res.Header,
159194		}
159195	}
159196	if err != nil {
159197		return nil, err
159198	}
159199	defer googleapi.CloseBody(res)
159200	if err := googleapi.CheckResponse(res); err != nil {
159201		return nil, err
159202	}
159203	ret := &Operation{
159204		ServerResponse: googleapi.ServerResponse{
159205			Header:         res.Header,
159206			HTTPStatusCode: res.StatusCode,
159207		},
159208	}
159209	target := &ret
159210	if err := gensupport.DecodeResponse(target, res); err != nil {
159211		return nil, err
159212	}
159213	return ret, nil
159214	// {
159215	//   "description": "Deletes the specified target pool. (== suppress_warning http-rest-shadowed ==)",
159216	//   "httpMethod": "DELETE",
159217	//   "id": "compute.targetPools.delete",
159218	//   "parameterOrder": [
159219	//     "project",
159220	//     "region",
159221	//     "targetPool"
159222	//   ],
159223	//   "parameters": {
159224	//     "project": {
159225	//       "description": "Project ID for this request.",
159226	//       "location": "path",
159227	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
159228	//       "required": true,
159229	//       "type": "string"
159230	//     },
159231	//     "region": {
159232	//       "description": "Name of the region scoping this request.",
159233	//       "location": "path",
159234	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
159235	//       "required": true,
159236	//       "type": "string"
159237	//     },
159238	//     "requestId": {
159239	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
159240	//       "location": "query",
159241	//       "type": "string"
159242	//     },
159243	//     "targetPool": {
159244	//       "description": "Name of the TargetPool resource to delete.",
159245	//       "location": "path",
159246	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
159247	//       "required": true,
159248	//       "type": "string"
159249	//     }
159250	//   },
159251	//   "path": "{project}/regions/{region}/targetPools/{targetPool}",
159252	//   "response": {
159253	//     "$ref": "Operation"
159254	//   },
159255	//   "scopes": [
159256	//     "https://www.googleapis.com/auth/cloud-platform",
159257	//     "https://www.googleapis.com/auth/compute"
159258	//   ]
159259	// }
159260
159261}
159262
159263// method id "compute.targetPools.get":
159264
159265type TargetPoolsGetCall struct {
159266	s            *Service
159267	project      string
159268	region       string
159269	targetPool   string
159270	urlParams_   gensupport.URLParams
159271	ifNoneMatch_ string
159272	ctx_         context.Context
159273	header_      http.Header
159274}
159275
159276// Get: Returns the specified target pool. Gets a list of available
159277// target pools by making a list() request. (== suppress_warning
159278// http-rest-shadowed ==)
159279// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/get
159280func (r *TargetPoolsService) Get(project string, region string, targetPool string) *TargetPoolsGetCall {
159281	c := &TargetPoolsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
159282	c.project = project
159283	c.region = region
159284	c.targetPool = targetPool
159285	return c
159286}
159287
159288// Fields allows partial responses to be retrieved. See
159289// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
159290// for more information.
159291func (c *TargetPoolsGetCall) Fields(s ...googleapi.Field) *TargetPoolsGetCall {
159292	c.urlParams_.Set("fields", googleapi.CombineFields(s))
159293	return c
159294}
159295
159296// IfNoneMatch sets the optional parameter which makes the operation
159297// fail if the object's ETag matches the given value. This is useful for
159298// getting updates only after the object has changed since the last
159299// request. Use googleapi.IsNotModified to check whether the response
159300// error from Do is the result of In-None-Match.
159301func (c *TargetPoolsGetCall) IfNoneMatch(entityTag string) *TargetPoolsGetCall {
159302	c.ifNoneMatch_ = entityTag
159303	return c
159304}
159305
159306// Context sets the context to be used in this call's Do method. Any
159307// pending HTTP request will be aborted if the provided context is
159308// canceled.
159309func (c *TargetPoolsGetCall) Context(ctx context.Context) *TargetPoolsGetCall {
159310	c.ctx_ = ctx
159311	return c
159312}
159313
159314// Header returns an http.Header that can be modified by the caller to
159315// add HTTP headers to the request.
159316func (c *TargetPoolsGetCall) Header() http.Header {
159317	if c.header_ == nil {
159318		c.header_ = make(http.Header)
159319	}
159320	return c.header_
159321}
159322
159323func (c *TargetPoolsGetCall) doRequest(alt string) (*http.Response, error) {
159324	reqHeaders := make(http.Header)
159325	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
159326	for k, v := range c.header_ {
159327		reqHeaders[k] = v
159328	}
159329	reqHeaders.Set("User-Agent", c.s.userAgent())
159330	if c.ifNoneMatch_ != "" {
159331		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
159332	}
159333	var body io.Reader = nil
159334	c.urlParams_.Set("alt", alt)
159335	c.urlParams_.Set("prettyPrint", "false")
159336	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetPools/{targetPool}")
159337	urls += "?" + c.urlParams_.Encode()
159338	req, err := http.NewRequest("GET", urls, body)
159339	if err != nil {
159340		return nil, err
159341	}
159342	req.Header = reqHeaders
159343	googleapi.Expand(req.URL, map[string]string{
159344		"project":    c.project,
159345		"region":     c.region,
159346		"targetPool": c.targetPool,
159347	})
159348	return gensupport.SendRequest(c.ctx_, c.s.client, req)
159349}
159350
159351// Do executes the "compute.targetPools.get" call.
159352// Exactly one of *TargetPool or error will be non-nil. Any non-2xx
159353// status code is an error. Response headers are in either
159354// *TargetPool.ServerResponse.Header or (if a response was returned at
159355// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
159356// to check whether the returned error was because
159357// http.StatusNotModified was returned.
159358func (c *TargetPoolsGetCall) Do(opts ...googleapi.CallOption) (*TargetPool, error) {
159359	gensupport.SetOptions(c.urlParams_, opts...)
159360	res, err := c.doRequest("json")
159361	if res != nil && res.StatusCode == http.StatusNotModified {
159362		if res.Body != nil {
159363			res.Body.Close()
159364		}
159365		return nil, &googleapi.Error{
159366			Code:   res.StatusCode,
159367			Header: res.Header,
159368		}
159369	}
159370	if err != nil {
159371		return nil, err
159372	}
159373	defer googleapi.CloseBody(res)
159374	if err := googleapi.CheckResponse(res); err != nil {
159375		return nil, err
159376	}
159377	ret := &TargetPool{
159378		ServerResponse: googleapi.ServerResponse{
159379			Header:         res.Header,
159380			HTTPStatusCode: res.StatusCode,
159381		},
159382	}
159383	target := &ret
159384	if err := gensupport.DecodeResponse(target, res); err != nil {
159385		return nil, err
159386	}
159387	return ret, nil
159388	// {
159389	//   "description": "Returns the specified target pool. Gets a list of available target pools by making a list() request. (== suppress_warning http-rest-shadowed ==)",
159390	//   "httpMethod": "GET",
159391	//   "id": "compute.targetPools.get",
159392	//   "parameterOrder": [
159393	//     "project",
159394	//     "region",
159395	//     "targetPool"
159396	//   ],
159397	//   "parameters": {
159398	//     "project": {
159399	//       "description": "Project ID for this request.",
159400	//       "location": "path",
159401	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
159402	//       "required": true,
159403	//       "type": "string"
159404	//     },
159405	//     "region": {
159406	//       "description": "Name of the region scoping this request.",
159407	//       "location": "path",
159408	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
159409	//       "required": true,
159410	//       "type": "string"
159411	//     },
159412	//     "targetPool": {
159413	//       "description": "Name of the TargetPool resource to return.",
159414	//       "location": "path",
159415	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
159416	//       "required": true,
159417	//       "type": "string"
159418	//     }
159419	//   },
159420	//   "path": "{project}/regions/{region}/targetPools/{targetPool}",
159421	//   "response": {
159422	//     "$ref": "TargetPool"
159423	//   },
159424	//   "scopes": [
159425	//     "https://www.googleapis.com/auth/cloud-platform",
159426	//     "https://www.googleapis.com/auth/compute",
159427	//     "https://www.googleapis.com/auth/compute.readonly"
159428	//   ]
159429	// }
159430
159431}
159432
159433// method id "compute.targetPools.getHealth":
159434
159435type TargetPoolsGetHealthCall struct {
159436	s                 *Service
159437	project           string
159438	region            string
159439	targetPool        string
159440	instancereference *InstanceReference
159441	urlParams_        gensupport.URLParams
159442	ctx_              context.Context
159443	header_           http.Header
159444}
159445
159446// GetHealth: Gets the most recent health check results for each IP for
159447// the instance that is referenced by the given target pool. (==
159448// suppress_warning http-rest-shadowed ==)
159449// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/getHealth
159450func (r *TargetPoolsService) GetHealth(project string, region string, targetPool string, instancereference *InstanceReference) *TargetPoolsGetHealthCall {
159451	c := &TargetPoolsGetHealthCall{s: r.s, urlParams_: make(gensupport.URLParams)}
159452	c.project = project
159453	c.region = region
159454	c.targetPool = targetPool
159455	c.instancereference = instancereference
159456	return c
159457}
159458
159459// Fields allows partial responses to be retrieved. See
159460// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
159461// for more information.
159462func (c *TargetPoolsGetHealthCall) Fields(s ...googleapi.Field) *TargetPoolsGetHealthCall {
159463	c.urlParams_.Set("fields", googleapi.CombineFields(s))
159464	return c
159465}
159466
159467// Context sets the context to be used in this call's Do method. Any
159468// pending HTTP request will be aborted if the provided context is
159469// canceled.
159470func (c *TargetPoolsGetHealthCall) Context(ctx context.Context) *TargetPoolsGetHealthCall {
159471	c.ctx_ = ctx
159472	return c
159473}
159474
159475// Header returns an http.Header that can be modified by the caller to
159476// add HTTP headers to the request.
159477func (c *TargetPoolsGetHealthCall) Header() http.Header {
159478	if c.header_ == nil {
159479		c.header_ = make(http.Header)
159480	}
159481	return c.header_
159482}
159483
159484func (c *TargetPoolsGetHealthCall) doRequest(alt string) (*http.Response, error) {
159485	reqHeaders := make(http.Header)
159486	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
159487	for k, v := range c.header_ {
159488		reqHeaders[k] = v
159489	}
159490	reqHeaders.Set("User-Agent", c.s.userAgent())
159491	var body io.Reader = nil
159492	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancereference)
159493	if err != nil {
159494		return nil, err
159495	}
159496	reqHeaders.Set("Content-Type", "application/json")
159497	c.urlParams_.Set("alt", alt)
159498	c.urlParams_.Set("prettyPrint", "false")
159499	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetPools/{targetPool}/getHealth")
159500	urls += "?" + c.urlParams_.Encode()
159501	req, err := http.NewRequest("POST", urls, body)
159502	if err != nil {
159503		return nil, err
159504	}
159505	req.Header = reqHeaders
159506	googleapi.Expand(req.URL, map[string]string{
159507		"project":    c.project,
159508		"region":     c.region,
159509		"targetPool": c.targetPool,
159510	})
159511	return gensupport.SendRequest(c.ctx_, c.s.client, req)
159512}
159513
159514// Do executes the "compute.targetPools.getHealth" call.
159515// Exactly one of *TargetPoolInstanceHealth or error will be non-nil.
159516// Any non-2xx status code is an error. Response headers are in either
159517// *TargetPoolInstanceHealth.ServerResponse.Header or (if a response was
159518// returned at all) in error.(*googleapi.Error).Header. Use
159519// googleapi.IsNotModified to check whether the returned error was
159520// because http.StatusNotModified was returned.
159521func (c *TargetPoolsGetHealthCall) Do(opts ...googleapi.CallOption) (*TargetPoolInstanceHealth, error) {
159522	gensupport.SetOptions(c.urlParams_, opts...)
159523	res, err := c.doRequest("json")
159524	if res != nil && res.StatusCode == http.StatusNotModified {
159525		if res.Body != nil {
159526			res.Body.Close()
159527		}
159528		return nil, &googleapi.Error{
159529			Code:   res.StatusCode,
159530			Header: res.Header,
159531		}
159532	}
159533	if err != nil {
159534		return nil, err
159535	}
159536	defer googleapi.CloseBody(res)
159537	if err := googleapi.CheckResponse(res); err != nil {
159538		return nil, err
159539	}
159540	ret := &TargetPoolInstanceHealth{
159541		ServerResponse: googleapi.ServerResponse{
159542			Header:         res.Header,
159543			HTTPStatusCode: res.StatusCode,
159544		},
159545	}
159546	target := &ret
159547	if err := gensupport.DecodeResponse(target, res); err != nil {
159548		return nil, err
159549	}
159550	return ret, nil
159551	// {
159552	//   "description": "Gets the most recent health check results for each IP for the instance that is referenced by the given target pool. (== suppress_warning http-rest-shadowed ==)",
159553	//   "httpMethod": "POST",
159554	//   "id": "compute.targetPools.getHealth",
159555	//   "parameterOrder": [
159556	//     "project",
159557	//     "region",
159558	//     "targetPool"
159559	//   ],
159560	//   "parameters": {
159561	//     "project": {
159562	//       "description": "Project ID for this request.",
159563	//       "location": "path",
159564	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
159565	//       "required": true,
159566	//       "type": "string"
159567	//     },
159568	//     "region": {
159569	//       "description": "Name of the region scoping this request.",
159570	//       "location": "path",
159571	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
159572	//       "required": true,
159573	//       "type": "string"
159574	//     },
159575	//     "targetPool": {
159576	//       "description": "Name of the TargetPool resource to which the queried instance belongs.",
159577	//       "location": "path",
159578	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
159579	//       "required": true,
159580	//       "type": "string"
159581	//     }
159582	//   },
159583	//   "path": "{project}/regions/{region}/targetPools/{targetPool}/getHealth",
159584	//   "request": {
159585	//     "$ref": "InstanceReference"
159586	//   },
159587	//   "response": {
159588	//     "$ref": "TargetPoolInstanceHealth"
159589	//   },
159590	//   "scopes": [
159591	//     "https://www.googleapis.com/auth/cloud-platform",
159592	//     "https://www.googleapis.com/auth/compute",
159593	//     "https://www.googleapis.com/auth/compute.readonly"
159594	//   ]
159595	// }
159596
159597}
159598
159599// method id "compute.targetPools.insert":
159600
159601type TargetPoolsInsertCall struct {
159602	s          *Service
159603	project    string
159604	region     string
159605	targetpool *TargetPool
159606	urlParams_ gensupport.URLParams
159607	ctx_       context.Context
159608	header_    http.Header
159609}
159610
159611// Insert: Creates a target pool in the specified project and region
159612// using the data included in the request. (== suppress_warning
159613// http-rest-shadowed ==)
159614// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/insert
159615func (r *TargetPoolsService) Insert(project string, region string, targetpool *TargetPool) *TargetPoolsInsertCall {
159616	c := &TargetPoolsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
159617	c.project = project
159618	c.region = region
159619	c.targetpool = targetpool
159620	return c
159621}
159622
159623// RequestId sets the optional parameter "requestId": An optional
159624// request ID to identify requests. Specify a unique request ID so that
159625// if you must retry your request, the server will know to ignore the
159626// request if it has already been completed.
159627//
159628// For example, consider a situation where you make an initial request
159629// and the request times out. If you make the request again with the
159630// same request ID, the server can check if original operation with the
159631// same request ID was received, and if so, will ignore the second
159632// request. This prevents clients from accidentally creating duplicate
159633// commitments.
159634//
159635// The request ID must be a valid UUID with the exception that zero UUID
159636// is not supported (00000000-0000-0000-0000-000000000000).
159637func (c *TargetPoolsInsertCall) RequestId(requestId string) *TargetPoolsInsertCall {
159638	c.urlParams_.Set("requestId", requestId)
159639	return c
159640}
159641
159642// Fields allows partial responses to be retrieved. See
159643// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
159644// for more information.
159645func (c *TargetPoolsInsertCall) Fields(s ...googleapi.Field) *TargetPoolsInsertCall {
159646	c.urlParams_.Set("fields", googleapi.CombineFields(s))
159647	return c
159648}
159649
159650// Context sets the context to be used in this call's Do method. Any
159651// pending HTTP request will be aborted if the provided context is
159652// canceled.
159653func (c *TargetPoolsInsertCall) Context(ctx context.Context) *TargetPoolsInsertCall {
159654	c.ctx_ = ctx
159655	return c
159656}
159657
159658// Header returns an http.Header that can be modified by the caller to
159659// add HTTP headers to the request.
159660func (c *TargetPoolsInsertCall) Header() http.Header {
159661	if c.header_ == nil {
159662		c.header_ = make(http.Header)
159663	}
159664	return c.header_
159665}
159666
159667func (c *TargetPoolsInsertCall) doRequest(alt string) (*http.Response, error) {
159668	reqHeaders := make(http.Header)
159669	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
159670	for k, v := range c.header_ {
159671		reqHeaders[k] = v
159672	}
159673	reqHeaders.Set("User-Agent", c.s.userAgent())
159674	var body io.Reader = nil
159675	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetpool)
159676	if err != nil {
159677		return nil, err
159678	}
159679	reqHeaders.Set("Content-Type", "application/json")
159680	c.urlParams_.Set("alt", alt)
159681	c.urlParams_.Set("prettyPrint", "false")
159682	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetPools")
159683	urls += "?" + c.urlParams_.Encode()
159684	req, err := http.NewRequest("POST", urls, body)
159685	if err != nil {
159686		return nil, err
159687	}
159688	req.Header = reqHeaders
159689	googleapi.Expand(req.URL, map[string]string{
159690		"project": c.project,
159691		"region":  c.region,
159692	})
159693	return gensupport.SendRequest(c.ctx_, c.s.client, req)
159694}
159695
159696// Do executes the "compute.targetPools.insert" call.
159697// Exactly one of *Operation or error will be non-nil. Any non-2xx
159698// status code is an error. Response headers are in either
159699// *Operation.ServerResponse.Header or (if a response was returned at
159700// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
159701// to check whether the returned error was because
159702// http.StatusNotModified was returned.
159703func (c *TargetPoolsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
159704	gensupport.SetOptions(c.urlParams_, opts...)
159705	res, err := c.doRequest("json")
159706	if res != nil && res.StatusCode == http.StatusNotModified {
159707		if res.Body != nil {
159708			res.Body.Close()
159709		}
159710		return nil, &googleapi.Error{
159711			Code:   res.StatusCode,
159712			Header: res.Header,
159713		}
159714	}
159715	if err != nil {
159716		return nil, err
159717	}
159718	defer googleapi.CloseBody(res)
159719	if err := googleapi.CheckResponse(res); err != nil {
159720		return nil, err
159721	}
159722	ret := &Operation{
159723		ServerResponse: googleapi.ServerResponse{
159724			Header:         res.Header,
159725			HTTPStatusCode: res.StatusCode,
159726		},
159727	}
159728	target := &ret
159729	if err := gensupport.DecodeResponse(target, res); err != nil {
159730		return nil, err
159731	}
159732	return ret, nil
159733	// {
159734	//   "description": "Creates a target pool in the specified project and region using the data included in the request. (== suppress_warning http-rest-shadowed ==)",
159735	//   "httpMethod": "POST",
159736	//   "id": "compute.targetPools.insert",
159737	//   "parameterOrder": [
159738	//     "project",
159739	//     "region"
159740	//   ],
159741	//   "parameters": {
159742	//     "project": {
159743	//       "description": "Project ID for this request.",
159744	//       "location": "path",
159745	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
159746	//       "required": true,
159747	//       "type": "string"
159748	//     },
159749	//     "region": {
159750	//       "description": "Name of the region scoping this request.",
159751	//       "location": "path",
159752	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
159753	//       "required": true,
159754	//       "type": "string"
159755	//     },
159756	//     "requestId": {
159757	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
159758	//       "location": "query",
159759	//       "type": "string"
159760	//     }
159761	//   },
159762	//   "path": "{project}/regions/{region}/targetPools",
159763	//   "request": {
159764	//     "$ref": "TargetPool"
159765	//   },
159766	//   "response": {
159767	//     "$ref": "Operation"
159768	//   },
159769	//   "scopes": [
159770	//     "https://www.googleapis.com/auth/cloud-platform",
159771	//     "https://www.googleapis.com/auth/compute"
159772	//   ]
159773	// }
159774
159775}
159776
159777// method id "compute.targetPools.list":
159778
159779type TargetPoolsListCall struct {
159780	s            *Service
159781	project      string
159782	region       string
159783	urlParams_   gensupport.URLParams
159784	ifNoneMatch_ string
159785	ctx_         context.Context
159786	header_      http.Header
159787}
159788
159789// List: Retrieves a list of target pools available to the specified
159790// project and region. (== suppress_warning http-rest-shadowed ==)
159791// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/list
159792func (r *TargetPoolsService) List(project string, region string) *TargetPoolsListCall {
159793	c := &TargetPoolsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
159794	c.project = project
159795	c.region = region
159796	return c
159797}
159798
159799// Filter sets the optional parameter "filter": A filter expression that
159800// filters resources listed in the response. The expression must specify
159801// the field name, a comparison operator, and the value that you want to
159802// use for filtering. The value must be a string, a number, or a
159803// boolean. The comparison operator must be either =, !=, >, or <.
159804//
159805// For example, if you are filtering Compute Engine instances, you can
159806// exclude instances named example-instance by specifying name !=
159807// example-instance.
159808//
159809// You can also filter nested fields. For example, you could specify
159810// scheduling.automaticRestart = false to include instances only if they
159811// are not scheduled for automatic restarts. You can use filtering on
159812// nested fields to filter based on resource labels.
159813//
159814// To filter on multiple expressions, provide each separate expression
159815// within parentheses. For example, (scheduling.automaticRestart = true)
159816// (cpuPlatform = "Intel Skylake"). By default, each expression is an
159817// AND expression. However, you can include AND and OR expressions
159818// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
159819// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
159820// true).
159821func (c *TargetPoolsListCall) Filter(filter string) *TargetPoolsListCall {
159822	c.urlParams_.Set("filter", filter)
159823	return c
159824}
159825
159826// MaxResults sets the optional parameter "maxResults": The maximum
159827// number of results per page that should be returned. If the number of
159828// available results is larger than maxResults, Compute Engine returns a
159829// nextPageToken that can be used to get the next page of results in
159830// subsequent list requests. Acceptable values are 0 to 500, inclusive.
159831// (Default: 500)
159832func (c *TargetPoolsListCall) MaxResults(maxResults int64) *TargetPoolsListCall {
159833	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
159834	return c
159835}
159836
159837// OrderBy sets the optional parameter "orderBy": Sorts list results by
159838// a certain order. By default, results are returned in alphanumerical
159839// order based on the resource name.
159840//
159841// You can also sort results in descending order based on the creation
159842// timestamp using orderBy="creationTimestamp desc". This sorts results
159843// based on the creationTimestamp field in reverse chronological order
159844// (newest result first). Use this to sort resources like operations so
159845// that the newest operation is returned first.
159846//
159847// Currently, only sorting by name or creationTimestamp desc is
159848// supported.
159849func (c *TargetPoolsListCall) OrderBy(orderBy string) *TargetPoolsListCall {
159850	c.urlParams_.Set("orderBy", orderBy)
159851	return c
159852}
159853
159854// PageToken sets the optional parameter "pageToken": Specifies a page
159855// token to use. Set pageToken to the nextPageToken returned by a
159856// previous list request to get the next page of results.
159857func (c *TargetPoolsListCall) PageToken(pageToken string) *TargetPoolsListCall {
159858	c.urlParams_.Set("pageToken", pageToken)
159859	return c
159860}
159861
159862// Fields allows partial responses to be retrieved. See
159863// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
159864// for more information.
159865func (c *TargetPoolsListCall) Fields(s ...googleapi.Field) *TargetPoolsListCall {
159866	c.urlParams_.Set("fields", googleapi.CombineFields(s))
159867	return c
159868}
159869
159870// IfNoneMatch sets the optional parameter which makes the operation
159871// fail if the object's ETag matches the given value. This is useful for
159872// getting updates only after the object has changed since the last
159873// request. Use googleapi.IsNotModified to check whether the response
159874// error from Do is the result of In-None-Match.
159875func (c *TargetPoolsListCall) IfNoneMatch(entityTag string) *TargetPoolsListCall {
159876	c.ifNoneMatch_ = entityTag
159877	return c
159878}
159879
159880// Context sets the context to be used in this call's Do method. Any
159881// pending HTTP request will be aborted if the provided context is
159882// canceled.
159883func (c *TargetPoolsListCall) Context(ctx context.Context) *TargetPoolsListCall {
159884	c.ctx_ = ctx
159885	return c
159886}
159887
159888// Header returns an http.Header that can be modified by the caller to
159889// add HTTP headers to the request.
159890func (c *TargetPoolsListCall) Header() http.Header {
159891	if c.header_ == nil {
159892		c.header_ = make(http.Header)
159893	}
159894	return c.header_
159895}
159896
159897func (c *TargetPoolsListCall) doRequest(alt string) (*http.Response, error) {
159898	reqHeaders := make(http.Header)
159899	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
159900	for k, v := range c.header_ {
159901		reqHeaders[k] = v
159902	}
159903	reqHeaders.Set("User-Agent", c.s.userAgent())
159904	if c.ifNoneMatch_ != "" {
159905		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
159906	}
159907	var body io.Reader = nil
159908	c.urlParams_.Set("alt", alt)
159909	c.urlParams_.Set("prettyPrint", "false")
159910	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetPools")
159911	urls += "?" + c.urlParams_.Encode()
159912	req, err := http.NewRequest("GET", urls, body)
159913	if err != nil {
159914		return nil, err
159915	}
159916	req.Header = reqHeaders
159917	googleapi.Expand(req.URL, map[string]string{
159918		"project": c.project,
159919		"region":  c.region,
159920	})
159921	return gensupport.SendRequest(c.ctx_, c.s.client, req)
159922}
159923
159924// Do executes the "compute.targetPools.list" call.
159925// Exactly one of *TargetPoolList or error will be non-nil. Any non-2xx
159926// status code is an error. Response headers are in either
159927// *TargetPoolList.ServerResponse.Header or (if a response was returned
159928// at all) in error.(*googleapi.Error).Header. Use
159929// googleapi.IsNotModified to check whether the returned error was
159930// because http.StatusNotModified was returned.
159931func (c *TargetPoolsListCall) Do(opts ...googleapi.CallOption) (*TargetPoolList, error) {
159932	gensupport.SetOptions(c.urlParams_, opts...)
159933	res, err := c.doRequest("json")
159934	if res != nil && res.StatusCode == http.StatusNotModified {
159935		if res.Body != nil {
159936			res.Body.Close()
159937		}
159938		return nil, &googleapi.Error{
159939			Code:   res.StatusCode,
159940			Header: res.Header,
159941		}
159942	}
159943	if err != nil {
159944		return nil, err
159945	}
159946	defer googleapi.CloseBody(res)
159947	if err := googleapi.CheckResponse(res); err != nil {
159948		return nil, err
159949	}
159950	ret := &TargetPoolList{
159951		ServerResponse: googleapi.ServerResponse{
159952			Header:         res.Header,
159953			HTTPStatusCode: res.StatusCode,
159954		},
159955	}
159956	target := &ret
159957	if err := gensupport.DecodeResponse(target, res); err != nil {
159958		return nil, err
159959	}
159960	return ret, nil
159961	// {
159962	//   "description": "Retrieves a list of target pools available to the specified project and region. (== suppress_warning http-rest-shadowed ==)",
159963	//   "httpMethod": "GET",
159964	//   "id": "compute.targetPools.list",
159965	//   "parameterOrder": [
159966	//     "project",
159967	//     "region"
159968	//   ],
159969	//   "parameters": {
159970	//     "filter": {
159971	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
159972	//       "location": "query",
159973	//       "type": "string"
159974	//     },
159975	//     "maxResults": {
159976	//       "default": "500",
159977	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
159978	//       "format": "uint32",
159979	//       "location": "query",
159980	//       "minimum": "0",
159981	//       "type": "integer"
159982	//     },
159983	//     "orderBy": {
159984	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
159985	//       "location": "query",
159986	//       "type": "string"
159987	//     },
159988	//     "pageToken": {
159989	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
159990	//       "location": "query",
159991	//       "type": "string"
159992	//     },
159993	//     "project": {
159994	//       "description": "Project ID for this request.",
159995	//       "location": "path",
159996	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
159997	//       "required": true,
159998	//       "type": "string"
159999	//     },
160000	//     "region": {
160001	//       "description": "Name of the region scoping this request.",
160002	//       "location": "path",
160003	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
160004	//       "required": true,
160005	//       "type": "string"
160006	//     }
160007	//   },
160008	//   "path": "{project}/regions/{region}/targetPools",
160009	//   "response": {
160010	//     "$ref": "TargetPoolList"
160011	//   },
160012	//   "scopes": [
160013	//     "https://www.googleapis.com/auth/cloud-platform",
160014	//     "https://www.googleapis.com/auth/compute",
160015	//     "https://www.googleapis.com/auth/compute.readonly"
160016	//   ]
160017	// }
160018
160019}
160020
160021// Pages invokes f for each page of results.
160022// A non-nil error returned from f will halt the iteration.
160023// The provided context supersedes any context provided to the Context method.
160024func (c *TargetPoolsListCall) Pages(ctx context.Context, f func(*TargetPoolList) error) error {
160025	c.ctx_ = ctx
160026	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
160027	for {
160028		x, err := c.Do()
160029		if err != nil {
160030			return err
160031		}
160032		if err := f(x); err != nil {
160033			return err
160034		}
160035		if x.NextPageToken == "" {
160036			return nil
160037		}
160038		c.PageToken(x.NextPageToken)
160039	}
160040}
160041
160042// method id "compute.targetPools.removeHealthCheck":
160043
160044type TargetPoolsRemoveHealthCheckCall struct {
160045	s                                   *Service
160046	project                             string
160047	region                              string
160048	targetPool                          string
160049	targetpoolsremovehealthcheckrequest *TargetPoolsRemoveHealthCheckRequest
160050	urlParams_                          gensupport.URLParams
160051	ctx_                                context.Context
160052	header_                             http.Header
160053}
160054
160055// RemoveHealthCheck: Removes health check URL from a target pool. (==
160056// suppress_warning http-rest-shadowed ==)
160057// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/removeHealthCheck
160058func (r *TargetPoolsService) RemoveHealthCheck(project string, region string, targetPool string, targetpoolsremovehealthcheckrequest *TargetPoolsRemoveHealthCheckRequest) *TargetPoolsRemoveHealthCheckCall {
160059	c := &TargetPoolsRemoveHealthCheckCall{s: r.s, urlParams_: make(gensupport.URLParams)}
160060	c.project = project
160061	c.region = region
160062	c.targetPool = targetPool
160063	c.targetpoolsremovehealthcheckrequest = targetpoolsremovehealthcheckrequest
160064	return c
160065}
160066
160067// RequestId sets the optional parameter "requestId": An optional
160068// request ID to identify requests. Specify a unique request ID so that
160069// if you must retry your request, the server will know to ignore the
160070// request if it has already been completed.
160071//
160072// For example, consider a situation where you make an initial request
160073// and the request times out. If you make the request again with the
160074// same request ID, the server can check if original operation with the
160075// same request ID was received, and if so, will ignore the second
160076// request. This prevents clients from accidentally creating duplicate
160077// commitments.
160078//
160079// The request ID must be a valid UUID with the exception that zero UUID
160080// is not supported (00000000-0000-0000-0000-000000000000).
160081func (c *TargetPoolsRemoveHealthCheckCall) RequestId(requestId string) *TargetPoolsRemoveHealthCheckCall {
160082	c.urlParams_.Set("requestId", requestId)
160083	return c
160084}
160085
160086// Fields allows partial responses to be retrieved. See
160087// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
160088// for more information.
160089func (c *TargetPoolsRemoveHealthCheckCall) Fields(s ...googleapi.Field) *TargetPoolsRemoveHealthCheckCall {
160090	c.urlParams_.Set("fields", googleapi.CombineFields(s))
160091	return c
160092}
160093
160094// Context sets the context to be used in this call's Do method. Any
160095// pending HTTP request will be aborted if the provided context is
160096// canceled.
160097func (c *TargetPoolsRemoveHealthCheckCall) Context(ctx context.Context) *TargetPoolsRemoveHealthCheckCall {
160098	c.ctx_ = ctx
160099	return c
160100}
160101
160102// Header returns an http.Header that can be modified by the caller to
160103// add HTTP headers to the request.
160104func (c *TargetPoolsRemoveHealthCheckCall) Header() http.Header {
160105	if c.header_ == nil {
160106		c.header_ = make(http.Header)
160107	}
160108	return c.header_
160109}
160110
160111func (c *TargetPoolsRemoveHealthCheckCall) doRequest(alt string) (*http.Response, error) {
160112	reqHeaders := make(http.Header)
160113	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
160114	for k, v := range c.header_ {
160115		reqHeaders[k] = v
160116	}
160117	reqHeaders.Set("User-Agent", c.s.userAgent())
160118	var body io.Reader = nil
160119	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetpoolsremovehealthcheckrequest)
160120	if err != nil {
160121		return nil, err
160122	}
160123	reqHeaders.Set("Content-Type", "application/json")
160124	c.urlParams_.Set("alt", alt)
160125	c.urlParams_.Set("prettyPrint", "false")
160126	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetPools/{targetPool}/removeHealthCheck")
160127	urls += "?" + c.urlParams_.Encode()
160128	req, err := http.NewRequest("POST", urls, body)
160129	if err != nil {
160130		return nil, err
160131	}
160132	req.Header = reqHeaders
160133	googleapi.Expand(req.URL, map[string]string{
160134		"project":    c.project,
160135		"region":     c.region,
160136		"targetPool": c.targetPool,
160137	})
160138	return gensupport.SendRequest(c.ctx_, c.s.client, req)
160139}
160140
160141// Do executes the "compute.targetPools.removeHealthCheck" call.
160142// Exactly one of *Operation or error will be non-nil. Any non-2xx
160143// status code is an error. Response headers are in either
160144// *Operation.ServerResponse.Header or (if a response was returned at
160145// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
160146// to check whether the returned error was because
160147// http.StatusNotModified was returned.
160148func (c *TargetPoolsRemoveHealthCheckCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
160149	gensupport.SetOptions(c.urlParams_, opts...)
160150	res, err := c.doRequest("json")
160151	if res != nil && res.StatusCode == http.StatusNotModified {
160152		if res.Body != nil {
160153			res.Body.Close()
160154		}
160155		return nil, &googleapi.Error{
160156			Code:   res.StatusCode,
160157			Header: res.Header,
160158		}
160159	}
160160	if err != nil {
160161		return nil, err
160162	}
160163	defer googleapi.CloseBody(res)
160164	if err := googleapi.CheckResponse(res); err != nil {
160165		return nil, err
160166	}
160167	ret := &Operation{
160168		ServerResponse: googleapi.ServerResponse{
160169			Header:         res.Header,
160170			HTTPStatusCode: res.StatusCode,
160171		},
160172	}
160173	target := &ret
160174	if err := gensupport.DecodeResponse(target, res); err != nil {
160175		return nil, err
160176	}
160177	return ret, nil
160178	// {
160179	//   "description": "Removes health check URL from a target pool. (== suppress_warning http-rest-shadowed ==)",
160180	//   "httpMethod": "POST",
160181	//   "id": "compute.targetPools.removeHealthCheck",
160182	//   "parameterOrder": [
160183	//     "project",
160184	//     "region",
160185	//     "targetPool"
160186	//   ],
160187	//   "parameters": {
160188	//     "project": {
160189	//       "description": "Project ID for this request.",
160190	//       "location": "path",
160191	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
160192	//       "required": true,
160193	//       "type": "string"
160194	//     },
160195	//     "region": {
160196	//       "description": "Name of the region for this request.",
160197	//       "location": "path",
160198	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
160199	//       "required": true,
160200	//       "type": "string"
160201	//     },
160202	//     "requestId": {
160203	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
160204	//       "location": "query",
160205	//       "type": "string"
160206	//     },
160207	//     "targetPool": {
160208	//       "description": "Name of the target pool to remove health checks from.",
160209	//       "location": "path",
160210	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
160211	//       "required": true,
160212	//       "type": "string"
160213	//     }
160214	//   },
160215	//   "path": "{project}/regions/{region}/targetPools/{targetPool}/removeHealthCheck",
160216	//   "request": {
160217	//     "$ref": "TargetPoolsRemoveHealthCheckRequest"
160218	//   },
160219	//   "response": {
160220	//     "$ref": "Operation"
160221	//   },
160222	//   "scopes": [
160223	//     "https://www.googleapis.com/auth/cloud-platform",
160224	//     "https://www.googleapis.com/auth/compute"
160225	//   ]
160226	// }
160227
160228}
160229
160230// method id "compute.targetPools.removeInstance":
160231
160232type TargetPoolsRemoveInstanceCall struct {
160233	s                                *Service
160234	project                          string
160235	region                           string
160236	targetPool                       string
160237	targetpoolsremoveinstancerequest *TargetPoolsRemoveInstanceRequest
160238	urlParams_                       gensupport.URLParams
160239	ctx_                             context.Context
160240	header_                          http.Header
160241}
160242
160243// RemoveInstance: Removes instance URL from a target pool. (==
160244// suppress_warning http-rest-shadowed ==)
160245// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/removeInstance
160246func (r *TargetPoolsService) RemoveInstance(project string, region string, targetPool string, targetpoolsremoveinstancerequest *TargetPoolsRemoveInstanceRequest) *TargetPoolsRemoveInstanceCall {
160247	c := &TargetPoolsRemoveInstanceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
160248	c.project = project
160249	c.region = region
160250	c.targetPool = targetPool
160251	c.targetpoolsremoveinstancerequest = targetpoolsremoveinstancerequest
160252	return c
160253}
160254
160255// RequestId sets the optional parameter "requestId": An optional
160256// request ID to identify requests. Specify a unique request ID so that
160257// if you must retry your request, the server will know to ignore the
160258// request if it has already been completed.
160259//
160260// For example, consider a situation where you make an initial request
160261// and the request times out. If you make the request again with the
160262// same request ID, the server can check if original operation with the
160263// same request ID was received, and if so, will ignore the second
160264// request. This prevents clients from accidentally creating duplicate
160265// commitments.
160266//
160267// The request ID must be a valid UUID with the exception that zero UUID
160268// is not supported (00000000-0000-0000-0000-000000000000).
160269func (c *TargetPoolsRemoveInstanceCall) RequestId(requestId string) *TargetPoolsRemoveInstanceCall {
160270	c.urlParams_.Set("requestId", requestId)
160271	return c
160272}
160273
160274// Fields allows partial responses to be retrieved. See
160275// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
160276// for more information.
160277func (c *TargetPoolsRemoveInstanceCall) Fields(s ...googleapi.Field) *TargetPoolsRemoveInstanceCall {
160278	c.urlParams_.Set("fields", googleapi.CombineFields(s))
160279	return c
160280}
160281
160282// Context sets the context to be used in this call's Do method. Any
160283// pending HTTP request will be aborted if the provided context is
160284// canceled.
160285func (c *TargetPoolsRemoveInstanceCall) Context(ctx context.Context) *TargetPoolsRemoveInstanceCall {
160286	c.ctx_ = ctx
160287	return c
160288}
160289
160290// Header returns an http.Header that can be modified by the caller to
160291// add HTTP headers to the request.
160292func (c *TargetPoolsRemoveInstanceCall) Header() http.Header {
160293	if c.header_ == nil {
160294		c.header_ = make(http.Header)
160295	}
160296	return c.header_
160297}
160298
160299func (c *TargetPoolsRemoveInstanceCall) doRequest(alt string) (*http.Response, error) {
160300	reqHeaders := make(http.Header)
160301	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
160302	for k, v := range c.header_ {
160303		reqHeaders[k] = v
160304	}
160305	reqHeaders.Set("User-Agent", c.s.userAgent())
160306	var body io.Reader = nil
160307	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetpoolsremoveinstancerequest)
160308	if err != nil {
160309		return nil, err
160310	}
160311	reqHeaders.Set("Content-Type", "application/json")
160312	c.urlParams_.Set("alt", alt)
160313	c.urlParams_.Set("prettyPrint", "false")
160314	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetPools/{targetPool}/removeInstance")
160315	urls += "?" + c.urlParams_.Encode()
160316	req, err := http.NewRequest("POST", urls, body)
160317	if err != nil {
160318		return nil, err
160319	}
160320	req.Header = reqHeaders
160321	googleapi.Expand(req.URL, map[string]string{
160322		"project":    c.project,
160323		"region":     c.region,
160324		"targetPool": c.targetPool,
160325	})
160326	return gensupport.SendRequest(c.ctx_, c.s.client, req)
160327}
160328
160329// Do executes the "compute.targetPools.removeInstance" call.
160330// Exactly one of *Operation or error will be non-nil. Any non-2xx
160331// status code is an error. Response headers are in either
160332// *Operation.ServerResponse.Header or (if a response was returned at
160333// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
160334// to check whether the returned error was because
160335// http.StatusNotModified was returned.
160336func (c *TargetPoolsRemoveInstanceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
160337	gensupport.SetOptions(c.urlParams_, opts...)
160338	res, err := c.doRequest("json")
160339	if res != nil && res.StatusCode == http.StatusNotModified {
160340		if res.Body != nil {
160341			res.Body.Close()
160342		}
160343		return nil, &googleapi.Error{
160344			Code:   res.StatusCode,
160345			Header: res.Header,
160346		}
160347	}
160348	if err != nil {
160349		return nil, err
160350	}
160351	defer googleapi.CloseBody(res)
160352	if err := googleapi.CheckResponse(res); err != nil {
160353		return nil, err
160354	}
160355	ret := &Operation{
160356		ServerResponse: googleapi.ServerResponse{
160357			Header:         res.Header,
160358			HTTPStatusCode: res.StatusCode,
160359		},
160360	}
160361	target := &ret
160362	if err := gensupport.DecodeResponse(target, res); err != nil {
160363		return nil, err
160364	}
160365	return ret, nil
160366	// {
160367	//   "description": "Removes instance URL from a target pool. (== suppress_warning http-rest-shadowed ==)",
160368	//   "httpMethod": "POST",
160369	//   "id": "compute.targetPools.removeInstance",
160370	//   "parameterOrder": [
160371	//     "project",
160372	//     "region",
160373	//     "targetPool"
160374	//   ],
160375	//   "parameters": {
160376	//     "project": {
160377	//       "description": "Project ID for this request.",
160378	//       "location": "path",
160379	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
160380	//       "required": true,
160381	//       "type": "string"
160382	//     },
160383	//     "region": {
160384	//       "description": "Name of the region scoping this request.",
160385	//       "location": "path",
160386	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
160387	//       "required": true,
160388	//       "type": "string"
160389	//     },
160390	//     "requestId": {
160391	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
160392	//       "location": "query",
160393	//       "type": "string"
160394	//     },
160395	//     "targetPool": {
160396	//       "description": "Name of the TargetPool resource to remove instances from.",
160397	//       "location": "path",
160398	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
160399	//       "required": true,
160400	//       "type": "string"
160401	//     }
160402	//   },
160403	//   "path": "{project}/regions/{region}/targetPools/{targetPool}/removeInstance",
160404	//   "request": {
160405	//     "$ref": "TargetPoolsRemoveInstanceRequest"
160406	//   },
160407	//   "response": {
160408	//     "$ref": "Operation"
160409	//   },
160410	//   "scopes": [
160411	//     "https://www.googleapis.com/auth/cloud-platform",
160412	//     "https://www.googleapis.com/auth/compute"
160413	//   ]
160414	// }
160415
160416}
160417
160418// method id "compute.targetPools.setBackup":
160419
160420type TargetPoolsSetBackupCall struct {
160421	s               *Service
160422	project         string
160423	region          string
160424	targetPool      string
160425	targetreference *TargetReference
160426	urlParams_      gensupport.URLParams
160427	ctx_            context.Context
160428	header_         http.Header
160429}
160430
160431// SetBackup: Changes a backup target pool's configurations. (==
160432// suppress_warning http-rest-shadowed ==)
160433// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/setBackup
160434func (r *TargetPoolsService) SetBackup(project string, region string, targetPool string, targetreference *TargetReference) *TargetPoolsSetBackupCall {
160435	c := &TargetPoolsSetBackupCall{s: r.s, urlParams_: make(gensupport.URLParams)}
160436	c.project = project
160437	c.region = region
160438	c.targetPool = targetPool
160439	c.targetreference = targetreference
160440	return c
160441}
160442
160443// FailoverRatio sets the optional parameter "failoverRatio": New
160444// failoverRatio value for the target pool.
160445func (c *TargetPoolsSetBackupCall) FailoverRatio(failoverRatio float64) *TargetPoolsSetBackupCall {
160446	c.urlParams_.Set("failoverRatio", fmt.Sprint(failoverRatio))
160447	return c
160448}
160449
160450// RequestId sets the optional parameter "requestId": An optional
160451// request ID to identify requests. Specify a unique request ID so that
160452// if you must retry your request, the server will know to ignore the
160453// request if it has already been completed.
160454//
160455// For example, consider a situation where you make an initial request
160456// and the request times out. If you make the request again with the
160457// same request ID, the server can check if original operation with the
160458// same request ID was received, and if so, will ignore the second
160459// request. This prevents clients from accidentally creating duplicate
160460// commitments.
160461//
160462// The request ID must be a valid UUID with the exception that zero UUID
160463// is not supported (00000000-0000-0000-0000-000000000000).
160464func (c *TargetPoolsSetBackupCall) RequestId(requestId string) *TargetPoolsSetBackupCall {
160465	c.urlParams_.Set("requestId", requestId)
160466	return c
160467}
160468
160469// Fields allows partial responses to be retrieved. See
160470// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
160471// for more information.
160472func (c *TargetPoolsSetBackupCall) Fields(s ...googleapi.Field) *TargetPoolsSetBackupCall {
160473	c.urlParams_.Set("fields", googleapi.CombineFields(s))
160474	return c
160475}
160476
160477// Context sets the context to be used in this call's Do method. Any
160478// pending HTTP request will be aborted if the provided context is
160479// canceled.
160480func (c *TargetPoolsSetBackupCall) Context(ctx context.Context) *TargetPoolsSetBackupCall {
160481	c.ctx_ = ctx
160482	return c
160483}
160484
160485// Header returns an http.Header that can be modified by the caller to
160486// add HTTP headers to the request.
160487func (c *TargetPoolsSetBackupCall) Header() http.Header {
160488	if c.header_ == nil {
160489		c.header_ = make(http.Header)
160490	}
160491	return c.header_
160492}
160493
160494func (c *TargetPoolsSetBackupCall) doRequest(alt string) (*http.Response, error) {
160495	reqHeaders := make(http.Header)
160496	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
160497	for k, v := range c.header_ {
160498		reqHeaders[k] = v
160499	}
160500	reqHeaders.Set("User-Agent", c.s.userAgent())
160501	var body io.Reader = nil
160502	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetreference)
160503	if err != nil {
160504		return nil, err
160505	}
160506	reqHeaders.Set("Content-Type", "application/json")
160507	c.urlParams_.Set("alt", alt)
160508	c.urlParams_.Set("prettyPrint", "false")
160509	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetPools/{targetPool}/setBackup")
160510	urls += "?" + c.urlParams_.Encode()
160511	req, err := http.NewRequest("POST", urls, body)
160512	if err != nil {
160513		return nil, err
160514	}
160515	req.Header = reqHeaders
160516	googleapi.Expand(req.URL, map[string]string{
160517		"project":    c.project,
160518		"region":     c.region,
160519		"targetPool": c.targetPool,
160520	})
160521	return gensupport.SendRequest(c.ctx_, c.s.client, req)
160522}
160523
160524// Do executes the "compute.targetPools.setBackup" call.
160525// Exactly one of *Operation or error will be non-nil. Any non-2xx
160526// status code is an error. Response headers are in either
160527// *Operation.ServerResponse.Header or (if a response was returned at
160528// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
160529// to check whether the returned error was because
160530// http.StatusNotModified was returned.
160531func (c *TargetPoolsSetBackupCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
160532	gensupport.SetOptions(c.urlParams_, opts...)
160533	res, err := c.doRequest("json")
160534	if res != nil && res.StatusCode == http.StatusNotModified {
160535		if res.Body != nil {
160536			res.Body.Close()
160537		}
160538		return nil, &googleapi.Error{
160539			Code:   res.StatusCode,
160540			Header: res.Header,
160541		}
160542	}
160543	if err != nil {
160544		return nil, err
160545	}
160546	defer googleapi.CloseBody(res)
160547	if err := googleapi.CheckResponse(res); err != nil {
160548		return nil, err
160549	}
160550	ret := &Operation{
160551		ServerResponse: googleapi.ServerResponse{
160552			Header:         res.Header,
160553			HTTPStatusCode: res.StatusCode,
160554		},
160555	}
160556	target := &ret
160557	if err := gensupport.DecodeResponse(target, res); err != nil {
160558		return nil, err
160559	}
160560	return ret, nil
160561	// {
160562	//   "description": "Changes a backup target pool's configurations. (== suppress_warning http-rest-shadowed ==)",
160563	//   "httpMethod": "POST",
160564	//   "id": "compute.targetPools.setBackup",
160565	//   "parameterOrder": [
160566	//     "project",
160567	//     "region",
160568	//     "targetPool"
160569	//   ],
160570	//   "parameters": {
160571	//     "failoverRatio": {
160572	//       "description": "New failoverRatio value for the target pool.",
160573	//       "format": "float",
160574	//       "location": "query",
160575	//       "type": "number"
160576	//     },
160577	//     "project": {
160578	//       "description": "Project ID for this request.",
160579	//       "location": "path",
160580	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
160581	//       "required": true,
160582	//       "type": "string"
160583	//     },
160584	//     "region": {
160585	//       "description": "Name of the region scoping this request.",
160586	//       "location": "path",
160587	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
160588	//       "required": true,
160589	//       "type": "string"
160590	//     },
160591	//     "requestId": {
160592	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
160593	//       "location": "query",
160594	//       "type": "string"
160595	//     },
160596	//     "targetPool": {
160597	//       "description": "Name of the TargetPool resource to set a backup pool for.",
160598	//       "location": "path",
160599	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
160600	//       "required": true,
160601	//       "type": "string"
160602	//     }
160603	//   },
160604	//   "path": "{project}/regions/{region}/targetPools/{targetPool}/setBackup",
160605	//   "request": {
160606	//     "$ref": "TargetReference"
160607	//   },
160608	//   "response": {
160609	//     "$ref": "Operation"
160610	//   },
160611	//   "scopes": [
160612	//     "https://www.googleapis.com/auth/cloud-platform",
160613	//     "https://www.googleapis.com/auth/compute"
160614	//   ]
160615	// }
160616
160617}
160618
160619// method id "compute.targetPools.testIamPermissions":
160620
160621type TargetPoolsTestIamPermissionsCall struct {
160622	s                      *Service
160623	project                string
160624	region                 string
160625	resource               string
160626	testpermissionsrequest *TestPermissionsRequest
160627	urlParams_             gensupport.URLParams
160628	ctx_                   context.Context
160629	header_                http.Header
160630}
160631
160632// TestIamPermissions: Returns permissions that a caller has on the
160633// specified resource. (== suppress_warning http-rest-shadowed ==)
160634func (r *TargetPoolsService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *TargetPoolsTestIamPermissionsCall {
160635	c := &TargetPoolsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
160636	c.project = project
160637	c.region = region
160638	c.resource = resource
160639	c.testpermissionsrequest = testpermissionsrequest
160640	return c
160641}
160642
160643// Fields allows partial responses to be retrieved. See
160644// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
160645// for more information.
160646func (c *TargetPoolsTestIamPermissionsCall) Fields(s ...googleapi.Field) *TargetPoolsTestIamPermissionsCall {
160647	c.urlParams_.Set("fields", googleapi.CombineFields(s))
160648	return c
160649}
160650
160651// Context sets the context to be used in this call's Do method. Any
160652// pending HTTP request will be aborted if the provided context is
160653// canceled.
160654func (c *TargetPoolsTestIamPermissionsCall) Context(ctx context.Context) *TargetPoolsTestIamPermissionsCall {
160655	c.ctx_ = ctx
160656	return c
160657}
160658
160659// Header returns an http.Header that can be modified by the caller to
160660// add HTTP headers to the request.
160661func (c *TargetPoolsTestIamPermissionsCall) Header() http.Header {
160662	if c.header_ == nil {
160663		c.header_ = make(http.Header)
160664	}
160665	return c.header_
160666}
160667
160668func (c *TargetPoolsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
160669	reqHeaders := make(http.Header)
160670	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
160671	for k, v := range c.header_ {
160672		reqHeaders[k] = v
160673	}
160674	reqHeaders.Set("User-Agent", c.s.userAgent())
160675	var body io.Reader = nil
160676	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
160677	if err != nil {
160678		return nil, err
160679	}
160680	reqHeaders.Set("Content-Type", "application/json")
160681	c.urlParams_.Set("alt", alt)
160682	c.urlParams_.Set("prettyPrint", "false")
160683	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetPools/{resource}/testIamPermissions")
160684	urls += "?" + c.urlParams_.Encode()
160685	req, err := http.NewRequest("POST", 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		"region":   c.region,
160693		"resource": c.resource,
160694	})
160695	return gensupport.SendRequest(c.ctx_, c.s.client, req)
160696}
160697
160698// Do executes the "compute.targetPools.testIamPermissions" call.
160699// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
160700// non-2xx status code is an error. Response headers are in either
160701// *TestPermissionsResponse.ServerResponse.Header or (if a response was
160702// returned at all) in error.(*googleapi.Error).Header. Use
160703// googleapi.IsNotModified to check whether the returned error was
160704// because http.StatusNotModified was returned.
160705func (c *TargetPoolsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
160706	gensupport.SetOptions(c.urlParams_, opts...)
160707	res, err := c.doRequest("json")
160708	if res != nil && res.StatusCode == http.StatusNotModified {
160709		if res.Body != nil {
160710			res.Body.Close()
160711		}
160712		return nil, &googleapi.Error{
160713			Code:   res.StatusCode,
160714			Header: res.Header,
160715		}
160716	}
160717	if err != nil {
160718		return nil, err
160719	}
160720	defer googleapi.CloseBody(res)
160721	if err := googleapi.CheckResponse(res); err != nil {
160722		return nil, err
160723	}
160724	ret := &TestPermissionsResponse{
160725		ServerResponse: googleapi.ServerResponse{
160726			Header:         res.Header,
160727			HTTPStatusCode: res.StatusCode,
160728		},
160729	}
160730	target := &ret
160731	if err := gensupport.DecodeResponse(target, res); err != nil {
160732		return nil, err
160733	}
160734	return ret, nil
160735	// {
160736	//   "description": "Returns permissions that a caller has on the specified resource. (== suppress_warning http-rest-shadowed ==)",
160737	//   "httpMethod": "POST",
160738	//   "id": "compute.targetPools.testIamPermissions",
160739	//   "parameterOrder": [
160740	//     "project",
160741	//     "region",
160742	//     "resource"
160743	//   ],
160744	//   "parameters": {
160745	//     "project": {
160746	//       "description": "Project ID for this request.",
160747	//       "location": "path",
160748	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
160749	//       "required": true,
160750	//       "type": "string"
160751	//     },
160752	//     "region": {
160753	//       "description": "The name of the region for this request.",
160754	//       "location": "path",
160755	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
160756	//       "required": true,
160757	//       "type": "string"
160758	//     },
160759	//     "resource": {
160760	//       "description": "Name or id of the resource for this request.",
160761	//       "location": "path",
160762	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
160763	//       "required": true,
160764	//       "type": "string"
160765	//     }
160766	//   },
160767	//   "path": "{project}/regions/{region}/targetPools/{resource}/testIamPermissions",
160768	//   "request": {
160769	//     "$ref": "TestPermissionsRequest"
160770	//   },
160771	//   "response": {
160772	//     "$ref": "TestPermissionsResponse"
160773	//   },
160774	//   "scopes": [
160775	//     "https://www.googleapis.com/auth/cloud-platform",
160776	//     "https://www.googleapis.com/auth/compute",
160777	//     "https://www.googleapis.com/auth/compute.readonly"
160778	//   ]
160779	// }
160780
160781}
160782
160783// method id "compute.targetSslProxies.delete":
160784
160785type TargetSslProxiesDeleteCall struct {
160786	s              *Service
160787	project        string
160788	targetSslProxy string
160789	urlParams_     gensupport.URLParams
160790	ctx_           context.Context
160791	header_        http.Header
160792}
160793
160794// Delete: Deletes the specified TargetSslProxy resource. (==
160795// suppress_warning http-rest-shadowed ==)
160796func (r *TargetSslProxiesService) Delete(project string, targetSslProxy string) *TargetSslProxiesDeleteCall {
160797	c := &TargetSslProxiesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
160798	c.project = project
160799	c.targetSslProxy = targetSslProxy
160800	return c
160801}
160802
160803// RequestId sets the optional parameter "requestId": An optional
160804// request ID to identify requests. Specify a unique request ID so that
160805// if you must retry your request, the server will know to ignore the
160806// request if it has already been completed.
160807//
160808// For example, consider a situation where you make an initial request
160809// and the request times out. If you make the request again with the
160810// same request ID, the server can check if original operation with the
160811// same request ID was received, and if so, will ignore the second
160812// request. This prevents clients from accidentally creating duplicate
160813// commitments.
160814//
160815// The request ID must be a valid UUID with the exception that zero UUID
160816// is not supported (00000000-0000-0000-0000-000000000000).
160817func (c *TargetSslProxiesDeleteCall) RequestId(requestId string) *TargetSslProxiesDeleteCall {
160818	c.urlParams_.Set("requestId", requestId)
160819	return c
160820}
160821
160822// Fields allows partial responses to be retrieved. See
160823// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
160824// for more information.
160825func (c *TargetSslProxiesDeleteCall) Fields(s ...googleapi.Field) *TargetSslProxiesDeleteCall {
160826	c.urlParams_.Set("fields", googleapi.CombineFields(s))
160827	return c
160828}
160829
160830// Context sets the context to be used in this call's Do method. Any
160831// pending HTTP request will be aborted if the provided context is
160832// canceled.
160833func (c *TargetSslProxiesDeleteCall) Context(ctx context.Context) *TargetSslProxiesDeleteCall {
160834	c.ctx_ = ctx
160835	return c
160836}
160837
160838// Header returns an http.Header that can be modified by the caller to
160839// add HTTP headers to the request.
160840func (c *TargetSslProxiesDeleteCall) Header() http.Header {
160841	if c.header_ == nil {
160842		c.header_ = make(http.Header)
160843	}
160844	return c.header_
160845}
160846
160847func (c *TargetSslProxiesDeleteCall) doRequest(alt string) (*http.Response, error) {
160848	reqHeaders := make(http.Header)
160849	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
160850	for k, v := range c.header_ {
160851		reqHeaders[k] = v
160852	}
160853	reqHeaders.Set("User-Agent", c.s.userAgent())
160854	var body io.Reader = nil
160855	c.urlParams_.Set("alt", alt)
160856	c.urlParams_.Set("prettyPrint", "false")
160857	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetSslProxies/{targetSslProxy}")
160858	urls += "?" + c.urlParams_.Encode()
160859	req, err := http.NewRequest("DELETE", urls, body)
160860	if err != nil {
160861		return nil, err
160862	}
160863	req.Header = reqHeaders
160864	googleapi.Expand(req.URL, map[string]string{
160865		"project":        c.project,
160866		"targetSslProxy": c.targetSslProxy,
160867	})
160868	return gensupport.SendRequest(c.ctx_, c.s.client, req)
160869}
160870
160871// Do executes the "compute.targetSslProxies.delete" call.
160872// Exactly one of *Operation or error will be non-nil. Any non-2xx
160873// status code is an error. Response headers are in either
160874// *Operation.ServerResponse.Header or (if a response was returned at
160875// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
160876// to check whether the returned error was because
160877// http.StatusNotModified was returned.
160878func (c *TargetSslProxiesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
160879	gensupport.SetOptions(c.urlParams_, opts...)
160880	res, err := c.doRequest("json")
160881	if res != nil && res.StatusCode == http.StatusNotModified {
160882		if res.Body != nil {
160883			res.Body.Close()
160884		}
160885		return nil, &googleapi.Error{
160886			Code:   res.StatusCode,
160887			Header: res.Header,
160888		}
160889	}
160890	if err != nil {
160891		return nil, err
160892	}
160893	defer googleapi.CloseBody(res)
160894	if err := googleapi.CheckResponse(res); err != nil {
160895		return nil, err
160896	}
160897	ret := &Operation{
160898		ServerResponse: googleapi.ServerResponse{
160899			Header:         res.Header,
160900			HTTPStatusCode: res.StatusCode,
160901		},
160902	}
160903	target := &ret
160904	if err := gensupport.DecodeResponse(target, res); err != nil {
160905		return nil, err
160906	}
160907	return ret, nil
160908	// {
160909	//   "description": "Deletes the specified TargetSslProxy resource. (== suppress_warning http-rest-shadowed ==)",
160910	//   "httpMethod": "DELETE",
160911	//   "id": "compute.targetSslProxies.delete",
160912	//   "parameterOrder": [
160913	//     "project",
160914	//     "targetSslProxy"
160915	//   ],
160916	//   "parameters": {
160917	//     "project": {
160918	//       "description": "Project ID for this request.",
160919	//       "location": "path",
160920	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
160921	//       "required": true,
160922	//       "type": "string"
160923	//     },
160924	//     "requestId": {
160925	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
160926	//       "location": "query",
160927	//       "type": "string"
160928	//     },
160929	//     "targetSslProxy": {
160930	//       "description": "Name of the TargetSslProxy resource to delete.",
160931	//       "location": "path",
160932	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
160933	//       "required": true,
160934	//       "type": "string"
160935	//     }
160936	//   },
160937	//   "path": "{project}/global/targetSslProxies/{targetSslProxy}",
160938	//   "response": {
160939	//     "$ref": "Operation"
160940	//   },
160941	//   "scopes": [
160942	//     "https://www.googleapis.com/auth/cloud-platform",
160943	//     "https://www.googleapis.com/auth/compute"
160944	//   ]
160945	// }
160946
160947}
160948
160949// method id "compute.targetSslProxies.get":
160950
160951type TargetSslProxiesGetCall struct {
160952	s              *Service
160953	project        string
160954	targetSslProxy string
160955	urlParams_     gensupport.URLParams
160956	ifNoneMatch_   string
160957	ctx_           context.Context
160958	header_        http.Header
160959}
160960
160961// Get: Returns the specified TargetSslProxy resource. Gets a list of
160962// available target SSL proxies by making a list() request. (==
160963// suppress_warning http-rest-shadowed ==)
160964func (r *TargetSslProxiesService) Get(project string, targetSslProxy string) *TargetSslProxiesGetCall {
160965	c := &TargetSslProxiesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
160966	c.project = project
160967	c.targetSslProxy = targetSslProxy
160968	return c
160969}
160970
160971// Fields allows partial responses to be retrieved. See
160972// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
160973// for more information.
160974func (c *TargetSslProxiesGetCall) Fields(s ...googleapi.Field) *TargetSslProxiesGetCall {
160975	c.urlParams_.Set("fields", googleapi.CombineFields(s))
160976	return c
160977}
160978
160979// IfNoneMatch sets the optional parameter which makes the operation
160980// fail if the object's ETag matches the given value. This is useful for
160981// getting updates only after the object has changed since the last
160982// request. Use googleapi.IsNotModified to check whether the response
160983// error from Do is the result of In-None-Match.
160984func (c *TargetSslProxiesGetCall) IfNoneMatch(entityTag string) *TargetSslProxiesGetCall {
160985	c.ifNoneMatch_ = entityTag
160986	return c
160987}
160988
160989// Context sets the context to be used in this call's Do method. Any
160990// pending HTTP request will be aborted if the provided context is
160991// canceled.
160992func (c *TargetSslProxiesGetCall) Context(ctx context.Context) *TargetSslProxiesGetCall {
160993	c.ctx_ = ctx
160994	return c
160995}
160996
160997// Header returns an http.Header that can be modified by the caller to
160998// add HTTP headers to the request.
160999func (c *TargetSslProxiesGetCall) Header() http.Header {
161000	if c.header_ == nil {
161001		c.header_ = make(http.Header)
161002	}
161003	return c.header_
161004}
161005
161006func (c *TargetSslProxiesGetCall) doRequest(alt string) (*http.Response, error) {
161007	reqHeaders := make(http.Header)
161008	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
161009	for k, v := range c.header_ {
161010		reqHeaders[k] = v
161011	}
161012	reqHeaders.Set("User-Agent", c.s.userAgent())
161013	if c.ifNoneMatch_ != "" {
161014		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
161015	}
161016	var body io.Reader = nil
161017	c.urlParams_.Set("alt", alt)
161018	c.urlParams_.Set("prettyPrint", "false")
161019	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetSslProxies/{targetSslProxy}")
161020	urls += "?" + c.urlParams_.Encode()
161021	req, err := http.NewRequest("GET", urls, body)
161022	if err != nil {
161023		return nil, err
161024	}
161025	req.Header = reqHeaders
161026	googleapi.Expand(req.URL, map[string]string{
161027		"project":        c.project,
161028		"targetSslProxy": c.targetSslProxy,
161029	})
161030	return gensupport.SendRequest(c.ctx_, c.s.client, req)
161031}
161032
161033// Do executes the "compute.targetSslProxies.get" call.
161034// Exactly one of *TargetSslProxy or error will be non-nil. Any non-2xx
161035// status code is an error. Response headers are in either
161036// *TargetSslProxy.ServerResponse.Header or (if a response was returned
161037// at all) in error.(*googleapi.Error).Header. Use
161038// googleapi.IsNotModified to check whether the returned error was
161039// because http.StatusNotModified was returned.
161040func (c *TargetSslProxiesGetCall) Do(opts ...googleapi.CallOption) (*TargetSslProxy, error) {
161041	gensupport.SetOptions(c.urlParams_, opts...)
161042	res, err := c.doRequest("json")
161043	if res != nil && res.StatusCode == http.StatusNotModified {
161044		if res.Body != nil {
161045			res.Body.Close()
161046		}
161047		return nil, &googleapi.Error{
161048			Code:   res.StatusCode,
161049			Header: res.Header,
161050		}
161051	}
161052	if err != nil {
161053		return nil, err
161054	}
161055	defer googleapi.CloseBody(res)
161056	if err := googleapi.CheckResponse(res); err != nil {
161057		return nil, err
161058	}
161059	ret := &TargetSslProxy{
161060		ServerResponse: googleapi.ServerResponse{
161061			Header:         res.Header,
161062			HTTPStatusCode: res.StatusCode,
161063		},
161064	}
161065	target := &ret
161066	if err := gensupport.DecodeResponse(target, res); err != nil {
161067		return nil, err
161068	}
161069	return ret, nil
161070	// {
161071	//   "description": "Returns the specified TargetSslProxy resource. Gets a list of available target SSL proxies by making a list() request. (== suppress_warning http-rest-shadowed ==)",
161072	//   "httpMethod": "GET",
161073	//   "id": "compute.targetSslProxies.get",
161074	//   "parameterOrder": [
161075	//     "project",
161076	//     "targetSslProxy"
161077	//   ],
161078	//   "parameters": {
161079	//     "project": {
161080	//       "description": "Project ID for this request.",
161081	//       "location": "path",
161082	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
161083	//       "required": true,
161084	//       "type": "string"
161085	//     },
161086	//     "targetSslProxy": {
161087	//       "description": "Name of the TargetSslProxy resource to return.",
161088	//       "location": "path",
161089	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
161090	//       "required": true,
161091	//       "type": "string"
161092	//     }
161093	//   },
161094	//   "path": "{project}/global/targetSslProxies/{targetSslProxy}",
161095	//   "response": {
161096	//     "$ref": "TargetSslProxy"
161097	//   },
161098	//   "scopes": [
161099	//     "https://www.googleapis.com/auth/cloud-platform",
161100	//     "https://www.googleapis.com/auth/compute",
161101	//     "https://www.googleapis.com/auth/compute.readonly"
161102	//   ]
161103	// }
161104
161105}
161106
161107// method id "compute.targetSslProxies.insert":
161108
161109type TargetSslProxiesInsertCall struct {
161110	s              *Service
161111	project        string
161112	targetsslproxy *TargetSslProxy
161113	urlParams_     gensupport.URLParams
161114	ctx_           context.Context
161115	header_        http.Header
161116}
161117
161118// Insert: Creates a TargetSslProxy resource in the specified project
161119// using the data included in the request. (== suppress_warning
161120// http-rest-shadowed ==)
161121func (r *TargetSslProxiesService) Insert(project string, targetsslproxy *TargetSslProxy) *TargetSslProxiesInsertCall {
161122	c := &TargetSslProxiesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
161123	c.project = project
161124	c.targetsslproxy = targetsslproxy
161125	return c
161126}
161127
161128// RequestId sets the optional parameter "requestId": An optional
161129// request ID to identify requests. Specify a unique request ID so that
161130// if you must retry your request, the server will know to ignore the
161131// request if it has already been completed.
161132//
161133// For example, consider a situation where you make an initial request
161134// and the request times out. If you make the request again with the
161135// same request ID, the server can check if original operation with the
161136// same request ID was received, and if so, will ignore the second
161137// request. This prevents clients from accidentally creating duplicate
161138// commitments.
161139//
161140// The request ID must be a valid UUID with the exception that zero UUID
161141// is not supported (00000000-0000-0000-0000-000000000000).
161142func (c *TargetSslProxiesInsertCall) RequestId(requestId string) *TargetSslProxiesInsertCall {
161143	c.urlParams_.Set("requestId", requestId)
161144	return c
161145}
161146
161147// Fields allows partial responses to be retrieved. See
161148// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
161149// for more information.
161150func (c *TargetSslProxiesInsertCall) Fields(s ...googleapi.Field) *TargetSslProxiesInsertCall {
161151	c.urlParams_.Set("fields", googleapi.CombineFields(s))
161152	return c
161153}
161154
161155// Context sets the context to be used in this call's Do method. Any
161156// pending HTTP request will be aborted if the provided context is
161157// canceled.
161158func (c *TargetSslProxiesInsertCall) Context(ctx context.Context) *TargetSslProxiesInsertCall {
161159	c.ctx_ = ctx
161160	return c
161161}
161162
161163// Header returns an http.Header that can be modified by the caller to
161164// add HTTP headers to the request.
161165func (c *TargetSslProxiesInsertCall) Header() http.Header {
161166	if c.header_ == nil {
161167		c.header_ = make(http.Header)
161168	}
161169	return c.header_
161170}
161171
161172func (c *TargetSslProxiesInsertCall) doRequest(alt string) (*http.Response, error) {
161173	reqHeaders := make(http.Header)
161174	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
161175	for k, v := range c.header_ {
161176		reqHeaders[k] = v
161177	}
161178	reqHeaders.Set("User-Agent", c.s.userAgent())
161179	var body io.Reader = nil
161180	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetsslproxy)
161181	if err != nil {
161182		return nil, err
161183	}
161184	reqHeaders.Set("Content-Type", "application/json")
161185	c.urlParams_.Set("alt", alt)
161186	c.urlParams_.Set("prettyPrint", "false")
161187	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetSslProxies")
161188	urls += "?" + c.urlParams_.Encode()
161189	req, err := http.NewRequest("POST", urls, body)
161190	if err != nil {
161191		return nil, err
161192	}
161193	req.Header = reqHeaders
161194	googleapi.Expand(req.URL, map[string]string{
161195		"project": c.project,
161196	})
161197	return gensupport.SendRequest(c.ctx_, c.s.client, req)
161198}
161199
161200// Do executes the "compute.targetSslProxies.insert" call.
161201// Exactly one of *Operation or error will be non-nil. Any non-2xx
161202// status code is an error. Response headers are in either
161203// *Operation.ServerResponse.Header or (if a response was returned at
161204// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
161205// to check whether the returned error was because
161206// http.StatusNotModified was returned.
161207func (c *TargetSslProxiesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
161208	gensupport.SetOptions(c.urlParams_, opts...)
161209	res, err := c.doRequest("json")
161210	if res != nil && res.StatusCode == http.StatusNotModified {
161211		if res.Body != nil {
161212			res.Body.Close()
161213		}
161214		return nil, &googleapi.Error{
161215			Code:   res.StatusCode,
161216			Header: res.Header,
161217		}
161218	}
161219	if err != nil {
161220		return nil, err
161221	}
161222	defer googleapi.CloseBody(res)
161223	if err := googleapi.CheckResponse(res); err != nil {
161224		return nil, err
161225	}
161226	ret := &Operation{
161227		ServerResponse: googleapi.ServerResponse{
161228			Header:         res.Header,
161229			HTTPStatusCode: res.StatusCode,
161230		},
161231	}
161232	target := &ret
161233	if err := gensupport.DecodeResponse(target, res); err != nil {
161234		return nil, err
161235	}
161236	return ret, nil
161237	// {
161238	//   "description": "Creates a TargetSslProxy resource in the specified project using the data included in the request. (== suppress_warning http-rest-shadowed ==)",
161239	//   "httpMethod": "POST",
161240	//   "id": "compute.targetSslProxies.insert",
161241	//   "parameterOrder": [
161242	//     "project"
161243	//   ],
161244	//   "parameters": {
161245	//     "project": {
161246	//       "description": "Project ID for this request.",
161247	//       "location": "path",
161248	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
161249	//       "required": true,
161250	//       "type": "string"
161251	//     },
161252	//     "requestId": {
161253	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
161254	//       "location": "query",
161255	//       "type": "string"
161256	//     }
161257	//   },
161258	//   "path": "{project}/global/targetSslProxies",
161259	//   "request": {
161260	//     "$ref": "TargetSslProxy"
161261	//   },
161262	//   "response": {
161263	//     "$ref": "Operation"
161264	//   },
161265	//   "scopes": [
161266	//     "https://www.googleapis.com/auth/cloud-platform",
161267	//     "https://www.googleapis.com/auth/compute"
161268	//   ]
161269	// }
161270
161271}
161272
161273// method id "compute.targetSslProxies.list":
161274
161275type TargetSslProxiesListCall struct {
161276	s            *Service
161277	project      string
161278	urlParams_   gensupport.URLParams
161279	ifNoneMatch_ string
161280	ctx_         context.Context
161281	header_      http.Header
161282}
161283
161284// List: Retrieves the list of TargetSslProxy resources available to the
161285// specified project. (== suppress_warning http-rest-shadowed ==)
161286func (r *TargetSslProxiesService) List(project string) *TargetSslProxiesListCall {
161287	c := &TargetSslProxiesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
161288	c.project = project
161289	return c
161290}
161291
161292// Filter sets the optional parameter "filter": A filter expression that
161293// filters resources listed in the response. The expression must specify
161294// the field name, a comparison operator, and the value that you want to
161295// use for filtering. The value must be a string, a number, or a
161296// boolean. The comparison operator must be either =, !=, >, or <.
161297//
161298// For example, if you are filtering Compute Engine instances, you can
161299// exclude instances named example-instance by specifying name !=
161300// example-instance.
161301//
161302// You can also filter nested fields. For example, you could specify
161303// scheduling.automaticRestart = false to include instances only if they
161304// are not scheduled for automatic restarts. You can use filtering on
161305// nested fields to filter based on resource labels.
161306//
161307// To filter on multiple expressions, provide each separate expression
161308// within parentheses. For example, (scheduling.automaticRestart = true)
161309// (cpuPlatform = "Intel Skylake"). By default, each expression is an
161310// AND expression. However, you can include AND and OR expressions
161311// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
161312// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
161313// true).
161314func (c *TargetSslProxiesListCall) Filter(filter string) *TargetSslProxiesListCall {
161315	c.urlParams_.Set("filter", filter)
161316	return c
161317}
161318
161319// MaxResults sets the optional parameter "maxResults": The maximum
161320// number of results per page that should be returned. If the number of
161321// available results is larger than maxResults, Compute Engine returns a
161322// nextPageToken that can be used to get the next page of results in
161323// subsequent list requests. Acceptable values are 0 to 500, inclusive.
161324// (Default: 500)
161325func (c *TargetSslProxiesListCall) MaxResults(maxResults int64) *TargetSslProxiesListCall {
161326	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
161327	return c
161328}
161329
161330// OrderBy sets the optional parameter "orderBy": Sorts list results by
161331// a certain order. By default, results are returned in alphanumerical
161332// order based on the resource name.
161333//
161334// You can also sort results in descending order based on the creation
161335// timestamp using orderBy="creationTimestamp desc". This sorts results
161336// based on the creationTimestamp field in reverse chronological order
161337// (newest result first). Use this to sort resources like operations so
161338// that the newest operation is returned first.
161339//
161340// Currently, only sorting by name or creationTimestamp desc is
161341// supported.
161342func (c *TargetSslProxiesListCall) OrderBy(orderBy string) *TargetSslProxiesListCall {
161343	c.urlParams_.Set("orderBy", orderBy)
161344	return c
161345}
161346
161347// PageToken sets the optional parameter "pageToken": Specifies a page
161348// token to use. Set pageToken to the nextPageToken returned by a
161349// previous list request to get the next page of results.
161350func (c *TargetSslProxiesListCall) PageToken(pageToken string) *TargetSslProxiesListCall {
161351	c.urlParams_.Set("pageToken", pageToken)
161352	return c
161353}
161354
161355// Fields allows partial responses to be retrieved. See
161356// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
161357// for more information.
161358func (c *TargetSslProxiesListCall) Fields(s ...googleapi.Field) *TargetSslProxiesListCall {
161359	c.urlParams_.Set("fields", googleapi.CombineFields(s))
161360	return c
161361}
161362
161363// IfNoneMatch sets the optional parameter which makes the operation
161364// fail if the object's ETag matches the given value. This is useful for
161365// getting updates only after the object has changed since the last
161366// request. Use googleapi.IsNotModified to check whether the response
161367// error from Do is the result of In-None-Match.
161368func (c *TargetSslProxiesListCall) IfNoneMatch(entityTag string) *TargetSslProxiesListCall {
161369	c.ifNoneMatch_ = entityTag
161370	return c
161371}
161372
161373// Context sets the context to be used in this call's Do method. Any
161374// pending HTTP request will be aborted if the provided context is
161375// canceled.
161376func (c *TargetSslProxiesListCall) Context(ctx context.Context) *TargetSslProxiesListCall {
161377	c.ctx_ = ctx
161378	return c
161379}
161380
161381// Header returns an http.Header that can be modified by the caller to
161382// add HTTP headers to the request.
161383func (c *TargetSslProxiesListCall) Header() http.Header {
161384	if c.header_ == nil {
161385		c.header_ = make(http.Header)
161386	}
161387	return c.header_
161388}
161389
161390func (c *TargetSslProxiesListCall) doRequest(alt string) (*http.Response, error) {
161391	reqHeaders := make(http.Header)
161392	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
161393	for k, v := range c.header_ {
161394		reqHeaders[k] = v
161395	}
161396	reqHeaders.Set("User-Agent", c.s.userAgent())
161397	if c.ifNoneMatch_ != "" {
161398		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
161399	}
161400	var body io.Reader = nil
161401	c.urlParams_.Set("alt", alt)
161402	c.urlParams_.Set("prettyPrint", "false")
161403	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetSslProxies")
161404	urls += "?" + c.urlParams_.Encode()
161405	req, err := http.NewRequest("GET", urls, body)
161406	if err != nil {
161407		return nil, err
161408	}
161409	req.Header = reqHeaders
161410	googleapi.Expand(req.URL, map[string]string{
161411		"project": c.project,
161412	})
161413	return gensupport.SendRequest(c.ctx_, c.s.client, req)
161414}
161415
161416// Do executes the "compute.targetSslProxies.list" call.
161417// Exactly one of *TargetSslProxyList or error will be non-nil. Any
161418// non-2xx status code is an error. Response headers are in either
161419// *TargetSslProxyList.ServerResponse.Header or (if a response was
161420// returned at all) in error.(*googleapi.Error).Header. Use
161421// googleapi.IsNotModified to check whether the returned error was
161422// because http.StatusNotModified was returned.
161423func (c *TargetSslProxiesListCall) Do(opts ...googleapi.CallOption) (*TargetSslProxyList, error) {
161424	gensupport.SetOptions(c.urlParams_, opts...)
161425	res, err := c.doRequest("json")
161426	if res != nil && res.StatusCode == http.StatusNotModified {
161427		if res.Body != nil {
161428			res.Body.Close()
161429		}
161430		return nil, &googleapi.Error{
161431			Code:   res.StatusCode,
161432			Header: res.Header,
161433		}
161434	}
161435	if err != nil {
161436		return nil, err
161437	}
161438	defer googleapi.CloseBody(res)
161439	if err := googleapi.CheckResponse(res); err != nil {
161440		return nil, err
161441	}
161442	ret := &TargetSslProxyList{
161443		ServerResponse: googleapi.ServerResponse{
161444			Header:         res.Header,
161445			HTTPStatusCode: res.StatusCode,
161446		},
161447	}
161448	target := &ret
161449	if err := gensupport.DecodeResponse(target, res); err != nil {
161450		return nil, err
161451	}
161452	return ret, nil
161453	// {
161454	//   "description": "Retrieves the list of TargetSslProxy resources available to the specified project. (== suppress_warning http-rest-shadowed ==)",
161455	//   "httpMethod": "GET",
161456	//   "id": "compute.targetSslProxies.list",
161457	//   "parameterOrder": [
161458	//     "project"
161459	//   ],
161460	//   "parameters": {
161461	//     "filter": {
161462	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
161463	//       "location": "query",
161464	//       "type": "string"
161465	//     },
161466	//     "maxResults": {
161467	//       "default": "500",
161468	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
161469	//       "format": "uint32",
161470	//       "location": "query",
161471	//       "minimum": "0",
161472	//       "type": "integer"
161473	//     },
161474	//     "orderBy": {
161475	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
161476	//       "location": "query",
161477	//       "type": "string"
161478	//     },
161479	//     "pageToken": {
161480	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
161481	//       "location": "query",
161482	//       "type": "string"
161483	//     },
161484	//     "project": {
161485	//       "description": "Project ID for this request.",
161486	//       "location": "path",
161487	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
161488	//       "required": true,
161489	//       "type": "string"
161490	//     }
161491	//   },
161492	//   "path": "{project}/global/targetSslProxies",
161493	//   "response": {
161494	//     "$ref": "TargetSslProxyList"
161495	//   },
161496	//   "scopes": [
161497	//     "https://www.googleapis.com/auth/cloud-platform",
161498	//     "https://www.googleapis.com/auth/compute",
161499	//     "https://www.googleapis.com/auth/compute.readonly"
161500	//   ]
161501	// }
161502
161503}
161504
161505// Pages invokes f for each page of results.
161506// A non-nil error returned from f will halt the iteration.
161507// The provided context supersedes any context provided to the Context method.
161508func (c *TargetSslProxiesListCall) Pages(ctx context.Context, f func(*TargetSslProxyList) error) error {
161509	c.ctx_ = ctx
161510	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
161511	for {
161512		x, err := c.Do()
161513		if err != nil {
161514			return err
161515		}
161516		if err := f(x); err != nil {
161517			return err
161518		}
161519		if x.NextPageToken == "" {
161520			return nil
161521		}
161522		c.PageToken(x.NextPageToken)
161523	}
161524}
161525
161526// method id "compute.targetSslProxies.setBackendService":
161527
161528type TargetSslProxiesSetBackendServiceCall struct {
161529	s                                        *Service
161530	project                                  string
161531	targetSslProxy                           string
161532	targetsslproxiessetbackendservicerequest *TargetSslProxiesSetBackendServiceRequest
161533	urlParams_                               gensupport.URLParams
161534	ctx_                                     context.Context
161535	header_                                  http.Header
161536}
161537
161538// SetBackendService: Changes the BackendService for TargetSslProxy. (==
161539// suppress_warning http-rest-shadowed ==)
161540func (r *TargetSslProxiesService) SetBackendService(project string, targetSslProxy string, targetsslproxiessetbackendservicerequest *TargetSslProxiesSetBackendServiceRequest) *TargetSslProxiesSetBackendServiceCall {
161541	c := &TargetSslProxiesSetBackendServiceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
161542	c.project = project
161543	c.targetSslProxy = targetSslProxy
161544	c.targetsslproxiessetbackendservicerequest = targetsslproxiessetbackendservicerequest
161545	return c
161546}
161547
161548// RequestId sets the optional parameter "requestId": An optional
161549// request ID to identify requests. Specify a unique request ID so that
161550// if you must retry your request, the server will know to ignore the
161551// request if it has already been completed.
161552//
161553// For example, consider a situation where you make an initial request
161554// and the request times out. If you make the request again with the
161555// same request ID, the server can check if original operation with the
161556// same request ID was received, and if so, will ignore the second
161557// request. This prevents clients from accidentally creating duplicate
161558// commitments.
161559//
161560// The request ID must be a valid UUID with the exception that zero UUID
161561// is not supported (00000000-0000-0000-0000-000000000000).
161562func (c *TargetSslProxiesSetBackendServiceCall) RequestId(requestId string) *TargetSslProxiesSetBackendServiceCall {
161563	c.urlParams_.Set("requestId", requestId)
161564	return c
161565}
161566
161567// Fields allows partial responses to be retrieved. See
161568// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
161569// for more information.
161570func (c *TargetSslProxiesSetBackendServiceCall) Fields(s ...googleapi.Field) *TargetSslProxiesSetBackendServiceCall {
161571	c.urlParams_.Set("fields", googleapi.CombineFields(s))
161572	return c
161573}
161574
161575// Context sets the context to be used in this call's Do method. Any
161576// pending HTTP request will be aborted if the provided context is
161577// canceled.
161578func (c *TargetSslProxiesSetBackendServiceCall) Context(ctx context.Context) *TargetSslProxiesSetBackendServiceCall {
161579	c.ctx_ = ctx
161580	return c
161581}
161582
161583// Header returns an http.Header that can be modified by the caller to
161584// add HTTP headers to the request.
161585func (c *TargetSslProxiesSetBackendServiceCall) Header() http.Header {
161586	if c.header_ == nil {
161587		c.header_ = make(http.Header)
161588	}
161589	return c.header_
161590}
161591
161592func (c *TargetSslProxiesSetBackendServiceCall) doRequest(alt string) (*http.Response, error) {
161593	reqHeaders := make(http.Header)
161594	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
161595	for k, v := range c.header_ {
161596		reqHeaders[k] = v
161597	}
161598	reqHeaders.Set("User-Agent", c.s.userAgent())
161599	var body io.Reader = nil
161600	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetsslproxiessetbackendservicerequest)
161601	if err != nil {
161602		return nil, err
161603	}
161604	reqHeaders.Set("Content-Type", "application/json")
161605	c.urlParams_.Set("alt", alt)
161606	c.urlParams_.Set("prettyPrint", "false")
161607	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetSslProxies/{targetSslProxy}/setBackendService")
161608	urls += "?" + c.urlParams_.Encode()
161609	req, err := http.NewRequest("POST", urls, body)
161610	if err != nil {
161611		return nil, err
161612	}
161613	req.Header = reqHeaders
161614	googleapi.Expand(req.URL, map[string]string{
161615		"project":        c.project,
161616		"targetSslProxy": c.targetSslProxy,
161617	})
161618	return gensupport.SendRequest(c.ctx_, c.s.client, req)
161619}
161620
161621// Do executes the "compute.targetSslProxies.setBackendService" call.
161622// Exactly one of *Operation or error will be non-nil. Any non-2xx
161623// status code is an error. Response headers are in either
161624// *Operation.ServerResponse.Header or (if a response was returned at
161625// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
161626// to check whether the returned error was because
161627// http.StatusNotModified was returned.
161628func (c *TargetSslProxiesSetBackendServiceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
161629	gensupport.SetOptions(c.urlParams_, opts...)
161630	res, err := c.doRequest("json")
161631	if res != nil && res.StatusCode == http.StatusNotModified {
161632		if res.Body != nil {
161633			res.Body.Close()
161634		}
161635		return nil, &googleapi.Error{
161636			Code:   res.StatusCode,
161637			Header: res.Header,
161638		}
161639	}
161640	if err != nil {
161641		return nil, err
161642	}
161643	defer googleapi.CloseBody(res)
161644	if err := googleapi.CheckResponse(res); err != nil {
161645		return nil, err
161646	}
161647	ret := &Operation{
161648		ServerResponse: googleapi.ServerResponse{
161649			Header:         res.Header,
161650			HTTPStatusCode: res.StatusCode,
161651		},
161652	}
161653	target := &ret
161654	if err := gensupport.DecodeResponse(target, res); err != nil {
161655		return nil, err
161656	}
161657	return ret, nil
161658	// {
161659	//   "description": "Changes the BackendService for TargetSslProxy. (== suppress_warning http-rest-shadowed ==)",
161660	//   "httpMethod": "POST",
161661	//   "id": "compute.targetSslProxies.setBackendService",
161662	//   "parameterOrder": [
161663	//     "project",
161664	//     "targetSslProxy"
161665	//   ],
161666	//   "parameters": {
161667	//     "project": {
161668	//       "description": "Project ID for this request.",
161669	//       "location": "path",
161670	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
161671	//       "required": true,
161672	//       "type": "string"
161673	//     },
161674	//     "requestId": {
161675	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
161676	//       "location": "query",
161677	//       "type": "string"
161678	//     },
161679	//     "targetSslProxy": {
161680	//       "description": "Name of the TargetSslProxy resource whose BackendService resource is to be set.",
161681	//       "location": "path",
161682	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
161683	//       "required": true,
161684	//       "type": "string"
161685	//     }
161686	//   },
161687	//   "path": "{project}/global/targetSslProxies/{targetSslProxy}/setBackendService",
161688	//   "request": {
161689	//     "$ref": "TargetSslProxiesSetBackendServiceRequest"
161690	//   },
161691	//   "response": {
161692	//     "$ref": "Operation"
161693	//   },
161694	//   "scopes": [
161695	//     "https://www.googleapis.com/auth/cloud-platform",
161696	//     "https://www.googleapis.com/auth/compute"
161697	//   ]
161698	// }
161699
161700}
161701
161702// method id "compute.targetSslProxies.setProxyHeader":
161703
161704type TargetSslProxiesSetProxyHeaderCall struct {
161705	s                                     *Service
161706	project                               string
161707	targetSslProxy                        string
161708	targetsslproxiessetproxyheaderrequest *TargetSslProxiesSetProxyHeaderRequest
161709	urlParams_                            gensupport.URLParams
161710	ctx_                                  context.Context
161711	header_                               http.Header
161712}
161713
161714// SetProxyHeader: Changes the ProxyHeaderType for TargetSslProxy. (==
161715// suppress_warning http-rest-shadowed ==)
161716func (r *TargetSslProxiesService) SetProxyHeader(project string, targetSslProxy string, targetsslproxiessetproxyheaderrequest *TargetSslProxiesSetProxyHeaderRequest) *TargetSslProxiesSetProxyHeaderCall {
161717	c := &TargetSslProxiesSetProxyHeaderCall{s: r.s, urlParams_: make(gensupport.URLParams)}
161718	c.project = project
161719	c.targetSslProxy = targetSslProxy
161720	c.targetsslproxiessetproxyheaderrequest = targetsslproxiessetproxyheaderrequest
161721	return c
161722}
161723
161724// RequestId sets the optional parameter "requestId": An optional
161725// request ID to identify requests. Specify a unique request ID so that
161726// if you must retry your request, the server will know to ignore the
161727// request if it has already been completed.
161728//
161729// For example, consider a situation where you make an initial request
161730// and the request times out. If you make the request again with the
161731// same request ID, the server can check if original operation with the
161732// same request ID was received, and if so, will ignore the second
161733// request. This prevents clients from accidentally creating duplicate
161734// commitments.
161735//
161736// The request ID must be a valid UUID with the exception that zero UUID
161737// is not supported (00000000-0000-0000-0000-000000000000).
161738func (c *TargetSslProxiesSetProxyHeaderCall) RequestId(requestId string) *TargetSslProxiesSetProxyHeaderCall {
161739	c.urlParams_.Set("requestId", requestId)
161740	return c
161741}
161742
161743// Fields allows partial responses to be retrieved. See
161744// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
161745// for more information.
161746func (c *TargetSslProxiesSetProxyHeaderCall) Fields(s ...googleapi.Field) *TargetSslProxiesSetProxyHeaderCall {
161747	c.urlParams_.Set("fields", googleapi.CombineFields(s))
161748	return c
161749}
161750
161751// Context sets the context to be used in this call's Do method. Any
161752// pending HTTP request will be aborted if the provided context is
161753// canceled.
161754func (c *TargetSslProxiesSetProxyHeaderCall) Context(ctx context.Context) *TargetSslProxiesSetProxyHeaderCall {
161755	c.ctx_ = ctx
161756	return c
161757}
161758
161759// Header returns an http.Header that can be modified by the caller to
161760// add HTTP headers to the request.
161761func (c *TargetSslProxiesSetProxyHeaderCall) Header() http.Header {
161762	if c.header_ == nil {
161763		c.header_ = make(http.Header)
161764	}
161765	return c.header_
161766}
161767
161768func (c *TargetSslProxiesSetProxyHeaderCall) doRequest(alt string) (*http.Response, error) {
161769	reqHeaders := make(http.Header)
161770	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
161771	for k, v := range c.header_ {
161772		reqHeaders[k] = v
161773	}
161774	reqHeaders.Set("User-Agent", c.s.userAgent())
161775	var body io.Reader = nil
161776	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetsslproxiessetproxyheaderrequest)
161777	if err != nil {
161778		return nil, err
161779	}
161780	reqHeaders.Set("Content-Type", "application/json")
161781	c.urlParams_.Set("alt", alt)
161782	c.urlParams_.Set("prettyPrint", "false")
161783	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetSslProxies/{targetSslProxy}/setProxyHeader")
161784	urls += "?" + c.urlParams_.Encode()
161785	req, err := http.NewRequest("POST", urls, body)
161786	if err != nil {
161787		return nil, err
161788	}
161789	req.Header = reqHeaders
161790	googleapi.Expand(req.URL, map[string]string{
161791		"project":        c.project,
161792		"targetSslProxy": c.targetSslProxy,
161793	})
161794	return gensupport.SendRequest(c.ctx_, c.s.client, req)
161795}
161796
161797// Do executes the "compute.targetSslProxies.setProxyHeader" call.
161798// Exactly one of *Operation or error will be non-nil. Any non-2xx
161799// status code is an error. Response headers are in either
161800// *Operation.ServerResponse.Header or (if a response was returned at
161801// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
161802// to check whether the returned error was because
161803// http.StatusNotModified was returned.
161804func (c *TargetSslProxiesSetProxyHeaderCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
161805	gensupport.SetOptions(c.urlParams_, opts...)
161806	res, err := c.doRequest("json")
161807	if res != nil && res.StatusCode == http.StatusNotModified {
161808		if res.Body != nil {
161809			res.Body.Close()
161810		}
161811		return nil, &googleapi.Error{
161812			Code:   res.StatusCode,
161813			Header: res.Header,
161814		}
161815	}
161816	if err != nil {
161817		return nil, err
161818	}
161819	defer googleapi.CloseBody(res)
161820	if err := googleapi.CheckResponse(res); err != nil {
161821		return nil, err
161822	}
161823	ret := &Operation{
161824		ServerResponse: googleapi.ServerResponse{
161825			Header:         res.Header,
161826			HTTPStatusCode: res.StatusCode,
161827		},
161828	}
161829	target := &ret
161830	if err := gensupport.DecodeResponse(target, res); err != nil {
161831		return nil, err
161832	}
161833	return ret, nil
161834	// {
161835	//   "description": "Changes the ProxyHeaderType for TargetSslProxy. (== suppress_warning http-rest-shadowed ==)",
161836	//   "httpMethod": "POST",
161837	//   "id": "compute.targetSslProxies.setProxyHeader",
161838	//   "parameterOrder": [
161839	//     "project",
161840	//     "targetSslProxy"
161841	//   ],
161842	//   "parameters": {
161843	//     "project": {
161844	//       "description": "Project ID for this request.",
161845	//       "location": "path",
161846	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
161847	//       "required": true,
161848	//       "type": "string"
161849	//     },
161850	//     "requestId": {
161851	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
161852	//       "location": "query",
161853	//       "type": "string"
161854	//     },
161855	//     "targetSslProxy": {
161856	//       "description": "Name of the TargetSslProxy resource whose ProxyHeader is to be set.",
161857	//       "location": "path",
161858	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
161859	//       "required": true,
161860	//       "type": "string"
161861	//     }
161862	//   },
161863	//   "path": "{project}/global/targetSslProxies/{targetSslProxy}/setProxyHeader",
161864	//   "request": {
161865	//     "$ref": "TargetSslProxiesSetProxyHeaderRequest"
161866	//   },
161867	//   "response": {
161868	//     "$ref": "Operation"
161869	//   },
161870	//   "scopes": [
161871	//     "https://www.googleapis.com/auth/cloud-platform",
161872	//     "https://www.googleapis.com/auth/compute"
161873	//   ]
161874	// }
161875
161876}
161877
161878// method id "compute.targetSslProxies.setSslCertificates":
161879
161880type TargetSslProxiesSetSslCertificatesCall struct {
161881	s                                         *Service
161882	project                                   string
161883	targetSslProxy                            string
161884	targetsslproxiessetsslcertificatesrequest *TargetSslProxiesSetSslCertificatesRequest
161885	urlParams_                                gensupport.URLParams
161886	ctx_                                      context.Context
161887	header_                                   http.Header
161888}
161889
161890// SetSslCertificates: Changes SslCertificates for TargetSslProxy. (==
161891// suppress_warning http-rest-shadowed ==)
161892func (r *TargetSslProxiesService) SetSslCertificates(project string, targetSslProxy string, targetsslproxiessetsslcertificatesrequest *TargetSslProxiesSetSslCertificatesRequest) *TargetSslProxiesSetSslCertificatesCall {
161893	c := &TargetSslProxiesSetSslCertificatesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
161894	c.project = project
161895	c.targetSslProxy = targetSslProxy
161896	c.targetsslproxiessetsslcertificatesrequest = targetsslproxiessetsslcertificatesrequest
161897	return c
161898}
161899
161900// RequestId sets the optional parameter "requestId": An optional
161901// request ID to identify requests. Specify a unique request ID so that
161902// if you must retry your request, the server will know to ignore the
161903// request if it has already been completed.
161904//
161905// For example, consider a situation where you make an initial request
161906// and the request times out. If you make the request again with the
161907// same request ID, the server can check if original operation with the
161908// same request ID was received, and if so, will ignore the second
161909// request. This prevents clients from accidentally creating duplicate
161910// commitments.
161911//
161912// The request ID must be a valid UUID with the exception that zero UUID
161913// is not supported (00000000-0000-0000-0000-000000000000).
161914func (c *TargetSslProxiesSetSslCertificatesCall) RequestId(requestId string) *TargetSslProxiesSetSslCertificatesCall {
161915	c.urlParams_.Set("requestId", requestId)
161916	return c
161917}
161918
161919// Fields allows partial responses to be retrieved. See
161920// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
161921// for more information.
161922func (c *TargetSslProxiesSetSslCertificatesCall) Fields(s ...googleapi.Field) *TargetSslProxiesSetSslCertificatesCall {
161923	c.urlParams_.Set("fields", googleapi.CombineFields(s))
161924	return c
161925}
161926
161927// Context sets the context to be used in this call's Do method. Any
161928// pending HTTP request will be aborted if the provided context is
161929// canceled.
161930func (c *TargetSslProxiesSetSslCertificatesCall) Context(ctx context.Context) *TargetSslProxiesSetSslCertificatesCall {
161931	c.ctx_ = ctx
161932	return c
161933}
161934
161935// Header returns an http.Header that can be modified by the caller to
161936// add HTTP headers to the request.
161937func (c *TargetSslProxiesSetSslCertificatesCall) Header() http.Header {
161938	if c.header_ == nil {
161939		c.header_ = make(http.Header)
161940	}
161941	return c.header_
161942}
161943
161944func (c *TargetSslProxiesSetSslCertificatesCall) doRequest(alt string) (*http.Response, error) {
161945	reqHeaders := make(http.Header)
161946	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
161947	for k, v := range c.header_ {
161948		reqHeaders[k] = v
161949	}
161950	reqHeaders.Set("User-Agent", c.s.userAgent())
161951	var body io.Reader = nil
161952	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetsslproxiessetsslcertificatesrequest)
161953	if err != nil {
161954		return nil, err
161955	}
161956	reqHeaders.Set("Content-Type", "application/json")
161957	c.urlParams_.Set("alt", alt)
161958	c.urlParams_.Set("prettyPrint", "false")
161959	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetSslProxies/{targetSslProxy}/setSslCertificates")
161960	urls += "?" + c.urlParams_.Encode()
161961	req, err := http.NewRequest("POST", urls, body)
161962	if err != nil {
161963		return nil, err
161964	}
161965	req.Header = reqHeaders
161966	googleapi.Expand(req.URL, map[string]string{
161967		"project":        c.project,
161968		"targetSslProxy": c.targetSslProxy,
161969	})
161970	return gensupport.SendRequest(c.ctx_, c.s.client, req)
161971}
161972
161973// Do executes the "compute.targetSslProxies.setSslCertificates" call.
161974// Exactly one of *Operation or error will be non-nil. Any non-2xx
161975// status code is an error. Response headers are in either
161976// *Operation.ServerResponse.Header or (if a response was returned at
161977// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
161978// to check whether the returned error was because
161979// http.StatusNotModified was returned.
161980func (c *TargetSslProxiesSetSslCertificatesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
161981	gensupport.SetOptions(c.urlParams_, opts...)
161982	res, err := c.doRequest("json")
161983	if res != nil && res.StatusCode == http.StatusNotModified {
161984		if res.Body != nil {
161985			res.Body.Close()
161986		}
161987		return nil, &googleapi.Error{
161988			Code:   res.StatusCode,
161989			Header: res.Header,
161990		}
161991	}
161992	if err != nil {
161993		return nil, err
161994	}
161995	defer googleapi.CloseBody(res)
161996	if err := googleapi.CheckResponse(res); err != nil {
161997		return nil, err
161998	}
161999	ret := &Operation{
162000		ServerResponse: googleapi.ServerResponse{
162001			Header:         res.Header,
162002			HTTPStatusCode: res.StatusCode,
162003		},
162004	}
162005	target := &ret
162006	if err := gensupport.DecodeResponse(target, res); err != nil {
162007		return nil, err
162008	}
162009	return ret, nil
162010	// {
162011	//   "description": "Changes SslCertificates for TargetSslProxy. (== suppress_warning http-rest-shadowed ==)",
162012	//   "httpMethod": "POST",
162013	//   "id": "compute.targetSslProxies.setSslCertificates",
162014	//   "parameterOrder": [
162015	//     "project",
162016	//     "targetSslProxy"
162017	//   ],
162018	//   "parameters": {
162019	//     "project": {
162020	//       "description": "Project ID for this request.",
162021	//       "location": "path",
162022	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
162023	//       "required": true,
162024	//       "type": "string"
162025	//     },
162026	//     "requestId": {
162027	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
162028	//       "location": "query",
162029	//       "type": "string"
162030	//     },
162031	//     "targetSslProxy": {
162032	//       "description": "Name of the TargetSslProxy resource whose SslCertificate resource is to be set.",
162033	//       "location": "path",
162034	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
162035	//       "required": true,
162036	//       "type": "string"
162037	//     }
162038	//   },
162039	//   "path": "{project}/global/targetSslProxies/{targetSslProxy}/setSslCertificates",
162040	//   "request": {
162041	//     "$ref": "TargetSslProxiesSetSslCertificatesRequest"
162042	//   },
162043	//   "response": {
162044	//     "$ref": "Operation"
162045	//   },
162046	//   "scopes": [
162047	//     "https://www.googleapis.com/auth/cloud-platform",
162048	//     "https://www.googleapis.com/auth/compute"
162049	//   ]
162050	// }
162051
162052}
162053
162054// method id "compute.targetSslProxies.setSslPolicy":
162055
162056type TargetSslProxiesSetSslPolicyCall struct {
162057	s                  *Service
162058	project            string
162059	targetSslProxy     string
162060	sslpolicyreference *SslPolicyReference
162061	urlParams_         gensupport.URLParams
162062	ctx_               context.Context
162063	header_            http.Header
162064}
162065
162066// SetSslPolicy: Sets the SSL policy for TargetSslProxy. The SSL policy
162067// specifies the server-side support for SSL features. This affects
162068// connections between clients and the SSL proxy load balancer. They do
162069// not affect the connection between the load balancer and the backends.
162070// (== suppress_warning http-rest-shadowed ==)
162071func (r *TargetSslProxiesService) SetSslPolicy(project string, targetSslProxy string, sslpolicyreference *SslPolicyReference) *TargetSslProxiesSetSslPolicyCall {
162072	c := &TargetSslProxiesSetSslPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
162073	c.project = project
162074	c.targetSslProxy = targetSslProxy
162075	c.sslpolicyreference = sslpolicyreference
162076	return c
162077}
162078
162079// RequestId sets the optional parameter "requestId": An optional
162080// request ID to identify requests. Specify a unique request ID so that
162081// if you must retry your request, the server will know to ignore the
162082// request if it has already been completed.
162083//
162084// For example, consider a situation where you make an initial request
162085// and the request times out. If you make the request again with the
162086// same request ID, the server can check if original operation with the
162087// same request ID was received, and if so, will ignore the second
162088// request. This prevents clients from accidentally creating duplicate
162089// commitments.
162090//
162091// The request ID must be a valid UUID with the exception that zero UUID
162092// is not supported (00000000-0000-0000-0000-000000000000).
162093func (c *TargetSslProxiesSetSslPolicyCall) RequestId(requestId string) *TargetSslProxiesSetSslPolicyCall {
162094	c.urlParams_.Set("requestId", requestId)
162095	return c
162096}
162097
162098// Fields allows partial responses to be retrieved. See
162099// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
162100// for more information.
162101func (c *TargetSslProxiesSetSslPolicyCall) Fields(s ...googleapi.Field) *TargetSslProxiesSetSslPolicyCall {
162102	c.urlParams_.Set("fields", googleapi.CombineFields(s))
162103	return c
162104}
162105
162106// Context sets the context to be used in this call's Do method. Any
162107// pending HTTP request will be aborted if the provided context is
162108// canceled.
162109func (c *TargetSslProxiesSetSslPolicyCall) Context(ctx context.Context) *TargetSslProxiesSetSslPolicyCall {
162110	c.ctx_ = ctx
162111	return c
162112}
162113
162114// Header returns an http.Header that can be modified by the caller to
162115// add HTTP headers to the request.
162116func (c *TargetSslProxiesSetSslPolicyCall) Header() http.Header {
162117	if c.header_ == nil {
162118		c.header_ = make(http.Header)
162119	}
162120	return c.header_
162121}
162122
162123func (c *TargetSslProxiesSetSslPolicyCall) doRequest(alt string) (*http.Response, error) {
162124	reqHeaders := make(http.Header)
162125	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
162126	for k, v := range c.header_ {
162127		reqHeaders[k] = v
162128	}
162129	reqHeaders.Set("User-Agent", c.s.userAgent())
162130	var body io.Reader = nil
162131	body, err := googleapi.WithoutDataWrapper.JSONReader(c.sslpolicyreference)
162132	if err != nil {
162133		return nil, err
162134	}
162135	reqHeaders.Set("Content-Type", "application/json")
162136	c.urlParams_.Set("alt", alt)
162137	c.urlParams_.Set("prettyPrint", "false")
162138	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetSslProxies/{targetSslProxy}/setSslPolicy")
162139	urls += "?" + c.urlParams_.Encode()
162140	req, err := http.NewRequest("POST", urls, body)
162141	if err != nil {
162142		return nil, err
162143	}
162144	req.Header = reqHeaders
162145	googleapi.Expand(req.URL, map[string]string{
162146		"project":        c.project,
162147		"targetSslProxy": c.targetSslProxy,
162148	})
162149	return gensupport.SendRequest(c.ctx_, c.s.client, req)
162150}
162151
162152// Do executes the "compute.targetSslProxies.setSslPolicy" call.
162153// Exactly one of *Operation or error will be non-nil. Any non-2xx
162154// status code is an error. Response headers are in either
162155// *Operation.ServerResponse.Header or (if a response was returned at
162156// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
162157// to check whether the returned error was because
162158// http.StatusNotModified was returned.
162159func (c *TargetSslProxiesSetSslPolicyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
162160	gensupport.SetOptions(c.urlParams_, opts...)
162161	res, err := c.doRequest("json")
162162	if res != nil && res.StatusCode == http.StatusNotModified {
162163		if res.Body != nil {
162164			res.Body.Close()
162165		}
162166		return nil, &googleapi.Error{
162167			Code:   res.StatusCode,
162168			Header: res.Header,
162169		}
162170	}
162171	if err != nil {
162172		return nil, err
162173	}
162174	defer googleapi.CloseBody(res)
162175	if err := googleapi.CheckResponse(res); err != nil {
162176		return nil, err
162177	}
162178	ret := &Operation{
162179		ServerResponse: googleapi.ServerResponse{
162180			Header:         res.Header,
162181			HTTPStatusCode: res.StatusCode,
162182		},
162183	}
162184	target := &ret
162185	if err := gensupport.DecodeResponse(target, res); err != nil {
162186		return nil, err
162187	}
162188	return ret, nil
162189	// {
162190	//   "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. (== suppress_warning http-rest-shadowed ==)",
162191	//   "httpMethod": "POST",
162192	//   "id": "compute.targetSslProxies.setSslPolicy",
162193	//   "parameterOrder": [
162194	//     "project",
162195	//     "targetSslProxy"
162196	//   ],
162197	//   "parameters": {
162198	//     "project": {
162199	//       "description": "Project ID for this request.",
162200	//       "location": "path",
162201	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
162202	//       "required": true,
162203	//       "type": "string"
162204	//     },
162205	//     "requestId": {
162206	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
162207	//       "location": "query",
162208	//       "type": "string"
162209	//     },
162210	//     "targetSslProxy": {
162211	//       "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.",
162212	//       "location": "path",
162213	//       "required": true,
162214	//       "type": "string"
162215	//     }
162216	//   },
162217	//   "path": "{project}/global/targetSslProxies/{targetSslProxy}/setSslPolicy",
162218	//   "request": {
162219	//     "$ref": "SslPolicyReference"
162220	//   },
162221	//   "response": {
162222	//     "$ref": "Operation"
162223	//   },
162224	//   "scopes": [
162225	//     "https://www.googleapis.com/auth/cloud-platform",
162226	//     "https://www.googleapis.com/auth/compute"
162227	//   ]
162228	// }
162229
162230}
162231
162232// method id "compute.targetSslProxies.testIamPermissions":
162233
162234type TargetSslProxiesTestIamPermissionsCall struct {
162235	s                      *Service
162236	project                string
162237	resource               string
162238	testpermissionsrequest *TestPermissionsRequest
162239	urlParams_             gensupport.URLParams
162240	ctx_                   context.Context
162241	header_                http.Header
162242}
162243
162244// TestIamPermissions: Returns permissions that a caller has on the
162245// specified resource. (== suppress_warning http-rest-shadowed ==)
162246func (r *TargetSslProxiesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *TargetSslProxiesTestIamPermissionsCall {
162247	c := &TargetSslProxiesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
162248	c.project = project
162249	c.resource = resource
162250	c.testpermissionsrequest = testpermissionsrequest
162251	return c
162252}
162253
162254// Fields allows partial responses to be retrieved. See
162255// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
162256// for more information.
162257func (c *TargetSslProxiesTestIamPermissionsCall) Fields(s ...googleapi.Field) *TargetSslProxiesTestIamPermissionsCall {
162258	c.urlParams_.Set("fields", googleapi.CombineFields(s))
162259	return c
162260}
162261
162262// Context sets the context to be used in this call's Do method. Any
162263// pending HTTP request will be aborted if the provided context is
162264// canceled.
162265func (c *TargetSslProxiesTestIamPermissionsCall) Context(ctx context.Context) *TargetSslProxiesTestIamPermissionsCall {
162266	c.ctx_ = ctx
162267	return c
162268}
162269
162270// Header returns an http.Header that can be modified by the caller to
162271// add HTTP headers to the request.
162272func (c *TargetSslProxiesTestIamPermissionsCall) Header() http.Header {
162273	if c.header_ == nil {
162274		c.header_ = make(http.Header)
162275	}
162276	return c.header_
162277}
162278
162279func (c *TargetSslProxiesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
162280	reqHeaders := make(http.Header)
162281	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
162282	for k, v := range c.header_ {
162283		reqHeaders[k] = v
162284	}
162285	reqHeaders.Set("User-Agent", c.s.userAgent())
162286	var body io.Reader = nil
162287	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
162288	if err != nil {
162289		return nil, err
162290	}
162291	reqHeaders.Set("Content-Type", "application/json")
162292	c.urlParams_.Set("alt", alt)
162293	c.urlParams_.Set("prettyPrint", "false")
162294	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetSslProxies/{resource}/testIamPermissions")
162295	urls += "?" + c.urlParams_.Encode()
162296	req, err := http.NewRequest("POST", urls, body)
162297	if err != nil {
162298		return nil, err
162299	}
162300	req.Header = reqHeaders
162301	googleapi.Expand(req.URL, map[string]string{
162302		"project":  c.project,
162303		"resource": c.resource,
162304	})
162305	return gensupport.SendRequest(c.ctx_, c.s.client, req)
162306}
162307
162308// Do executes the "compute.targetSslProxies.testIamPermissions" call.
162309// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
162310// non-2xx status code is an error. Response headers are in either
162311// *TestPermissionsResponse.ServerResponse.Header or (if a response was
162312// returned at all) in error.(*googleapi.Error).Header. Use
162313// googleapi.IsNotModified to check whether the returned error was
162314// because http.StatusNotModified was returned.
162315func (c *TargetSslProxiesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
162316	gensupport.SetOptions(c.urlParams_, opts...)
162317	res, err := c.doRequest("json")
162318	if res != nil && res.StatusCode == http.StatusNotModified {
162319		if res.Body != nil {
162320			res.Body.Close()
162321		}
162322		return nil, &googleapi.Error{
162323			Code:   res.StatusCode,
162324			Header: res.Header,
162325		}
162326	}
162327	if err != nil {
162328		return nil, err
162329	}
162330	defer googleapi.CloseBody(res)
162331	if err := googleapi.CheckResponse(res); err != nil {
162332		return nil, err
162333	}
162334	ret := &TestPermissionsResponse{
162335		ServerResponse: googleapi.ServerResponse{
162336			Header:         res.Header,
162337			HTTPStatusCode: res.StatusCode,
162338		},
162339	}
162340	target := &ret
162341	if err := gensupport.DecodeResponse(target, res); err != nil {
162342		return nil, err
162343	}
162344	return ret, nil
162345	// {
162346	//   "description": "Returns permissions that a caller has on the specified resource. (== suppress_warning http-rest-shadowed ==)",
162347	//   "httpMethod": "POST",
162348	//   "id": "compute.targetSslProxies.testIamPermissions",
162349	//   "parameterOrder": [
162350	//     "project",
162351	//     "resource"
162352	//   ],
162353	//   "parameters": {
162354	//     "project": {
162355	//       "description": "Project ID for this request.",
162356	//       "location": "path",
162357	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
162358	//       "required": true,
162359	//       "type": "string"
162360	//     },
162361	//     "resource": {
162362	//       "description": "Name or id of the resource for this request.",
162363	//       "location": "path",
162364	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
162365	//       "required": true,
162366	//       "type": "string"
162367	//     }
162368	//   },
162369	//   "path": "{project}/global/targetSslProxies/{resource}/testIamPermissions",
162370	//   "request": {
162371	//     "$ref": "TestPermissionsRequest"
162372	//   },
162373	//   "response": {
162374	//     "$ref": "TestPermissionsResponse"
162375	//   },
162376	//   "scopes": [
162377	//     "https://www.googleapis.com/auth/cloud-platform",
162378	//     "https://www.googleapis.com/auth/compute",
162379	//     "https://www.googleapis.com/auth/compute.readonly"
162380	//   ]
162381	// }
162382
162383}
162384
162385// method id "compute.targetTcpProxies.delete":
162386
162387type TargetTcpProxiesDeleteCall struct {
162388	s              *Service
162389	project        string
162390	targetTcpProxy string
162391	urlParams_     gensupport.URLParams
162392	ctx_           context.Context
162393	header_        http.Header
162394}
162395
162396// Delete: Deletes the specified TargetTcpProxy resource. (==
162397// suppress_warning http-rest-shadowed ==)
162398func (r *TargetTcpProxiesService) Delete(project string, targetTcpProxy string) *TargetTcpProxiesDeleteCall {
162399	c := &TargetTcpProxiesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
162400	c.project = project
162401	c.targetTcpProxy = targetTcpProxy
162402	return c
162403}
162404
162405// RequestId sets the optional parameter "requestId": An optional
162406// request ID to identify requests. Specify a unique request ID so that
162407// if you must retry your request, the server will know to ignore the
162408// request if it has already been completed.
162409//
162410// For example, consider a situation where you make an initial request
162411// and the request times out. If you make the request again with the
162412// same request ID, the server can check if original operation with the
162413// same request ID was received, and if so, will ignore the second
162414// request. This prevents clients from accidentally creating duplicate
162415// commitments.
162416//
162417// The request ID must be a valid UUID with the exception that zero UUID
162418// is not supported (00000000-0000-0000-0000-000000000000).
162419func (c *TargetTcpProxiesDeleteCall) RequestId(requestId string) *TargetTcpProxiesDeleteCall {
162420	c.urlParams_.Set("requestId", requestId)
162421	return c
162422}
162423
162424// Fields allows partial responses to be retrieved. See
162425// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
162426// for more information.
162427func (c *TargetTcpProxiesDeleteCall) Fields(s ...googleapi.Field) *TargetTcpProxiesDeleteCall {
162428	c.urlParams_.Set("fields", googleapi.CombineFields(s))
162429	return c
162430}
162431
162432// Context sets the context to be used in this call's Do method. Any
162433// pending HTTP request will be aborted if the provided context is
162434// canceled.
162435func (c *TargetTcpProxiesDeleteCall) Context(ctx context.Context) *TargetTcpProxiesDeleteCall {
162436	c.ctx_ = ctx
162437	return c
162438}
162439
162440// Header returns an http.Header that can be modified by the caller to
162441// add HTTP headers to the request.
162442func (c *TargetTcpProxiesDeleteCall) Header() http.Header {
162443	if c.header_ == nil {
162444		c.header_ = make(http.Header)
162445	}
162446	return c.header_
162447}
162448
162449func (c *TargetTcpProxiesDeleteCall) doRequest(alt string) (*http.Response, error) {
162450	reqHeaders := make(http.Header)
162451	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
162452	for k, v := range c.header_ {
162453		reqHeaders[k] = v
162454	}
162455	reqHeaders.Set("User-Agent", c.s.userAgent())
162456	var body io.Reader = nil
162457	c.urlParams_.Set("alt", alt)
162458	c.urlParams_.Set("prettyPrint", "false")
162459	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetTcpProxies/{targetTcpProxy}")
162460	urls += "?" + c.urlParams_.Encode()
162461	req, err := http.NewRequest("DELETE", urls, body)
162462	if err != nil {
162463		return nil, err
162464	}
162465	req.Header = reqHeaders
162466	googleapi.Expand(req.URL, map[string]string{
162467		"project":        c.project,
162468		"targetTcpProxy": c.targetTcpProxy,
162469	})
162470	return gensupport.SendRequest(c.ctx_, c.s.client, req)
162471}
162472
162473// Do executes the "compute.targetTcpProxies.delete" call.
162474// Exactly one of *Operation or error will be non-nil. Any non-2xx
162475// status code is an error. Response headers are in either
162476// *Operation.ServerResponse.Header or (if a response was returned at
162477// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
162478// to check whether the returned error was because
162479// http.StatusNotModified was returned.
162480func (c *TargetTcpProxiesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
162481	gensupport.SetOptions(c.urlParams_, opts...)
162482	res, err := c.doRequest("json")
162483	if res != nil && res.StatusCode == http.StatusNotModified {
162484		if res.Body != nil {
162485			res.Body.Close()
162486		}
162487		return nil, &googleapi.Error{
162488			Code:   res.StatusCode,
162489			Header: res.Header,
162490		}
162491	}
162492	if err != nil {
162493		return nil, err
162494	}
162495	defer googleapi.CloseBody(res)
162496	if err := googleapi.CheckResponse(res); err != nil {
162497		return nil, err
162498	}
162499	ret := &Operation{
162500		ServerResponse: googleapi.ServerResponse{
162501			Header:         res.Header,
162502			HTTPStatusCode: res.StatusCode,
162503		},
162504	}
162505	target := &ret
162506	if err := gensupport.DecodeResponse(target, res); err != nil {
162507		return nil, err
162508	}
162509	return ret, nil
162510	// {
162511	//   "description": "Deletes the specified TargetTcpProxy resource. (== suppress_warning http-rest-shadowed ==)",
162512	//   "httpMethod": "DELETE",
162513	//   "id": "compute.targetTcpProxies.delete",
162514	//   "parameterOrder": [
162515	//     "project",
162516	//     "targetTcpProxy"
162517	//   ],
162518	//   "parameters": {
162519	//     "project": {
162520	//       "description": "Project ID for this request.",
162521	//       "location": "path",
162522	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
162523	//       "required": true,
162524	//       "type": "string"
162525	//     },
162526	//     "requestId": {
162527	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
162528	//       "location": "query",
162529	//       "type": "string"
162530	//     },
162531	//     "targetTcpProxy": {
162532	//       "description": "Name of the TargetTcpProxy resource to delete.",
162533	//       "location": "path",
162534	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
162535	//       "required": true,
162536	//       "type": "string"
162537	//     }
162538	//   },
162539	//   "path": "{project}/global/targetTcpProxies/{targetTcpProxy}",
162540	//   "response": {
162541	//     "$ref": "Operation"
162542	//   },
162543	//   "scopes": [
162544	//     "https://www.googleapis.com/auth/cloud-platform",
162545	//     "https://www.googleapis.com/auth/compute"
162546	//   ]
162547	// }
162548
162549}
162550
162551// method id "compute.targetTcpProxies.get":
162552
162553type TargetTcpProxiesGetCall struct {
162554	s              *Service
162555	project        string
162556	targetTcpProxy string
162557	urlParams_     gensupport.URLParams
162558	ifNoneMatch_   string
162559	ctx_           context.Context
162560	header_        http.Header
162561}
162562
162563// Get: Returns the specified TargetTcpProxy resource. Gets a list of
162564// available target TCP proxies by making a list() request. (==
162565// suppress_warning http-rest-shadowed ==)
162566func (r *TargetTcpProxiesService) Get(project string, targetTcpProxy string) *TargetTcpProxiesGetCall {
162567	c := &TargetTcpProxiesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
162568	c.project = project
162569	c.targetTcpProxy = targetTcpProxy
162570	return c
162571}
162572
162573// Fields allows partial responses to be retrieved. See
162574// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
162575// for more information.
162576func (c *TargetTcpProxiesGetCall) Fields(s ...googleapi.Field) *TargetTcpProxiesGetCall {
162577	c.urlParams_.Set("fields", googleapi.CombineFields(s))
162578	return c
162579}
162580
162581// IfNoneMatch sets the optional parameter which makes the operation
162582// fail if the object's ETag matches the given value. This is useful for
162583// getting updates only after the object has changed since the last
162584// request. Use googleapi.IsNotModified to check whether the response
162585// error from Do is the result of In-None-Match.
162586func (c *TargetTcpProxiesGetCall) IfNoneMatch(entityTag string) *TargetTcpProxiesGetCall {
162587	c.ifNoneMatch_ = entityTag
162588	return c
162589}
162590
162591// Context sets the context to be used in this call's Do method. Any
162592// pending HTTP request will be aborted if the provided context is
162593// canceled.
162594func (c *TargetTcpProxiesGetCall) Context(ctx context.Context) *TargetTcpProxiesGetCall {
162595	c.ctx_ = ctx
162596	return c
162597}
162598
162599// Header returns an http.Header that can be modified by the caller to
162600// add HTTP headers to the request.
162601func (c *TargetTcpProxiesGetCall) Header() http.Header {
162602	if c.header_ == nil {
162603		c.header_ = make(http.Header)
162604	}
162605	return c.header_
162606}
162607
162608func (c *TargetTcpProxiesGetCall) doRequest(alt string) (*http.Response, error) {
162609	reqHeaders := make(http.Header)
162610	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
162611	for k, v := range c.header_ {
162612		reqHeaders[k] = v
162613	}
162614	reqHeaders.Set("User-Agent", c.s.userAgent())
162615	if c.ifNoneMatch_ != "" {
162616		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
162617	}
162618	var body io.Reader = nil
162619	c.urlParams_.Set("alt", alt)
162620	c.urlParams_.Set("prettyPrint", "false")
162621	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetTcpProxies/{targetTcpProxy}")
162622	urls += "?" + c.urlParams_.Encode()
162623	req, err := http.NewRequest("GET", urls, body)
162624	if err != nil {
162625		return nil, err
162626	}
162627	req.Header = reqHeaders
162628	googleapi.Expand(req.URL, map[string]string{
162629		"project":        c.project,
162630		"targetTcpProxy": c.targetTcpProxy,
162631	})
162632	return gensupport.SendRequest(c.ctx_, c.s.client, req)
162633}
162634
162635// Do executes the "compute.targetTcpProxies.get" call.
162636// Exactly one of *TargetTcpProxy or error will be non-nil. Any non-2xx
162637// status code is an error. Response headers are in either
162638// *TargetTcpProxy.ServerResponse.Header or (if a response was returned
162639// at all) in error.(*googleapi.Error).Header. Use
162640// googleapi.IsNotModified to check whether the returned error was
162641// because http.StatusNotModified was returned.
162642func (c *TargetTcpProxiesGetCall) Do(opts ...googleapi.CallOption) (*TargetTcpProxy, error) {
162643	gensupport.SetOptions(c.urlParams_, opts...)
162644	res, err := c.doRequest("json")
162645	if res != nil && res.StatusCode == http.StatusNotModified {
162646		if res.Body != nil {
162647			res.Body.Close()
162648		}
162649		return nil, &googleapi.Error{
162650			Code:   res.StatusCode,
162651			Header: res.Header,
162652		}
162653	}
162654	if err != nil {
162655		return nil, err
162656	}
162657	defer googleapi.CloseBody(res)
162658	if err := googleapi.CheckResponse(res); err != nil {
162659		return nil, err
162660	}
162661	ret := &TargetTcpProxy{
162662		ServerResponse: googleapi.ServerResponse{
162663			Header:         res.Header,
162664			HTTPStatusCode: res.StatusCode,
162665		},
162666	}
162667	target := &ret
162668	if err := gensupport.DecodeResponse(target, res); err != nil {
162669		return nil, err
162670	}
162671	return ret, nil
162672	// {
162673	//   "description": "Returns the specified TargetTcpProxy resource. Gets a list of available target TCP proxies by making a list() request. (== suppress_warning http-rest-shadowed ==)",
162674	//   "httpMethod": "GET",
162675	//   "id": "compute.targetTcpProxies.get",
162676	//   "parameterOrder": [
162677	//     "project",
162678	//     "targetTcpProxy"
162679	//   ],
162680	//   "parameters": {
162681	//     "project": {
162682	//       "description": "Project ID for this request.",
162683	//       "location": "path",
162684	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
162685	//       "required": true,
162686	//       "type": "string"
162687	//     },
162688	//     "targetTcpProxy": {
162689	//       "description": "Name of the TargetTcpProxy resource to return.",
162690	//       "location": "path",
162691	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
162692	//       "required": true,
162693	//       "type": "string"
162694	//     }
162695	//   },
162696	//   "path": "{project}/global/targetTcpProxies/{targetTcpProxy}",
162697	//   "response": {
162698	//     "$ref": "TargetTcpProxy"
162699	//   },
162700	//   "scopes": [
162701	//     "https://www.googleapis.com/auth/cloud-platform",
162702	//     "https://www.googleapis.com/auth/compute",
162703	//     "https://www.googleapis.com/auth/compute.readonly"
162704	//   ]
162705	// }
162706
162707}
162708
162709// method id "compute.targetTcpProxies.insert":
162710
162711type TargetTcpProxiesInsertCall struct {
162712	s              *Service
162713	project        string
162714	targettcpproxy *TargetTcpProxy
162715	urlParams_     gensupport.URLParams
162716	ctx_           context.Context
162717	header_        http.Header
162718}
162719
162720// Insert: Creates a TargetTcpProxy resource in the specified project
162721// using the data included in the request. (== suppress_warning
162722// http-rest-shadowed ==)
162723func (r *TargetTcpProxiesService) Insert(project string, targettcpproxy *TargetTcpProxy) *TargetTcpProxiesInsertCall {
162724	c := &TargetTcpProxiesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
162725	c.project = project
162726	c.targettcpproxy = targettcpproxy
162727	return c
162728}
162729
162730// RequestId sets the optional parameter "requestId": An optional
162731// request ID to identify requests. Specify a unique request ID so that
162732// if you must retry your request, the server will know to ignore the
162733// request if it has already been completed.
162734//
162735// For example, consider a situation where you make an initial request
162736// and the request times out. If you make the request again with the
162737// same request ID, the server can check if original operation with the
162738// same request ID was received, and if so, will ignore the second
162739// request. This prevents clients from accidentally creating duplicate
162740// commitments.
162741//
162742// The request ID must be a valid UUID with the exception that zero UUID
162743// is not supported (00000000-0000-0000-0000-000000000000).
162744func (c *TargetTcpProxiesInsertCall) RequestId(requestId string) *TargetTcpProxiesInsertCall {
162745	c.urlParams_.Set("requestId", requestId)
162746	return c
162747}
162748
162749// Fields allows partial responses to be retrieved. See
162750// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
162751// for more information.
162752func (c *TargetTcpProxiesInsertCall) Fields(s ...googleapi.Field) *TargetTcpProxiesInsertCall {
162753	c.urlParams_.Set("fields", googleapi.CombineFields(s))
162754	return c
162755}
162756
162757// Context sets the context to be used in this call's Do method. Any
162758// pending HTTP request will be aborted if the provided context is
162759// canceled.
162760func (c *TargetTcpProxiesInsertCall) Context(ctx context.Context) *TargetTcpProxiesInsertCall {
162761	c.ctx_ = ctx
162762	return c
162763}
162764
162765// Header returns an http.Header that can be modified by the caller to
162766// add HTTP headers to the request.
162767func (c *TargetTcpProxiesInsertCall) Header() http.Header {
162768	if c.header_ == nil {
162769		c.header_ = make(http.Header)
162770	}
162771	return c.header_
162772}
162773
162774func (c *TargetTcpProxiesInsertCall) doRequest(alt string) (*http.Response, error) {
162775	reqHeaders := make(http.Header)
162776	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
162777	for k, v := range c.header_ {
162778		reqHeaders[k] = v
162779	}
162780	reqHeaders.Set("User-Agent", c.s.userAgent())
162781	var body io.Reader = nil
162782	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targettcpproxy)
162783	if err != nil {
162784		return nil, err
162785	}
162786	reqHeaders.Set("Content-Type", "application/json")
162787	c.urlParams_.Set("alt", alt)
162788	c.urlParams_.Set("prettyPrint", "false")
162789	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetTcpProxies")
162790	urls += "?" + c.urlParams_.Encode()
162791	req, err := http.NewRequest("POST", urls, body)
162792	if err != nil {
162793		return nil, err
162794	}
162795	req.Header = reqHeaders
162796	googleapi.Expand(req.URL, map[string]string{
162797		"project": c.project,
162798	})
162799	return gensupport.SendRequest(c.ctx_, c.s.client, req)
162800}
162801
162802// Do executes the "compute.targetTcpProxies.insert" call.
162803// Exactly one of *Operation or error will be non-nil. Any non-2xx
162804// status code is an error. Response headers are in either
162805// *Operation.ServerResponse.Header or (if a response was returned at
162806// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
162807// to check whether the returned error was because
162808// http.StatusNotModified was returned.
162809func (c *TargetTcpProxiesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
162810	gensupport.SetOptions(c.urlParams_, opts...)
162811	res, err := c.doRequest("json")
162812	if res != nil && res.StatusCode == http.StatusNotModified {
162813		if res.Body != nil {
162814			res.Body.Close()
162815		}
162816		return nil, &googleapi.Error{
162817			Code:   res.StatusCode,
162818			Header: res.Header,
162819		}
162820	}
162821	if err != nil {
162822		return nil, err
162823	}
162824	defer googleapi.CloseBody(res)
162825	if err := googleapi.CheckResponse(res); err != nil {
162826		return nil, err
162827	}
162828	ret := &Operation{
162829		ServerResponse: googleapi.ServerResponse{
162830			Header:         res.Header,
162831			HTTPStatusCode: res.StatusCode,
162832		},
162833	}
162834	target := &ret
162835	if err := gensupport.DecodeResponse(target, res); err != nil {
162836		return nil, err
162837	}
162838	return ret, nil
162839	// {
162840	//   "description": "Creates a TargetTcpProxy resource in the specified project using the data included in the request. (== suppress_warning http-rest-shadowed ==)",
162841	//   "httpMethod": "POST",
162842	//   "id": "compute.targetTcpProxies.insert",
162843	//   "parameterOrder": [
162844	//     "project"
162845	//   ],
162846	//   "parameters": {
162847	//     "project": {
162848	//       "description": "Project ID for this request.",
162849	//       "location": "path",
162850	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
162851	//       "required": true,
162852	//       "type": "string"
162853	//     },
162854	//     "requestId": {
162855	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
162856	//       "location": "query",
162857	//       "type": "string"
162858	//     }
162859	//   },
162860	//   "path": "{project}/global/targetTcpProxies",
162861	//   "request": {
162862	//     "$ref": "TargetTcpProxy"
162863	//   },
162864	//   "response": {
162865	//     "$ref": "Operation"
162866	//   },
162867	//   "scopes": [
162868	//     "https://www.googleapis.com/auth/cloud-platform",
162869	//     "https://www.googleapis.com/auth/compute"
162870	//   ]
162871	// }
162872
162873}
162874
162875// method id "compute.targetTcpProxies.list":
162876
162877type TargetTcpProxiesListCall struct {
162878	s            *Service
162879	project      string
162880	urlParams_   gensupport.URLParams
162881	ifNoneMatch_ string
162882	ctx_         context.Context
162883	header_      http.Header
162884}
162885
162886// List: Retrieves the list of TargetTcpProxy resources available to the
162887// specified project. (== suppress_warning http-rest-shadowed ==)
162888func (r *TargetTcpProxiesService) List(project string) *TargetTcpProxiesListCall {
162889	c := &TargetTcpProxiesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
162890	c.project = project
162891	return c
162892}
162893
162894// Filter sets the optional parameter "filter": A filter expression that
162895// filters resources listed in the response. The expression must specify
162896// the field name, a comparison operator, and the value that you want to
162897// use for filtering. The value must be a string, a number, or a
162898// boolean. The comparison operator must be either =, !=, >, or <.
162899//
162900// For example, if you are filtering Compute Engine instances, you can
162901// exclude instances named example-instance by specifying name !=
162902// example-instance.
162903//
162904// You can also filter nested fields. For example, you could specify
162905// scheduling.automaticRestart = false to include instances only if they
162906// are not scheduled for automatic restarts. You can use filtering on
162907// nested fields to filter based on resource labels.
162908//
162909// To filter on multiple expressions, provide each separate expression
162910// within parentheses. For example, (scheduling.automaticRestart = true)
162911// (cpuPlatform = "Intel Skylake"). By default, each expression is an
162912// AND expression. However, you can include AND and OR expressions
162913// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
162914// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
162915// true).
162916func (c *TargetTcpProxiesListCall) Filter(filter string) *TargetTcpProxiesListCall {
162917	c.urlParams_.Set("filter", filter)
162918	return c
162919}
162920
162921// MaxResults sets the optional parameter "maxResults": The maximum
162922// number of results per page that should be returned. If the number of
162923// available results is larger than maxResults, Compute Engine returns a
162924// nextPageToken that can be used to get the next page of results in
162925// subsequent list requests. Acceptable values are 0 to 500, inclusive.
162926// (Default: 500)
162927func (c *TargetTcpProxiesListCall) MaxResults(maxResults int64) *TargetTcpProxiesListCall {
162928	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
162929	return c
162930}
162931
162932// OrderBy sets the optional parameter "orderBy": Sorts list results by
162933// a certain order. By default, results are returned in alphanumerical
162934// order based on the resource name.
162935//
162936// You can also sort results in descending order based on the creation
162937// timestamp using orderBy="creationTimestamp desc". This sorts results
162938// based on the creationTimestamp field in reverse chronological order
162939// (newest result first). Use this to sort resources like operations so
162940// that the newest operation is returned first.
162941//
162942// Currently, only sorting by name or creationTimestamp desc is
162943// supported.
162944func (c *TargetTcpProxiesListCall) OrderBy(orderBy string) *TargetTcpProxiesListCall {
162945	c.urlParams_.Set("orderBy", orderBy)
162946	return c
162947}
162948
162949// PageToken sets the optional parameter "pageToken": Specifies a page
162950// token to use. Set pageToken to the nextPageToken returned by a
162951// previous list request to get the next page of results.
162952func (c *TargetTcpProxiesListCall) PageToken(pageToken string) *TargetTcpProxiesListCall {
162953	c.urlParams_.Set("pageToken", pageToken)
162954	return c
162955}
162956
162957// Fields allows partial responses to be retrieved. See
162958// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
162959// for more information.
162960func (c *TargetTcpProxiesListCall) Fields(s ...googleapi.Field) *TargetTcpProxiesListCall {
162961	c.urlParams_.Set("fields", googleapi.CombineFields(s))
162962	return c
162963}
162964
162965// IfNoneMatch sets the optional parameter which makes the operation
162966// fail if the object's ETag matches the given value. This is useful for
162967// getting updates only after the object has changed since the last
162968// request. Use googleapi.IsNotModified to check whether the response
162969// error from Do is the result of In-None-Match.
162970func (c *TargetTcpProxiesListCall) IfNoneMatch(entityTag string) *TargetTcpProxiesListCall {
162971	c.ifNoneMatch_ = entityTag
162972	return c
162973}
162974
162975// Context sets the context to be used in this call's Do method. Any
162976// pending HTTP request will be aborted if the provided context is
162977// canceled.
162978func (c *TargetTcpProxiesListCall) Context(ctx context.Context) *TargetTcpProxiesListCall {
162979	c.ctx_ = ctx
162980	return c
162981}
162982
162983// Header returns an http.Header that can be modified by the caller to
162984// add HTTP headers to the request.
162985func (c *TargetTcpProxiesListCall) Header() http.Header {
162986	if c.header_ == nil {
162987		c.header_ = make(http.Header)
162988	}
162989	return c.header_
162990}
162991
162992func (c *TargetTcpProxiesListCall) doRequest(alt string) (*http.Response, error) {
162993	reqHeaders := make(http.Header)
162994	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
162995	for k, v := range c.header_ {
162996		reqHeaders[k] = v
162997	}
162998	reqHeaders.Set("User-Agent", c.s.userAgent())
162999	if c.ifNoneMatch_ != "" {
163000		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
163001	}
163002	var body io.Reader = nil
163003	c.urlParams_.Set("alt", alt)
163004	c.urlParams_.Set("prettyPrint", "false")
163005	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetTcpProxies")
163006	urls += "?" + c.urlParams_.Encode()
163007	req, err := http.NewRequest("GET", urls, body)
163008	if err != nil {
163009		return nil, err
163010	}
163011	req.Header = reqHeaders
163012	googleapi.Expand(req.URL, map[string]string{
163013		"project": c.project,
163014	})
163015	return gensupport.SendRequest(c.ctx_, c.s.client, req)
163016}
163017
163018// Do executes the "compute.targetTcpProxies.list" call.
163019// Exactly one of *TargetTcpProxyList or error will be non-nil. Any
163020// non-2xx status code is an error. Response headers are in either
163021// *TargetTcpProxyList.ServerResponse.Header or (if a response was
163022// returned at all) in error.(*googleapi.Error).Header. Use
163023// googleapi.IsNotModified to check whether the returned error was
163024// because http.StatusNotModified was returned.
163025func (c *TargetTcpProxiesListCall) Do(opts ...googleapi.CallOption) (*TargetTcpProxyList, error) {
163026	gensupport.SetOptions(c.urlParams_, opts...)
163027	res, err := c.doRequest("json")
163028	if res != nil && res.StatusCode == http.StatusNotModified {
163029		if res.Body != nil {
163030			res.Body.Close()
163031		}
163032		return nil, &googleapi.Error{
163033			Code:   res.StatusCode,
163034			Header: res.Header,
163035		}
163036	}
163037	if err != nil {
163038		return nil, err
163039	}
163040	defer googleapi.CloseBody(res)
163041	if err := googleapi.CheckResponse(res); err != nil {
163042		return nil, err
163043	}
163044	ret := &TargetTcpProxyList{
163045		ServerResponse: googleapi.ServerResponse{
163046			Header:         res.Header,
163047			HTTPStatusCode: res.StatusCode,
163048		},
163049	}
163050	target := &ret
163051	if err := gensupport.DecodeResponse(target, res); err != nil {
163052		return nil, err
163053	}
163054	return ret, nil
163055	// {
163056	//   "description": "Retrieves the list of TargetTcpProxy resources available to the specified project. (== suppress_warning http-rest-shadowed ==)",
163057	//   "httpMethod": "GET",
163058	//   "id": "compute.targetTcpProxies.list",
163059	//   "parameterOrder": [
163060	//     "project"
163061	//   ],
163062	//   "parameters": {
163063	//     "filter": {
163064	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
163065	//       "location": "query",
163066	//       "type": "string"
163067	//     },
163068	//     "maxResults": {
163069	//       "default": "500",
163070	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
163071	//       "format": "uint32",
163072	//       "location": "query",
163073	//       "minimum": "0",
163074	//       "type": "integer"
163075	//     },
163076	//     "orderBy": {
163077	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
163078	//       "location": "query",
163079	//       "type": "string"
163080	//     },
163081	//     "pageToken": {
163082	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
163083	//       "location": "query",
163084	//       "type": "string"
163085	//     },
163086	//     "project": {
163087	//       "description": "Project ID for this request.",
163088	//       "location": "path",
163089	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
163090	//       "required": true,
163091	//       "type": "string"
163092	//     }
163093	//   },
163094	//   "path": "{project}/global/targetTcpProxies",
163095	//   "response": {
163096	//     "$ref": "TargetTcpProxyList"
163097	//   },
163098	//   "scopes": [
163099	//     "https://www.googleapis.com/auth/cloud-platform",
163100	//     "https://www.googleapis.com/auth/compute",
163101	//     "https://www.googleapis.com/auth/compute.readonly"
163102	//   ]
163103	// }
163104
163105}
163106
163107// Pages invokes f for each page of results.
163108// A non-nil error returned from f will halt the iteration.
163109// The provided context supersedes any context provided to the Context method.
163110func (c *TargetTcpProxiesListCall) Pages(ctx context.Context, f func(*TargetTcpProxyList) error) error {
163111	c.ctx_ = ctx
163112	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
163113	for {
163114		x, err := c.Do()
163115		if err != nil {
163116			return err
163117		}
163118		if err := f(x); err != nil {
163119			return err
163120		}
163121		if x.NextPageToken == "" {
163122			return nil
163123		}
163124		c.PageToken(x.NextPageToken)
163125	}
163126}
163127
163128// method id "compute.targetTcpProxies.setBackendService":
163129
163130type TargetTcpProxiesSetBackendServiceCall struct {
163131	s                                        *Service
163132	project                                  string
163133	targetTcpProxy                           string
163134	targettcpproxiessetbackendservicerequest *TargetTcpProxiesSetBackendServiceRequest
163135	urlParams_                               gensupport.URLParams
163136	ctx_                                     context.Context
163137	header_                                  http.Header
163138}
163139
163140// SetBackendService: Changes the BackendService for TargetTcpProxy. (==
163141// suppress_warning http-rest-shadowed ==)
163142func (r *TargetTcpProxiesService) SetBackendService(project string, targetTcpProxy string, targettcpproxiessetbackendservicerequest *TargetTcpProxiesSetBackendServiceRequest) *TargetTcpProxiesSetBackendServiceCall {
163143	c := &TargetTcpProxiesSetBackendServiceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
163144	c.project = project
163145	c.targetTcpProxy = targetTcpProxy
163146	c.targettcpproxiessetbackendservicerequest = targettcpproxiessetbackendservicerequest
163147	return c
163148}
163149
163150// RequestId sets the optional parameter "requestId": An optional
163151// request ID to identify requests. Specify a unique request ID so that
163152// if you must retry your request, the server will know to ignore the
163153// request if it has already been completed.
163154//
163155// For example, consider a situation where you make an initial request
163156// and the request times out. If you make the request again with the
163157// same request ID, the server can check if original operation with the
163158// same request ID was received, and if so, will ignore the second
163159// request. This prevents clients from accidentally creating duplicate
163160// commitments.
163161//
163162// The request ID must be a valid UUID with the exception that zero UUID
163163// is not supported (00000000-0000-0000-0000-000000000000).
163164func (c *TargetTcpProxiesSetBackendServiceCall) RequestId(requestId string) *TargetTcpProxiesSetBackendServiceCall {
163165	c.urlParams_.Set("requestId", requestId)
163166	return c
163167}
163168
163169// Fields allows partial responses to be retrieved. See
163170// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
163171// for more information.
163172func (c *TargetTcpProxiesSetBackendServiceCall) Fields(s ...googleapi.Field) *TargetTcpProxiesSetBackendServiceCall {
163173	c.urlParams_.Set("fields", googleapi.CombineFields(s))
163174	return c
163175}
163176
163177// Context sets the context to be used in this call's Do method. Any
163178// pending HTTP request will be aborted if the provided context is
163179// canceled.
163180func (c *TargetTcpProxiesSetBackendServiceCall) Context(ctx context.Context) *TargetTcpProxiesSetBackendServiceCall {
163181	c.ctx_ = ctx
163182	return c
163183}
163184
163185// Header returns an http.Header that can be modified by the caller to
163186// add HTTP headers to the request.
163187func (c *TargetTcpProxiesSetBackendServiceCall) Header() http.Header {
163188	if c.header_ == nil {
163189		c.header_ = make(http.Header)
163190	}
163191	return c.header_
163192}
163193
163194func (c *TargetTcpProxiesSetBackendServiceCall) doRequest(alt string) (*http.Response, error) {
163195	reqHeaders := make(http.Header)
163196	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
163197	for k, v := range c.header_ {
163198		reqHeaders[k] = v
163199	}
163200	reqHeaders.Set("User-Agent", c.s.userAgent())
163201	var body io.Reader = nil
163202	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targettcpproxiessetbackendservicerequest)
163203	if err != nil {
163204		return nil, err
163205	}
163206	reqHeaders.Set("Content-Type", "application/json")
163207	c.urlParams_.Set("alt", alt)
163208	c.urlParams_.Set("prettyPrint", "false")
163209	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetTcpProxies/{targetTcpProxy}/setBackendService")
163210	urls += "?" + c.urlParams_.Encode()
163211	req, err := http.NewRequest("POST", urls, body)
163212	if err != nil {
163213		return nil, err
163214	}
163215	req.Header = reqHeaders
163216	googleapi.Expand(req.URL, map[string]string{
163217		"project":        c.project,
163218		"targetTcpProxy": c.targetTcpProxy,
163219	})
163220	return gensupport.SendRequest(c.ctx_, c.s.client, req)
163221}
163222
163223// Do executes the "compute.targetTcpProxies.setBackendService" call.
163224// Exactly one of *Operation or error will be non-nil. Any non-2xx
163225// status code is an error. Response headers are in either
163226// *Operation.ServerResponse.Header or (if a response was returned at
163227// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
163228// to check whether the returned error was because
163229// http.StatusNotModified was returned.
163230func (c *TargetTcpProxiesSetBackendServiceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
163231	gensupport.SetOptions(c.urlParams_, opts...)
163232	res, err := c.doRequest("json")
163233	if res != nil && res.StatusCode == http.StatusNotModified {
163234		if res.Body != nil {
163235			res.Body.Close()
163236		}
163237		return nil, &googleapi.Error{
163238			Code:   res.StatusCode,
163239			Header: res.Header,
163240		}
163241	}
163242	if err != nil {
163243		return nil, err
163244	}
163245	defer googleapi.CloseBody(res)
163246	if err := googleapi.CheckResponse(res); err != nil {
163247		return nil, err
163248	}
163249	ret := &Operation{
163250		ServerResponse: googleapi.ServerResponse{
163251			Header:         res.Header,
163252			HTTPStatusCode: res.StatusCode,
163253		},
163254	}
163255	target := &ret
163256	if err := gensupport.DecodeResponse(target, res); err != nil {
163257		return nil, err
163258	}
163259	return ret, nil
163260	// {
163261	//   "description": "Changes the BackendService for TargetTcpProxy. (== suppress_warning http-rest-shadowed ==)",
163262	//   "httpMethod": "POST",
163263	//   "id": "compute.targetTcpProxies.setBackendService",
163264	//   "parameterOrder": [
163265	//     "project",
163266	//     "targetTcpProxy"
163267	//   ],
163268	//   "parameters": {
163269	//     "project": {
163270	//       "description": "Project ID for this request.",
163271	//       "location": "path",
163272	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
163273	//       "required": true,
163274	//       "type": "string"
163275	//     },
163276	//     "requestId": {
163277	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
163278	//       "location": "query",
163279	//       "type": "string"
163280	//     },
163281	//     "targetTcpProxy": {
163282	//       "description": "Name of the TargetTcpProxy resource whose BackendService resource is to be set.",
163283	//       "location": "path",
163284	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
163285	//       "required": true,
163286	//       "type": "string"
163287	//     }
163288	//   },
163289	//   "path": "{project}/global/targetTcpProxies/{targetTcpProxy}/setBackendService",
163290	//   "request": {
163291	//     "$ref": "TargetTcpProxiesSetBackendServiceRequest"
163292	//   },
163293	//   "response": {
163294	//     "$ref": "Operation"
163295	//   },
163296	//   "scopes": [
163297	//     "https://www.googleapis.com/auth/cloud-platform",
163298	//     "https://www.googleapis.com/auth/compute"
163299	//   ]
163300	// }
163301
163302}
163303
163304// method id "compute.targetTcpProxies.setProxyHeader":
163305
163306type TargetTcpProxiesSetProxyHeaderCall struct {
163307	s                                     *Service
163308	project                               string
163309	targetTcpProxy                        string
163310	targettcpproxiessetproxyheaderrequest *TargetTcpProxiesSetProxyHeaderRequest
163311	urlParams_                            gensupport.URLParams
163312	ctx_                                  context.Context
163313	header_                               http.Header
163314}
163315
163316// SetProxyHeader: Changes the ProxyHeaderType for TargetTcpProxy. (==
163317// suppress_warning http-rest-shadowed ==)
163318func (r *TargetTcpProxiesService) SetProxyHeader(project string, targetTcpProxy string, targettcpproxiessetproxyheaderrequest *TargetTcpProxiesSetProxyHeaderRequest) *TargetTcpProxiesSetProxyHeaderCall {
163319	c := &TargetTcpProxiesSetProxyHeaderCall{s: r.s, urlParams_: make(gensupport.URLParams)}
163320	c.project = project
163321	c.targetTcpProxy = targetTcpProxy
163322	c.targettcpproxiessetproxyheaderrequest = targettcpproxiessetproxyheaderrequest
163323	return c
163324}
163325
163326// RequestId sets the optional parameter "requestId": An optional
163327// request ID to identify requests. Specify a unique request ID so that
163328// if you must retry your request, the server will know to ignore the
163329// request if it has already been completed.
163330//
163331// For example, consider a situation where you make an initial request
163332// and the request times out. If you make the request again with the
163333// same request ID, the server can check if original operation with the
163334// same request ID was received, and if so, will ignore the second
163335// request. This prevents clients from accidentally creating duplicate
163336// commitments.
163337//
163338// The request ID must be a valid UUID with the exception that zero UUID
163339// is not supported (00000000-0000-0000-0000-000000000000).
163340func (c *TargetTcpProxiesSetProxyHeaderCall) RequestId(requestId string) *TargetTcpProxiesSetProxyHeaderCall {
163341	c.urlParams_.Set("requestId", requestId)
163342	return c
163343}
163344
163345// Fields allows partial responses to be retrieved. See
163346// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
163347// for more information.
163348func (c *TargetTcpProxiesSetProxyHeaderCall) Fields(s ...googleapi.Field) *TargetTcpProxiesSetProxyHeaderCall {
163349	c.urlParams_.Set("fields", googleapi.CombineFields(s))
163350	return c
163351}
163352
163353// Context sets the context to be used in this call's Do method. Any
163354// pending HTTP request will be aborted if the provided context is
163355// canceled.
163356func (c *TargetTcpProxiesSetProxyHeaderCall) Context(ctx context.Context) *TargetTcpProxiesSetProxyHeaderCall {
163357	c.ctx_ = ctx
163358	return c
163359}
163360
163361// Header returns an http.Header that can be modified by the caller to
163362// add HTTP headers to the request.
163363func (c *TargetTcpProxiesSetProxyHeaderCall) Header() http.Header {
163364	if c.header_ == nil {
163365		c.header_ = make(http.Header)
163366	}
163367	return c.header_
163368}
163369
163370func (c *TargetTcpProxiesSetProxyHeaderCall) doRequest(alt string) (*http.Response, error) {
163371	reqHeaders := make(http.Header)
163372	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
163373	for k, v := range c.header_ {
163374		reqHeaders[k] = v
163375	}
163376	reqHeaders.Set("User-Agent", c.s.userAgent())
163377	var body io.Reader = nil
163378	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targettcpproxiessetproxyheaderrequest)
163379	if err != nil {
163380		return nil, err
163381	}
163382	reqHeaders.Set("Content-Type", "application/json")
163383	c.urlParams_.Set("alt", alt)
163384	c.urlParams_.Set("prettyPrint", "false")
163385	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetTcpProxies/{targetTcpProxy}/setProxyHeader")
163386	urls += "?" + c.urlParams_.Encode()
163387	req, err := http.NewRequest("POST", urls, body)
163388	if err != nil {
163389		return nil, err
163390	}
163391	req.Header = reqHeaders
163392	googleapi.Expand(req.URL, map[string]string{
163393		"project":        c.project,
163394		"targetTcpProxy": c.targetTcpProxy,
163395	})
163396	return gensupport.SendRequest(c.ctx_, c.s.client, req)
163397}
163398
163399// Do executes the "compute.targetTcpProxies.setProxyHeader" call.
163400// Exactly one of *Operation or error will be non-nil. Any non-2xx
163401// status code is an error. Response headers are in either
163402// *Operation.ServerResponse.Header or (if a response was returned at
163403// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
163404// to check whether the returned error was because
163405// http.StatusNotModified was returned.
163406func (c *TargetTcpProxiesSetProxyHeaderCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
163407	gensupport.SetOptions(c.urlParams_, opts...)
163408	res, err := c.doRequest("json")
163409	if res != nil && res.StatusCode == http.StatusNotModified {
163410		if res.Body != nil {
163411			res.Body.Close()
163412		}
163413		return nil, &googleapi.Error{
163414			Code:   res.StatusCode,
163415			Header: res.Header,
163416		}
163417	}
163418	if err != nil {
163419		return nil, err
163420	}
163421	defer googleapi.CloseBody(res)
163422	if err := googleapi.CheckResponse(res); err != nil {
163423		return nil, err
163424	}
163425	ret := &Operation{
163426		ServerResponse: googleapi.ServerResponse{
163427			Header:         res.Header,
163428			HTTPStatusCode: res.StatusCode,
163429		},
163430	}
163431	target := &ret
163432	if err := gensupport.DecodeResponse(target, res); err != nil {
163433		return nil, err
163434	}
163435	return ret, nil
163436	// {
163437	//   "description": "Changes the ProxyHeaderType for TargetTcpProxy. (== suppress_warning http-rest-shadowed ==)",
163438	//   "httpMethod": "POST",
163439	//   "id": "compute.targetTcpProxies.setProxyHeader",
163440	//   "parameterOrder": [
163441	//     "project",
163442	//     "targetTcpProxy"
163443	//   ],
163444	//   "parameters": {
163445	//     "project": {
163446	//       "description": "Project ID for this request.",
163447	//       "location": "path",
163448	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
163449	//       "required": true,
163450	//       "type": "string"
163451	//     },
163452	//     "requestId": {
163453	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
163454	//       "location": "query",
163455	//       "type": "string"
163456	//     },
163457	//     "targetTcpProxy": {
163458	//       "description": "Name of the TargetTcpProxy resource whose ProxyHeader is to be set.",
163459	//       "location": "path",
163460	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
163461	//       "required": true,
163462	//       "type": "string"
163463	//     }
163464	//   },
163465	//   "path": "{project}/global/targetTcpProxies/{targetTcpProxy}/setProxyHeader",
163466	//   "request": {
163467	//     "$ref": "TargetTcpProxiesSetProxyHeaderRequest"
163468	//   },
163469	//   "response": {
163470	//     "$ref": "Operation"
163471	//   },
163472	//   "scopes": [
163473	//     "https://www.googleapis.com/auth/cloud-platform",
163474	//     "https://www.googleapis.com/auth/compute"
163475	//   ]
163476	// }
163477
163478}
163479
163480// method id "compute.targetTcpProxies.testIamPermissions":
163481
163482type TargetTcpProxiesTestIamPermissionsCall struct {
163483	s                      *Service
163484	project                string
163485	resource               string
163486	testpermissionsrequest *TestPermissionsRequest
163487	urlParams_             gensupport.URLParams
163488	ctx_                   context.Context
163489	header_                http.Header
163490}
163491
163492// TestIamPermissions: Returns permissions that a caller has on the
163493// specified resource. (== suppress_warning http-rest-shadowed ==)
163494func (r *TargetTcpProxiesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *TargetTcpProxiesTestIamPermissionsCall {
163495	c := &TargetTcpProxiesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
163496	c.project = project
163497	c.resource = resource
163498	c.testpermissionsrequest = testpermissionsrequest
163499	return c
163500}
163501
163502// Fields allows partial responses to be retrieved. See
163503// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
163504// for more information.
163505func (c *TargetTcpProxiesTestIamPermissionsCall) Fields(s ...googleapi.Field) *TargetTcpProxiesTestIamPermissionsCall {
163506	c.urlParams_.Set("fields", googleapi.CombineFields(s))
163507	return c
163508}
163509
163510// Context sets the context to be used in this call's Do method. Any
163511// pending HTTP request will be aborted if the provided context is
163512// canceled.
163513func (c *TargetTcpProxiesTestIamPermissionsCall) Context(ctx context.Context) *TargetTcpProxiesTestIamPermissionsCall {
163514	c.ctx_ = ctx
163515	return c
163516}
163517
163518// Header returns an http.Header that can be modified by the caller to
163519// add HTTP headers to the request.
163520func (c *TargetTcpProxiesTestIamPermissionsCall) Header() http.Header {
163521	if c.header_ == nil {
163522		c.header_ = make(http.Header)
163523	}
163524	return c.header_
163525}
163526
163527func (c *TargetTcpProxiesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
163528	reqHeaders := make(http.Header)
163529	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
163530	for k, v := range c.header_ {
163531		reqHeaders[k] = v
163532	}
163533	reqHeaders.Set("User-Agent", c.s.userAgent())
163534	var body io.Reader = nil
163535	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
163536	if err != nil {
163537		return nil, err
163538	}
163539	reqHeaders.Set("Content-Type", "application/json")
163540	c.urlParams_.Set("alt", alt)
163541	c.urlParams_.Set("prettyPrint", "false")
163542	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetTcpProxies/{resource}/testIamPermissions")
163543	urls += "?" + c.urlParams_.Encode()
163544	req, err := http.NewRequest("POST", urls, body)
163545	if err != nil {
163546		return nil, err
163547	}
163548	req.Header = reqHeaders
163549	googleapi.Expand(req.URL, map[string]string{
163550		"project":  c.project,
163551		"resource": c.resource,
163552	})
163553	return gensupport.SendRequest(c.ctx_, c.s.client, req)
163554}
163555
163556// Do executes the "compute.targetTcpProxies.testIamPermissions" call.
163557// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
163558// non-2xx status code is an error. Response headers are in either
163559// *TestPermissionsResponse.ServerResponse.Header or (if a response was
163560// returned at all) in error.(*googleapi.Error).Header. Use
163561// googleapi.IsNotModified to check whether the returned error was
163562// because http.StatusNotModified was returned.
163563func (c *TargetTcpProxiesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
163564	gensupport.SetOptions(c.urlParams_, opts...)
163565	res, err := c.doRequest("json")
163566	if res != nil && res.StatusCode == http.StatusNotModified {
163567		if res.Body != nil {
163568			res.Body.Close()
163569		}
163570		return nil, &googleapi.Error{
163571			Code:   res.StatusCode,
163572			Header: res.Header,
163573		}
163574	}
163575	if err != nil {
163576		return nil, err
163577	}
163578	defer googleapi.CloseBody(res)
163579	if err := googleapi.CheckResponse(res); err != nil {
163580		return nil, err
163581	}
163582	ret := &TestPermissionsResponse{
163583		ServerResponse: googleapi.ServerResponse{
163584			Header:         res.Header,
163585			HTTPStatusCode: res.StatusCode,
163586		},
163587	}
163588	target := &ret
163589	if err := gensupport.DecodeResponse(target, res); err != nil {
163590		return nil, err
163591	}
163592	return ret, nil
163593	// {
163594	//   "description": "Returns permissions that a caller has on the specified resource. (== suppress_warning http-rest-shadowed ==)",
163595	//   "httpMethod": "POST",
163596	//   "id": "compute.targetTcpProxies.testIamPermissions",
163597	//   "parameterOrder": [
163598	//     "project",
163599	//     "resource"
163600	//   ],
163601	//   "parameters": {
163602	//     "project": {
163603	//       "description": "Project ID for this request.",
163604	//       "location": "path",
163605	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
163606	//       "required": true,
163607	//       "type": "string"
163608	//     },
163609	//     "resource": {
163610	//       "description": "Name or id of the resource for this request.",
163611	//       "location": "path",
163612	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
163613	//       "required": true,
163614	//       "type": "string"
163615	//     }
163616	//   },
163617	//   "path": "{project}/global/targetTcpProxies/{resource}/testIamPermissions",
163618	//   "request": {
163619	//     "$ref": "TestPermissionsRequest"
163620	//   },
163621	//   "response": {
163622	//     "$ref": "TestPermissionsResponse"
163623	//   },
163624	//   "scopes": [
163625	//     "https://www.googleapis.com/auth/cloud-platform",
163626	//     "https://www.googleapis.com/auth/compute",
163627	//     "https://www.googleapis.com/auth/compute.readonly"
163628	//   ]
163629	// }
163630
163631}
163632
163633// method id "compute.targetVpnGateways.aggregatedList":
163634
163635type TargetVpnGatewaysAggregatedListCall struct {
163636	s            *Service
163637	project      string
163638	urlParams_   gensupport.URLParams
163639	ifNoneMatch_ string
163640	ctx_         context.Context
163641	header_      http.Header
163642}
163643
163644// AggregatedList: Retrieves an aggregated list of target VPN gateways.
163645// (== suppress_warning http-rest-shadowed ==)
163646func (r *TargetVpnGatewaysService) AggregatedList(project string) *TargetVpnGatewaysAggregatedListCall {
163647	c := &TargetVpnGatewaysAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
163648	c.project = project
163649	return c
163650}
163651
163652// Filter sets the optional parameter "filter": A filter expression that
163653// filters resources listed in the response. The expression must specify
163654// the field name, a comparison operator, and the value that you want to
163655// use for filtering. The value must be a string, a number, or a
163656// boolean. The comparison operator must be either =, !=, >, or <.
163657//
163658// For example, if you are filtering Compute Engine instances, you can
163659// exclude instances named example-instance by specifying name !=
163660// example-instance.
163661//
163662// You can also filter nested fields. For example, you could specify
163663// scheduling.automaticRestart = false to include instances only if they
163664// are not scheduled for automatic restarts. You can use filtering on
163665// nested fields to filter based on resource labels.
163666//
163667// To filter on multiple expressions, provide each separate expression
163668// within parentheses. For example, (scheduling.automaticRestart = true)
163669// (cpuPlatform = "Intel Skylake"). By default, each expression is an
163670// AND expression. However, you can include AND and OR expressions
163671// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
163672// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
163673// true).
163674func (c *TargetVpnGatewaysAggregatedListCall) Filter(filter string) *TargetVpnGatewaysAggregatedListCall {
163675	c.urlParams_.Set("filter", filter)
163676	return c
163677}
163678
163679// MaxResults sets the optional parameter "maxResults": The maximum
163680// number of results per page that should be returned. If the number of
163681// available results is larger than maxResults, Compute Engine returns a
163682// nextPageToken that can be used to get the next page of results in
163683// subsequent list requests. Acceptable values are 0 to 500, inclusive.
163684// (Default: 500)
163685func (c *TargetVpnGatewaysAggregatedListCall) MaxResults(maxResults int64) *TargetVpnGatewaysAggregatedListCall {
163686	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
163687	return c
163688}
163689
163690// OrderBy sets the optional parameter "orderBy": Sorts list results by
163691// a certain order. By default, results are returned in alphanumerical
163692// order based on the resource name.
163693//
163694// You can also sort results in descending order based on the creation
163695// timestamp using orderBy="creationTimestamp desc". This sorts results
163696// based on the creationTimestamp field in reverse chronological order
163697// (newest result first). Use this to sort resources like operations so
163698// that the newest operation is returned first.
163699//
163700// Currently, only sorting by name or creationTimestamp desc is
163701// supported.
163702func (c *TargetVpnGatewaysAggregatedListCall) OrderBy(orderBy string) *TargetVpnGatewaysAggregatedListCall {
163703	c.urlParams_.Set("orderBy", orderBy)
163704	return c
163705}
163706
163707// PageToken sets the optional parameter "pageToken": Specifies a page
163708// token to use. Set pageToken to the nextPageToken returned by a
163709// previous list request to get the next page of results.
163710func (c *TargetVpnGatewaysAggregatedListCall) PageToken(pageToken string) *TargetVpnGatewaysAggregatedListCall {
163711	c.urlParams_.Set("pageToken", pageToken)
163712	return c
163713}
163714
163715// Fields allows partial responses to be retrieved. See
163716// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
163717// for more information.
163718func (c *TargetVpnGatewaysAggregatedListCall) Fields(s ...googleapi.Field) *TargetVpnGatewaysAggregatedListCall {
163719	c.urlParams_.Set("fields", googleapi.CombineFields(s))
163720	return c
163721}
163722
163723// IfNoneMatch sets the optional parameter which makes the operation
163724// fail if the object's ETag matches the given value. This is useful for
163725// getting updates only after the object has changed since the last
163726// request. Use googleapi.IsNotModified to check whether the response
163727// error from Do is the result of In-None-Match.
163728func (c *TargetVpnGatewaysAggregatedListCall) IfNoneMatch(entityTag string) *TargetVpnGatewaysAggregatedListCall {
163729	c.ifNoneMatch_ = entityTag
163730	return c
163731}
163732
163733// Context sets the context to be used in this call's Do method. Any
163734// pending HTTP request will be aborted if the provided context is
163735// canceled.
163736func (c *TargetVpnGatewaysAggregatedListCall) Context(ctx context.Context) *TargetVpnGatewaysAggregatedListCall {
163737	c.ctx_ = ctx
163738	return c
163739}
163740
163741// Header returns an http.Header that can be modified by the caller to
163742// add HTTP headers to the request.
163743func (c *TargetVpnGatewaysAggregatedListCall) Header() http.Header {
163744	if c.header_ == nil {
163745		c.header_ = make(http.Header)
163746	}
163747	return c.header_
163748}
163749
163750func (c *TargetVpnGatewaysAggregatedListCall) doRequest(alt string) (*http.Response, error) {
163751	reqHeaders := make(http.Header)
163752	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
163753	for k, v := range c.header_ {
163754		reqHeaders[k] = v
163755	}
163756	reqHeaders.Set("User-Agent", c.s.userAgent())
163757	if c.ifNoneMatch_ != "" {
163758		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
163759	}
163760	var body io.Reader = nil
163761	c.urlParams_.Set("alt", alt)
163762	c.urlParams_.Set("prettyPrint", "false")
163763	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/targetVpnGateways")
163764	urls += "?" + c.urlParams_.Encode()
163765	req, err := http.NewRequest("GET", urls, body)
163766	if err != nil {
163767		return nil, err
163768	}
163769	req.Header = reqHeaders
163770	googleapi.Expand(req.URL, map[string]string{
163771		"project": c.project,
163772	})
163773	return gensupport.SendRequest(c.ctx_, c.s.client, req)
163774}
163775
163776// Do executes the "compute.targetVpnGateways.aggregatedList" call.
163777// Exactly one of *TargetVpnGatewayAggregatedList or error will be
163778// non-nil. Any non-2xx status code is an error. Response headers are in
163779// either *TargetVpnGatewayAggregatedList.ServerResponse.Header or (if a
163780// response was returned at all) in error.(*googleapi.Error).Header. Use
163781// googleapi.IsNotModified to check whether the returned error was
163782// because http.StatusNotModified was returned.
163783func (c *TargetVpnGatewaysAggregatedListCall) Do(opts ...googleapi.CallOption) (*TargetVpnGatewayAggregatedList, error) {
163784	gensupport.SetOptions(c.urlParams_, opts...)
163785	res, err := c.doRequest("json")
163786	if res != nil && res.StatusCode == http.StatusNotModified {
163787		if res.Body != nil {
163788			res.Body.Close()
163789		}
163790		return nil, &googleapi.Error{
163791			Code:   res.StatusCode,
163792			Header: res.Header,
163793		}
163794	}
163795	if err != nil {
163796		return nil, err
163797	}
163798	defer googleapi.CloseBody(res)
163799	if err := googleapi.CheckResponse(res); err != nil {
163800		return nil, err
163801	}
163802	ret := &TargetVpnGatewayAggregatedList{
163803		ServerResponse: googleapi.ServerResponse{
163804			Header:         res.Header,
163805			HTTPStatusCode: res.StatusCode,
163806		},
163807	}
163808	target := &ret
163809	if err := gensupport.DecodeResponse(target, res); err != nil {
163810		return nil, err
163811	}
163812	return ret, nil
163813	// {
163814	//   "description": "Retrieves an aggregated list of target VPN gateways. (== suppress_warning http-rest-shadowed ==)",
163815	//   "httpMethod": "GET",
163816	//   "id": "compute.targetVpnGateways.aggregatedList",
163817	//   "parameterOrder": [
163818	//     "project"
163819	//   ],
163820	//   "parameters": {
163821	//     "filter": {
163822	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
163823	//       "location": "query",
163824	//       "type": "string"
163825	//     },
163826	//     "maxResults": {
163827	//       "default": "500",
163828	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
163829	//       "format": "uint32",
163830	//       "location": "query",
163831	//       "minimum": "0",
163832	//       "type": "integer"
163833	//     },
163834	//     "orderBy": {
163835	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
163836	//       "location": "query",
163837	//       "type": "string"
163838	//     },
163839	//     "pageToken": {
163840	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
163841	//       "location": "query",
163842	//       "type": "string"
163843	//     },
163844	//     "project": {
163845	//       "description": "Project ID for this request.",
163846	//       "location": "path",
163847	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
163848	//       "required": true,
163849	//       "type": "string"
163850	//     }
163851	//   },
163852	//   "path": "{project}/aggregated/targetVpnGateways",
163853	//   "response": {
163854	//     "$ref": "TargetVpnGatewayAggregatedList"
163855	//   },
163856	//   "scopes": [
163857	//     "https://www.googleapis.com/auth/cloud-platform",
163858	//     "https://www.googleapis.com/auth/compute",
163859	//     "https://www.googleapis.com/auth/compute.readonly"
163860	//   ]
163861	// }
163862
163863}
163864
163865// Pages invokes f for each page of results.
163866// A non-nil error returned from f will halt the iteration.
163867// The provided context supersedes any context provided to the Context method.
163868func (c *TargetVpnGatewaysAggregatedListCall) Pages(ctx context.Context, f func(*TargetVpnGatewayAggregatedList) error) error {
163869	c.ctx_ = ctx
163870	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
163871	for {
163872		x, err := c.Do()
163873		if err != nil {
163874			return err
163875		}
163876		if err := f(x); err != nil {
163877			return err
163878		}
163879		if x.NextPageToken == "" {
163880			return nil
163881		}
163882		c.PageToken(x.NextPageToken)
163883	}
163884}
163885
163886// method id "compute.targetVpnGateways.delete":
163887
163888type TargetVpnGatewaysDeleteCall struct {
163889	s                *Service
163890	project          string
163891	region           string
163892	targetVpnGateway string
163893	urlParams_       gensupport.URLParams
163894	ctx_             context.Context
163895	header_          http.Header
163896}
163897
163898// Delete: Deletes the specified target VPN gateway. (==
163899// suppress_warning http-rest-shadowed ==)
163900func (r *TargetVpnGatewaysService) Delete(project string, region string, targetVpnGateway string) *TargetVpnGatewaysDeleteCall {
163901	c := &TargetVpnGatewaysDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
163902	c.project = project
163903	c.region = region
163904	c.targetVpnGateway = targetVpnGateway
163905	return c
163906}
163907
163908// RequestId sets the optional parameter "requestId": An optional
163909// request ID to identify requests. Specify a unique request ID so that
163910// if you must retry your request, the server will know to ignore the
163911// request if it has already been completed.
163912//
163913// For example, consider a situation where you make an initial request
163914// and the request times out. If you make the request again with the
163915// same request ID, the server can check if original operation with the
163916// same request ID was received, and if so, will ignore the second
163917// request. This prevents clients from accidentally creating duplicate
163918// commitments.
163919//
163920// The request ID must be a valid UUID with the exception that zero UUID
163921// is not supported (00000000-0000-0000-0000-000000000000).
163922func (c *TargetVpnGatewaysDeleteCall) RequestId(requestId string) *TargetVpnGatewaysDeleteCall {
163923	c.urlParams_.Set("requestId", requestId)
163924	return c
163925}
163926
163927// Fields allows partial responses to be retrieved. See
163928// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
163929// for more information.
163930func (c *TargetVpnGatewaysDeleteCall) Fields(s ...googleapi.Field) *TargetVpnGatewaysDeleteCall {
163931	c.urlParams_.Set("fields", googleapi.CombineFields(s))
163932	return c
163933}
163934
163935// Context sets the context to be used in this call's Do method. Any
163936// pending HTTP request will be aborted if the provided context is
163937// canceled.
163938func (c *TargetVpnGatewaysDeleteCall) Context(ctx context.Context) *TargetVpnGatewaysDeleteCall {
163939	c.ctx_ = ctx
163940	return c
163941}
163942
163943// Header returns an http.Header that can be modified by the caller to
163944// add HTTP headers to the request.
163945func (c *TargetVpnGatewaysDeleteCall) Header() http.Header {
163946	if c.header_ == nil {
163947		c.header_ = make(http.Header)
163948	}
163949	return c.header_
163950}
163951
163952func (c *TargetVpnGatewaysDeleteCall) doRequest(alt string) (*http.Response, error) {
163953	reqHeaders := make(http.Header)
163954	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
163955	for k, v := range c.header_ {
163956		reqHeaders[k] = v
163957	}
163958	reqHeaders.Set("User-Agent", c.s.userAgent())
163959	var body io.Reader = nil
163960	c.urlParams_.Set("alt", alt)
163961	c.urlParams_.Set("prettyPrint", "false")
163962	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetVpnGateways/{targetVpnGateway}")
163963	urls += "?" + c.urlParams_.Encode()
163964	req, err := http.NewRequest("DELETE", urls, body)
163965	if err != nil {
163966		return nil, err
163967	}
163968	req.Header = reqHeaders
163969	googleapi.Expand(req.URL, map[string]string{
163970		"project":          c.project,
163971		"region":           c.region,
163972		"targetVpnGateway": c.targetVpnGateway,
163973	})
163974	return gensupport.SendRequest(c.ctx_, c.s.client, req)
163975}
163976
163977// Do executes the "compute.targetVpnGateways.delete" call.
163978// Exactly one of *Operation or error will be non-nil. Any non-2xx
163979// status code is an error. Response headers are in either
163980// *Operation.ServerResponse.Header or (if a response was returned at
163981// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
163982// to check whether the returned error was because
163983// http.StatusNotModified was returned.
163984func (c *TargetVpnGatewaysDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
163985	gensupport.SetOptions(c.urlParams_, opts...)
163986	res, err := c.doRequest("json")
163987	if res != nil && res.StatusCode == http.StatusNotModified {
163988		if res.Body != nil {
163989			res.Body.Close()
163990		}
163991		return nil, &googleapi.Error{
163992			Code:   res.StatusCode,
163993			Header: res.Header,
163994		}
163995	}
163996	if err != nil {
163997		return nil, err
163998	}
163999	defer googleapi.CloseBody(res)
164000	if err := googleapi.CheckResponse(res); err != nil {
164001		return nil, err
164002	}
164003	ret := &Operation{
164004		ServerResponse: googleapi.ServerResponse{
164005			Header:         res.Header,
164006			HTTPStatusCode: res.StatusCode,
164007		},
164008	}
164009	target := &ret
164010	if err := gensupport.DecodeResponse(target, res); err != nil {
164011		return nil, err
164012	}
164013	return ret, nil
164014	// {
164015	//   "description": "Deletes the specified target VPN gateway. (== suppress_warning http-rest-shadowed ==)",
164016	//   "httpMethod": "DELETE",
164017	//   "id": "compute.targetVpnGateways.delete",
164018	//   "parameterOrder": [
164019	//     "project",
164020	//     "region",
164021	//     "targetVpnGateway"
164022	//   ],
164023	//   "parameters": {
164024	//     "project": {
164025	//       "description": "Project ID for this request.",
164026	//       "location": "path",
164027	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
164028	//       "required": true,
164029	//       "type": "string"
164030	//     },
164031	//     "region": {
164032	//       "description": "Name of the region for this request.",
164033	//       "location": "path",
164034	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
164035	//       "required": true,
164036	//       "type": "string"
164037	//     },
164038	//     "requestId": {
164039	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
164040	//       "location": "query",
164041	//       "type": "string"
164042	//     },
164043	//     "targetVpnGateway": {
164044	//       "description": "Name of the target VPN gateway to delete.",
164045	//       "location": "path",
164046	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
164047	//       "required": true,
164048	//       "type": "string"
164049	//     }
164050	//   },
164051	//   "path": "{project}/regions/{region}/targetVpnGateways/{targetVpnGateway}",
164052	//   "response": {
164053	//     "$ref": "Operation"
164054	//   },
164055	//   "scopes": [
164056	//     "https://www.googleapis.com/auth/cloud-platform",
164057	//     "https://www.googleapis.com/auth/compute"
164058	//   ]
164059	// }
164060
164061}
164062
164063// method id "compute.targetVpnGateways.get":
164064
164065type TargetVpnGatewaysGetCall struct {
164066	s                *Service
164067	project          string
164068	region           string
164069	targetVpnGateway string
164070	urlParams_       gensupport.URLParams
164071	ifNoneMatch_     string
164072	ctx_             context.Context
164073	header_          http.Header
164074}
164075
164076// Get: Returns the specified target VPN gateway. Gets a list of
164077// available target VPN gateways by making a list() request. (==
164078// suppress_warning http-rest-shadowed ==)
164079func (r *TargetVpnGatewaysService) Get(project string, region string, targetVpnGateway string) *TargetVpnGatewaysGetCall {
164080	c := &TargetVpnGatewaysGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
164081	c.project = project
164082	c.region = region
164083	c.targetVpnGateway = targetVpnGateway
164084	return c
164085}
164086
164087// Fields allows partial responses to be retrieved. See
164088// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
164089// for more information.
164090func (c *TargetVpnGatewaysGetCall) Fields(s ...googleapi.Field) *TargetVpnGatewaysGetCall {
164091	c.urlParams_.Set("fields", googleapi.CombineFields(s))
164092	return c
164093}
164094
164095// IfNoneMatch sets the optional parameter which makes the operation
164096// fail if the object's ETag matches the given value. This is useful for
164097// getting updates only after the object has changed since the last
164098// request. Use googleapi.IsNotModified to check whether the response
164099// error from Do is the result of In-None-Match.
164100func (c *TargetVpnGatewaysGetCall) IfNoneMatch(entityTag string) *TargetVpnGatewaysGetCall {
164101	c.ifNoneMatch_ = entityTag
164102	return c
164103}
164104
164105// Context sets the context to be used in this call's Do method. Any
164106// pending HTTP request will be aborted if the provided context is
164107// canceled.
164108func (c *TargetVpnGatewaysGetCall) Context(ctx context.Context) *TargetVpnGatewaysGetCall {
164109	c.ctx_ = ctx
164110	return c
164111}
164112
164113// Header returns an http.Header that can be modified by the caller to
164114// add HTTP headers to the request.
164115func (c *TargetVpnGatewaysGetCall) Header() http.Header {
164116	if c.header_ == nil {
164117		c.header_ = make(http.Header)
164118	}
164119	return c.header_
164120}
164121
164122func (c *TargetVpnGatewaysGetCall) doRequest(alt string) (*http.Response, error) {
164123	reqHeaders := make(http.Header)
164124	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
164125	for k, v := range c.header_ {
164126		reqHeaders[k] = v
164127	}
164128	reqHeaders.Set("User-Agent", c.s.userAgent())
164129	if c.ifNoneMatch_ != "" {
164130		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
164131	}
164132	var body io.Reader = nil
164133	c.urlParams_.Set("alt", alt)
164134	c.urlParams_.Set("prettyPrint", "false")
164135	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetVpnGateways/{targetVpnGateway}")
164136	urls += "?" + c.urlParams_.Encode()
164137	req, err := http.NewRequest("GET", urls, body)
164138	if err != nil {
164139		return nil, err
164140	}
164141	req.Header = reqHeaders
164142	googleapi.Expand(req.URL, map[string]string{
164143		"project":          c.project,
164144		"region":           c.region,
164145		"targetVpnGateway": c.targetVpnGateway,
164146	})
164147	return gensupport.SendRequest(c.ctx_, c.s.client, req)
164148}
164149
164150// Do executes the "compute.targetVpnGateways.get" call.
164151// Exactly one of *TargetVpnGateway or error will be non-nil. Any
164152// non-2xx status code is an error. Response headers are in either
164153// *TargetVpnGateway.ServerResponse.Header or (if a response was
164154// returned at all) in error.(*googleapi.Error).Header. Use
164155// googleapi.IsNotModified to check whether the returned error was
164156// because http.StatusNotModified was returned.
164157func (c *TargetVpnGatewaysGetCall) Do(opts ...googleapi.CallOption) (*TargetVpnGateway, error) {
164158	gensupport.SetOptions(c.urlParams_, opts...)
164159	res, err := c.doRequest("json")
164160	if res != nil && res.StatusCode == http.StatusNotModified {
164161		if res.Body != nil {
164162			res.Body.Close()
164163		}
164164		return nil, &googleapi.Error{
164165			Code:   res.StatusCode,
164166			Header: res.Header,
164167		}
164168	}
164169	if err != nil {
164170		return nil, err
164171	}
164172	defer googleapi.CloseBody(res)
164173	if err := googleapi.CheckResponse(res); err != nil {
164174		return nil, err
164175	}
164176	ret := &TargetVpnGateway{
164177		ServerResponse: googleapi.ServerResponse{
164178			Header:         res.Header,
164179			HTTPStatusCode: res.StatusCode,
164180		},
164181	}
164182	target := &ret
164183	if err := gensupport.DecodeResponse(target, res); err != nil {
164184		return nil, err
164185	}
164186	return ret, nil
164187	// {
164188	//   "description": "Returns the specified target VPN gateway. Gets a list of available target VPN gateways by making a list() request. (== suppress_warning http-rest-shadowed ==)",
164189	//   "httpMethod": "GET",
164190	//   "id": "compute.targetVpnGateways.get",
164191	//   "parameterOrder": [
164192	//     "project",
164193	//     "region",
164194	//     "targetVpnGateway"
164195	//   ],
164196	//   "parameters": {
164197	//     "project": {
164198	//       "description": "Project ID for this request.",
164199	//       "location": "path",
164200	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
164201	//       "required": true,
164202	//       "type": "string"
164203	//     },
164204	//     "region": {
164205	//       "description": "Name of the region for this request.",
164206	//       "location": "path",
164207	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
164208	//       "required": true,
164209	//       "type": "string"
164210	//     },
164211	//     "targetVpnGateway": {
164212	//       "description": "Name of the target VPN gateway to return.",
164213	//       "location": "path",
164214	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
164215	//       "required": true,
164216	//       "type": "string"
164217	//     }
164218	//   },
164219	//   "path": "{project}/regions/{region}/targetVpnGateways/{targetVpnGateway}",
164220	//   "response": {
164221	//     "$ref": "TargetVpnGateway"
164222	//   },
164223	//   "scopes": [
164224	//     "https://www.googleapis.com/auth/cloud-platform",
164225	//     "https://www.googleapis.com/auth/compute",
164226	//     "https://www.googleapis.com/auth/compute.readonly"
164227	//   ]
164228	// }
164229
164230}
164231
164232// method id "compute.targetVpnGateways.insert":
164233
164234type TargetVpnGatewaysInsertCall struct {
164235	s                *Service
164236	project          string
164237	region           string
164238	targetvpngateway *TargetVpnGateway
164239	urlParams_       gensupport.URLParams
164240	ctx_             context.Context
164241	header_          http.Header
164242}
164243
164244// Insert: Creates a target VPN gateway in the specified project and
164245// region using the data included in the request. (== suppress_warning
164246// http-rest-shadowed ==)
164247func (r *TargetVpnGatewaysService) Insert(project string, region string, targetvpngateway *TargetVpnGateway) *TargetVpnGatewaysInsertCall {
164248	c := &TargetVpnGatewaysInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
164249	c.project = project
164250	c.region = region
164251	c.targetvpngateway = targetvpngateway
164252	return c
164253}
164254
164255// RequestId sets the optional parameter "requestId": An optional
164256// request ID to identify requests. Specify a unique request ID so that
164257// if you must retry your request, the server will know to ignore the
164258// request if it has already been completed.
164259//
164260// For example, consider a situation where you make an initial request
164261// and the request times out. If you make the request again with the
164262// same request ID, the server can check if original operation with the
164263// same request ID was received, and if so, will ignore the second
164264// request. This prevents clients from accidentally creating duplicate
164265// commitments.
164266//
164267// The request ID must be a valid UUID with the exception that zero UUID
164268// is not supported (00000000-0000-0000-0000-000000000000).
164269func (c *TargetVpnGatewaysInsertCall) RequestId(requestId string) *TargetVpnGatewaysInsertCall {
164270	c.urlParams_.Set("requestId", requestId)
164271	return c
164272}
164273
164274// Fields allows partial responses to be retrieved. See
164275// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
164276// for more information.
164277func (c *TargetVpnGatewaysInsertCall) Fields(s ...googleapi.Field) *TargetVpnGatewaysInsertCall {
164278	c.urlParams_.Set("fields", googleapi.CombineFields(s))
164279	return c
164280}
164281
164282// Context sets the context to be used in this call's Do method. Any
164283// pending HTTP request will be aborted if the provided context is
164284// canceled.
164285func (c *TargetVpnGatewaysInsertCall) Context(ctx context.Context) *TargetVpnGatewaysInsertCall {
164286	c.ctx_ = ctx
164287	return c
164288}
164289
164290// Header returns an http.Header that can be modified by the caller to
164291// add HTTP headers to the request.
164292func (c *TargetVpnGatewaysInsertCall) Header() http.Header {
164293	if c.header_ == nil {
164294		c.header_ = make(http.Header)
164295	}
164296	return c.header_
164297}
164298
164299func (c *TargetVpnGatewaysInsertCall) doRequest(alt string) (*http.Response, error) {
164300	reqHeaders := make(http.Header)
164301	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
164302	for k, v := range c.header_ {
164303		reqHeaders[k] = v
164304	}
164305	reqHeaders.Set("User-Agent", c.s.userAgent())
164306	var body io.Reader = nil
164307	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetvpngateway)
164308	if err != nil {
164309		return nil, err
164310	}
164311	reqHeaders.Set("Content-Type", "application/json")
164312	c.urlParams_.Set("alt", alt)
164313	c.urlParams_.Set("prettyPrint", "false")
164314	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetVpnGateways")
164315	urls += "?" + c.urlParams_.Encode()
164316	req, err := http.NewRequest("POST", urls, body)
164317	if err != nil {
164318		return nil, err
164319	}
164320	req.Header = reqHeaders
164321	googleapi.Expand(req.URL, map[string]string{
164322		"project": c.project,
164323		"region":  c.region,
164324	})
164325	return gensupport.SendRequest(c.ctx_, c.s.client, req)
164326}
164327
164328// Do executes the "compute.targetVpnGateways.insert" call.
164329// Exactly one of *Operation or error will be non-nil. Any non-2xx
164330// status code is an error. Response headers are in either
164331// *Operation.ServerResponse.Header or (if a response was returned at
164332// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
164333// to check whether the returned error was because
164334// http.StatusNotModified was returned.
164335func (c *TargetVpnGatewaysInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
164336	gensupport.SetOptions(c.urlParams_, opts...)
164337	res, err := c.doRequest("json")
164338	if res != nil && res.StatusCode == http.StatusNotModified {
164339		if res.Body != nil {
164340			res.Body.Close()
164341		}
164342		return nil, &googleapi.Error{
164343			Code:   res.StatusCode,
164344			Header: res.Header,
164345		}
164346	}
164347	if err != nil {
164348		return nil, err
164349	}
164350	defer googleapi.CloseBody(res)
164351	if err := googleapi.CheckResponse(res); err != nil {
164352		return nil, err
164353	}
164354	ret := &Operation{
164355		ServerResponse: googleapi.ServerResponse{
164356			Header:         res.Header,
164357			HTTPStatusCode: res.StatusCode,
164358		},
164359	}
164360	target := &ret
164361	if err := gensupport.DecodeResponse(target, res); err != nil {
164362		return nil, err
164363	}
164364	return ret, nil
164365	// {
164366	//   "description": "Creates a target VPN gateway in the specified project and region using the data included in the request. (== suppress_warning http-rest-shadowed ==)",
164367	//   "httpMethod": "POST",
164368	//   "id": "compute.targetVpnGateways.insert",
164369	//   "parameterOrder": [
164370	//     "project",
164371	//     "region"
164372	//   ],
164373	//   "parameters": {
164374	//     "project": {
164375	//       "description": "Project ID for this request.",
164376	//       "location": "path",
164377	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
164378	//       "required": true,
164379	//       "type": "string"
164380	//     },
164381	//     "region": {
164382	//       "description": "Name of the region for this request.",
164383	//       "location": "path",
164384	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
164385	//       "required": true,
164386	//       "type": "string"
164387	//     },
164388	//     "requestId": {
164389	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
164390	//       "location": "query",
164391	//       "type": "string"
164392	//     }
164393	//   },
164394	//   "path": "{project}/regions/{region}/targetVpnGateways",
164395	//   "request": {
164396	//     "$ref": "TargetVpnGateway"
164397	//   },
164398	//   "response": {
164399	//     "$ref": "Operation"
164400	//   },
164401	//   "scopes": [
164402	//     "https://www.googleapis.com/auth/cloud-platform",
164403	//     "https://www.googleapis.com/auth/compute"
164404	//   ]
164405	// }
164406
164407}
164408
164409// method id "compute.targetVpnGateways.list":
164410
164411type TargetVpnGatewaysListCall struct {
164412	s            *Service
164413	project      string
164414	region       string
164415	urlParams_   gensupport.URLParams
164416	ifNoneMatch_ string
164417	ctx_         context.Context
164418	header_      http.Header
164419}
164420
164421// List: Retrieves a list of target VPN gateways available to the
164422// specified project and region. (== suppress_warning http-rest-shadowed
164423// ==)
164424func (r *TargetVpnGatewaysService) List(project string, region string) *TargetVpnGatewaysListCall {
164425	c := &TargetVpnGatewaysListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
164426	c.project = project
164427	c.region = region
164428	return c
164429}
164430
164431// Filter sets the optional parameter "filter": A filter expression that
164432// filters resources listed in the response. The expression must specify
164433// the field name, a comparison operator, and the value that you want to
164434// use for filtering. The value must be a string, a number, or a
164435// boolean. The comparison operator must be either =, !=, >, or <.
164436//
164437// For example, if you are filtering Compute Engine instances, you can
164438// exclude instances named example-instance by specifying name !=
164439// example-instance.
164440//
164441// You can also filter nested fields. For example, you could specify
164442// scheduling.automaticRestart = false to include instances only if they
164443// are not scheduled for automatic restarts. You can use filtering on
164444// nested fields to filter based on resource labels.
164445//
164446// To filter on multiple expressions, provide each separate expression
164447// within parentheses. For example, (scheduling.automaticRestart = true)
164448// (cpuPlatform = "Intel Skylake"). By default, each expression is an
164449// AND expression. However, you can include AND and OR expressions
164450// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
164451// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
164452// true).
164453func (c *TargetVpnGatewaysListCall) Filter(filter string) *TargetVpnGatewaysListCall {
164454	c.urlParams_.Set("filter", filter)
164455	return c
164456}
164457
164458// MaxResults sets the optional parameter "maxResults": The maximum
164459// number of results per page that should be returned. If the number of
164460// available results is larger than maxResults, Compute Engine returns a
164461// nextPageToken that can be used to get the next page of results in
164462// subsequent list requests. Acceptable values are 0 to 500, inclusive.
164463// (Default: 500)
164464func (c *TargetVpnGatewaysListCall) MaxResults(maxResults int64) *TargetVpnGatewaysListCall {
164465	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
164466	return c
164467}
164468
164469// OrderBy sets the optional parameter "orderBy": Sorts list results by
164470// a certain order. By default, results are returned in alphanumerical
164471// order based on the resource name.
164472//
164473// You can also sort results in descending order based on the creation
164474// timestamp using orderBy="creationTimestamp desc". This sorts results
164475// based on the creationTimestamp field in reverse chronological order
164476// (newest result first). Use this to sort resources like operations so
164477// that the newest operation is returned first.
164478//
164479// Currently, only sorting by name or creationTimestamp desc is
164480// supported.
164481func (c *TargetVpnGatewaysListCall) OrderBy(orderBy string) *TargetVpnGatewaysListCall {
164482	c.urlParams_.Set("orderBy", orderBy)
164483	return c
164484}
164485
164486// PageToken sets the optional parameter "pageToken": Specifies a page
164487// token to use. Set pageToken to the nextPageToken returned by a
164488// previous list request to get the next page of results.
164489func (c *TargetVpnGatewaysListCall) PageToken(pageToken string) *TargetVpnGatewaysListCall {
164490	c.urlParams_.Set("pageToken", pageToken)
164491	return c
164492}
164493
164494// Fields allows partial responses to be retrieved. See
164495// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
164496// for more information.
164497func (c *TargetVpnGatewaysListCall) Fields(s ...googleapi.Field) *TargetVpnGatewaysListCall {
164498	c.urlParams_.Set("fields", googleapi.CombineFields(s))
164499	return c
164500}
164501
164502// IfNoneMatch sets the optional parameter which makes the operation
164503// fail if the object's ETag matches the given value. This is useful for
164504// getting updates only after the object has changed since the last
164505// request. Use googleapi.IsNotModified to check whether the response
164506// error from Do is the result of In-None-Match.
164507func (c *TargetVpnGatewaysListCall) IfNoneMatch(entityTag string) *TargetVpnGatewaysListCall {
164508	c.ifNoneMatch_ = entityTag
164509	return c
164510}
164511
164512// Context sets the context to be used in this call's Do method. Any
164513// pending HTTP request will be aborted if the provided context is
164514// canceled.
164515func (c *TargetVpnGatewaysListCall) Context(ctx context.Context) *TargetVpnGatewaysListCall {
164516	c.ctx_ = ctx
164517	return c
164518}
164519
164520// Header returns an http.Header that can be modified by the caller to
164521// add HTTP headers to the request.
164522func (c *TargetVpnGatewaysListCall) Header() http.Header {
164523	if c.header_ == nil {
164524		c.header_ = make(http.Header)
164525	}
164526	return c.header_
164527}
164528
164529func (c *TargetVpnGatewaysListCall) doRequest(alt string) (*http.Response, error) {
164530	reqHeaders := make(http.Header)
164531	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
164532	for k, v := range c.header_ {
164533		reqHeaders[k] = v
164534	}
164535	reqHeaders.Set("User-Agent", c.s.userAgent())
164536	if c.ifNoneMatch_ != "" {
164537		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
164538	}
164539	var body io.Reader = nil
164540	c.urlParams_.Set("alt", alt)
164541	c.urlParams_.Set("prettyPrint", "false")
164542	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetVpnGateways")
164543	urls += "?" + c.urlParams_.Encode()
164544	req, err := http.NewRequest("GET", urls, body)
164545	if err != nil {
164546		return nil, err
164547	}
164548	req.Header = reqHeaders
164549	googleapi.Expand(req.URL, map[string]string{
164550		"project": c.project,
164551		"region":  c.region,
164552	})
164553	return gensupport.SendRequest(c.ctx_, c.s.client, req)
164554}
164555
164556// Do executes the "compute.targetVpnGateways.list" call.
164557// Exactly one of *TargetVpnGatewayList or error will be non-nil. Any
164558// non-2xx status code is an error. Response headers are in either
164559// *TargetVpnGatewayList.ServerResponse.Header or (if a response was
164560// returned at all) in error.(*googleapi.Error).Header. Use
164561// googleapi.IsNotModified to check whether the returned error was
164562// because http.StatusNotModified was returned.
164563func (c *TargetVpnGatewaysListCall) Do(opts ...googleapi.CallOption) (*TargetVpnGatewayList, error) {
164564	gensupport.SetOptions(c.urlParams_, opts...)
164565	res, err := c.doRequest("json")
164566	if res != nil && res.StatusCode == http.StatusNotModified {
164567		if res.Body != nil {
164568			res.Body.Close()
164569		}
164570		return nil, &googleapi.Error{
164571			Code:   res.StatusCode,
164572			Header: res.Header,
164573		}
164574	}
164575	if err != nil {
164576		return nil, err
164577	}
164578	defer googleapi.CloseBody(res)
164579	if err := googleapi.CheckResponse(res); err != nil {
164580		return nil, err
164581	}
164582	ret := &TargetVpnGatewayList{
164583		ServerResponse: googleapi.ServerResponse{
164584			Header:         res.Header,
164585			HTTPStatusCode: res.StatusCode,
164586		},
164587	}
164588	target := &ret
164589	if err := gensupport.DecodeResponse(target, res); err != nil {
164590		return nil, err
164591	}
164592	return ret, nil
164593	// {
164594	//   "description": "Retrieves a list of target VPN gateways available to the specified project and region. (== suppress_warning http-rest-shadowed ==)",
164595	//   "httpMethod": "GET",
164596	//   "id": "compute.targetVpnGateways.list",
164597	//   "parameterOrder": [
164598	//     "project",
164599	//     "region"
164600	//   ],
164601	//   "parameters": {
164602	//     "filter": {
164603	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
164604	//       "location": "query",
164605	//       "type": "string"
164606	//     },
164607	//     "maxResults": {
164608	//       "default": "500",
164609	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
164610	//       "format": "uint32",
164611	//       "location": "query",
164612	//       "minimum": "0",
164613	//       "type": "integer"
164614	//     },
164615	//     "orderBy": {
164616	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
164617	//       "location": "query",
164618	//       "type": "string"
164619	//     },
164620	//     "pageToken": {
164621	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
164622	//       "location": "query",
164623	//       "type": "string"
164624	//     },
164625	//     "project": {
164626	//       "description": "Project ID for this request.",
164627	//       "location": "path",
164628	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
164629	//       "required": true,
164630	//       "type": "string"
164631	//     },
164632	//     "region": {
164633	//       "description": "Name of the region for this request.",
164634	//       "location": "path",
164635	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
164636	//       "required": true,
164637	//       "type": "string"
164638	//     }
164639	//   },
164640	//   "path": "{project}/regions/{region}/targetVpnGateways",
164641	//   "response": {
164642	//     "$ref": "TargetVpnGatewayList"
164643	//   },
164644	//   "scopes": [
164645	//     "https://www.googleapis.com/auth/cloud-platform",
164646	//     "https://www.googleapis.com/auth/compute",
164647	//     "https://www.googleapis.com/auth/compute.readonly"
164648	//   ]
164649	// }
164650
164651}
164652
164653// Pages invokes f for each page of results.
164654// A non-nil error returned from f will halt the iteration.
164655// The provided context supersedes any context provided to the Context method.
164656func (c *TargetVpnGatewaysListCall) Pages(ctx context.Context, f func(*TargetVpnGatewayList) error) error {
164657	c.ctx_ = ctx
164658	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
164659	for {
164660		x, err := c.Do()
164661		if err != nil {
164662			return err
164663		}
164664		if err := f(x); err != nil {
164665			return err
164666		}
164667		if x.NextPageToken == "" {
164668			return nil
164669		}
164670		c.PageToken(x.NextPageToken)
164671	}
164672}
164673
164674// method id "compute.targetVpnGateways.setLabels":
164675
164676type TargetVpnGatewaysSetLabelsCall struct {
164677	s                      *Service
164678	project                string
164679	region                 string
164680	resource               string
164681	regionsetlabelsrequest *RegionSetLabelsRequest
164682	urlParams_             gensupport.URLParams
164683	ctx_                   context.Context
164684	header_                http.Header
164685}
164686
164687// SetLabels: Sets the labels on a TargetVpnGateway. To learn more about
164688// labels, read the Labeling Resources documentation. (==
164689// suppress_warning http-rest-shadowed ==)
164690func (r *TargetVpnGatewaysService) SetLabels(project string, region string, resource string, regionsetlabelsrequest *RegionSetLabelsRequest) *TargetVpnGatewaysSetLabelsCall {
164691	c := &TargetVpnGatewaysSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
164692	c.project = project
164693	c.region = region
164694	c.resource = resource
164695	c.regionsetlabelsrequest = regionsetlabelsrequest
164696	return c
164697}
164698
164699// RequestId sets the optional parameter "requestId": An optional
164700// request ID to identify requests. Specify a unique request ID so that
164701// if you must retry your request, the server will know to ignore the
164702// request if it has already been completed.
164703//
164704// For example, consider a situation where you make an initial request
164705// and the request times out. If you make the request again with the
164706// same request ID, the server can check if original operation with the
164707// same request ID was received, and if so, will ignore the second
164708// request. This prevents clients from accidentally creating duplicate
164709// commitments.
164710//
164711// The request ID must be a valid UUID with the exception that zero UUID
164712// is not supported (00000000-0000-0000-0000-000000000000).
164713func (c *TargetVpnGatewaysSetLabelsCall) RequestId(requestId string) *TargetVpnGatewaysSetLabelsCall {
164714	c.urlParams_.Set("requestId", requestId)
164715	return c
164716}
164717
164718// Fields allows partial responses to be retrieved. See
164719// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
164720// for more information.
164721func (c *TargetVpnGatewaysSetLabelsCall) Fields(s ...googleapi.Field) *TargetVpnGatewaysSetLabelsCall {
164722	c.urlParams_.Set("fields", googleapi.CombineFields(s))
164723	return c
164724}
164725
164726// Context sets the context to be used in this call's Do method. Any
164727// pending HTTP request will be aborted if the provided context is
164728// canceled.
164729func (c *TargetVpnGatewaysSetLabelsCall) Context(ctx context.Context) *TargetVpnGatewaysSetLabelsCall {
164730	c.ctx_ = ctx
164731	return c
164732}
164733
164734// Header returns an http.Header that can be modified by the caller to
164735// add HTTP headers to the request.
164736func (c *TargetVpnGatewaysSetLabelsCall) Header() http.Header {
164737	if c.header_ == nil {
164738		c.header_ = make(http.Header)
164739	}
164740	return c.header_
164741}
164742
164743func (c *TargetVpnGatewaysSetLabelsCall) doRequest(alt string) (*http.Response, error) {
164744	reqHeaders := make(http.Header)
164745	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
164746	for k, v := range c.header_ {
164747		reqHeaders[k] = v
164748	}
164749	reqHeaders.Set("User-Agent", c.s.userAgent())
164750	var body io.Reader = nil
164751	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetlabelsrequest)
164752	if err != nil {
164753		return nil, err
164754	}
164755	reqHeaders.Set("Content-Type", "application/json")
164756	c.urlParams_.Set("alt", alt)
164757	c.urlParams_.Set("prettyPrint", "false")
164758	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetVpnGateways/{resource}/setLabels")
164759	urls += "?" + c.urlParams_.Encode()
164760	req, err := http.NewRequest("POST", urls, body)
164761	if err != nil {
164762		return nil, err
164763	}
164764	req.Header = reqHeaders
164765	googleapi.Expand(req.URL, map[string]string{
164766		"project":  c.project,
164767		"region":   c.region,
164768		"resource": c.resource,
164769	})
164770	return gensupport.SendRequest(c.ctx_, c.s.client, req)
164771}
164772
164773// Do executes the "compute.targetVpnGateways.setLabels" call.
164774// Exactly one of *Operation or error will be non-nil. Any non-2xx
164775// status code is an error. Response headers are in either
164776// *Operation.ServerResponse.Header or (if a response was returned at
164777// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
164778// to check whether the returned error was because
164779// http.StatusNotModified was returned.
164780func (c *TargetVpnGatewaysSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
164781	gensupport.SetOptions(c.urlParams_, opts...)
164782	res, err := c.doRequest("json")
164783	if res != nil && res.StatusCode == http.StatusNotModified {
164784		if res.Body != nil {
164785			res.Body.Close()
164786		}
164787		return nil, &googleapi.Error{
164788			Code:   res.StatusCode,
164789			Header: res.Header,
164790		}
164791	}
164792	if err != nil {
164793		return nil, err
164794	}
164795	defer googleapi.CloseBody(res)
164796	if err := googleapi.CheckResponse(res); err != nil {
164797		return nil, err
164798	}
164799	ret := &Operation{
164800		ServerResponse: googleapi.ServerResponse{
164801			Header:         res.Header,
164802			HTTPStatusCode: res.StatusCode,
164803		},
164804	}
164805	target := &ret
164806	if err := gensupport.DecodeResponse(target, res); err != nil {
164807		return nil, err
164808	}
164809	return ret, nil
164810	// {
164811	//   "description": "Sets the labels on a TargetVpnGateway. To learn more about labels, read the Labeling Resources documentation. (== suppress_warning http-rest-shadowed ==)",
164812	//   "httpMethod": "POST",
164813	//   "id": "compute.targetVpnGateways.setLabels",
164814	//   "parameterOrder": [
164815	//     "project",
164816	//     "region",
164817	//     "resource"
164818	//   ],
164819	//   "parameters": {
164820	//     "project": {
164821	//       "description": "Project ID for this request.",
164822	//       "location": "path",
164823	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
164824	//       "required": true,
164825	//       "type": "string"
164826	//     },
164827	//     "region": {
164828	//       "description": "The region for this request.",
164829	//       "location": "path",
164830	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
164831	//       "required": true,
164832	//       "type": "string"
164833	//     },
164834	//     "requestId": {
164835	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
164836	//       "location": "query",
164837	//       "type": "string"
164838	//     },
164839	//     "resource": {
164840	//       "description": "Name or id of the resource for this request.",
164841	//       "location": "path",
164842	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
164843	//       "required": true,
164844	//       "type": "string"
164845	//     }
164846	//   },
164847	//   "path": "{project}/regions/{region}/targetVpnGateways/{resource}/setLabels",
164848	//   "request": {
164849	//     "$ref": "RegionSetLabelsRequest"
164850	//   },
164851	//   "response": {
164852	//     "$ref": "Operation"
164853	//   },
164854	//   "scopes": [
164855	//     "https://www.googleapis.com/auth/cloud-platform",
164856	//     "https://www.googleapis.com/auth/compute"
164857	//   ]
164858	// }
164859
164860}
164861
164862// method id "compute.targetVpnGateways.testIamPermissions":
164863
164864type TargetVpnGatewaysTestIamPermissionsCall struct {
164865	s                      *Service
164866	project                string
164867	region                 string
164868	resource               string
164869	testpermissionsrequest *TestPermissionsRequest
164870	urlParams_             gensupport.URLParams
164871	ctx_                   context.Context
164872	header_                http.Header
164873}
164874
164875// TestIamPermissions: Returns permissions that a caller has on the
164876// specified resource. (== suppress_warning http-rest-shadowed ==)
164877func (r *TargetVpnGatewaysService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *TargetVpnGatewaysTestIamPermissionsCall {
164878	c := &TargetVpnGatewaysTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
164879	c.project = project
164880	c.region = region
164881	c.resource = resource
164882	c.testpermissionsrequest = testpermissionsrequest
164883	return c
164884}
164885
164886// Fields allows partial responses to be retrieved. See
164887// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
164888// for more information.
164889func (c *TargetVpnGatewaysTestIamPermissionsCall) Fields(s ...googleapi.Field) *TargetVpnGatewaysTestIamPermissionsCall {
164890	c.urlParams_.Set("fields", googleapi.CombineFields(s))
164891	return c
164892}
164893
164894// Context sets the context to be used in this call's Do method. Any
164895// pending HTTP request will be aborted if the provided context is
164896// canceled.
164897func (c *TargetVpnGatewaysTestIamPermissionsCall) Context(ctx context.Context) *TargetVpnGatewaysTestIamPermissionsCall {
164898	c.ctx_ = ctx
164899	return c
164900}
164901
164902// Header returns an http.Header that can be modified by the caller to
164903// add HTTP headers to the request.
164904func (c *TargetVpnGatewaysTestIamPermissionsCall) Header() http.Header {
164905	if c.header_ == nil {
164906		c.header_ = make(http.Header)
164907	}
164908	return c.header_
164909}
164910
164911func (c *TargetVpnGatewaysTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
164912	reqHeaders := make(http.Header)
164913	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
164914	for k, v := range c.header_ {
164915		reqHeaders[k] = v
164916	}
164917	reqHeaders.Set("User-Agent", c.s.userAgent())
164918	var body io.Reader = nil
164919	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
164920	if err != nil {
164921		return nil, err
164922	}
164923	reqHeaders.Set("Content-Type", "application/json")
164924	c.urlParams_.Set("alt", alt)
164925	c.urlParams_.Set("prettyPrint", "false")
164926	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetVpnGateways/{resource}/testIamPermissions")
164927	urls += "?" + c.urlParams_.Encode()
164928	req, err := http.NewRequest("POST", urls, body)
164929	if err != nil {
164930		return nil, err
164931	}
164932	req.Header = reqHeaders
164933	googleapi.Expand(req.URL, map[string]string{
164934		"project":  c.project,
164935		"region":   c.region,
164936		"resource": c.resource,
164937	})
164938	return gensupport.SendRequest(c.ctx_, c.s.client, req)
164939}
164940
164941// Do executes the "compute.targetVpnGateways.testIamPermissions" call.
164942// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
164943// non-2xx status code is an error. Response headers are in either
164944// *TestPermissionsResponse.ServerResponse.Header or (if a response was
164945// returned at all) in error.(*googleapi.Error).Header. Use
164946// googleapi.IsNotModified to check whether the returned error was
164947// because http.StatusNotModified was returned.
164948func (c *TargetVpnGatewaysTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
164949	gensupport.SetOptions(c.urlParams_, opts...)
164950	res, err := c.doRequest("json")
164951	if res != nil && res.StatusCode == http.StatusNotModified {
164952		if res.Body != nil {
164953			res.Body.Close()
164954		}
164955		return nil, &googleapi.Error{
164956			Code:   res.StatusCode,
164957			Header: res.Header,
164958		}
164959	}
164960	if err != nil {
164961		return nil, err
164962	}
164963	defer googleapi.CloseBody(res)
164964	if err := googleapi.CheckResponse(res); err != nil {
164965		return nil, err
164966	}
164967	ret := &TestPermissionsResponse{
164968		ServerResponse: googleapi.ServerResponse{
164969			Header:         res.Header,
164970			HTTPStatusCode: res.StatusCode,
164971		},
164972	}
164973	target := &ret
164974	if err := gensupport.DecodeResponse(target, res); err != nil {
164975		return nil, err
164976	}
164977	return ret, nil
164978	// {
164979	//   "description": "Returns permissions that a caller has on the specified resource. (== suppress_warning http-rest-shadowed ==)",
164980	//   "httpMethod": "POST",
164981	//   "id": "compute.targetVpnGateways.testIamPermissions",
164982	//   "parameterOrder": [
164983	//     "project",
164984	//     "region",
164985	//     "resource"
164986	//   ],
164987	//   "parameters": {
164988	//     "project": {
164989	//       "description": "Project ID for this request.",
164990	//       "location": "path",
164991	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
164992	//       "required": true,
164993	//       "type": "string"
164994	//     },
164995	//     "region": {
164996	//       "description": "The name of the region for this request.",
164997	//       "location": "path",
164998	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
164999	//       "required": true,
165000	//       "type": "string"
165001	//     },
165002	//     "resource": {
165003	//       "description": "Name or id of the resource for this request.",
165004	//       "location": "path",
165005	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
165006	//       "required": true,
165007	//       "type": "string"
165008	//     }
165009	//   },
165010	//   "path": "{project}/regions/{region}/targetVpnGateways/{resource}/testIamPermissions",
165011	//   "request": {
165012	//     "$ref": "TestPermissionsRequest"
165013	//   },
165014	//   "response": {
165015	//     "$ref": "TestPermissionsResponse"
165016	//   },
165017	//   "scopes": [
165018	//     "https://www.googleapis.com/auth/cloud-platform",
165019	//     "https://www.googleapis.com/auth/compute",
165020	//     "https://www.googleapis.com/auth/compute.readonly"
165021	//   ]
165022	// }
165023
165024}
165025
165026// method id "compute.urlMaps.aggregatedList":
165027
165028type UrlMapsAggregatedListCall struct {
165029	s            *Service
165030	project      string
165031	urlParams_   gensupport.URLParams
165032	ifNoneMatch_ string
165033	ctx_         context.Context
165034	header_      http.Header
165035}
165036
165037// AggregatedList: Retrieves the list of all UrlMap resources, regional
165038// and global, available to the specified project. (== suppress_warning
165039// http-rest-shadowed ==)
165040func (r *UrlMapsService) AggregatedList(project string) *UrlMapsAggregatedListCall {
165041	c := &UrlMapsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
165042	c.project = project
165043	return c
165044}
165045
165046// Filter sets the optional parameter "filter": A filter expression that
165047// filters resources listed in the response. The expression must specify
165048// the field name, a comparison operator, and the value that you want to
165049// use for filtering. The value must be a string, a number, or a
165050// boolean. The comparison operator must be either =, !=, >, or <.
165051//
165052// For example, if you are filtering Compute Engine instances, you can
165053// exclude instances named example-instance by specifying name !=
165054// example-instance.
165055//
165056// You can also filter nested fields. For example, you could specify
165057// scheduling.automaticRestart = false to include instances only if they
165058// are not scheduled for automatic restarts. You can use filtering on
165059// nested fields to filter based on resource labels.
165060//
165061// To filter on multiple expressions, provide each separate expression
165062// within parentheses. For example, (scheduling.automaticRestart = true)
165063// (cpuPlatform = "Intel Skylake"). By default, each expression is an
165064// AND expression. However, you can include AND and OR expressions
165065// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
165066// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
165067// true).
165068func (c *UrlMapsAggregatedListCall) Filter(filter string) *UrlMapsAggregatedListCall {
165069	c.urlParams_.Set("filter", filter)
165070	return c
165071}
165072
165073// MaxResults sets the optional parameter "maxResults": The maximum
165074// number of results per page that should be returned. If the number of
165075// available results is larger than maxResults, Compute Engine returns a
165076// nextPageToken that can be used to get the next page of results in
165077// subsequent list requests. Acceptable values are 0 to 500, inclusive.
165078// (Default: 500)
165079func (c *UrlMapsAggregatedListCall) MaxResults(maxResults int64) *UrlMapsAggregatedListCall {
165080	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
165081	return c
165082}
165083
165084// OrderBy sets the optional parameter "orderBy": Sorts list results by
165085// a certain order. By default, results are returned in alphanumerical
165086// order based on the resource name.
165087//
165088// You can also sort results in descending order based on the creation
165089// timestamp using orderBy="creationTimestamp desc". This sorts results
165090// based on the creationTimestamp field in reverse chronological order
165091// (newest result first). Use this to sort resources like operations so
165092// that the newest operation is returned first.
165093//
165094// Currently, only sorting by name or creationTimestamp desc is
165095// supported.
165096func (c *UrlMapsAggregatedListCall) OrderBy(orderBy string) *UrlMapsAggregatedListCall {
165097	c.urlParams_.Set("orderBy", orderBy)
165098	return c
165099}
165100
165101// PageToken sets the optional parameter "pageToken": Specifies a page
165102// token to use. Set pageToken to the nextPageToken returned by a
165103// previous list request to get the next page of results.
165104func (c *UrlMapsAggregatedListCall) PageToken(pageToken string) *UrlMapsAggregatedListCall {
165105	c.urlParams_.Set("pageToken", pageToken)
165106	return c
165107}
165108
165109// Fields allows partial responses to be retrieved. See
165110// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
165111// for more information.
165112func (c *UrlMapsAggregatedListCall) Fields(s ...googleapi.Field) *UrlMapsAggregatedListCall {
165113	c.urlParams_.Set("fields", googleapi.CombineFields(s))
165114	return c
165115}
165116
165117// IfNoneMatch sets the optional parameter which makes the operation
165118// fail if the object's ETag matches the given value. This is useful for
165119// getting updates only after the object has changed since the last
165120// request. Use googleapi.IsNotModified to check whether the response
165121// error from Do is the result of In-None-Match.
165122func (c *UrlMapsAggregatedListCall) IfNoneMatch(entityTag string) *UrlMapsAggregatedListCall {
165123	c.ifNoneMatch_ = entityTag
165124	return c
165125}
165126
165127// Context sets the context to be used in this call's Do method. Any
165128// pending HTTP request will be aborted if the provided context is
165129// canceled.
165130func (c *UrlMapsAggregatedListCall) Context(ctx context.Context) *UrlMapsAggregatedListCall {
165131	c.ctx_ = ctx
165132	return c
165133}
165134
165135// Header returns an http.Header that can be modified by the caller to
165136// add HTTP headers to the request.
165137func (c *UrlMapsAggregatedListCall) Header() http.Header {
165138	if c.header_ == nil {
165139		c.header_ = make(http.Header)
165140	}
165141	return c.header_
165142}
165143
165144func (c *UrlMapsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
165145	reqHeaders := make(http.Header)
165146	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
165147	for k, v := range c.header_ {
165148		reqHeaders[k] = v
165149	}
165150	reqHeaders.Set("User-Agent", c.s.userAgent())
165151	if c.ifNoneMatch_ != "" {
165152		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
165153	}
165154	var body io.Reader = nil
165155	c.urlParams_.Set("alt", alt)
165156	c.urlParams_.Set("prettyPrint", "false")
165157	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/urlMaps")
165158	urls += "?" + c.urlParams_.Encode()
165159	req, err := http.NewRequest("GET", urls, body)
165160	if err != nil {
165161		return nil, err
165162	}
165163	req.Header = reqHeaders
165164	googleapi.Expand(req.URL, map[string]string{
165165		"project": c.project,
165166	})
165167	return gensupport.SendRequest(c.ctx_, c.s.client, req)
165168}
165169
165170// Do executes the "compute.urlMaps.aggregatedList" call.
165171// Exactly one of *UrlMapsAggregatedList or error will be non-nil. Any
165172// non-2xx status code is an error. Response headers are in either
165173// *UrlMapsAggregatedList.ServerResponse.Header or (if a response was
165174// returned at all) in error.(*googleapi.Error).Header. Use
165175// googleapi.IsNotModified to check whether the returned error was
165176// because http.StatusNotModified was returned.
165177func (c *UrlMapsAggregatedListCall) Do(opts ...googleapi.CallOption) (*UrlMapsAggregatedList, error) {
165178	gensupport.SetOptions(c.urlParams_, opts...)
165179	res, err := c.doRequest("json")
165180	if res != nil && res.StatusCode == http.StatusNotModified {
165181		if res.Body != nil {
165182			res.Body.Close()
165183		}
165184		return nil, &googleapi.Error{
165185			Code:   res.StatusCode,
165186			Header: res.Header,
165187		}
165188	}
165189	if err != nil {
165190		return nil, err
165191	}
165192	defer googleapi.CloseBody(res)
165193	if err := googleapi.CheckResponse(res); err != nil {
165194		return nil, err
165195	}
165196	ret := &UrlMapsAggregatedList{
165197		ServerResponse: googleapi.ServerResponse{
165198			Header:         res.Header,
165199			HTTPStatusCode: res.StatusCode,
165200		},
165201	}
165202	target := &ret
165203	if err := gensupport.DecodeResponse(target, res); err != nil {
165204		return nil, err
165205	}
165206	return ret, nil
165207	// {
165208	//   "description": "Retrieves the list of all UrlMap resources, regional and global, available to the specified project. (== suppress_warning http-rest-shadowed ==)",
165209	//   "httpMethod": "GET",
165210	//   "id": "compute.urlMaps.aggregatedList",
165211	//   "parameterOrder": [
165212	//     "project"
165213	//   ],
165214	//   "parameters": {
165215	//     "filter": {
165216	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
165217	//       "location": "query",
165218	//       "type": "string"
165219	//     },
165220	//     "maxResults": {
165221	//       "default": "500",
165222	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
165223	//       "format": "uint32",
165224	//       "location": "query",
165225	//       "minimum": "0",
165226	//       "type": "integer"
165227	//     },
165228	//     "orderBy": {
165229	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
165230	//       "location": "query",
165231	//       "type": "string"
165232	//     },
165233	//     "pageToken": {
165234	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
165235	//       "location": "query",
165236	//       "type": "string"
165237	//     },
165238	//     "project": {
165239	//       "description": "Name of the project scoping this request.",
165240	//       "location": "path",
165241	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
165242	//       "required": true,
165243	//       "type": "string"
165244	//     }
165245	//   },
165246	//   "path": "{project}/aggregated/urlMaps",
165247	//   "response": {
165248	//     "$ref": "UrlMapsAggregatedList"
165249	//   },
165250	//   "scopes": [
165251	//     "https://www.googleapis.com/auth/cloud-platform",
165252	//     "https://www.googleapis.com/auth/compute",
165253	//     "https://www.googleapis.com/auth/compute.readonly"
165254	//   ]
165255	// }
165256
165257}
165258
165259// Pages invokes f for each page of results.
165260// A non-nil error returned from f will halt the iteration.
165261// The provided context supersedes any context provided to the Context method.
165262func (c *UrlMapsAggregatedListCall) Pages(ctx context.Context, f func(*UrlMapsAggregatedList) error) error {
165263	c.ctx_ = ctx
165264	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
165265	for {
165266		x, err := c.Do()
165267		if err != nil {
165268			return err
165269		}
165270		if err := f(x); err != nil {
165271			return err
165272		}
165273		if x.NextPageToken == "" {
165274			return nil
165275		}
165276		c.PageToken(x.NextPageToken)
165277	}
165278}
165279
165280// method id "compute.urlMaps.delete":
165281
165282type UrlMapsDeleteCall struct {
165283	s          *Service
165284	project    string
165285	urlMap     string
165286	urlParams_ gensupport.URLParams
165287	ctx_       context.Context
165288	header_    http.Header
165289}
165290
165291// Delete: Deletes the specified UrlMap resource. (== suppress_warning
165292// http-rest-shadowed ==)
165293// For details, see https://cloud.google.com/compute/docs/reference/latest/urlMaps/delete
165294func (r *UrlMapsService) Delete(project string, urlMap string) *UrlMapsDeleteCall {
165295	c := &UrlMapsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
165296	c.project = project
165297	c.urlMap = urlMap
165298	return c
165299}
165300
165301// RequestId sets the optional parameter "requestId": An optional
165302// request ID to identify requests. Specify a unique request ID so that
165303// if you must retry your request, the server will know to ignore the
165304// request if it has already been completed.
165305//
165306// For example, consider a situation where you make an initial request
165307// and the request times out. If you make the request again with the
165308// same request ID, the server can check if original operation with the
165309// same request ID was received, and if so, will ignore the second
165310// request. This prevents clients from accidentally creating duplicate
165311// commitments.
165312//
165313// The request ID must be a valid UUID with the exception that zero UUID
165314// is not supported (00000000-0000-0000-0000-000000000000).
165315func (c *UrlMapsDeleteCall) RequestId(requestId string) *UrlMapsDeleteCall {
165316	c.urlParams_.Set("requestId", requestId)
165317	return c
165318}
165319
165320// Fields allows partial responses to be retrieved. See
165321// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
165322// for more information.
165323func (c *UrlMapsDeleteCall) Fields(s ...googleapi.Field) *UrlMapsDeleteCall {
165324	c.urlParams_.Set("fields", googleapi.CombineFields(s))
165325	return c
165326}
165327
165328// Context sets the context to be used in this call's Do method. Any
165329// pending HTTP request will be aborted if the provided context is
165330// canceled.
165331func (c *UrlMapsDeleteCall) Context(ctx context.Context) *UrlMapsDeleteCall {
165332	c.ctx_ = ctx
165333	return c
165334}
165335
165336// Header returns an http.Header that can be modified by the caller to
165337// add HTTP headers to the request.
165338func (c *UrlMapsDeleteCall) Header() http.Header {
165339	if c.header_ == nil {
165340		c.header_ = make(http.Header)
165341	}
165342	return c.header_
165343}
165344
165345func (c *UrlMapsDeleteCall) doRequest(alt string) (*http.Response, error) {
165346	reqHeaders := make(http.Header)
165347	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
165348	for k, v := range c.header_ {
165349		reqHeaders[k] = v
165350	}
165351	reqHeaders.Set("User-Agent", c.s.userAgent())
165352	var body io.Reader = nil
165353	c.urlParams_.Set("alt", alt)
165354	c.urlParams_.Set("prettyPrint", "false")
165355	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/urlMaps/{urlMap}")
165356	urls += "?" + c.urlParams_.Encode()
165357	req, err := http.NewRequest("DELETE", urls, body)
165358	if err != nil {
165359		return nil, err
165360	}
165361	req.Header = reqHeaders
165362	googleapi.Expand(req.URL, map[string]string{
165363		"project": c.project,
165364		"urlMap":  c.urlMap,
165365	})
165366	return gensupport.SendRequest(c.ctx_, c.s.client, req)
165367}
165368
165369// Do executes the "compute.urlMaps.delete" call.
165370// Exactly one of *Operation or error will be non-nil. Any non-2xx
165371// status code is an error. Response headers are in either
165372// *Operation.ServerResponse.Header or (if a response was returned at
165373// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
165374// to check whether the returned error was because
165375// http.StatusNotModified was returned.
165376func (c *UrlMapsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
165377	gensupport.SetOptions(c.urlParams_, opts...)
165378	res, err := c.doRequest("json")
165379	if res != nil && res.StatusCode == http.StatusNotModified {
165380		if res.Body != nil {
165381			res.Body.Close()
165382		}
165383		return nil, &googleapi.Error{
165384			Code:   res.StatusCode,
165385			Header: res.Header,
165386		}
165387	}
165388	if err != nil {
165389		return nil, err
165390	}
165391	defer googleapi.CloseBody(res)
165392	if err := googleapi.CheckResponse(res); err != nil {
165393		return nil, err
165394	}
165395	ret := &Operation{
165396		ServerResponse: googleapi.ServerResponse{
165397			Header:         res.Header,
165398			HTTPStatusCode: res.StatusCode,
165399		},
165400	}
165401	target := &ret
165402	if err := gensupport.DecodeResponse(target, res); err != nil {
165403		return nil, err
165404	}
165405	return ret, nil
165406	// {
165407	//   "description": "Deletes the specified UrlMap resource. (== suppress_warning http-rest-shadowed ==)",
165408	//   "httpMethod": "DELETE",
165409	//   "id": "compute.urlMaps.delete",
165410	//   "parameterOrder": [
165411	//     "project",
165412	//     "urlMap"
165413	//   ],
165414	//   "parameters": {
165415	//     "project": {
165416	//       "description": "Project ID for this request.",
165417	//       "location": "path",
165418	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
165419	//       "required": true,
165420	//       "type": "string"
165421	//     },
165422	//     "requestId": {
165423	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
165424	//       "location": "query",
165425	//       "type": "string"
165426	//     },
165427	//     "urlMap": {
165428	//       "description": "Name of the UrlMap resource to delete.",
165429	//       "location": "path",
165430	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
165431	//       "required": true,
165432	//       "type": "string"
165433	//     }
165434	//   },
165435	//   "path": "{project}/global/urlMaps/{urlMap}",
165436	//   "response": {
165437	//     "$ref": "Operation"
165438	//   },
165439	//   "scopes": [
165440	//     "https://www.googleapis.com/auth/cloud-platform",
165441	//     "https://www.googleapis.com/auth/compute"
165442	//   ]
165443	// }
165444
165445}
165446
165447// method id "compute.urlMaps.get":
165448
165449type UrlMapsGetCall struct {
165450	s            *Service
165451	project      string
165452	urlMap       string
165453	urlParams_   gensupport.URLParams
165454	ifNoneMatch_ string
165455	ctx_         context.Context
165456	header_      http.Header
165457}
165458
165459// Get: Returns the specified UrlMap resource. Gets a list of available
165460// URL maps by making a list() request. (== suppress_warning
165461// http-rest-shadowed ==)
165462// For details, see https://cloud.google.com/compute/docs/reference/latest/urlMaps/get
165463func (r *UrlMapsService) Get(project string, urlMap string) *UrlMapsGetCall {
165464	c := &UrlMapsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
165465	c.project = project
165466	c.urlMap = urlMap
165467	return c
165468}
165469
165470// Fields allows partial responses to be retrieved. See
165471// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
165472// for more information.
165473func (c *UrlMapsGetCall) Fields(s ...googleapi.Field) *UrlMapsGetCall {
165474	c.urlParams_.Set("fields", googleapi.CombineFields(s))
165475	return c
165476}
165477
165478// IfNoneMatch sets the optional parameter which makes the operation
165479// fail if the object's ETag matches the given value. This is useful for
165480// getting updates only after the object has changed since the last
165481// request. Use googleapi.IsNotModified to check whether the response
165482// error from Do is the result of In-None-Match.
165483func (c *UrlMapsGetCall) IfNoneMatch(entityTag string) *UrlMapsGetCall {
165484	c.ifNoneMatch_ = entityTag
165485	return c
165486}
165487
165488// Context sets the context to be used in this call's Do method. Any
165489// pending HTTP request will be aborted if the provided context is
165490// canceled.
165491func (c *UrlMapsGetCall) Context(ctx context.Context) *UrlMapsGetCall {
165492	c.ctx_ = ctx
165493	return c
165494}
165495
165496// Header returns an http.Header that can be modified by the caller to
165497// add HTTP headers to the request.
165498func (c *UrlMapsGetCall) Header() http.Header {
165499	if c.header_ == nil {
165500		c.header_ = make(http.Header)
165501	}
165502	return c.header_
165503}
165504
165505func (c *UrlMapsGetCall) doRequest(alt string) (*http.Response, error) {
165506	reqHeaders := make(http.Header)
165507	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
165508	for k, v := range c.header_ {
165509		reqHeaders[k] = v
165510	}
165511	reqHeaders.Set("User-Agent", c.s.userAgent())
165512	if c.ifNoneMatch_ != "" {
165513		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
165514	}
165515	var body io.Reader = nil
165516	c.urlParams_.Set("alt", alt)
165517	c.urlParams_.Set("prettyPrint", "false")
165518	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/urlMaps/{urlMap}")
165519	urls += "?" + c.urlParams_.Encode()
165520	req, err := http.NewRequest("GET", urls, body)
165521	if err != nil {
165522		return nil, err
165523	}
165524	req.Header = reqHeaders
165525	googleapi.Expand(req.URL, map[string]string{
165526		"project": c.project,
165527		"urlMap":  c.urlMap,
165528	})
165529	return gensupport.SendRequest(c.ctx_, c.s.client, req)
165530}
165531
165532// Do executes the "compute.urlMaps.get" call.
165533// Exactly one of *UrlMap or error will be non-nil. Any non-2xx status
165534// code is an error. Response headers are in either
165535// *UrlMap.ServerResponse.Header or (if a response was returned at all)
165536// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
165537// check whether the returned error was because http.StatusNotModified
165538// was returned.
165539func (c *UrlMapsGetCall) Do(opts ...googleapi.CallOption) (*UrlMap, error) {
165540	gensupport.SetOptions(c.urlParams_, opts...)
165541	res, err := c.doRequest("json")
165542	if res != nil && res.StatusCode == http.StatusNotModified {
165543		if res.Body != nil {
165544			res.Body.Close()
165545		}
165546		return nil, &googleapi.Error{
165547			Code:   res.StatusCode,
165548			Header: res.Header,
165549		}
165550	}
165551	if err != nil {
165552		return nil, err
165553	}
165554	defer googleapi.CloseBody(res)
165555	if err := googleapi.CheckResponse(res); err != nil {
165556		return nil, err
165557	}
165558	ret := &UrlMap{
165559		ServerResponse: googleapi.ServerResponse{
165560			Header:         res.Header,
165561			HTTPStatusCode: res.StatusCode,
165562		},
165563	}
165564	target := &ret
165565	if err := gensupport.DecodeResponse(target, res); err != nil {
165566		return nil, err
165567	}
165568	return ret, nil
165569	// {
165570	//   "description": "Returns the specified UrlMap resource. Gets a list of available URL maps by making a list() request. (== suppress_warning http-rest-shadowed ==)",
165571	//   "httpMethod": "GET",
165572	//   "id": "compute.urlMaps.get",
165573	//   "parameterOrder": [
165574	//     "project",
165575	//     "urlMap"
165576	//   ],
165577	//   "parameters": {
165578	//     "project": {
165579	//       "description": "Project ID for this request.",
165580	//       "location": "path",
165581	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
165582	//       "required": true,
165583	//       "type": "string"
165584	//     },
165585	//     "urlMap": {
165586	//       "description": "Name of the UrlMap resource to return.",
165587	//       "location": "path",
165588	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
165589	//       "required": true,
165590	//       "type": "string"
165591	//     }
165592	//   },
165593	//   "path": "{project}/global/urlMaps/{urlMap}",
165594	//   "response": {
165595	//     "$ref": "UrlMap"
165596	//   },
165597	//   "scopes": [
165598	//     "https://www.googleapis.com/auth/cloud-platform",
165599	//     "https://www.googleapis.com/auth/compute",
165600	//     "https://www.googleapis.com/auth/compute.readonly"
165601	//   ]
165602	// }
165603
165604}
165605
165606// method id "compute.urlMaps.insert":
165607
165608type UrlMapsInsertCall struct {
165609	s          *Service
165610	project    string
165611	urlmap     *UrlMap
165612	urlParams_ gensupport.URLParams
165613	ctx_       context.Context
165614	header_    http.Header
165615}
165616
165617// Insert: Creates a UrlMap resource in the specified project using the
165618// data included in the request. (== suppress_warning http-rest-shadowed
165619// ==)
165620// For details, see https://cloud.google.com/compute/docs/reference/latest/urlMaps/insert
165621func (r *UrlMapsService) Insert(project string, urlmap *UrlMap) *UrlMapsInsertCall {
165622	c := &UrlMapsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
165623	c.project = project
165624	c.urlmap = urlmap
165625	return c
165626}
165627
165628// RequestId sets the optional parameter "requestId": An optional
165629// request ID to identify requests. Specify a unique request ID so that
165630// if you must retry your request, the server will know to ignore the
165631// request if it has already been completed.
165632//
165633// For example, consider a situation where you make an initial request
165634// and the request times out. If you make the request again with the
165635// same request ID, the server can check if original operation with the
165636// same request ID was received, and if so, will ignore the second
165637// request. This prevents clients from accidentally creating duplicate
165638// commitments.
165639//
165640// The request ID must be a valid UUID with the exception that zero UUID
165641// is not supported (00000000-0000-0000-0000-000000000000).
165642func (c *UrlMapsInsertCall) RequestId(requestId string) *UrlMapsInsertCall {
165643	c.urlParams_.Set("requestId", requestId)
165644	return c
165645}
165646
165647// Fields allows partial responses to be retrieved. See
165648// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
165649// for more information.
165650func (c *UrlMapsInsertCall) Fields(s ...googleapi.Field) *UrlMapsInsertCall {
165651	c.urlParams_.Set("fields", googleapi.CombineFields(s))
165652	return c
165653}
165654
165655// Context sets the context to be used in this call's Do method. Any
165656// pending HTTP request will be aborted if the provided context is
165657// canceled.
165658func (c *UrlMapsInsertCall) Context(ctx context.Context) *UrlMapsInsertCall {
165659	c.ctx_ = ctx
165660	return c
165661}
165662
165663// Header returns an http.Header that can be modified by the caller to
165664// add HTTP headers to the request.
165665func (c *UrlMapsInsertCall) Header() http.Header {
165666	if c.header_ == nil {
165667		c.header_ = make(http.Header)
165668	}
165669	return c.header_
165670}
165671
165672func (c *UrlMapsInsertCall) doRequest(alt string) (*http.Response, error) {
165673	reqHeaders := make(http.Header)
165674	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
165675	for k, v := range c.header_ {
165676		reqHeaders[k] = v
165677	}
165678	reqHeaders.Set("User-Agent", c.s.userAgent())
165679	var body io.Reader = nil
165680	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmap)
165681	if err != nil {
165682		return nil, err
165683	}
165684	reqHeaders.Set("Content-Type", "application/json")
165685	c.urlParams_.Set("alt", alt)
165686	c.urlParams_.Set("prettyPrint", "false")
165687	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/urlMaps")
165688	urls += "?" + c.urlParams_.Encode()
165689	req, err := http.NewRequest("POST", urls, body)
165690	if err != nil {
165691		return nil, err
165692	}
165693	req.Header = reqHeaders
165694	googleapi.Expand(req.URL, map[string]string{
165695		"project": c.project,
165696	})
165697	return gensupport.SendRequest(c.ctx_, c.s.client, req)
165698}
165699
165700// Do executes the "compute.urlMaps.insert" 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 *UrlMapsInsertCall) 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": "Creates a UrlMap resource in the specified project using the data included in the request. (== suppress_warning http-rest-shadowed ==)",
165739	//   "httpMethod": "POST",
165740	//   "id": "compute.urlMaps.insert",
165741	//   "parameterOrder": [
165742	//     "project"
165743	//   ],
165744	//   "parameters": {
165745	//     "project": {
165746	//       "description": "Project ID for this request.",
165747	//       "location": "path",
165748	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
165749	//       "required": true,
165750	//       "type": "string"
165751	//     },
165752	//     "requestId": {
165753	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
165754	//       "location": "query",
165755	//       "type": "string"
165756	//     }
165757	//   },
165758	//   "path": "{project}/global/urlMaps",
165759	//   "request": {
165760	//     "$ref": "UrlMap"
165761	//   },
165762	//   "response": {
165763	//     "$ref": "Operation"
165764	//   },
165765	//   "scopes": [
165766	//     "https://www.googleapis.com/auth/cloud-platform",
165767	//     "https://www.googleapis.com/auth/compute"
165768	//   ]
165769	// }
165770
165771}
165772
165773// method id "compute.urlMaps.invalidateCache":
165774
165775type UrlMapsInvalidateCacheCall struct {
165776	s                     *Service
165777	project               string
165778	urlMap                string
165779	cacheinvalidationrule *CacheInvalidationRule
165780	urlParams_            gensupport.URLParams
165781	ctx_                  context.Context
165782	header_               http.Header
165783}
165784
165785// InvalidateCache: Initiates a cache invalidation operation,
165786// invalidating the specified path, scoped to the specified UrlMap. (==
165787// suppress_warning http-rest-shadowed ==)
165788func (r *UrlMapsService) InvalidateCache(project string, urlMap string, cacheinvalidationrule *CacheInvalidationRule) *UrlMapsInvalidateCacheCall {
165789	c := &UrlMapsInvalidateCacheCall{s: r.s, urlParams_: make(gensupport.URLParams)}
165790	c.project = project
165791	c.urlMap = urlMap
165792	c.cacheinvalidationrule = cacheinvalidationrule
165793	return c
165794}
165795
165796// RequestId sets the optional parameter "requestId": An optional
165797// request ID to identify requests. Specify a unique request ID so that
165798// if you must retry your request, the server will know to ignore the
165799// request if it has already been completed.
165800//
165801// For example, consider a situation where you make an initial request
165802// and the request times out. If you make the request again with the
165803// same request ID, the server can check if original operation with the
165804// same request ID was received, and if so, will ignore the second
165805// request. This prevents clients from accidentally creating duplicate
165806// commitments.
165807//
165808// The request ID must be a valid UUID with the exception that zero UUID
165809// is not supported (00000000-0000-0000-0000-000000000000).
165810func (c *UrlMapsInvalidateCacheCall) RequestId(requestId string) *UrlMapsInvalidateCacheCall {
165811	c.urlParams_.Set("requestId", requestId)
165812	return c
165813}
165814
165815// Fields allows partial responses to be retrieved. See
165816// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
165817// for more information.
165818func (c *UrlMapsInvalidateCacheCall) Fields(s ...googleapi.Field) *UrlMapsInvalidateCacheCall {
165819	c.urlParams_.Set("fields", googleapi.CombineFields(s))
165820	return c
165821}
165822
165823// Context sets the context to be used in this call's Do method. Any
165824// pending HTTP request will be aborted if the provided context is
165825// canceled.
165826func (c *UrlMapsInvalidateCacheCall) Context(ctx context.Context) *UrlMapsInvalidateCacheCall {
165827	c.ctx_ = ctx
165828	return c
165829}
165830
165831// Header returns an http.Header that can be modified by the caller to
165832// add HTTP headers to the request.
165833func (c *UrlMapsInvalidateCacheCall) Header() http.Header {
165834	if c.header_ == nil {
165835		c.header_ = make(http.Header)
165836	}
165837	return c.header_
165838}
165839
165840func (c *UrlMapsInvalidateCacheCall) doRequest(alt string) (*http.Response, error) {
165841	reqHeaders := make(http.Header)
165842	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
165843	for k, v := range c.header_ {
165844		reqHeaders[k] = v
165845	}
165846	reqHeaders.Set("User-Agent", c.s.userAgent())
165847	var body io.Reader = nil
165848	body, err := googleapi.WithoutDataWrapper.JSONReader(c.cacheinvalidationrule)
165849	if err != nil {
165850		return nil, err
165851	}
165852	reqHeaders.Set("Content-Type", "application/json")
165853	c.urlParams_.Set("alt", alt)
165854	c.urlParams_.Set("prettyPrint", "false")
165855	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/urlMaps/{urlMap}/invalidateCache")
165856	urls += "?" + c.urlParams_.Encode()
165857	req, err := http.NewRequest("POST", urls, body)
165858	if err != nil {
165859		return nil, err
165860	}
165861	req.Header = reqHeaders
165862	googleapi.Expand(req.URL, map[string]string{
165863		"project": c.project,
165864		"urlMap":  c.urlMap,
165865	})
165866	return gensupport.SendRequest(c.ctx_, c.s.client, req)
165867}
165868
165869// Do executes the "compute.urlMaps.invalidateCache" call.
165870// Exactly one of *Operation or error will be non-nil. Any non-2xx
165871// status code is an error. Response headers are in either
165872// *Operation.ServerResponse.Header or (if a response was returned at
165873// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
165874// to check whether the returned error was because
165875// http.StatusNotModified was returned.
165876func (c *UrlMapsInvalidateCacheCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
165877	gensupport.SetOptions(c.urlParams_, opts...)
165878	res, err := c.doRequest("json")
165879	if res != nil && res.StatusCode == http.StatusNotModified {
165880		if res.Body != nil {
165881			res.Body.Close()
165882		}
165883		return nil, &googleapi.Error{
165884			Code:   res.StatusCode,
165885			Header: res.Header,
165886		}
165887	}
165888	if err != nil {
165889		return nil, err
165890	}
165891	defer googleapi.CloseBody(res)
165892	if err := googleapi.CheckResponse(res); err != nil {
165893		return nil, err
165894	}
165895	ret := &Operation{
165896		ServerResponse: googleapi.ServerResponse{
165897			Header:         res.Header,
165898			HTTPStatusCode: res.StatusCode,
165899		},
165900	}
165901	target := &ret
165902	if err := gensupport.DecodeResponse(target, res); err != nil {
165903		return nil, err
165904	}
165905	return ret, nil
165906	// {
165907	//   "description": "Initiates a cache invalidation operation, invalidating the specified path, scoped to the specified UrlMap. (== suppress_warning http-rest-shadowed ==)",
165908	//   "httpMethod": "POST",
165909	//   "id": "compute.urlMaps.invalidateCache",
165910	//   "parameterOrder": [
165911	//     "project",
165912	//     "urlMap"
165913	//   ],
165914	//   "parameters": {
165915	//     "project": {
165916	//       "description": "Project ID for this request.",
165917	//       "location": "path",
165918	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
165919	//       "required": true,
165920	//       "type": "string"
165921	//     },
165922	//     "requestId": {
165923	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
165924	//       "location": "query",
165925	//       "type": "string"
165926	//     },
165927	//     "urlMap": {
165928	//       "description": "Name of the UrlMap scoping this request.",
165929	//       "location": "path",
165930	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
165931	//       "required": true,
165932	//       "type": "string"
165933	//     }
165934	//   },
165935	//   "path": "{project}/global/urlMaps/{urlMap}/invalidateCache",
165936	//   "request": {
165937	//     "$ref": "CacheInvalidationRule"
165938	//   },
165939	//   "response": {
165940	//     "$ref": "Operation"
165941	//   },
165942	//   "scopes": [
165943	//     "https://www.googleapis.com/auth/cloud-platform",
165944	//     "https://www.googleapis.com/auth/compute"
165945	//   ]
165946	// }
165947
165948}
165949
165950// method id "compute.urlMaps.list":
165951
165952type UrlMapsListCall struct {
165953	s            *Service
165954	project      string
165955	urlParams_   gensupport.URLParams
165956	ifNoneMatch_ string
165957	ctx_         context.Context
165958	header_      http.Header
165959}
165960
165961// List: Retrieves the list of UrlMap resources available to the
165962// specified project. (== suppress_warning http-rest-shadowed ==)
165963// For details, see https://cloud.google.com/compute/docs/reference/latest/urlMaps/list
165964func (r *UrlMapsService) List(project string) *UrlMapsListCall {
165965	c := &UrlMapsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
165966	c.project = project
165967	return c
165968}
165969
165970// Filter sets the optional parameter "filter": A filter expression that
165971// filters resources listed in the response. The expression must specify
165972// the field name, a comparison operator, and the value that you want to
165973// use for filtering. The value must be a string, a number, or a
165974// boolean. The comparison operator must be either =, !=, >, or <.
165975//
165976// For example, if you are filtering Compute Engine instances, you can
165977// exclude instances named example-instance by specifying name !=
165978// example-instance.
165979//
165980// You can also filter nested fields. For example, you could specify
165981// scheduling.automaticRestart = false to include instances only if they
165982// are not scheduled for automatic restarts. You can use filtering on
165983// nested fields to filter based on resource labels.
165984//
165985// To filter on multiple expressions, provide each separate expression
165986// within parentheses. For example, (scheduling.automaticRestart = true)
165987// (cpuPlatform = "Intel Skylake"). By default, each expression is an
165988// AND expression. However, you can include AND and OR expressions
165989// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
165990// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
165991// true).
165992func (c *UrlMapsListCall) Filter(filter string) *UrlMapsListCall {
165993	c.urlParams_.Set("filter", filter)
165994	return c
165995}
165996
165997// MaxResults sets the optional parameter "maxResults": The maximum
165998// number of results per page that should be returned. If the number of
165999// available results is larger than maxResults, Compute Engine returns a
166000// nextPageToken that can be used to get the next page of results in
166001// subsequent list requests. Acceptable values are 0 to 500, inclusive.
166002// (Default: 500)
166003func (c *UrlMapsListCall) MaxResults(maxResults int64) *UrlMapsListCall {
166004	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
166005	return c
166006}
166007
166008// OrderBy sets the optional parameter "orderBy": Sorts list results by
166009// a certain order. By default, results are returned in alphanumerical
166010// order based on the resource name.
166011//
166012// You can also sort results in descending order based on the creation
166013// timestamp using orderBy="creationTimestamp desc". This sorts results
166014// based on the creationTimestamp field in reverse chronological order
166015// (newest result first). Use this to sort resources like operations so
166016// that the newest operation is returned first.
166017//
166018// Currently, only sorting by name or creationTimestamp desc is
166019// supported.
166020func (c *UrlMapsListCall) OrderBy(orderBy string) *UrlMapsListCall {
166021	c.urlParams_.Set("orderBy", orderBy)
166022	return c
166023}
166024
166025// PageToken sets the optional parameter "pageToken": Specifies a page
166026// token to use. Set pageToken to the nextPageToken returned by a
166027// previous list request to get the next page of results.
166028func (c *UrlMapsListCall) PageToken(pageToken string) *UrlMapsListCall {
166029	c.urlParams_.Set("pageToken", pageToken)
166030	return c
166031}
166032
166033// Fields allows partial responses to be retrieved. See
166034// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
166035// for more information.
166036func (c *UrlMapsListCall) Fields(s ...googleapi.Field) *UrlMapsListCall {
166037	c.urlParams_.Set("fields", googleapi.CombineFields(s))
166038	return c
166039}
166040
166041// IfNoneMatch sets the optional parameter which makes the operation
166042// fail if the object's ETag matches the given value. This is useful for
166043// getting updates only after the object has changed since the last
166044// request. Use googleapi.IsNotModified to check whether the response
166045// error from Do is the result of In-None-Match.
166046func (c *UrlMapsListCall) IfNoneMatch(entityTag string) *UrlMapsListCall {
166047	c.ifNoneMatch_ = entityTag
166048	return c
166049}
166050
166051// Context sets the context to be used in this call's Do method. Any
166052// pending HTTP request will be aborted if the provided context is
166053// canceled.
166054func (c *UrlMapsListCall) Context(ctx context.Context) *UrlMapsListCall {
166055	c.ctx_ = ctx
166056	return c
166057}
166058
166059// Header returns an http.Header that can be modified by the caller to
166060// add HTTP headers to the request.
166061func (c *UrlMapsListCall) Header() http.Header {
166062	if c.header_ == nil {
166063		c.header_ = make(http.Header)
166064	}
166065	return c.header_
166066}
166067
166068func (c *UrlMapsListCall) doRequest(alt string) (*http.Response, error) {
166069	reqHeaders := make(http.Header)
166070	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
166071	for k, v := range c.header_ {
166072		reqHeaders[k] = v
166073	}
166074	reqHeaders.Set("User-Agent", c.s.userAgent())
166075	if c.ifNoneMatch_ != "" {
166076		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
166077	}
166078	var body io.Reader = nil
166079	c.urlParams_.Set("alt", alt)
166080	c.urlParams_.Set("prettyPrint", "false")
166081	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/urlMaps")
166082	urls += "?" + c.urlParams_.Encode()
166083	req, err := http.NewRequest("GET", urls, body)
166084	if err != nil {
166085		return nil, err
166086	}
166087	req.Header = reqHeaders
166088	googleapi.Expand(req.URL, map[string]string{
166089		"project": c.project,
166090	})
166091	return gensupport.SendRequest(c.ctx_, c.s.client, req)
166092}
166093
166094// Do executes the "compute.urlMaps.list" call.
166095// Exactly one of *UrlMapList or error will be non-nil. Any non-2xx
166096// status code is an error. Response headers are in either
166097// *UrlMapList.ServerResponse.Header or (if a response was returned at
166098// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
166099// to check whether the returned error was because
166100// http.StatusNotModified was returned.
166101func (c *UrlMapsListCall) Do(opts ...googleapi.CallOption) (*UrlMapList, error) {
166102	gensupport.SetOptions(c.urlParams_, opts...)
166103	res, err := c.doRequest("json")
166104	if res != nil && res.StatusCode == http.StatusNotModified {
166105		if res.Body != nil {
166106			res.Body.Close()
166107		}
166108		return nil, &googleapi.Error{
166109			Code:   res.StatusCode,
166110			Header: res.Header,
166111		}
166112	}
166113	if err != nil {
166114		return nil, err
166115	}
166116	defer googleapi.CloseBody(res)
166117	if err := googleapi.CheckResponse(res); err != nil {
166118		return nil, err
166119	}
166120	ret := &UrlMapList{
166121		ServerResponse: googleapi.ServerResponse{
166122			Header:         res.Header,
166123			HTTPStatusCode: res.StatusCode,
166124		},
166125	}
166126	target := &ret
166127	if err := gensupport.DecodeResponse(target, res); err != nil {
166128		return nil, err
166129	}
166130	return ret, nil
166131	// {
166132	//   "description": "Retrieves the list of UrlMap resources available to the specified project. (== suppress_warning http-rest-shadowed ==)",
166133	//   "httpMethod": "GET",
166134	//   "id": "compute.urlMaps.list",
166135	//   "parameterOrder": [
166136	//     "project"
166137	//   ],
166138	//   "parameters": {
166139	//     "filter": {
166140	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
166141	//       "location": "query",
166142	//       "type": "string"
166143	//     },
166144	//     "maxResults": {
166145	//       "default": "500",
166146	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
166147	//       "format": "uint32",
166148	//       "location": "query",
166149	//       "minimum": "0",
166150	//       "type": "integer"
166151	//     },
166152	//     "orderBy": {
166153	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
166154	//       "location": "query",
166155	//       "type": "string"
166156	//     },
166157	//     "pageToken": {
166158	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
166159	//       "location": "query",
166160	//       "type": "string"
166161	//     },
166162	//     "project": {
166163	//       "description": "Project ID for this request.",
166164	//       "location": "path",
166165	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
166166	//       "required": true,
166167	//       "type": "string"
166168	//     }
166169	//   },
166170	//   "path": "{project}/global/urlMaps",
166171	//   "response": {
166172	//     "$ref": "UrlMapList"
166173	//   },
166174	//   "scopes": [
166175	//     "https://www.googleapis.com/auth/cloud-platform",
166176	//     "https://www.googleapis.com/auth/compute",
166177	//     "https://www.googleapis.com/auth/compute.readonly"
166178	//   ]
166179	// }
166180
166181}
166182
166183// Pages invokes f for each page of results.
166184// A non-nil error returned from f will halt the iteration.
166185// The provided context supersedes any context provided to the Context method.
166186func (c *UrlMapsListCall) Pages(ctx context.Context, f func(*UrlMapList) error) error {
166187	c.ctx_ = ctx
166188	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
166189	for {
166190		x, err := c.Do()
166191		if err != nil {
166192			return err
166193		}
166194		if err := f(x); err != nil {
166195			return err
166196		}
166197		if x.NextPageToken == "" {
166198			return nil
166199		}
166200		c.PageToken(x.NextPageToken)
166201	}
166202}
166203
166204// method id "compute.urlMaps.patch":
166205
166206type UrlMapsPatchCall struct {
166207	s          *Service
166208	project    string
166209	urlMap     string
166210	urlmap     *UrlMap
166211	urlParams_ gensupport.URLParams
166212	ctx_       context.Context
166213	header_    http.Header
166214}
166215
166216// Patch: Patches the specified UrlMap resource with the data included
166217// in the request. This method supports PATCH semantics and uses the
166218// JSON merge patch format and processing rules. (== suppress_warning
166219// http-rest-shadowed ==)
166220// For details, see https://cloud.google.com/compute/docs/reference/latest/urlMaps/patch
166221func (r *UrlMapsService) Patch(project string, urlMap string, urlmap *UrlMap) *UrlMapsPatchCall {
166222	c := &UrlMapsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
166223	c.project = project
166224	c.urlMap = urlMap
166225	c.urlmap = urlmap
166226	return c
166227}
166228
166229// RequestId sets the optional parameter "requestId": An optional
166230// request ID to identify requests. Specify a unique request ID so that
166231// if you must retry your request, the server will know to ignore the
166232// request if it has already been completed.
166233//
166234// For example, consider a situation where you make an initial request
166235// and the request times out. If you make the request again with the
166236// same request ID, the server can check if original operation with the
166237// same request ID was received, and if so, will ignore the second
166238// request. This prevents clients from accidentally creating duplicate
166239// commitments.
166240//
166241// The request ID must be a valid UUID with the exception that zero UUID
166242// is not supported (00000000-0000-0000-0000-000000000000).
166243func (c *UrlMapsPatchCall) RequestId(requestId string) *UrlMapsPatchCall {
166244	c.urlParams_.Set("requestId", requestId)
166245	return c
166246}
166247
166248// Fields allows partial responses to be retrieved. See
166249// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
166250// for more information.
166251func (c *UrlMapsPatchCall) Fields(s ...googleapi.Field) *UrlMapsPatchCall {
166252	c.urlParams_.Set("fields", googleapi.CombineFields(s))
166253	return c
166254}
166255
166256// Context sets the context to be used in this call's Do method. Any
166257// pending HTTP request will be aborted if the provided context is
166258// canceled.
166259func (c *UrlMapsPatchCall) Context(ctx context.Context) *UrlMapsPatchCall {
166260	c.ctx_ = ctx
166261	return c
166262}
166263
166264// Header returns an http.Header that can be modified by the caller to
166265// add HTTP headers to the request.
166266func (c *UrlMapsPatchCall) Header() http.Header {
166267	if c.header_ == nil {
166268		c.header_ = make(http.Header)
166269	}
166270	return c.header_
166271}
166272
166273func (c *UrlMapsPatchCall) doRequest(alt string) (*http.Response, error) {
166274	reqHeaders := make(http.Header)
166275	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
166276	for k, v := range c.header_ {
166277		reqHeaders[k] = v
166278	}
166279	reqHeaders.Set("User-Agent", c.s.userAgent())
166280	var body io.Reader = nil
166281	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmap)
166282	if err != nil {
166283		return nil, err
166284	}
166285	reqHeaders.Set("Content-Type", "application/json")
166286	c.urlParams_.Set("alt", alt)
166287	c.urlParams_.Set("prettyPrint", "false")
166288	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/urlMaps/{urlMap}")
166289	urls += "?" + c.urlParams_.Encode()
166290	req, err := http.NewRequest("PATCH", urls, body)
166291	if err != nil {
166292		return nil, err
166293	}
166294	req.Header = reqHeaders
166295	googleapi.Expand(req.URL, map[string]string{
166296		"project": c.project,
166297		"urlMap":  c.urlMap,
166298	})
166299	return gensupport.SendRequest(c.ctx_, c.s.client, req)
166300}
166301
166302// Do executes the "compute.urlMaps.patch" call.
166303// Exactly one of *Operation or error will be non-nil. Any non-2xx
166304// status code is an error. Response headers are in either
166305// *Operation.ServerResponse.Header or (if a response was returned at
166306// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
166307// to check whether the returned error was because
166308// http.StatusNotModified was returned.
166309func (c *UrlMapsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
166310	gensupport.SetOptions(c.urlParams_, opts...)
166311	res, err := c.doRequest("json")
166312	if res != nil && res.StatusCode == http.StatusNotModified {
166313		if res.Body != nil {
166314			res.Body.Close()
166315		}
166316		return nil, &googleapi.Error{
166317			Code:   res.StatusCode,
166318			Header: res.Header,
166319		}
166320	}
166321	if err != nil {
166322		return nil, err
166323	}
166324	defer googleapi.CloseBody(res)
166325	if err := googleapi.CheckResponse(res); err != nil {
166326		return nil, err
166327	}
166328	ret := &Operation{
166329		ServerResponse: googleapi.ServerResponse{
166330			Header:         res.Header,
166331			HTTPStatusCode: res.StatusCode,
166332		},
166333	}
166334	target := &ret
166335	if err := gensupport.DecodeResponse(target, res); err != nil {
166336		return nil, err
166337	}
166338	return ret, nil
166339	// {
166340	//   "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. (== suppress_warning http-rest-shadowed ==)",
166341	//   "httpMethod": "PATCH",
166342	//   "id": "compute.urlMaps.patch",
166343	//   "parameterOrder": [
166344	//     "project",
166345	//     "urlMap"
166346	//   ],
166347	//   "parameters": {
166348	//     "project": {
166349	//       "description": "Project ID for this request.",
166350	//       "location": "path",
166351	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
166352	//       "required": true,
166353	//       "type": "string"
166354	//     },
166355	//     "requestId": {
166356	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
166357	//       "location": "query",
166358	//       "type": "string"
166359	//     },
166360	//     "urlMap": {
166361	//       "description": "Name of the UrlMap resource to patch.",
166362	//       "location": "path",
166363	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
166364	//       "required": true,
166365	//       "type": "string"
166366	//     }
166367	//   },
166368	//   "path": "{project}/global/urlMaps/{urlMap}",
166369	//   "request": {
166370	//     "$ref": "UrlMap"
166371	//   },
166372	//   "response": {
166373	//     "$ref": "Operation"
166374	//   },
166375	//   "scopes": [
166376	//     "https://www.googleapis.com/auth/cloud-platform",
166377	//     "https://www.googleapis.com/auth/compute"
166378	//   ]
166379	// }
166380
166381}
166382
166383// method id "compute.urlMaps.testIamPermissions":
166384
166385type UrlMapsTestIamPermissionsCall struct {
166386	s                      *Service
166387	project                string
166388	resource               string
166389	testpermissionsrequest *TestPermissionsRequest
166390	urlParams_             gensupport.URLParams
166391	ctx_                   context.Context
166392	header_                http.Header
166393}
166394
166395// TestIamPermissions: Returns permissions that a caller has on the
166396// specified resource. (== suppress_warning http-rest-shadowed ==)
166397func (r *UrlMapsService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *UrlMapsTestIamPermissionsCall {
166398	c := &UrlMapsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
166399	c.project = project
166400	c.resource = resource
166401	c.testpermissionsrequest = testpermissionsrequest
166402	return c
166403}
166404
166405// Fields allows partial responses to be retrieved. See
166406// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
166407// for more information.
166408func (c *UrlMapsTestIamPermissionsCall) Fields(s ...googleapi.Field) *UrlMapsTestIamPermissionsCall {
166409	c.urlParams_.Set("fields", googleapi.CombineFields(s))
166410	return c
166411}
166412
166413// Context sets the context to be used in this call's Do method. Any
166414// pending HTTP request will be aborted if the provided context is
166415// canceled.
166416func (c *UrlMapsTestIamPermissionsCall) Context(ctx context.Context) *UrlMapsTestIamPermissionsCall {
166417	c.ctx_ = ctx
166418	return c
166419}
166420
166421// Header returns an http.Header that can be modified by the caller to
166422// add HTTP headers to the request.
166423func (c *UrlMapsTestIamPermissionsCall) Header() http.Header {
166424	if c.header_ == nil {
166425		c.header_ = make(http.Header)
166426	}
166427	return c.header_
166428}
166429
166430func (c *UrlMapsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
166431	reqHeaders := make(http.Header)
166432	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
166433	for k, v := range c.header_ {
166434		reqHeaders[k] = v
166435	}
166436	reqHeaders.Set("User-Agent", c.s.userAgent())
166437	var body io.Reader = nil
166438	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
166439	if err != nil {
166440		return nil, err
166441	}
166442	reqHeaders.Set("Content-Type", "application/json")
166443	c.urlParams_.Set("alt", alt)
166444	c.urlParams_.Set("prettyPrint", "false")
166445	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/urlMaps/{resource}/testIamPermissions")
166446	urls += "?" + c.urlParams_.Encode()
166447	req, err := http.NewRequest("POST", urls, body)
166448	if err != nil {
166449		return nil, err
166450	}
166451	req.Header = reqHeaders
166452	googleapi.Expand(req.URL, map[string]string{
166453		"project":  c.project,
166454		"resource": c.resource,
166455	})
166456	return gensupport.SendRequest(c.ctx_, c.s.client, req)
166457}
166458
166459// Do executes the "compute.urlMaps.testIamPermissions" call.
166460// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
166461// non-2xx status code is an error. Response headers are in either
166462// *TestPermissionsResponse.ServerResponse.Header or (if a response was
166463// returned at all) in error.(*googleapi.Error).Header. Use
166464// googleapi.IsNotModified to check whether the returned error was
166465// because http.StatusNotModified was returned.
166466func (c *UrlMapsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
166467	gensupport.SetOptions(c.urlParams_, opts...)
166468	res, err := c.doRequest("json")
166469	if res != nil && res.StatusCode == http.StatusNotModified {
166470		if res.Body != nil {
166471			res.Body.Close()
166472		}
166473		return nil, &googleapi.Error{
166474			Code:   res.StatusCode,
166475			Header: res.Header,
166476		}
166477	}
166478	if err != nil {
166479		return nil, err
166480	}
166481	defer googleapi.CloseBody(res)
166482	if err := googleapi.CheckResponse(res); err != nil {
166483		return nil, err
166484	}
166485	ret := &TestPermissionsResponse{
166486		ServerResponse: googleapi.ServerResponse{
166487			Header:         res.Header,
166488			HTTPStatusCode: res.StatusCode,
166489		},
166490	}
166491	target := &ret
166492	if err := gensupport.DecodeResponse(target, res); err != nil {
166493		return nil, err
166494	}
166495	return ret, nil
166496	// {
166497	//   "description": "Returns permissions that a caller has on the specified resource. (== suppress_warning http-rest-shadowed ==)",
166498	//   "httpMethod": "POST",
166499	//   "id": "compute.urlMaps.testIamPermissions",
166500	//   "parameterOrder": [
166501	//     "project",
166502	//     "resource"
166503	//   ],
166504	//   "parameters": {
166505	//     "project": {
166506	//       "description": "Project ID for this request.",
166507	//       "location": "path",
166508	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
166509	//       "required": true,
166510	//       "type": "string"
166511	//     },
166512	//     "resource": {
166513	//       "description": "Name or id of the resource for this request.",
166514	//       "location": "path",
166515	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
166516	//       "required": true,
166517	//       "type": "string"
166518	//     }
166519	//   },
166520	//   "path": "{project}/global/urlMaps/{resource}/testIamPermissions",
166521	//   "request": {
166522	//     "$ref": "TestPermissionsRequest"
166523	//   },
166524	//   "response": {
166525	//     "$ref": "TestPermissionsResponse"
166526	//   },
166527	//   "scopes": [
166528	//     "https://www.googleapis.com/auth/cloud-platform",
166529	//     "https://www.googleapis.com/auth/compute",
166530	//     "https://www.googleapis.com/auth/compute.readonly"
166531	//   ]
166532	// }
166533
166534}
166535
166536// method id "compute.urlMaps.update":
166537
166538type UrlMapsUpdateCall struct {
166539	s          *Service
166540	project    string
166541	urlMap     string
166542	urlmap     *UrlMap
166543	urlParams_ gensupport.URLParams
166544	ctx_       context.Context
166545	header_    http.Header
166546}
166547
166548// Update: Updates the specified UrlMap resource with the data included
166549// in the request. (== suppress_warning http-rest-shadowed ==)
166550// For details, see https://cloud.google.com/compute/docs/reference/latest/urlMaps/update
166551func (r *UrlMapsService) Update(project string, urlMap string, urlmap *UrlMap) *UrlMapsUpdateCall {
166552	c := &UrlMapsUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
166553	c.project = project
166554	c.urlMap = urlMap
166555	c.urlmap = urlmap
166556	return c
166557}
166558
166559// RequestId sets the optional parameter "requestId": An optional
166560// request ID to identify requests. Specify a unique request ID so that
166561// if you must retry your request, the server will know to ignore the
166562// request if it has already been completed.
166563//
166564// For example, consider a situation where you make an initial request
166565// and the request times out. If you make the request again with the
166566// same request ID, the server can check if original operation with the
166567// same request ID was received, and if so, will ignore the second
166568// request. This prevents clients from accidentally creating duplicate
166569// commitments.
166570//
166571// The request ID must be a valid UUID with the exception that zero UUID
166572// is not supported (00000000-0000-0000-0000-000000000000).
166573func (c *UrlMapsUpdateCall) RequestId(requestId string) *UrlMapsUpdateCall {
166574	c.urlParams_.Set("requestId", requestId)
166575	return c
166576}
166577
166578// Fields allows partial responses to be retrieved. See
166579// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
166580// for more information.
166581func (c *UrlMapsUpdateCall) Fields(s ...googleapi.Field) *UrlMapsUpdateCall {
166582	c.urlParams_.Set("fields", googleapi.CombineFields(s))
166583	return c
166584}
166585
166586// Context sets the context to be used in this call's Do method. Any
166587// pending HTTP request will be aborted if the provided context is
166588// canceled.
166589func (c *UrlMapsUpdateCall) Context(ctx context.Context) *UrlMapsUpdateCall {
166590	c.ctx_ = ctx
166591	return c
166592}
166593
166594// Header returns an http.Header that can be modified by the caller to
166595// add HTTP headers to the request.
166596func (c *UrlMapsUpdateCall) Header() http.Header {
166597	if c.header_ == nil {
166598		c.header_ = make(http.Header)
166599	}
166600	return c.header_
166601}
166602
166603func (c *UrlMapsUpdateCall) doRequest(alt string) (*http.Response, error) {
166604	reqHeaders := make(http.Header)
166605	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
166606	for k, v := range c.header_ {
166607		reqHeaders[k] = v
166608	}
166609	reqHeaders.Set("User-Agent", c.s.userAgent())
166610	var body io.Reader = nil
166611	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmap)
166612	if err != nil {
166613		return nil, err
166614	}
166615	reqHeaders.Set("Content-Type", "application/json")
166616	c.urlParams_.Set("alt", alt)
166617	c.urlParams_.Set("prettyPrint", "false")
166618	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/urlMaps/{urlMap}")
166619	urls += "?" + c.urlParams_.Encode()
166620	req, err := http.NewRequest("PUT", urls, body)
166621	if err != nil {
166622		return nil, err
166623	}
166624	req.Header = reqHeaders
166625	googleapi.Expand(req.URL, map[string]string{
166626		"project": c.project,
166627		"urlMap":  c.urlMap,
166628	})
166629	return gensupport.SendRequest(c.ctx_, c.s.client, req)
166630}
166631
166632// Do executes the "compute.urlMaps.update" call.
166633// Exactly one of *Operation or error will be non-nil. Any non-2xx
166634// status code is an error. Response headers are in either
166635// *Operation.ServerResponse.Header or (if a response was returned at
166636// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
166637// to check whether the returned error was because
166638// http.StatusNotModified was returned.
166639func (c *UrlMapsUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
166640	gensupport.SetOptions(c.urlParams_, opts...)
166641	res, err := c.doRequest("json")
166642	if res != nil && res.StatusCode == http.StatusNotModified {
166643		if res.Body != nil {
166644			res.Body.Close()
166645		}
166646		return nil, &googleapi.Error{
166647			Code:   res.StatusCode,
166648			Header: res.Header,
166649		}
166650	}
166651	if err != nil {
166652		return nil, err
166653	}
166654	defer googleapi.CloseBody(res)
166655	if err := googleapi.CheckResponse(res); err != nil {
166656		return nil, err
166657	}
166658	ret := &Operation{
166659		ServerResponse: googleapi.ServerResponse{
166660			Header:         res.Header,
166661			HTTPStatusCode: res.StatusCode,
166662		},
166663	}
166664	target := &ret
166665	if err := gensupport.DecodeResponse(target, res); err != nil {
166666		return nil, err
166667	}
166668	return ret, nil
166669	// {
166670	//   "description": "Updates the specified UrlMap resource with the data included in the request. (== suppress_warning http-rest-shadowed ==)",
166671	//   "httpMethod": "PUT",
166672	//   "id": "compute.urlMaps.update",
166673	//   "parameterOrder": [
166674	//     "project",
166675	//     "urlMap"
166676	//   ],
166677	//   "parameters": {
166678	//     "project": {
166679	//       "description": "Project ID for this request.",
166680	//       "location": "path",
166681	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
166682	//       "required": true,
166683	//       "type": "string"
166684	//     },
166685	//     "requestId": {
166686	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
166687	//       "location": "query",
166688	//       "type": "string"
166689	//     },
166690	//     "urlMap": {
166691	//       "description": "Name of the UrlMap resource to update.",
166692	//       "location": "path",
166693	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
166694	//       "required": true,
166695	//       "type": "string"
166696	//     }
166697	//   },
166698	//   "path": "{project}/global/urlMaps/{urlMap}",
166699	//   "request": {
166700	//     "$ref": "UrlMap"
166701	//   },
166702	//   "response": {
166703	//     "$ref": "Operation"
166704	//   },
166705	//   "scopes": [
166706	//     "https://www.googleapis.com/auth/cloud-platform",
166707	//     "https://www.googleapis.com/auth/compute"
166708	//   ]
166709	// }
166710
166711}
166712
166713// method id "compute.urlMaps.validate":
166714
166715type UrlMapsValidateCall struct {
166716	s                      *Service
166717	project                string
166718	urlMap                 string
166719	urlmapsvalidaterequest *UrlMapsValidateRequest
166720	urlParams_             gensupport.URLParams
166721	ctx_                   context.Context
166722	header_                http.Header
166723}
166724
166725// Validate: Runs static validation for the UrlMap. In particular, the
166726// tests of the provided UrlMap will be run. Calling this method does
166727// NOT create the UrlMap. (== suppress_warning http-rest-shadowed ==)
166728// For details, see https://cloud.google.com/compute/docs/reference/latest/urlMaps/validate
166729func (r *UrlMapsService) Validate(project string, urlMap string, urlmapsvalidaterequest *UrlMapsValidateRequest) *UrlMapsValidateCall {
166730	c := &UrlMapsValidateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
166731	c.project = project
166732	c.urlMap = urlMap
166733	c.urlmapsvalidaterequest = urlmapsvalidaterequest
166734	return c
166735}
166736
166737// Fields allows partial responses to be retrieved. See
166738// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
166739// for more information.
166740func (c *UrlMapsValidateCall) Fields(s ...googleapi.Field) *UrlMapsValidateCall {
166741	c.urlParams_.Set("fields", googleapi.CombineFields(s))
166742	return c
166743}
166744
166745// Context sets the context to be used in this call's Do method. Any
166746// pending HTTP request will be aborted if the provided context is
166747// canceled.
166748func (c *UrlMapsValidateCall) Context(ctx context.Context) *UrlMapsValidateCall {
166749	c.ctx_ = ctx
166750	return c
166751}
166752
166753// Header returns an http.Header that can be modified by the caller to
166754// add HTTP headers to the request.
166755func (c *UrlMapsValidateCall) Header() http.Header {
166756	if c.header_ == nil {
166757		c.header_ = make(http.Header)
166758	}
166759	return c.header_
166760}
166761
166762func (c *UrlMapsValidateCall) doRequest(alt string) (*http.Response, error) {
166763	reqHeaders := make(http.Header)
166764	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
166765	for k, v := range c.header_ {
166766		reqHeaders[k] = v
166767	}
166768	reqHeaders.Set("User-Agent", c.s.userAgent())
166769	var body io.Reader = nil
166770	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmapsvalidaterequest)
166771	if err != nil {
166772		return nil, err
166773	}
166774	reqHeaders.Set("Content-Type", "application/json")
166775	c.urlParams_.Set("alt", alt)
166776	c.urlParams_.Set("prettyPrint", "false")
166777	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/urlMaps/{urlMap}/validate")
166778	urls += "?" + c.urlParams_.Encode()
166779	req, err := http.NewRequest("POST", urls, body)
166780	if err != nil {
166781		return nil, err
166782	}
166783	req.Header = reqHeaders
166784	googleapi.Expand(req.URL, map[string]string{
166785		"project": c.project,
166786		"urlMap":  c.urlMap,
166787	})
166788	return gensupport.SendRequest(c.ctx_, c.s.client, req)
166789}
166790
166791// Do executes the "compute.urlMaps.validate" call.
166792// Exactly one of *UrlMapsValidateResponse or error will be non-nil. Any
166793// non-2xx status code is an error. Response headers are in either
166794// *UrlMapsValidateResponse.ServerResponse.Header or (if a response was
166795// returned at all) in error.(*googleapi.Error).Header. Use
166796// googleapi.IsNotModified to check whether the returned error was
166797// because http.StatusNotModified was returned.
166798func (c *UrlMapsValidateCall) Do(opts ...googleapi.CallOption) (*UrlMapsValidateResponse, error) {
166799	gensupport.SetOptions(c.urlParams_, opts...)
166800	res, err := c.doRequest("json")
166801	if res != nil && res.StatusCode == http.StatusNotModified {
166802		if res.Body != nil {
166803			res.Body.Close()
166804		}
166805		return nil, &googleapi.Error{
166806			Code:   res.StatusCode,
166807			Header: res.Header,
166808		}
166809	}
166810	if err != nil {
166811		return nil, err
166812	}
166813	defer googleapi.CloseBody(res)
166814	if err := googleapi.CheckResponse(res); err != nil {
166815		return nil, err
166816	}
166817	ret := &UrlMapsValidateResponse{
166818		ServerResponse: googleapi.ServerResponse{
166819			Header:         res.Header,
166820			HTTPStatusCode: res.StatusCode,
166821		},
166822	}
166823	target := &ret
166824	if err := gensupport.DecodeResponse(target, res); err != nil {
166825		return nil, err
166826	}
166827	return ret, nil
166828	// {
166829	//   "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. (== suppress_warning http-rest-shadowed ==)",
166830	//   "httpMethod": "POST",
166831	//   "id": "compute.urlMaps.validate",
166832	//   "parameterOrder": [
166833	//     "project",
166834	//     "urlMap"
166835	//   ],
166836	//   "parameters": {
166837	//     "project": {
166838	//       "description": "Project ID for this request.",
166839	//       "location": "path",
166840	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
166841	//       "required": true,
166842	//       "type": "string"
166843	//     },
166844	//     "urlMap": {
166845	//       "description": "Name of the UrlMap resource to be validated as.",
166846	//       "location": "path",
166847	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
166848	//       "required": true,
166849	//       "type": "string"
166850	//     }
166851	//   },
166852	//   "path": "{project}/global/urlMaps/{urlMap}/validate",
166853	//   "request": {
166854	//     "$ref": "UrlMapsValidateRequest"
166855	//   },
166856	//   "response": {
166857	//     "$ref": "UrlMapsValidateResponse"
166858	//   },
166859	//   "scopes": [
166860	//     "https://www.googleapis.com/auth/cloud-platform",
166861	//     "https://www.googleapis.com/auth/compute"
166862	//   ]
166863	// }
166864
166865}
166866
166867// method id "compute.vpnGateways.aggregatedList":
166868
166869type VpnGatewaysAggregatedListCall struct {
166870	s            *Service
166871	project      string
166872	urlParams_   gensupport.URLParams
166873	ifNoneMatch_ string
166874	ctx_         context.Context
166875	header_      http.Header
166876}
166877
166878// AggregatedList: Retrieves an aggregated list of VPN gateways. (==
166879// suppress_warning http-rest-shadowed ==)
166880func (r *VpnGatewaysService) AggregatedList(project string) *VpnGatewaysAggregatedListCall {
166881	c := &VpnGatewaysAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
166882	c.project = project
166883	return c
166884}
166885
166886// Filter sets the optional parameter "filter": A filter expression that
166887// filters resources listed in the response. The expression must specify
166888// the field name, a comparison operator, and the value that you want to
166889// use for filtering. The value must be a string, a number, or a
166890// boolean. The comparison operator must be either =, !=, >, or <.
166891//
166892// For example, if you are filtering Compute Engine instances, you can
166893// exclude instances named example-instance by specifying name !=
166894// example-instance.
166895//
166896// You can also filter nested fields. For example, you could specify
166897// scheduling.automaticRestart = false to include instances only if they
166898// are not scheduled for automatic restarts. You can use filtering on
166899// nested fields to filter based on resource labels.
166900//
166901// To filter on multiple expressions, provide each separate expression
166902// within parentheses. For example, (scheduling.automaticRestart = true)
166903// (cpuPlatform = "Intel Skylake"). By default, each expression is an
166904// AND expression. However, you can include AND and OR expressions
166905// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
166906// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
166907// true).
166908func (c *VpnGatewaysAggregatedListCall) Filter(filter string) *VpnGatewaysAggregatedListCall {
166909	c.urlParams_.Set("filter", filter)
166910	return c
166911}
166912
166913// MaxResults sets the optional parameter "maxResults": The maximum
166914// number of results per page that should be returned. If the number of
166915// available results is larger than maxResults, Compute Engine returns a
166916// nextPageToken that can be used to get the next page of results in
166917// subsequent list requests. Acceptable values are 0 to 500, inclusive.
166918// (Default: 500)
166919func (c *VpnGatewaysAggregatedListCall) MaxResults(maxResults int64) *VpnGatewaysAggregatedListCall {
166920	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
166921	return c
166922}
166923
166924// OrderBy sets the optional parameter "orderBy": Sorts list results by
166925// a certain order. By default, results are returned in alphanumerical
166926// order based on the resource name.
166927//
166928// You can also sort results in descending order based on the creation
166929// timestamp using orderBy="creationTimestamp desc". This sorts results
166930// based on the creationTimestamp field in reverse chronological order
166931// (newest result first). Use this to sort resources like operations so
166932// that the newest operation is returned first.
166933//
166934// Currently, only sorting by name or creationTimestamp desc is
166935// supported.
166936func (c *VpnGatewaysAggregatedListCall) OrderBy(orderBy string) *VpnGatewaysAggregatedListCall {
166937	c.urlParams_.Set("orderBy", orderBy)
166938	return c
166939}
166940
166941// PageToken sets the optional parameter "pageToken": Specifies a page
166942// token to use. Set pageToken to the nextPageToken returned by a
166943// previous list request to get the next page of results.
166944func (c *VpnGatewaysAggregatedListCall) PageToken(pageToken string) *VpnGatewaysAggregatedListCall {
166945	c.urlParams_.Set("pageToken", pageToken)
166946	return c
166947}
166948
166949// Fields allows partial responses to be retrieved. See
166950// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
166951// for more information.
166952func (c *VpnGatewaysAggregatedListCall) Fields(s ...googleapi.Field) *VpnGatewaysAggregatedListCall {
166953	c.urlParams_.Set("fields", googleapi.CombineFields(s))
166954	return c
166955}
166956
166957// IfNoneMatch sets the optional parameter which makes the operation
166958// fail if the object's ETag matches the given value. This is useful for
166959// getting updates only after the object has changed since the last
166960// request. Use googleapi.IsNotModified to check whether the response
166961// error from Do is the result of In-None-Match.
166962func (c *VpnGatewaysAggregatedListCall) IfNoneMatch(entityTag string) *VpnGatewaysAggregatedListCall {
166963	c.ifNoneMatch_ = entityTag
166964	return c
166965}
166966
166967// Context sets the context to be used in this call's Do method. Any
166968// pending HTTP request will be aborted if the provided context is
166969// canceled.
166970func (c *VpnGatewaysAggregatedListCall) Context(ctx context.Context) *VpnGatewaysAggregatedListCall {
166971	c.ctx_ = ctx
166972	return c
166973}
166974
166975// Header returns an http.Header that can be modified by the caller to
166976// add HTTP headers to the request.
166977func (c *VpnGatewaysAggregatedListCall) Header() http.Header {
166978	if c.header_ == nil {
166979		c.header_ = make(http.Header)
166980	}
166981	return c.header_
166982}
166983
166984func (c *VpnGatewaysAggregatedListCall) doRequest(alt string) (*http.Response, error) {
166985	reqHeaders := make(http.Header)
166986	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
166987	for k, v := range c.header_ {
166988		reqHeaders[k] = v
166989	}
166990	reqHeaders.Set("User-Agent", c.s.userAgent())
166991	if c.ifNoneMatch_ != "" {
166992		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
166993	}
166994	var body io.Reader = nil
166995	c.urlParams_.Set("alt", alt)
166996	c.urlParams_.Set("prettyPrint", "false")
166997	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/vpnGateways")
166998	urls += "?" + c.urlParams_.Encode()
166999	req, err := http.NewRequest("GET", urls, body)
167000	if err != nil {
167001		return nil, err
167002	}
167003	req.Header = reqHeaders
167004	googleapi.Expand(req.URL, map[string]string{
167005		"project": c.project,
167006	})
167007	return gensupport.SendRequest(c.ctx_, c.s.client, req)
167008}
167009
167010// Do executes the "compute.vpnGateways.aggregatedList" call.
167011// Exactly one of *VpnGatewayAggregatedList or error will be non-nil.
167012// Any non-2xx status code is an error. Response headers are in either
167013// *VpnGatewayAggregatedList.ServerResponse.Header or (if a response was
167014// returned at all) in error.(*googleapi.Error).Header. Use
167015// googleapi.IsNotModified to check whether the returned error was
167016// because http.StatusNotModified was returned.
167017func (c *VpnGatewaysAggregatedListCall) Do(opts ...googleapi.CallOption) (*VpnGatewayAggregatedList, error) {
167018	gensupport.SetOptions(c.urlParams_, opts...)
167019	res, err := c.doRequest("json")
167020	if res != nil && res.StatusCode == http.StatusNotModified {
167021		if res.Body != nil {
167022			res.Body.Close()
167023		}
167024		return nil, &googleapi.Error{
167025			Code:   res.StatusCode,
167026			Header: res.Header,
167027		}
167028	}
167029	if err != nil {
167030		return nil, err
167031	}
167032	defer googleapi.CloseBody(res)
167033	if err := googleapi.CheckResponse(res); err != nil {
167034		return nil, err
167035	}
167036	ret := &VpnGatewayAggregatedList{
167037		ServerResponse: googleapi.ServerResponse{
167038			Header:         res.Header,
167039			HTTPStatusCode: res.StatusCode,
167040		},
167041	}
167042	target := &ret
167043	if err := gensupport.DecodeResponse(target, res); err != nil {
167044		return nil, err
167045	}
167046	return ret, nil
167047	// {
167048	//   "description": "Retrieves an aggregated list of VPN gateways. (== suppress_warning http-rest-shadowed ==)",
167049	//   "httpMethod": "GET",
167050	//   "id": "compute.vpnGateways.aggregatedList",
167051	//   "parameterOrder": [
167052	//     "project"
167053	//   ],
167054	//   "parameters": {
167055	//     "filter": {
167056	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
167057	//       "location": "query",
167058	//       "type": "string"
167059	//     },
167060	//     "maxResults": {
167061	//       "default": "500",
167062	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
167063	//       "format": "uint32",
167064	//       "location": "query",
167065	//       "minimum": "0",
167066	//       "type": "integer"
167067	//     },
167068	//     "orderBy": {
167069	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
167070	//       "location": "query",
167071	//       "type": "string"
167072	//     },
167073	//     "pageToken": {
167074	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
167075	//       "location": "query",
167076	//       "type": "string"
167077	//     },
167078	//     "project": {
167079	//       "description": "Project ID for this request.",
167080	//       "location": "path",
167081	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
167082	//       "required": true,
167083	//       "type": "string"
167084	//     }
167085	//   },
167086	//   "path": "{project}/aggregated/vpnGateways",
167087	//   "response": {
167088	//     "$ref": "VpnGatewayAggregatedList"
167089	//   },
167090	//   "scopes": [
167091	//     "https://www.googleapis.com/auth/cloud-platform",
167092	//     "https://www.googleapis.com/auth/compute",
167093	//     "https://www.googleapis.com/auth/compute.readonly"
167094	//   ]
167095	// }
167096
167097}
167098
167099// Pages invokes f for each page of results.
167100// A non-nil error returned from f will halt the iteration.
167101// The provided context supersedes any context provided to the Context method.
167102func (c *VpnGatewaysAggregatedListCall) Pages(ctx context.Context, f func(*VpnGatewayAggregatedList) error) error {
167103	c.ctx_ = ctx
167104	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
167105	for {
167106		x, err := c.Do()
167107		if err != nil {
167108			return err
167109		}
167110		if err := f(x); err != nil {
167111			return err
167112		}
167113		if x.NextPageToken == "" {
167114			return nil
167115		}
167116		c.PageToken(x.NextPageToken)
167117	}
167118}
167119
167120// method id "compute.vpnGateways.delete":
167121
167122type VpnGatewaysDeleteCall struct {
167123	s          *Service
167124	project    string
167125	region     string
167126	vpnGateway string
167127	urlParams_ gensupport.URLParams
167128	ctx_       context.Context
167129	header_    http.Header
167130}
167131
167132// Delete: Deletes the specified VPN gateway. (== suppress_warning
167133// http-rest-shadowed ==)
167134func (r *VpnGatewaysService) Delete(project string, region string, vpnGateway string) *VpnGatewaysDeleteCall {
167135	c := &VpnGatewaysDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
167136	c.project = project
167137	c.region = region
167138	c.vpnGateway = vpnGateway
167139	return c
167140}
167141
167142// RequestId sets the optional parameter "requestId": An optional
167143// request ID to identify requests. Specify a unique request ID so that
167144// if you must retry your request, the server will know to ignore the
167145// request if it has already been completed.
167146//
167147// For example, consider a situation where you make an initial request
167148// and the request times out. If you make the request again with the
167149// same request ID, the server can check if original operation with the
167150// same request ID was received, and if so, will ignore the second
167151// request. This prevents clients from accidentally creating duplicate
167152// commitments.
167153//
167154// The request ID must be a valid UUID with the exception that zero UUID
167155// is not supported (00000000-0000-0000-0000-000000000000).
167156func (c *VpnGatewaysDeleteCall) RequestId(requestId string) *VpnGatewaysDeleteCall {
167157	c.urlParams_.Set("requestId", requestId)
167158	return c
167159}
167160
167161// Fields allows partial responses to be retrieved. See
167162// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
167163// for more information.
167164func (c *VpnGatewaysDeleteCall) Fields(s ...googleapi.Field) *VpnGatewaysDeleteCall {
167165	c.urlParams_.Set("fields", googleapi.CombineFields(s))
167166	return c
167167}
167168
167169// Context sets the context to be used in this call's Do method. Any
167170// pending HTTP request will be aborted if the provided context is
167171// canceled.
167172func (c *VpnGatewaysDeleteCall) Context(ctx context.Context) *VpnGatewaysDeleteCall {
167173	c.ctx_ = ctx
167174	return c
167175}
167176
167177// Header returns an http.Header that can be modified by the caller to
167178// add HTTP headers to the request.
167179func (c *VpnGatewaysDeleteCall) Header() http.Header {
167180	if c.header_ == nil {
167181		c.header_ = make(http.Header)
167182	}
167183	return c.header_
167184}
167185
167186func (c *VpnGatewaysDeleteCall) doRequest(alt string) (*http.Response, error) {
167187	reqHeaders := make(http.Header)
167188	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
167189	for k, v := range c.header_ {
167190		reqHeaders[k] = v
167191	}
167192	reqHeaders.Set("User-Agent", c.s.userAgent())
167193	var body io.Reader = nil
167194	c.urlParams_.Set("alt", alt)
167195	c.urlParams_.Set("prettyPrint", "false")
167196	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/vpnGateways/{vpnGateway}")
167197	urls += "?" + c.urlParams_.Encode()
167198	req, err := http.NewRequest("DELETE", urls, body)
167199	if err != nil {
167200		return nil, err
167201	}
167202	req.Header = reqHeaders
167203	googleapi.Expand(req.URL, map[string]string{
167204		"project":    c.project,
167205		"region":     c.region,
167206		"vpnGateway": c.vpnGateway,
167207	})
167208	return gensupport.SendRequest(c.ctx_, c.s.client, req)
167209}
167210
167211// Do executes the "compute.vpnGateways.delete" call.
167212// Exactly one of *Operation or error will be non-nil. Any non-2xx
167213// status code is an error. Response headers are in either
167214// *Operation.ServerResponse.Header or (if a response was returned at
167215// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
167216// to check whether the returned error was because
167217// http.StatusNotModified was returned.
167218func (c *VpnGatewaysDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
167219	gensupport.SetOptions(c.urlParams_, opts...)
167220	res, err := c.doRequest("json")
167221	if res != nil && res.StatusCode == http.StatusNotModified {
167222		if res.Body != nil {
167223			res.Body.Close()
167224		}
167225		return nil, &googleapi.Error{
167226			Code:   res.StatusCode,
167227			Header: res.Header,
167228		}
167229	}
167230	if err != nil {
167231		return nil, err
167232	}
167233	defer googleapi.CloseBody(res)
167234	if err := googleapi.CheckResponse(res); err != nil {
167235		return nil, err
167236	}
167237	ret := &Operation{
167238		ServerResponse: googleapi.ServerResponse{
167239			Header:         res.Header,
167240			HTTPStatusCode: res.StatusCode,
167241		},
167242	}
167243	target := &ret
167244	if err := gensupport.DecodeResponse(target, res); err != nil {
167245		return nil, err
167246	}
167247	return ret, nil
167248	// {
167249	//   "description": "Deletes the specified VPN gateway. (== suppress_warning http-rest-shadowed ==)",
167250	//   "httpMethod": "DELETE",
167251	//   "id": "compute.vpnGateways.delete",
167252	//   "parameterOrder": [
167253	//     "project",
167254	//     "region",
167255	//     "vpnGateway"
167256	//   ],
167257	//   "parameters": {
167258	//     "project": {
167259	//       "description": "Project ID for this request.",
167260	//       "location": "path",
167261	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
167262	//       "required": true,
167263	//       "type": "string"
167264	//     },
167265	//     "region": {
167266	//       "description": "Name of the region for this request.",
167267	//       "location": "path",
167268	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
167269	//       "required": true,
167270	//       "type": "string"
167271	//     },
167272	//     "requestId": {
167273	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
167274	//       "location": "query",
167275	//       "type": "string"
167276	//     },
167277	//     "vpnGateway": {
167278	//       "description": "Name of the VPN gateway to delete.",
167279	//       "location": "path",
167280	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
167281	//       "required": true,
167282	//       "type": "string"
167283	//     }
167284	//   },
167285	//   "path": "{project}/regions/{region}/vpnGateways/{vpnGateway}",
167286	//   "response": {
167287	//     "$ref": "Operation"
167288	//   },
167289	//   "scopes": [
167290	//     "https://www.googleapis.com/auth/cloud-platform",
167291	//     "https://www.googleapis.com/auth/compute"
167292	//   ]
167293	// }
167294
167295}
167296
167297// method id "compute.vpnGateways.get":
167298
167299type VpnGatewaysGetCall struct {
167300	s            *Service
167301	project      string
167302	region       string
167303	vpnGateway   string
167304	urlParams_   gensupport.URLParams
167305	ifNoneMatch_ string
167306	ctx_         context.Context
167307	header_      http.Header
167308}
167309
167310// Get: Returns the specified VPN gateway. Gets a list of available VPN
167311// gateways by making a list() request. (== suppress_warning
167312// http-rest-shadowed ==)
167313func (r *VpnGatewaysService) Get(project string, region string, vpnGateway string) *VpnGatewaysGetCall {
167314	c := &VpnGatewaysGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
167315	c.project = project
167316	c.region = region
167317	c.vpnGateway = vpnGateway
167318	return c
167319}
167320
167321// Fields allows partial responses to be retrieved. See
167322// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
167323// for more information.
167324func (c *VpnGatewaysGetCall) Fields(s ...googleapi.Field) *VpnGatewaysGetCall {
167325	c.urlParams_.Set("fields", googleapi.CombineFields(s))
167326	return c
167327}
167328
167329// IfNoneMatch sets the optional parameter which makes the operation
167330// fail if the object's ETag matches the given value. This is useful for
167331// getting updates only after the object has changed since the last
167332// request. Use googleapi.IsNotModified to check whether the response
167333// error from Do is the result of In-None-Match.
167334func (c *VpnGatewaysGetCall) IfNoneMatch(entityTag string) *VpnGatewaysGetCall {
167335	c.ifNoneMatch_ = entityTag
167336	return c
167337}
167338
167339// Context sets the context to be used in this call's Do method. Any
167340// pending HTTP request will be aborted if the provided context is
167341// canceled.
167342func (c *VpnGatewaysGetCall) Context(ctx context.Context) *VpnGatewaysGetCall {
167343	c.ctx_ = ctx
167344	return c
167345}
167346
167347// Header returns an http.Header that can be modified by the caller to
167348// add HTTP headers to the request.
167349func (c *VpnGatewaysGetCall) Header() http.Header {
167350	if c.header_ == nil {
167351		c.header_ = make(http.Header)
167352	}
167353	return c.header_
167354}
167355
167356func (c *VpnGatewaysGetCall) doRequest(alt string) (*http.Response, error) {
167357	reqHeaders := make(http.Header)
167358	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
167359	for k, v := range c.header_ {
167360		reqHeaders[k] = v
167361	}
167362	reqHeaders.Set("User-Agent", c.s.userAgent())
167363	if c.ifNoneMatch_ != "" {
167364		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
167365	}
167366	var body io.Reader = nil
167367	c.urlParams_.Set("alt", alt)
167368	c.urlParams_.Set("prettyPrint", "false")
167369	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/vpnGateways/{vpnGateway}")
167370	urls += "?" + c.urlParams_.Encode()
167371	req, err := http.NewRequest("GET", urls, body)
167372	if err != nil {
167373		return nil, err
167374	}
167375	req.Header = reqHeaders
167376	googleapi.Expand(req.URL, map[string]string{
167377		"project":    c.project,
167378		"region":     c.region,
167379		"vpnGateway": c.vpnGateway,
167380	})
167381	return gensupport.SendRequest(c.ctx_, c.s.client, req)
167382}
167383
167384// Do executes the "compute.vpnGateways.get" call.
167385// Exactly one of *VpnGateway or error will be non-nil. Any non-2xx
167386// status code is an error. Response headers are in either
167387// *VpnGateway.ServerResponse.Header or (if a response was returned at
167388// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
167389// to check whether the returned error was because
167390// http.StatusNotModified was returned.
167391func (c *VpnGatewaysGetCall) Do(opts ...googleapi.CallOption) (*VpnGateway, error) {
167392	gensupport.SetOptions(c.urlParams_, opts...)
167393	res, err := c.doRequest("json")
167394	if res != nil && res.StatusCode == http.StatusNotModified {
167395		if res.Body != nil {
167396			res.Body.Close()
167397		}
167398		return nil, &googleapi.Error{
167399			Code:   res.StatusCode,
167400			Header: res.Header,
167401		}
167402	}
167403	if err != nil {
167404		return nil, err
167405	}
167406	defer googleapi.CloseBody(res)
167407	if err := googleapi.CheckResponse(res); err != nil {
167408		return nil, err
167409	}
167410	ret := &VpnGateway{
167411		ServerResponse: googleapi.ServerResponse{
167412			Header:         res.Header,
167413			HTTPStatusCode: res.StatusCode,
167414		},
167415	}
167416	target := &ret
167417	if err := gensupport.DecodeResponse(target, res); err != nil {
167418		return nil, err
167419	}
167420	return ret, nil
167421	// {
167422	//   "description": "Returns the specified VPN gateway. Gets a list of available VPN gateways by making a list() request. (== suppress_warning http-rest-shadowed ==)",
167423	//   "httpMethod": "GET",
167424	//   "id": "compute.vpnGateways.get",
167425	//   "parameterOrder": [
167426	//     "project",
167427	//     "region",
167428	//     "vpnGateway"
167429	//   ],
167430	//   "parameters": {
167431	//     "project": {
167432	//       "description": "Project ID for this request.",
167433	//       "location": "path",
167434	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
167435	//       "required": true,
167436	//       "type": "string"
167437	//     },
167438	//     "region": {
167439	//       "description": "Name of the region for this request.",
167440	//       "location": "path",
167441	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
167442	//       "required": true,
167443	//       "type": "string"
167444	//     },
167445	//     "vpnGateway": {
167446	//       "description": "Name of the VPN gateway to return.",
167447	//       "location": "path",
167448	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
167449	//       "required": true,
167450	//       "type": "string"
167451	//     }
167452	//   },
167453	//   "path": "{project}/regions/{region}/vpnGateways/{vpnGateway}",
167454	//   "response": {
167455	//     "$ref": "VpnGateway"
167456	//   },
167457	//   "scopes": [
167458	//     "https://www.googleapis.com/auth/cloud-platform",
167459	//     "https://www.googleapis.com/auth/compute",
167460	//     "https://www.googleapis.com/auth/compute.readonly"
167461	//   ]
167462	// }
167463
167464}
167465
167466// method id "compute.vpnGateways.getStatus":
167467
167468type VpnGatewaysGetStatusCall struct {
167469	s            *Service
167470	project      string
167471	region       string
167472	vpnGateway   string
167473	urlParams_   gensupport.URLParams
167474	ifNoneMatch_ string
167475	ctx_         context.Context
167476	header_      http.Header
167477}
167478
167479// GetStatus: Returns the status for the specified VPN gateway. (==
167480// suppress_warning http-rest-shadowed ==)
167481func (r *VpnGatewaysService) GetStatus(project string, region string, vpnGateway string) *VpnGatewaysGetStatusCall {
167482	c := &VpnGatewaysGetStatusCall{s: r.s, urlParams_: make(gensupport.URLParams)}
167483	c.project = project
167484	c.region = region
167485	c.vpnGateway = vpnGateway
167486	return c
167487}
167488
167489// Fields allows partial responses to be retrieved. See
167490// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
167491// for more information.
167492func (c *VpnGatewaysGetStatusCall) Fields(s ...googleapi.Field) *VpnGatewaysGetStatusCall {
167493	c.urlParams_.Set("fields", googleapi.CombineFields(s))
167494	return c
167495}
167496
167497// IfNoneMatch sets the optional parameter which makes the operation
167498// fail if the object's ETag matches the given value. This is useful for
167499// getting updates only after the object has changed since the last
167500// request. Use googleapi.IsNotModified to check whether the response
167501// error from Do is the result of In-None-Match.
167502func (c *VpnGatewaysGetStatusCall) IfNoneMatch(entityTag string) *VpnGatewaysGetStatusCall {
167503	c.ifNoneMatch_ = entityTag
167504	return c
167505}
167506
167507// Context sets the context to be used in this call's Do method. Any
167508// pending HTTP request will be aborted if the provided context is
167509// canceled.
167510func (c *VpnGatewaysGetStatusCall) Context(ctx context.Context) *VpnGatewaysGetStatusCall {
167511	c.ctx_ = ctx
167512	return c
167513}
167514
167515// Header returns an http.Header that can be modified by the caller to
167516// add HTTP headers to the request.
167517func (c *VpnGatewaysGetStatusCall) Header() http.Header {
167518	if c.header_ == nil {
167519		c.header_ = make(http.Header)
167520	}
167521	return c.header_
167522}
167523
167524func (c *VpnGatewaysGetStatusCall) doRequest(alt string) (*http.Response, error) {
167525	reqHeaders := make(http.Header)
167526	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
167527	for k, v := range c.header_ {
167528		reqHeaders[k] = v
167529	}
167530	reqHeaders.Set("User-Agent", c.s.userAgent())
167531	if c.ifNoneMatch_ != "" {
167532		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
167533	}
167534	var body io.Reader = nil
167535	c.urlParams_.Set("alt", alt)
167536	c.urlParams_.Set("prettyPrint", "false")
167537	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/vpnGateways/{vpnGateway}/getStatus")
167538	urls += "?" + c.urlParams_.Encode()
167539	req, err := http.NewRequest("GET", urls, body)
167540	if err != nil {
167541		return nil, err
167542	}
167543	req.Header = reqHeaders
167544	googleapi.Expand(req.URL, map[string]string{
167545		"project":    c.project,
167546		"region":     c.region,
167547		"vpnGateway": c.vpnGateway,
167548	})
167549	return gensupport.SendRequest(c.ctx_, c.s.client, req)
167550}
167551
167552// Do executes the "compute.vpnGateways.getStatus" call.
167553// Exactly one of *VpnGatewaysGetStatusResponse or error will be
167554// non-nil. Any non-2xx status code is an error. Response headers are in
167555// either *VpnGatewaysGetStatusResponse.ServerResponse.Header or (if a
167556// response was returned at all) in error.(*googleapi.Error).Header. Use
167557// googleapi.IsNotModified to check whether the returned error was
167558// because http.StatusNotModified was returned.
167559func (c *VpnGatewaysGetStatusCall) Do(opts ...googleapi.CallOption) (*VpnGatewaysGetStatusResponse, error) {
167560	gensupport.SetOptions(c.urlParams_, opts...)
167561	res, err := c.doRequest("json")
167562	if res != nil && res.StatusCode == http.StatusNotModified {
167563		if res.Body != nil {
167564			res.Body.Close()
167565		}
167566		return nil, &googleapi.Error{
167567			Code:   res.StatusCode,
167568			Header: res.Header,
167569		}
167570	}
167571	if err != nil {
167572		return nil, err
167573	}
167574	defer googleapi.CloseBody(res)
167575	if err := googleapi.CheckResponse(res); err != nil {
167576		return nil, err
167577	}
167578	ret := &VpnGatewaysGetStatusResponse{
167579		ServerResponse: googleapi.ServerResponse{
167580			Header:         res.Header,
167581			HTTPStatusCode: res.StatusCode,
167582		},
167583	}
167584	target := &ret
167585	if err := gensupport.DecodeResponse(target, res); err != nil {
167586		return nil, err
167587	}
167588	return ret, nil
167589	// {
167590	//   "description": "Returns the status for the specified VPN gateway. (== suppress_warning http-rest-shadowed ==)",
167591	//   "httpMethod": "GET",
167592	//   "id": "compute.vpnGateways.getStatus",
167593	//   "parameterOrder": [
167594	//     "project",
167595	//     "region",
167596	//     "vpnGateway"
167597	//   ],
167598	//   "parameters": {
167599	//     "project": {
167600	//       "description": "Project ID for this request.",
167601	//       "location": "path",
167602	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
167603	//       "required": true,
167604	//       "type": "string"
167605	//     },
167606	//     "region": {
167607	//       "description": "Name of the region for this request.",
167608	//       "location": "path",
167609	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
167610	//       "required": true,
167611	//       "type": "string"
167612	//     },
167613	//     "vpnGateway": {
167614	//       "description": "Name of the VPN gateway to return.",
167615	//       "location": "path",
167616	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
167617	//       "required": true,
167618	//       "type": "string"
167619	//     }
167620	//   },
167621	//   "path": "{project}/regions/{region}/vpnGateways/{vpnGateway}/getStatus",
167622	//   "response": {
167623	//     "$ref": "VpnGatewaysGetStatusResponse"
167624	//   },
167625	//   "scopes": [
167626	//     "https://www.googleapis.com/auth/cloud-platform",
167627	//     "https://www.googleapis.com/auth/compute",
167628	//     "https://www.googleapis.com/auth/compute.readonly"
167629	//   ]
167630	// }
167631
167632}
167633
167634// method id "compute.vpnGateways.insert":
167635
167636type VpnGatewaysInsertCall struct {
167637	s          *Service
167638	project    string
167639	region     string
167640	vpngateway *VpnGateway
167641	urlParams_ gensupport.URLParams
167642	ctx_       context.Context
167643	header_    http.Header
167644}
167645
167646// Insert: Creates a VPN gateway in the specified project and region
167647// using the data included in the request. (== suppress_warning
167648// http-rest-shadowed ==)
167649func (r *VpnGatewaysService) Insert(project string, region string, vpngateway *VpnGateway) *VpnGatewaysInsertCall {
167650	c := &VpnGatewaysInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
167651	c.project = project
167652	c.region = region
167653	c.vpngateway = vpngateway
167654	return c
167655}
167656
167657// RequestId sets the optional parameter "requestId": An optional
167658// request ID to identify requests. Specify a unique request ID so that
167659// if you must retry your request, the server will know to ignore the
167660// request if it has already been completed.
167661//
167662// For example, consider a situation where you make an initial request
167663// and the request times out. If you make the request again with the
167664// same request ID, the server can check if original operation with the
167665// same request ID was received, and if so, will ignore the second
167666// request. This prevents clients from accidentally creating duplicate
167667// commitments.
167668//
167669// The request ID must be a valid UUID with the exception that zero UUID
167670// is not supported (00000000-0000-0000-0000-000000000000).
167671func (c *VpnGatewaysInsertCall) RequestId(requestId string) *VpnGatewaysInsertCall {
167672	c.urlParams_.Set("requestId", requestId)
167673	return c
167674}
167675
167676// Fields allows partial responses to be retrieved. See
167677// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
167678// for more information.
167679func (c *VpnGatewaysInsertCall) Fields(s ...googleapi.Field) *VpnGatewaysInsertCall {
167680	c.urlParams_.Set("fields", googleapi.CombineFields(s))
167681	return c
167682}
167683
167684// Context sets the context to be used in this call's Do method. Any
167685// pending HTTP request will be aborted if the provided context is
167686// canceled.
167687func (c *VpnGatewaysInsertCall) Context(ctx context.Context) *VpnGatewaysInsertCall {
167688	c.ctx_ = ctx
167689	return c
167690}
167691
167692// Header returns an http.Header that can be modified by the caller to
167693// add HTTP headers to the request.
167694func (c *VpnGatewaysInsertCall) Header() http.Header {
167695	if c.header_ == nil {
167696		c.header_ = make(http.Header)
167697	}
167698	return c.header_
167699}
167700
167701func (c *VpnGatewaysInsertCall) doRequest(alt string) (*http.Response, error) {
167702	reqHeaders := make(http.Header)
167703	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
167704	for k, v := range c.header_ {
167705		reqHeaders[k] = v
167706	}
167707	reqHeaders.Set("User-Agent", c.s.userAgent())
167708	var body io.Reader = nil
167709	body, err := googleapi.WithoutDataWrapper.JSONReader(c.vpngateway)
167710	if err != nil {
167711		return nil, err
167712	}
167713	reqHeaders.Set("Content-Type", "application/json")
167714	c.urlParams_.Set("alt", alt)
167715	c.urlParams_.Set("prettyPrint", "false")
167716	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/vpnGateways")
167717	urls += "?" + c.urlParams_.Encode()
167718	req, err := http.NewRequest("POST", urls, body)
167719	if err != nil {
167720		return nil, err
167721	}
167722	req.Header = reqHeaders
167723	googleapi.Expand(req.URL, map[string]string{
167724		"project": c.project,
167725		"region":  c.region,
167726	})
167727	return gensupport.SendRequest(c.ctx_, c.s.client, req)
167728}
167729
167730// Do executes the "compute.vpnGateways.insert" call.
167731// Exactly one of *Operation or error will be non-nil. Any non-2xx
167732// status code is an error. Response headers are in either
167733// *Operation.ServerResponse.Header or (if a response was returned at
167734// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
167735// to check whether the returned error was because
167736// http.StatusNotModified was returned.
167737func (c *VpnGatewaysInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
167738	gensupport.SetOptions(c.urlParams_, opts...)
167739	res, err := c.doRequest("json")
167740	if res != nil && res.StatusCode == http.StatusNotModified {
167741		if res.Body != nil {
167742			res.Body.Close()
167743		}
167744		return nil, &googleapi.Error{
167745			Code:   res.StatusCode,
167746			Header: res.Header,
167747		}
167748	}
167749	if err != nil {
167750		return nil, err
167751	}
167752	defer googleapi.CloseBody(res)
167753	if err := googleapi.CheckResponse(res); err != nil {
167754		return nil, err
167755	}
167756	ret := &Operation{
167757		ServerResponse: googleapi.ServerResponse{
167758			Header:         res.Header,
167759			HTTPStatusCode: res.StatusCode,
167760		},
167761	}
167762	target := &ret
167763	if err := gensupport.DecodeResponse(target, res); err != nil {
167764		return nil, err
167765	}
167766	return ret, nil
167767	// {
167768	//   "description": "Creates a VPN gateway in the specified project and region using the data included in the request. (== suppress_warning http-rest-shadowed ==)",
167769	//   "httpMethod": "POST",
167770	//   "id": "compute.vpnGateways.insert",
167771	//   "parameterOrder": [
167772	//     "project",
167773	//     "region"
167774	//   ],
167775	//   "parameters": {
167776	//     "project": {
167777	//       "description": "Project ID for this request.",
167778	//       "location": "path",
167779	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
167780	//       "required": true,
167781	//       "type": "string"
167782	//     },
167783	//     "region": {
167784	//       "description": "Name of the region for this request.",
167785	//       "location": "path",
167786	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
167787	//       "required": true,
167788	//       "type": "string"
167789	//     },
167790	//     "requestId": {
167791	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
167792	//       "location": "query",
167793	//       "type": "string"
167794	//     }
167795	//   },
167796	//   "path": "{project}/regions/{region}/vpnGateways",
167797	//   "request": {
167798	//     "$ref": "VpnGateway"
167799	//   },
167800	//   "response": {
167801	//     "$ref": "Operation"
167802	//   },
167803	//   "scopes": [
167804	//     "https://www.googleapis.com/auth/cloud-platform",
167805	//     "https://www.googleapis.com/auth/compute"
167806	//   ]
167807	// }
167808
167809}
167810
167811// method id "compute.vpnGateways.list":
167812
167813type VpnGatewaysListCall struct {
167814	s            *Service
167815	project      string
167816	region       string
167817	urlParams_   gensupport.URLParams
167818	ifNoneMatch_ string
167819	ctx_         context.Context
167820	header_      http.Header
167821}
167822
167823// List: Retrieves a list of VPN gateways available to the specified
167824// project and region. (== suppress_warning http-rest-shadowed ==)
167825func (r *VpnGatewaysService) List(project string, region string) *VpnGatewaysListCall {
167826	c := &VpnGatewaysListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
167827	c.project = project
167828	c.region = region
167829	return c
167830}
167831
167832// Filter sets the optional parameter "filter": A filter expression that
167833// filters resources listed in the response. The expression must specify
167834// the field name, a comparison operator, and the value that you want to
167835// use for filtering. The value must be a string, a number, or a
167836// boolean. The comparison operator must be either =, !=, >, or <.
167837//
167838// For example, if you are filtering Compute Engine instances, you can
167839// exclude instances named example-instance by specifying name !=
167840// example-instance.
167841//
167842// You can also filter nested fields. For example, you could specify
167843// scheduling.automaticRestart = false to include instances only if they
167844// are not scheduled for automatic restarts. You can use filtering on
167845// nested fields to filter based on resource labels.
167846//
167847// To filter on multiple expressions, provide each separate expression
167848// within parentheses. For example, (scheduling.automaticRestart = true)
167849// (cpuPlatform = "Intel Skylake"). By default, each expression is an
167850// AND expression. However, you can include AND and OR expressions
167851// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
167852// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
167853// true).
167854func (c *VpnGatewaysListCall) Filter(filter string) *VpnGatewaysListCall {
167855	c.urlParams_.Set("filter", filter)
167856	return c
167857}
167858
167859// MaxResults sets the optional parameter "maxResults": The maximum
167860// number of results per page that should be returned. If the number of
167861// available results is larger than maxResults, Compute Engine returns a
167862// nextPageToken that can be used to get the next page of results in
167863// subsequent list requests. Acceptable values are 0 to 500, inclusive.
167864// (Default: 500)
167865func (c *VpnGatewaysListCall) MaxResults(maxResults int64) *VpnGatewaysListCall {
167866	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
167867	return c
167868}
167869
167870// OrderBy sets the optional parameter "orderBy": Sorts list results by
167871// a certain order. By default, results are returned in alphanumerical
167872// order based on the resource name.
167873//
167874// You can also sort results in descending order based on the creation
167875// timestamp using orderBy="creationTimestamp desc". This sorts results
167876// based on the creationTimestamp field in reverse chronological order
167877// (newest result first). Use this to sort resources like operations so
167878// that the newest operation is returned first.
167879//
167880// Currently, only sorting by name or creationTimestamp desc is
167881// supported.
167882func (c *VpnGatewaysListCall) OrderBy(orderBy string) *VpnGatewaysListCall {
167883	c.urlParams_.Set("orderBy", orderBy)
167884	return c
167885}
167886
167887// PageToken sets the optional parameter "pageToken": Specifies a page
167888// token to use. Set pageToken to the nextPageToken returned by a
167889// previous list request to get the next page of results.
167890func (c *VpnGatewaysListCall) PageToken(pageToken string) *VpnGatewaysListCall {
167891	c.urlParams_.Set("pageToken", pageToken)
167892	return c
167893}
167894
167895// Fields allows partial responses to be retrieved. See
167896// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
167897// for more information.
167898func (c *VpnGatewaysListCall) Fields(s ...googleapi.Field) *VpnGatewaysListCall {
167899	c.urlParams_.Set("fields", googleapi.CombineFields(s))
167900	return c
167901}
167902
167903// IfNoneMatch sets the optional parameter which makes the operation
167904// fail if the object's ETag matches the given value. This is useful for
167905// getting updates only after the object has changed since the last
167906// request. Use googleapi.IsNotModified to check whether the response
167907// error from Do is the result of In-None-Match.
167908func (c *VpnGatewaysListCall) IfNoneMatch(entityTag string) *VpnGatewaysListCall {
167909	c.ifNoneMatch_ = entityTag
167910	return c
167911}
167912
167913// Context sets the context to be used in this call's Do method. Any
167914// pending HTTP request will be aborted if the provided context is
167915// canceled.
167916func (c *VpnGatewaysListCall) Context(ctx context.Context) *VpnGatewaysListCall {
167917	c.ctx_ = ctx
167918	return c
167919}
167920
167921// Header returns an http.Header that can be modified by the caller to
167922// add HTTP headers to the request.
167923func (c *VpnGatewaysListCall) Header() http.Header {
167924	if c.header_ == nil {
167925		c.header_ = make(http.Header)
167926	}
167927	return c.header_
167928}
167929
167930func (c *VpnGatewaysListCall) doRequest(alt string) (*http.Response, error) {
167931	reqHeaders := make(http.Header)
167932	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
167933	for k, v := range c.header_ {
167934		reqHeaders[k] = v
167935	}
167936	reqHeaders.Set("User-Agent", c.s.userAgent())
167937	if c.ifNoneMatch_ != "" {
167938		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
167939	}
167940	var body io.Reader = nil
167941	c.urlParams_.Set("alt", alt)
167942	c.urlParams_.Set("prettyPrint", "false")
167943	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/vpnGateways")
167944	urls += "?" + c.urlParams_.Encode()
167945	req, err := http.NewRequest("GET", urls, body)
167946	if err != nil {
167947		return nil, err
167948	}
167949	req.Header = reqHeaders
167950	googleapi.Expand(req.URL, map[string]string{
167951		"project": c.project,
167952		"region":  c.region,
167953	})
167954	return gensupport.SendRequest(c.ctx_, c.s.client, req)
167955}
167956
167957// Do executes the "compute.vpnGateways.list" call.
167958// Exactly one of *VpnGatewayList or error will be non-nil. Any non-2xx
167959// status code is an error. Response headers are in either
167960// *VpnGatewayList.ServerResponse.Header or (if a response was returned
167961// at all) in error.(*googleapi.Error).Header. Use
167962// googleapi.IsNotModified to check whether the returned error was
167963// because http.StatusNotModified was returned.
167964func (c *VpnGatewaysListCall) Do(opts ...googleapi.CallOption) (*VpnGatewayList, error) {
167965	gensupport.SetOptions(c.urlParams_, opts...)
167966	res, err := c.doRequest("json")
167967	if res != nil && res.StatusCode == http.StatusNotModified {
167968		if res.Body != nil {
167969			res.Body.Close()
167970		}
167971		return nil, &googleapi.Error{
167972			Code:   res.StatusCode,
167973			Header: res.Header,
167974		}
167975	}
167976	if err != nil {
167977		return nil, err
167978	}
167979	defer googleapi.CloseBody(res)
167980	if err := googleapi.CheckResponse(res); err != nil {
167981		return nil, err
167982	}
167983	ret := &VpnGatewayList{
167984		ServerResponse: googleapi.ServerResponse{
167985			Header:         res.Header,
167986			HTTPStatusCode: res.StatusCode,
167987		},
167988	}
167989	target := &ret
167990	if err := gensupport.DecodeResponse(target, res); err != nil {
167991		return nil, err
167992	}
167993	return ret, nil
167994	// {
167995	//   "description": "Retrieves a list of VPN gateways available to the specified project and region. (== suppress_warning http-rest-shadowed ==)",
167996	//   "httpMethod": "GET",
167997	//   "id": "compute.vpnGateways.list",
167998	//   "parameterOrder": [
167999	//     "project",
168000	//     "region"
168001	//   ],
168002	//   "parameters": {
168003	//     "filter": {
168004	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
168005	//       "location": "query",
168006	//       "type": "string"
168007	//     },
168008	//     "maxResults": {
168009	//       "default": "500",
168010	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
168011	//       "format": "uint32",
168012	//       "location": "query",
168013	//       "minimum": "0",
168014	//       "type": "integer"
168015	//     },
168016	//     "orderBy": {
168017	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
168018	//       "location": "query",
168019	//       "type": "string"
168020	//     },
168021	//     "pageToken": {
168022	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
168023	//       "location": "query",
168024	//       "type": "string"
168025	//     },
168026	//     "project": {
168027	//       "description": "Project ID for this request.",
168028	//       "location": "path",
168029	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
168030	//       "required": true,
168031	//       "type": "string"
168032	//     },
168033	//     "region": {
168034	//       "description": "Name of the region for this request.",
168035	//       "location": "path",
168036	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
168037	//       "required": true,
168038	//       "type": "string"
168039	//     }
168040	//   },
168041	//   "path": "{project}/regions/{region}/vpnGateways",
168042	//   "response": {
168043	//     "$ref": "VpnGatewayList"
168044	//   },
168045	//   "scopes": [
168046	//     "https://www.googleapis.com/auth/cloud-platform",
168047	//     "https://www.googleapis.com/auth/compute",
168048	//     "https://www.googleapis.com/auth/compute.readonly"
168049	//   ]
168050	// }
168051
168052}
168053
168054// Pages invokes f for each page of results.
168055// A non-nil error returned from f will halt the iteration.
168056// The provided context supersedes any context provided to the Context method.
168057func (c *VpnGatewaysListCall) Pages(ctx context.Context, f func(*VpnGatewayList) error) error {
168058	c.ctx_ = ctx
168059	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
168060	for {
168061		x, err := c.Do()
168062		if err != nil {
168063			return err
168064		}
168065		if err := f(x); err != nil {
168066			return err
168067		}
168068		if x.NextPageToken == "" {
168069			return nil
168070		}
168071		c.PageToken(x.NextPageToken)
168072	}
168073}
168074
168075// method id "compute.vpnGateways.setLabels":
168076
168077type VpnGatewaysSetLabelsCall struct {
168078	s                      *Service
168079	project                string
168080	region                 string
168081	resource               string
168082	regionsetlabelsrequest *RegionSetLabelsRequest
168083	urlParams_             gensupport.URLParams
168084	ctx_                   context.Context
168085	header_                http.Header
168086}
168087
168088// SetLabels: Sets the labels on a VpnGateway. To learn more about
168089// labels, read the Labeling Resources documentation. (==
168090// suppress_warning http-rest-shadowed ==)
168091func (r *VpnGatewaysService) SetLabels(project string, region string, resource string, regionsetlabelsrequest *RegionSetLabelsRequest) *VpnGatewaysSetLabelsCall {
168092	c := &VpnGatewaysSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
168093	c.project = project
168094	c.region = region
168095	c.resource = resource
168096	c.regionsetlabelsrequest = regionsetlabelsrequest
168097	return c
168098}
168099
168100// RequestId sets the optional parameter "requestId": An optional
168101// request ID to identify requests. Specify a unique request ID so that
168102// if you must retry your request, the server will know to ignore the
168103// request if it has already been completed.
168104//
168105// For example, consider a situation where you make an initial request
168106// and the request times out. If you make the request again with the
168107// same request ID, the server can check if original operation with the
168108// same request ID was received, and if so, will ignore the second
168109// request. This prevents clients from accidentally creating duplicate
168110// commitments.
168111//
168112// The request ID must be a valid UUID with the exception that zero UUID
168113// is not supported (00000000-0000-0000-0000-000000000000).
168114func (c *VpnGatewaysSetLabelsCall) RequestId(requestId string) *VpnGatewaysSetLabelsCall {
168115	c.urlParams_.Set("requestId", requestId)
168116	return c
168117}
168118
168119// Fields allows partial responses to be retrieved. See
168120// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
168121// for more information.
168122func (c *VpnGatewaysSetLabelsCall) Fields(s ...googleapi.Field) *VpnGatewaysSetLabelsCall {
168123	c.urlParams_.Set("fields", googleapi.CombineFields(s))
168124	return c
168125}
168126
168127// Context sets the context to be used in this call's Do method. Any
168128// pending HTTP request will be aborted if the provided context is
168129// canceled.
168130func (c *VpnGatewaysSetLabelsCall) Context(ctx context.Context) *VpnGatewaysSetLabelsCall {
168131	c.ctx_ = ctx
168132	return c
168133}
168134
168135// Header returns an http.Header that can be modified by the caller to
168136// add HTTP headers to the request.
168137func (c *VpnGatewaysSetLabelsCall) Header() http.Header {
168138	if c.header_ == nil {
168139		c.header_ = make(http.Header)
168140	}
168141	return c.header_
168142}
168143
168144func (c *VpnGatewaysSetLabelsCall) doRequest(alt string) (*http.Response, error) {
168145	reqHeaders := make(http.Header)
168146	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
168147	for k, v := range c.header_ {
168148		reqHeaders[k] = v
168149	}
168150	reqHeaders.Set("User-Agent", c.s.userAgent())
168151	var body io.Reader = nil
168152	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetlabelsrequest)
168153	if err != nil {
168154		return nil, err
168155	}
168156	reqHeaders.Set("Content-Type", "application/json")
168157	c.urlParams_.Set("alt", alt)
168158	c.urlParams_.Set("prettyPrint", "false")
168159	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/vpnGateways/{resource}/setLabels")
168160	urls += "?" + c.urlParams_.Encode()
168161	req, err := http.NewRequest("POST", urls, body)
168162	if err != nil {
168163		return nil, err
168164	}
168165	req.Header = reqHeaders
168166	googleapi.Expand(req.URL, map[string]string{
168167		"project":  c.project,
168168		"region":   c.region,
168169		"resource": c.resource,
168170	})
168171	return gensupport.SendRequest(c.ctx_, c.s.client, req)
168172}
168173
168174// Do executes the "compute.vpnGateways.setLabels" call.
168175// Exactly one of *Operation or error will be non-nil. Any non-2xx
168176// status code is an error. Response headers are in either
168177// *Operation.ServerResponse.Header or (if a response was returned at
168178// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
168179// to check whether the returned error was because
168180// http.StatusNotModified was returned.
168181func (c *VpnGatewaysSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
168182	gensupport.SetOptions(c.urlParams_, opts...)
168183	res, err := c.doRequest("json")
168184	if res != nil && res.StatusCode == http.StatusNotModified {
168185		if res.Body != nil {
168186			res.Body.Close()
168187		}
168188		return nil, &googleapi.Error{
168189			Code:   res.StatusCode,
168190			Header: res.Header,
168191		}
168192	}
168193	if err != nil {
168194		return nil, err
168195	}
168196	defer googleapi.CloseBody(res)
168197	if err := googleapi.CheckResponse(res); err != nil {
168198		return nil, err
168199	}
168200	ret := &Operation{
168201		ServerResponse: googleapi.ServerResponse{
168202			Header:         res.Header,
168203			HTTPStatusCode: res.StatusCode,
168204		},
168205	}
168206	target := &ret
168207	if err := gensupport.DecodeResponse(target, res); err != nil {
168208		return nil, err
168209	}
168210	return ret, nil
168211	// {
168212	//   "description": "Sets the labels on a VpnGateway. To learn more about labels, read the Labeling Resources documentation. (== suppress_warning http-rest-shadowed ==)",
168213	//   "httpMethod": "POST",
168214	//   "id": "compute.vpnGateways.setLabels",
168215	//   "parameterOrder": [
168216	//     "project",
168217	//     "region",
168218	//     "resource"
168219	//   ],
168220	//   "parameters": {
168221	//     "project": {
168222	//       "description": "Project ID for this request.",
168223	//       "location": "path",
168224	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
168225	//       "required": true,
168226	//       "type": "string"
168227	//     },
168228	//     "region": {
168229	//       "description": "The region for this request.",
168230	//       "location": "path",
168231	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
168232	//       "required": true,
168233	//       "type": "string"
168234	//     },
168235	//     "requestId": {
168236	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
168237	//       "location": "query",
168238	//       "type": "string"
168239	//     },
168240	//     "resource": {
168241	//       "description": "Name or id of the resource for this request.",
168242	//       "location": "path",
168243	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
168244	//       "required": true,
168245	//       "type": "string"
168246	//     }
168247	//   },
168248	//   "path": "{project}/regions/{region}/vpnGateways/{resource}/setLabels",
168249	//   "request": {
168250	//     "$ref": "RegionSetLabelsRequest"
168251	//   },
168252	//   "response": {
168253	//     "$ref": "Operation"
168254	//   },
168255	//   "scopes": [
168256	//     "https://www.googleapis.com/auth/cloud-platform",
168257	//     "https://www.googleapis.com/auth/compute"
168258	//   ]
168259	// }
168260
168261}
168262
168263// method id "compute.vpnGateways.testIamPermissions":
168264
168265type VpnGatewaysTestIamPermissionsCall struct {
168266	s                      *Service
168267	project                string
168268	region                 string
168269	resource               string
168270	testpermissionsrequest *TestPermissionsRequest
168271	urlParams_             gensupport.URLParams
168272	ctx_                   context.Context
168273	header_                http.Header
168274}
168275
168276// TestIamPermissions: Returns permissions that a caller has on the
168277// specified resource. (== suppress_warning http-rest-shadowed ==)
168278func (r *VpnGatewaysService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *VpnGatewaysTestIamPermissionsCall {
168279	c := &VpnGatewaysTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
168280	c.project = project
168281	c.region = region
168282	c.resource = resource
168283	c.testpermissionsrequest = testpermissionsrequest
168284	return c
168285}
168286
168287// Fields allows partial responses to be retrieved. See
168288// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
168289// for more information.
168290func (c *VpnGatewaysTestIamPermissionsCall) Fields(s ...googleapi.Field) *VpnGatewaysTestIamPermissionsCall {
168291	c.urlParams_.Set("fields", googleapi.CombineFields(s))
168292	return c
168293}
168294
168295// Context sets the context to be used in this call's Do method. Any
168296// pending HTTP request will be aborted if the provided context is
168297// canceled.
168298func (c *VpnGatewaysTestIamPermissionsCall) Context(ctx context.Context) *VpnGatewaysTestIamPermissionsCall {
168299	c.ctx_ = ctx
168300	return c
168301}
168302
168303// Header returns an http.Header that can be modified by the caller to
168304// add HTTP headers to the request.
168305func (c *VpnGatewaysTestIamPermissionsCall) Header() http.Header {
168306	if c.header_ == nil {
168307		c.header_ = make(http.Header)
168308	}
168309	return c.header_
168310}
168311
168312func (c *VpnGatewaysTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
168313	reqHeaders := make(http.Header)
168314	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
168315	for k, v := range c.header_ {
168316		reqHeaders[k] = v
168317	}
168318	reqHeaders.Set("User-Agent", c.s.userAgent())
168319	var body io.Reader = nil
168320	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
168321	if err != nil {
168322		return nil, err
168323	}
168324	reqHeaders.Set("Content-Type", "application/json")
168325	c.urlParams_.Set("alt", alt)
168326	c.urlParams_.Set("prettyPrint", "false")
168327	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/vpnGateways/{resource}/testIamPermissions")
168328	urls += "?" + c.urlParams_.Encode()
168329	req, err := http.NewRequest("POST", urls, body)
168330	if err != nil {
168331		return nil, err
168332	}
168333	req.Header = reqHeaders
168334	googleapi.Expand(req.URL, map[string]string{
168335		"project":  c.project,
168336		"region":   c.region,
168337		"resource": c.resource,
168338	})
168339	return gensupport.SendRequest(c.ctx_, c.s.client, req)
168340}
168341
168342// Do executes the "compute.vpnGateways.testIamPermissions" call.
168343// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
168344// non-2xx status code is an error. Response headers are in either
168345// *TestPermissionsResponse.ServerResponse.Header or (if a response was
168346// returned at all) in error.(*googleapi.Error).Header. Use
168347// googleapi.IsNotModified to check whether the returned error was
168348// because http.StatusNotModified was returned.
168349func (c *VpnGatewaysTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
168350	gensupport.SetOptions(c.urlParams_, opts...)
168351	res, err := c.doRequest("json")
168352	if res != nil && res.StatusCode == http.StatusNotModified {
168353		if res.Body != nil {
168354			res.Body.Close()
168355		}
168356		return nil, &googleapi.Error{
168357			Code:   res.StatusCode,
168358			Header: res.Header,
168359		}
168360	}
168361	if err != nil {
168362		return nil, err
168363	}
168364	defer googleapi.CloseBody(res)
168365	if err := googleapi.CheckResponse(res); err != nil {
168366		return nil, err
168367	}
168368	ret := &TestPermissionsResponse{
168369		ServerResponse: googleapi.ServerResponse{
168370			Header:         res.Header,
168371			HTTPStatusCode: res.StatusCode,
168372		},
168373	}
168374	target := &ret
168375	if err := gensupport.DecodeResponse(target, res); err != nil {
168376		return nil, err
168377	}
168378	return ret, nil
168379	// {
168380	//   "description": "Returns permissions that a caller has on the specified resource. (== suppress_warning http-rest-shadowed ==)",
168381	//   "httpMethod": "POST",
168382	//   "id": "compute.vpnGateways.testIamPermissions",
168383	//   "parameterOrder": [
168384	//     "project",
168385	//     "region",
168386	//     "resource"
168387	//   ],
168388	//   "parameters": {
168389	//     "project": {
168390	//       "description": "Project ID for this request.",
168391	//       "location": "path",
168392	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
168393	//       "required": true,
168394	//       "type": "string"
168395	//     },
168396	//     "region": {
168397	//       "description": "The name of the region for this request.",
168398	//       "location": "path",
168399	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
168400	//       "required": true,
168401	//       "type": "string"
168402	//     },
168403	//     "resource": {
168404	//       "description": "Name or id of the resource for this request.",
168405	//       "location": "path",
168406	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
168407	//       "required": true,
168408	//       "type": "string"
168409	//     }
168410	//   },
168411	//   "path": "{project}/regions/{region}/vpnGateways/{resource}/testIamPermissions",
168412	//   "request": {
168413	//     "$ref": "TestPermissionsRequest"
168414	//   },
168415	//   "response": {
168416	//     "$ref": "TestPermissionsResponse"
168417	//   },
168418	//   "scopes": [
168419	//     "https://www.googleapis.com/auth/cloud-platform",
168420	//     "https://www.googleapis.com/auth/compute",
168421	//     "https://www.googleapis.com/auth/compute.readonly"
168422	//   ]
168423	// }
168424
168425}
168426
168427// method id "compute.vpnTunnels.aggregatedList":
168428
168429type VpnTunnelsAggregatedListCall struct {
168430	s            *Service
168431	project      string
168432	urlParams_   gensupport.URLParams
168433	ifNoneMatch_ string
168434	ctx_         context.Context
168435	header_      http.Header
168436}
168437
168438// AggregatedList: Retrieves an aggregated list of VPN tunnels. (==
168439// suppress_warning http-rest-shadowed ==)
168440func (r *VpnTunnelsService) AggregatedList(project string) *VpnTunnelsAggregatedListCall {
168441	c := &VpnTunnelsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
168442	c.project = project
168443	return c
168444}
168445
168446// Filter sets the optional parameter "filter": A filter expression that
168447// filters resources listed in the response. The expression must specify
168448// the field name, a comparison operator, and the value that you want to
168449// use for filtering. The value must be a string, a number, or a
168450// boolean. The comparison operator must be either =, !=, >, or <.
168451//
168452// For example, if you are filtering Compute Engine instances, you can
168453// exclude instances named example-instance by specifying name !=
168454// example-instance.
168455//
168456// You can also filter nested fields. For example, you could specify
168457// scheduling.automaticRestart = false to include instances only if they
168458// are not scheduled for automatic restarts. You can use filtering on
168459// nested fields to filter based on resource labels.
168460//
168461// To filter on multiple expressions, provide each separate expression
168462// within parentheses. For example, (scheduling.automaticRestart = true)
168463// (cpuPlatform = "Intel Skylake"). By default, each expression is an
168464// AND expression. However, you can include AND and OR expressions
168465// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
168466// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
168467// true).
168468func (c *VpnTunnelsAggregatedListCall) Filter(filter string) *VpnTunnelsAggregatedListCall {
168469	c.urlParams_.Set("filter", filter)
168470	return c
168471}
168472
168473// MaxResults sets the optional parameter "maxResults": The maximum
168474// number of results per page that should be returned. If the number of
168475// available results is larger than maxResults, Compute Engine returns a
168476// nextPageToken that can be used to get the next page of results in
168477// subsequent list requests. Acceptable values are 0 to 500, inclusive.
168478// (Default: 500)
168479func (c *VpnTunnelsAggregatedListCall) MaxResults(maxResults int64) *VpnTunnelsAggregatedListCall {
168480	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
168481	return c
168482}
168483
168484// OrderBy sets the optional parameter "orderBy": Sorts list results by
168485// a certain order. By default, results are returned in alphanumerical
168486// order based on the resource name.
168487//
168488// You can also sort results in descending order based on the creation
168489// timestamp using orderBy="creationTimestamp desc". This sorts results
168490// based on the creationTimestamp field in reverse chronological order
168491// (newest result first). Use this to sort resources like operations so
168492// that the newest operation is returned first.
168493//
168494// Currently, only sorting by name or creationTimestamp desc is
168495// supported.
168496func (c *VpnTunnelsAggregatedListCall) OrderBy(orderBy string) *VpnTunnelsAggregatedListCall {
168497	c.urlParams_.Set("orderBy", orderBy)
168498	return c
168499}
168500
168501// PageToken sets the optional parameter "pageToken": Specifies a page
168502// token to use. Set pageToken to the nextPageToken returned by a
168503// previous list request to get the next page of results.
168504func (c *VpnTunnelsAggregatedListCall) PageToken(pageToken string) *VpnTunnelsAggregatedListCall {
168505	c.urlParams_.Set("pageToken", pageToken)
168506	return c
168507}
168508
168509// Fields allows partial responses to be retrieved. See
168510// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
168511// for more information.
168512func (c *VpnTunnelsAggregatedListCall) Fields(s ...googleapi.Field) *VpnTunnelsAggregatedListCall {
168513	c.urlParams_.Set("fields", googleapi.CombineFields(s))
168514	return c
168515}
168516
168517// IfNoneMatch sets the optional parameter which makes the operation
168518// fail if the object's ETag matches the given value. This is useful for
168519// getting updates only after the object has changed since the last
168520// request. Use googleapi.IsNotModified to check whether the response
168521// error from Do is the result of In-None-Match.
168522func (c *VpnTunnelsAggregatedListCall) IfNoneMatch(entityTag string) *VpnTunnelsAggregatedListCall {
168523	c.ifNoneMatch_ = entityTag
168524	return c
168525}
168526
168527// Context sets the context to be used in this call's Do method. Any
168528// pending HTTP request will be aborted if the provided context is
168529// canceled.
168530func (c *VpnTunnelsAggregatedListCall) Context(ctx context.Context) *VpnTunnelsAggregatedListCall {
168531	c.ctx_ = ctx
168532	return c
168533}
168534
168535// Header returns an http.Header that can be modified by the caller to
168536// add HTTP headers to the request.
168537func (c *VpnTunnelsAggregatedListCall) Header() http.Header {
168538	if c.header_ == nil {
168539		c.header_ = make(http.Header)
168540	}
168541	return c.header_
168542}
168543
168544func (c *VpnTunnelsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
168545	reqHeaders := make(http.Header)
168546	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
168547	for k, v := range c.header_ {
168548		reqHeaders[k] = v
168549	}
168550	reqHeaders.Set("User-Agent", c.s.userAgent())
168551	if c.ifNoneMatch_ != "" {
168552		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
168553	}
168554	var body io.Reader = nil
168555	c.urlParams_.Set("alt", alt)
168556	c.urlParams_.Set("prettyPrint", "false")
168557	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/vpnTunnels")
168558	urls += "?" + c.urlParams_.Encode()
168559	req, err := http.NewRequest("GET", urls, body)
168560	if err != nil {
168561		return nil, err
168562	}
168563	req.Header = reqHeaders
168564	googleapi.Expand(req.URL, map[string]string{
168565		"project": c.project,
168566	})
168567	return gensupport.SendRequest(c.ctx_, c.s.client, req)
168568}
168569
168570// Do executes the "compute.vpnTunnels.aggregatedList" call.
168571// Exactly one of *VpnTunnelAggregatedList or error will be non-nil. Any
168572// non-2xx status code is an error. Response headers are in either
168573// *VpnTunnelAggregatedList.ServerResponse.Header or (if a response was
168574// returned at all) in error.(*googleapi.Error).Header. Use
168575// googleapi.IsNotModified to check whether the returned error was
168576// because http.StatusNotModified was returned.
168577func (c *VpnTunnelsAggregatedListCall) Do(opts ...googleapi.CallOption) (*VpnTunnelAggregatedList, error) {
168578	gensupport.SetOptions(c.urlParams_, opts...)
168579	res, err := c.doRequest("json")
168580	if res != nil && res.StatusCode == http.StatusNotModified {
168581		if res.Body != nil {
168582			res.Body.Close()
168583		}
168584		return nil, &googleapi.Error{
168585			Code:   res.StatusCode,
168586			Header: res.Header,
168587		}
168588	}
168589	if err != nil {
168590		return nil, err
168591	}
168592	defer googleapi.CloseBody(res)
168593	if err := googleapi.CheckResponse(res); err != nil {
168594		return nil, err
168595	}
168596	ret := &VpnTunnelAggregatedList{
168597		ServerResponse: googleapi.ServerResponse{
168598			Header:         res.Header,
168599			HTTPStatusCode: res.StatusCode,
168600		},
168601	}
168602	target := &ret
168603	if err := gensupport.DecodeResponse(target, res); err != nil {
168604		return nil, err
168605	}
168606	return ret, nil
168607	// {
168608	//   "description": "Retrieves an aggregated list of VPN tunnels. (== suppress_warning http-rest-shadowed ==)",
168609	//   "httpMethod": "GET",
168610	//   "id": "compute.vpnTunnels.aggregatedList",
168611	//   "parameterOrder": [
168612	//     "project"
168613	//   ],
168614	//   "parameters": {
168615	//     "filter": {
168616	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
168617	//       "location": "query",
168618	//       "type": "string"
168619	//     },
168620	//     "maxResults": {
168621	//       "default": "500",
168622	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
168623	//       "format": "uint32",
168624	//       "location": "query",
168625	//       "minimum": "0",
168626	//       "type": "integer"
168627	//     },
168628	//     "orderBy": {
168629	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
168630	//       "location": "query",
168631	//       "type": "string"
168632	//     },
168633	//     "pageToken": {
168634	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
168635	//       "location": "query",
168636	//       "type": "string"
168637	//     },
168638	//     "project": {
168639	//       "description": "Project ID for this request.",
168640	//       "location": "path",
168641	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
168642	//       "required": true,
168643	//       "type": "string"
168644	//     }
168645	//   },
168646	//   "path": "{project}/aggregated/vpnTunnels",
168647	//   "response": {
168648	//     "$ref": "VpnTunnelAggregatedList"
168649	//   },
168650	//   "scopes": [
168651	//     "https://www.googleapis.com/auth/cloud-platform",
168652	//     "https://www.googleapis.com/auth/compute",
168653	//     "https://www.googleapis.com/auth/compute.readonly"
168654	//   ]
168655	// }
168656
168657}
168658
168659// Pages invokes f for each page of results.
168660// A non-nil error returned from f will halt the iteration.
168661// The provided context supersedes any context provided to the Context method.
168662func (c *VpnTunnelsAggregatedListCall) Pages(ctx context.Context, f func(*VpnTunnelAggregatedList) error) error {
168663	c.ctx_ = ctx
168664	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
168665	for {
168666		x, err := c.Do()
168667		if err != nil {
168668			return err
168669		}
168670		if err := f(x); err != nil {
168671			return err
168672		}
168673		if x.NextPageToken == "" {
168674			return nil
168675		}
168676		c.PageToken(x.NextPageToken)
168677	}
168678}
168679
168680// method id "compute.vpnTunnels.delete":
168681
168682type VpnTunnelsDeleteCall struct {
168683	s          *Service
168684	project    string
168685	region     string
168686	vpnTunnel  string
168687	urlParams_ gensupport.URLParams
168688	ctx_       context.Context
168689	header_    http.Header
168690}
168691
168692// Delete: Deletes the specified VpnTunnel resource. (==
168693// suppress_warning http-rest-shadowed ==)
168694func (r *VpnTunnelsService) Delete(project string, region string, vpnTunnel string) *VpnTunnelsDeleteCall {
168695	c := &VpnTunnelsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
168696	c.project = project
168697	c.region = region
168698	c.vpnTunnel = vpnTunnel
168699	return c
168700}
168701
168702// RequestId sets the optional parameter "requestId": An optional
168703// request ID to identify requests. Specify a unique request ID so that
168704// if you must retry your request, the server will know to ignore the
168705// request if it has already been completed.
168706//
168707// For example, consider a situation where you make an initial request
168708// and the request times out. If you make the request again with the
168709// same request ID, the server can check if original operation with the
168710// same request ID was received, and if so, will ignore the second
168711// request. This prevents clients from accidentally creating duplicate
168712// commitments.
168713//
168714// The request ID must be a valid UUID with the exception that zero UUID
168715// is not supported (00000000-0000-0000-0000-000000000000).
168716func (c *VpnTunnelsDeleteCall) RequestId(requestId string) *VpnTunnelsDeleteCall {
168717	c.urlParams_.Set("requestId", requestId)
168718	return c
168719}
168720
168721// Fields allows partial responses to be retrieved. See
168722// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
168723// for more information.
168724func (c *VpnTunnelsDeleteCall) Fields(s ...googleapi.Field) *VpnTunnelsDeleteCall {
168725	c.urlParams_.Set("fields", googleapi.CombineFields(s))
168726	return c
168727}
168728
168729// Context sets the context to be used in this call's Do method. Any
168730// pending HTTP request will be aborted if the provided context is
168731// canceled.
168732func (c *VpnTunnelsDeleteCall) Context(ctx context.Context) *VpnTunnelsDeleteCall {
168733	c.ctx_ = ctx
168734	return c
168735}
168736
168737// Header returns an http.Header that can be modified by the caller to
168738// add HTTP headers to the request.
168739func (c *VpnTunnelsDeleteCall) Header() http.Header {
168740	if c.header_ == nil {
168741		c.header_ = make(http.Header)
168742	}
168743	return c.header_
168744}
168745
168746func (c *VpnTunnelsDeleteCall) doRequest(alt string) (*http.Response, error) {
168747	reqHeaders := make(http.Header)
168748	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
168749	for k, v := range c.header_ {
168750		reqHeaders[k] = v
168751	}
168752	reqHeaders.Set("User-Agent", c.s.userAgent())
168753	var body io.Reader = nil
168754	c.urlParams_.Set("alt", alt)
168755	c.urlParams_.Set("prettyPrint", "false")
168756	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/vpnTunnels/{vpnTunnel}")
168757	urls += "?" + c.urlParams_.Encode()
168758	req, err := http.NewRequest("DELETE", urls, body)
168759	if err != nil {
168760		return nil, err
168761	}
168762	req.Header = reqHeaders
168763	googleapi.Expand(req.URL, map[string]string{
168764		"project":   c.project,
168765		"region":    c.region,
168766		"vpnTunnel": c.vpnTunnel,
168767	})
168768	return gensupport.SendRequest(c.ctx_, c.s.client, req)
168769}
168770
168771// Do executes the "compute.vpnTunnels.delete" call.
168772// Exactly one of *Operation or error will be non-nil. Any non-2xx
168773// status code is an error. Response headers are in either
168774// *Operation.ServerResponse.Header or (if a response was returned at
168775// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
168776// to check whether the returned error was because
168777// http.StatusNotModified was returned.
168778func (c *VpnTunnelsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
168779	gensupport.SetOptions(c.urlParams_, opts...)
168780	res, err := c.doRequest("json")
168781	if res != nil && res.StatusCode == http.StatusNotModified {
168782		if res.Body != nil {
168783			res.Body.Close()
168784		}
168785		return nil, &googleapi.Error{
168786			Code:   res.StatusCode,
168787			Header: res.Header,
168788		}
168789	}
168790	if err != nil {
168791		return nil, err
168792	}
168793	defer googleapi.CloseBody(res)
168794	if err := googleapi.CheckResponse(res); err != nil {
168795		return nil, err
168796	}
168797	ret := &Operation{
168798		ServerResponse: googleapi.ServerResponse{
168799			Header:         res.Header,
168800			HTTPStatusCode: res.StatusCode,
168801		},
168802	}
168803	target := &ret
168804	if err := gensupport.DecodeResponse(target, res); err != nil {
168805		return nil, err
168806	}
168807	return ret, nil
168808	// {
168809	//   "description": "Deletes the specified VpnTunnel resource. (== suppress_warning http-rest-shadowed ==)",
168810	//   "httpMethod": "DELETE",
168811	//   "id": "compute.vpnTunnels.delete",
168812	//   "parameterOrder": [
168813	//     "project",
168814	//     "region",
168815	//     "vpnTunnel"
168816	//   ],
168817	//   "parameters": {
168818	//     "project": {
168819	//       "description": "Project ID for this request.",
168820	//       "location": "path",
168821	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
168822	//       "required": true,
168823	//       "type": "string"
168824	//     },
168825	//     "region": {
168826	//       "description": "Name of the region for this request.",
168827	//       "location": "path",
168828	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
168829	//       "required": true,
168830	//       "type": "string"
168831	//     },
168832	//     "requestId": {
168833	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
168834	//       "location": "query",
168835	//       "type": "string"
168836	//     },
168837	//     "vpnTunnel": {
168838	//       "description": "Name of the VpnTunnel resource to delete.",
168839	//       "location": "path",
168840	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
168841	//       "required": true,
168842	//       "type": "string"
168843	//     }
168844	//   },
168845	//   "path": "{project}/regions/{region}/vpnTunnels/{vpnTunnel}",
168846	//   "response": {
168847	//     "$ref": "Operation"
168848	//   },
168849	//   "scopes": [
168850	//     "https://www.googleapis.com/auth/cloud-platform",
168851	//     "https://www.googleapis.com/auth/compute"
168852	//   ]
168853	// }
168854
168855}
168856
168857// method id "compute.vpnTunnels.get":
168858
168859type VpnTunnelsGetCall struct {
168860	s            *Service
168861	project      string
168862	region       string
168863	vpnTunnel    string
168864	urlParams_   gensupport.URLParams
168865	ifNoneMatch_ string
168866	ctx_         context.Context
168867	header_      http.Header
168868}
168869
168870// Get: Returns the specified VpnTunnel resource. Gets a list of
168871// available VPN tunnels by making a list() request. (==
168872// suppress_warning http-rest-shadowed ==)
168873func (r *VpnTunnelsService) Get(project string, region string, vpnTunnel string) *VpnTunnelsGetCall {
168874	c := &VpnTunnelsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
168875	c.project = project
168876	c.region = region
168877	c.vpnTunnel = vpnTunnel
168878	return c
168879}
168880
168881// Fields allows partial responses to be retrieved. See
168882// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
168883// for more information.
168884func (c *VpnTunnelsGetCall) Fields(s ...googleapi.Field) *VpnTunnelsGetCall {
168885	c.urlParams_.Set("fields", googleapi.CombineFields(s))
168886	return c
168887}
168888
168889// IfNoneMatch sets the optional parameter which makes the operation
168890// fail if the object's ETag matches the given value. This is useful for
168891// getting updates only after the object has changed since the last
168892// request. Use googleapi.IsNotModified to check whether the response
168893// error from Do is the result of In-None-Match.
168894func (c *VpnTunnelsGetCall) IfNoneMatch(entityTag string) *VpnTunnelsGetCall {
168895	c.ifNoneMatch_ = entityTag
168896	return c
168897}
168898
168899// Context sets the context to be used in this call's Do method. Any
168900// pending HTTP request will be aborted if the provided context is
168901// canceled.
168902func (c *VpnTunnelsGetCall) Context(ctx context.Context) *VpnTunnelsGetCall {
168903	c.ctx_ = ctx
168904	return c
168905}
168906
168907// Header returns an http.Header that can be modified by the caller to
168908// add HTTP headers to the request.
168909func (c *VpnTunnelsGetCall) Header() http.Header {
168910	if c.header_ == nil {
168911		c.header_ = make(http.Header)
168912	}
168913	return c.header_
168914}
168915
168916func (c *VpnTunnelsGetCall) doRequest(alt string) (*http.Response, error) {
168917	reqHeaders := make(http.Header)
168918	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
168919	for k, v := range c.header_ {
168920		reqHeaders[k] = v
168921	}
168922	reqHeaders.Set("User-Agent", c.s.userAgent())
168923	if c.ifNoneMatch_ != "" {
168924		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
168925	}
168926	var body io.Reader = nil
168927	c.urlParams_.Set("alt", alt)
168928	c.urlParams_.Set("prettyPrint", "false")
168929	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/vpnTunnels/{vpnTunnel}")
168930	urls += "?" + c.urlParams_.Encode()
168931	req, err := http.NewRequest("GET", urls, body)
168932	if err != nil {
168933		return nil, err
168934	}
168935	req.Header = reqHeaders
168936	googleapi.Expand(req.URL, map[string]string{
168937		"project":   c.project,
168938		"region":    c.region,
168939		"vpnTunnel": c.vpnTunnel,
168940	})
168941	return gensupport.SendRequest(c.ctx_, c.s.client, req)
168942}
168943
168944// Do executes the "compute.vpnTunnels.get" call.
168945// Exactly one of *VpnTunnel or error will be non-nil. Any non-2xx
168946// status code is an error. Response headers are in either
168947// *VpnTunnel.ServerResponse.Header or (if a response was returned at
168948// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
168949// to check whether the returned error was because
168950// http.StatusNotModified was returned.
168951func (c *VpnTunnelsGetCall) Do(opts ...googleapi.CallOption) (*VpnTunnel, error) {
168952	gensupport.SetOptions(c.urlParams_, opts...)
168953	res, err := c.doRequest("json")
168954	if res != nil && res.StatusCode == http.StatusNotModified {
168955		if res.Body != nil {
168956			res.Body.Close()
168957		}
168958		return nil, &googleapi.Error{
168959			Code:   res.StatusCode,
168960			Header: res.Header,
168961		}
168962	}
168963	if err != nil {
168964		return nil, err
168965	}
168966	defer googleapi.CloseBody(res)
168967	if err := googleapi.CheckResponse(res); err != nil {
168968		return nil, err
168969	}
168970	ret := &VpnTunnel{
168971		ServerResponse: googleapi.ServerResponse{
168972			Header:         res.Header,
168973			HTTPStatusCode: res.StatusCode,
168974		},
168975	}
168976	target := &ret
168977	if err := gensupport.DecodeResponse(target, res); err != nil {
168978		return nil, err
168979	}
168980	return ret, nil
168981	// {
168982	//   "description": "Returns the specified VpnTunnel resource. Gets a list of available VPN tunnels by making a list() request. (== suppress_warning http-rest-shadowed ==)",
168983	//   "httpMethod": "GET",
168984	//   "id": "compute.vpnTunnels.get",
168985	//   "parameterOrder": [
168986	//     "project",
168987	//     "region",
168988	//     "vpnTunnel"
168989	//   ],
168990	//   "parameters": {
168991	//     "project": {
168992	//       "description": "Project ID for this request.",
168993	//       "location": "path",
168994	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
168995	//       "required": true,
168996	//       "type": "string"
168997	//     },
168998	//     "region": {
168999	//       "description": "Name of the region for this request.",
169000	//       "location": "path",
169001	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
169002	//       "required": true,
169003	//       "type": "string"
169004	//     },
169005	//     "vpnTunnel": {
169006	//       "description": "Name of the VpnTunnel resource to return.",
169007	//       "location": "path",
169008	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
169009	//       "required": true,
169010	//       "type": "string"
169011	//     }
169012	//   },
169013	//   "path": "{project}/regions/{region}/vpnTunnels/{vpnTunnel}",
169014	//   "response": {
169015	//     "$ref": "VpnTunnel"
169016	//   },
169017	//   "scopes": [
169018	//     "https://www.googleapis.com/auth/cloud-platform",
169019	//     "https://www.googleapis.com/auth/compute",
169020	//     "https://www.googleapis.com/auth/compute.readonly"
169021	//   ]
169022	// }
169023
169024}
169025
169026// method id "compute.vpnTunnels.insert":
169027
169028type VpnTunnelsInsertCall struct {
169029	s          *Service
169030	project    string
169031	region     string
169032	vpntunnel  *VpnTunnel
169033	urlParams_ gensupport.URLParams
169034	ctx_       context.Context
169035	header_    http.Header
169036}
169037
169038// Insert: Creates a VpnTunnel resource in the specified project and
169039// region using the data included in the request. (== suppress_warning
169040// http-rest-shadowed ==)
169041func (r *VpnTunnelsService) Insert(project string, region string, vpntunnel *VpnTunnel) *VpnTunnelsInsertCall {
169042	c := &VpnTunnelsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
169043	c.project = project
169044	c.region = region
169045	c.vpntunnel = vpntunnel
169046	return c
169047}
169048
169049// RequestId sets the optional parameter "requestId": An optional
169050// request ID to identify requests. Specify a unique request ID so that
169051// if you must retry your request, the server will know to ignore the
169052// request if it has already been completed.
169053//
169054// For example, consider a situation where you make an initial request
169055// and the request times out. If you make the request again with the
169056// same request ID, the server can check if original operation with the
169057// same request ID was received, and if so, will ignore the second
169058// request. This prevents clients from accidentally creating duplicate
169059// commitments.
169060//
169061// The request ID must be a valid UUID with the exception that zero UUID
169062// is not supported (00000000-0000-0000-0000-000000000000).
169063func (c *VpnTunnelsInsertCall) RequestId(requestId string) *VpnTunnelsInsertCall {
169064	c.urlParams_.Set("requestId", requestId)
169065	return c
169066}
169067
169068// Fields allows partial responses to be retrieved. See
169069// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
169070// for more information.
169071func (c *VpnTunnelsInsertCall) Fields(s ...googleapi.Field) *VpnTunnelsInsertCall {
169072	c.urlParams_.Set("fields", googleapi.CombineFields(s))
169073	return c
169074}
169075
169076// Context sets the context to be used in this call's Do method. Any
169077// pending HTTP request will be aborted if the provided context is
169078// canceled.
169079func (c *VpnTunnelsInsertCall) Context(ctx context.Context) *VpnTunnelsInsertCall {
169080	c.ctx_ = ctx
169081	return c
169082}
169083
169084// Header returns an http.Header that can be modified by the caller to
169085// add HTTP headers to the request.
169086func (c *VpnTunnelsInsertCall) Header() http.Header {
169087	if c.header_ == nil {
169088		c.header_ = make(http.Header)
169089	}
169090	return c.header_
169091}
169092
169093func (c *VpnTunnelsInsertCall) doRequest(alt string) (*http.Response, error) {
169094	reqHeaders := make(http.Header)
169095	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
169096	for k, v := range c.header_ {
169097		reqHeaders[k] = v
169098	}
169099	reqHeaders.Set("User-Agent", c.s.userAgent())
169100	var body io.Reader = nil
169101	body, err := googleapi.WithoutDataWrapper.JSONReader(c.vpntunnel)
169102	if err != nil {
169103		return nil, err
169104	}
169105	reqHeaders.Set("Content-Type", "application/json")
169106	c.urlParams_.Set("alt", alt)
169107	c.urlParams_.Set("prettyPrint", "false")
169108	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/vpnTunnels")
169109	urls += "?" + c.urlParams_.Encode()
169110	req, err := http.NewRequest("POST", urls, body)
169111	if err != nil {
169112		return nil, err
169113	}
169114	req.Header = reqHeaders
169115	googleapi.Expand(req.URL, map[string]string{
169116		"project": c.project,
169117		"region":  c.region,
169118	})
169119	return gensupport.SendRequest(c.ctx_, c.s.client, req)
169120}
169121
169122// Do executes the "compute.vpnTunnels.insert" call.
169123// Exactly one of *Operation or error will be non-nil. Any non-2xx
169124// status code is an error. Response headers are in either
169125// *Operation.ServerResponse.Header or (if a response was returned at
169126// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
169127// to check whether the returned error was because
169128// http.StatusNotModified was returned.
169129func (c *VpnTunnelsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
169130	gensupport.SetOptions(c.urlParams_, opts...)
169131	res, err := c.doRequest("json")
169132	if res != nil && res.StatusCode == http.StatusNotModified {
169133		if res.Body != nil {
169134			res.Body.Close()
169135		}
169136		return nil, &googleapi.Error{
169137			Code:   res.StatusCode,
169138			Header: res.Header,
169139		}
169140	}
169141	if err != nil {
169142		return nil, err
169143	}
169144	defer googleapi.CloseBody(res)
169145	if err := googleapi.CheckResponse(res); err != nil {
169146		return nil, err
169147	}
169148	ret := &Operation{
169149		ServerResponse: googleapi.ServerResponse{
169150			Header:         res.Header,
169151			HTTPStatusCode: res.StatusCode,
169152		},
169153	}
169154	target := &ret
169155	if err := gensupport.DecodeResponse(target, res); err != nil {
169156		return nil, err
169157	}
169158	return ret, nil
169159	// {
169160	//   "description": "Creates a VpnTunnel resource in the specified project and region using the data included in the request. (== suppress_warning http-rest-shadowed ==)",
169161	//   "httpMethod": "POST",
169162	//   "id": "compute.vpnTunnels.insert",
169163	//   "parameterOrder": [
169164	//     "project",
169165	//     "region"
169166	//   ],
169167	//   "parameters": {
169168	//     "project": {
169169	//       "description": "Project ID for this request.",
169170	//       "location": "path",
169171	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
169172	//       "required": true,
169173	//       "type": "string"
169174	//     },
169175	//     "region": {
169176	//       "description": "Name of the region for this request.",
169177	//       "location": "path",
169178	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
169179	//       "required": true,
169180	//       "type": "string"
169181	//     },
169182	//     "requestId": {
169183	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
169184	//       "location": "query",
169185	//       "type": "string"
169186	//     }
169187	//   },
169188	//   "path": "{project}/regions/{region}/vpnTunnels",
169189	//   "request": {
169190	//     "$ref": "VpnTunnel"
169191	//   },
169192	//   "response": {
169193	//     "$ref": "Operation"
169194	//   },
169195	//   "scopes": [
169196	//     "https://www.googleapis.com/auth/cloud-platform",
169197	//     "https://www.googleapis.com/auth/compute"
169198	//   ]
169199	// }
169200
169201}
169202
169203// method id "compute.vpnTunnels.list":
169204
169205type VpnTunnelsListCall struct {
169206	s            *Service
169207	project      string
169208	region       string
169209	urlParams_   gensupport.URLParams
169210	ifNoneMatch_ string
169211	ctx_         context.Context
169212	header_      http.Header
169213}
169214
169215// List: Retrieves a list of VpnTunnel resources contained in the
169216// specified project and region. (== suppress_warning http-rest-shadowed
169217// ==)
169218func (r *VpnTunnelsService) List(project string, region string) *VpnTunnelsListCall {
169219	c := &VpnTunnelsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
169220	c.project = project
169221	c.region = region
169222	return c
169223}
169224
169225// Filter sets the optional parameter "filter": A filter expression that
169226// filters resources listed in the response. The expression must specify
169227// the field name, a comparison operator, and the value that you want to
169228// use for filtering. The value must be a string, a number, or a
169229// boolean. The comparison operator must be either =, !=, >, or <.
169230//
169231// For example, if you are filtering Compute Engine instances, you can
169232// exclude instances named example-instance by specifying name !=
169233// example-instance.
169234//
169235// You can also filter nested fields. For example, you could specify
169236// scheduling.automaticRestart = false to include instances only if they
169237// are not scheduled for automatic restarts. You can use filtering on
169238// nested fields to filter based on resource labels.
169239//
169240// To filter on multiple expressions, provide each separate expression
169241// within parentheses. For example, (scheduling.automaticRestart = true)
169242// (cpuPlatform = "Intel Skylake"). By default, each expression is an
169243// AND expression. However, you can include AND and OR expressions
169244// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
169245// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
169246// true).
169247func (c *VpnTunnelsListCall) Filter(filter string) *VpnTunnelsListCall {
169248	c.urlParams_.Set("filter", filter)
169249	return c
169250}
169251
169252// MaxResults sets the optional parameter "maxResults": The maximum
169253// number of results per page that should be returned. If the number of
169254// available results is larger than maxResults, Compute Engine returns a
169255// nextPageToken that can be used to get the next page of results in
169256// subsequent list requests. Acceptable values are 0 to 500, inclusive.
169257// (Default: 500)
169258func (c *VpnTunnelsListCall) MaxResults(maxResults int64) *VpnTunnelsListCall {
169259	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
169260	return c
169261}
169262
169263// OrderBy sets the optional parameter "orderBy": Sorts list results by
169264// a certain order. By default, results are returned in alphanumerical
169265// order based on the resource name.
169266//
169267// You can also sort results in descending order based on the creation
169268// timestamp using orderBy="creationTimestamp desc". This sorts results
169269// based on the creationTimestamp field in reverse chronological order
169270// (newest result first). Use this to sort resources like operations so
169271// that the newest operation is returned first.
169272//
169273// Currently, only sorting by name or creationTimestamp desc is
169274// supported.
169275func (c *VpnTunnelsListCall) OrderBy(orderBy string) *VpnTunnelsListCall {
169276	c.urlParams_.Set("orderBy", orderBy)
169277	return c
169278}
169279
169280// PageToken sets the optional parameter "pageToken": Specifies a page
169281// token to use. Set pageToken to the nextPageToken returned by a
169282// previous list request to get the next page of results.
169283func (c *VpnTunnelsListCall) PageToken(pageToken string) *VpnTunnelsListCall {
169284	c.urlParams_.Set("pageToken", pageToken)
169285	return c
169286}
169287
169288// Fields allows partial responses to be retrieved. See
169289// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
169290// for more information.
169291func (c *VpnTunnelsListCall) Fields(s ...googleapi.Field) *VpnTunnelsListCall {
169292	c.urlParams_.Set("fields", googleapi.CombineFields(s))
169293	return c
169294}
169295
169296// IfNoneMatch sets the optional parameter which makes the operation
169297// fail if the object's ETag matches the given value. This is useful for
169298// getting updates only after the object has changed since the last
169299// request. Use googleapi.IsNotModified to check whether the response
169300// error from Do is the result of In-None-Match.
169301func (c *VpnTunnelsListCall) IfNoneMatch(entityTag string) *VpnTunnelsListCall {
169302	c.ifNoneMatch_ = entityTag
169303	return c
169304}
169305
169306// Context sets the context to be used in this call's Do method. Any
169307// pending HTTP request will be aborted if the provided context is
169308// canceled.
169309func (c *VpnTunnelsListCall) Context(ctx context.Context) *VpnTunnelsListCall {
169310	c.ctx_ = ctx
169311	return c
169312}
169313
169314// Header returns an http.Header that can be modified by the caller to
169315// add HTTP headers to the request.
169316func (c *VpnTunnelsListCall) Header() http.Header {
169317	if c.header_ == nil {
169318		c.header_ = make(http.Header)
169319	}
169320	return c.header_
169321}
169322
169323func (c *VpnTunnelsListCall) doRequest(alt string) (*http.Response, error) {
169324	reqHeaders := make(http.Header)
169325	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
169326	for k, v := range c.header_ {
169327		reqHeaders[k] = v
169328	}
169329	reqHeaders.Set("User-Agent", c.s.userAgent())
169330	if c.ifNoneMatch_ != "" {
169331		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
169332	}
169333	var body io.Reader = nil
169334	c.urlParams_.Set("alt", alt)
169335	c.urlParams_.Set("prettyPrint", "false")
169336	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/vpnTunnels")
169337	urls += "?" + c.urlParams_.Encode()
169338	req, err := http.NewRequest("GET", urls, body)
169339	if err != nil {
169340		return nil, err
169341	}
169342	req.Header = reqHeaders
169343	googleapi.Expand(req.URL, map[string]string{
169344		"project": c.project,
169345		"region":  c.region,
169346	})
169347	return gensupport.SendRequest(c.ctx_, c.s.client, req)
169348}
169349
169350// Do executes the "compute.vpnTunnels.list" call.
169351// Exactly one of *VpnTunnelList or error will be non-nil. Any non-2xx
169352// status code is an error. Response headers are in either
169353// *VpnTunnelList.ServerResponse.Header or (if a response was returned
169354// at all) in error.(*googleapi.Error).Header. Use
169355// googleapi.IsNotModified to check whether the returned error was
169356// because http.StatusNotModified was returned.
169357func (c *VpnTunnelsListCall) Do(opts ...googleapi.CallOption) (*VpnTunnelList, error) {
169358	gensupport.SetOptions(c.urlParams_, opts...)
169359	res, err := c.doRequest("json")
169360	if res != nil && res.StatusCode == http.StatusNotModified {
169361		if res.Body != nil {
169362			res.Body.Close()
169363		}
169364		return nil, &googleapi.Error{
169365			Code:   res.StatusCode,
169366			Header: res.Header,
169367		}
169368	}
169369	if err != nil {
169370		return nil, err
169371	}
169372	defer googleapi.CloseBody(res)
169373	if err := googleapi.CheckResponse(res); err != nil {
169374		return nil, err
169375	}
169376	ret := &VpnTunnelList{
169377		ServerResponse: googleapi.ServerResponse{
169378			Header:         res.Header,
169379			HTTPStatusCode: res.StatusCode,
169380		},
169381	}
169382	target := &ret
169383	if err := gensupport.DecodeResponse(target, res); err != nil {
169384		return nil, err
169385	}
169386	return ret, nil
169387	// {
169388	//   "description": "Retrieves a list of VpnTunnel resources contained in the specified project and region. (== suppress_warning http-rest-shadowed ==)",
169389	//   "httpMethod": "GET",
169390	//   "id": "compute.vpnTunnels.list",
169391	//   "parameterOrder": [
169392	//     "project",
169393	//     "region"
169394	//   ],
169395	//   "parameters": {
169396	//     "filter": {
169397	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
169398	//       "location": "query",
169399	//       "type": "string"
169400	//     },
169401	//     "maxResults": {
169402	//       "default": "500",
169403	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
169404	//       "format": "uint32",
169405	//       "location": "query",
169406	//       "minimum": "0",
169407	//       "type": "integer"
169408	//     },
169409	//     "orderBy": {
169410	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
169411	//       "location": "query",
169412	//       "type": "string"
169413	//     },
169414	//     "pageToken": {
169415	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
169416	//       "location": "query",
169417	//       "type": "string"
169418	//     },
169419	//     "project": {
169420	//       "description": "Project ID for this request.",
169421	//       "location": "path",
169422	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
169423	//       "required": true,
169424	//       "type": "string"
169425	//     },
169426	//     "region": {
169427	//       "description": "Name of the region for this request.",
169428	//       "location": "path",
169429	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
169430	//       "required": true,
169431	//       "type": "string"
169432	//     }
169433	//   },
169434	//   "path": "{project}/regions/{region}/vpnTunnels",
169435	//   "response": {
169436	//     "$ref": "VpnTunnelList"
169437	//   },
169438	//   "scopes": [
169439	//     "https://www.googleapis.com/auth/cloud-platform",
169440	//     "https://www.googleapis.com/auth/compute",
169441	//     "https://www.googleapis.com/auth/compute.readonly"
169442	//   ]
169443	// }
169444
169445}
169446
169447// Pages invokes f for each page of results.
169448// A non-nil error returned from f will halt the iteration.
169449// The provided context supersedes any context provided to the Context method.
169450func (c *VpnTunnelsListCall) Pages(ctx context.Context, f func(*VpnTunnelList) error) error {
169451	c.ctx_ = ctx
169452	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
169453	for {
169454		x, err := c.Do()
169455		if err != nil {
169456			return err
169457		}
169458		if err := f(x); err != nil {
169459			return err
169460		}
169461		if x.NextPageToken == "" {
169462			return nil
169463		}
169464		c.PageToken(x.NextPageToken)
169465	}
169466}
169467
169468// method id "compute.vpnTunnels.setLabels":
169469
169470type VpnTunnelsSetLabelsCall struct {
169471	s                      *Service
169472	project                string
169473	region                 string
169474	resource               string
169475	regionsetlabelsrequest *RegionSetLabelsRequest
169476	urlParams_             gensupport.URLParams
169477	ctx_                   context.Context
169478	header_                http.Header
169479}
169480
169481// SetLabels: Sets the labels on a VpnTunnel. To learn more about
169482// labels, read the Labeling Resources documentation. (==
169483// suppress_warning http-rest-shadowed ==)
169484func (r *VpnTunnelsService) SetLabels(project string, region string, resource string, regionsetlabelsrequest *RegionSetLabelsRequest) *VpnTunnelsSetLabelsCall {
169485	c := &VpnTunnelsSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
169486	c.project = project
169487	c.region = region
169488	c.resource = resource
169489	c.regionsetlabelsrequest = regionsetlabelsrequest
169490	return c
169491}
169492
169493// RequestId sets the optional parameter "requestId": An optional
169494// request ID to identify requests. Specify a unique request ID so that
169495// if you must retry your request, the server will know to ignore the
169496// request if it has already been completed.
169497//
169498// For example, consider a situation where you make an initial request
169499// and the request times out. If you make the request again with the
169500// same request ID, the server can check if original operation with the
169501// same request ID was received, and if so, will ignore the second
169502// request. This prevents clients from accidentally creating duplicate
169503// commitments.
169504//
169505// The request ID must be a valid UUID with the exception that zero UUID
169506// is not supported (00000000-0000-0000-0000-000000000000).
169507func (c *VpnTunnelsSetLabelsCall) RequestId(requestId string) *VpnTunnelsSetLabelsCall {
169508	c.urlParams_.Set("requestId", requestId)
169509	return c
169510}
169511
169512// Fields allows partial responses to be retrieved. See
169513// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
169514// for more information.
169515func (c *VpnTunnelsSetLabelsCall) Fields(s ...googleapi.Field) *VpnTunnelsSetLabelsCall {
169516	c.urlParams_.Set("fields", googleapi.CombineFields(s))
169517	return c
169518}
169519
169520// Context sets the context to be used in this call's Do method. Any
169521// pending HTTP request will be aborted if the provided context is
169522// canceled.
169523func (c *VpnTunnelsSetLabelsCall) Context(ctx context.Context) *VpnTunnelsSetLabelsCall {
169524	c.ctx_ = ctx
169525	return c
169526}
169527
169528// Header returns an http.Header that can be modified by the caller to
169529// add HTTP headers to the request.
169530func (c *VpnTunnelsSetLabelsCall) Header() http.Header {
169531	if c.header_ == nil {
169532		c.header_ = make(http.Header)
169533	}
169534	return c.header_
169535}
169536
169537func (c *VpnTunnelsSetLabelsCall) doRequest(alt string) (*http.Response, error) {
169538	reqHeaders := make(http.Header)
169539	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
169540	for k, v := range c.header_ {
169541		reqHeaders[k] = v
169542	}
169543	reqHeaders.Set("User-Agent", c.s.userAgent())
169544	var body io.Reader = nil
169545	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetlabelsrequest)
169546	if err != nil {
169547		return nil, err
169548	}
169549	reqHeaders.Set("Content-Type", "application/json")
169550	c.urlParams_.Set("alt", alt)
169551	c.urlParams_.Set("prettyPrint", "false")
169552	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/vpnTunnels/{resource}/setLabels")
169553	urls += "?" + c.urlParams_.Encode()
169554	req, err := http.NewRequest("POST", urls, body)
169555	if err != nil {
169556		return nil, err
169557	}
169558	req.Header = reqHeaders
169559	googleapi.Expand(req.URL, map[string]string{
169560		"project":  c.project,
169561		"region":   c.region,
169562		"resource": c.resource,
169563	})
169564	return gensupport.SendRequest(c.ctx_, c.s.client, req)
169565}
169566
169567// Do executes the "compute.vpnTunnels.setLabels" call.
169568// Exactly one of *Operation or error will be non-nil. Any non-2xx
169569// status code is an error. Response headers are in either
169570// *Operation.ServerResponse.Header or (if a response was returned at
169571// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
169572// to check whether the returned error was because
169573// http.StatusNotModified was returned.
169574func (c *VpnTunnelsSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
169575	gensupport.SetOptions(c.urlParams_, opts...)
169576	res, err := c.doRequest("json")
169577	if res != nil && res.StatusCode == http.StatusNotModified {
169578		if res.Body != nil {
169579			res.Body.Close()
169580		}
169581		return nil, &googleapi.Error{
169582			Code:   res.StatusCode,
169583			Header: res.Header,
169584		}
169585	}
169586	if err != nil {
169587		return nil, err
169588	}
169589	defer googleapi.CloseBody(res)
169590	if err := googleapi.CheckResponse(res); err != nil {
169591		return nil, err
169592	}
169593	ret := &Operation{
169594		ServerResponse: googleapi.ServerResponse{
169595			Header:         res.Header,
169596			HTTPStatusCode: res.StatusCode,
169597		},
169598	}
169599	target := &ret
169600	if err := gensupport.DecodeResponse(target, res); err != nil {
169601		return nil, err
169602	}
169603	return ret, nil
169604	// {
169605	//   "description": "Sets the labels on a VpnTunnel. To learn more about labels, read the Labeling Resources documentation. (== suppress_warning http-rest-shadowed ==)",
169606	//   "httpMethod": "POST",
169607	//   "id": "compute.vpnTunnels.setLabels",
169608	//   "parameterOrder": [
169609	//     "project",
169610	//     "region",
169611	//     "resource"
169612	//   ],
169613	//   "parameters": {
169614	//     "project": {
169615	//       "description": "Project ID for this request.",
169616	//       "location": "path",
169617	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
169618	//       "required": true,
169619	//       "type": "string"
169620	//     },
169621	//     "region": {
169622	//       "description": "The region for this request.",
169623	//       "location": "path",
169624	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
169625	//       "required": true,
169626	//       "type": "string"
169627	//     },
169628	//     "requestId": {
169629	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
169630	//       "location": "query",
169631	//       "type": "string"
169632	//     },
169633	//     "resource": {
169634	//       "description": "Name or id of the resource for this request.",
169635	//       "location": "path",
169636	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
169637	//       "required": true,
169638	//       "type": "string"
169639	//     }
169640	//   },
169641	//   "path": "{project}/regions/{region}/vpnTunnels/{resource}/setLabels",
169642	//   "request": {
169643	//     "$ref": "RegionSetLabelsRequest"
169644	//   },
169645	//   "response": {
169646	//     "$ref": "Operation"
169647	//   },
169648	//   "scopes": [
169649	//     "https://www.googleapis.com/auth/cloud-platform",
169650	//     "https://www.googleapis.com/auth/compute"
169651	//   ]
169652	// }
169653
169654}
169655
169656// method id "compute.vpnTunnels.testIamPermissions":
169657
169658type VpnTunnelsTestIamPermissionsCall struct {
169659	s                      *Service
169660	project                string
169661	region                 string
169662	resource               string
169663	testpermissionsrequest *TestPermissionsRequest
169664	urlParams_             gensupport.URLParams
169665	ctx_                   context.Context
169666	header_                http.Header
169667}
169668
169669// TestIamPermissions: Returns permissions that a caller has on the
169670// specified resource. (== suppress_warning http-rest-shadowed ==)
169671func (r *VpnTunnelsService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *VpnTunnelsTestIamPermissionsCall {
169672	c := &VpnTunnelsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
169673	c.project = project
169674	c.region = region
169675	c.resource = resource
169676	c.testpermissionsrequest = testpermissionsrequest
169677	return c
169678}
169679
169680// Fields allows partial responses to be retrieved. See
169681// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
169682// for more information.
169683func (c *VpnTunnelsTestIamPermissionsCall) Fields(s ...googleapi.Field) *VpnTunnelsTestIamPermissionsCall {
169684	c.urlParams_.Set("fields", googleapi.CombineFields(s))
169685	return c
169686}
169687
169688// Context sets the context to be used in this call's Do method. Any
169689// pending HTTP request will be aborted if the provided context is
169690// canceled.
169691func (c *VpnTunnelsTestIamPermissionsCall) Context(ctx context.Context) *VpnTunnelsTestIamPermissionsCall {
169692	c.ctx_ = ctx
169693	return c
169694}
169695
169696// Header returns an http.Header that can be modified by the caller to
169697// add HTTP headers to the request.
169698func (c *VpnTunnelsTestIamPermissionsCall) Header() http.Header {
169699	if c.header_ == nil {
169700		c.header_ = make(http.Header)
169701	}
169702	return c.header_
169703}
169704
169705func (c *VpnTunnelsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
169706	reqHeaders := make(http.Header)
169707	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
169708	for k, v := range c.header_ {
169709		reqHeaders[k] = v
169710	}
169711	reqHeaders.Set("User-Agent", c.s.userAgent())
169712	var body io.Reader = nil
169713	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
169714	if err != nil {
169715		return nil, err
169716	}
169717	reqHeaders.Set("Content-Type", "application/json")
169718	c.urlParams_.Set("alt", alt)
169719	c.urlParams_.Set("prettyPrint", "false")
169720	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/vpnTunnels/{resource}/testIamPermissions")
169721	urls += "?" + c.urlParams_.Encode()
169722	req, err := http.NewRequest("POST", urls, body)
169723	if err != nil {
169724		return nil, err
169725	}
169726	req.Header = reqHeaders
169727	googleapi.Expand(req.URL, map[string]string{
169728		"project":  c.project,
169729		"region":   c.region,
169730		"resource": c.resource,
169731	})
169732	return gensupport.SendRequest(c.ctx_, c.s.client, req)
169733}
169734
169735// Do executes the "compute.vpnTunnels.testIamPermissions" call.
169736// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
169737// non-2xx status code is an error. Response headers are in either
169738// *TestPermissionsResponse.ServerResponse.Header or (if a response was
169739// returned at all) in error.(*googleapi.Error).Header. Use
169740// googleapi.IsNotModified to check whether the returned error was
169741// because http.StatusNotModified was returned.
169742func (c *VpnTunnelsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
169743	gensupport.SetOptions(c.urlParams_, opts...)
169744	res, err := c.doRequest("json")
169745	if res != nil && res.StatusCode == http.StatusNotModified {
169746		if res.Body != nil {
169747			res.Body.Close()
169748		}
169749		return nil, &googleapi.Error{
169750			Code:   res.StatusCode,
169751			Header: res.Header,
169752		}
169753	}
169754	if err != nil {
169755		return nil, err
169756	}
169757	defer googleapi.CloseBody(res)
169758	if err := googleapi.CheckResponse(res); err != nil {
169759		return nil, err
169760	}
169761	ret := &TestPermissionsResponse{
169762		ServerResponse: googleapi.ServerResponse{
169763			Header:         res.Header,
169764			HTTPStatusCode: res.StatusCode,
169765		},
169766	}
169767	target := &ret
169768	if err := gensupport.DecodeResponse(target, res); err != nil {
169769		return nil, err
169770	}
169771	return ret, nil
169772	// {
169773	//   "description": "Returns permissions that a caller has on the specified resource. (== suppress_warning http-rest-shadowed ==)",
169774	//   "httpMethod": "POST",
169775	//   "id": "compute.vpnTunnels.testIamPermissions",
169776	//   "parameterOrder": [
169777	//     "project",
169778	//     "region",
169779	//     "resource"
169780	//   ],
169781	//   "parameters": {
169782	//     "project": {
169783	//       "description": "Project ID for this request.",
169784	//       "location": "path",
169785	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
169786	//       "required": true,
169787	//       "type": "string"
169788	//     },
169789	//     "region": {
169790	//       "description": "The name of the region for this request.",
169791	//       "location": "path",
169792	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
169793	//       "required": true,
169794	//       "type": "string"
169795	//     },
169796	//     "resource": {
169797	//       "description": "Name or id of the resource for this request.",
169798	//       "location": "path",
169799	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
169800	//       "required": true,
169801	//       "type": "string"
169802	//     }
169803	//   },
169804	//   "path": "{project}/regions/{region}/vpnTunnels/{resource}/testIamPermissions",
169805	//   "request": {
169806	//     "$ref": "TestPermissionsRequest"
169807	//   },
169808	//   "response": {
169809	//     "$ref": "TestPermissionsResponse"
169810	//   },
169811	//   "scopes": [
169812	//     "https://www.googleapis.com/auth/cloud-platform",
169813	//     "https://www.googleapis.com/auth/compute",
169814	//     "https://www.googleapis.com/auth/compute.readonly"
169815	//   ]
169816	// }
169817
169818}
169819
169820// method id "compute.zoneOperations.delete":
169821
169822type ZoneOperationsDeleteCall struct {
169823	s          *Service
169824	project    string
169825	zone       string
169826	operation  string
169827	urlParams_ gensupport.URLParams
169828	ctx_       context.Context
169829	header_    http.Header
169830}
169831
169832// Delete: Deletes the specified zone-specific Operations resource. (==
169833// suppress_warning http-rest-shadowed ==)
169834// For details, see https://cloud.google.com/compute/docs/reference/latest/zoneOperations/delete
169835func (r *ZoneOperationsService) Delete(project string, zone string, operation string) *ZoneOperationsDeleteCall {
169836	c := &ZoneOperationsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
169837	c.project = project
169838	c.zone = zone
169839	c.operation = operation
169840	return c
169841}
169842
169843// Fields allows partial responses to be retrieved. See
169844// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
169845// for more information.
169846func (c *ZoneOperationsDeleteCall) Fields(s ...googleapi.Field) *ZoneOperationsDeleteCall {
169847	c.urlParams_.Set("fields", googleapi.CombineFields(s))
169848	return c
169849}
169850
169851// Context sets the context to be used in this call's Do method. Any
169852// pending HTTP request will be aborted if the provided context is
169853// canceled.
169854func (c *ZoneOperationsDeleteCall) Context(ctx context.Context) *ZoneOperationsDeleteCall {
169855	c.ctx_ = ctx
169856	return c
169857}
169858
169859// Header returns an http.Header that can be modified by the caller to
169860// add HTTP headers to the request.
169861func (c *ZoneOperationsDeleteCall) Header() http.Header {
169862	if c.header_ == nil {
169863		c.header_ = make(http.Header)
169864	}
169865	return c.header_
169866}
169867
169868func (c *ZoneOperationsDeleteCall) doRequest(alt string) (*http.Response, error) {
169869	reqHeaders := make(http.Header)
169870	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
169871	for k, v := range c.header_ {
169872		reqHeaders[k] = v
169873	}
169874	reqHeaders.Set("User-Agent", c.s.userAgent())
169875	var body io.Reader = nil
169876	c.urlParams_.Set("alt", alt)
169877	c.urlParams_.Set("prettyPrint", "false")
169878	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/operations/{operation}")
169879	urls += "?" + c.urlParams_.Encode()
169880	req, err := http.NewRequest("DELETE", urls, body)
169881	if err != nil {
169882		return nil, err
169883	}
169884	req.Header = reqHeaders
169885	googleapi.Expand(req.URL, map[string]string{
169886		"project":   c.project,
169887		"zone":      c.zone,
169888		"operation": c.operation,
169889	})
169890	return gensupport.SendRequest(c.ctx_, c.s.client, req)
169891}
169892
169893// Do executes the "compute.zoneOperations.delete" call.
169894func (c *ZoneOperationsDeleteCall) Do(opts ...googleapi.CallOption) error {
169895	gensupport.SetOptions(c.urlParams_, opts...)
169896	res, err := c.doRequest("json")
169897	if err != nil {
169898		return err
169899	}
169900	defer googleapi.CloseBody(res)
169901	if err := googleapi.CheckResponse(res); err != nil {
169902		return err
169903	}
169904	return nil
169905	// {
169906	//   "description": "Deletes the specified zone-specific Operations resource. (== suppress_warning http-rest-shadowed ==)",
169907	//   "httpMethod": "DELETE",
169908	//   "id": "compute.zoneOperations.delete",
169909	//   "parameterOrder": [
169910	//     "project",
169911	//     "zone",
169912	//     "operation"
169913	//   ],
169914	//   "parameters": {
169915	//     "operation": {
169916	//       "description": "Name of the Operations resource to delete.",
169917	//       "location": "path",
169918	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
169919	//       "required": true,
169920	//       "type": "string"
169921	//     },
169922	//     "project": {
169923	//       "description": "Project ID for this request.",
169924	//       "location": "path",
169925	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
169926	//       "required": true,
169927	//       "type": "string"
169928	//     },
169929	//     "zone": {
169930	//       "description": "Name of the zone for this request.",
169931	//       "location": "path",
169932	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
169933	//       "required": true,
169934	//       "type": "string"
169935	//     }
169936	//   },
169937	//   "path": "{project}/zones/{zone}/operations/{operation}",
169938	//   "scopes": [
169939	//     "https://www.googleapis.com/auth/cloud-platform",
169940	//     "https://www.googleapis.com/auth/compute"
169941	//   ]
169942	// }
169943
169944}
169945
169946// method id "compute.zoneOperations.get":
169947
169948type ZoneOperationsGetCall struct {
169949	s            *Service
169950	project      string
169951	zone         string
169952	operation    string
169953	urlParams_   gensupport.URLParams
169954	ifNoneMatch_ string
169955	ctx_         context.Context
169956	header_      http.Header
169957}
169958
169959// Get: Retrieves the specified zone-specific Operations resource. (==
169960// suppress_warning http-rest-shadowed ==)
169961// For details, see https://cloud.google.com/compute/docs/reference/latest/zoneOperations/get
169962func (r *ZoneOperationsService) Get(project string, zone string, operation string) *ZoneOperationsGetCall {
169963	c := &ZoneOperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
169964	c.project = project
169965	c.zone = zone
169966	c.operation = operation
169967	return c
169968}
169969
169970// Fields allows partial responses to be retrieved. See
169971// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
169972// for more information.
169973func (c *ZoneOperationsGetCall) Fields(s ...googleapi.Field) *ZoneOperationsGetCall {
169974	c.urlParams_.Set("fields", googleapi.CombineFields(s))
169975	return c
169976}
169977
169978// IfNoneMatch sets the optional parameter which makes the operation
169979// fail if the object's ETag matches the given value. This is useful for
169980// getting updates only after the object has changed since the last
169981// request. Use googleapi.IsNotModified to check whether the response
169982// error from Do is the result of In-None-Match.
169983func (c *ZoneOperationsGetCall) IfNoneMatch(entityTag string) *ZoneOperationsGetCall {
169984	c.ifNoneMatch_ = entityTag
169985	return c
169986}
169987
169988// Context sets the context to be used in this call's Do method. Any
169989// pending HTTP request will be aborted if the provided context is
169990// canceled.
169991func (c *ZoneOperationsGetCall) Context(ctx context.Context) *ZoneOperationsGetCall {
169992	c.ctx_ = ctx
169993	return c
169994}
169995
169996// Header returns an http.Header that can be modified by the caller to
169997// add HTTP headers to the request.
169998func (c *ZoneOperationsGetCall) Header() http.Header {
169999	if c.header_ == nil {
170000		c.header_ = make(http.Header)
170001	}
170002	return c.header_
170003}
170004
170005func (c *ZoneOperationsGetCall) doRequest(alt string) (*http.Response, error) {
170006	reqHeaders := make(http.Header)
170007	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
170008	for k, v := range c.header_ {
170009		reqHeaders[k] = v
170010	}
170011	reqHeaders.Set("User-Agent", c.s.userAgent())
170012	if c.ifNoneMatch_ != "" {
170013		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
170014	}
170015	var body io.Reader = nil
170016	c.urlParams_.Set("alt", alt)
170017	c.urlParams_.Set("prettyPrint", "false")
170018	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/operations/{operation}")
170019	urls += "?" + c.urlParams_.Encode()
170020	req, err := http.NewRequest("GET", urls, body)
170021	if err != nil {
170022		return nil, err
170023	}
170024	req.Header = reqHeaders
170025	googleapi.Expand(req.URL, map[string]string{
170026		"project":   c.project,
170027		"zone":      c.zone,
170028		"operation": c.operation,
170029	})
170030	return gensupport.SendRequest(c.ctx_, c.s.client, req)
170031}
170032
170033// Do executes the "compute.zoneOperations.get" call.
170034// Exactly one of *Operation or error will be non-nil. Any non-2xx
170035// status code is an error. Response headers are in either
170036// *Operation.ServerResponse.Header or (if a response was returned at
170037// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
170038// to check whether the returned error was because
170039// http.StatusNotModified was returned.
170040func (c *ZoneOperationsGetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
170041	gensupport.SetOptions(c.urlParams_, opts...)
170042	res, err := c.doRequest("json")
170043	if res != nil && res.StatusCode == http.StatusNotModified {
170044		if res.Body != nil {
170045			res.Body.Close()
170046		}
170047		return nil, &googleapi.Error{
170048			Code:   res.StatusCode,
170049			Header: res.Header,
170050		}
170051	}
170052	if err != nil {
170053		return nil, err
170054	}
170055	defer googleapi.CloseBody(res)
170056	if err := googleapi.CheckResponse(res); err != nil {
170057		return nil, err
170058	}
170059	ret := &Operation{
170060		ServerResponse: googleapi.ServerResponse{
170061			Header:         res.Header,
170062			HTTPStatusCode: res.StatusCode,
170063		},
170064	}
170065	target := &ret
170066	if err := gensupport.DecodeResponse(target, res); err != nil {
170067		return nil, err
170068	}
170069	return ret, nil
170070	// {
170071	//   "description": "Retrieves the specified zone-specific Operations resource. (== suppress_warning http-rest-shadowed ==)",
170072	//   "httpMethod": "GET",
170073	//   "id": "compute.zoneOperations.get",
170074	//   "parameterOrder": [
170075	//     "project",
170076	//     "zone",
170077	//     "operation"
170078	//   ],
170079	//   "parameters": {
170080	//     "operation": {
170081	//       "description": "Name of the Operations resource to return.",
170082	//       "location": "path",
170083	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
170084	//       "required": true,
170085	//       "type": "string"
170086	//     },
170087	//     "project": {
170088	//       "description": "Project ID for this request.",
170089	//       "location": "path",
170090	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
170091	//       "required": true,
170092	//       "type": "string"
170093	//     },
170094	//     "zone": {
170095	//       "description": "Name of the zone for this request.",
170096	//       "location": "path",
170097	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
170098	//       "required": true,
170099	//       "type": "string"
170100	//     }
170101	//   },
170102	//   "path": "{project}/zones/{zone}/operations/{operation}",
170103	//   "response": {
170104	//     "$ref": "Operation"
170105	//   },
170106	//   "scopes": [
170107	//     "https://www.googleapis.com/auth/cloud-platform",
170108	//     "https://www.googleapis.com/auth/compute",
170109	//     "https://www.googleapis.com/auth/compute.readonly"
170110	//   ]
170111	// }
170112
170113}
170114
170115// method id "compute.zoneOperations.list":
170116
170117type ZoneOperationsListCall struct {
170118	s            *Service
170119	project      string
170120	zone         string
170121	urlParams_   gensupport.URLParams
170122	ifNoneMatch_ string
170123	ctx_         context.Context
170124	header_      http.Header
170125}
170126
170127// List: Retrieves a list of Operation resources contained within the
170128// specified zone. (== suppress_warning http-rest-shadowed ==)
170129// For details, see https://cloud.google.com/compute/docs/reference/latest/zoneOperations/list
170130func (r *ZoneOperationsService) List(project string, zone string) *ZoneOperationsListCall {
170131	c := &ZoneOperationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
170132	c.project = project
170133	c.zone = zone
170134	return c
170135}
170136
170137// Filter sets the optional parameter "filter": A filter expression that
170138// filters resources listed in the response. The expression must specify
170139// the field name, a comparison operator, and the value that you want to
170140// use for filtering. The value must be a string, a number, or a
170141// boolean. The comparison operator must be either =, !=, >, or <.
170142//
170143// For example, if you are filtering Compute Engine instances, you can
170144// exclude instances named example-instance by specifying name !=
170145// example-instance.
170146//
170147// You can also filter nested fields. For example, you could specify
170148// scheduling.automaticRestart = false to include instances only if they
170149// are not scheduled for automatic restarts. You can use filtering on
170150// nested fields to filter based on resource labels.
170151//
170152// To filter on multiple expressions, provide each separate expression
170153// within parentheses. For example, (scheduling.automaticRestart = true)
170154// (cpuPlatform = "Intel Skylake"). By default, each expression is an
170155// AND expression. However, you can include AND and OR expressions
170156// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
170157// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
170158// true).
170159func (c *ZoneOperationsListCall) Filter(filter string) *ZoneOperationsListCall {
170160	c.urlParams_.Set("filter", filter)
170161	return c
170162}
170163
170164// MaxResults sets the optional parameter "maxResults": The maximum
170165// number of results per page that should be returned. If the number of
170166// available results is larger than maxResults, Compute Engine returns a
170167// nextPageToken that can be used to get the next page of results in
170168// subsequent list requests. Acceptable values are 0 to 500, inclusive.
170169// (Default: 500)
170170func (c *ZoneOperationsListCall) MaxResults(maxResults int64) *ZoneOperationsListCall {
170171	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
170172	return c
170173}
170174
170175// OrderBy sets the optional parameter "orderBy": Sorts list results by
170176// a certain order. By default, results are returned in alphanumerical
170177// order based on the resource name.
170178//
170179// You can also sort results in descending order based on the creation
170180// timestamp using orderBy="creationTimestamp desc". This sorts results
170181// based on the creationTimestamp field in reverse chronological order
170182// (newest result first). Use this to sort resources like operations so
170183// that the newest operation is returned first.
170184//
170185// Currently, only sorting by name or creationTimestamp desc is
170186// supported.
170187func (c *ZoneOperationsListCall) OrderBy(orderBy string) *ZoneOperationsListCall {
170188	c.urlParams_.Set("orderBy", orderBy)
170189	return c
170190}
170191
170192// PageToken sets the optional parameter "pageToken": Specifies a page
170193// token to use. Set pageToken to the nextPageToken returned by a
170194// previous list request to get the next page of results.
170195func (c *ZoneOperationsListCall) PageToken(pageToken string) *ZoneOperationsListCall {
170196	c.urlParams_.Set("pageToken", pageToken)
170197	return c
170198}
170199
170200// Fields allows partial responses to be retrieved. See
170201// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
170202// for more information.
170203func (c *ZoneOperationsListCall) Fields(s ...googleapi.Field) *ZoneOperationsListCall {
170204	c.urlParams_.Set("fields", googleapi.CombineFields(s))
170205	return c
170206}
170207
170208// IfNoneMatch sets the optional parameter which makes the operation
170209// fail if the object's ETag matches the given value. This is useful for
170210// getting updates only after the object has changed since the last
170211// request. Use googleapi.IsNotModified to check whether the response
170212// error from Do is the result of In-None-Match.
170213func (c *ZoneOperationsListCall) IfNoneMatch(entityTag string) *ZoneOperationsListCall {
170214	c.ifNoneMatch_ = entityTag
170215	return c
170216}
170217
170218// Context sets the context to be used in this call's Do method. Any
170219// pending HTTP request will be aborted if the provided context is
170220// canceled.
170221func (c *ZoneOperationsListCall) Context(ctx context.Context) *ZoneOperationsListCall {
170222	c.ctx_ = ctx
170223	return c
170224}
170225
170226// Header returns an http.Header that can be modified by the caller to
170227// add HTTP headers to the request.
170228func (c *ZoneOperationsListCall) Header() http.Header {
170229	if c.header_ == nil {
170230		c.header_ = make(http.Header)
170231	}
170232	return c.header_
170233}
170234
170235func (c *ZoneOperationsListCall) doRequest(alt string) (*http.Response, error) {
170236	reqHeaders := make(http.Header)
170237	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
170238	for k, v := range c.header_ {
170239		reqHeaders[k] = v
170240	}
170241	reqHeaders.Set("User-Agent", c.s.userAgent())
170242	if c.ifNoneMatch_ != "" {
170243		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
170244	}
170245	var body io.Reader = nil
170246	c.urlParams_.Set("alt", alt)
170247	c.urlParams_.Set("prettyPrint", "false")
170248	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/operations")
170249	urls += "?" + c.urlParams_.Encode()
170250	req, err := http.NewRequest("GET", urls, body)
170251	if err != nil {
170252		return nil, err
170253	}
170254	req.Header = reqHeaders
170255	googleapi.Expand(req.URL, map[string]string{
170256		"project": c.project,
170257		"zone":    c.zone,
170258	})
170259	return gensupport.SendRequest(c.ctx_, c.s.client, req)
170260}
170261
170262// Do executes the "compute.zoneOperations.list" call.
170263// Exactly one of *OperationList or error will be non-nil. Any non-2xx
170264// status code is an error. Response headers are in either
170265// *OperationList.ServerResponse.Header or (if a response was returned
170266// at all) in error.(*googleapi.Error).Header. Use
170267// googleapi.IsNotModified to check whether the returned error was
170268// because http.StatusNotModified was returned.
170269func (c *ZoneOperationsListCall) Do(opts ...googleapi.CallOption) (*OperationList, error) {
170270	gensupport.SetOptions(c.urlParams_, opts...)
170271	res, err := c.doRequest("json")
170272	if res != nil && res.StatusCode == http.StatusNotModified {
170273		if res.Body != nil {
170274			res.Body.Close()
170275		}
170276		return nil, &googleapi.Error{
170277			Code:   res.StatusCode,
170278			Header: res.Header,
170279		}
170280	}
170281	if err != nil {
170282		return nil, err
170283	}
170284	defer googleapi.CloseBody(res)
170285	if err := googleapi.CheckResponse(res); err != nil {
170286		return nil, err
170287	}
170288	ret := &OperationList{
170289		ServerResponse: googleapi.ServerResponse{
170290			Header:         res.Header,
170291			HTTPStatusCode: res.StatusCode,
170292		},
170293	}
170294	target := &ret
170295	if err := gensupport.DecodeResponse(target, res); err != nil {
170296		return nil, err
170297	}
170298	return ret, nil
170299	// {
170300	//   "description": "Retrieves a list of Operation resources contained within the specified zone. (== suppress_warning http-rest-shadowed ==)",
170301	//   "httpMethod": "GET",
170302	//   "id": "compute.zoneOperations.list",
170303	//   "parameterOrder": [
170304	//     "project",
170305	//     "zone"
170306	//   ],
170307	//   "parameters": {
170308	//     "filter": {
170309	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
170310	//       "location": "query",
170311	//       "type": "string"
170312	//     },
170313	//     "maxResults": {
170314	//       "default": "500",
170315	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
170316	//       "format": "uint32",
170317	//       "location": "query",
170318	//       "minimum": "0",
170319	//       "type": "integer"
170320	//     },
170321	//     "orderBy": {
170322	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
170323	//       "location": "query",
170324	//       "type": "string"
170325	//     },
170326	//     "pageToken": {
170327	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
170328	//       "location": "query",
170329	//       "type": "string"
170330	//     },
170331	//     "project": {
170332	//       "description": "Project ID for this request.",
170333	//       "location": "path",
170334	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
170335	//       "required": true,
170336	//       "type": "string"
170337	//     },
170338	//     "zone": {
170339	//       "description": "Name of the zone for request.",
170340	//       "location": "path",
170341	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
170342	//       "required": true,
170343	//       "type": "string"
170344	//     }
170345	//   },
170346	//   "path": "{project}/zones/{zone}/operations",
170347	//   "response": {
170348	//     "$ref": "OperationList"
170349	//   },
170350	//   "scopes": [
170351	//     "https://www.googleapis.com/auth/cloud-platform",
170352	//     "https://www.googleapis.com/auth/compute",
170353	//     "https://www.googleapis.com/auth/compute.readonly"
170354	//   ]
170355	// }
170356
170357}
170358
170359// Pages invokes f for each page of results.
170360// A non-nil error returned from f will halt the iteration.
170361// The provided context supersedes any context provided to the Context method.
170362func (c *ZoneOperationsListCall) Pages(ctx context.Context, f func(*OperationList) error) error {
170363	c.ctx_ = ctx
170364	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
170365	for {
170366		x, err := c.Do()
170367		if err != nil {
170368			return err
170369		}
170370		if err := f(x); err != nil {
170371			return err
170372		}
170373		if x.NextPageToken == "" {
170374			return nil
170375		}
170376		c.PageToken(x.NextPageToken)
170377	}
170378}
170379
170380// method id "compute.zoneOperations.wait":
170381
170382type ZoneOperationsWaitCall struct {
170383	s          *Service
170384	project    string
170385	zone       string
170386	operation  string
170387	urlParams_ gensupport.URLParams
170388	ctx_       context.Context
170389	header_    http.Header
170390}
170391
170392// Wait: Waits for the specified zone-specific Operations resource until
170393// it is done or timeout, and retrieves the specified Operations
170394// resource. 1. Immediately returns when the operation is already done.
170395// 2. Waits for no more than the default deadline (2 minutes, subject to
170396// change) and then returns the current state of the operation, which
170397// may be DONE or still in progress. 3. Is best-effort: a. The server
170398// can wait less than the default deadline or zero seconds, in overload
170399// situations. b. There is no guarantee that the operation is actually
170400// done when returns. 4. User should be prepared to retry if the
170401// operation is not DONE. (== suppress_warning http-rest-shadowed ==)
170402func (r *ZoneOperationsService) Wait(project string, zone string, operation string) *ZoneOperationsWaitCall {
170403	c := &ZoneOperationsWaitCall{s: r.s, urlParams_: make(gensupport.URLParams)}
170404	c.project = project
170405	c.zone = zone
170406	c.operation = operation
170407	return c
170408}
170409
170410// Fields allows partial responses to be retrieved. See
170411// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
170412// for more information.
170413func (c *ZoneOperationsWaitCall) Fields(s ...googleapi.Field) *ZoneOperationsWaitCall {
170414	c.urlParams_.Set("fields", googleapi.CombineFields(s))
170415	return c
170416}
170417
170418// Context sets the context to be used in this call's Do method. Any
170419// pending HTTP request will be aborted if the provided context is
170420// canceled.
170421func (c *ZoneOperationsWaitCall) Context(ctx context.Context) *ZoneOperationsWaitCall {
170422	c.ctx_ = ctx
170423	return c
170424}
170425
170426// Header returns an http.Header that can be modified by the caller to
170427// add HTTP headers to the request.
170428func (c *ZoneOperationsWaitCall) Header() http.Header {
170429	if c.header_ == nil {
170430		c.header_ = make(http.Header)
170431	}
170432	return c.header_
170433}
170434
170435func (c *ZoneOperationsWaitCall) doRequest(alt string) (*http.Response, error) {
170436	reqHeaders := make(http.Header)
170437	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
170438	for k, v := range c.header_ {
170439		reqHeaders[k] = v
170440	}
170441	reqHeaders.Set("User-Agent", c.s.userAgent())
170442	var body io.Reader = nil
170443	c.urlParams_.Set("alt", alt)
170444	c.urlParams_.Set("prettyPrint", "false")
170445	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/operations/{operation}/wait")
170446	urls += "?" + c.urlParams_.Encode()
170447	req, err := http.NewRequest("POST", urls, body)
170448	if err != nil {
170449		return nil, err
170450	}
170451	req.Header = reqHeaders
170452	googleapi.Expand(req.URL, map[string]string{
170453		"project":   c.project,
170454		"zone":      c.zone,
170455		"operation": c.operation,
170456	})
170457	return gensupport.SendRequest(c.ctx_, c.s.client, req)
170458}
170459
170460// Do executes the "compute.zoneOperations.wait" call.
170461// Exactly one of *Operation or error will be non-nil. Any non-2xx
170462// status code is an error. Response headers are in either
170463// *Operation.ServerResponse.Header or (if a response was returned at
170464// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
170465// to check whether the returned error was because
170466// http.StatusNotModified was returned.
170467func (c *ZoneOperationsWaitCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
170468	gensupport.SetOptions(c.urlParams_, opts...)
170469	res, err := c.doRequest("json")
170470	if res != nil && res.StatusCode == http.StatusNotModified {
170471		if res.Body != nil {
170472			res.Body.Close()
170473		}
170474		return nil, &googleapi.Error{
170475			Code:   res.StatusCode,
170476			Header: res.Header,
170477		}
170478	}
170479	if err != nil {
170480		return nil, err
170481	}
170482	defer googleapi.CloseBody(res)
170483	if err := googleapi.CheckResponse(res); err != nil {
170484		return nil, err
170485	}
170486	ret := &Operation{
170487		ServerResponse: googleapi.ServerResponse{
170488			Header:         res.Header,
170489			HTTPStatusCode: res.StatusCode,
170490		},
170491	}
170492	target := &ret
170493	if err := gensupport.DecodeResponse(target, res); err != nil {
170494		return nil, err
170495	}
170496	return ret, nil
170497	// {
170498	//   "description": "Waits for the specified zone-specific Operations resource until it is done or timeout, and retrieves the specified Operations resource. 1. Immediately returns when the operation is already done. 2. Waits for no more than the default deadline (2 minutes, subject to change) and then returns the current state of the operation, which may be DONE or still in progress. 3. Is best-effort: a. The server can wait less than the default deadline or zero seconds, in overload situations. b. There is no guarantee that the operation is actually done when returns. 4. User should be prepared to retry if the operation is not DONE. (== suppress_warning http-rest-shadowed ==)",
170499	//   "httpMethod": "POST",
170500	//   "id": "compute.zoneOperations.wait",
170501	//   "parameterOrder": [
170502	//     "project",
170503	//     "zone",
170504	//     "operation"
170505	//   ],
170506	//   "parameters": {
170507	//     "operation": {
170508	//       "description": "Name of the Operations resource to return.",
170509	//       "location": "path",
170510	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
170511	//       "required": true,
170512	//       "type": "string"
170513	//     },
170514	//     "project": {
170515	//       "description": "Project ID for this request.",
170516	//       "location": "path",
170517	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
170518	//       "required": true,
170519	//       "type": "string"
170520	//     },
170521	//     "zone": {
170522	//       "description": "Name of the zone for this request.",
170523	//       "location": "path",
170524	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
170525	//       "required": true,
170526	//       "type": "string"
170527	//     }
170528	//   },
170529	//   "path": "{project}/zones/{zone}/operations/{operation}/wait",
170530	//   "response": {
170531	//     "$ref": "Operation"
170532	//   },
170533	//   "scopes": [
170534	//     "https://www.googleapis.com/auth/cloud-platform",
170535	//     "https://www.googleapis.com/auth/compute",
170536	//     "https://www.googleapis.com/auth/compute.readonly"
170537	//   ]
170538	// }
170539
170540}
170541
170542// method id "compute.zones.get":
170543
170544type ZonesGetCall struct {
170545	s            *Service
170546	project      string
170547	zone         string
170548	urlParams_   gensupport.URLParams
170549	ifNoneMatch_ string
170550	ctx_         context.Context
170551	header_      http.Header
170552}
170553
170554// Get: Returns the specified Zone resource. Gets a list of available
170555// zones by making a list() request. (== suppress_warning
170556// http-rest-shadowed ==)
170557// For details, see https://cloud.google.com/compute/docs/reference/latest/zones/get
170558func (r *ZonesService) Get(project string, zone string) *ZonesGetCall {
170559	c := &ZonesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
170560	c.project = project
170561	c.zone = zone
170562	return c
170563}
170564
170565// Fields allows partial responses to be retrieved. See
170566// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
170567// for more information.
170568func (c *ZonesGetCall) Fields(s ...googleapi.Field) *ZonesGetCall {
170569	c.urlParams_.Set("fields", googleapi.CombineFields(s))
170570	return c
170571}
170572
170573// IfNoneMatch sets the optional parameter which makes the operation
170574// fail if the object's ETag matches the given value. This is useful for
170575// getting updates only after the object has changed since the last
170576// request. Use googleapi.IsNotModified to check whether the response
170577// error from Do is the result of In-None-Match.
170578func (c *ZonesGetCall) IfNoneMatch(entityTag string) *ZonesGetCall {
170579	c.ifNoneMatch_ = entityTag
170580	return c
170581}
170582
170583// Context sets the context to be used in this call's Do method. Any
170584// pending HTTP request will be aborted if the provided context is
170585// canceled.
170586func (c *ZonesGetCall) Context(ctx context.Context) *ZonesGetCall {
170587	c.ctx_ = ctx
170588	return c
170589}
170590
170591// Header returns an http.Header that can be modified by the caller to
170592// add HTTP headers to the request.
170593func (c *ZonesGetCall) Header() http.Header {
170594	if c.header_ == nil {
170595		c.header_ = make(http.Header)
170596	}
170597	return c.header_
170598}
170599
170600func (c *ZonesGetCall) doRequest(alt string) (*http.Response, error) {
170601	reqHeaders := make(http.Header)
170602	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
170603	for k, v := range c.header_ {
170604		reqHeaders[k] = v
170605	}
170606	reqHeaders.Set("User-Agent", c.s.userAgent())
170607	if c.ifNoneMatch_ != "" {
170608		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
170609	}
170610	var body io.Reader = nil
170611	c.urlParams_.Set("alt", alt)
170612	c.urlParams_.Set("prettyPrint", "false")
170613	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}")
170614	urls += "?" + c.urlParams_.Encode()
170615	req, err := http.NewRequest("GET", urls, body)
170616	if err != nil {
170617		return nil, err
170618	}
170619	req.Header = reqHeaders
170620	googleapi.Expand(req.URL, map[string]string{
170621		"project": c.project,
170622		"zone":    c.zone,
170623	})
170624	return gensupport.SendRequest(c.ctx_, c.s.client, req)
170625}
170626
170627// Do executes the "compute.zones.get" call.
170628// Exactly one of *Zone or error will be non-nil. Any non-2xx status
170629// code is an error. Response headers are in either
170630// *Zone.ServerResponse.Header or (if a response was returned at all) in
170631// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
170632// whether the returned error was because http.StatusNotModified was
170633// returned.
170634func (c *ZonesGetCall) Do(opts ...googleapi.CallOption) (*Zone, error) {
170635	gensupport.SetOptions(c.urlParams_, opts...)
170636	res, err := c.doRequest("json")
170637	if res != nil && res.StatusCode == http.StatusNotModified {
170638		if res.Body != nil {
170639			res.Body.Close()
170640		}
170641		return nil, &googleapi.Error{
170642			Code:   res.StatusCode,
170643			Header: res.Header,
170644		}
170645	}
170646	if err != nil {
170647		return nil, err
170648	}
170649	defer googleapi.CloseBody(res)
170650	if err := googleapi.CheckResponse(res); err != nil {
170651		return nil, err
170652	}
170653	ret := &Zone{
170654		ServerResponse: googleapi.ServerResponse{
170655			Header:         res.Header,
170656			HTTPStatusCode: res.StatusCode,
170657		},
170658	}
170659	target := &ret
170660	if err := gensupport.DecodeResponse(target, res); err != nil {
170661		return nil, err
170662	}
170663	return ret, nil
170664	// {
170665	//   "description": "Returns the specified Zone resource. Gets a list of available zones by making a list() request. (== suppress_warning http-rest-shadowed ==)",
170666	//   "httpMethod": "GET",
170667	//   "id": "compute.zones.get",
170668	//   "parameterOrder": [
170669	//     "project",
170670	//     "zone"
170671	//   ],
170672	//   "parameters": {
170673	//     "project": {
170674	//       "description": "Project ID for this request.",
170675	//       "location": "path",
170676	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
170677	//       "required": true,
170678	//       "type": "string"
170679	//     },
170680	//     "zone": {
170681	//       "description": "Name of the zone resource to return.",
170682	//       "location": "path",
170683	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
170684	//       "required": true,
170685	//       "type": "string"
170686	//     }
170687	//   },
170688	//   "path": "{project}/zones/{zone}",
170689	//   "response": {
170690	//     "$ref": "Zone"
170691	//   },
170692	//   "scopes": [
170693	//     "https://www.googleapis.com/auth/cloud-platform",
170694	//     "https://www.googleapis.com/auth/compute",
170695	//     "https://www.googleapis.com/auth/compute.readonly"
170696	//   ]
170697	// }
170698
170699}
170700
170701// method id "compute.zones.list":
170702
170703type ZonesListCall struct {
170704	s            *Service
170705	project      string
170706	urlParams_   gensupport.URLParams
170707	ifNoneMatch_ string
170708	ctx_         context.Context
170709	header_      http.Header
170710}
170711
170712// List: Retrieves the list of Zone resources available to the specified
170713// project. (== suppress_warning http-rest-shadowed ==)
170714// For details, see https://cloud.google.com/compute/docs/reference/latest/zones/list
170715func (r *ZonesService) List(project string) *ZonesListCall {
170716	c := &ZonesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
170717	c.project = project
170718	return c
170719}
170720
170721// Filter sets the optional parameter "filter": A filter expression that
170722// filters resources listed in the response. The expression must specify
170723// the field name, a comparison operator, and the value that you want to
170724// use for filtering. The value must be a string, a number, or a
170725// boolean. The comparison operator must be either =, !=, >, or <.
170726//
170727// For example, if you are filtering Compute Engine instances, you can
170728// exclude instances named example-instance by specifying name !=
170729// example-instance.
170730//
170731// You can also filter nested fields. For example, you could specify
170732// scheduling.automaticRestart = false to include instances only if they
170733// are not scheduled for automatic restarts. You can use filtering on
170734// nested fields to filter based on resource labels.
170735//
170736// To filter on multiple expressions, provide each separate expression
170737// within parentheses. For example, (scheduling.automaticRestart = true)
170738// (cpuPlatform = "Intel Skylake"). By default, each expression is an
170739// AND expression. However, you can include AND and OR expressions
170740// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
170741// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
170742// true).
170743func (c *ZonesListCall) Filter(filter string) *ZonesListCall {
170744	c.urlParams_.Set("filter", filter)
170745	return c
170746}
170747
170748// MaxResults sets the optional parameter "maxResults": The maximum
170749// number of results per page that should be returned. If the number of
170750// available results is larger than maxResults, Compute Engine returns a
170751// nextPageToken that can be used to get the next page of results in
170752// subsequent list requests. Acceptable values are 0 to 500, inclusive.
170753// (Default: 500)
170754func (c *ZonesListCall) MaxResults(maxResults int64) *ZonesListCall {
170755	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
170756	return c
170757}
170758
170759// OrderBy sets the optional parameter "orderBy": Sorts list results by
170760// a certain order. By default, results are returned in alphanumerical
170761// order based on the resource name.
170762//
170763// You can also sort results in descending order based on the creation
170764// timestamp using orderBy="creationTimestamp desc". This sorts results
170765// based on the creationTimestamp field in reverse chronological order
170766// (newest result first). Use this to sort resources like operations so
170767// that the newest operation is returned first.
170768//
170769// Currently, only sorting by name or creationTimestamp desc is
170770// supported.
170771func (c *ZonesListCall) OrderBy(orderBy string) *ZonesListCall {
170772	c.urlParams_.Set("orderBy", orderBy)
170773	return c
170774}
170775
170776// PageToken sets the optional parameter "pageToken": Specifies a page
170777// token to use. Set pageToken to the nextPageToken returned by a
170778// previous list request to get the next page of results.
170779func (c *ZonesListCall) PageToken(pageToken string) *ZonesListCall {
170780	c.urlParams_.Set("pageToken", pageToken)
170781	return c
170782}
170783
170784// Fields allows partial responses to be retrieved. See
170785// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
170786// for more information.
170787func (c *ZonesListCall) Fields(s ...googleapi.Field) *ZonesListCall {
170788	c.urlParams_.Set("fields", googleapi.CombineFields(s))
170789	return c
170790}
170791
170792// IfNoneMatch sets the optional parameter which makes the operation
170793// fail if the object's ETag matches the given value. This is useful for
170794// getting updates only after the object has changed since the last
170795// request. Use googleapi.IsNotModified to check whether the response
170796// error from Do is the result of In-None-Match.
170797func (c *ZonesListCall) IfNoneMatch(entityTag string) *ZonesListCall {
170798	c.ifNoneMatch_ = entityTag
170799	return c
170800}
170801
170802// Context sets the context to be used in this call's Do method. Any
170803// pending HTTP request will be aborted if the provided context is
170804// canceled.
170805func (c *ZonesListCall) Context(ctx context.Context) *ZonesListCall {
170806	c.ctx_ = ctx
170807	return c
170808}
170809
170810// Header returns an http.Header that can be modified by the caller to
170811// add HTTP headers to the request.
170812func (c *ZonesListCall) Header() http.Header {
170813	if c.header_ == nil {
170814		c.header_ = make(http.Header)
170815	}
170816	return c.header_
170817}
170818
170819func (c *ZonesListCall) doRequest(alt string) (*http.Response, error) {
170820	reqHeaders := make(http.Header)
170821	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20191216")
170822	for k, v := range c.header_ {
170823		reqHeaders[k] = v
170824	}
170825	reqHeaders.Set("User-Agent", c.s.userAgent())
170826	if c.ifNoneMatch_ != "" {
170827		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
170828	}
170829	var body io.Reader = nil
170830	c.urlParams_.Set("alt", alt)
170831	c.urlParams_.Set("prettyPrint", "false")
170832	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones")
170833	urls += "?" + c.urlParams_.Encode()
170834	req, err := http.NewRequest("GET", urls, body)
170835	if err != nil {
170836		return nil, err
170837	}
170838	req.Header = reqHeaders
170839	googleapi.Expand(req.URL, map[string]string{
170840		"project": c.project,
170841	})
170842	return gensupport.SendRequest(c.ctx_, c.s.client, req)
170843}
170844
170845// Do executes the "compute.zones.list" call.
170846// Exactly one of *ZoneList or error will be non-nil. Any non-2xx status
170847// code is an error. Response headers are in either
170848// *ZoneList.ServerResponse.Header or (if a response was returned at
170849// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
170850// to check whether the returned error was because
170851// http.StatusNotModified was returned.
170852func (c *ZonesListCall) Do(opts ...googleapi.CallOption) (*ZoneList, error) {
170853	gensupport.SetOptions(c.urlParams_, opts...)
170854	res, err := c.doRequest("json")
170855	if res != nil && res.StatusCode == http.StatusNotModified {
170856		if res.Body != nil {
170857			res.Body.Close()
170858		}
170859		return nil, &googleapi.Error{
170860			Code:   res.StatusCode,
170861			Header: res.Header,
170862		}
170863	}
170864	if err != nil {
170865		return nil, err
170866	}
170867	defer googleapi.CloseBody(res)
170868	if err := googleapi.CheckResponse(res); err != nil {
170869		return nil, err
170870	}
170871	ret := &ZoneList{
170872		ServerResponse: googleapi.ServerResponse{
170873			Header:         res.Header,
170874			HTTPStatusCode: res.StatusCode,
170875		},
170876	}
170877	target := &ret
170878	if err := gensupport.DecodeResponse(target, res); err != nil {
170879		return nil, err
170880	}
170881	return ret, nil
170882	// {
170883	//   "description": "Retrieves the list of Zone resources available to the specified project. (== suppress_warning http-rest-shadowed ==)",
170884	//   "httpMethod": "GET",
170885	//   "id": "compute.zones.list",
170886	//   "parameterOrder": [
170887	//     "project"
170888	//   ],
170889	//   "parameters": {
170890	//     "filter": {
170891	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
170892	//       "location": "query",
170893	//       "type": "string"
170894	//     },
170895	//     "maxResults": {
170896	//       "default": "500",
170897	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
170898	//       "format": "uint32",
170899	//       "location": "query",
170900	//       "minimum": "0",
170901	//       "type": "integer"
170902	//     },
170903	//     "orderBy": {
170904	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
170905	//       "location": "query",
170906	//       "type": "string"
170907	//     },
170908	//     "pageToken": {
170909	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
170910	//       "location": "query",
170911	//       "type": "string"
170912	//     },
170913	//     "project": {
170914	//       "description": "Project ID for this request.",
170915	//       "location": "path",
170916	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
170917	//       "required": true,
170918	//       "type": "string"
170919	//     }
170920	//   },
170921	//   "path": "{project}/zones",
170922	//   "response": {
170923	//     "$ref": "ZoneList"
170924	//   },
170925	//   "scopes": [
170926	//     "https://www.googleapis.com/auth/cloud-platform",
170927	//     "https://www.googleapis.com/auth/compute",
170928	//     "https://www.googleapis.com/auth/compute.readonly"
170929	//   ]
170930	// }
170931
170932}
170933
170934// Pages invokes f for each page of results.
170935// A non-nil error returned from f will halt the iteration.
170936// The provided context supersedes any context provided to the Context method.
170937func (c *ZonesListCall) Pages(ctx context.Context, f func(*ZoneList) error) error {
170938	c.ctx_ = ctx
170939	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
170940	for {
170941		x, err := c.Do()
170942		if err != nil {
170943			return err
170944		}
170945		if err := f(x); err != nil {
170946			return err
170947		}
170948		if x.NextPageToken == "" {
170949			return nil
170950		}
170951		c.PageToken(x.NextPageToken)
170952	}
170953}
170954